First commit for River Boat theme.
--- /dev/null
+*.DS_Store
+/bower_components/*
+/node_modules/*
\ No newline at end of file
--- /dev/null
+module.exports = function(grunt) {
+ grunt.initConfig({
+ pkg: grunt.file.readJSON('package.json'),
+
+ sass: {
+ options: {
+ includePaths: ['bower_components/foundation/scss'],
+ sourceMap: false
+ },
+ dist: {
+ options: {
+ outputStyle: 'compressed'
+ },
+ files: {
+ 'css/app.css': 'scss/app.scss'
+ }
+ }
+ },
+
+ copy: {
+ scripts: {
+ expand: true,
+ cwd: 'bower_components/',
+ src: '**/*.js',
+ dest: 'js'
+ },
+
+ maps: {
+ expand: true,
+ cwd: 'bower_components/',
+ src: '**/*.map',
+ dest: 'js'
+ }
+ },
+
+ uglify: {
+ dist: {
+ files: {
+ 'js/modernizr/modernizr.min.js': ['js/modernizr/modernizr.js']
+ }
+ }
+ },
+
+ concat: {
+ options: {
+ separator: ';'
+ },
+ dist: {
+ src: [
+ 'js/dollarsign.js',
+ 'js/foundation/js/foundation.min.js',
+ 'js/custom/*.js',
+ ],
+
+ dest: 'js/app.js'
+ }
+
+ },
+
+ watch: {
+ grunt: { files: ['Gruntfile.js'] },
+
+ sass: {
+ files: 'scss/**/*.{scss,sass}',
+ tasks: ['sass']
+ },
+
+ scripts: {
+ files: ['js/custom/*.js'],
+ tasks: ['concat', 'uglify']
+ }
+
+ }
+ });
+
+ grunt.loadNpmTasks('grunt-sass');
+ grunt.loadNpmTasks('grunt-contrib-watch');
+ grunt.loadNpmTasks('grunt-contrib-concat');
+ grunt.loadNpmTasks('grunt-contrib-copy');
+ grunt.loadNpmTasks('grunt-contrib-uglify');
+
+ grunt.registerTask('build', ['sass', 'copy', 'uglify', 'concat']);
+ grunt.registerTask('runwatch', ['sass','uglify', 'concat']);
+ grunt.registerTask('default', ['runwatch','watch']);
+}
--- /dev/null
+# Gaslight Media Foundation Template
+
+This is a template to start your own project that uses Grunt and libsass!
+
+## Requirements
+
+You'll need to have the following items installed before continuing.
+
+ * [Node.js](http://nodejs.org): Use the installer provided on the NodeJS website.
+ * [Grunt](http://gruntjs.com/): Run `[sudo] npm install -g grunt-cli`
+ * [Bower](http://bower.io): Run `[sudo] npm install -g bower`
+
+## Quickstart
+
+```bash
+npm install && bower install
+```
+
+While you're working on your project, run:
+
+`grunt`
+
+And you're set!
+
+## Directory Structure
+
+ * `scss/_settings.scss`: Foundation configuration settings go in here
+ * `scss/app.scss`: Application styles go here
--- /dev/null
+<?php get_header(); ?>
+<main class="blog-archive">
+ <div id="header-image" class="page-header">
+ <?php echo glm_get_header();?>
+ </div>
+ <div id="slide-cover"></div>
+ <div class="row">
+
+ <div id="blog-posts-over" class="small-12 medium-9 columns">
+ <?php if(have_posts()) : while(have_posts()): the_post();?>
+ <?php $status = get_post_status($post->ID); ?>
+ <div class="row content blog-posts-container">
+ <!-- <div class="small-11 small-centered columns"> -->
+ <?php
+ if (has_post_thumbnail()) {
+ $thumbnail = get_the_post_thumbnail($post->ID, 'blog-feed-front'); ?>
+ <div class="small-12 medium-4 columns text-center blog-feed-imgs">
+ <?php echo $thumbnail; ?>
+ </div>
+ <?php echo '<div class="small-12 medium-8 small-centered columns right">';
+ } else {
+ echo '<div class="small-12 small-centered columns">';
+ }
+ ?>
+ <article id="<?php the_ID()?>" <?php post_class()?>>
+ <h2 class="entry-title"><a href="<?php the_permalink(); ?>"><?php the_title();?></a></h2>
+ <div class="blog-excerpt-date">
+ Posted on <strong><?php the_time('F jS, Y'); ?></strong>
+ </div>
+ <?php echo the_advanced_excerpt('length=265&length_type=characters&no_custom=1&ellipsis=%26hellip;&exclude_tags=a,img,p,strong,h1,h2,h3,hr,div'); ?>
+ </article>
+
+ </div>
+ </div>
+ <?php endwhile; ?>
+ <div class="navigation">
+ <span class="newer"><?php previous_posts_link(__('« Newer','example')) ?></span>
+ <span class="older"><?php next_posts_link(__('Older »','example')) ?></span>
+ </div><!-- /.navigation -->
+ <?php else: ?>
+ <div id="post-404" class="noposts">
+ <p><?php _e('Sorry, no results were found.');?></p>
+ </div><!-- /#post-404 -->
+ <?php endif;?>
+ </div>
+ <?php get_template_part('parts/blog-sidebar-r'); ?>
+</div>
+<?php get_footer(); ?>
--- /dev/null
+{
+ "name": "foundation-libsass-template",
+ "dependencies": {
+ "foundation": "zurb/bower-foundation"
+ }
+}
--- /dev/null
+<?php
+/**
+ * The template for displaying comments
+ *
+ * The area of the page that contains both current comments
+ * and the comment form.
+ *
+ * @package WordPress
+ * @subpackage Twenty_Fifteen
+ * @since Twenty Fifteen 1.0
+ */
+if ( ! function_exists( 'twentyfifteen_comment_nav' ) ) :
+/**
+ * Display navigation to next/previous comments when applicable.
+ *
+ * @since Twenty Fifteen 1.0
+ */
+function twentyfifteen_comment_nav() {
+ // Are there comments to navigate through?
+ if ( get_comment_pages_count() > 1 && get_option( 'page_comments' ) ) :
+?>
+<nav class="navigation comment-navigation" role="navigation">
+ <h2 class="screen-reader-text"><?php _e( 'Comment navigation', 'twentyfifteen' ); ?></h2>
+ <div class="nav-links">
+ <?php
+ if ( $prev_link = get_previous_comments_link( __( 'Older Comments', 'twentyfifteen' ) ) ) :
+ printf( '<div class="nav-previous">%s</div>', $prev_link );
+ endif;
+
+ if ( $next_link = get_next_comments_link( __( 'Newer Comments', 'twentyfifteen' ) ) ) :
+ printf( '<div class="nav-next">%s</div>', $next_link );
+ endif;
+ ?>
+ </div><!-- .nav-links -->
+</nav><!-- .comment-navigation -->
+<?php
+ endif;
+}
+endif;
+/*
+ * If the current post is protected by a password and
+ * the visitor has not yet entered the password we will
+ * return early without loading the comments.
+ */
+if ( post_password_required() ) {
+ return;
+}
+?>
+
+<div id="comments" class="comments-area">
+
+ <?php if ( have_comments() ) : ?>
+ <h2 class="comments-title">
+ <?php
+ printf( _nx( 'One thought on “%2$s”', '%1$s thoughts on “%2$s”', get_comments_number(), 'comments title', 'twentyfifteen' ),
+ number_format_i18n( get_comments_number() ), get_the_title() );
+ ?>
+ </h2>
+
+ <?php twentyfifteen_comment_nav(); ?>
+
+ <ol class="comment-list">
+ <?php
+ wp_list_comments( array(
+ 'style' => 'ol',
+ 'short_ping' => true,
+ 'avatar_size' => 56,
+ ) );
+ ?>
+ </ol><!-- .comment-list -->
+
+ <?php twentyfifteen_comment_nav(); ?>
+
+ <?php endif; // have_comments() ?>
+
+ <?php
+ // If comments are closed and there are comments, let's leave a little note, shall we?
+ if ( ! comments_open() && get_comments_number() && post_type_supports( get_post_type(), 'comments' ) ) :
+ ?>
+ <p class="no-comments"><?php _e( 'Comments are closed.', 'twentyfifteen' ); ?></p>
+ <?php endif; ?>
+
+ <?php comment_form(
+ array(
+ 'class_submit' => 'button'
+ )
+); ?>
+
+</div><!-- .comments-area -->
--- /dev/null
+meta.foundation-version{font-family:"/5.5.3/"}meta.foundation-mq-small{font-family:"/only screen/";width:0em}meta.foundation-mq-small-only{font-family:"/only screen and (max-width: 40em)/";width:0em}meta.foundation-mq-medium{font-family:"/only screen and (min-width:40.063em)/";width:40.063em}meta.foundation-mq-medium-only{font-family:"/only screen and (min-width:40.063em) and (max-width:64em)/";width:40.063em}meta.foundation-mq-large{font-family:"/only screen and (min-width:64.063em)/";width:64.063em}meta.foundation-mq-large-only{font-family:"/only screen and (min-width:64.063em) and (max-width:90em)/";width:64.063em}meta.foundation-mq-xlarge{font-family:"/only screen and (min-width:90.063em)/";width:90.063em}meta.foundation-mq-xlarge-only{font-family:"/only screen and (min-width:90.063em) and (max-width:120em)/";width:90.063em}meta.foundation-mq-xxlarge{font-family:"/only screen and (min-width:120.063em)/";width:120.063em}meta.foundation-data-attribute-namespace{font-family:false}html,body{height:100%}*,*:before,*:after{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}html,body{font-size:100%}body{background:#fff;color:#000000;cursor:auto;font-family:"Josefin Sans",sans-serif;font-style:normal;font-weight:normal;line-height:150%;margin:0;padding:0;position:relative}a:hover{cursor:pointer}img{max-width:100%;height:auto}img{-ms-interpolation-mode:bicubic}#map_canvas img,#map_canvas embed,#map_canvas object,.map_canvas img,.map_canvas embed,.map_canvas object,.mqa-display img,.mqa-display embed,.mqa-display object{max-width:none !important}.left{float:left !important}.right{float:right !important}.clearfix:before,.clearfix:after{content:" ";display:table}.clearfix:after{clear:both}.hide{display:none}.invisible{visibility:hidden}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}img{display:inline-block;vertical-align:middle}textarea{height:auto;min-height:50px}select{width:100%}.row{margin:0 auto;max-width:62.5rem;width:100%}.row:before,.row:after{content:" ";display:table}.row:after{clear:both}.row.collapse>.column,.row.collapse>.columns{padding-left:0;padding-right:0}.row.collapse .row{margin-left:0;margin-right:0}.row .row{margin:0 -0.9375rem;max-width:none;width:auto}.row .row:before,.row .row:after{content:" ";display:table}.row .row:after{clear:both}.row .row.collapse{margin:0;max-width:none;width:auto}.row .row.collapse:before,.row .row.collapse:after{content:" ";display:table}.row .row.collapse:after{clear:both}.column,.columns{padding-left:0.9375rem;padding-right:0.9375rem;width:100%;float:left}.column+.column:last-child,.columns+.columns:last-child{float:right}.column+.column.end,.columns+.columns.end{float:left}@media only screen{.small-push-0{position:relative;left:0;right:auto}.small-pull-0{position:relative;right:0;left:auto}.small-push-1{position:relative;left:8.3333333333%;right:auto}.small-pull-1{position:relative;right:8.3333333333%;left:auto}.small-push-2{position:relative;left:16.6666666667%;right:auto}.small-pull-2{position:relative;right:16.6666666667%;left:auto}.small-push-3{position:relative;left:25%;right:auto}.small-pull-3{position:relative;right:25%;left:auto}.small-push-4{position:relative;left:33.3333333333%;right:auto}.small-pull-4{position:relative;right:33.3333333333%;left:auto}.small-push-5{position:relative;left:41.6666666667%;right:auto}.small-pull-5{position:relative;right:41.6666666667%;left:auto}.small-push-6{position:relative;left:50%;right:auto}.small-pull-6{position:relative;right:50%;left:auto}.small-push-7{position:relative;left:58.3333333333%;right:auto}.small-pull-7{position:relative;right:58.3333333333%;left:auto}.small-push-8{position:relative;left:66.6666666667%;right:auto}.small-pull-8{position:relative;right:66.6666666667%;left:auto}.small-push-9{position:relative;left:75%;right:auto}.small-pull-9{position:relative;right:75%;left:auto}.small-push-10{position:relative;left:83.3333333333%;right:auto}.small-pull-10{position:relative;right:83.3333333333%;left:auto}.small-push-11{position:relative;left:91.6666666667%;right:auto}.small-pull-11{position:relative;right:91.6666666667%;left:auto}.column,.columns{position:relative;padding-left:0.9375rem;padding-right:0.9375rem;float:left}.small-1{width:8.3333333333%}.small-2{width:16.6666666667%}.small-3{width:25%}.small-4{width:33.3333333333%}.small-5{width:41.6666666667%}.small-6{width:50%}.small-7{width:58.3333333333%}.small-8{width:66.6666666667%}.small-9{width:75%}.small-10{width:83.3333333333%}.small-11{width:91.6666666667%}.small-12{width:100%}.small-offset-0{margin-left:0 !important}.small-offset-1{margin-left:8.3333333333% !important}.small-offset-2{margin-left:16.6666666667% !important}.small-offset-3{margin-left:25% !important}.small-offset-4{margin-left:33.3333333333% !important}.small-offset-5{margin-left:41.6666666667% !important}.small-offset-6{margin-left:50% !important}.small-offset-7{margin-left:58.3333333333% !important}.small-offset-8{margin-left:66.6666666667% !important}.small-offset-9{margin-left:75% !important}.small-offset-10{margin-left:83.3333333333% !important}.small-offset-11{margin-left:91.6666666667% !important}.small-reset-order{float:left;left:auto;margin-left:0;margin-right:0;right:auto}.column.small-centered,.columns.small-centered{margin-left:auto;margin-right:auto;float:none}.column.small-uncentered,.columns.small-uncentered{float:left;margin-left:0;margin-right:0}.column.small-centered:last-child,.columns.small-centered:last-child{float:none}.column.small-uncentered:last-child,.columns.small-uncentered:last-child{float:left}.column.small-uncentered.opposite,.columns.small-uncentered.opposite{float:right}.row.small-collapse>.column,.row.small-collapse>.columns{padding-left:0;padding-right:0}.row.small-collapse .row{margin-left:0;margin-right:0}.row.small-uncollapse>.column,.row.small-uncollapse>.columns{padding-left:0.9375rem;padding-right:0.9375rem;float:left}}@media only screen and (min-width:40.063em){.medium-push-0{position:relative;left:0;right:auto}.medium-pull-0{position:relative;right:0;left:auto}.medium-push-1{position:relative;left:8.3333333333%;right:auto}.medium-pull-1{position:relative;right:8.3333333333%;left:auto}.medium-push-2{position:relative;left:16.6666666667%;right:auto}.medium-pull-2{position:relative;right:16.6666666667%;left:auto}.medium-push-3{position:relative;left:25%;right:auto}.medium-pull-3{position:relative;right:25%;left:auto}.medium-push-4{position:relative;left:33.3333333333%;right:auto}.medium-pull-4{position:relative;right:33.3333333333%;left:auto}.medium-push-5{position:relative;left:41.6666666667%;right:auto}.medium-pull-5{position:relative;right:41.6666666667%;left:auto}.medium-push-6{position:relative;left:50%;right:auto}.medium-pull-6{position:relative;right:50%;left:auto}.medium-push-7{position:relative;left:58.3333333333%;right:auto}.medium-pull-7{position:relative;right:58.3333333333%;left:auto}.medium-push-8{position:relative;left:66.6666666667%;right:auto}.medium-pull-8{position:relative;right:66.6666666667%;left:auto}.medium-push-9{position:relative;left:75%;right:auto}.medium-pull-9{position:relative;right:75%;left:auto}.medium-push-10{position:relative;left:83.3333333333%;right:auto}.medium-pull-10{position:relative;right:83.3333333333%;left:auto}.medium-push-11{position:relative;left:91.6666666667%;right:auto}.medium-pull-11{position:relative;right:91.6666666667%;left:auto}.column,.columns{position:relative;padding-left:0.9375rem;padding-right:0.9375rem;float:left}.medium-1{width:8.3333333333%}.medium-2{width:16.6666666667%}.medium-3{width:25%}.medium-4{width:33.3333333333%}.medium-5{width:41.6666666667%}.medium-6{width:50%}.medium-7{width:58.3333333333%}.medium-8{width:66.6666666667%}.medium-9{width:75%}.medium-10{width:83.3333333333%}.medium-11{width:91.6666666667%}.medium-12{width:100%}.medium-offset-0{margin-left:0 !important}.medium-offset-1{margin-left:8.3333333333% !important}.medium-offset-2{margin-left:16.6666666667% !important}.medium-offset-3{margin-left:25% !important}.medium-offset-4{margin-left:33.3333333333% !important}.medium-offset-5{margin-left:41.6666666667% !important}.medium-offset-6{margin-left:50% !important}.medium-offset-7{margin-left:58.3333333333% !important}.medium-offset-8{margin-left:66.6666666667% !important}.medium-offset-9{margin-left:75% !important}.medium-offset-10{margin-left:83.3333333333% !important}.medium-offset-11{margin-left:91.6666666667% !important}.medium-reset-order{float:left;left:auto;margin-left:0;margin-right:0;right:auto}.column.medium-centered,.columns.medium-centered{margin-left:auto;margin-right:auto;float:none}.column.medium-uncentered,.columns.medium-uncentered{float:left;margin-left:0;margin-right:0}.column.medium-centered:last-child,.columns.medium-centered:last-child{float:none}.column.medium-uncentered:last-child,.columns.medium-uncentered:last-child{float:left}.column.medium-uncentered.opposite,.columns.medium-uncentered.opposite{float:right}.row.medium-collapse>.column,.row.medium-collapse>.columns{padding-left:0;padding-right:0}.row.medium-collapse .row{margin-left:0;margin-right:0}.row.medium-uncollapse>.column,.row.medium-uncollapse>.columns{padding-left:0.9375rem;padding-right:0.9375rem;float:left}.push-0{position:relative;left:0;right:auto}.pull-0{position:relative;right:0;left:auto}.push-1{position:relative;left:8.3333333333%;right:auto}.pull-1{position:relative;right:8.3333333333%;left:auto}.push-2{position:relative;left:16.6666666667%;right:auto}.pull-2{position:relative;right:16.6666666667%;left:auto}.push-3{position:relative;left:25%;right:auto}.pull-3{position:relative;right:25%;left:auto}.push-4{position:relative;left:33.3333333333%;right:auto}.pull-4{position:relative;right:33.3333333333%;left:auto}.push-5{position:relative;left:41.6666666667%;right:auto}.pull-5{position:relative;right:41.6666666667%;left:auto}.push-6{position:relative;left:50%;right:auto}.pull-6{position:relative;right:50%;left:auto}.push-7{position:relative;left:58.3333333333%;right:auto}.pull-7{position:relative;right:58.3333333333%;left:auto}.push-8{position:relative;left:66.6666666667%;right:auto}.pull-8{position:relative;right:66.6666666667%;left:auto}.push-9{position:relative;left:75%;right:auto}.pull-9{position:relative;right:75%;left:auto}.push-10{position:relative;left:83.3333333333%;right:auto}.pull-10{position:relative;right:83.3333333333%;left:auto}.push-11{position:relative;left:91.6666666667%;right:auto}.pull-11{position:relative;right:91.6666666667%;left:auto}}@media only screen and (min-width:64.063em){.large-push-0{position:relative;left:0;right:auto}.large-pull-0{position:relative;right:0;left:auto}.large-push-1{position:relative;left:8.3333333333%;right:auto}.large-pull-1{position:relative;right:8.3333333333%;left:auto}.large-push-2{position:relative;left:16.6666666667%;right:auto}.large-pull-2{position:relative;right:16.6666666667%;left:auto}.large-push-3{position:relative;left:25%;right:auto}.large-pull-3{position:relative;right:25%;left:auto}.large-push-4{position:relative;left:33.3333333333%;right:auto}.large-pull-4{position:relative;right:33.3333333333%;left:auto}.large-push-5{position:relative;left:41.6666666667%;right:auto}.large-pull-5{position:relative;right:41.6666666667%;left:auto}.large-push-6{position:relative;left:50%;right:auto}.large-pull-6{position:relative;right:50%;left:auto}.large-push-7{position:relative;left:58.3333333333%;right:auto}.large-pull-7{position:relative;right:58.3333333333%;left:auto}.large-push-8{position:relative;left:66.6666666667%;right:auto}.large-pull-8{position:relative;right:66.6666666667%;left:auto}.large-push-9{position:relative;left:75%;right:auto}.large-pull-9{position:relative;right:75%;left:auto}.large-push-10{position:relative;left:83.3333333333%;right:auto}.large-pull-10{position:relative;right:83.3333333333%;left:auto}.large-push-11{position:relative;left:91.6666666667%;right:auto}.large-pull-11{position:relative;right:91.6666666667%;left:auto}.column,.columns{position:relative;padding-left:0.9375rem;padding-right:0.9375rem;float:left}.large-1{width:8.3333333333%}.large-2{width:16.6666666667%}.large-3{width:25%}.large-4{width:33.3333333333%}.large-5{width:41.6666666667%}.large-6{width:50%}.large-7{width:58.3333333333%}.large-8{width:66.6666666667%}.large-9{width:75%}.large-10{width:83.3333333333%}.large-11{width:91.6666666667%}.large-12{width:100%}.large-offset-0{margin-left:0 !important}.large-offset-1{margin-left:8.3333333333% !important}.large-offset-2{margin-left:16.6666666667% !important}.large-offset-3{margin-left:25% !important}.large-offset-4{margin-left:33.3333333333% !important}.large-offset-5{margin-left:41.6666666667% !important}.large-offset-6{margin-left:50% !important}.large-offset-7{margin-left:58.3333333333% !important}.large-offset-8{margin-left:66.6666666667% !important}.large-offset-9{margin-left:75% !important}.large-offset-10{margin-left:83.3333333333% !important}.large-offset-11{margin-left:91.6666666667% !important}.large-reset-order{float:left;left:auto;margin-left:0;margin-right:0;right:auto}.column.large-centered,.columns.large-centered{margin-left:auto;margin-right:auto;float:none}.column.large-uncentered,.columns.large-uncentered{float:left;margin-left:0;margin-right:0}.column.large-centered:last-child,.columns.large-centered:last-child{float:none}.column.large-uncentered:last-child,.columns.large-uncentered:last-child{float:left}.column.large-uncentered.opposite,.columns.large-uncentered.opposite{float:right}.row.large-collapse>.column,.row.large-collapse>.columns{padding-left:0;padding-right:0}.row.large-collapse .row{margin-left:0;margin-right:0}.row.large-uncollapse>.column,.row.large-uncollapse>.columns{padding-left:0.9375rem;padding-right:0.9375rem;float:left}.push-0{position:relative;left:0;right:auto}.pull-0{position:relative;right:0;left:auto}.push-1{position:relative;left:8.3333333333%;right:auto}.pull-1{position:relative;right:8.3333333333%;left:auto}.push-2{position:relative;left:16.6666666667%;right:auto}.pull-2{position:relative;right:16.6666666667%;left:auto}.push-3{position:relative;left:25%;right:auto}.pull-3{position:relative;right:25%;left:auto}.push-4{position:relative;left:33.3333333333%;right:auto}.pull-4{position:relative;right:33.3333333333%;left:auto}.push-5{position:relative;left:41.6666666667%;right:auto}.pull-5{position:relative;right:41.6666666667%;left:auto}.push-6{position:relative;left:50%;right:auto}.pull-6{position:relative;right:50%;left:auto}.push-7{position:relative;left:58.3333333333%;right:auto}.pull-7{position:relative;right:58.3333333333%;left:auto}.push-8{position:relative;left:66.6666666667%;right:auto}.pull-8{position:relative;right:66.6666666667%;left:auto}.push-9{position:relative;left:75%;right:auto}.pull-9{position:relative;right:75%;left:auto}.push-10{position:relative;left:83.3333333333%;right:auto}.pull-10{position:relative;right:83.3333333333%;left:auto}.push-11{position:relative;left:91.6666666667%;right:auto}.pull-11{position:relative;right:91.6666666667%;left:auto}}.accordion{margin-bottom:0;margin-left:0}.accordion:before,.accordion:after{content:" ";display:table}.accordion:after{clear:both}.accordion .accordion-navigation,.accordion dd{display:block;margin-bottom:0 !important}.accordion .accordion-navigation.active>a,.accordion dd.active>a{background:#e8e8e8;color:#222222}.accordion .accordion-navigation>a,.accordion dd>a{background:#EFEFEF;color:#222222;display:block;font-family:"Josefin Sans",sans-serif;font-size:1rem;padding:1rem}.accordion .accordion-navigation>a:hover,.accordion dd>a:hover{background:#e3e3e3}.accordion .accordion-navigation>.content,.accordion dd>.content{display:none;padding:0.9375rem}.accordion .accordion-navigation>.content.active,.accordion dd>.content.active{background:#FFFFFF;display:block}.alert-box{border-style:solid;border-width:1px;display:block;font-size:0.8125rem;font-weight:normal;margin-bottom:1.25rem;padding:0.875rem 1.5rem 0.875rem 0.875rem;position:relative;transition:opacity 300ms ease-out;background-color:#008CBA;border-color:#0078a0;color:#FFFFFF}.alert-box .close{right:0.25rem;background:inherit;color:#333333;font-size:1.375rem;line-height:.9;margin-top:-0.6875rem;opacity:0.3;padding:0 6px 4px;position:absolute;top:50%}.alert-box .close:hover,.alert-box .close:focus{opacity:0.5}.alert-box.radius{border-radius:3px}.alert-box.round{border-radius:1000px}.alert-box.success{background-color:#43AC6A;border-color:#3a945b;color:#FFFFFF}.alert-box.alert{background-color:#f04124;border-color:#de2d0f;color:#FFFFFF}.alert-box.secondary{background-color:#e7e7e7;border-color:#c7c7c7;color:#4f4f4f}.alert-box.warning{background-color:#f08a24;border-color:#de770f;color:#FFFFFF}.alert-box.info{background-color:#a0d3e8;border-color:#74bfdd;color:#4f4f4f}.alert-box.alert-close{opacity:0}[class*="block-grid-"]{display:block;padding:0;margin:0 -0.625rem}[class*="block-grid-"]:before,[class*="block-grid-"]:after{content:" ";display:table}[class*="block-grid-"]:after{clear:both}[class*="block-grid-"]>li{display:block;float:left;height:auto;padding:0 0.625rem 1.25rem}@media only screen{.small-block-grid-1>li{list-style:none;width:100%}.small-block-grid-1>li:nth-of-type(1n){clear:none}.small-block-grid-1>li:nth-of-type(1n+1){clear:both}.small-block-grid-2>li{list-style:none;width:50%}.small-block-grid-2>li:nth-of-type(1n){clear:none}.small-block-grid-2>li:nth-of-type(2n+1){clear:both}.small-block-grid-3>li{list-style:none;width:33.3333333333%}.small-block-grid-3>li:nth-of-type(1n){clear:none}.small-block-grid-3>li:nth-of-type(3n+1){clear:both}.small-block-grid-4>li{list-style:none;width:25%}.small-block-grid-4>li:nth-of-type(1n){clear:none}.small-block-grid-4>li:nth-of-type(4n+1){clear:both}.small-block-grid-5>li{list-style:none;width:20%}.small-block-grid-5>li:nth-of-type(1n){clear:none}.small-block-grid-5>li:nth-of-type(5n+1){clear:both}.small-block-grid-6>li{list-style:none;width:16.6666666667%}.small-block-grid-6>li:nth-of-type(1n){clear:none}.small-block-grid-6>li:nth-of-type(6n+1){clear:both}.small-block-grid-7>li{list-style:none;width:14.2857142857%}.small-block-grid-7>li:nth-of-type(1n){clear:none}.small-block-grid-7>li:nth-of-type(7n+1){clear:both}.small-block-grid-8>li{list-style:none;width:12.5%}.small-block-grid-8>li:nth-of-type(1n){clear:none}.small-block-grid-8>li:nth-of-type(8n+1){clear:both}.small-block-grid-9>li{list-style:none;width:11.1111111111%}.small-block-grid-9>li:nth-of-type(1n){clear:none}.small-block-grid-9>li:nth-of-type(9n+1){clear:both}.small-block-grid-10>li{list-style:none;width:10%}.small-block-grid-10>li:nth-of-type(1n){clear:none}.small-block-grid-10>li:nth-of-type(10n+1){clear:both}.small-block-grid-11>li{list-style:none;width:9.0909090909%}.small-block-grid-11>li:nth-of-type(1n){clear:none}.small-block-grid-11>li:nth-of-type(11n+1){clear:both}.small-block-grid-12>li{list-style:none;width:8.3333333333%}.small-block-grid-12>li:nth-of-type(1n){clear:none}.small-block-grid-12>li:nth-of-type(12n+1){clear:both}}@media only screen and (min-width:40.063em){.medium-block-grid-1>li{list-style:none;width:100%}.medium-block-grid-1>li:nth-of-type(1n){clear:none}.medium-block-grid-1>li:nth-of-type(1n+1){clear:both}.medium-block-grid-2>li{list-style:none;width:50%}.medium-block-grid-2>li:nth-of-type(1n){clear:none}.medium-block-grid-2>li:nth-of-type(2n+1){clear:both}.medium-block-grid-3>li{list-style:none;width:33.3333333333%}.medium-block-grid-3>li:nth-of-type(1n){clear:none}.medium-block-grid-3>li:nth-of-type(3n+1){clear:both}.medium-block-grid-4>li{list-style:none;width:25%}.medium-block-grid-4>li:nth-of-type(1n){clear:none}.medium-block-grid-4>li:nth-of-type(4n+1){clear:both}.medium-block-grid-5>li{list-style:none;width:20%}.medium-block-grid-5>li:nth-of-type(1n){clear:none}.medium-block-grid-5>li:nth-of-type(5n+1){clear:both}.medium-block-grid-6>li{list-style:none;width:16.6666666667%}.medium-block-grid-6>li:nth-of-type(1n){clear:none}.medium-block-grid-6>li:nth-of-type(6n+1){clear:both}.medium-block-grid-7>li{list-style:none;width:14.2857142857%}.medium-block-grid-7>li:nth-of-type(1n){clear:none}.medium-block-grid-7>li:nth-of-type(7n+1){clear:both}.medium-block-grid-8>li{list-style:none;width:12.5%}.medium-block-grid-8>li:nth-of-type(1n){clear:none}.medium-block-grid-8>li:nth-of-type(8n+1){clear:both}.medium-block-grid-9>li{list-style:none;width:11.1111111111%}.medium-block-grid-9>li:nth-of-type(1n){clear:none}.medium-block-grid-9>li:nth-of-type(9n+1){clear:both}.medium-block-grid-10>li{list-style:none;width:10%}.medium-block-grid-10>li:nth-of-type(1n){clear:none}.medium-block-grid-10>li:nth-of-type(10n+1){clear:both}.medium-block-grid-11>li{list-style:none;width:9.0909090909%}.medium-block-grid-11>li:nth-of-type(1n){clear:none}.medium-block-grid-11>li:nth-of-type(11n+1){clear:both}.medium-block-grid-12>li{list-style:none;width:8.3333333333%}.medium-block-grid-12>li:nth-of-type(1n){clear:none}.medium-block-grid-12>li:nth-of-type(12n+1){clear:both}}@media only screen and (min-width:64.063em){.large-block-grid-1>li{list-style:none;width:100%}.large-block-grid-1>li:nth-of-type(1n){clear:none}.large-block-grid-1>li:nth-of-type(1n+1){clear:both}.large-block-grid-2>li{list-style:none;width:50%}.large-block-grid-2>li:nth-of-type(1n){clear:none}.large-block-grid-2>li:nth-of-type(2n+1){clear:both}.large-block-grid-3>li{list-style:none;width:33.3333333333%}.large-block-grid-3>li:nth-of-type(1n){clear:none}.large-block-grid-3>li:nth-of-type(3n+1){clear:both}.large-block-grid-4>li{list-style:none;width:25%}.large-block-grid-4>li:nth-of-type(1n){clear:none}.large-block-grid-4>li:nth-of-type(4n+1){clear:both}.large-block-grid-5>li{list-style:none;width:20%}.large-block-grid-5>li:nth-of-type(1n){clear:none}.large-block-grid-5>li:nth-of-type(5n+1){clear:both}.large-block-grid-6>li{list-style:none;width:16.6666666667%}.large-block-grid-6>li:nth-of-type(1n){clear:none}.large-block-grid-6>li:nth-of-type(6n+1){clear:both}.large-block-grid-7>li{list-style:none;width:14.2857142857%}.large-block-grid-7>li:nth-of-type(1n){clear:none}.large-block-grid-7>li:nth-of-type(7n+1){clear:both}.large-block-grid-8>li{list-style:none;width:12.5%}.large-block-grid-8>li:nth-of-type(1n){clear:none}.large-block-grid-8>li:nth-of-type(8n+1){clear:both}.large-block-grid-9>li{list-style:none;width:11.1111111111%}.large-block-grid-9>li:nth-of-type(1n){clear:none}.large-block-grid-9>li:nth-of-type(9n+1){clear:both}.large-block-grid-10>li{list-style:none;width:10%}.large-block-grid-10>li:nth-of-type(1n){clear:none}.large-block-grid-10>li:nth-of-type(10n+1){clear:both}.large-block-grid-11>li{list-style:none;width:9.0909090909%}.large-block-grid-11>li:nth-of-type(1n){clear:none}.large-block-grid-11>li:nth-of-type(11n+1){clear:both}.large-block-grid-12>li{list-style:none;width:8.3333333333%}.large-block-grid-12>li:nth-of-type(1n){clear:none}.large-block-grid-12>li:nth-of-type(12n+1){clear:both}}.breadcrumbs{border-style:solid;border-width:0px;display:block;list-style:none;margin-left:0;overflow:hidden;padding:0.5625rem 0.875rem 0.5625rem;background-color:#FFFFFF;border-color:#e6e6e6;border-radius:3px}.breadcrumbs>*{color:#000000;float:left;font-size:1rem;line-height:1rem;margin:0;text-transform:none}.breadcrumbs>*:hover a,.breadcrumbs>*:focus a{text-decoration:none}.breadcrumbs>* a{color:#000000}.breadcrumbs>*.current{color:#006a71;cursor:default}.breadcrumbs>*.current a{color:#006a71;cursor:default}.breadcrumbs>*.current:hover,.breadcrumbs>*.current:hover a,.breadcrumbs>*.current:focus,.breadcrumbs>*.current:focus a{text-decoration:none}.breadcrumbs>*.unavailable{color:#999999}.breadcrumbs>*.unavailable a{color:#999999}.breadcrumbs>*.unavailable:hover,.breadcrumbs>*.unavailable:hover a,.breadcrumbs>*.unavailable:focus,.breadcrumbs>*.unavailable a:focus{color:#999999;cursor:false;text-decoration:none}.breadcrumbs>*:before{color:#000000;content:">";margin:0 0.75rem;position:relative;top:1px}.breadcrumbs>*:first-child:before{content:" ";margin:0}[aria-label="breadcrumbs"] [aria-hidden="true"]:after{content:"/"}button,.button{-webkit-appearance:none;-moz-appearance:none;border-radius:0;border-style:solid;border-width:3px;cursor:pointer;font-family:"Josefin Sans",sans-serif;font-weight:normal;line-height:normal;margin:0 0 1.25rem;position:relative;text-align:center;text-decoration:none;display:inline-block;padding:1rem 2rem 1.0625rem 2rem;font-size:1rem;background-color:#009543;border-color:#FFFFFF;color:#FFFFFF;transition:background-color 300ms ease-out}button:hover,button:focus,.button:hover,.button:focus{background-color:#007736}button:hover,button:focus,.button:hover,.button:focus{color:#FFFFFF}button.secondary,.button.secondary{background-color:#e7e7e7;border-color:#b9b9b9;color:#333333}button.secondary:hover,button.secondary:focus,.button.secondary:hover,.button.secondary:focus{background-color:#b9b9b9}button.secondary:hover,button.secondary:focus,.button.secondary:hover,.button.secondary:focus{color:#333333}button.success,.button.success{background-color:#43AC6A;border-color:#368a55;color:#FFFFFF}button.success:hover,button.success:focus,.button.success:hover,.button.success:focus{background-color:#368a55}button.success:hover,button.success:focus,.button.success:hover,.button.success:focus{color:#FFFFFF}button.alert,.button.alert{background-color:#f04124;border-color:#cf2a0e;color:#FFFFFF}button.alert:hover,button.alert:focus,.button.alert:hover,.button.alert:focus{background-color:#cf2a0e}button.alert:hover,button.alert:focus,.button.alert:hover,.button.alert:focus{color:#FFFFFF}button.warning,.button.warning{background-color:#f08a24;border-color:#cf6e0e;color:#FFFFFF}button.warning:hover,button.warning:focus,.button.warning:hover,.button.warning:focus{background-color:#cf6e0e}button.warning:hover,button.warning:focus,.button.warning:hover,.button.warning:focus{color:#FFFFFF}button.info,.button.info{background-color:#a0d3e8;border-color:#61b6d9;color:#333333}button.info:hover,button.info:focus,.button.info:hover,.button.info:focus{background-color:#61b6d9}button.info:hover,button.info:focus,.button.info:hover,.button.info:focus{color:#FFFFFF}button.large,.button.large{padding:1.125rem 2.25rem 1.1875rem 2.25rem;font-size:1.25rem}button.small,.button.small{padding:0.875rem 1.75rem 0.9375rem 1.75rem;font-size:0.8125rem}button.tiny,.button.tiny{padding:0.625rem 1.25rem 0.6875rem 1.25rem;font-size:0.6875rem}button.expand,.button.expand{padding:1rem 2rem 1.0625rem 2rem;font-size:1rem;padding-bottom:1.0625rem;padding-top:1rem;padding-left:1rem;padding-right:1rem;width:100%}button.left-align,.button.left-align{text-align:left;text-indent:0.75rem}button.right-align,.button.right-align{text-align:right;padding-right:0.75rem}button.radius,.button.radius{border-radius:3px}button.round,.button.round{border-radius:1000px}button.disabled,button[disabled],.button.disabled,.button[disabled]{background-color:#009543;border-color:#FFFFFF;color:#FFFFFF;box-shadow:none;cursor:default;opacity:0.7}button.disabled:hover,button.disabled:focus,button[disabled]:hover,button[disabled]:focus,.button.disabled:hover,.button.disabled:focus,.button[disabled]:hover,.button[disabled]:focus{background-color:#007736}button.disabled:hover,button.disabled:focus,button[disabled]:hover,button[disabled]:focus,.button.disabled:hover,.button.disabled:focus,.button[disabled]:hover,.button[disabled]:focus{color:#FFFFFF}button.disabled:hover,button.disabled:focus,button[disabled]:hover,button[disabled]:focus,.button.disabled:hover,.button.disabled:focus,.button[disabled]:hover,.button[disabled]:focus{background-color:#009543}button.disabled.secondary,button[disabled].secondary,.button.disabled.secondary,.button[disabled].secondary{background-color:#e7e7e7;border-color:#b9b9b9;color:#333333;box-shadow:none;cursor:default;opacity:0.7}button.disabled.secondary:hover,button.disabled.secondary:focus,button[disabled].secondary:hover,button[disabled].secondary:focus,.button.disabled.secondary:hover,.button.disabled.secondary:focus,.button[disabled].secondary:hover,.button[disabled].secondary:focus{background-color:#b9b9b9}button.disabled.secondary:hover,button.disabled.secondary:focus,button[disabled].secondary:hover,button[disabled].secondary:focus,.button.disabled.secondary:hover,.button.disabled.secondary:focus,.button[disabled].secondary:hover,.button[disabled].secondary:focus{color:#333333}button.disabled.secondary:hover,button.disabled.secondary:focus,button[disabled].secondary:hover,button[disabled].secondary:focus,.button.disabled.secondary:hover,.button.disabled.secondary:focus,.button[disabled].secondary:hover,.button[disabled].secondary:focus{background-color:#e7e7e7}button.disabled.success,button[disabled].success,.button.disabled.success,.button[disabled].success{background-color:#43AC6A;border-color:#368a55;color:#FFFFFF;box-shadow:none;cursor:default;opacity:0.7}button.disabled.success:hover,button.disabled.success:focus,button[disabled].success:hover,button[disabled].success:focus,.button.disabled.success:hover,.button.disabled.success:focus,.button[disabled].success:hover,.button[disabled].success:focus{background-color:#368a55}button.disabled.success:hover,button.disabled.success:focus,button[disabled].success:hover,button[disabled].success:focus,.button.disabled.success:hover,.button.disabled.success:focus,.button[disabled].success:hover,.button[disabled].success:focus{color:#FFFFFF}button.disabled.success:hover,button.disabled.success:focus,button[disabled].success:hover,button[disabled].success:focus,.button.disabled.success:hover,.button.disabled.success:focus,.button[disabled].success:hover,.button[disabled].success:focus{background-color:#43AC6A}button.disabled.alert,button[disabled].alert,.button.disabled.alert,.button[disabled].alert{background-color:#f04124;border-color:#cf2a0e;color:#FFFFFF;box-shadow:none;cursor:default;opacity:0.7}button.disabled.alert:hover,button.disabled.alert:focus,button[disabled].alert:hover,button[disabled].alert:focus,.button.disabled.alert:hover,.button.disabled.alert:focus,.button[disabled].alert:hover,.button[disabled].alert:focus{background-color:#cf2a0e}button.disabled.alert:hover,button.disabled.alert:focus,button[disabled].alert:hover,button[disabled].alert:focus,.button.disabled.alert:hover,.button.disabled.alert:focus,.button[disabled].alert:hover,.button[disabled].alert:focus{color:#FFFFFF}button.disabled.alert:hover,button.disabled.alert:focus,button[disabled].alert:hover,button[disabled].alert:focus,.button.disabled.alert:hover,.button.disabled.alert:focus,.button[disabled].alert:hover,.button[disabled].alert:focus{background-color:#f04124}button.disabled.warning,button[disabled].warning,.button.disabled.warning,.button[disabled].warning{background-color:#f08a24;border-color:#cf6e0e;color:#FFFFFF;box-shadow:none;cursor:default;opacity:0.7}button.disabled.warning:hover,button.disabled.warning:focus,button[disabled].warning:hover,button[disabled].warning:focus,.button.disabled.warning:hover,.button.disabled.warning:focus,.button[disabled].warning:hover,.button[disabled].warning:focus{background-color:#cf6e0e}button.disabled.warning:hover,button.disabled.warning:focus,button[disabled].warning:hover,button[disabled].warning:focus,.button.disabled.warning:hover,.button.disabled.warning:focus,.button[disabled].warning:hover,.button[disabled].warning:focus{color:#FFFFFF}button.disabled.warning:hover,button.disabled.warning:focus,button[disabled].warning:hover,button[disabled].warning:focus,.button.disabled.warning:hover,.button.disabled.warning:focus,.button[disabled].warning:hover,.button[disabled].warning:focus{background-color:#f08a24}button.disabled.info,button[disabled].info,.button.disabled.info,.button[disabled].info{background-color:#a0d3e8;border-color:#61b6d9;color:#333333;box-shadow:none;cursor:default;opacity:0.7}button.disabled.info:hover,button.disabled.info:focus,button[disabled].info:hover,button[disabled].info:focus,.button.disabled.info:hover,.button.disabled.info:focus,.button[disabled].info:hover,.button[disabled].info:focus{background-color:#61b6d9}button.disabled.info:hover,button.disabled.info:focus,button[disabled].info:hover,button[disabled].info:focus,.button.disabled.info:hover,.button.disabled.info:focus,.button[disabled].info:hover,.button[disabled].info:focus{color:#FFFFFF}button.disabled.info:hover,button.disabled.info:focus,button[disabled].info:hover,button[disabled].info:focus,.button.disabled.info:hover,.button.disabled.info:focus,.button[disabled].info:hover,.button[disabled].info:focus{background-color:#a0d3e8}button::-moz-focus-inner{border:0;padding:0}@media only screen and (min-width:40.063em){button,.button{display:inline-block}}.button-group{list-style:none;margin:0;left:0}.button-group:before,.button-group:after{content:" ";display:table}.button-group:after{clear:both}.button-group.even-2 li{display:inline-block;margin:0 -2px;width:50%}.button-group.even-2 li>button,.button-group.even-2 li .button{border-left:1px solid;border-color:rgba(255,255,255,0.5)}.button-group.even-2 li:first-child button,.button-group.even-2 li:first-child .button{border-left:0}.button-group.even-2 li button,.button-group.even-2 li .button{width:100%}.button-group.even-3 li{display:inline-block;margin:0 -2px;width:33.3333333333%}.button-group.even-3 li>button,.button-group.even-3 li .button{border-left:1px solid;border-color:rgba(255,255,255,0.5)}.button-group.even-3 li:first-child button,.button-group.even-3 li:first-child .button{border-left:0}.button-group.even-3 li button,.button-group.even-3 li .button{width:100%}.button-group.even-4 li{display:inline-block;margin:0 -2px;width:25%}.button-group.even-4 li>button,.button-group.even-4 li .button{border-left:1px solid;border-color:rgba(255,255,255,0.5)}.button-group.even-4 li:first-child button,.button-group.even-4 li:first-child .button{border-left:0}.button-group.even-4 li button,.button-group.even-4 li .button{width:100%}.button-group.even-5 li{display:inline-block;margin:0 -2px;width:20%}.button-group.even-5 li>button,.button-group.even-5 li .button{border-left:1px solid;border-color:rgba(255,255,255,0.5)}.button-group.even-5 li:first-child button,.button-group.even-5 li:first-child .button{border-left:0}.button-group.even-5 li button,.button-group.even-5 li .button{width:100%}.button-group.even-6 li{display:inline-block;margin:0 -2px;width:16.6666666667%}.button-group.even-6 li>button,.button-group.even-6 li .button{border-left:1px solid;border-color:rgba(255,255,255,0.5)}.button-group.even-6 li:first-child button,.button-group.even-6 li:first-child .button{border-left:0}.button-group.even-6 li button,.button-group.even-6 li .button{width:100%}.button-group.even-7 li{display:inline-block;margin:0 -2px;width:14.2857142857%}.button-group.even-7 li>button,.button-group.even-7 li .button{border-left:1px solid;border-color:rgba(255,255,255,0.5)}.button-group.even-7 li:first-child button,.button-group.even-7 li:first-child .button{border-left:0}.button-group.even-7 li button,.button-group.even-7 li .button{width:100%}.button-group.even-8 li{display:inline-block;margin:0 -2px;width:12.5%}.button-group.even-8 li>button,.button-group.even-8 li .button{border-left:1px solid;border-color:rgba(255,255,255,0.5)}.button-group.even-8 li:first-child button,.button-group.even-8 li:first-child .button{border-left:0}.button-group.even-8 li button,.button-group.even-8 li .button{width:100%}.button-group>li{display:inline-block;margin:0 -2px}.button-group>li>button,.button-group>li .button{border-left:1px solid;border-color:rgba(255,255,255,0.5)}.button-group>li:first-child button,.button-group>li:first-child .button{border-left:0}.button-group.stack>li{display:block;margin:0;float:none}.button-group.stack>li>button,.button-group.stack>li .button{border-left:1px solid;border-color:rgba(255,255,255,0.5)}.button-group.stack>li:first-child button,.button-group.stack>li:first-child .button{border-left:0}.button-group.stack>li>button,.button-group.stack>li .button{border-color:rgba(255,255,255,0.5);border-left-width:0;border-top:1px solid;display:block;margin:0}.button-group.stack>li>button{width:100%}.button-group.stack>li:first-child button,.button-group.stack>li:first-child .button{border-top:0}.button-group.stack-for-small>li{display:inline-block;margin:0 -2px}.button-group.stack-for-small>li>button,.button-group.stack-for-small>li .button{border-left:1px solid;border-color:rgba(255,255,255,0.5)}.button-group.stack-for-small>li:first-child button,.button-group.stack-for-small>li:first-child .button{border-left:0}@media only screen and (max-width: 40em){.button-group.stack-for-small>li{display:block;margin:0;width:100%;}.button-group.stack-for-small>li>button,.button-group.stack-for-small>li .button{border-left:1px solid;border-color:rgba(255,255,255,0.5)}.button-group.stack-for-small>li:first-child button,.button-group.stack-for-small>li:first-child .button{border-left:0}.button-group.stack-for-small>li>button,.button-group.stack-for-small>li .button{border-color:rgba(255,255,255,0.5);border-left-width:0;border-top:1px solid;display:block;margin:0}.button-group.stack-for-small>li>button{width:100%}.button-group.stack-for-small>li:first-child button,.button-group.stack-for-small>li:first-child .button{border-top:0}}.button-group.radius>*{display:inline-block;margin:0 -2px}.button-group.radius>*>button,.button-group.radius>* .button{border-left:1px solid;border-color:rgba(255,255,255,0.5)}.button-group.radius>*:first-child button,.button-group.radius>*:first-child .button{border-left:0}.button-group.radius>*,.button-group.radius>*>a,.button-group.radius>*>button,.button-group.radius>*>.button{border-radius:0}.button-group.radius>*:first-child,.button-group.radius>*:first-child>a,.button-group.radius>*:first-child>button,.button-group.radius>*:first-child>.button{-webkit-border-bottom-left-radius:3px;-webkit-border-top-left-radius:3px;border-bottom-left-radius:3px;border-top-left-radius:3px}.button-group.radius>*:last-child,.button-group.radius>*:last-child>a,.button-group.radius>*:last-child>button,.button-group.radius>*:last-child>.button{-webkit-border-bottom-right-radius:3px;-webkit-border-top-right-radius:3px;border-bottom-right-radius:3px;border-top-right-radius:3px}.button-group.radius.stack>*{display:block;margin:0}.button-group.radius.stack>*>button,.button-group.radius.stack>* .button{border-left:1px solid;border-color:rgba(255,255,255,0.5)}.button-group.radius.stack>*:first-child button,.button-group.radius.stack>*:first-child .button{border-left:0}.button-group.radius.stack>*>button,.button-group.radius.stack>* .button{border-color:rgba(255,255,255,0.5);border-left-width:0;border-top:1px solid;display:block;margin:0}.button-group.radius.stack>*>button{width:100%}.button-group.radius.stack>*:first-child button,.button-group.radius.stack>*:first-child .button{border-top:0}.button-group.radius.stack>*,.button-group.radius.stack>*>a,.button-group.radius.stack>*>button,.button-group.radius.stack>*>.button{border-radius:0}.button-group.radius.stack>*:first-child,.button-group.radius.stack>*:first-child>a,.button-group.radius.stack>*:first-child>button,.button-group.radius.stack>*:first-child>.button{-webkit-top-left-radius:3px;-webkit-top-right-radius:3px;border-top-left-radius:3px;border-top-right-radius:3px}.button-group.radius.stack>*:last-child,.button-group.radius.stack>*:last-child>a,.button-group.radius.stack>*:last-child>button,.button-group.radius.stack>*:last-child>.button{-webkit-bottom-left-radius:3px;-webkit-bottom-right-radius:3px;border-bottom-left-radius:3px;border-bottom-right-radius:3px}@media only screen and (min-width:40.063em){.button-group.radius.stack-for-small>*{display:inline-block;margin:0 -2px;}.button-group.radius.stack-for-small>*>button,.button-group.radius.stack-for-small>* .button{border-left:1px solid;border-color:rgba(255,255,255,0.5)}.button-group.radius.stack-for-small>*:first-child button,.button-group.radius.stack-for-small>*:first-child .button{border-left:0}.button-group.radius.stack-for-small>*,.button-group.radius.stack-for-small>*>a,.button-group.radius.stack-for-small>*>button,.button-group.radius.stack-for-small>*>.button{border-radius:0}.button-group.radius.stack-for-small>*:first-child,.button-group.radius.stack-for-small>*:first-child>a,.button-group.radius.stack-for-small>*:first-child>button,.button-group.radius.stack-for-small>*:first-child>.button{-webkit-border-bottom-left-radius:3px;-webkit-border-top-left-radius:3px;border-bottom-left-radius:3px;border-top-left-radius:3px}.button-group.radius.stack-for-small>*:last-child,.button-group.radius.stack-for-small>*:last-child>a,.button-group.radius.stack-for-small>*:last-child>button,.button-group.radius.stack-for-small>*:last-child>.button{-webkit-border-bottom-right-radius:3px;-webkit-border-top-right-radius:3px;border-bottom-right-radius:3px;border-top-right-radius:3px}}@media only screen and (max-width: 40em){.button-group.radius.stack-for-small>*{display:block;margin:0;}.button-group.radius.stack-for-small>*>button,.button-group.radius.stack-for-small>* .button{border-left:1px solid;border-color:rgba(255,255,255,0.5)}.button-group.radius.stack-for-small>*:first-child button,.button-group.radius.stack-for-small>*:first-child .button{border-left:0}.button-group.radius.stack-for-small>*>button,.button-group.radius.stack-for-small>* .button{border-color:rgba(255,255,255,0.5);border-left-width:0;border-top:1px solid;display:block;margin:0}.button-group.radius.stack-for-small>*>button{width:100%}.button-group.radius.stack-for-small>*:first-child button,.button-group.radius.stack-for-small>*:first-child .button{border-top:0}.button-group.radius.stack-for-small>*,.button-group.radius.stack-for-small>*>a,.button-group.radius.stack-for-small>*>button,.button-group.radius.stack-for-small>*>.button{border-radius:0}.button-group.radius.stack-for-small>*:first-child,.button-group.radius.stack-for-small>*:first-child>a,.button-group.radius.stack-for-small>*:first-child>button,.button-group.radius.stack-for-small>*:first-child>.button{-webkit-top-left-radius:3px;-webkit-top-right-radius:3px;border-top-left-radius:3px;border-top-right-radius:3px}.button-group.radius.stack-for-small>*:last-child,.button-group.radius.stack-for-small>*:last-child>a,.button-group.radius.stack-for-small>*:last-child>button,.button-group.radius.stack-for-small>*:last-child>.button{-webkit-bottom-left-radius:3px;-webkit-bottom-right-radius:3px;border-bottom-left-radius:3px;border-bottom-right-radius:3px}}.button-group.round>*{display:inline-block;margin:0 -2px}.button-group.round>*>button,.button-group.round>* .button{border-left:1px solid;border-color:rgba(255,255,255,0.5)}.button-group.round>*:first-child button,.button-group.round>*:first-child .button{border-left:0}.button-group.round>*,.button-group.round>*>a,.button-group.round>*>button,.button-group.round>*>.button{border-radius:0}.button-group.round>*:first-child,.button-group.round>*:first-child>a,.button-group.round>*:first-child>button,.button-group.round>*:first-child>.button{-webkit-border-bottom-left-radius:1000px;-webkit-border-top-left-radius:1000px;border-bottom-left-radius:1000px;border-top-left-radius:1000px}.button-group.round>*:last-child,.button-group.round>*:last-child>a,.button-group.round>*:last-child>button,.button-group.round>*:last-child>.button{-webkit-border-bottom-right-radius:1000px;-webkit-border-top-right-radius:1000px;border-bottom-right-radius:1000px;border-top-right-radius:1000px}.button-group.round.stack>*{display:block;margin:0}.button-group.round.stack>*>button,.button-group.round.stack>* .button{border-left:1px solid;border-color:rgba(255,255,255,0.5)}.button-group.round.stack>*:first-child button,.button-group.round.stack>*:first-child .button{border-left:0}.button-group.round.stack>*>button,.button-group.round.stack>* .button{border-color:rgba(255,255,255,0.5);border-left-width:0;border-top:1px solid;display:block;margin:0}.button-group.round.stack>*>button{width:100%}.button-group.round.stack>*:first-child button,.button-group.round.stack>*:first-child .button{border-top:0}.button-group.round.stack>*,.button-group.round.stack>*>a,.button-group.round.stack>*>button,.button-group.round.stack>*>.button{border-radius:0}.button-group.round.stack>*:first-child,.button-group.round.stack>*:first-child>a,.button-group.round.stack>*:first-child>button,.button-group.round.stack>*:first-child>.button{-webkit-top-left-radius:1rem;-webkit-top-right-radius:1rem;border-top-left-radius:1rem;border-top-right-radius:1rem}.button-group.round.stack>*:last-child,.button-group.round.stack>*:last-child>a,.button-group.round.stack>*:last-child>button,.button-group.round.stack>*:last-child>.button{-webkit-bottom-left-radius:1rem;-webkit-bottom-right-radius:1rem;border-bottom-left-radius:1rem;border-bottom-right-radius:1rem}@media only screen and (min-width:40.063em){.button-group.round.stack-for-small>*{display:inline-block;margin:0 -2px;}.button-group.round.stack-for-small>*>button,.button-group.round.stack-for-small>* .button{border-left:1px solid;border-color:rgba(255,255,255,0.5)}.button-group.round.stack-for-small>*:first-child button,.button-group.round.stack-for-small>*:first-child .button{border-left:0}.button-group.round.stack-for-small>*,.button-group.round.stack-for-small>*>a,.button-group.round.stack-for-small>*>button,.button-group.round.stack-for-small>*>.button{border-radius:0}.button-group.round.stack-for-small>*:first-child,.button-group.round.stack-for-small>*:first-child>a,.button-group.round.stack-for-small>*:first-child>button,.button-group.round.stack-for-small>*:first-child>.button{-webkit-border-bottom-left-radius:1000px;-webkit-border-top-left-radius:1000px;border-bottom-left-radius:1000px;border-top-left-radius:1000px}.button-group.round.stack-for-small>*:last-child,.button-group.round.stack-for-small>*:last-child>a,.button-group.round.stack-for-small>*:last-child>button,.button-group.round.stack-for-small>*:last-child>.button{-webkit-border-bottom-right-radius:1000px;-webkit-border-top-right-radius:1000px;border-bottom-right-radius:1000px;border-top-right-radius:1000px}}@media only screen and (max-width: 40em){.button-group.round.stack-for-small>*{display:block;margin:0;}.button-group.round.stack-for-small>*>button,.button-group.round.stack-for-small>* .button{border-left:1px solid;border-color:rgba(255,255,255,0.5)}.button-group.round.stack-for-small>*:first-child button,.button-group.round.stack-for-small>*:first-child .button{border-left:0}.button-group.round.stack-for-small>*>button,.button-group.round.stack-for-small>* .button{border-color:rgba(255,255,255,0.5);border-left-width:0;border-top:1px solid;display:block;margin:0}.button-group.round.stack-for-small>*>button{width:100%}.button-group.round.stack-for-small>*:first-child button,.button-group.round.stack-for-small>*:first-child .button{border-top:0}.button-group.round.stack-for-small>*,.button-group.round.stack-for-small>*>a,.button-group.round.stack-for-small>*>button,.button-group.round.stack-for-small>*>.button{border-radius:0}.button-group.round.stack-for-small>*:first-child,.button-group.round.stack-for-small>*:first-child>a,.button-group.round.stack-for-small>*:first-child>button,.button-group.round.stack-for-small>*:first-child>.button{-webkit-top-left-radius:1rem;-webkit-top-right-radius:1rem;border-top-left-radius:1rem;border-top-right-radius:1rem}.button-group.round.stack-for-small>*:last-child,.button-group.round.stack-for-small>*:last-child>a,.button-group.round.stack-for-small>*:last-child>button,.button-group.round.stack-for-small>*:last-child>.button{-webkit-bottom-left-radius:1rem;-webkit-bottom-right-radius:1rem;border-bottom-left-radius:1rem;border-bottom-right-radius:1rem}}.button-bar:before,.button-bar:after{content:" ";display:table}.button-bar:after{clear:both}.button-bar .button-group{float:left;margin-right:0.625rem}.button-bar .button-group div{overflow:hidden}.clearing-thumbs,[data-clearing]{list-style:none;margin-left:0;margin-bottom:0}.clearing-thumbs:before,.clearing-thumbs:after,[data-clearing]:before,[data-clearing]:after{content:" ";display:table}.clearing-thumbs:after,[data-clearing]:after{clear:both}.clearing-thumbs li,[data-clearing] li{float:left;margin-right:10px}.clearing-thumbs[class*="block-grid-"] li,[data-clearing][class*="block-grid-"] li{margin-right:0}.clearing-blackout{background:#333333;height:100%;position:fixed;top:0;width:100%;z-index:998;left:0}.clearing-blackout .clearing-close{display:block}.clearing-container{height:100%;margin:0;overflow:hidden;position:relative;z-index:998}.clearing-touch-label{color:#AAAAAA;font-size:.6em;left:50%;position:absolute;top:50%}.visible-img{height:95%;position:relative}.visible-img img{position:absolute;left:50%;top:50%;-webkit-transform:translateY(-50%) translateX(-50%);-moz-transform:translateY(-50%) translateX(-50%);-ms-transform:translateY(-50%) translateX(-50%);-o-transform:translateY(-50%) translateX(-50%);transform:translateY(-50%) translateX(-50%);max-height:100%;max-width:100%}.clearing-caption{background:#333333;bottom:0;color:#CCCCCC;font-size:0.875em;line-height:1.3;margin-bottom:0;padding:10px 30px 20px;position:absolute;text-align:center;width:100%;left:0}.clearing-close{color:#CCCCCC;display:none;font-size:30px;line-height:1;padding-left:20px;padding-top:10px;z-index:999}.clearing-close:hover,.clearing-close:focus{color:#CCCCCC}.clearing-assembled .clearing-container{height:100%}.clearing-assembled .clearing-container .carousel>ul{display:none}.clearing-feature li{display:none}.clearing-feature li.clearing-featured-img{display:block}@media only screen and (min-width:40.063em){.clearing-main-prev,.clearing-main-next{height:100%;position:absolute;top:0;width:40px}.clearing-main-prev>span,.clearing-main-next>span{border:solid 12px;display:block;height:0;position:absolute;top:50%;width:0}.clearing-main-prev>span:hover,.clearing-main-next>span:hover{opacity:.8}.clearing-main-prev{left:0}.clearing-main-prev>span{left:5px;border-color:transparent;border-right-color:#CCCCCC}.clearing-main-next{right:0}.clearing-main-next>span{border-color:transparent;border-left-color:#CCCCCC}.clearing-main-prev.disabled,.clearing-main-next.disabled{opacity:.3}.clearing-assembled .clearing-container .carousel{background:rgba(51,51,51,0.8);height:120px;margin-top:10px;text-align:center}.clearing-assembled .clearing-container .carousel>ul{display:inline-block;z-index:999;height:100%;position:relative;float:none}.clearing-assembled .clearing-container .carousel>ul li{clear:none;cursor:pointer;display:block;float:left;margin-right:0;min-height:inherit;opacity:.4;overflow:hidden;padding:0;position:relative;width:120px}.clearing-assembled .clearing-container .carousel>ul li.fix-height img{height:100%;max-width:none}.clearing-assembled .clearing-container .carousel>ul li a.th{border:none;box-shadow:none;display:block}.clearing-assembled .clearing-container .carousel>ul li img{cursor:pointer !important;width:100% !important}.clearing-assembled .clearing-container .carousel>ul li.visible{opacity:1}.clearing-assembled .clearing-container .carousel>ul li:hover{opacity:.8}.clearing-assembled .clearing-container .visible-img{background:#333333;height:85%;overflow:hidden}.clearing-close{padding-left:0;padding-top:0;position:absolute;top:10px;right:20px}}.f-dropdown{display:none;left:-9999px;list-style:none;margin-left:0;position:absolute;background:#FFFFFF;border:solid 1px #cccccc;font-size:0.875rem;height:auto;max-height:none;width:100%;z-index:89;margin-top:2px;max-width:200px}.f-dropdown.open{display:block}.f-dropdown>*:first-child{margin-top:0}.f-dropdown>*:last-child{margin-bottom:0}.f-dropdown:before{border:inset 6px;content:"";display:block;height:0;width:0;border-color:transparent transparent #FFFFFF transparent;border-bottom-style:solid;position:absolute;top:-12px;left:10px;z-index:89}.f-dropdown:after{border:inset 7px;content:"";display:block;height:0;width:0;border-color:transparent transparent #cccccc transparent;border-bottom-style:solid;position:absolute;top:-14px;left:9px;z-index:88}.f-dropdown.right:before{left:auto;right:10px}.f-dropdown.right:after{left:auto;right:9px}.f-dropdown.drop-right{display:none;left:-9999px;list-style:none;margin-left:0;position:absolute;background:#FFFFFF;border:solid 1px #cccccc;font-size:0.875rem;height:auto;max-height:none;width:100%;z-index:89;margin-top:0;margin-left:2px;max-width:200px}.f-dropdown.drop-right.open{display:block}.f-dropdown.drop-right>*:first-child{margin-top:0}.f-dropdown.drop-right>*:last-child{margin-bottom:0}.f-dropdown.drop-right:before{border:inset 6px;content:"";display:block;height:0;width:0;border-color:transparent #FFFFFF transparent transparent;border-right-style:solid;position:absolute;top:10px;left:-12px;z-index:89}.f-dropdown.drop-right:after{border:inset 7px;content:"";display:block;height:0;width:0;border-color:transparent #cccccc transparent transparent;border-right-style:solid;position:absolute;top:9px;left:-14px;z-index:88}.f-dropdown.drop-left{display:none;left:-9999px;list-style:none;margin-left:0;position:absolute;background:#FFFFFF;border:solid 1px #cccccc;font-size:0.875rem;height:auto;max-height:none;width:100%;z-index:89;margin-top:0;margin-left:-2px;max-width:200px}.f-dropdown.drop-left.open{display:block}.f-dropdown.drop-left>*:first-child{margin-top:0}.f-dropdown.drop-left>*:last-child{margin-bottom:0}.f-dropdown.drop-left:before{border:inset 6px;content:"";display:block;height:0;width:0;border-color:transparent transparent transparent #FFFFFF;border-left-style:solid;position:absolute;top:10px;right:-12px;left:auto;z-index:89}.f-dropdown.drop-left:after{border:inset 7px;content:"";display:block;height:0;width:0;border-color:transparent transparent transparent #cccccc;border-left-style:solid;position:absolute;top:9px;right:-14px;left:auto;z-index:88}.f-dropdown.drop-top{display:none;left:-9999px;list-style:none;margin-left:0;position:absolute;background:#FFFFFF;border:solid 1px #cccccc;font-size:0.875rem;height:auto;max-height:none;width:100%;z-index:89;margin-left:0;margin-top:-2px;max-width:200px}.f-dropdown.drop-top.open{display:block}.f-dropdown.drop-top>*:first-child{margin-top:0}.f-dropdown.drop-top>*:last-child{margin-bottom:0}.f-dropdown.drop-top:before{border:inset 6px;content:"";display:block;height:0;width:0;border-color:#FFFFFF transparent transparent transparent;border-top-style:solid;bottom:-12px;position:absolute;top:auto;left:10px;right:auto;z-index:89}.f-dropdown.drop-top:after{border:inset 7px;content:"";display:block;height:0;width:0;border-color:#cccccc transparent transparent transparent;border-top-style:solid;bottom:-14px;position:absolute;top:auto;left:9px;right:auto;z-index:88}.f-dropdown li{cursor:pointer;font-size:0.875rem;line-height:1.125rem;margin:0}.f-dropdown li:hover,.f-dropdown li:focus{background:#EEEEEE}.f-dropdown li a{display:block;padding:0.5rem;color:#555555}.f-dropdown.content{display:none;left:-9999px;list-style:none;margin-left:0;position:absolute;background:#FFFFFF;border:solid 1px #cccccc;font-size:0.875rem;height:auto;max-height:none;padding:1rem;width:100%;z-index:89;max-width:200px}.f-dropdown.content.open{display:block}.f-dropdown.content>*:first-child{margin-top:0}.f-dropdown.content>*:last-child{margin-bottom:0}.f-dropdown.radius{border-radius:3px}.f-dropdown.tiny{max-width:200px}.f-dropdown.small{max-width:300px}.f-dropdown.medium{max-width:500px}.f-dropdown.large{max-width:800px}.f-dropdown.mega{width:100% !important;max-width:100% !important}.f-dropdown.mega.open{left:0 !important}.dropdown.button,button.dropdown{position:relative;padding-right:3.5625rem}.dropdown.button::after,button.dropdown::after{border-color:#FFFFFF transparent transparent transparent;border-style:solid;content:"";display:block;height:0;position:absolute;top:50%;width:0}.dropdown.button::after,button.dropdown::after{border-width:0.375rem;right:1.40625rem;margin-top:-0.15625rem}.dropdown.button::after,button.dropdown::after{border-color:#FFFFFF transparent transparent transparent}.dropdown.button.tiny,button.dropdown.tiny{padding-right:2.625rem}.dropdown.button.tiny:after,button.dropdown.tiny:after{border-width:0.375rem;right:1.125rem;margin-top:-0.125rem}.dropdown.button.tiny::after,button.dropdown.tiny::after{border-color:#FFFFFF transparent transparent transparent}.dropdown.button.small,button.dropdown.small{padding-right:3.0625rem}.dropdown.button.small::after,button.dropdown.small::after{border-width:0.4375rem;right:1.3125rem;margin-top:-0.15625rem}.dropdown.button.small::after,button.dropdown.small::after{border-color:#FFFFFF transparent transparent transparent}.dropdown.button.large,button.dropdown.large{padding-right:3.625rem}.dropdown.button.large::after,button.dropdown.large::after{border-width:0.3125rem;right:1.71875rem;margin-top:-0.15625rem}.dropdown.button.large::after,button.dropdown.large::after{border-color:#FFFFFF transparent transparent transparent}.dropdown.button.secondary:after,button.dropdown.secondary:after{border-color:#333333 transparent transparent transparent}.flex-video{height:0;margin-bottom:1rem;overflow:hidden;padding-bottom:67.5%;padding-top:1.5625rem;position:relative}.flex-video.widescreen{padding-bottom:56.34%}.flex-video.vimeo{padding-top:0}.flex-video iframe,.flex-video object,.flex-video embed,.flex-video video{height:100%;position:absolute;top:0;width:100%;left:0}form{margin:0 0 1rem}form .row .row{margin:0 -0.5rem}form .row .row .column,form .row .row .columns{padding:0 0.5rem}form .row .row.collapse{margin:0}form .row .row.collapse .column,form .row .row.collapse .columns{padding:0}form .row .row.collapse input{-webkit-border-bottom-right-radius:0;-webkit-border-top-right-radius:0;border-bottom-right-radius:0;border-top-right-radius:0}form .row input.column,form .row input.columns,form .row textarea.column,form .row textarea.columns{padding-left:0.5rem}label{color:#4d4d4d;cursor:pointer;display:block;font-size:0.875rem;font-weight:normal;line-height:1.5;margin-bottom:0}label.right{float:none !important;text-align:right}label.inline{margin:0 0 1rem 0;padding:0.5625rem 0}label small{text-transform:capitalize;color:#676767}.prefix,.postfix{border-style:solid;border-width:1px;display:block;font-size:0.875rem;height:2.3125rem;line-height:2.3125rem;overflow:visible;padding-bottom:0;padding-top:0;position:relative;text-align:center;width:100%;z-index:2}.postfix.button{border:none;padding-left:0;padding-right:0;padding-bottom:0;padding-top:0;text-align:center}.prefix.button{border:none;padding-left:0;padding-right:0;padding-bottom:0;padding-top:0;text-align:center}.prefix.button.radius{border-radius:0;-webkit-border-bottom-left-radius:3px;-webkit-border-top-left-radius:3px;border-bottom-left-radius:3px;border-top-left-radius:3px}.postfix.button.radius{border-radius:0;-webkit-border-bottom-right-radius:3px;-webkit-border-top-right-radius:3px;border-bottom-right-radius:3px;border-top-right-radius:3px}.prefix.button.round{border-radius:0;-webkit-border-bottom-left-radius:1000px;-webkit-border-top-left-radius:1000px;border-bottom-left-radius:1000px;border-top-left-radius:1000px}.postfix.button.round{border-radius:0;-webkit-border-bottom-right-radius:1000px;-webkit-border-top-right-radius:1000px;border-bottom-right-radius:1000px;border-top-right-radius:1000px}span.prefix,label.prefix{background:#f2f2f2;border-right:none;color:#333333;border-color:#cccccc}span.postfix,label.postfix{background:#f2f2f2;border-left:none;color:#333333;border-color:#cccccc}input:not([type]),input[type="text"],input[type="password"],input[type="date"],input[type="datetime"],input[type="datetime-local"],input[type="month"],input[type="week"],input[type="email"],input[type="number"],input[type="search"],input[type="tel"],input[type="time"],input[type="url"],input[type="color"],textarea{-webkit-appearance:none;-moz-appearance:none;border-radius:0;background-color:#FFFFFF;border-style:solid;border-width:1px;border-color:#cccccc;box-shadow:inset 0 1px 2px rgba(0,0,0,0.1);color:rgba(0,0,0,0.75);display:block;font-family:inherit;font-size:0.875rem;height:2.3125rem;margin:0 0 1rem 0;padding:0.5rem;width:100%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;-webkit-transition:border-color 0.15s linear,background 0.15s linear;-moz-transition:border-color 0.15s linear,background 0.15s linear;-ms-transition:border-color 0.15s linear,background 0.15s linear;-o-transition:border-color 0.15s linear,background 0.15s linear;transition:border-color 0.15s linear,background 0.15s linear}input:not([type]):focus,input[type="text"]:focus,input[type="password"]:focus,input[type="date"]:focus,input[type="datetime"]:focus,input[type="datetime-local"]:focus,input[type="month"]:focus,input[type="week"]:focus,input[type="email"]:focus,input[type="number"]:focus,input[type="search"]:focus,input[type="tel"]:focus,input[type="time"]:focus,input[type="url"]:focus,input[type="color"]:focus,textarea:focus{background:#fafafa;border-color:#999999;outline:none}input:not([type]):disabled,input[type="text"]:disabled,input[type="password"]:disabled,input[type="date"]:disabled,input[type="datetime"]:disabled,input[type="datetime-local"]:disabled,input[type="month"]:disabled,input[type="week"]:disabled,input[type="email"]:disabled,input[type="number"]:disabled,input[type="search"]:disabled,input[type="tel"]:disabled,input[type="time"]:disabled,input[type="url"]:disabled,input[type="color"]:disabled,textarea:disabled{background-color:#DDDDDD;cursor:default}input:not([type])[disabled],input:not([type])[readonly],fieldset[disabled] input:not([type]),input[type="text"][disabled],input[type="text"][readonly],fieldset[disabled] input[type="text"],input[type="password"][disabled],input[type="password"][readonly],fieldset[disabled] input[type="password"],input[type="date"][disabled],input[type="date"][readonly],fieldset[disabled] input[type="date"],input[type="datetime"][disabled],input[type="datetime"][readonly],fieldset[disabled] input[type="datetime"],input[type="datetime-local"][disabled],input[type="datetime-local"][readonly],fieldset[disabled] input[type="datetime-local"],input[type="month"][disabled],input[type="month"][readonly],fieldset[disabled] input[type="month"],input[type="week"][disabled],input[type="week"][readonly],fieldset[disabled] input[type="week"],input[type="email"][disabled],input[type="email"][readonly],fieldset[disabled] input[type="email"],input[type="number"][disabled],input[type="number"][readonly],fieldset[disabled] input[type="number"],input[type="search"][disabled],input[type="search"][readonly],fieldset[disabled] input[type="search"],input[type="tel"][disabled],input[type="tel"][readonly],fieldset[disabled] input[type="tel"],input[type="time"][disabled],input[type="time"][readonly],fieldset[disabled] input[type="time"],input[type="url"][disabled],input[type="url"][readonly],fieldset[disabled] input[type="url"],input[type="color"][disabled],input[type="color"][readonly],fieldset[disabled] input[type="color"],textarea[disabled],textarea[readonly],fieldset[disabled] textarea{background-color:#DDDDDD;cursor:default}input:not([type]).radius,input[type="text"].radius,input[type="password"].radius,input[type="date"].radius,input[type="datetime"].radius,input[type="datetime-local"].radius,input[type="month"].radius,input[type="week"].radius,input[type="email"].radius,input[type="number"].radius,input[type="search"].radius,input[type="tel"].radius,input[type="time"].radius,input[type="url"].radius,input[type="color"].radius,textarea.radius{border-radius:3px}form .row .prefix-radius.row.collapse input,form .row .prefix-radius.row.collapse textarea,form .row .prefix-radius.row.collapse select,form .row .prefix-radius.row.collapse button{border-radius:0;-webkit-border-bottom-right-radius:3px;-webkit-border-top-right-radius:3px;border-bottom-right-radius:3px;border-top-right-radius:3px}form .row .prefix-radius.row.collapse .prefix{border-radius:0;-webkit-border-bottom-left-radius:3px;-webkit-border-top-left-radius:3px;border-bottom-left-radius:3px;border-top-left-radius:3px}form .row .postfix-radius.row.collapse input,form .row .postfix-radius.row.collapse textarea,form .row .postfix-radius.row.collapse select,form .row .postfix-radius.row.collapse button{border-radius:0;-webkit-border-bottom-left-radius:3px;-webkit-border-top-left-radius:3px;border-bottom-left-radius:3px;border-top-left-radius:3px}form .row .postfix-radius.row.collapse .postfix{border-radius:0;-webkit-border-bottom-right-radius:3px;-webkit-border-top-right-radius:3px;border-bottom-right-radius:3px;border-top-right-radius:3px}form .row .prefix-round.row.collapse input,form .row .prefix-round.row.collapse textarea,form .row .prefix-round.row.collapse select,form .row .prefix-round.row.collapse button{border-radius:0;-webkit-border-bottom-right-radius:1000px;-webkit-border-top-right-radius:1000px;border-bottom-right-radius:1000px;border-top-right-radius:1000px}form .row .prefix-round.row.collapse .prefix{border-radius:0;-webkit-border-bottom-left-radius:1000px;-webkit-border-top-left-radius:1000px;border-bottom-left-radius:1000px;border-top-left-radius:1000px}form .row .postfix-round.row.collapse input,form .row .postfix-round.row.collapse textarea,form .row .postfix-round.row.collapse select,form .row .postfix-round.row.collapse button{border-radius:0;-webkit-border-bottom-left-radius:1000px;-webkit-border-top-left-radius:1000px;border-bottom-left-radius:1000px;border-top-left-radius:1000px}form .row .postfix-round.row.collapse .postfix{border-radius:0;-webkit-border-bottom-right-radius:1000px;-webkit-border-top-right-radius:1000px;border-bottom-right-radius:1000px;border-top-right-radius:1000px}input[type="submit"]{-webkit-appearance:none;-moz-appearance:none;border-radius:0}textarea[rows]{height:auto}textarea{max-width:100%}::-webkit-input-placeholder{color:#666666}:-moz-placeholder{color:#666666}::-moz-placeholder{color:#666666}:-ms-input-placeholder{color:#666666}select{-webkit-appearance:none !important;-moz-appearance:none !important;background-color:#FAFAFA;border-radius:0;background-image:url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZlcnNpb249IjEuMSIgeD0iMTJweCIgeT0iMHB4IiB3aWR0aD0iMjRweCIgaGVpZ2h0PSIzcHgiIHZpZXdCb3g9IjAgMCA2IDMiIGVuYWJsZS1iYWNrZ3JvdW5kPSJuZXcgMCAwIDYgMyIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+PHBvbHlnb24gcG9pbnRzPSI1Ljk5MiwwIDIuOTkyLDMgLTAuMDA4LDAgIi8+PC9zdmc+');background-position:100% center;background-repeat:no-repeat;border-style:solid;border-width:1px;border-color:#cccccc;color:rgba(0,0,0,0.75);font-family:inherit;font-size:0.875rem;line-height:normal;padding:0.5rem;border-radius:0;height:2.3125rem}select::-ms-expand{display:none}select.radius{border-radius:3px}select:focus{background-color:#f3f3f3;border-color:#999999}select:disabled{background-color:#DDDDDD;cursor:default}select[multiple]{height:auto}input[type="file"],input[type="checkbox"],input[type="radio"],select{margin:0 0 1rem 0}input[type="checkbox"]+label,input[type="radio"]+label{display:inline-block;margin-left:0.5rem;margin-right:1rem;margin-bottom:0;vertical-align:baseline}input[type="file"]{width:100%}fieldset{border:1px solid #DDDDDD;margin:1.125rem 0;padding:1.25rem}fieldset legend{font-weight:bold;margin:0;margin-left:-0.1875rem;padding:0 0.1875rem}[data-abide] .error small.error,[data-abide] .error span.error,[data-abide] span.error,[data-abide] small.error{display:block;font-size:0.75rem;font-style:italic;font-weight:normal;margin-bottom:1rem;margin-top:-1px;padding:0.375rem 0.5625rem 0.5625rem;background:#f04124;color:#FFFFFF}[data-abide] span.error,[data-abide] small.error{display:none}span.error,small.error{display:block;font-size:0.75rem;font-style:italic;font-weight:normal;margin-bottom:1rem;margin-top:-1px;padding:0.375rem 0.5625rem 0.5625rem;background:#f04124;color:#FFFFFF}.error input,.error textarea,.error select{margin-bottom:0}.error input[type="checkbox"],.error input[type="radio"]{margin-bottom:1rem}.error label,.error label.error{color:#f04124}.error small.error{display:block;font-size:0.75rem;font-style:italic;font-weight:normal;margin-bottom:1rem;margin-top:-1px;padding:0.375rem 0.5625rem 0.5625rem;background:#f04124;color:#FFFFFF}.error>label>small{background:transparent;color:#676767;display:inline;font-size:60%;font-style:normal;margin:0;padding:0;text-transform:capitalize}.error span.error-message{display:block}input.error,textarea.error,select.error{margin-bottom:0}label.error{color:#f04124}.icon-bar{display:inline-block;font-size:0;width:100%;background:#333333}.icon-bar>*{display:block;float:left;font-size:1rem;margin:0 auto;padding:1.25rem;text-align:center;width:25%}.icon-bar>* i,.icon-bar>* img{display:block;margin:0 auto}.icon-bar>* i+label,.icon-bar>* img+label{margin-top:.0625rem}.icon-bar>* i{font-size:1.875rem;vertical-align:middle}.icon-bar>* img{height:1.875rem;width:1.875rem}.icon-bar.label-right>* i,.icon-bar.label-right>* img{display:inline-block;margin:0 .0625rem 0 0}.icon-bar.label-right>* i+label,.icon-bar.label-right>* img+label{margin-top:0}.icon-bar.label-right>* label{display:inline-block}.icon-bar.vertical.label-right>*{text-align:left}.icon-bar.vertical,.icon-bar.small-vertical{height:100%;width:auto}.icon-bar.vertical .item,.icon-bar.small-vertical .item{float:none;margin:auto;width:auto}@media only screen and (min-width:40.063em){.icon-bar.medium-vertical{height:100%;width:auto;}.icon-bar.medium-vertical .item{float:none;margin:auto;width:auto}}@media only screen and (min-width:64.063em){.icon-bar.large-vertical{height:100%;width:auto;}.icon-bar.large-vertical .item{float:none;margin:auto;width:auto}}.icon-bar>*{font-size:1rem;padding:1.25rem}.icon-bar>* i+label,.icon-bar>* img+label{margin-top:.0625rem;font-size:1rem}.icon-bar>* i{font-size:1.875rem}.icon-bar>* img{height:1.875rem;width:1.875rem}.icon-bar>* label{color:#FFFFFF}.icon-bar>* i{color:#FFFFFF}.icon-bar>a:hover{background:#008CBA}.icon-bar>a:hover label{color:#FFFFFF}.icon-bar>a:hover i{color:#FFFFFF}.icon-bar>a.active{background:#008CBA}.icon-bar>a.active label{color:#FFFFFF}.icon-bar>a.active i{color:#FFFFFF}.icon-bar .item.disabled{cursor:false;opacity:0.7;pointer-events:none}.icon-bar .item.disabled>*{opacity:0.7;cursor:false}.icon-bar.two-up .item{width:50%}.icon-bar.two-up.vertical .item,.icon-bar.two-up.small-vertical .item{width:auto}@media only screen and (min-width:40.063em){.icon-bar.two-up.medium-vertical .item{width:auto;}}@media only screen and (min-width:64.063em){.icon-bar.two-up.large-vertical .item{width:auto;}}.icon-bar.three-up .item{width:33.3333%}.icon-bar.three-up.vertical .item,.icon-bar.three-up.small-vertical .item{width:auto}@media only screen and (min-width:40.063em){.icon-bar.three-up.medium-vertical .item{width:auto;}}@media only screen and (min-width:64.063em){.icon-bar.three-up.large-vertical .item{width:auto;}}.icon-bar.four-up .item{width:25%}.icon-bar.four-up.vertical .item,.icon-bar.four-up.small-vertical .item{width:auto}@media only screen and (min-width:40.063em){.icon-bar.four-up.medium-vertical .item{width:auto;}}@media only screen and (min-width:64.063em){.icon-bar.four-up.large-vertical .item{width:auto;}}.icon-bar.five-up .item{width:20%}.icon-bar.five-up.vertical .item,.icon-bar.five-up.small-vertical .item{width:auto}@media only screen and (min-width:40.063em){.icon-bar.five-up.medium-vertical .item{width:auto;}}@media only screen and (min-width:64.063em){.icon-bar.five-up.large-vertical .item{width:auto;}}.icon-bar.six-up .item{width:16.66667%}.icon-bar.six-up.vertical .item,.icon-bar.six-up.small-vertical .item{width:auto}@media only screen and (min-width:40.063em){.icon-bar.six-up.medium-vertical .item{width:auto;}}@media only screen and (min-width:64.063em){.icon-bar.six-up.large-vertical .item{width:auto;}}.icon-bar.seven-up .item{width:14.28571%}.icon-bar.seven-up.vertical .item,.icon-bar.seven-up.small-vertical .item{width:auto}@media only screen and (min-width:40.063em){.icon-bar.seven-up.medium-vertical .item{width:auto;}}@media only screen and (min-width:64.063em){.icon-bar.seven-up.large-vertical .item{width:auto;}}.icon-bar.eight-up .item{width:12.5%}.icon-bar.eight-up.vertical .item,.icon-bar.eight-up.small-vertical .item{width:auto}@media only screen and (min-width:40.063em){.icon-bar.eight-up.medium-vertical .item{width:auto;}}@media only screen and (min-width:64.063em){.icon-bar.eight-up.large-vertical .item{width:auto;}}.icon-bar.two-up .item{width:50%}.icon-bar.two-up.vertical .item,.icon-bar.two-up.small-vertical .item{width:auto}@media only screen and (min-width:40.063em){.icon-bar.two-up.medium-vertical .item{width:auto;}}@media only screen and (min-width:64.063em){.icon-bar.two-up.large-vertical .item{width:auto;}}.icon-bar.three-up .item{width:33.3333%}.icon-bar.three-up.vertical .item,.icon-bar.three-up.small-vertical .item{width:auto}@media only screen and (min-width:40.063em){.icon-bar.three-up.medium-vertical .item{width:auto;}}@media only screen and (min-width:64.063em){.icon-bar.three-up.large-vertical .item{width:auto;}}.icon-bar.four-up .item{width:25%}.icon-bar.four-up.vertical .item,.icon-bar.four-up.small-vertical .item{width:auto}@media only screen and (min-width:40.063em){.icon-bar.four-up.medium-vertical .item{width:auto;}}@media only screen and (min-width:64.063em){.icon-bar.four-up.large-vertical .item{width:auto;}}.icon-bar.five-up .item{width:20%}.icon-bar.five-up.vertical .item,.icon-bar.five-up.small-vertical .item{width:auto}@media only screen and (min-width:40.063em){.icon-bar.five-up.medium-vertical .item{width:auto;}}@media only screen and (min-width:64.063em){.icon-bar.five-up.large-vertical .item{width:auto;}}.icon-bar.six-up .item{width:16.66667%}.icon-bar.six-up.vertical .item,.icon-bar.six-up.small-vertical .item{width:auto}@media only screen and (min-width:40.063em){.icon-bar.six-up.medium-vertical .item{width:auto;}}@media only screen and (min-width:64.063em){.icon-bar.six-up.large-vertical .item{width:auto;}}.icon-bar.seven-up .item{width:14.28571%}.icon-bar.seven-up.vertical .item,.icon-bar.seven-up.small-vertical .item{width:auto}@media only screen and (min-width:40.063em){.icon-bar.seven-up.medium-vertical .item{width:auto;}}@media only screen and (min-width:64.063em){.icon-bar.seven-up.large-vertical .item{width:auto;}}.icon-bar.eight-up .item{width:12.5%}.icon-bar.eight-up.vertical .item,.icon-bar.eight-up.small-vertical .item{width:auto}@media only screen and (min-width:40.063em){.icon-bar.eight-up.medium-vertical .item{width:auto;}}@media only screen and (min-width:64.063em){.icon-bar.eight-up.large-vertical .item{width:auto;}}.inline-list{list-style:none;margin-top:0;margin-bottom:1.0625rem;margin-left:-1.375rem;margin-right:0;overflow:hidden;padding:0}.inline-list>li{display:block;float:left;list-style:none;margin-left:1.375rem}.inline-list>li>*{display:block}.joyride-list{display:none}.joyride-tip-guide{background:#333333;color:#FFFFFF;display:none;font-family:inherit;font-weight:normal;position:absolute;top:0;width:95%;z-index:103;left:2.5%}.lt-ie9 .joyride-tip-guide{margin-left:-400px;max-width:800px;left:50%}.joyride-content-wrapper{padding:1.125rem 1.25rem 1.5rem;width:100%}.joyride-content-wrapper .button{margin-bottom:0 !important}.joyride-content-wrapper .joyride-prev-tip{margin-right:10px}.joyride-tip-guide .joyride-nub{border:10px solid #333333;display:block;height:0;position:absolute;width:0;left:22px}.joyride-tip-guide .joyride-nub.top{border-color:#333333;border-top-color:transparent !important;border-top-style:solid;border-left-color:transparent !important;border-right-color:transparent !important;top:-20px}.joyride-tip-guide .joyride-nub.bottom{border-color:#333333 !important;border-bottom-color:transparent !important;border-bottom-style:solid;border-left-color:transparent !important;border-right-color:transparent !important;bottom:-20px}.joyride-tip-guide .joyride-nub.right{right:-20px}.joyride-tip-guide .joyride-nub.left{left:-20px}.joyride-tip-guide h1,.joyride-tip-guide h2,.joyride-tip-guide h3,.joyride-tip-guide h4,.joyride-tip-guide h5,.joyride-tip-guide h6{color:#FFFFFF;font-weight:bold;line-height:1.25;margin:0}.joyride-tip-guide p{font-size:0.875rem;line-height:1.3;margin:0 0 1.125rem 0}.joyride-timer-indicator-wrap{border:solid 1px #555555;bottom:1rem;height:3px;position:absolute;width:50px;right:1.0625rem}.joyride-timer-indicator{background:#666666;display:block;height:inherit;width:0}.joyride-close-tip{color:#777777 !important;font-size:24px;font-weight:normal;line-height:.5 !important;position:absolute;text-decoration:none;top:10px;right:12px}.joyride-close-tip:hover,.joyride-close-tip:focus{color:#EEEEEE !important}.joyride-modal-bg{background:rgba(0,0,0,0.5);cursor:pointer;display:none;height:100%;position:fixed;top:0;width:100%;z-index:100;left:0}.joyride-expose-wrapper{background-color:#FFFFFF;border-radius:3px;box-shadow:0 0 15px #FFFFFF;position:absolute;z-index:102}.joyride-expose-cover{background:transparent;border-radius:3px;left:0;position:absolute;top:0;z-index:9999}@media only screen{.joyride-tip-guide{width:300px;left:inherit}.joyride-tip-guide .joyride-nub.bottom{border-color:#333333 !important;border-bottom-color:transparent !important;border-left-color:transparent !important;border-right-color:transparent !important;bottom:-20px}.joyride-tip-guide .joyride-nub.right{border-color:#333333 !important;border-right-color:transparent !important;border-bottom-color:transparent !important;border-top-color:transparent !important;left:auto;right:-20px;top:22px}.joyride-tip-guide .joyride-nub.left{border-color:#333333 !important;border-bottom-color:transparent !important;border-left-color:transparent !important;border-top-color:transparent !important;left:-20px;right:auto;top:22px}}.keystroke,kbd{background-color:#ededed;border-color:#dddddd;color:#222222;border-style:solid;border-width:1px;font-family:"Consolas","Menlo","Courier",monospace;font-size:inherit;margin:0;padding:0.125rem 0.25rem 0;border-radius:3px}.label{display:inline-block;font-family:"Josefin Sans",sans-serif;font-weight:normal;line-height:1;margin-bottom:auto;position:relative;text-align:center;text-decoration:none;white-space:nowrap;padding:0.25rem 0.5rem 0.25rem;font-size:0.6875rem;background-color:#008CBA;color:#FFFFFF}.label.radius{border-radius:3px}.label.round{border-radius:1000px}.label.alert{background-color:#f04124;color:#FFFFFF}.label.warning{background-color:#f08a24;color:#FFFFFF}.label.success{background-color:#43AC6A;color:#FFFFFF}.label.secondary{background-color:#e7e7e7;color:#333333}.label.info{background-color:#a0d3e8;color:#333333}[data-magellan-expedition],[data-magellan-expedition-clone]{background:#FFFFFF;min-width:100%;padding:10px;z-index:50}[data-magellan-expedition] .sub-nav,[data-magellan-expedition-clone] .sub-nav{margin-bottom:0}[data-magellan-expedition] .sub-nav dd,[data-magellan-expedition-clone] .sub-nav dd{margin-bottom:0}[data-magellan-expedition] .sub-nav a,[data-magellan-expedition-clone] .sub-nav a{line-height:1.8em}@-webkit-keyframes rotate{from{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes rotate{from{-webkit-transform:rotate(0deg);-moz-transform:rotate(0deg);-ms-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(360deg);-moz-transform:rotate(360deg);-ms-transform:rotate(360deg);transform:rotate(360deg)}}.slideshow-wrapper{position:relative}.slideshow-wrapper ul{list-style-type:none;margin:0}.slideshow-wrapper ul li,.slideshow-wrapper ul li .orbit-caption{display:none}.slideshow-wrapper ul li:first-child{display:block}.slideshow-wrapper .orbit-container{background-color:transparent}.slideshow-wrapper .orbit-container li{display:block}.slideshow-wrapper .orbit-container li .orbit-caption{display:block}.slideshow-wrapper .orbit-container .orbit-bullets li{display:inline-block}.slideshow-wrapper .preloader{border-radius:1000px;animation-duration:1.5s;animation-iteration-count:infinite;animation-name:rotate;animation-timing-function:linear;border-color:#555555 #FFFFFF;border:solid 3px;display:block;height:40px;left:50%;margin-left:-20px;margin-top:-20px;position:absolute;top:50%;width:40px}.orbit-container{background:none;overflow:hidden;position:relative;width:100%}.orbit-container .orbit-slides-container{list-style:none;margin:0;padding:0;position:relative;-webkit-transform:translateZ(0);-moz-transform:translateZ(0);-ms-transform:translateZ(0);-o-transform:translateZ(0);transform:translateZ(0)}.orbit-container .orbit-slides-container img{display:block;max-width:100%}.orbit-container .orbit-slides-container>*{position:absolute;top:0;width:100%;margin-left:100%}.orbit-container .orbit-slides-container>*:first-child{margin-left:0}.orbit-container .orbit-slides-container>* .orbit-caption{bottom:0;position:absolute;background-color:rgba(51,51,51,0.8);color:#FFFFFF;font-size:0.875rem;padding:0.625rem 0.875rem;width:100%}.orbit-container .orbit-slide-number{left:10px;background:transparent;color:#FFFFFF;font-size:12px;position:absolute;top:10px;z-index:10}.orbit-container .orbit-slide-number span{font-weight:700;padding:0.3125rem}.orbit-container .orbit-timer{position:absolute;top:12px;right:10px;height:6px;width:100px;z-index:10}.orbit-container .orbit-timer .orbit-progress{height:3px;background-color:rgba(255,255,255,0.3);display:block;width:0;position:relative;right:20px;top:5px}.orbit-container .orbit-timer>span{border:solid 4px #FFFFFF;border-bottom:none;border-top:none;display:none;height:14px;position:absolute;top:0;width:11px;right:0}.orbit-container .orbit-timer.paused>span{top:0;width:11px;height:14px;border:inset 8px;border-left-style:solid;border-color:transparent;border-left-color:#FFFFFF;right:-4px}.orbit-container .orbit-timer.paused>span.dark{border-left-color:#333333}.orbit-container:hover .orbit-timer>span{display:block}.orbit-container .orbit-prev,.orbit-container .orbit-next{background-color:transparent;color:white;height:60px;line-height:50px;margin-top:-25px;position:absolute;text-indent:-9999px !important;top:45%;width:36px;z-index:10}.orbit-container .orbit-prev:hover,.orbit-container .orbit-next:hover{background-color:rgba(0,0,0,0.3)}.orbit-container .orbit-prev>span,.orbit-container .orbit-next>span{border:inset 10px;display:block;height:0;margin-top:-10px;position:absolute;top:50%;width:0}.orbit-container .orbit-prev{left:0}.orbit-container .orbit-prev>span{border-right-style:solid;border-color:transparent;border-right-color:#FFFFFF}.orbit-container .orbit-prev:hover>span{border-right-color:#FFFFFF}.orbit-container .orbit-next{right:0}.orbit-container .orbit-next>span{border-color:transparent;border-left-style:solid;border-left-color:#FFFFFF;left:50%;margin-left:-4px}.orbit-container .orbit-next:hover>span{border-left-color:#FFFFFF}.orbit-bullets-container{text-align:center}.orbit-bullets{display:block;float:none;margin:0 auto 30px auto;overflow:hidden;position:relative;text-align:center;top:10px}.orbit-bullets li{background:#CCCCCC;cursor:pointer;display:inline-block;float:none;height:0.5625rem;margin-right:6px;width:0.5625rem;border-radius:1000px}.orbit-bullets li.active{background:#999999}.orbit-bullets li:last-child{margin-right:0}.touch .orbit-container .orbit-prev,.touch .orbit-container .orbit-next{display:none}.touch .orbit-bullets{display:none}@media only screen and (min-width:40.063em){.touch .orbit-container .orbit-prev,.touch .orbit-container .orbit-next{display:inherit}.touch .orbit-bullets{display:block}}@media only screen and (max-width: 40em){.orbit-stack-on-small .orbit-slides-container{height:auto !important}.orbit-stack-on-small .orbit-slides-container>*{margin:0 !important;opacity:1 !important;position:relative}.orbit-stack-on-small .orbit-slide-number{display:none}.orbit-timer{display:none}.orbit-next,.orbit-prev{display:none}.orbit-bullets{display:none}}ul.pagination{display:block;margin-left:-0.3125rem;min-height:1.5rem}ul.pagination li{color:#222222;font-size:0.875rem;height:1.5rem;margin-left:0.3125rem}ul.pagination li a,ul.pagination li button{border-radius:3px;transition:background-color 300ms ease-out;background:none;color:#999999;display:block;font-size:1em;font-weight:normal;line-height:inherit;padding:0.0625rem 0.625rem 0.0625rem}ul.pagination li:hover a,ul.pagination li a:focus,ul.pagination li:hover button,ul.pagination li button:focus{background:#e6e6e6}ul.pagination li.unavailable a,ul.pagination li.unavailable button{cursor:default;color:#999999;pointer-events:none}ul.pagination li.unavailable:hover a,ul.pagination li.unavailable a:focus,ul.pagination li.unavailable:hover button,ul.pagination li.unavailable button:focus{background:transparent}ul.pagination li.current a,ul.pagination li.current button{background:#008CBA;color:#FFFFFF;cursor:default;font-weight:bold}ul.pagination li.current a:hover,ul.pagination li.current a:focus,ul.pagination li.current button:hover,ul.pagination li.current button:focus{background:#008CBA}ul.pagination li{display:block;float:left}.pagination-centered{text-align:center}.pagination-centered ul.pagination li{display:inline-block;float:none}.panel{border-style:solid;border-width:1px;border-color:#d8d8d8;margin-bottom:1.25rem;padding:1.25rem;background:#f2f2f2;color:#333333}.panel>:first-child{margin-top:0}.panel>:last-child{margin-bottom:0}.panel h1,.panel h2,.panel h3,.panel h4,.panel h5,.panel h6,.panel p,.panel li,.panel dl{color:#333333}.panel h1,.panel h2,.panel h3,.panel h4,.panel h5,.panel h6{line-height:1;margin-bottom:0.625rem}.panel h1.subheader,.panel h2.subheader,.panel h3.subheader,.panel h4.subheader,.panel h5.subheader,.panel h6.subheader{line-height:1.4}.panel.callout{border-style:solid;border-width:1px;border-color:#d8d8d8;margin-bottom:1.25rem;padding:1.25rem;background:#ecfaff;color:#333333}.panel.callout>:first-child{margin-top:0}.panel.callout>:last-child{margin-bottom:0}.panel.callout h1,.panel.callout h2,.panel.callout h3,.panel.callout h4,.panel.callout h5,.panel.callout h6,.panel.callout p,.panel.callout li,.panel.callout dl{color:#333333}.panel.callout h1,.panel.callout h2,.panel.callout h3,.panel.callout h4,.panel.callout h5,.panel.callout h6{line-height:1;margin-bottom:0.625rem}.panel.callout h1.subheader,.panel.callout h2.subheader,.panel.callout h3.subheader,.panel.callout h4.subheader,.panel.callout h5.subheader,.panel.callout h6.subheader{line-height:1.4}.panel.callout a:not(.button){color:#008CBA}.panel.callout a:not(.button):hover,.panel.callout a:not(.button):focus{color:#0078a0}.panel.radius{border-radius:3px}.pricing-table{border:solid 1px #DDDDDD;margin-left:0;margin-bottom:1.25rem}.pricing-table *{list-style:none;line-height:1}.pricing-table .title{background-color:#333333;color:#EEEEEE;font-family:"Josefin Sans",sans-serif;font-size:1rem;font-weight:normal;padding:0.9375rem 1.25rem;text-align:center}.pricing-table .price{background-color:#F6F6F6;color:#333333;font-family:"Josefin Sans",sans-serif;font-size:2rem;font-weight:normal;padding:0.9375rem 1.25rem;text-align:center}.pricing-table .description{background-color:#FFFFFF;border-bottom:dotted 1px #DDDDDD;color:#777777;font-size:0.75rem;font-weight:normal;line-height:1.4;padding:0.9375rem;text-align:center}.pricing-table .bullet-item{background-color:#FFFFFF;border-bottom:dotted 1px #DDDDDD;color:#333333;font-size:0.875rem;font-weight:normal;padding:0.9375rem;text-align:center}.pricing-table .cta-button{background-color:#FFFFFF;padding:1.25rem 1.25rem 0;text-align:center}.progress{background-color:#F6F6F6;border:1px solid white;height:1.5625rem;margin-bottom:0.625rem;padding:0.125rem}.progress .meter{background:#008CBA;display:block;height:100%;float:left;width:0%}.progress .meter.secondary{background:#e7e7e7;display:block;height:100%;float:left;width:0%}.progress .meter.success{background:#43AC6A;display:block;height:100%;float:left;width:0%}.progress .meter.alert{background:#f04124;display:block;height:100%;float:left;width:0%}.progress.secondary .meter{background:#e7e7e7;display:block;height:100%;float:left;width:0%}.progress.success .meter{background:#43AC6A;display:block;height:100%;float:left;width:0%}.progress.alert .meter{background:#f04124;display:block;height:100%;float:left;width:0%}.progress.radius{border-radius:3px}.progress.radius .meter{border-radius:2px}.progress.round{border-radius:1000px}.progress.round .meter{border-radius:999px}.range-slider{border:1px solid #DDDDDD;margin:1.25rem 0;position:relative;-ms-touch-action:none;touch-action:none;display:block;height:1rem;width:100%;background:#FAFAFA}.range-slider.vertical-range{border:1px solid #DDDDDD;margin:1.25rem 0;position:relative;-ms-touch-action:none;touch-action:none;display:inline-block;height:12.5rem;width:1rem}.range-slider.vertical-range .range-slider-handle{bottom:-10.5rem;margin-left:-0.5rem;margin-top:0;position:absolute}.range-slider.vertical-range .range-slider-active-segment{border-bottom-left-radius:inherit;border-bottom-right-radius:inherit;border-top-left-radius:initial;bottom:0;height:auto;width:0.875rem}.range-slider.radius{background:#FAFAFA;border-radius:3px}.range-slider.radius .range-slider-handle{background:#008CBA;border-radius:3px}.range-slider.radius .range-slider-handle:hover{background:#007ba4}.range-slider.round{background:#FAFAFA;border-radius:1000px}.range-slider.round .range-slider-handle{background:#008CBA;border-radius:1000px}.range-slider.round .range-slider-handle:hover{background:#007ba4}.range-slider.disabled,.range-slider[disabled]{background:#FAFAFA;cursor:false;opacity:0.7}.range-slider.disabled .range-slider-handle,.range-slider[disabled] .range-slider-handle{background:#008CBA;cursor:default;opacity:0.7}.range-slider.disabled .range-slider-handle:hover,.range-slider[disabled] .range-slider-handle:hover{background:#007ba4}.range-slider-active-segment{background:#e5e5e5;border-bottom-left-radius:inherit;border-top-left-radius:inherit;display:inline-block;height:0.875rem;position:absolute}.range-slider-handle{border:1px solid none;cursor:pointer;display:inline-block;height:1.375rem;position:absolute;top:-0.3125rem;width:2rem;z-index:1;-ms-touch-action:manipulation;touch-action:manipulation;background:#008CBA}.range-slider-handle:hover{background:#007ba4}.reveal-modal-bg{background:#000000;background:rgba(0,0,0,0.45);bottom:0;display:none;left:0;position:fixed;right:0;top:0;z-index:1004;left:0}.reveal-modal{border-radius:3px;display:none;position:absolute;top:0;visibility:hidden;width:100%;z-index:1005;left:0;background-color:#FFFFFF;padding:1.875rem;border:solid 1px #666666;box-shadow:0 0 10px rgba(0,0,0,0.4)}@media only screen and (max-width: 40em){.reveal-modal{min-height:100vh;}}.reveal-modal .column,.reveal-modal .columns{min-width:0}.reveal-modal>:first-child{margin-top:0}.reveal-modal>:last-child{margin-bottom:0}@media only screen and (min-width:40.063em){.reveal-modal{left:0;margin:0 auto;max-width:62.5rem;right:0;width:80%;}}@media only screen and (min-width:40.063em){.reveal-modal{top:6.25rem;}}.reveal-modal.radius{box-shadow:none;border-radius:3px}.reveal-modal.round{box-shadow:none;border-radius:1000px}.reveal-modal.collapse{padding:0;box-shadow:none}@media only screen and (min-width:40.063em){.reveal-modal.tiny{left:0;margin:0 auto;max-width:62.5rem;right:0;width:30%;}}@media only screen and (min-width:40.063em){.reveal-modal.small{left:0;margin:0 auto;max-width:62.5rem;right:0;width:40%;}}@media only screen and (min-width:40.063em){.reveal-modal.medium{left:0;margin:0 auto;max-width:62.5rem;right:0;width:60%;}}@media only screen and (min-width:40.063em){.reveal-modal.large{left:0;margin:0 auto;max-width:62.5rem;right:0;width:70%;}}@media only screen and (min-width:40.063em){.reveal-modal.xlarge{left:0;margin:0 auto;max-width:62.5rem;right:0;width:95%;}}.reveal-modal.full{height:100vh;height:100%;left:0;margin-left:0 !important;max-width:none !important;min-height:100vh;top:0}@media only screen and (min-width:40.063em){.reveal-modal.full{left:0;margin:0 auto;max-width:62.5rem;right:0;width:100%;}}.reveal-modal.toback{z-index:1003}.reveal-modal .close-reveal-modal{color:#AAAAAA;cursor:pointer;font-size:2.5rem;font-weight:bold;line-height:1;position:absolute;top:0.625rem;right:1.375rem}.side-nav{display:block;font-family:"Josefin Sans",sans-serif;list-style-position:outside;list-style-type:none;margin:0;padding:0.875rem 0}.side-nav li{font-size:0.875rem;font-weight:normal;margin:0 0 0.4375rem 0}.side-nav li a:not(.button){color:#008CBA;display:block;margin:0;padding:0.4375rem 0.875rem}.side-nav li a:not(.button):hover,.side-nav li a:not(.button):focus{background:rgba(0,0,0,0.025);color:#1cc7ff}.side-nav li a:not(.button):active{color:#1cc7ff}.side-nav li.active>a:first-child:not(.button){color:#1cc7ff;font-family:"Josefin Sans",sans-serif;font-weight:normal}.side-nav li.divider{border-top:1px solid;height:0;list-style:none;padding:0;border-top-color:#e6e6e6}.side-nav li.heading{color:#008CBA;font-size:0.875rem;font-weight:bold;text-transform:uppercase}.split.button{position:relative;padding-right:5.0625rem}.split.button span{display:block;height:100%;position:absolute;right:0;top:0;border-left:solid 1px}.split.button span:after{position:absolute;content:"";width:0;height:0;display:block;border-style:inset;top:50%;left:50%}.split.button span:active{background-color:rgba(0,0,0,0.1)}.split.button span{border-left-color:rgba(255,255,255,0.5)}.split.button span{width:3.09375rem}.split.button span:after{border-top-style:solid;border-width:0.375rem;margin-left:-0.375rem;top:48%}.split.button span:after{border-color:#FFFFFF transparent transparent transparent}.split.button.secondary span{border-left-color:rgba(255,255,255,0.5)}.split.button.secondary span:after{border-color:#FFFFFF transparent transparent transparent}.split.button.alert span{border-left-color:rgba(255,255,255,0.5)}.split.button.success span{border-left-color:rgba(255,255,255,0.5)}.split.button.tiny{padding-right:3.75rem}.split.button.tiny span{width:2.25rem}.split.button.tiny span:after{border-top-style:solid;border-width:0.375rem;margin-left:-0.375rem;top:48%}.split.button.small{padding-right:4.375rem}.split.button.small span{width:2.625rem}.split.button.small span:after{border-top-style:solid;border-width:0.4375rem;margin-left:-0.375rem;top:48%}.split.button.large{padding-right:5.5rem}.split.button.large span{width:3.4375rem}.split.button.large span:after{border-top-style:solid;border-width:0.3125rem;margin-left:-0.375rem;top:48%}.split.button.expand{padding-left:2rem}.split.button.secondary span:after{border-color:#333333 transparent transparent transparent}.split.button.radius span{-webkit-border-bottom-right-radius:3px;-webkit-border-top-right-radius:3px;border-bottom-right-radius:3px;border-top-right-radius:3px}.split.button.round span{-webkit-border-bottom-right-radius:1000px;-webkit-border-top-right-radius:1000px;border-bottom-right-radius:1000px;border-top-right-radius:1000px}.split.button.no-pip span:before{border-style:none}.split.button.no-pip span:after{border-style:none}.split.button.no-pip span>i{display:block;left:50%;margin-left:-0.28889em;margin-top:-0.48889em;position:absolute;top:50%}.sub-nav{display:block;margin:-0.25rem 0 1.125rem;overflow:hidden;padding-top:0.25rem;width:auto}.sub-nav dt{text-transform:uppercase}.sub-nav dt,.sub-nav dd,.sub-nav li{color:#999999;float:left;font-family:"Josefin Sans",sans-serif;font-size:0.875rem;font-weight:normal;margin-left:1rem;margin-bottom:0}.sub-nav dt a,.sub-nav dd a,.sub-nav li a{color:#999999;padding:0.1875rem 1rem;text-decoration:none}.sub-nav dt a:hover,.sub-nav dd a:hover,.sub-nav li a:hover{color:#737373}.sub-nav dt.active a,.sub-nav dd.active a,.sub-nav li.active a{border-radius:3px;background:#008CBA;color:#FFFFFF;cursor:default;font-weight:normal;padding:0.1875rem 1rem}.sub-nav dt.active a:hover,.sub-nav dd.active a:hover,.sub-nav li.active a:hover{background:#0078a0}.switch{border:none;margin-bottom:1.5rem;outline:0;padding:0;position:relative;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.switch label{background:#DDDDDD;color:transparent;cursor:pointer;display:block;margin-bottom:1rem;position:relative;text-indent:100%;width:4rem;height:2rem;transition:left 0.15s ease-out}.switch input{left:10px;opacity:0;padding:0;position:absolute;top:9px}.switch input+label{margin-left:0;margin-right:0}.switch label:after{background:#FFFFFF;content:"";display:block;height:1.5rem;left:.25rem;position:absolute;top:.25rem;width:1.5rem;-webkit-transition:left 0.15s ease-out;-moz-transition:left 0.15s ease-out;-o-transition:translate3d(0, 0, 0);transition:left 0.15s ease-out;-webkit-transform:translate3d(0, 0, 0);-moz-transform:translate3d(0, 0, 0);-ms-transform:translate3d(0, 0, 0);-o-transform:translate3d(0, 0, 0);transform:translate3d(0, 0, 0)}.switch input:checked+label{background:#008CBA}.switch input:checked+label:after{left:2.25rem}.switch label{height:2rem;width:4rem}.switch label:after{height:1.5rem;width:1.5rem}.switch input:checked+label:after{left:2.25rem}.switch label{color:transparent;background:#DDDDDD}.switch label:after{background:#FFFFFF}.switch input:checked+label{background:#008CBA}.switch.large label{height:2.5rem;width:5rem}.switch.large label:after{height:2rem;width:2rem}.switch.large input:checked+label:after{left:2.75rem}.switch.small label{height:1.75rem;width:3.5rem}.switch.small label:after{height:1.25rem;width:1.25rem}.switch.small input:checked+label:after{left:2rem}.switch.tiny label{height:1.5rem;width:3rem}.switch.tiny label:after{height:1rem;width:1rem}.switch.tiny input:checked+label:after{left:1.75rem}.switch.radius label{border-radius:4px}.switch.radius label:after{border-radius:3px}.switch.round{border-radius:1000px}.switch.round label{border-radius:2rem}.switch.round label:after{border-radius:2rem}table{background:#FFFFFF;border:solid 1px #DDDDDD;margin-bottom:1.25rem;table-layout:auto}table caption{background:transparent;color:#222222;font-size:1rem;font-weight:bold}table thead{background:#F5F5F5}table thead tr th,table thead tr td{color:#222222;font-size:0.875rem;font-weight:bold;padding:0.5rem 0.625rem 0.625rem}table tfoot{background:#F5F5F5}table tfoot tr th,table tfoot tr td{color:#222222;font-size:0.875rem;font-weight:bold;padding:0.5rem 0.625rem 0.625rem}table tr th,table tr td{color:#222222;font-size:0.875rem;padding:0.5625rem 0.625rem;text-align:left}table tr.even,table tr.alt,table tr:nth-of-type(even){background:#F9F9F9}table thead tr th,table tfoot tr th,table tfoot tr td,table tbody tr th,table tbody tr td,table tr td{display:table-cell;line-height:1.125rem}.tabs{margin-bottom:0 !important;margin-left:0}.tabs:before,.tabs:after{content:" ";display:table}.tabs:after{clear:both}.tabs dd,.tabs .tab-title{float:left;list-style:none;margin-bottom:0 !important;position:relative}.tabs dd>a,.tabs .tab-title>a{display:block;background-color:#EFEFEF;color:#222222;font-family:"Josefin Sans",sans-serif;font-size:1rem;padding:1rem 2rem}.tabs dd>a:hover,.tabs .tab-title>a:hover{background-color:#e1e1e1}.tabs dd.active>a,.tabs .tab-title.active>a{background-color:#FFFFFF;color:#222222}.tabs.radius dd:first-child a,.tabs.radius .tab:first-child a{-webkit-border-bottom-left-radius:3px;-webkit-border-top-left-radius:3px;border-bottom-left-radius:3px;border-top-left-radius:3px}.tabs.radius dd:last-child a,.tabs.radius .tab:last-child a{-webkit-border-bottom-right-radius:3px;-webkit-border-top-right-radius:3px;border-bottom-right-radius:3px;border-top-right-radius:3px}.tabs.vertical dd,.tabs.vertical .tab-title{position:inherit;float:none;display:block;top:auto}.tabs-content{margin-bottom:1.5rem;width:100%}.tabs-content:before,.tabs-content:after{content:" ";display:table}.tabs-content:after{clear:both}.tabs-content>.content{display:none;float:left;padding:0.9375rem 0;width:100%}.tabs-content>.content.active{display:block;float:none}.tabs-content>.content.contained{padding:0.9375rem}.tabs-content.vertical{display:block}.tabs-content.vertical>.content{padding:0 0.9375rem}@media only screen and (min-width:40.063em){.tabs.vertical{float:left;margin:0;margin-bottom:1.25rem !important;max-width:20%;width:20%}.tabs-content.vertical{float:left;margin-left:-1px;max-width:80%;padding-left:1rem;width:80%}}.no-js .tabs-content>.content{display:block;float:none}.th{border:solid 4px #FFFFFF;box-shadow:0 0 0 1px rgba(0,0,0,0.2);display:inline-block;line-height:0;max-width:100%;transition:all 200ms ease-out}.th:hover,.th:focus{box-shadow:0 0 6px 1px rgba(0,140,186,0.5)}.th.radius{border-radius:3px}.has-tip{border-bottom:dotted 1px #CCCCCC;color:#333333;cursor:help;font-weight:bold}.has-tip:hover,.has-tip:focus{border-bottom:dotted 1px #003f54;color:#008CBA}.has-tip.tip-left,.has-tip.tip-right{float:none !important}.tooltip{background:#333333;color:#FFFFFF;display:none;font-size:0.875rem;font-weight:normal;line-height:1.3;max-width:300px;padding:0.75rem;position:absolute;width:100%;z-index:1006;left:50%}.tooltip>.nub{border:solid 5px;border-color:transparent transparent #333333 transparent;display:block;height:0;pointer-events:none;position:absolute;top:-10px;width:0;left:5px}.tooltip>.nub.rtl{left:auto;right:5px}.tooltip.radius{border-radius:3px}.tooltip.round{border-radius:1000px}.tooltip.round>.nub{left:2rem}.tooltip.opened{border-bottom:dotted 1px #003f54 !important;color:#008CBA !important}.tap-to-close{color:#777777;display:block;font-size:0.625rem;font-weight:normal}@media only screen{.tooltip>.nub{border-color:transparent transparent #333333 transparent;top:-10px}.tooltip.tip-top>.nub{border-color:#333333 transparent transparent transparent;bottom:-10px;top:auto}.tooltip.tip-left,.tooltip.tip-right{float:none !important}.tooltip.tip-left>.nub{border-color:transparent transparent transparent #333333;left:auto;margin-top:-5px;right:-10px;top:50%}.tooltip.tip-right>.nub{border-color:transparent #333333 transparent transparent;left:-10px;margin-top:-5px;right:auto;top:50%}}meta.foundation-mq-topbar{font-family:"/only screen and (min-width:40.063em)/";width:40.063em}.contain-to-grid{width:100%;background:#FFFFFF}.contain-to-grid .top-bar{margin-bottom:0}.fixed{position:fixed;top:0;width:100%;z-index:99;left:0}.fixed.expanded:not(.top-bar){height:auto;max-height:100%;overflow-y:auto;width:100%}.fixed.expanded:not(.top-bar) .title-area{position:fixed;width:100%;z-index:99}.fixed.expanded:not(.top-bar) .top-bar-section{margin-top:3.125rem;z-index:98}.top-bar{background:#FFFFFF;height:3.125rem;line-height:3.125rem;margin-bottom:0;overflow:hidden;position:relative}.top-bar ul{list-style:none;margin-bottom:0}.top-bar .row{max-width:none}.top-bar form,.top-bar input,.top-bar select{margin-bottom:0}.top-bar input,.top-bar select{font-size:0.75rem;height:1.75rem;padding-bottom:.35rem;padding-top:.35rem}.top-bar .button,.top-bar button{font-size:0.75rem;margin-bottom:0;padding-bottom:.4125rem;padding-top:.4125rem}@media only screen and (max-width: 40em){.top-bar .button,.top-bar button{position:relative;top:-1px;}}.top-bar .title-area{margin:0;position:relative}.top-bar .name{font-size:16px;height:3.125rem;margin:0}.top-bar .name h1,.top-bar .name h2,.top-bar .name h3,.top-bar .name h4,.top-bar .name p,.top-bar .name span{font-size:1.0625rem;line-height:3.125rem;margin:0}.top-bar .name h1 a,.top-bar .name h2 a,.top-bar .name h3 a,.top-bar .name h4 a,.top-bar .name p a,.top-bar .name span a{color:#0065a4;display:block;font-weight:normal;padding:0 1.0416666667rem;width:75%}.top-bar .toggle-topbar{position:absolute;right:0;top:0}.top-bar .toggle-topbar a{color:#0065a4;display:block;font-size:0.8125rem;font-weight:bold;height:3.125rem;line-height:3.125rem;padding:0 1.0416666667rem;position:relative;text-transform:uppercase}.top-bar .toggle-topbar.menu-icon{margin-top:-16px;top:50%}.top-bar .toggle-topbar.menu-icon a{color:#FFFFFF;height:34px;line-height:33px;padding:0 2.6041666667rem 0 1.0416666667rem;position:relative}.top-bar .toggle-topbar.menu-icon a span::after{content:"";display:block;height:0;position:absolute;margin-top:-8px;top:50%;right:1.0416666667rem;box-shadow:0 0 0 1px #FFFFFF,0 7px 0 1px #FFFFFF,0 14px 0 1px #FFFFFF;width:16px}.top-bar .toggle-topbar.menu-icon a span:hover:after{box-shadow:0 0 0 1px "",0 7px 0 1px "",0 14px 0 1px ""}.top-bar.expanded{background:transparent;height:auto}.top-bar.expanded .title-area{background:#FFFFFF}.top-bar.expanded .toggle-topbar a{color:#888888}.top-bar.expanded .toggle-topbar a span::after{box-shadow:0 0 0 1px #888888,0 7px 0 1px #888888,0 14px 0 1px #888888}@media screen and (-webkit-min-device-pixel-ratio: 0){.top-bar.expanded .top-bar-section .has-dropdown.moved>.dropdown,.top-bar.expanded .top-bar-section .dropdown{clip:initial}.top-bar.expanded .top-bar-section .has-dropdown:not(.moved)>ul{padding:0}}.top-bar-section{left:0;position:relative;width:auto;transition:left 300ms ease-out}.top-bar-section ul{display:block;font-size:16px;height:auto;margin:0;padding:0;width:100%}.top-bar-section .divider,.top-bar-section [role="separator"]{border-top:solid 1px gray;clear:both;height:1px;width:100%}.top-bar-section ul li{background:#FFFFFF}.top-bar-section ul li>a{color:#0065a4;display:block;font-family:"Josefin Sans",sans-serif;font-size:1.125rem;font-weight:600;padding-left:1.0416666667rem;padding:12px 0 12px 1.0416666667rem;text-transform:uppercase;width:100%}.top-bar-section ul li>a.button{font-size:1.125rem;padding-left:1.0416666667rem;padding-right:1.0416666667rem;background-color:#008CBA;border-color:#007095;color:#FFFFFF}.top-bar-section ul li>a.button:hover,.top-bar-section ul li>a.button:focus{background-color:#007095}.top-bar-section ul li>a.button:hover,.top-bar-section ul li>a.button:focus{color:#FFFFFF}.top-bar-section ul li>a.button.secondary{background-color:#e7e7e7;border-color:#b9b9b9;color:#333333}.top-bar-section ul li>a.button.secondary:hover,.top-bar-section ul li>a.button.secondary:focus{background-color:#b9b9b9}.top-bar-section ul li>a.button.secondary:hover,.top-bar-section ul li>a.button.secondary:focus{color:#333333}.top-bar-section ul li>a.button.success{background-color:#43AC6A;border-color:#368a55;color:#FFFFFF}.top-bar-section ul li>a.button.success:hover,.top-bar-section ul li>a.button.success:focus{background-color:#368a55}.top-bar-section ul li>a.button.success:hover,.top-bar-section ul li>a.button.success:focus{color:#FFFFFF}.top-bar-section ul li>a.button.alert{background-color:#f04124;border-color:#cf2a0e;color:#FFFFFF}.top-bar-section ul li>a.button.alert:hover,.top-bar-section ul li>a.button.alert:focus{background-color:#cf2a0e}.top-bar-section ul li>a.button.alert:hover,.top-bar-section ul li>a.button.alert:focus{color:#FFFFFF}.top-bar-section ul li>a.button.warning{background-color:#f08a24;border-color:#cf6e0e;color:#FFFFFF}.top-bar-section ul li>a.button.warning:hover,.top-bar-section ul li>a.button.warning:focus{background-color:#cf6e0e}.top-bar-section ul li>a.button.warning:hover,.top-bar-section ul li>a.button.warning:focus{color:#FFFFFF}.top-bar-section ul li>a.button.info{background-color:#a0d3e8;border-color:#61b6d9;color:#333333}.top-bar-section ul li>a.button.info:hover,.top-bar-section ul li>a.button.info:focus{background-color:#61b6d9}.top-bar-section ul li>a.button.info:hover,.top-bar-section ul li>a.button.info:focus{color:#FFFFFF}.top-bar-section ul li>button{font-size:1.125rem;padding-left:1.0416666667rem;padding-right:1.0416666667rem;background-color:#008CBA;border-color:#007095;color:#FFFFFF}.top-bar-section ul li>button:hover,.top-bar-section ul li>button:focus{background-color:#007095}.top-bar-section ul li>button:hover,.top-bar-section ul li>button:focus{color:#FFFFFF}.top-bar-section ul li>button.secondary{background-color:#e7e7e7;border-color:#b9b9b9;color:#333333}.top-bar-section ul li>button.secondary:hover,.top-bar-section ul li>button.secondary:focus{background-color:#b9b9b9}.top-bar-section ul li>button.secondary:hover,.top-bar-section ul li>button.secondary:focus{color:#333333}.top-bar-section ul li>button.success{background-color:#43AC6A;border-color:#368a55;color:#FFFFFF}.top-bar-section ul li>button.success:hover,.top-bar-section ul li>button.success:focus{background-color:#368a55}.top-bar-section ul li>button.success:hover,.top-bar-section ul li>button.success:focus{color:#FFFFFF}.top-bar-section ul li>button.alert{background-color:#f04124;border-color:#cf2a0e;color:#FFFFFF}.top-bar-section ul li>button.alert:hover,.top-bar-section ul li>button.alert:focus{background-color:#cf2a0e}.top-bar-section ul li>button.alert:hover,.top-bar-section ul li>button.alert:focus{color:#FFFFFF}.top-bar-section ul li>button.warning{background-color:#f08a24;border-color:#cf6e0e;color:#FFFFFF}.top-bar-section ul li>button.warning:hover,.top-bar-section ul li>button.warning:focus{background-color:#cf6e0e}.top-bar-section ul li>button.warning:hover,.top-bar-section ul li>button.warning:focus{color:#FFFFFF}.top-bar-section ul li>button.info{background-color:#a0d3e8;border-color:#61b6d9;color:#333333}.top-bar-section ul li>button.info:hover,.top-bar-section ul li>button.info:focus{background-color:#61b6d9}.top-bar-section ul li>button.info:hover,.top-bar-section ul li>button.info:focus{color:#FFFFFF}.top-bar-section ul li:hover:not(.has-form)>a{background-color:#555555;color:#0065a4;background:rgba(255,255,255,0)}.top-bar-section ul li.active>a{background:rgba(255,255,255,0);color:#0065a4}.top-bar-section ul li.active>a:hover{background:rgba(255,255,255,0);color:#0065a4}.top-bar-section .has-form{padding:1.0416666667rem}.top-bar-section .has-dropdown{position:relative}.top-bar-section .has-dropdown>a:after{margin-right:1.0416666667rem;margin-top:-4.5px;position:absolute;top:50%;right:0}.top-bar-section .has-dropdown.moved{position:static}.top-bar-section .has-dropdown.moved>.dropdown{position:static !important;height:auto;width:auto;overflow:visible;clip:auto;display:block;position:absolute !important;width:100%}.top-bar-section .has-dropdown.moved>a:after{display:none}.top-bar-section .dropdown{clip:rect(1px, 1px, 1px, 1px);height:1px;overflow:hidden;position:absolute !important;width:1px;display:block;padding:0;position:absolute;top:0;z-index:99;left:100%}.top-bar-section .dropdown li{height:auto;width:100%}.top-bar-section .dropdown li a{font-weight:normal;padding:8px 1.0416666667rem}.top-bar-section .dropdown li a.parent-link{font-weight:600}.top-bar-section .dropdown li.title h5,.top-bar-section .dropdown li.parent-link{margin-bottom:0;margin-top:0;font-size:1.125rem}.top-bar-section .dropdown li.title h5 a,.top-bar-section .dropdown li.parent-link a{color:#0065a4;display:block}.top-bar-section .dropdown li.title h5 a:hover,.top-bar-section .dropdown li.parent-link a:hover{background:none}.top-bar-section .dropdown li.has-form{padding:8px 1.0416666667rem}.top-bar-section .dropdown li .button,.top-bar-section .dropdown li button{top:auto}.top-bar-section .dropdown label{color:#777777;font-size:0.625rem;font-weight:bold;margin-bottom:0;padding:8px 1.0416666667rem 2px;text-transform:uppercase}.js-generated{display:block}@media only screen and (min-width:40.063em){.top-bar{background:#FFFFFF;overflow:visible}.top-bar:before,.top-bar:after{content:" ";display:table}.top-bar:after{clear:both}.top-bar .toggle-topbar{display:none}.top-bar .title-area{float:left}.top-bar .name h1 a,.top-bar .name h2 a,.top-bar .name h3 a,.top-bar .name h4 a,.top-bar .name h5 a,.top-bar .name h6 a{width:auto}.top-bar input,.top-bar select,.top-bar .button,.top-bar button{font-size:0.875rem;height:1.75rem;position:relative;top:0.6875rem}.top-bar .has-form>.button,.top-bar .has-form>button{font-size:0.875rem;height:1.75rem;position:relative;top:0.6875rem}.top-bar.expanded{background:#FFFFFF}.contain-to-grid .top-bar{margin:0 auto;margin-bottom:0;max-width:62.5rem}.top-bar-section{transition:none 0 0;left:0 !important}.top-bar-section ul{display:inline;height:auto !important;width:auto}.top-bar-section ul li{float:left}.top-bar-section ul li .js-generated{display:none}.top-bar-section li.hover>a:not(.button){background-color:#555555;background:rgba(255,255,255,0);color:#0065a4}.top-bar-section li:not(.has-form) a:not(.button){background:rgba(255,255,255,0);line-height:3.125rem;padding:0 1.0416666667rem}.top-bar-section li:not(.has-form) a:not(.button):hover{background-color:#555555;background:rgba(255,255,255,0)}.top-bar-section li.active:not(.has-form) a:not(.button){background:rgba(255,255,255,0);color:#0065a4;line-height:3.125rem;padding:0 1.0416666667rem}.top-bar-section li.active:not(.has-form) a:not(.button):hover{background:rgba(255,255,255,0);color:#0065a4}.top-bar-section .has-dropdown.moved{position:relative}.top-bar-section .has-dropdown.moved>.dropdown{clip:rect(1px, 1px, 1px, 1px);height:1px;overflow:hidden;position:absolute !important;width:1px;display:block}.top-bar-section .has-dropdown.hover>.dropdown,.top-bar-section .has-dropdown.not-click:hover>.dropdown{position:static !important;height:auto;width:auto;overflow:visible;clip:auto;display:block;position:absolute !important}.top-bar-section .has-dropdown>a:focus+.dropdown{position:static !important;height:auto;width:auto;overflow:visible;clip:auto;display:block;position:absolute !important}.top-bar-section .has-dropdown .dropdown li.has-dropdown>a:after{border:none;content:"\00bb";top:0.1875rem;right:5px}.top-bar-section .dropdown{left:0;background:transparent;min-width:100%;top:auto}.top-bar-section .dropdown li a{background:#FFFFFF;color:#0065a4;line-height:3.125rem;padding:12px 1.0416666667rem;white-space:nowrap}.top-bar-section .dropdown li:not(.has-form):not(.active)>a:not(.button){background:#FFFFFF;color:#0065a4}.top-bar-section .dropdown li:not(.has-form):not(.active):hover>a:not(.button){background-color:#555555;color:#009543;background:#FFFFFF}.top-bar-section .dropdown li label{background:#333333;white-space:nowrap}.top-bar-section .dropdown li .dropdown{left:100%;top:0}.top-bar-section>ul>.divider,.top-bar-section>ul>[role="separator"]{border-right:solid 1px white;border-bottom:none;border-top:none;clear:none;height:3.125rem;width:0}.top-bar-section .has-form{background:rgba(255,255,255,0);height:3.125rem;padding:0 1.0416666667rem}.top-bar-section .right li .dropdown{left:auto;right:0}.top-bar-section .right li .dropdown li .dropdown{right:100%}.top-bar-section .left li .dropdown{right:auto;left:0}.top-bar-section .left li .dropdown li .dropdown{left:100%}.no-js .top-bar-section ul li:hover>a{background-color:#555555;background:rgba(255,255,255,0);color:#0065a4}.no-js .top-bar-section ul li:active>a{background:rgba(255,255,255,0);color:#0065a4}.no-js .top-bar-section .has-dropdown:hover>.dropdown{position:static !important;height:auto;width:auto;overflow:visible;clip:auto;display:block;position:absolute !important}.no-js .top-bar-section .has-dropdown>a:focus+.dropdown{position:static !important;height:auto;width:auto;overflow:visible;clip:auto;display:block;position:absolute !important}}.text-left{text-align:left !important}.text-right{text-align:right !important}.text-center{text-align:center !important}.text-justify{text-align:justify !important}@media only screen and (max-width: 40em){.small-only-text-left{text-align:left !important}.small-only-text-right{text-align:right !important}.small-only-text-center{text-align:center !important}.small-only-text-justify{text-align:justify !important}}@media only screen{.small-text-left{text-align:left !important}.small-text-right{text-align:right !important}.small-text-center{text-align:center !important}.small-text-justify{text-align:justify !important}}@media only screen and (min-width:40.063em) and (max-width:64em){.medium-only-text-left{text-align:left !important}.medium-only-text-right{text-align:right !important}.medium-only-text-center{text-align:center !important}.medium-only-text-justify{text-align:justify !important}}@media only screen and (min-width:40.063em){.medium-text-left{text-align:left !important}.medium-text-right{text-align:right !important}.medium-text-center{text-align:center !important}.medium-text-justify{text-align:justify !important}}@media only screen and (min-width:64.063em) and (max-width:90em){.large-only-text-left{text-align:left !important}.large-only-text-right{text-align:right !important}.large-only-text-center{text-align:center !important}.large-only-text-justify{text-align:justify !important}}@media only screen and (min-width:64.063em){.large-text-left{text-align:left !important}.large-text-right{text-align:right !important}.large-text-center{text-align:center !important}.large-text-justify{text-align:justify !important}}@media only screen and (min-width:90.063em) and (max-width:120em){.xlarge-only-text-left{text-align:left !important}.xlarge-only-text-right{text-align:right !important}.xlarge-only-text-center{text-align:center !important}.xlarge-only-text-justify{text-align:justify !important}}@media only screen and (min-width:90.063em){.xlarge-text-left{text-align:left !important}.xlarge-text-right{text-align:right !important}.xlarge-text-center{text-align:center !important}.xlarge-text-justify{text-align:justify !important}}@media only screen and (min-width:120.063em) and (max-width:99999999em){.xxlarge-only-text-left{text-align:left !important}.xxlarge-only-text-right{text-align:right !important}.xxlarge-only-text-center{text-align:center !important}.xxlarge-only-text-justify{text-align:justify !important}}@media only screen and (min-width:120.063em){.xxlarge-text-left{text-align:left !important}.xxlarge-text-right{text-align:right !important}.xxlarge-text-center{text-align:center !important}.xxlarge-text-justify{text-align:justify !important}}div,dl,dt,dd,ul,ol,li,h1,h2,h3,h4,h5,h6,pre,form,p,blockquote,th,td{margin:0;padding:0}a{color:#0065a4;line-height:inherit;text-decoration:none}a:hover,a:focus{color:#009543;text-decoration:underline}a img{border:none}p{font-family:inherit;font-size:1rem;font-weight:normal;line-height:1.6;margin-bottom:1.25rem;text-rendering:optimizeLegibility}p.lead{font-size:1.21875rem;line-height:1.6}p aside{font-size:0.875rem;font-style:italic;line-height:1.35}h1,h2,h3,h4,h5,h6{color:#222222;font-family:"Josefin Sans",sans-serif;font-style:normal;font-weight:normal;line-height:1.4;margin-bottom:0.5rem;margin-top:0.2rem;text-rendering:optimizeLegibility}h1 small,h2 small,h3 small,h4 small,h5 small,h6 small{color:#6f6f6f;font-size:60%;line-height:0}h1{font-size:2.375rem}h2{font-size:1.9375rem}h3{font-size:1.6875rem}h4{font-size:1.0625rem}h5{font-size:1rem}h6{font-size:1rem}.subheader{line-height:1.4;color:#6f6f6f;font-weight:normal;margin-top:0.2rem;margin-bottom:0.5rem}hr{border:solid #DDDDDD;border-width:1px 0 0;clear:both;height:0;margin:1.25rem 0 1.1875rem}em,i{font-style:italic;line-height:inherit}strong,b{font-weight:bold;line-height:inherit}small{font-size:60%;line-height:inherit}code{background-color:#f8f8f8;border-color:#dfdfdf;border-style:solid;border-width:1px;color:#333333;font-family:Consolas,"Liberation Mono",Courier,monospace;font-weight:normal;padding:0.125rem 0.3125rem 0.0625rem}ul,ol,dl{font-family:inherit;font-size:1rem;line-height:1.6;list-style-position:outside;margin-bottom:1.25rem}ul{margin-left:1.1rem}ul li ul,ul li ol{margin-left:1.25rem;margin-bottom:0}ul.square li ul,ul.circle li ul,ul.disc li ul{list-style:inherit}ul.square{list-style-type:square;margin-left:1.1rem}ul.circle{list-style-type:circle;margin-left:1.1rem}ul.disc{list-style-type:disc;margin-left:1.1rem}ol{margin-left:1.4rem}ol li ul,ol li ol{margin-left:1.25rem;margin-bottom:0}.no-bullet{list-style-type:none;margin-left:0}.no-bullet li ul,.no-bullet li ol{margin-left:1.25rem;margin-bottom:0;list-style:none}dl dt{margin-bottom:0.3rem;font-weight:bold}dl dd{margin-bottom:0.75rem}abbr,acronym{text-transform:uppercase;font-size:90%;color:#000000;cursor:help}abbr{text-transform:none}abbr[title]{border-bottom:1px dotted #DDDDDD}blockquote{margin:0 0 1.25rem;padding:0.5625rem 1.25rem 0 1.1875rem;border-left:1px solid #DDDDDD}blockquote cite{display:block;font-size:0.8125rem;color:#555555}blockquote cite:before{content:"\2014 \0020"}blockquote cite a,blockquote cite a:visited{color:#555555}blockquote,blockquote p{line-height:1.6;color:#6f6f6f}.vcard{display:inline-block;margin:0 0 1.25rem 0;border:1px solid #DDDDDD;padding:0.625rem 0.75rem}.vcard li{margin:0;display:block}.vcard .fn{font-weight:bold;font-size:0.9375rem}.vevent .summary{font-weight:bold}.vevent abbr{cursor:default;text-decoration:none;font-weight:bold;border:none;padding:0 0.0625rem}@media only screen and (min-width:40.063em){h1,h2,h3,h4,h5,h6{line-height:1.4}h1{font-size:3rem}h2{font-size:2.25rem}h3{font-size:2rem}h4{font-size:1.1875rem}h5{font-size:1.125rem}h6{font-size:1.125rem}}@media print{*{background:transparent !important;color:#000000 !important;box-shadow:none !important;text-shadow:none !important}a,a:visited{text-decoration:underline}a[href]:after{content:" (" attr(href) ")"}abbr[title]:after{content:" (" attr(title) ")"}.ir a:after,a[href^="javascript:"]:after,a[href^="#"]:after{content:""}pre,blockquote{border:1px solid #999999;page-break-inside:avoid}thead{display:table-header-group}tr,img{page-break-inside:avoid}img{max-width:100% !important}@page{margin:0.34in;}p,h2,h3{orphans:3;widows:3}h2,h3{page-break-after:avoid}}.off-canvas-wrap{-webkit-backface-visibility:hidden;position:relative;width:100%;overflow:hidden}.off-canvas-wrap.move-right,.off-canvas-wrap.move-left,.off-canvas-wrap.move-bottom,.off-canvas-wrap.move-top{min-height:100%;-webkit-overflow-scrolling:touch}.inner-wrap{position:relative;width:100%;-webkit-transition:-webkit-transform 500ms ease;-moz-transition:-moz-transform 500ms ease;-ms-transition:-ms-transform 500ms ease;-o-transition:-o-transform 500ms ease;transition:transform 500ms ease}.inner-wrap:before,.inner-wrap:after{content:" ";display:table}.inner-wrap:after{clear:both}.tab-bar{-webkit-backface-visibility:hidden;background:#0065a4;color:#FFFFFF;height:2.8125rem;line-height:2.8125rem;position:relative}.tab-bar h1,.tab-bar h2,.tab-bar h3,.tab-bar h4,.tab-bar h5,.tab-bar h6{color:#FFFFFF;font-weight:bold;line-height:2.8125rem;margin:0}.tab-bar h1,.tab-bar h2,.tab-bar h3,.tab-bar h4{font-size:1.125rem}.left-small{height:2.8125rem;position:absolute;top:0;width:2.8125rem;border-right:solid 1px #003252;left:0}.right-small{height:2.8125rem;position:absolute;top:0;width:2.8125rem;border-left:solid 1px #003252;right:0}.tab-bar-section{height:2.8125rem;padding:0 0.625rem;position:absolute;text-align:center;top:0}.tab-bar-section.left{text-align:left}.tab-bar-section.right{text-align:right}.tab-bar-section.left{left:0;right:2.8125rem}.tab-bar-section.right{left:2.8125rem;right:0}.tab-bar-section.middle{left:2.8125rem;right:2.8125rem}.tab-bar .menu-icon{color:#FFFFFF;display:block;height:2.8125rem;padding:0;position:relative;text-indent:3.125rem;transform:translate3d(0, 0, 0);width:2.8125rem}.tab-bar .menu-icon span::after{content:"";display:block;height:0;position:absolute;top:50%;margin-top:-0.5rem;left:0.90625rem;box-shadow:0 0 0 1px #FFFFFF,0 7px 0 1px #FFFFFF,0 14px 0 1px #FFFFFF;width:1rem}.tab-bar .menu-icon span:hover:after{box-shadow:0 0 0 1px #b3b3b3,0 7px 0 1px #b3b3b3,0 14px 0 1px #b3b3b3}.left-off-canvas-menu{-webkit-backface-visibility:hidden;background:#0065a4;bottom:0;box-sizing:content-box;-webkit-overflow-scrolling:touch;-ms-overflow-style:-ms-autohiding-scrollbar;overflow-x:hidden;overflow-y:auto;position:absolute;transition:transform 500ms ease 0s;width:15.625rem;z-index:1001;-webkit-transform:translate3d(-100%, 0, 0);-moz-transform:translate3d(-100%, 0, 0);-ms-transform:translate(-100%, 0);-o-transform:translate3d(-100%, 0, 0);transform:translate3d(-100%, 0, 0);left:0;top:0}.left-off-canvas-menu *{-webkit-backface-visibility:hidden}.right-off-canvas-menu{-webkit-backface-visibility:hidden;background:#0065a4;bottom:0;box-sizing:content-box;-webkit-overflow-scrolling:touch;-ms-overflow-style:-ms-autohiding-scrollbar;overflow-x:hidden;overflow-y:auto;position:absolute;transition:transform 500ms ease 0s;width:15.625rem;z-index:1001;-webkit-transform:translate3d(100%, 0, 0);-moz-transform:translate3d(100%, 0, 0);-ms-transform:translate(100%, 0);-o-transform:translate3d(100%, 0, 0);transform:translate3d(100%, 0, 0);right:0;top:0}.right-off-canvas-menu *{-webkit-backface-visibility:hidden}.top-off-canvas-menu{-webkit-backface-visibility:hidden;background:#0065a4;bottom:0;box-sizing:content-box;-webkit-overflow-scrolling:touch;-ms-overflow-style:-ms-autohiding-scrollbar;overflow-x:hidden;overflow-y:auto;position:absolute;transition:transform 500ms ease 0s;width:15.625rem;z-index:1001;-webkit-transform:translate3d(0, -100%, 0);-moz-transform:translate3d(0, -100%, 0);-ms-transform:translate(0, -100%);-o-transform:translate3d(0, -100%, 0);transform:translate3d(0, -100%, 0);top:0;width:100%;height:18.75rem}.top-off-canvas-menu *{-webkit-backface-visibility:hidden}.bottom-off-canvas-menu{-webkit-backface-visibility:hidden;background:#0065a4;bottom:0;box-sizing:content-box;-webkit-overflow-scrolling:touch;-ms-overflow-style:-ms-autohiding-scrollbar;overflow-x:hidden;overflow-y:auto;position:absolute;transition:transform 500ms ease 0s;width:15.625rem;z-index:1001;-webkit-transform:translate3d(0, 100%, 0);-moz-transform:translate3d(0, 100%, 0);-ms-transform:translate(0, 100%);-o-transform:translate3d(0, 100%, 0);transform:translate3d(0, 100%, 0);bottom:0;width:100%;height:18.75rem}.bottom-off-canvas-menu *{-webkit-backface-visibility:hidden}ul.off-canvas-list{list-style-type:none;margin:0;padding:0}ul.off-canvas-list li label{background:#444444;border-bottom:none;border-top:1px solid #5e5e5e;color:#999999;display:block;font-size:0.75rem;font-weight:bold;margin:0;padding:.3rem 0.9375rem;text-transform:uppercase}ul.off-canvas-list li a{border-bottom:1px solid #FFFFFF;color:#FFFFFF;display:block;padding:0.6666666667rem;transition:background 300ms ease}ul.off-canvas-list li a:hover{background:#004773}ul.off-canvas-list li a:active{background:#004773}.move-right>.inner-wrap{-webkit-transform:translate3d(15.625rem, 0, 0);-moz-transform:translate3d(15.625rem, 0, 0);-ms-transform:translate(15.625rem, 0);-o-transform:translate3d(15.625rem, 0, 0);transform:translate3d(15.625rem, 0, 0)}.move-right .exit-off-canvas{-webkit-backface-visibility:hidden;box-shadow:-4px 0 4px rgba(0,0,0,0.5),4px 0 4px rgba(0,0,0,0.5);cursor:pointer;transition:background 300ms ease;-webkit-tap-highlight-color:transparent;background:rgba(255,255,255,0.2);bottom:0;display:block;left:0;position:absolute;right:0;top:0;z-index:1002}@media only screen and (min-width:40.063em){.move-right .exit-off-canvas:hover{background:rgba(255,255,255,0.05)}}.move-left>.inner-wrap{-webkit-transform:translate3d(-15.625rem, 0, 0);-moz-transform:translate3d(-15.625rem, 0, 0);-ms-transform:translate(-15.625rem, 0);-o-transform:translate3d(-15.625rem, 0, 0);transform:translate3d(-15.625rem, 0, 0)}.move-left .exit-off-canvas{-webkit-backface-visibility:hidden;box-shadow:-4px 0 4px rgba(0,0,0,0.5),4px 0 4px rgba(0,0,0,0.5);cursor:pointer;transition:background 300ms ease;-webkit-tap-highlight-color:transparent;background:rgba(255,255,255,0.2);bottom:0;display:block;left:0;position:absolute;right:0;top:0;z-index:1002}@media only screen and (min-width:40.063em){.move-left .exit-off-canvas:hover{background:rgba(255,255,255,0.05)}}.move-top>.inner-wrap{-webkit-transform:translate3d(0, -18.75rem, 0);-moz-transform:translate3d(0, -18.75rem, 0);-ms-transform:translate(0, -18.75rem);-o-transform:translate3d(0, -18.75rem, 0);transform:translate3d(0, -18.75rem, 0)}.move-top .exit-off-canvas{-webkit-backface-visibility:hidden;box-shadow:-4px 0 4px rgba(0,0,0,0.5),4px 0 4px rgba(0,0,0,0.5);cursor:pointer;transition:background 300ms ease;-webkit-tap-highlight-color:transparent;background:rgba(255,255,255,0.2);bottom:0;display:block;left:0;position:absolute;right:0;top:0;z-index:1002}@media only screen and (min-width:40.063em){.move-top .exit-off-canvas:hover{background:rgba(255,255,255,0.05)}}.move-bottom>.inner-wrap{-webkit-transform:translate3d(0, 18.75rem, 0);-moz-transform:translate3d(0, 18.75rem, 0);-ms-transform:translate(0, 18.75rem);-o-transform:translate3d(0, 18.75rem, 0);transform:translate3d(0, 18.75rem, 0)}.move-bottom .exit-off-canvas{-webkit-backface-visibility:hidden;box-shadow:-4px 0 4px rgba(0,0,0,0.5),4px 0 4px rgba(0,0,0,0.5);cursor:pointer;transition:background 300ms ease;-webkit-tap-highlight-color:transparent;background:rgba(255,255,255,0.2);bottom:0;display:block;left:0;position:absolute;right:0;top:0;z-index:1002}@media only screen and (min-width:40.063em){.move-bottom .exit-off-canvas:hover{background:rgba(255,255,255,0.05)}}.offcanvas-overlap .left-off-canvas-menu,.offcanvas-overlap .right-off-canvas-menu,.offcanvas-overlap .top-off-canvas-menu,.offcanvas-overlap .bottom-off-canvas-menu{-ms-transform:none;-webkit-transform:none;-moz-transform:none;-o-transform:none;transform:none;z-index:1003}.offcanvas-overlap .exit-off-canvas{-webkit-backface-visibility:hidden;box-shadow:-4px 0 4px rgba(0,0,0,0.5),4px 0 4px rgba(0,0,0,0.5);cursor:pointer;transition:background 300ms ease;-webkit-tap-highlight-color:transparent;background:rgba(255,255,255,0.2);bottom:0;display:block;left:0;position:absolute;right:0;top:0;z-index:1002}@media only screen and (min-width:40.063em){.offcanvas-overlap .exit-off-canvas:hover{background:rgba(255,255,255,0.05)}}.offcanvas-overlap-left .right-off-canvas-menu{-ms-transform:none;-webkit-transform:none;-moz-transform:none;-o-transform:none;transform:none;z-index:1003}.offcanvas-overlap-left .exit-off-canvas{-webkit-backface-visibility:hidden;box-shadow:-4px 0 4px rgba(0,0,0,0.5),4px 0 4px rgba(0,0,0,0.5);cursor:pointer;transition:background 300ms ease;-webkit-tap-highlight-color:transparent;background:rgba(255,255,255,0.2);bottom:0;display:block;left:0;position:absolute;right:0;top:0;z-index:1002}@media only screen and (min-width:40.063em){.offcanvas-overlap-left .exit-off-canvas:hover{background:rgba(255,255,255,0.05)}}.offcanvas-overlap-right .left-off-canvas-menu{-ms-transform:none;-webkit-transform:none;-moz-transform:none;-o-transform:none;transform:none;z-index:1003}.offcanvas-overlap-right .exit-off-canvas{-webkit-backface-visibility:hidden;box-shadow:-4px 0 4px rgba(0,0,0,0.5),4px 0 4px rgba(0,0,0,0.5);cursor:pointer;transition:background 300ms ease;-webkit-tap-highlight-color:transparent;background:rgba(255,255,255,0.2);bottom:0;display:block;left:0;position:absolute;right:0;top:0;z-index:1002}@media only screen and (min-width:40.063em){.offcanvas-overlap-right .exit-off-canvas:hover{background:rgba(255,255,255,0.05)}}.offcanvas-overlap-top .bottom-off-canvas-menu{-ms-transform:none;-webkit-transform:none;-moz-transform:none;-o-transform:none;transform:none;z-index:1003}.offcanvas-overlap-top .exit-off-canvas{-webkit-backface-visibility:hidden;box-shadow:-4px 0 4px rgba(0,0,0,0.5),4px 0 4px rgba(0,0,0,0.5);cursor:pointer;transition:background 300ms ease;-webkit-tap-highlight-color:transparent;background:rgba(255,255,255,0.2);bottom:0;display:block;left:0;position:absolute;right:0;top:0;z-index:1002}@media only screen and (min-width:40.063em){.offcanvas-overlap-top .exit-off-canvas:hover{background:rgba(255,255,255,0.05)}}.offcanvas-overlap-bottom .top-off-canvas-menu{-ms-transform:none;-webkit-transform:none;-moz-transform:none;-o-transform:none;transform:none;z-index:1003}.offcanvas-overlap-bottom .exit-off-canvas{-webkit-backface-visibility:hidden;box-shadow:-4px 0 4px rgba(0,0,0,0.5),4px 0 4px rgba(0,0,0,0.5);cursor:pointer;transition:background 300ms ease;-webkit-tap-highlight-color:transparent;background:rgba(255,255,255,0.2);bottom:0;display:block;left:0;position:absolute;right:0;top:0;z-index:1002}@media only screen and (min-width:40.063em){.offcanvas-overlap-bottom .exit-off-canvas:hover{background:rgba(255,255,255,0.05)}}.no-csstransforms .left-off-canvas-menu{left:-15.625rem}.no-csstransforms .right-off-canvas-menu{right:-15.625rem}.no-csstransforms .top-off-canvas-menu{top:-18.75rem}.no-csstransforms .bottom-off-canvas-menu{bottom:-18.75rem}.no-csstransforms .move-left>.inner-wrap{right:15.625rem}.no-csstransforms .move-right>.inner-wrap{left:15.625rem}.no-csstransforms .move-top>.inner-wrap{right:18.75rem}.no-csstransforms .move-bottom>.inner-wrap{left:18.75rem}.left-submenu{-webkit-backface-visibility:hidden;-webkit-overflow-scrolling:touch;background:#0065a4;bottom:0;box-sizing:content-box;margin:0;overflow-x:hidden;overflow-y:auto;position:absolute;top:0;width:15.625rem;height:18.75rem;z-index:1002;-webkit-transform:translate3d(-100%, 0, 0);-moz-transform:translate3d(-100%, 0, 0);-ms-transform:translate(-100%, 0);-o-transform:translate3d(-100%, 0, 0);transform:translate3d(-100%, 0, 0);left:0;-webkit-transition:-webkit-transform 500ms ease;-moz-transition:-moz-transform 500ms ease;-ms-transition:-ms-transform 500ms ease;-o-transition:-o-transform 500ms ease;transition:transform 500ms ease}.left-submenu *{-webkit-backface-visibility:hidden}.left-submenu .back>a{background:#444;border-bottom:none;border-top:1px solid #5e5e5e;color:#999999;font-weight:bold;padding:.3rem 0.9375rem;text-transform:uppercase;margin:0}.left-submenu .back>a:hover{background:#303030;border-bottom:none;border-top:1px solid #5e5e5e}.left-submenu .back>a:before{content:"\AB";margin-right:.5rem;display:inline}.left-submenu.move-right,.left-submenu.offcanvas-overlap-right,.left-submenu.offcanvas-overlap{-webkit-transform:translate3d(0%, 0, 0);-moz-transform:translate3d(0%, 0, 0);-ms-transform:translate(0%, 0);-o-transform:translate3d(0%, 0, 0);transform:translate3d(0%, 0, 0)}.right-submenu{-webkit-backface-visibility:hidden;-webkit-overflow-scrolling:touch;background:#0065a4;bottom:0;box-sizing:content-box;margin:0;overflow-x:hidden;overflow-y:auto;position:absolute;top:0;width:15.625rem;height:18.75rem;z-index:1002;-webkit-transform:translate3d(100%, 0, 0);-moz-transform:translate3d(100%, 0, 0);-ms-transform:translate(100%, 0);-o-transform:translate3d(100%, 0, 0);transform:translate3d(100%, 0, 0);right:0;-webkit-transition:-webkit-transform 500ms ease;-moz-transition:-moz-transform 500ms ease;-ms-transition:-ms-transform 500ms ease;-o-transition:-o-transform 500ms ease;transition:transform 500ms ease}.right-submenu *{-webkit-backface-visibility:hidden}.right-submenu .back>a{background:#444;border-bottom:none;border-top:1px solid #5e5e5e;color:#999999;font-weight:bold;padding:.3rem 0.9375rem;text-transform:uppercase;margin:0}.right-submenu .back>a:hover{background:#303030;border-bottom:none;border-top:1px solid #5e5e5e}.right-submenu .back>a:after{content:"\BB";margin-left:.5rem;display:inline}.right-submenu.move-left,.right-submenu.offcanvas-overlap-left,.right-submenu.offcanvas-overlap{-webkit-transform:translate3d(0%, 0, 0);-moz-transform:translate3d(0%, 0, 0);-ms-transform:translate(0%, 0);-o-transform:translate3d(0%, 0, 0);transform:translate3d(0%, 0, 0)}.top-submenu{-webkit-backface-visibility:hidden;-webkit-overflow-scrolling:touch;background:#0065a4;bottom:0;box-sizing:content-box;margin:0;overflow-x:hidden;overflow-y:auto;position:absolute;top:0;width:15.625rem;height:18.75rem;z-index:1002;-webkit-transform:translate3d(0, -100%, 0);-moz-transform:translate3d(0, -100%, 0);-ms-transform:translate(0, -100%);-o-transform:translate3d(0, -100%, 0);transform:translate3d(0, -100%, 0);top:0;width:100%;-webkit-transition:-webkit-transform 500ms ease;-moz-transition:-moz-transform 500ms ease;-ms-transition:-ms-transform 500ms ease;-o-transition:-o-transform 500ms ease;transition:transform 500ms ease}.top-submenu *{-webkit-backface-visibility:hidden}.top-submenu .back>a{background:#444;border-bottom:none;border-top:1px solid #5e5e5e;color:#999999;font-weight:bold;padding:.3rem 0.9375rem;text-transform:uppercase;margin:0}.top-submenu .back>a:hover{background:#303030;border-bottom:none;border-top:1px solid #5e5e5e}.top-submenu.move-bottom,.top-submenu.offcanvas-overlap-bottom,.top-submenu.offcanvas-overlap{-webkit-transform:translate3d(0, 0%, 0);-moz-transform:translate3d(0, 0%, 0);-ms-transform:translate(0, 0%);-o-transform:translate3d(0, 0%, 0);transform:translate3d(0, 0%, 0)}.bottom-submenu{-webkit-backface-visibility:hidden;-webkit-overflow-scrolling:touch;background:#0065a4;bottom:0;box-sizing:content-box;margin:0;overflow-x:hidden;overflow-y:auto;position:absolute;top:0;width:15.625rem;height:18.75rem;z-index:1002;-webkit-transform:translate3d(0, 100%, 0);-moz-transform:translate3d(0, 100%, 0);-ms-transform:translate(0, 100%);-o-transform:translate3d(0, 100%, 0);transform:translate3d(0, 100%, 0);bottom:0;width:100%;-webkit-transition:-webkit-transform 500ms ease;-moz-transition:-moz-transform 500ms ease;-ms-transition:-ms-transform 500ms ease;-o-transition:-o-transform 500ms ease;transition:transform 500ms ease}.bottom-submenu *{-webkit-backface-visibility:hidden}.bottom-submenu .back>a{background:#444;border-bottom:none;border-top:1px solid #5e5e5e;color:#999999;font-weight:bold;padding:.3rem 0.9375rem;text-transform:uppercase;margin:0}.bottom-submenu .back>a:hover{background:#303030;border-bottom:none;border-top:1px solid #5e5e5e}.bottom-submenu.move-top,.bottom-submenu.offcanvas-overlap-top,.bottom-submenu.offcanvas-overlap{-webkit-transform:translate3d(0, 0%, 0);-moz-transform:translate3d(0, 0%, 0);-ms-transform:translate(0, 0%);-o-transform:translate3d(0, 0%, 0);transform:translate3d(0, 0%, 0)}.left-off-canvas-menu ul.off-canvas-list li.has-submenu>a:after{content:"\BB";margin-left:.5rem;display:inline}.right-off-canvas-menu ul.off-canvas-list li.has-submenu>a:before{content:"\AB";margin-right:.5rem;display:inline}@media only screen{.show-for-small-only,.show-for-small-up,.show-for-small,.show-for-small-down,.hide-for-medium-only,.hide-for-medium-up,.hide-for-medium,.show-for-medium-down,.hide-for-large-only,.hide-for-large-up,.hide-for-large,.show-for-large-down,.hide-for-xlarge-only,.hide-for-xlarge-up,.hide-for-xlarge,.show-for-xlarge-down,.hide-for-xxlarge-only,.hide-for-xxlarge-up,.hide-for-xxlarge,.show-for-xxlarge-down{display:inherit !important}.hide-for-small-only,.hide-for-small-up,.hide-for-small,.hide-for-small-down,.show-for-medium-only,.show-for-medium-up,.show-for-medium,.hide-for-medium-down,.show-for-large-only,.show-for-large-up,.show-for-large,.hide-for-large-down,.show-for-xlarge-only,.show-for-xlarge-up,.show-for-xlarge,.hide-for-xlarge-down,.show-for-xxlarge-only,.show-for-xxlarge-up,.show-for-xxlarge,.hide-for-xxlarge-down{display:none !important}.visible-for-small-only,.visible-for-small-up,.visible-for-small,.visible-for-small-down,.hidden-for-medium-only,.hidden-for-medium-up,.hidden-for-medium,.visible-for-medium-down,.hidden-for-large-only,.hidden-for-large-up,.hidden-for-large,.visible-for-large-down,.hidden-for-xlarge-only,.hidden-for-xlarge-up,.hidden-for-xlarge,.visible-for-xlarge-down,.hidden-for-xxlarge-only,.hidden-for-xxlarge-up,.hidden-for-xxlarge,.visible-for-xxlarge-down{position:static !important;height:auto;width:auto;overflow:visible;clip:auto}.hidden-for-small-only,.hidden-for-small-up,.hidden-for-small,.hidden-for-small-down,.visible-for-medium-only,.visible-for-medium-up,.visible-for-medium,.hidden-for-medium-down,.visible-for-large-only,.visible-for-large-up,.visible-for-large,.hidden-for-large-down,.visible-for-xlarge-only,.visible-for-xlarge-up,.visible-for-xlarge,.hidden-for-xlarge-down,.visible-for-xxlarge-only,.visible-for-xxlarge-up,.visible-for-xxlarge,.hidden-for-xxlarge-down{clip:rect(1px, 1px, 1px, 1px);height:1px;overflow:hidden;position:absolute !important;width:1px}table.show-for-small-only,table.show-for-small-up,table.show-for-small,table.show-for-small-down,table.hide-for-medium-only,table.hide-for-medium-up,table.hide-for-medium,table.show-for-medium-down,table.hide-for-large-only,table.hide-for-large-up,table.hide-for-large,table.show-for-large-down,table.hide-for-xlarge-only,table.hide-for-xlarge-up,table.hide-for-xlarge,table.show-for-xlarge-down,table.hide-for-xxlarge-only,table.hide-for-xxlarge-up,table.hide-for-xxlarge,table.show-for-xxlarge-down{display:table !important}thead.show-for-small-only,thead.show-for-small-up,thead.show-for-small,thead.show-for-small-down,thead.hide-for-medium-only,thead.hide-for-medium-up,thead.hide-for-medium,thead.show-for-medium-down,thead.hide-for-large-only,thead.hide-for-large-up,thead.hide-for-large,thead.show-for-large-down,thead.hide-for-xlarge-only,thead.hide-for-xlarge-up,thead.hide-for-xlarge,thead.show-for-xlarge-down,thead.hide-for-xxlarge-only,thead.hide-for-xxlarge-up,thead.hide-for-xxlarge,thead.show-for-xxlarge-down{display:table-header-group !important}tbody.show-for-small-only,tbody.show-for-small-up,tbody.show-for-small,tbody.show-for-small-down,tbody.hide-for-medium-only,tbody.hide-for-medium-up,tbody.hide-for-medium,tbody.show-for-medium-down,tbody.hide-for-large-only,tbody.hide-for-large-up,tbody.hide-for-large,tbody.show-for-large-down,tbody.hide-for-xlarge-only,tbody.hide-for-xlarge-up,tbody.hide-for-xlarge,tbody.show-for-xlarge-down,tbody.hide-for-xxlarge-only,tbody.hide-for-xxlarge-up,tbody.hide-for-xxlarge,tbody.show-for-xxlarge-down{display:table-row-group !important}tr.show-for-small-only,tr.show-for-small-up,tr.show-for-small,tr.show-for-small-down,tr.hide-for-medium-only,tr.hide-for-medium-up,tr.hide-for-medium,tr.show-for-medium-down,tr.hide-for-large-only,tr.hide-for-large-up,tr.hide-for-large,tr.show-for-large-down,tr.hide-for-xlarge-only,tr.hide-for-xlarge-up,tr.hide-for-xlarge,tr.show-for-xlarge-down,tr.hide-for-xxlarge-only,tr.hide-for-xxlarge-up,tr.hide-for-xxlarge,tr.show-for-xxlarge-down{display:table-row}th.show-for-small-only,td.show-for-small-only,th.show-for-small-up,td.show-for-small-up,th.show-for-small,td.show-for-small,th.show-for-small-down,td.show-for-small-down,th.hide-for-medium-only,td.hide-for-medium-only,th.hide-for-medium-up,td.hide-for-medium-up,th.hide-for-medium,td.hide-for-medium,th.show-for-medium-down,td.show-for-medium-down,th.hide-for-large-only,td.hide-for-large-only,th.hide-for-large-up,td.hide-for-large-up,th.hide-for-large,td.hide-for-large,th.show-for-large-down,td.show-for-large-down,th.hide-for-xlarge-only,td.hide-for-xlarge-only,th.hide-for-xlarge-up,td.hide-for-xlarge-up,th.hide-for-xlarge,td.hide-for-xlarge,th.show-for-xlarge-down,td.show-for-xlarge-down,th.hide-for-xxlarge-only,td.hide-for-xxlarge-only,th.hide-for-xxlarge-up,td.hide-for-xxlarge-up,th.hide-for-xxlarge,td.hide-for-xxlarge,th.show-for-xxlarge-down,td.show-for-xxlarge-down{display:table-cell !important}}@media only screen and (min-width:40.063em){.hide-for-small-only,.show-for-small-up,.hide-for-small,.hide-for-small-down,.show-for-medium-only,.show-for-medium-up,.show-for-medium,.show-for-medium-down,.hide-for-large-only,.hide-for-large-up,.hide-for-large,.show-for-large-down,.hide-for-xlarge-only,.hide-for-xlarge-up,.hide-for-xlarge,.show-for-xlarge-down,.hide-for-xxlarge-only,.hide-for-xxlarge-up,.hide-for-xxlarge,.show-for-xxlarge-down{display:inherit !important}.show-for-small-only,.hide-for-small-up,.show-for-small,.show-for-small-down,.hide-for-medium-only,.hide-for-medium-up,.hide-for-medium,.hide-for-medium-down,.show-for-large-only,.show-for-large-up,.show-for-large,.hide-for-large-down,.show-for-xlarge-only,.show-for-xlarge-up,.show-for-xlarge,.hide-for-xlarge-down,.show-for-xxlarge-only,.show-for-xxlarge-up,.show-for-xxlarge,.hide-for-xxlarge-down{display:none !important}.hidden-for-small-only,.visible-for-small-up,.hidden-for-small,.hidden-for-small-down,.visible-for-medium-only,.visible-for-medium-up,.visible-for-medium,.visible-for-medium-down,.hidden-for-large-only,.hidden-for-large-up,.hidden-for-large,.visible-for-large-down,.hidden-for-xlarge-only,.hidden-for-xlarge-up,.hidden-for-xlarge,.visible-for-xlarge-down,.hidden-for-xxlarge-only,.hidden-for-xxlarge-up,.hidden-for-xxlarge,.visible-for-xxlarge-down{position:static !important;height:auto;width:auto;overflow:visible;clip:auto}.visible-for-small-only,.hidden-for-small-up,.visible-for-small,.visible-for-small-down,.hidden-for-medium-only,.hidden-for-medium-up,.hidden-for-medium,.hidden-for-medium-down,.visible-for-large-only,.visible-for-large-up,.visible-for-large,.hidden-for-large-down,.visible-for-xlarge-only,.visible-for-xlarge-up,.visible-for-xlarge,.hidden-for-xlarge-down,.visible-for-xxlarge-only,.visible-for-xxlarge-up,.visible-for-xxlarge,.hidden-for-xxlarge-down{clip:rect(1px, 1px, 1px, 1px);height:1px;overflow:hidden;position:absolute !important;width:1px}table.hide-for-small-only,table.show-for-small-up,table.hide-for-small,table.hide-for-small-down,table.show-for-medium-only,table.show-for-medium-up,table.show-for-medium,table.show-for-medium-down,table.hide-for-large-only,table.hide-for-large-up,table.hide-for-large,table.show-for-large-down,table.hide-for-xlarge-only,table.hide-for-xlarge-up,table.hide-for-xlarge,table.show-for-xlarge-down,table.hide-for-xxlarge-only,table.hide-for-xxlarge-up,table.hide-for-xxlarge,table.show-for-xxlarge-down{display:table !important}thead.hide-for-small-only,thead.show-for-small-up,thead.hide-for-small,thead.hide-for-small-down,thead.show-for-medium-only,thead.show-for-medium-up,thead.show-for-medium,thead.show-for-medium-down,thead.hide-for-large-only,thead.hide-for-large-up,thead.hide-for-large,thead.show-for-large-down,thead.hide-for-xlarge-only,thead.hide-for-xlarge-up,thead.hide-for-xlarge,thead.show-for-xlarge-down,thead.hide-for-xxlarge-only,thead.hide-for-xxlarge-up,thead.hide-for-xxlarge,thead.show-for-xxlarge-down{display:table-header-group !important}tbody.hide-for-small-only,tbody.show-for-small-up,tbody.hide-for-small,tbody.hide-for-small-down,tbody.show-for-medium-only,tbody.show-for-medium-up,tbody.show-for-medium,tbody.show-for-medium-down,tbody.hide-for-large-only,tbody.hide-for-large-up,tbody.hide-for-large,tbody.show-for-large-down,tbody.hide-for-xlarge-only,tbody.hide-for-xlarge-up,tbody.hide-for-xlarge,tbody.show-for-xlarge-down,tbody.hide-for-xxlarge-only,tbody.hide-for-xxlarge-up,tbody.hide-for-xxlarge,tbody.show-for-xxlarge-down{display:table-row-group !important}tr.hide-for-small-only,tr.show-for-small-up,tr.hide-for-small,tr.hide-for-small-down,tr.show-for-medium-only,tr.show-for-medium-up,tr.show-for-medium,tr.show-for-medium-down,tr.hide-for-large-only,tr.hide-for-large-up,tr.hide-for-large,tr.show-for-large-down,tr.hide-for-xlarge-only,tr.hide-for-xlarge-up,tr.hide-for-xlarge,tr.show-for-xlarge-down,tr.hide-for-xxlarge-only,tr.hide-for-xxlarge-up,tr.hide-for-xxlarge,tr.show-for-xxlarge-down{display:table-row}th.hide-for-small-only,td.hide-for-small-only,th.show-for-small-up,td.show-for-small-up,th.hide-for-small,td.hide-for-small,th.hide-for-small-down,td.hide-for-small-down,th.show-for-medium-only,td.show-for-medium-only,th.show-for-medium-up,td.show-for-medium-up,th.show-for-medium,td.show-for-medium,th.show-for-medium-down,td.show-for-medium-down,th.hide-for-large-only,td.hide-for-large-only,th.hide-for-large-up,td.hide-for-large-up,th.hide-for-large,td.hide-for-large,th.show-for-large-down,td.show-for-large-down,th.hide-for-xlarge-only,td.hide-for-xlarge-only,th.hide-for-xlarge-up,td.hide-for-xlarge-up,th.hide-for-xlarge,td.hide-for-xlarge,th.show-for-xlarge-down,td.show-for-xlarge-down,th.hide-for-xxlarge-only,td.hide-for-xxlarge-only,th.hide-for-xxlarge-up,td.hide-for-xxlarge-up,th.hide-for-xxlarge,td.hide-for-xxlarge,th.show-for-xxlarge-down,td.show-for-xxlarge-down{display:table-cell !important}}@media only screen and (min-width:64.063em){.hide-for-small-only,.show-for-small-up,.hide-for-small,.hide-for-small-down,.hide-for-medium-only,.show-for-medium-up,.hide-for-medium,.hide-for-medium-down,.show-for-large-only,.show-for-large-up,.show-for-large,.show-for-large-down,.hide-for-xlarge-only,.hide-for-xlarge-up,.hide-for-xlarge,.show-for-xlarge-down,.hide-for-xxlarge-only,.hide-for-xxlarge-up,.hide-for-xxlarge,.show-for-xxlarge-down{display:inherit !important}.show-for-small-only,.hide-for-small-up,.show-for-small,.show-for-small-down,.show-for-medium-only,.hide-for-medium-up,.show-for-medium,.show-for-medium-down,.hide-for-large-only,.hide-for-large-up,.hide-for-large,.hide-for-large-down,.show-for-xlarge-only,.show-for-xlarge-up,.show-for-xlarge,.hide-for-xlarge-down,.show-for-xxlarge-only,.show-for-xxlarge-up,.show-for-xxlarge,.hide-for-xxlarge-down{display:none !important}.hidden-for-small-only,.visible-for-small-up,.hidden-for-small,.hidden-for-small-down,.hidden-for-medium-only,.visible-for-medium-up,.hidden-for-medium,.hidden-for-medium-down,.visible-for-large-only,.visible-for-large-up,.visible-for-large,.visible-for-large-down,.hidden-for-xlarge-only,.hidden-for-xlarge-up,.hidden-for-xlarge,.visible-for-xlarge-down,.hidden-for-xxlarge-only,.hidden-for-xxlarge-up,.hidden-for-xxlarge,.visible-for-xxlarge-down{position:static !important;height:auto;width:auto;overflow:visible;clip:auto}.visible-for-small-only,.hidden-for-small-up,.visible-for-small,.visible-for-small-down,.visible-for-medium-only,.hidden-for-medium-up,.visible-for-medium,.visible-for-medium-down,.hidden-for-large-only,.hidden-for-large-up,.hidden-for-large,.hidden-for-large-down,.visible-for-xlarge-only,.visible-for-xlarge-up,.visible-for-xlarge,.hidden-for-xlarge-down,.visible-for-xxlarge-only,.visible-for-xxlarge-up,.visible-for-xxlarge,.hidden-for-xxlarge-down{clip:rect(1px, 1px, 1px, 1px);height:1px;overflow:hidden;position:absolute !important;width:1px}table.hide-for-small-only,table.show-for-small-up,table.hide-for-small,table.hide-for-small-down,table.hide-for-medium-only,table.show-for-medium-up,table.hide-for-medium,table.hide-for-medium-down,table.show-for-large-only,table.show-for-large-up,table.show-for-large,table.show-for-large-down,table.hide-for-xlarge-only,table.hide-for-xlarge-up,table.hide-for-xlarge,table.show-for-xlarge-down,table.hide-for-xxlarge-only,table.hide-for-xxlarge-up,table.hide-for-xxlarge,table.show-for-xxlarge-down{display:table !important}thead.hide-for-small-only,thead.show-for-small-up,thead.hide-for-small,thead.hide-for-small-down,thead.hide-for-medium-only,thead.show-for-medium-up,thead.hide-for-medium,thead.hide-for-medium-down,thead.show-for-large-only,thead.show-for-large-up,thead.show-for-large,thead.show-for-large-down,thead.hide-for-xlarge-only,thead.hide-for-xlarge-up,thead.hide-for-xlarge,thead.show-for-xlarge-down,thead.hide-for-xxlarge-only,thead.hide-for-xxlarge-up,thead.hide-for-xxlarge,thead.show-for-xxlarge-down{display:table-header-group !important}tbody.hide-for-small-only,tbody.show-for-small-up,tbody.hide-for-small,tbody.hide-for-small-down,tbody.hide-for-medium-only,tbody.show-for-medium-up,tbody.hide-for-medium,tbody.hide-for-medium-down,tbody.show-for-large-only,tbody.show-for-large-up,tbody.show-for-large,tbody.show-for-large-down,tbody.hide-for-xlarge-only,tbody.hide-for-xlarge-up,tbody.hide-for-xlarge,tbody.show-for-xlarge-down,tbody.hide-for-xxlarge-only,tbody.hide-for-xxlarge-up,tbody.hide-for-xxlarge,tbody.show-for-xxlarge-down{display:table-row-group !important}tr.hide-for-small-only,tr.show-for-small-up,tr.hide-for-small,tr.hide-for-small-down,tr.hide-for-medium-only,tr.show-for-medium-up,tr.hide-for-medium,tr.hide-for-medium-down,tr.show-for-large-only,tr.show-for-large-up,tr.show-for-large,tr.show-for-large-down,tr.hide-for-xlarge-only,tr.hide-for-xlarge-up,tr.hide-for-xlarge,tr.show-for-xlarge-down,tr.hide-for-xxlarge-only,tr.hide-for-xxlarge-up,tr.hide-for-xxlarge,tr.show-for-xxlarge-down{display:table-row}th.hide-for-small-only,td.hide-for-small-only,th.show-for-small-up,td.show-for-small-up,th.hide-for-small,td.hide-for-small,th.hide-for-small-down,td.hide-for-small-down,th.hide-for-medium-only,td.hide-for-medium-only,th.show-for-medium-up,td.show-for-medium-up,th.hide-for-medium,td.hide-for-medium,th.hide-for-medium-down,td.hide-for-medium-down,th.show-for-large-only,td.show-for-large-only,th.show-for-large-up,td.show-for-large-up,th.show-for-large,td.show-for-large,th.show-for-large-down,td.show-for-large-down,th.hide-for-xlarge-only,td.hide-for-xlarge-only,th.hide-for-xlarge-up,td.hide-for-xlarge-up,th.hide-for-xlarge,td.hide-for-xlarge,th.show-for-xlarge-down,td.show-for-xlarge-down,th.hide-for-xxlarge-only,td.hide-for-xxlarge-only,th.hide-for-xxlarge-up,td.hide-for-xxlarge-up,th.hide-for-xxlarge,td.hide-for-xxlarge,th.show-for-xxlarge-down,td.show-for-xxlarge-down{display:table-cell !important}}@media only screen and (min-width:90.063em){.hide-for-small-only,.show-for-small-up,.hide-for-small,.hide-for-small-down,.hide-for-medium-only,.show-for-medium-up,.hide-for-medium,.hide-for-medium-down,.hide-for-large-only,.show-for-large-up,.hide-for-large,.hide-for-large-down,.show-for-xlarge-only,.show-for-xlarge-up,.show-for-xlarge,.show-for-xlarge-down,.hide-for-xxlarge-only,.hide-for-xxlarge-up,.hide-for-xxlarge,.show-for-xxlarge-down{display:inherit !important}.show-for-small-only,.hide-for-small-up,.show-for-small,.show-for-small-down,.show-for-medium-only,.hide-for-medium-up,.show-for-medium,.show-for-medium-down,.show-for-large-only,.hide-for-large-up,.show-for-large,.show-for-large-down,.hide-for-xlarge-only,.hide-for-xlarge-up,.hide-for-xlarge,.hide-for-xlarge-down,.show-for-xxlarge-only,.show-for-xxlarge-up,.show-for-xxlarge,.hide-for-xxlarge-down{display:none !important}.hidden-for-small-only,.visible-for-small-up,.hidden-for-small,.hidden-for-small-down,.hidden-for-medium-only,.visible-for-medium-up,.hidden-for-medium,.hidden-for-medium-down,.hidden-for-large-only,.visible-for-large-up,.hidden-for-large,.hidden-for-large-down,.visible-for-xlarge-only,.visible-for-xlarge-up,.visible-for-xlarge,.visible-for-xlarge-down,.hidden-for-xxlarge-only,.hidden-for-xxlarge-up,.hidden-for-xxlarge,.visible-for-xxlarge-down{position:static !important;height:auto;width:auto;overflow:visible;clip:auto}.visible-for-small-only,.hidden-for-small-up,.visible-for-small,.visible-for-small-down,.visible-for-medium-only,.hidden-for-medium-up,.visible-for-medium,.visible-for-medium-down,.visible-for-large-only,.hidden-for-large-up,.visible-for-large,.visible-for-large-down,.hidden-for-xlarge-only,.hidden-for-xlarge-up,.hidden-for-xlarge,.hidden-for-xlarge-down,.visible-for-xxlarge-only,.visible-for-xxlarge-up,.visible-for-xxlarge,.hidden-for-xxlarge-down{clip:rect(1px, 1px, 1px, 1px);height:1px;overflow:hidden;position:absolute !important;width:1px}table.hide-for-small-only,table.show-for-small-up,table.hide-for-small,table.hide-for-small-down,table.hide-for-medium-only,table.show-for-medium-up,table.hide-for-medium,table.hide-for-medium-down,table.hide-for-large-only,table.show-for-large-up,table.hide-for-large,table.hide-for-large-down,table.show-for-xlarge-only,table.show-for-xlarge-up,table.show-for-xlarge,table.show-for-xlarge-down,table.hide-for-xxlarge-only,table.hide-for-xxlarge-up,table.hide-for-xxlarge,table.show-for-xxlarge-down{display:table !important}thead.hide-for-small-only,thead.show-for-small-up,thead.hide-for-small,thead.hide-for-small-down,thead.hide-for-medium-only,thead.show-for-medium-up,thead.hide-for-medium,thead.hide-for-medium-down,thead.hide-for-large-only,thead.show-for-large-up,thead.hide-for-large,thead.hide-for-large-down,thead.show-for-xlarge-only,thead.show-for-xlarge-up,thead.show-for-xlarge,thead.show-for-xlarge-down,thead.hide-for-xxlarge-only,thead.hide-for-xxlarge-up,thead.hide-for-xxlarge,thead.show-for-xxlarge-down{display:table-header-group !important}tbody.hide-for-small-only,tbody.show-for-small-up,tbody.hide-for-small,tbody.hide-for-small-down,tbody.hide-for-medium-only,tbody.show-for-medium-up,tbody.hide-for-medium,tbody.hide-for-medium-down,tbody.hide-for-large-only,tbody.show-for-large-up,tbody.hide-for-large,tbody.hide-for-large-down,tbody.show-for-xlarge-only,tbody.show-for-xlarge-up,tbody.show-for-xlarge,tbody.show-for-xlarge-down,tbody.hide-for-xxlarge-only,tbody.hide-for-xxlarge-up,tbody.hide-for-xxlarge,tbody.show-for-xxlarge-down{display:table-row-group !important}tr.hide-for-small-only,tr.show-for-small-up,tr.hide-for-small,tr.hide-for-small-down,tr.hide-for-medium-only,tr.show-for-medium-up,tr.hide-for-medium,tr.hide-for-medium-down,tr.hide-for-large-only,tr.show-for-large-up,tr.hide-for-large,tr.hide-for-large-down,tr.show-for-xlarge-only,tr.show-for-xlarge-up,tr.show-for-xlarge,tr.show-for-xlarge-down,tr.hide-for-xxlarge-only,tr.hide-for-xxlarge-up,tr.hide-for-xxlarge,tr.show-for-xxlarge-down{display:table-row}th.hide-for-small-only,td.hide-for-small-only,th.show-for-small-up,td.show-for-small-up,th.hide-for-small,td.hide-for-small,th.hide-for-small-down,td.hide-for-small-down,th.hide-for-medium-only,td.hide-for-medium-only,th.show-for-medium-up,td.show-for-medium-up,th.hide-for-medium,td.hide-for-medium,th.hide-for-medium-down,td.hide-for-medium-down,th.hide-for-large-only,td.hide-for-large-only,th.show-for-large-up,td.show-for-large-up,th.hide-for-large,td.hide-for-large,th.hide-for-large-down,td.hide-for-large-down,th.show-for-xlarge-only,td.show-for-xlarge-only,th.show-for-xlarge-up,td.show-for-xlarge-up,th.show-for-xlarge,td.show-for-xlarge,th.show-for-xlarge-down,td.show-for-xlarge-down,th.hide-for-xxlarge-only,td.hide-for-xxlarge-only,th.hide-for-xxlarge-up,td.hide-for-xxlarge-up,th.hide-for-xxlarge,td.hide-for-xxlarge,th.show-for-xxlarge-down,td.show-for-xxlarge-down{display:table-cell !important}}@media only screen and (min-width:120.063em){.hide-for-small-only,.show-for-small-up,.hide-for-small,.hide-for-small-down,.hide-for-medium-only,.show-for-medium-up,.hide-for-medium,.hide-for-medium-down,.hide-for-large-only,.show-for-large-up,.hide-for-large,.hide-for-large-down,.hide-for-xlarge-only,.show-for-xlarge-up,.hide-for-xlarge,.hide-for-xlarge-down,.show-for-xxlarge-only,.show-for-xxlarge-up,.show-for-xxlarge,.show-for-xxlarge-down{display:inherit !important}.show-for-small-only,.hide-for-small-up,.show-for-small,.show-for-small-down,.show-for-medium-only,.hide-for-medium-up,.show-for-medium,.show-for-medium-down,.show-for-large-only,.hide-for-large-up,.show-for-large,.show-for-large-down,.show-for-xlarge-only,.hide-for-xlarge-up,.show-for-xlarge,.show-for-xlarge-down,.hide-for-xxlarge-only,.hide-for-xxlarge-up,.hide-for-xxlarge,.hide-for-xxlarge-down{display:none !important}.hidden-for-small-only,.visible-for-small-up,.hidden-for-small,.hidden-for-small-down,.hidden-for-medium-only,.visible-for-medium-up,.hidden-for-medium,.hidden-for-medium-down,.hidden-for-large-only,.visible-for-large-up,.hidden-for-large,.hidden-for-large-down,.hidden-for-xlarge-only,.visible-for-xlarge-up,.hidden-for-xlarge,.hidden-for-xlarge-down,.visible-for-xxlarge-only,.visible-for-xxlarge-up,.visible-for-xxlarge,.visible-for-xxlarge-down{position:static !important;height:auto;width:auto;overflow:visible;clip:auto}.visible-for-small-only,.hidden-for-small-up,.visible-for-small,.visible-for-small-down,.visible-for-medium-only,.hidden-for-medium-up,.visible-for-medium,.visible-for-medium-down,.visible-for-large-only,.hidden-for-large-up,.visible-for-large,.visible-for-large-down,.visible-for-xlarge-only,.hidden-for-xlarge-up,.visible-for-xlarge,.visible-for-xlarge-down,.hidden-for-xxlarge-only,.hidden-for-xxlarge-up,.hidden-for-xxlarge,.hidden-for-xxlarge-down{clip:rect(1px, 1px, 1px, 1px);height:1px;overflow:hidden;position:absolute !important;width:1px}table.hide-for-small-only,table.show-for-small-up,table.hide-for-small,table.hide-for-small-down,table.hide-for-medium-only,table.show-for-medium-up,table.hide-for-medium,table.hide-for-medium-down,table.hide-for-large-only,table.show-for-large-up,table.hide-for-large,table.hide-for-large-down,table.hide-for-xlarge-only,table.show-for-xlarge-up,table.hide-for-xlarge,table.hide-for-xlarge-down,table.show-for-xxlarge-only,table.show-for-xxlarge-up,table.show-for-xxlarge,table.show-for-xxlarge-down{display:table !important}thead.hide-for-small-only,thead.show-for-small-up,thead.hide-for-small,thead.hide-for-small-down,thead.hide-for-medium-only,thead.show-for-medium-up,thead.hide-for-medium,thead.hide-for-medium-down,thead.hide-for-large-only,thead.show-for-large-up,thead.hide-for-large,thead.hide-for-large-down,thead.hide-for-xlarge-only,thead.show-for-xlarge-up,thead.hide-for-xlarge,thead.hide-for-xlarge-down,thead.show-for-xxlarge-only,thead.show-for-xxlarge-up,thead.show-for-xxlarge,thead.show-for-xxlarge-down{display:table-header-group !important}tbody.hide-for-small-only,tbody.show-for-small-up,tbody.hide-for-small,tbody.hide-for-small-down,tbody.hide-for-medium-only,tbody.show-for-medium-up,tbody.hide-for-medium,tbody.hide-for-medium-down,tbody.hide-for-large-only,tbody.show-for-large-up,tbody.hide-for-large,tbody.hide-for-large-down,tbody.hide-for-xlarge-only,tbody.show-for-xlarge-up,tbody.hide-for-xlarge,tbody.hide-for-xlarge-down,tbody.show-for-xxlarge-only,tbody.show-for-xxlarge-up,tbody.show-for-xxlarge,tbody.show-for-xxlarge-down{display:table-row-group !important}tr.hide-for-small-only,tr.show-for-small-up,tr.hide-for-small,tr.hide-for-small-down,tr.hide-for-medium-only,tr.show-for-medium-up,tr.hide-for-medium,tr.hide-for-medium-down,tr.hide-for-large-only,tr.show-for-large-up,tr.hide-for-large,tr.hide-for-large-down,tr.hide-for-xlarge-only,tr.show-for-xlarge-up,tr.hide-for-xlarge,tr.hide-for-xlarge-down,tr.show-for-xxlarge-only,tr.show-for-xxlarge-up,tr.show-for-xxlarge,tr.show-for-xxlarge-down{display:table-row}th.hide-for-small-only,td.hide-for-small-only,th.show-for-small-up,td.show-for-small-up,th.hide-for-small,td.hide-for-small,th.hide-for-small-down,td.hide-for-small-down,th.hide-for-medium-only,td.hide-for-medium-only,th.show-for-medium-up,td.show-for-medium-up,th.hide-for-medium,td.hide-for-medium,th.hide-for-medium-down,td.hide-for-medium-down,th.hide-for-large-only,td.hide-for-large-only,th.show-for-large-up,td.show-for-large-up,th.hide-for-large,td.hide-for-large,th.hide-for-large-down,td.hide-for-large-down,th.hide-for-xlarge-only,td.hide-for-xlarge-only,th.show-for-xlarge-up,td.show-for-xlarge-up,th.hide-for-xlarge,td.hide-for-xlarge,th.hide-for-xlarge-down,td.hide-for-xlarge-down,th.show-for-xxlarge-only,td.show-for-xxlarge-only,th.show-for-xxlarge-up,td.show-for-xxlarge-up,th.show-for-xxlarge,td.show-for-xxlarge,th.show-for-xxlarge-down,td.show-for-xxlarge-down{display:table-cell !important}}.show-for-landscape,.hide-for-portrait{display:inherit !important}.hide-for-landscape,.show-for-portrait{display:none !important}table.hide-for-landscape,table.show-for-portrait{display:table !important}thead.hide-for-landscape,thead.show-for-portrait{display:table-header-group !important}tbody.hide-for-landscape,tbody.show-for-portrait{display:table-row-group !important}tr.hide-for-landscape,tr.show-for-portrait{display:table-row !important}td.hide-for-landscape,td.show-for-portrait,th.hide-for-landscape,th.show-for-portrait{display:table-cell !important}@media only screen and (orientation: landscape){.show-for-landscape,.hide-for-portrait{display:inherit !important}.hide-for-landscape,.show-for-portrait{display:none !important}table.show-for-landscape,table.hide-for-portrait{display:table !important}thead.show-for-landscape,thead.hide-for-portrait{display:table-header-group !important}tbody.show-for-landscape,tbody.hide-for-portrait{display:table-row-group !important}tr.show-for-landscape,tr.hide-for-portrait{display:table-row !important}td.show-for-landscape,td.hide-for-portrait,th.show-for-landscape,th.hide-for-portrait{display:table-cell !important}}@media only screen and (orientation: portrait){.show-for-portrait,.hide-for-landscape{display:inherit !important}.hide-for-portrait,.show-for-landscape{display:none !important}table.show-for-portrait,table.hide-for-landscape{display:table !important}thead.show-for-portrait,thead.hide-for-landscape{display:table-header-group !important}tbody.show-for-portrait,tbody.hide-for-landscape{display:table-row-group !important}tr.show-for-portrait,tr.hide-for-landscape{display:table-row !important}td.show-for-portrait,td.hide-for-landscape,th.show-for-portrait,th.hide-for-landscape{display:table-cell !important}}.show-for-touch{display:none !important}.hide-for-touch{display:inherit !important}.touch .show-for-touch{display:inherit !important}.touch .hide-for-touch{display:none !important}table.hide-for-touch{display:table !important}.touch table.show-for-touch{display:table !important}thead.hide-for-touch{display:table-header-group !important}.touch thead.show-for-touch{display:table-header-group !important}tbody.hide-for-touch{display:table-row-group !important}.touch tbody.show-for-touch{display:table-row-group !important}tr.hide-for-touch{display:table-row !important}.touch tr.show-for-touch{display:table-row !important}td.hide-for-touch{display:table-cell !important}.touch td.show-for-touch{display:table-cell !important}th.hide-for-touch{display:table-cell !important}.touch th.show-for-touch{display:table-cell !important}.show-for-sr{clip:rect(1px, 1px, 1px, 1px);height:1px;overflow:hidden;position:absolute !important;width:1px}.show-on-focus{clip:rect(1px, 1px, 1px, 1px);height:1px;overflow:hidden;position:absolute !important;width:1px}.show-on-focus:focus,.show-on-focus:active{position:static !important;height:auto;width:auto;overflow:visible;clip:auto}.print-only,.show-for-print{display:none !important}@media print{.print-only,.show-for-print{display:block !important}.hide-on-print,.hide-for-print{display:none !important}table.show-for-print{display:table !important}thead.show-for-print{display:table-header-group !important}tbody.show-for-print{display:table-row-group !important}tr.show-for-print{display:table-row !important}td.show-for-print{display:table-cell !important}th.show-for-print{display:table-cell !important}}img.aligncenter{display:block;clear:both;float:none;padding:0;margin-left:auto;margin-right:auto}img.alignright{padding:0;margin:0 0 6px 11px;display:inline}blockquote.alignleft,img.alignleft,.wp-caption.alignleft{margin:0.4375rem 2.1875rem 0.4375rem 0}blockquote.alignright,img.alignright,.wp-caption.alignright{margin:0.4375rem 0 0.4375rem 2.1875rem}img.alignleft{padding:0;display:inline}.alignright{float:right}.alignnone{float:none}.alignleft{float:left}.wp-caption{width:auto}.wp-caption-text{font-family:Open Sans, sans-serif;font-size:9px;color:#FFFFFF;font-style:italic;margin:0;padding:0 5px}.gallery-one-title{height:45px;font-size:0.8em;text-align:center;font-family:sans-serif;padding:5px}.gallery-holder{margin:10px 0 20px 0}@media 0em, 40em{img.alignright,img.alignleft,img.aligncenter{width:70% !important;display:block;margin-left:auto;margin-right:auto;float:none;text-align:center}div.wp-caption.alignright,div.wp-caption.alignleft{width:44% !important;margin-left:auto;margin-right:auto;float:none;text-align:center}div.wp-caption.aligncenter{width:85% !important;margin-left:auto;margin-right:auto;float:none;text-align:center}div.wp-caption.alignnone{width:85% !important;float:none}div.wp-caption.alignright,div.wp-caption.alignleft,div.wp-caption.aligncenter{width:100%}}@media 40.063em, 64em{img.aligncenter,img.alignnone{width:70% !important;display:block;margin-left:auto;margin-right:auto;float:none;text-align:center}div.wp-caption.aligncenter{width:74% !important;margin-left:auto;margin-right:auto;float:none;text-align:center}div.wp-caption.aligncenter{width:100%}div.wp-caption.alignnone{width:73% !important;float:none}}.wp-caption{max-width:100%;margin:10px 20px;padding:5px;text-align:center}.wp-caption img{width:100%}.wp-caption p.wp-caption-text{padding:5px;width:100%;margin:0;color:black;font-size:14px;font-style:italic}.wp-caption.aligncenter{margin:10px auto}@media only screen and (max-width: 40em){#blog-posts-over{margin:0 !important}}.blog-posts-container{margin:30px 0 30px}.blog-posts-container embed,.blog-posts-container iframe,.blog-posts-container object,.blog-posts-container video{max-width:100%}.blog-posts-container a{text-decoration:none}.blog-posts-container header.entry-header h2.entry-title a{color:#222;margin-left:0}.blog-posts-container .wp-caption .wp-caption-text,.blog-posts-container .gallery-caption,.blog-posts-container .entry-caption{overflow:hidden;color:#757575;font-size:0.857143rem;font-style:italic;line-height:2}.blog-posts-container .date{font-size:12px}.blog-posts-container footer.entry-meta{color:#757575;font-size:0.928571rem;line-height:1.84615;margin-top:1.71429rem;clear:both;float:none;margin-right:auto}.blog-posts-container footer{background:none;clear:both;padding:15px 0 0;position:relative;text-align:center}#content-wrapper h1,#content-wrapper h2,#content-wrapper h3,#content-wrapper h4,#content-wrapper h5,#content-wrapper h6{clear:both}.content{background:#fff}#searchform_container{margin-top:20px}#searchform{max-width:100%;text-align:center}#searchform div input.blogbutton{background:-webkit-linear-gradient(top, #1999ce 80%, #107098 100%);background:-moz-linear-gradient(center top, #1999ce 80%, #107098 100%);background:-ms-linear-gradient(top, #1999ce 80%, #107098 100%)}#blog-side-info{border-left:1px solid grey;margin-top:30px;padding-left:20px}@media only screen and (max-width: 40em){#blog-side-info{text-align:center;}}h1,h2,h3,h4,h5,h6{clear:both}.gallery li a img{display:block;width:100%}.ngg-gallery-thumbnail,.ngg-gallery-thumbnail-box{float:none !important}.ngg-album-compact h4 .ngg-album-desc{height:auto !important;font-family:Georgia,Cambria,"Times New Roman",Times,serif;font-weight:400}.ngg-album-compact .album-meta-wrapper h4 a{font-style:normal}.album-meta-wrapper{display:block;height:54px;margin-bottom:20px}.ngg-glmalbums{margin:10px 0;min-height:260px}@media only screen and (max-width: 40em){.ngg-glmalbums{min-height:180px;}}.ngg-album-link{text-align:center}.ninja-forms-form-wrap{max-width:600px;margin:0 auto}.ninja-forms-form-wrap input[type=submit]{-webkit-appearance:none;-moz-appearance:none;border-radius:0;border-style:solid;border-width:3px;cursor:pointer;font-family:"Josefin Sans",sans-serif;font-weight:normal;line-height:normal;margin:0 0 1.25rem;position:relative;text-align:center;text-decoration:none;display:inline-block;padding:1rem 2rem 1.0625rem 2rem;font-size:1rem;background-color:#009543;border-color:#FFFFFF;color:#FFFFFF;transition:background-color 300ms ease-out;display:block;margin:0 auto}.ninja-forms-form-wrap input[type=submit]:hover,.ninja-forms-form-wrap input[type=submit]:focus{background-color:#007736}.ninja-forms-form-wrap input[type=submit]:hover,.ninja-forms-form-wrap input[type=submit]:focus{color:#FFFFFF}a[href^=tel]{color:inherit;text-decoration:none}body .shadow-wrapper{margin:0 auto;background:#FFFFFF;box-shadow:0 0 15px -6px #000000;-ms-box-shadow:0 0 15px -6px #000000;-moz-box-shadow:0 0 15px -6px #000000;-webkit-box-shadow:0 0 15px -6px #000000;max-width:1000px;padding-top:1.25rem}header.main{padding-top:5px;background:#FFFFFF;-webkit-box-shadow:5px 3px 6px -3px #000000;-moz-box-shadow:5px 3px 6px -3px #000000;box-shadow:5px 3px 6px -3px #000000}header.main span{color:#009543;font-size:1rem;margin:0 5px}header.main #logo-tag h3{clear:none;display:inline;color:#009543;white-space:nowrap}header.main #logo-tag img#logo{display:block}.contain-to-grid{box-shadow:0 5px 10px -1px #999999}.contain-to-grid .top-bar{height:73px;box-shadow:0 3px 3px 0 rgba(0,0,0,0.5);margin-bottom:10px}.tab-bar .tab-bar-section.middle{text-align:right}.tab-bar a.menu-icon span{color:#FFFFFF}.top-bar{float:none;margin:0 auto;width:1000px}.top-bar-section{background:transparent;display:inline-block;height:auto;line-height:1}.top-bar-section ul li{position:relative;background:rgba(255,255,255,0)}.top-bar-section ul li a{position:relative}.top-bar-section ul li a:hover{text-decoration:none}.top-bar-section ul li ul.dropdown{z-index:1;position:relative;display:block;float:left;padding:10px 5px;width:100%;margin-left:15px;min-width:400px;background:#FFFFFF;border-bottom-left-radius:5px;border-bottom-right-radius:5px;border-color:#96d3f9;border-left-width:1px;border-bottom-width:1px;border-right-width:1px;border-top-width:0;border-style:solid}.top-bar-section ul li ul.dropdown li{position:relative;display:inline-block;float:left;width:50%;padding:0 15px;height:auto}.top-bar-section ul li ul.dropdown li:first-child{display:none}.top-bar-section ul li ul.dropdown li:nth-child(odd){float:left}.top-bar-section ul li ul.dropdown li:nth-child(even){float:right}.top-bar-section ul li ul.dropdown li.active:not(.has-form){background:#FFFFFF}.top-bar-section ul li ul.dropdown li.active:not(.has-form)>a:not(.button){color:#0065a4;background:#FFFFFF}.top-bar-section ul li ul.dropdown li a{padding:10px 0 5px !important;font-size:1rem !important;white-space:pre-wrap;border-bottom:1px solid #dcddde}.top-bar-section ul li.drop-left>.dropdown{right:0 !important;left:auto !important;float:right !important}.top-bar-section>ul>li{position:relative}.top-bar-section>ul>li:before{color:#0065a4;content:" | ";position:absolute;bottom:15px;font-weight:bold;display:block;padding:0}.top-bar-section>ul>li:first-child:before{display:none}.menu-item-object-product_tag>a{word-wrap:break-word !important}@media only screen and (max-width: 40em){.page-front{position:relative;}}.page-front #block-row{margin-top:100px}.page-front #block-row .blocks .block{position:relative}@media only screen and (max-width: 40em){.page-front #block-row .blocks .block{float:none;left:0;right:0;max-width:395px;margin:0 auto 15px;}}.page-front #block-row .blocks .block img{border:2px solid #FFFFFF;width:100%;height:100%;box-shadow:0 2px 5px 0 #000000;-webkit-box-shadow:0 2px 5px 0 #000000;-moz-box-shadow:0 2px 5px 0 #000000;-ms-box-shadow:0 2px 5px 0 #000000}@media only screen and (max-width: 40em){.page-front #block-row .blocks .block img{float:none;left:0;right:0;}}.page-front #block-row .blocks .block .block-area{max-width:303.5px;position:absolute;z-index:3;top:0;display:block;width:91%;height:100%}.page-front #block-row .blocks .block .block-area h4{background:#80153f;position:absolute;bottom:5px;display:block;padding:0 5px;width:98.5%;left:2px;text-align:center;line-height:1.8;font-size:1.1875rem}@media screen and (min-width: 871px) and (max-width: 969px){.page-front #block-row .blocks .block .block-area h4{font-size:1.0625rem;}}@media screen and (min-width: 847px) and (max-width: 870px){.page-front #block-row .blocks .block .block-area h4{font-size:1rem;width:96.5%;}}@media screen and (min-width: 811px) and (max-width: 846px){.page-front #block-row .blocks .block .block-area h4{font-size:0.9375rem;width:96.5%;}}@media screen and (min-width: 774px) and (max-width: 810px){.page-front #block-row .blocks .block .block-area h4{font-size:0.875rem;width:96%;}}@media screen and (min-width: 641px) and (max-width: 773px){.page-front #block-row .blocks .block .block-area h4{font-size:0.75rem;width:96%;}}@media screen and (min-width: 385px) and (max-width: 640px){.page-front #block-row .blocks .block .block-area h4{width:100%;}}@media screen and (min-width: 365px) and (max-width: 384px){.page-front #block-row .blocks .block .block-area h4{width:99.6%;}}@media screen and (min-width: 320px) and (max-width: 364px){.page-front #block-row .blocks .block .block-area h4{width:99%;}}@media only screen and (max-width: 40em){.page-front #block-row .blocks .block .block-area h4{float:none;left:0;right:0;}}.page-front #block-row .blocks .block .block-area:hover{min-height:200px;background:rgba(0,0,0,0.8);height:auto}.page-front #block-row .blocks .block .block-area:hover h4{position:relative;top:0px;display:block;width:98.5%;left:2px;padding:0 5px;font-size:1.1875rem;text-align:center;line-height:1.8}@media screen and (min-width: 855px) and (max-width: 924px){.page-front #block-row .blocks .block .block-area:hover h4{font-size:1.125rem;}}@media screen and (min-width: 847px) and (max-width: 854px){.page-front #block-row .blocks .block .block-area:hover h4{font-size:1.125rem;width:96.5%;}}@media screen and (min-width: 774px) and (max-width: 846px){.page-front #block-row .blocks .block .block-area:hover h4{font-size:1rem;width:96.5%;}}@media screen and (min-width: 641px) and (max-width: 773px){.page-front #block-row .blocks .block .block-area:hover h4{font-size:0.8125rem;width:96.5%;}}@media screen and (min-width: 320px) and (max-width: 640px){.page-front #block-row .blocks .block .block-area:hover h4{width:100%;}}@media only screen and (max-width: 40em){.page-front #block-row .blocks .block .block-area:hover h4{float:none;left:0;right:0;}}.page-front #block-row .blocks .block .block-area:hover p{padding:0 10px;display:inline-block;color:#FFFFFF}.page-front #block-row .blocks .block .block-area:hover a.blocks-readmore{padding:0 10px;display:inline-block;color:#FFFFFF}.page-front #block-row .blocks .block .block-area:hover a.blocks-readmore:hover{color:#009543}@media only screen and (max-width: 40em){.page-front #block-row .blocks .block .block-area{max-width:365px;width:92.5%;}.page-front #block-row .blocks .block .block-area:hover{min-height:240.5px}}.page-front #block-row .blocks .block p{display:none}.page-front #block-row .blocks .block a.blocks-readmore{display:none}.page-front #main-content h1{font-size:2rem;font-family:Roman;font-style:italic;color:#a6a090}@media only screen and (max-width: 40em){.page-inside{position:relative;}}#main-content h4{color:#0065a4}#slide-cover{position:absolute;top:200px;height:575px;background:-webkit-linear-gradient(top, rgba(255, 255, 255, 0) 80%, #FFFFFF 100%);background:-moz-linear-gradient(center top, rgba(255, 255, 255, 0) 80%, #FFFFFF 100%);background:-ms-linear-gradient(top, rgba(255, 255, 255, 0) 80%, #FFFFFF 100%);width:100%}#content-wrapper{position:relative}#rotation{margin:20px 0 25px;background:#f1efea;padding:25px 0px 30px;position:relative;width:100%;display:inline-block}#rotation .event h6{padding:0 15px}#rotation .event span{display:inline-block;color:#009543}#rotation h1{font-weight:normal;margin-top:0;line-height:1.2}#rotation .arrow{position:relative;top:70px}@media only screen and (max-width: 40em){#rotation .arrow{top:95px;}}#rotation ul li a{position:relative}#rotation ul li a:hover:before{position:absolute;display:block;color:#FFFFFF;font-size:1.25rem;content:attr(data-title);z-index:3;top:40%;left:8%;text-align:center}#rotation ul li a:hover:after{position:absolute;top:0;left:0px;height:100%;width:100%;background:rgba(0,0,0,0.75);display:block;content:"";z-index:2}#home-feed-posts h3{margin-bottom:0}#home-feed-posts h3 a{color:#009543}#home-feed-posts span{margin-bottom:15px;color:#808285}#home-feed-posts img{display:inline-block;border-bottom:5px solid #a6a090;padding-top:10px;float:left;margin-right:15px}@media only screen and (max-width: 40em){#home-feed-posts img{display:block;float:none;margin:0 auto;}}#home-feed-posts a.read-more{display:inline}.page-header{position:relative;top:0;max-height:370px;overflow-y:hidden;z-index:-1;width:100%}.breadcrumbs{margin-top:10px}#content-bulk #con{margin:0}#content-bulk h2{text-transform:uppercase;font-size:25px}#content-bulk footer{margin:35px 0}#content-bulk footer #address{margin-top:25px}#content-bulk footer #address p{font-size:12px;margin-top:5px}#content-bulk footer #address img{margin:0;padding-right:5px}#content-bulk footer #address a{font-size:12px}#content-bulk footer img{box-shadow:none}#carousel_inner{float:left;width:100%;overflow:hidden;background:#F0F0F0}@media only screen and (min-width:40.063em) and (max-width:64em){#carousel_inner{float:none;margin:0 auto;width:630px;}}@media only screen and (max-width: 40em){#carousel_inner{width:210px;float:none;margin:0 auto;}}#carousel_ul{position:relative;left:-210px;list-style-type:none;margin:0px;padding:0px;width:9999px;padding-bottom:10px}#carousel_ul li{float:left;width:200px;padding:0px;height:200px;background:#000000;margin-top:10px;margin-bottom:10px;margin-left:5px;margin-right:5px}#carousel_ul li img{margin-bottom:-4px;cursor:pointer;cursor:hand;border:0px}#left_scroll img,#right_scroll img{cursor:pointer;cursor:hand}.tour-link{display:inline-block;width:100%;height:100%}#tours-tags-grid li{display:inline-block;margin:15px;max-width:200px;vertical-align:top}#tours-tags-grid li a{font-size:1.1rem}.tag_image:hover{cursor:pointer}@media (max-width: 482px) and (min-width: 320px){#tours-tags-grid{text-align:center}}.related_tours{list-style:none;line-height:1;padding:6px}.related_tours a{color:black;font-family:"josefin sans";line-height:1}small.product_category_title_item{text-align:left;display:block;font-size:13px;color:#572700;margin-bottom:7px;margin-top:-3px}#container #content .product .woocommerce-tabs .panel h1,#container #content .product .woocommerce-tabs .panel h3,#container #content .product .woocommerce-tabs .panel h4,#container #content .product .woocommerce-tabs .panel h6{color:#006a71}#container #content .product .woocommerce-tabs .panel h2,#container #content .product .woocommerce-tabs .panel h5{color:#AAAAAA}#slideshow{position:relative;min-height:350px;max-height:640px;overflow-y:hidden;width:100%;z-index:-1;list-style:none}@media only screen and (max-width: 40em){#slideshow{position:relative;min-height:200px;}}#slideshow #caption{background:rgba(0,0,0,0.75);color:#FFFFFF;margin-top:-51px}#slideshow #caption p{padding:10px 5px;font-size:12px;margin:0;text-align:right}.ngg-gallery-thumbnail,.ngg-gallery-thumbnail-box{float:none !important}.gallery li a img{display:block;width:100%}.ngg-gallery-thumbnail,.ngg-gallery-thumbnail-box{float:none !important}.ngg-album-compact h4 .ngg-album-desc{height:auto !important;font-family:Georgia,Cambria,"Times New Roman",Times,serif;font-weight:400}.ngg-album-compact .album-meta-wrapper h4 a{font-style:normal}.album-meta-wrapper{display:block;height:54px;margin-bottom:20px}.ngg-glmalbums{margin:10px 0}.ninja-forms-form-wrap{max-width:600px;margin:0 auto}.ninja-forms-form-wrap input[type=submit]{-webkit-appearance:none;-moz-appearance:none;border-radius:0;border-style:solid;border-width:3px;cursor:pointer;font-family:"Josefin Sans",sans-serif;font-weight:normal;line-height:normal;margin:0 0 1.25rem;position:relative;text-align:center;text-decoration:none;display:inline-block;padding:1rem 2rem 1.0625rem 2rem;font-size:1rem;background-color:#009543;border-color:#FFFFFF;color:#FFFFFF;transition:background-color 300ms ease-out;display:block;margin:0 auto}.ninja-forms-form-wrap input[type=submit]:hover,.ninja-forms-form-wrap input[type=submit]:focus{background-color:#007736}.ninja-forms-form-wrap input[type=submit]:hover,.ninja-forms-form-wrap input[type=submit]:focus{color:#FFFFFF}#input_1_14{min-width:290px !important}#tab-product_inquiry_tab .gform_title{display:none}.woocommerce-wrapper #container{max-width:1000px;margin:0 auto;float:left}main.woocommerce,div.woocommerce{font-family:Arial}main.woocommerce ul,main.woocommerce ol,main.woocommerce li,div.woocommerce ul,div.woocommerce ol,div.woocommerce li{}main.woocommerce #woo-quick-display,div.woocommerce #woo-quick-display{background-color:white;border-radius:3px;border:1px solid lightgrey;padding:5px;font-size:16px;margin-bottom:25px}main.woocommerce #woo-quick-display>div,div.woocommerce #woo-quick-display>div{text-align:center}main.woocommerce #woo-quick-display .button,div.woocommerce #woo-quick-display .button{border-radius:3px;display:inline;margin-left:15px;margin-top:12px;padding:2px 8px;float:right;margin:12px 0 0 18px;background-color:#476e70;color:white}main.woocommerce #woo-quick-display .button:hover,div.woocommerce #woo-quick-display .button:hover{background-color:#006A71}main.woocommerce #woo-quick-display h3,div.woocommerce #woo-quick-display h3{padding-top:0;text-align:center}main.woocommerce #woo-quick-display p,div.woocommerce #woo-quick-display p{margin-bottom:0}main.woocommerce ul.products,main.woocommerce .products ol,main.woocommerce .products dl,div.woocommerce ul.products,div.woocommerce .products ol,div.woocommerce .products dl{list-style-type:none}main.woocommerce .woocommerce-error,main.woocommerce .woocommerce-info,main.woocommerce .woocommerce-message,main.woocommerce .woocommerce-noreviews,main.woocommerce p.no-comments,div.woocommerce .woocommerce-error,div.woocommerce .woocommerce-info,div.woocommerce .woocommerce-message,div.woocommerce .woocommerce-noreviews,div.woocommerce p.no-comments{border-left:0.618em solid transparent;clear:both;margin-bottom:20px;margin-left:0px;font-family:arial, sans-serif;font-weight:bold;min-height:55px;padding-top:7px;line-height:1.2}main.woocommerce .woocommerce-error .button,main.woocommerce .woocommerce-info .button,main.woocommerce .woocommerce-message .button,main.woocommerce .woocommerce-noreviews .button,main.woocommerce p.no-comments .button,div.woocommerce .woocommerce-error .button,div.woocommerce .woocommerce-info .button,div.woocommerce .woocommerce-message .button,div.woocommerce .woocommerce-noreviews .button,div.woocommerce p.no-comments .button{margin:5px;float:left;padding:5px;border-radius:3px}main.woocommerce #respond input#submit.alt,main.woocommerce a.button.alt,main.woocommerce button.button.alt,main.woocommerce input.button.alt,div.woocommerce #respond input#submit.alt,div.woocommerce a.button.alt,div.woocommerce button.button.alt,div.woocommerce input.button.alt{background-color:#476e70;color:white}main.woocommerce #respond input#submit.alt:hover,main.woocommerce a.button.alt:hover,main.woocommerce button.button.alt:hover,main.woocommerce input.button.alt:hover,div.woocommerce #respond input#submit.alt:hover,div.woocommerce a.button.alt:hover,div.woocommerce button.button.alt:hover,div.woocommerce input.button.alt:hover{background-color:#006A71}main.woocommerce .cart-collaterals .cart_totals,main.woocommerce .woocommerce-page .cart-collaterals .cart_totals,div.woocommerce .cart-collaterals .cart_totals,div.woocommerce .woocommerce-page .cart-collaterals .cart_totals{float:right;margin-bottom:40px;width:100%}main.woocommerce h1.product_title,div.woocommerce h1.product_title{color:#009543;line-height:1.2;font-size:40px;margin-bottom:10px}main.woocommerce .onsale,div.woocommerce .onsale{display:none}main.woocommerce .page-numbers,div.woocommerce .page-numbers{list-style-type:none;display:flex}main.woocommerce .page-numbers li,div.woocommerce .page-numbers li{margin:0 10px}main.woocommerce #text [class*="column"]+[class*="column"]:last-child,div.woocommerce #text [class*="column"]+[class*="column"]:last-child{float:left}main.woocommerce #text>.product,div.woocommerce #text>.product{margin-bottom:20px}main.woocommerce .product.type-product,div.woocommerce .product.type-product{color:black;display:block}main.woocommerce .product.type-product a.button,div.woocommerce .product.type-product a.button{padding:5px;border-radius:3px}main.woocommerce .product.type-product a.button:hover,div.woocommerce .product.type-product a.button:hover{color:#000000}main.woocommerce .product.type-product>div,div.woocommerce .product.type-product>div{padding:5px;border-radius:5px}main.woocommerce .product.type-product .tab-description,div.woocommerce .product.type-product .tab-description{display:inline-block}main.woocommerce .product.type-product .tab-description p,div.woocommerce .product.type-product .tab-description p{padding-top:15px}main.woocommerce .product.type-product .woocommerce-tabs ul.tabs,div.woocommerce .product.type-product .woocommerce-tabs ul.tabs{padding:0px}main.woocommerce .product.type-product .woocommerce-tabs ul.tabs li,div.woocommerce .product.type-product .woocommerce-tabs ul.tabs li{border-radius:0px}main.woocommerce .product.type-product .woocommerce-tabs ul.tabs li.active,div.woocommerce .product.type-product .woocommerce-tabs ul.tabs li.active{border-color:lightgrey}main.woocommerce .product.type-product .woocommerce-tabs ul.tabs li.active::before,div.woocommerce .product.type-product .woocommerce-tabs ul.tabs li.active::before{border:none}main.woocommerce .product.type-product .woocommerce-tabs ul.tabs li.active::after,div.woocommerce .product.type-product .woocommerce-tabs ul.tabs li.active::after{border:none}main.woocommerce .product.type-product .woocommerce-tabs ul.tabs li::before,div.woocommerce .product.type-product .woocommerce-tabs ul.tabs li::before{border:none}main.woocommerce .product.type-product .woocommerce-tabs ul.tabs li::after,main.woocommerce .product.type-product .woocommerce-tabs ul.tabs li::before,div.woocommerce .product.type-product .woocommerce-tabs ul.tabs li::after,div.woocommerce .product.type-product .woocommerce-tabs ul.tabs li::before{border:none}main.woocommerce .product.type-product .woocommerce-tabs ul.tabs li::after,div.woocommerce .product.type-product .woocommerce-tabs ul.tabs li::after{border:none}main.woocommerce .product.type-product .woocommerce-tabs ul.tabs li::after,main.woocommerce .product.type-product .woocommerce-tabs ul.tabs li::before,div.woocommerce .product.type-product .woocommerce-tabs ul.tabs li::after,div.woocommerce .product.type-product .woocommerce-tabs ul.tabs li::before{border:none}main.woocommerce .product.type-product .woocommerce-tabs,div.woocommerce .product.type-product .woocommerce-tabs{width:100%;clear:both}main.woocommerce .product.type-product .woocommerce-tabs .wc-tab,div.woocommerce .product.type-product .woocommerce-tabs .wc-tab{padding:10px;border:1px solid lightgrey}main.woocommerce .product.type-product .woocommerce-tabs ul.wc-tabs:before,div.woocommerce .product.type-product .woocommerce-tabs ul.wc-tabs:before{border-bottom-color:lightgrey}main.woocommerce .product.type-product .woocommerce-tabs ul.wc-tabs li,div.woocommerce .product.type-product .woocommerce-tabs ul.wc-tabs li{margin-right:8px;background-color:#D2D3D5;color:#572700;border:1px solid #D3D3D3;border-bottom:0;display:inline-block;color:#006A71}main.woocommerce .product.type-product .woocommerce-tabs ul.wc-tabs li:before,div.woocommerce .product.type-product .woocommerce-tabs ul.wc-tabs li:before{border-bottom-color:#006A71;box-shadow:none}main.woocommerce .product.type-product .woocommerce-tabs ul.wc-tabs li:after,div.woocommerce .product.type-product .woocommerce-tabs ul.wc-tabs li:after{border-bottom-color:#006A71}main.woocommerce .product.type-product .woocommerce-tabs ul.wc-tabs li:hover,div.woocommerce .product.type-product .woocommerce-tabs ul.wc-tabs li:hover{background:transparent url("../assets/repeating-pattern.jpg") repeat scroll 0 0}main.woocommerce .product.type-product .woocommerce-tabs ul.wc-tabs li:hover a,div.woocommerce .product.type-product .woocommerce-tabs ul.wc-tabs li:hover a{color:grey}main.woocommerce .product.type-product .woocommerce-tabs ul.wc-tabs li a,div.woocommerce .product.type-product .woocommerce-tabs ul.wc-tabs li a{display:block}@media only screen and (max-width: 40em){main.woocommerce .product.type-product .woocommerce-tabs ul.wc-tabs li,div.woocommerce .product.type-product .woocommerce-tabs ul.wc-tabs li{width:50%;margin:0;font-size:14px;text-align:center;}main.woocommerce .product.type-product .woocommerce-tabs ul.wc-tabs li a,div.woocommerce .product.type-product .woocommerce-tabs ul.wc-tabs li a{font-size:14px}main.woocommerce .product.type-product .woocommerce-tabs ul.wc-tabs li:nth-child(2n),div.woocommerce .product.type-product .woocommerce-tabs ul.wc-tabs li:nth-child(2n){float:right}}main.woocommerce .product.type-product .woocommerce-tabs ul.wc-tabs li.active,div.woocommerce .product.type-product .woocommerce-tabs ul.wc-tabs li.active{background-color:#FFFFFF;border-width:2px;color:#383838}main.woocommerce .product.type-product .woocommerce-tabs ul.wc-tabs li.active:before,div.woocommerce .product.type-product .woocommerce-tabs ul.wc-tabs li.active:before{box-shadow:0;box-shadow:none}main.woocommerce .product.type-product .woocommerce-tabs ul.wc-tabs li.active:after,div.woocommerce .product.type-product .woocommerce-tabs ul.wc-tabs li.active:after{box-shadow:-2px 2px 0 #006A71}main.woocommerce .product.type-product .woocommerce-tabs ul.wc-tabs li.active:hover,div.woocommerce .product.type-product .woocommerce-tabs ul.wc-tabs li.active:hover{background:#FFFFFF}main.woocommerce .product.type-product .woocommerce-tabs ul.wc-tabs li.active a:hover,div.woocommerce .product.type-product .woocommerce-tabs ul.wc-tabs li.active a:hover{color:#383838}@media only screen and (max-width: 40em){main.woocommerce .product.type-product .woocommerce-tabs ul.wc-tabs li.active,div.woocommerce .product.type-product .woocommerce-tabs ul.wc-tabs li.active{border-width:1px;}}@media only screen and (max-width: 40em){main.woocommerce .product.type-product .woocommerce-tabs ul.wc-tabs,div.woocommerce .product.type-product .woocommerce-tabs ul.wc-tabs{padding-left:0;}}main.woocommerce .product.type-product .woocommerce-tabs .tabs .reviews_tab,main.woocommerce .product.type-product .woocommerce-tabs .tabs .additional_information_tab,div.woocommerce .product.type-product .woocommerce-tabs .tabs .reviews_tab,div.woocommerce .product.type-product .woocommerce-tabs .tabs .additional_information_tab{display:none}main.woocommerce .product.type-product .woocommerce-tabs>div.panel,div.woocommerce .product.type-product .woocommerce-tabs>div.panel{background-color:white}main.woocommerce .product.type-product .woocommerce-tabs p.stars a,div.woocommerce .product.type-product .woocommerce-tabs p.stars a{font-size:20px;padding:0 10px}main.woocommerce .product.type-product .woocommerce-tabs p.stars a.active,div.woocommerce .product.type-product .woocommerce-tabs p.stars a.active{background-color:#000000;border-radius:2px}main.woocommerce .product.type-product .sku_wrapper,div.woocommerce .product.type-product .sku_wrapper{display:none}main.woocommerce #address_form small,div.woocommerce #address_form small{display:inline-block;font-size:100%;padding:9px}main.woocommerce #tiptip_content,div.woocommerce #tiptip_content{font-family:Arial;font-size:12px}main.woocommerce .single_variation_wrap .quantity,div.woocommerce .single_variation_wrap .quantity{float:right;margin-bottom:10px}main.woocommerce .single_variation_wrap .quantity input,div.woocommerce .single_variation_wrap .quantity input{display:inline-block;background-color:white;height:40px;width:50px;padding:0;margin:0 5px}main.woocommerce #payment .payment_methods .form-row.place-order,div.woocommerce #payment .payment_methods .form-row.place-order{text-align:center}main.woocommerce #payment .payment_methods ul.payment_methods,div.woocommerce #payment .payment_methods ul.payment_methods{list-style-type:none}main.woocommerce #payment .payment_methods .payment_box>p,div.woocommerce #payment .payment_methods .payment_box>p{margin:0}main.woocommerce #payment .payment_methods .payment_box fieldset,div.woocommerce #payment .payment_methods .payment_box fieldset{margin:0;padding:10px 10px 0}main.woocommerce #payment .payment_methods .payment_box fieldset .form-row,div.woocommerce #payment .payment_methods .payment_box fieldset .form-row{width:100%}@media only screen and (min-width:64.063em){main.woocommerce #payment .payment_methods .payment_box fieldset .form-row,div.woocommerce #payment .payment_methods .payment_box fieldset .form-row{width:31%;float:left}main.woocommerce #payment .payment_methods .payment_box fieldset .clear,div.woocommerce #payment .payment_methods .payment_box fieldset .clear{clear:none}}main.woocommerce #payment .payment_methods .payment_box fieldset .form-row label,div.woocommerce #payment .payment_methods .payment_box fieldset .form-row label{padding:0}main.woocommerce #payment .payment_methods select[name="wc-intuit-qbms-test-condition"],div.woocommerce #payment .payment_methods select[name="wc-intuit-qbms-test-condition"]{margin:0}main.woocommerce #payment .payment_methods #wc-intuit-qbms-account-number,div.woocommerce #payment .payment_methods #wc-intuit-qbms-account-number{max-width:200px}main.woocommerce .pf-content,div.woocommerce .pf-content{margin-top:20px}main.woocommerce table.shop_table,div.woocommerce table.shop_table{width:100%}main.woocommerce table.shop_table .coupon,div.woocommerce table.shop_table .coupon{display:none}main.woocommerce table.shop_table .product-thumbnail,div.woocommerce table.shop_table .product-thumbnail{display:none}@media only screen and (min-width:64.063em){main.woocommerce table.shop_table .product-thumbnail,div.woocommerce table.shop_table .product-thumbnail{display:default;}}main.woocommerce table.shop_table .quantity,div.woocommerce table.shop_table .quantity{display:table}main.woocommerce table.shop_table .quantity .input-text,div.woocommerce table.shop_table .quantity .input-text{margin:0}main.woocommerce table.shop_table .quantity .minus,main.woocommerce table.shop_table .quantity .plus,div.woocommerce table.shop_table .quantity .minus,div.woocommerce table.shop_table .quantity .plus{background-color:transparent;box-shadow:none;color:#a46497;font-weight:700;width:50px;height:40px}main.woocommerce .quantity .minus:hover,main.woocommerce .quantity .plus:hover,div.woocommerce .quantity .minus:hover,div.woocommerce .quantity .plus:hover{background-color:transparent;color:inherit !important}main.woocommerce .checkout #customer_details,div.woocommerce .checkout #customer_details{display:inline-block;width:100%;max-width:600px}main.woocommerce .checkout .woocommerce-billing-fields,main.woocommerce .checkout .woocommerce-shipping-fields,div.woocommerce .checkout .woocommerce-billing-fields,div.woocommerce .checkout .woocommerce-shipping-fields{margin:0 auto 40px;max-width:600px;padding:20px;border:1px solid #e7e7e7}main.woocommerce .checkout .woocommerce-billing-fields p,main.woocommerce .checkout .woocommerce-shipping-fields p,div.woocommerce .checkout .woocommerce-billing-fields p,div.woocommerce .checkout .woocommerce-shipping-fields p{margin-bottom:15px}main.woocommerce .checkout .woocommerce-billing-fields p input,main.woocommerce .checkout .woocommerce-shipping-fields p input,div.woocommerce .checkout .woocommerce-billing-fields p input,div.woocommerce .checkout .woocommerce-shipping-fields p input{margin-bottom:15px}main.woocommerce #content-wrapper.woocommerce-wrapper .content,div.woocommerce #content-wrapper.woocommerce-wrapper .content{padding:20px 5px}@media only screen and (max-width: 40em){main.woocommerce #content-wrapper.woocommerce-wrapper .main,div.woocommerce #content-wrapper.woocommerce-wrapper .main{padding:0 10px}}main.woocommerce #content,div.woocommerce #content{margin-top:25px}main.woocommerce .woocommerce-ordering select.orderby,div.woocommerce .woocommerce-ordering select.orderby{max-width:200px}main.woocommerce main.page-inside #content-wrapper #main-content #main-text.shop-cat-list,div.woocommerce main.page-inside #content-wrapper #main-content #main-text.shop-cat-list{padding:0 6px}main.woocommerce main.page-inside #content-wrapper #main-content #main-text.shop-cat-list .shop-cat-list-content>div,div.woocommerce main.page-inside #content-wrapper #main-content #main-text.shop-cat-list .shop-cat-list-content>div{padding:0}main.woocommerce main.page-inside #content-wrapper .content,div.woocommerce main.page-inside #content-wrapper .content{border-bottom:3px solid #c5aa6d;box-shadow:0 5px 5px 0 rgba(0,0,0,0.8)}main.woocommerce #content-wrapper.woocommerce-wrapper .main.woo-single-product,div.woocommerce #content-wrapper.woocommerce-wrapper .main.woo-single-product{padding:20px 3%}main.woocommerce nav.top-bar .top-bar-section>ul>li.drop>ul.dropdown .woocommerce .products,div.woocommerce nav.top-bar .top-bar-section>ul>li.drop>ul.dropdown .woocommerce .products{position:inherit;border:0 !important}main.woocommerce nav.top-bar .top-bar-section>ul>li.drop>ul.dropdown .woocommerce .product-category,div.woocommerce nav.top-bar .top-bar-section>ul>li.drop>ul.dropdown .woocommerce .product-category{margin-bottom:0;height:25px}main.woocommerce nav.top-bar .top-bar-section>ul>li.drop>ul.dropdown .woocommerce .product-category h3,div.woocommerce nav.top-bar .top-bar-section>ul>li.drop>ul.dropdown .woocommerce .product-category h3{font-size:12px;font-weight:normal;padding:0.5em 20px}main.woocommerce nav.top-bar .top-bar-section>ul>li.drop>ul.dropdown .woocommerce .product-category:hover h3,div.woocommerce nav.top-bar .top-bar-section>ul>li.drop>ul.dropdown .woocommerce .product-category:hover h3{color:#25c2e6 !important}main.woocommerce nav.top-bar .top-bar-section>ul>li.drop>ul.dropdown .woocommerce img,div.woocommerce nav.top-bar .top-bar-section>ul>li.drop>ul.dropdown .woocommerce img{display:none}main.woocommerce .left-off-canvas-menu>ul>li.has-dropdown>ul.dropdown .woocommerce .products,div.woocommerce .left-off-canvas-menu>ul>li.has-dropdown>ul.dropdown .woocommerce .products{position:inherit;border:0 !important}main.woocommerce .left-off-canvas-menu>ul>li.has-dropdown>ul.dropdown .woocommerce .product-category,div.woocommerce .left-off-canvas-menu>ul>li.has-dropdown>ul.dropdown .woocommerce .product-category{margin-bottom:0;height:28px}main.woocommerce .left-off-canvas-menu>ul>li.has-dropdown>ul.dropdown .woocommerce .product-category h3,div.woocommerce .left-off-canvas-menu>ul>li.has-dropdown>ul.dropdown .woocommerce .product-category h3{color:white;font-size:12px;font-weight:normal;padding:0.5em 20px}main.woocommerce .left-off-canvas-menu>ul>li.has-dropdown>ul.dropdown .woocommerce img,div.woocommerce .left-off-canvas-menu>ul>li.has-dropdown>ul.dropdown .woocommerce img{display:none}main.woocommerce .left-off-canvas-menu>ul>li.has-dropdown>ul.dropdown .woocommerce a,div.woocommerce .left-off-canvas-menu>ul>li.has-dropdown>ul.dropdown .woocommerce a{margin-left:40px;padding:0}main.woocommerce #payment .payment_methods label,div.woocommerce #payment .payment_methods label{padding:0 0 20px;margin:0;width:80%}main.woocommerce #shipping_method input[type="checkbox"]+label,main.woocommerce input[type="radio"]+label,div.woocommerce #shipping_method input[type="checkbox"]+label,div.woocommerce input[type="radio"]+label{margin-left:25px}main.woocommerce .cart_item .product-name,div.woocommerce .cart_item .product-name{min-width:160px;font-size:15px;font-weight:bold}main.woocommerce .woocommerce-checkout-review-order-table .product-quantity,div.woocommerce .woocommerce-checkout-review-order-table .product-quantity{float:right}main.woocommerce #content .cart_item td.product-name dl.variation dd,main.woocommerce dd p,main.woocommerce dt,div.woocommerce #content .cart_item td.product-name dl.variation dd,div.woocommerce dd p,div.woocommerce dt{font-size:12px;font-weight:normal;margin-bottom:0;line-height:1}main.woocommerce #content td.product-name dl.variation dd,main.woocommerce #content td.product-name dl.variation dt,div.woocommerce #content td.product-name dl.variation dd,div.woocommerce #content td.product-name dl.variation dt{margin-bottom:0}main.woocommerce #content .product.type-product .variations_form .variations,div.woocommerce #content .product.type-product .variations_form .variations{margin:0 auto;width:auto;min-width:190px;max-width:220px}main.woocommerce .variations tbody,main.woocommerce .variations tbody tr,div.woocommerce .variations tbody,div.woocommerce .variations tbody tr{display:block}main.woocommerce .page-numbers li,div.woocommerce .page-numbers li{float:left}main.woocommerce .related.products,div.woocommerce .related.products{margin-top:30px}main.woocommerce h3#ship-to-different-address,div.woocommerce h3#ship-to-different-address{font-weight:bold}main.woocommerce .woocommerce-breadcrumb,div.woocommerce .woocommerce-breadcrumb{display:none}main.woocommerce #content .product.type-product .product_meta,div.woocommerce #content .product.type-product .product_meta{clear:both;padding-top:25px}main.woocommerce #content .product.type-product .product_meta a,div.woocommerce #content .product.type-product .product_meta a{display:initial}main.woocommerce #content .product.type-product .product_meta .posted_in,div.woocommerce #content .product.type-product .product_meta .posted_in{display:none}main.woocommerce #content .product.type-product .variations_form a.reset_variations,div.woocommerce #content .product.type-product .variations_form a.reset_variations{display:none !important}main.woocommerce #content .product.type-product .variations_form,div.woocommerce #content .product.type-product .variations_form{clear:both;display:table;width:100%;margin-bottom:20px}main.woocommerce #content .product.type-product .variations_form .variations,div.woocommerce #content .product.type-product .variations_form .variations{display:block;margin:0 auto;width:auto;min-width:190px;max-width:220px;border:0;margin-top:30px;display:block}main.woocommerce #content .product.type-product .variations_form .variations ul,div.woocommerce #content .product.type-product .variations_form .variations ul{border:1px solid darkgrey;margin-left:0;text-align:left}main.woocommerce #content .product.type-product .variations_form .variations .label,div.woocommerce #content .product.type-product .variations_form .variations .label{display:block}main.woocommerce #content .product.type-product .variations_form .variations .label label,div.woocommerce #content .product.type-product .variations_form .variations .label label{color:white}main.woocommerce #content .product.type-product .variations_form .variations .value,div.woocommerce #content .product.type-product .variations_form .variations .value{padding-right:0;display:block}main.woocommerce #content .product.type-product .variations_form .variations .value fieldset,div.woocommerce #content .product.type-product .variations_form .variations .value fieldset{border:none;padding-top:0;padding-bottom:0;margin-top:0;margin-bottom:0}main.woocommerce #content .product.type-product .variations_form .variations .value fieldset p,div.woocommerce #content .product.type-product .variations_form .variations .value fieldset p{margin-bottom:5px}main.woocommerce #content .product.type-product .variations_form .variations input[type="file"],main.woocommerce #content .product.type-product .variations_form .variations input[type="checkbox"],main.woocommerce #content .product.type-product .variations_form .variations input[type="radio"],main.woocommerce #content .product.type-product .variations_form .variations select,div.woocommerce #content .product.type-product .variations_form .variations input[type="file"],div.woocommerce #content .product.type-product .variations_form .variations input[type="checkbox"],div.woocommerce #content .product.type-product .variations_form .variations input[type="radio"],div.woocommerce #content .product.type-product .variations_form .variations select{margin-bottom:0;margin-right:0}main.woocommerce #content .product.type-product .variations_form .variations select,div.woocommerce #content .product.type-product .variations_form .variations select{background-color:#006A71;border-radius:5px;color:white;border:none}main.woocommerce #content .product.type-product .variations_form .variations select *,div.woocommerce #content .product.type-product .variations_form .variations select *{background-color:lightblue;color:black}main.woocommerce #content .product.type-product .variations_form .single_variation_wrap,div.woocommerce #content .product.type-product .variations_form .single_variation_wrap{margin:0 auto;float:right;clear:both}main.woocommerce #content .product.type-product .variations_form .single_variation_wrap .single_variation,div.woocommerce #content .product.type-product .variations_form .single_variation_wrap .single_variation{padding:10px;float:right}@media only screen and (max-width: 40em){main.woocommerce #content .product.type-product .variations_form .single_variation_wrap .single_variation,div.woocommerce #content .product.type-product .variations_form .single_variation_wrap .single_variation{float:none;text-align:center;}}main.woocommerce #content .product.type-product .variations_form .variations_button button,div.woocommerce #content .product.type-product .variations_form .variations_button button{border-radius:3px;font-size:16px;margin:12px 0 0;padding:8px 28px}@media only screen and (min-width:0em) and (max-width:64em){main.woocommerce #content .product.type-product .variations_form .variations,main.woocommerce #content .product.type-product .variations_form .single_variation_wrap,main.woocommerce #content .product.type-product .variations_form .single_variation_wrap .variations_button,main.woocommerce #content .product.type-product .variations_form .single_variation_wrap .variations_button .quantity,div.woocommerce #content .product.type-product .variations_form .variations,div.woocommerce #content .product.type-product .variations_form .single_variation_wrap,div.woocommerce #content .product.type-product .variations_form .single_variation_wrap .variations_button,div.woocommerce #content .product.type-product .variations_form .single_variation_wrap .variations_button .quantity{text-align:center;float:none;margin-left:auto;margin-right:auto;clear:both}main.woocommerce #content .product.type-product .variations_form .single_variation_wrap .variations_button .quantity,div.woocommerce #content .product.type-product .variations_form .single_variation_wrap .variations_button .quantity{clear:none}}@media only screen and (max-width: 40em){main.woocommerce #content .product.type-product .variations_form .single_variation_wrap,div.woocommerce #content .product.type-product .variations_form .single_variation_wrap{width:100%}}main.woocommerce #content .product.type-product h1.product_title,div.woocommerce #content .product.type-product h1.product_title{color:#006a71;font-size:27px;font-family:open sans;font-weight:bold;line-height:1;margin:0 auto;width:90%;padding-bottom:10px}main.woocommerce #content .product.type-product .single_add_to_cart_button,div.woocommerce #content .product.type-product .single_add_to_cart_button{border-radius:3px;clear:both;float:right;background:transparent url("../assets/repeating-pattern.jpg") repeat scroll 0 0;font-size:16px;margin:12px 0 0;padding:8px 28px;border:1px solid transparent}@media only screen and (min-width:0em) and (max-width:64em){main.woocommerce #content .product.type-product .single_add_to_cart_button,div.woocommerce #content .product.type-product .single_add_to_cart_button{float:none;}}main.woocommerce #content .product.type-product .single_add_to_cart_button:hover,main.woocommerce #content .product.type-product .single_add_to_cart_button:focus,div.woocommerce #content .product.type-product .single_add_to_cart_button:hover,div.woocommerce #content .product.type-product .single_add_to_cart_button:focus{background-color:white;border:1px solid #006A71}main.woocommerce #content .product.type-product>div,div.woocommerce #content .product.type-product>div{float:left}main.woocommerce #content .product.type-product .related.products,div.woocommerce #content .product.type-product .related.products{width:100%}main.woocommerce #content .product.type-product .quantity,main.woocommerce #content .product.type-product .qty,div.woocommerce #content .product.type-product .quantity,div.woocommerce #content .product.type-product .qty{float:right;display:table;height:25px;padding:2px 0 2px 5px}@media only screen and (max-width: 40em){main.woocommerce #content .product.type-product .quantity,main.woocommerce #content .product.type-product .qty,div.woocommerce #content .product.type-product .quantity,div.woocommerce #content .product.type-product .qty{float:none;margin:0 auto;}}main.woocommerce #content .product.type-product .quantity .input-text,main.woocommerce #content .product.type-product .qty .input-text,div.woocommerce #content .product.type-product .quantity .input-text,div.woocommerce #content .product.type-product .qty .input-text{margin:0}main.woocommerce #content .product.type-product .quantity .minus,main.woocommerce #content .product.type-product .quantity .plus,main.woocommerce #content .product.type-product .qty .minus,main.woocommerce #content .product.type-product .qty .plus,div.woocommerce #content .product.type-product .quantity .minus,div.woocommerce #content .product.type-product .quantity .plus,div.woocommerce #content .product.type-product .qty .minus,div.woocommerce #content .product.type-product .qty .plus{background-color:transparent;box-shadow:none;color:#a46497;font-weight:700;width:50px;height:40px}main.woocommerce #content .product.type-product .quantity .minus:hover,main.woocommerce #content .product.type-product .quantity .plus:hover,main.woocommerce #content .product.type-product .qty .minus:hover,main.woocommerce #content .product.type-product .qty .plus:hover,div.woocommerce #content .product.type-product .quantity .minus:hover,div.woocommerce #content .product.type-product .quantity .plus:hover,div.woocommerce #content .product.type-product .qty .minus:hover,div.woocommerce #content .product.type-product .qty .plus:hover{background-color:transparent;color:inherit !important}main.woocommerce #content .product.type-product .cart-qty-label,div.woocommerce #content .product.type-product .cart-qty-label{float:none;text-align:center;clear:both;margin-left:5px}main.woocommerce #content .product.type-product .price,div.woocommerce #content .product.type-product .price{color:transparent;margin-bottom:0;font-size:32px;margin:0;float:right;text-align:right;display:block;line-height:1.0}@media only screen and (max-width: 40em){main.woocommerce #content .product.type-product .price,div.woocommerce #content .product.type-product .price{float:none;text-align:center;}}main.woocommerce #content .product.type-product .price>*,div.woocommerce #content .product.type-product .price>*{height:40px}main.woocommerce #content .product.type-product .price span,div.woocommerce #content .product.type-product .price span{color:#572700;font-size:40px;margin-top:-2px}main.woocommerce #content .product.type-product .price span:nth-child(2),div.woocommerce #content .product.type-product .price span:nth-child(2){display:none}main.woocommerce #content .product.type-product .price del,div.woocommerce #content .product.type-product .price del{color:#006A71}main.woocommerce #content .product.type-product .price.price-single,div.woocommerce #content .product.type-product .price.price-single{clear:both;float:none;text-align:left;padding-bottom:5px}main.woocommerce #content .product.type-product .price.price-single span,div.woocommerce #content .product.type-product .price.price-single span{color:black;font-size:22px}@media only screen and (min-width:0em) and (max-width:64em){main.woocommerce #content .product.type-product .price.price-single,div.woocommerce #content .product.type-product .price.price-single{text-align:center;}}main.woocommerce #content .product.type-product .stock,div.woocommerce #content .product.type-product .stock{color:black;float:right;clear:both;font-size:14px}@media only screen and (max-width: 40em){main.woocommerce #content .product.type-product .stock,div.woocommerce #content .product.type-product .stock{float:none;text-align:center;}}@media only screen and (max-width: 40em){main.woocommerce #content .product.type-product,div.woocommerce #content .product.type-product{margin-top:20px;}main.woocommerce #content .product.type-product .images,div.woocommerce #content .product.type-product .images{width:auto;max-width:260px;margin:0 auto;float:none}main.woocommerce #content .product.type-product .summary.entry-summary,div.woocommerce #content .product.type-product .summary.entry-summary{width:100%}main.woocommerce #content .product.type-product .summary.entry-summary h1,div.woocommerce #content .product.type-product .summary.entry-summary h1{font-size:32px}}main.woocommerce #content .product.type-product .related .products .product.type-product h3,div.woocommerce #content .product.type-product .related .products .product.type-product h3{font-size:13px;font-weight:normal}main.woocommerce #content .product.type-product .summary.entry-summary>div[itemprop="description"],div.woocommerce #content .product.type-product .summary.entry-summary>div[itemprop="description"]{margin:0 auto;text-align:left;width:100%}main.woocommerce .shop_table.shop_table_responsive.cart,div.woocommerce .shop_table.shop_table_responsive.cart{margin-top:20px}main.woocommerce .wc-proceed-to-checkout,div.woocommerce .wc-proceed-to-checkout{text-align:center}main.woocommerce .main.woo-single-product,div.woocommerce .main.woo-single-product{float:left}main.woocommerce .main.woo-single-product #content,div.woocommerce .main.woo-single-product #content{}main.woocommerce .main.woo-single-product #content .type-product .images,div.woocommerce .main.woo-single-product #content .type-product .images{border:0 none;float:none;width:100%;max-width:100%;margin-bottom:10px;width:100%}main.woocommerce .main.woo-single-product #content .type-product .images .woocommerce-main-image.zoom,div.woocommerce .main.woo-single-product #content .type-product .images .woocommerce-main-image.zoom{display:block}main.woocommerce .main.woo-single-product #content .type-product .images .woocommerce-main-image.zoom .wp-post-image,div.woocommerce .main.woo-single-product #content .type-product .images .woocommerce-main-image.zoom .wp-post-image{height:auto;margin:0 auto;width:100%;border-radius:10px;border:1px solid grey}@media only screen and (max-width: 40em){main.woocommerce .main.woo-single-product #content .type-product .images,div.woocommerce .main.woo-single-product #content .type-product .images{width:100%;}}main.woocommerce .main.woo-single-product #content .type-product .summary.entry-summary,div.woocommerce .main.woo-single-product #content .type-product .summary.entry-summary{width:100%;margin-bottom:10px}@media only screen and (max-width: 40em){main.woocommerce .main.woo-single-product #content .type-product .summary.entry-summary,div.woocommerce .main.woo-single-product #content .type-product .summary.entry-summary{width:100%;}}main.woocommerce .main.woo-single-product #content .type-product .cart,main.woocommerce .main.woo-single-product #content .type-product .price,main.woocommerce .main.woo-single-product #content .type-product .quantity,main.woocommerce .main.woo-single-product #content .type-product .qty,main.woocommerce .main.woo-single-product #content .type-product .stock,main.woocommerce .main.woo-single-product #content .type-product .single_variation_wrap,main.woocommerce .main.woo-single-product #content .type-product .single_variation_wrap .single_variation,div.woocommerce .main.woo-single-product #content .type-product .cart,div.woocommerce .main.woo-single-product #content .type-product .price,div.woocommerce .main.woo-single-product #content .type-product .quantity,div.woocommerce .main.woo-single-product #content .type-product .qty,div.woocommerce .main.woo-single-product #content .type-product .stock,div.woocommerce .main.woo-single-product #content .type-product .single_variation_wrap,div.woocommerce .main.woo-single-product #content .type-product .single_variation_wrap .single_variation{float:none;text-align:center;margin:0 auto}main.woocommerce .main.woo-single-product #content .type-product .single_add_to_cart_button,main.woocommerce .main.woo-single-product #content .type-product .single_add_to_cart_button button,div.woocommerce .main.woo-single-product #content .type-product .single_add_to_cart_button,div.woocommerce .main.woo-single-product #content .type-product .single_add_to_cart_button button{text-align:center;margin-top:12px;float:none}main.woocommerce .main.woo-single-product #content .type-product .woo-qty-wrapper,div.woocommerce .main.woo-single-product #content .type-product .woo-qty-wrapper{margin:0 auto;width:100px}main.woocommerce .main.woo-single-product #content .type-product .cart-qty-label,div.woocommerce .main.woo-single-product #content .type-product .cart-qty-label{float:left;clear:none;text-align:center}main.woocommerce .main.woo-single-product #content .thumbnails>a,div.woocommerce .main.woo-single-product #content .thumbnails>a{display:none;padding:0px;height:35px;overflow:hidden;border:1px solid lightgrey;border-radius:2px}main.woocommerce .main.woo-single-product #content .thumbnails>a img,div.woocommerce .main.woo-single-product #content .thumbnails>a img{min-height:35px;min-width:100%}main.woocommerce .main.woo-single-product #content .product.has-default-attributes.has-children>.images,div.woocommerce .main.woo-single-product #content .product.has-default-attributes.has-children>.images{opacity:1}main.woocommerce .main.woo-single-product #content .entry-summary .product_title,div.woocommerce .main.woo-single-product #content .entry-summary .product_title{margin-bottom:10px}main.woocommerce .main.woo-single-product #content .related ul.products li.product:last-child,main.woocommerce .main.woo-single-product #content .related ul.products li.product,div.woocommerce .main.woo-single-product #content .related ul.products li.product:last-child,div.woocommerce .main.woo-single-product #content .related ul.products li.product{width:33.33%;height:300px;float:left;clear:none;padding:10px;margin:0}@media only screen and (max-width: 40em){main.woocommerce .main.woo-single-product #content .related ul.products li.product:last-child,main.woocommerce .main.woo-single-product #content .related ul.products li.product,div.woocommerce .main.woo-single-product #content .related ul.products li.product:last-child,div.woocommerce .main.woo-single-product #content .related ul.products li.product{width:50%;height:260px;}}main.woocommerce .main.woo-single-product #content .related ul.products li.product:last-child img,main.woocommerce .main.woo-single-product #content .related ul.products li.product img,div.woocommerce .main.woo-single-product #content .related ul.products li.product:last-child img,div.woocommerce .main.woo-single-product #content .related ul.products li.product img{padding-right:0;max-height:172px;max-width:207px;padding-right:15px;width:100%}main.woocommerce .main.woo-single-product #content .related ul.products li.product:last-child [itemprop="description"],main.woocommerce .main.woo-single-product #content .related ul.products li.product [itemprop="description"],div.woocommerce .main.woo-single-product #content .related ul.products li.product:last-child [itemprop="description"],div.woocommerce .main.woo-single-product #content .related ul.products li.product [itemprop="description"]{display:none}main.woocommerce .main.woo-single-product #content .related ul.products li.product:last-child .price span.amount,main.woocommerce .main.woo-single-product #content .related ul.products li.product .price span.amount,div.woocommerce .main.woo-single-product #content .related ul.products li.product:last-child .price span.amount,div.woocommerce .main.woo-single-product #content .related ul.products li.product .price span.amount{font-size:22px}main.woocommerce .main.woo-single-product #content .related ul.products li.product:last-child .price>*,main.woocommerce .main.woo-single-product #content .related ul.products li.product .price>*,div.woocommerce .main.woo-single-product #content .related ul.products li.product:last-child .price>*,div.woocommerce .main.woo-single-product #content .related ul.products li.product .price>*{height:20px}main.woocommerce .main.woo-single-product #content .related ul.products li.product:last-child form.cart,main.woocommerce .main.woo-single-product #content .related ul.products li.product form.cart,div.woocommerce .main.woo-single-product #content .related ul.products li.product:last-child form.cart,div.woocommerce .main.woo-single-product #content .related ul.products li.product form.cart{display:none}main.woocommerce #content ul.products,div.woocommerce #content ul.products{display:table;margin:0 auto;position:relative;width:100%}@media only screen and (max-width: 40em){main.woocommerce #content ul.products,div.woocommerce #content ul.products{max-width:470px;padding:0;}}main.woocommerce #content ul.products mark,div.woocommerce #content ul.products mark{background-color:transparent}main.woocommerce #content ul.products li.product.type-product,div.woocommerce #content ul.products li.product.type-product{border:medium none;height:auto;padding:10px;clear:both;width:100%;border:none;margin:0 auto 10px}main.woocommerce #content ul.products li.product.type-product .variations_form,div.woocommerce #content ul.products li.product.type-product .variations_form{clear:both;display:table;width:100%;margin-bottom:20px}main.woocommerce #content ul.products li.product.type-product .variations_form .variations,div.woocommerce #content ul.products li.product.type-product .variations_form .variations{float:right}@media only screen and (min-width:0em) and (max-width:64em){main.woocommerce #content ul.products li.product.type-product .variations_form .variations,div.woocommerce #content ul.products li.product.type-product .variations_form .variations{float:none;}}main.woocommerce #content ul.products li.product.type-product h3,div.woocommerce #content ul.products li.product.type-product h3{font-size:18px;text-align:left;padding:10px 0 0;font-style:normal;font-family:"josefin sans"}@media only screen and (min-width:0em) and (max-width:64em){main.woocommerce #content ul.products li.product.type-product,div.woocommerce #content ul.products li.product.type-product{margin-bottom:25px;}main.woocommerce #content ul.products li.product.type-product h3,div.woocommerce #content ul.products li.product.type-product h3{text-align:center}}main.woocommerce #content ul.products li.product.type-product .product-list-link,div.woocommerce #content ul.products li.product.type-product .product-list-link{display:block;height:220px;float:none;margin:0 auto;max-width:266px;overflow:hidden;border:1px solid lightgrey;border-radius:2px}main.woocommerce #content ul.products li.product.type-product .product-list-link .wp-post-image,div.woocommerce #content ul.products li.product.type-product .product-list-link .wp-post-image{min-height:220px;width:100%}main.woocommerce #content ul.products li.product.type-product .product-list-link-wrapper,div.woocommerce #content ul.products li.product.type-product .product-list-link-wrapper{padding-right:15px}main.woocommerce #content ul.products li.product.type-product .wp-post-image,div.woocommerce #content ul.products li.product.type-product .wp-post-image{margin-bottom:0;border:none;padding-right:15px}main.woocommerce #content ul.products li.product.type-product>div,div.woocommerce #content ul.products li.product.type-product>div{margin:0 auto;padding:5px;border-radius:5px;width:100%}main.woocommerce #content ul.products li.product.type-product>div img,div.woocommerce #content ul.products li.product.type-product>div img{border-radius:3px}main.woocommerce #content ul.products li.product.type-product h3,div.woocommerce #content ul.products li.product.type-product h3{font-weight:normal}main.woocommerce #content ul.products li.product.type-product .count,div.woocommerce #content ul.products li.product.type-product .count{background-color:transparent}main.woocommerce #content ul.products li.product.type-product>div,div.woocommerce #content ul.products li.product.type-product>div{background-color:white}main.woocommerce #content ul.products li.product.type-product>div h3,div.woocommerce #content ul.products li.product.type-product>div h3{color:#572700;font-size:24px;margin-top:-2px}main.woocommerce #content ul.products li.product.type-product p.products-short-desc,div.woocommerce #content ul.products li.product.type-product p.products-short-desc{line-height:1.3;margin-bottom:0}main.woocommerce #content ul.products li.product.type-product .woocommerce-variation-availability,div.woocommerce #content ul.products li.product.type-product .woocommerce-variation-availability{float:right}@media only screen and (max-width: 40em){main.woocommerce #content ul.products li.product.type-product .woocommerce-variation-availability,div.woocommerce #content ul.products li.product.type-product .woocommerce-variation-availability{float:none;text-align:center;}}main.woocommerce #content ul.products li.product.type-product .woocommerce-variation-availability .stock,div.woocommerce #content ul.products li.product.type-product .woocommerce-variation-availability .stock{margin-bottom:0}main.woocommerce #content ul.products li.product.type-product .more,div.woocommerce #content ul.products li.product.type-product .more{display:inline;float:right;margin-left:5px;color:#006A71}@media only screen and (min-width:0em) and (max-width:64em){main.woocommerce #content ul.products li.product.type-product .more,div.woocommerce #content ul.products li.product.type-product .more{float:none;}}main.woocommerce #content ul.products li.product.type-product .products-qty-contain span,div.woocommerce #content ul.products li.product.type-product .products-qty-contain span{margin-left:5px}main.woocommerce #content ul.products li.product.type-product .cart,div.woocommerce #content ul.products li.product.type-product .cart{float:right;text-align:right;clear:both}@media only screen and (max-width: 40em){main.woocommerce #content ul.products li.product.type-product .cart,div.woocommerce #content ul.products li.product.type-product .cart{float:none;text-align:center;}}main.woocommerce #content ul.products li.product.type-product .products-add-to-cart,div.woocommerce #content ul.products li.product.type-product .products-add-to-cart{clear:both;float:right}main.woocommerce #content ul.products li.product.type-product .products-add-to-cart button,div.woocommerce #content ul.products li.product.type-product .products-add-to-cart button{width:100%}main.woocommerce #content ul.products .added_to_cart,div.woocommerce #content ul.products .added_to_cart{border:1px solid lightgrey;border-radius:4px}main.woocommerce #content ul.products a,div.woocommerce #content ul.products a{text-decoration:none}main.woocommerce #content ul.products a:hover,div.woocommerce #content ul.products a:hover{text-shadow:none}main.woocommerce header.title,div.woocommerce header.title{box-shadow:none}.pp_content .pp_gallery{height:0;overflow:hidden;width:0}#woo-quick-cart-image{clear:none;display:block;float:left;height:26px;padding:2px;width:25px}#woo-quick-cart-image img{width:24px}#woo-quick-cart-image>div{float:left}.woo-quick-cart-totals{width:105px}@media only screen and (min-width:40.063em){.woo-quick-cart-totals{margin-left:30px;margin-top:10px;}}#woo-quick-checkout button{float:right}#cart-login>div{float:left;display:block;text-align:center;padding:0 5px}#cart-login a{color:black}#cart-login a:hover{color:#006A71}#main-content ul.products li.product-category.product,#content ul.products li.product-category.product{width:33.33%;float:left;padding:20px;margin:0}@media only screen and (max-width: 40em){#main-content ul.products li.product-category.product,#content ul.products li.product-category.product{width:50%;}}#main-content ul.products li.product-category.product .products-image-container,#content ul.products li.product-category.product .products-image-container{height:200px}main .woocommerce #respond input#submit.alt:hover,main .woocommerce a.button.alt:hover,main .woocommerce button.button.alt:hover,main .woocommerce input.button.alt:hover{background:transparent url("../assets/repeating-pattern.jpg") repeat scroll 0 0;border:1px solid #006A71}main .woocommerce #respond input#submit.alt,main .woocommerce a.button.alt,main .woocommerce button.button.alt,main .woocommerce input.button.alt{background:transparent url("../assets/repeating-pattern.jpg") repeat scroll 0 0;border:1px solid white}main.woocommerce ul.products li.product,main.woocommerce-page ul.products li.product,main.woocommerce-page[class*="columns-"] ul.products li.product,main.woocommerce[class*="columns-"] ul.products li.product{clear:none}.woocommerce .shop-sidebar{margin-bottom:20px}.woocommerce .shop-sidebar ul.products>li.product{width:100%;margin-bottom:0px;background-color:white}.woocommerce .shop-sidebar ul.products{margin-top:0}.woocommerce .shop-sidebar ul.products>li.product>a>h3{padding:5px 0;text-align:left;font-weight:bold;color:white;line-height:1.1}.woocommerce .shop-sidebar{list-style:outside none none;margin-left:0}.woocommerce .shop-sidebar .products{margin:20px 0 0}.woocommerce .shop-sidebar>li{background:none repeat scroll 0 0 #2F4D4F;padding:2px 0 2px 15px}.woocommerce .shop-sidebar>li:first-child{border-top-left-radius:5px;border-top-right-radius:5px}.woocommerce .shop-sidebar>li:last-child{border-bottom-left-radius:5px;border-bottom-right-radius:5px}.woocommerce .shop-sidebar>li a{color:white;text-transform:uppercase}.woocommerce #sidebar-category .shop-sidebar ul.products li.current h3{color:#006A71}.woocommerce #sidebar-category .shop-sidebar ul.products li.current:hover h3{color:white}.woocommerce .shop-sidebar ul.products>li.product>a>div>img{display:none}.woocommerce #content-wrapper{top:0px}main.woocommerce .product.type-product .woocommerce-tabs ul.wc-tabs li,div.woocommerce .product.type-product .woocommerce-tabs ul.wc-tabs li{margin-right:5px}main.woocommerce .product.type-product .woocommerce-tabs ul.wc-tabs li.active::after,div.woocommerce .product.type-product .woocommerce-tabs ul.wc-tabs li.active::after{border:none;box-shadow:none}main.woocommerce .product.type-product .woocommerce-tabs ul.wc-tabs li.active::after,div.woocommerce .product.type-product .woocommerce-tabs ul.wc-tabs li.active::before{border:none;box-shadow:none}#tab-photos_tab{overflow:hidden}@media (max-width: 480px){#tab-photos_tab{text-align:center}}@media only screen and (max-width: 40em){main.woocommerce .product.type-product .woocommerce-tabs ul.wc-tabs li,div.woocommerce .product.type-product .woocommerce-tabs ul.wc-tabs li{margin-right:0px}}.side_bar{float:right;margin-top:100px}.cat-item,.product_term{list-style:none;padding-bottom:15px;line-height:15px}#tags_sidebar_container h5{color:#006a71}#tags_sidebar_container #tags_sidebar .cat-item a{font-family:"josefin sans";color:black}#categories_sidebar_container{margin-bottom:30px;list-style:none}#categories_sidebar_container h5{color:#006a71}#categories_sidebar_container ul li a{font-family:"josefin sans";color:black}#regions_sidebar li{list-style:none;line-height:16px;padding-bottom:11px}#regions_sidebar li h5{color:black}#enquire_button{border:1px solid transparent;border-radius:7px;padding:10px 10px 10px 10px;width:100%;-moz-box-shadow:3px 3px 5px 3px #A6A5A3;-webkit-box-shadow:3px 3px 5px 3px #A6A5A3;box-shadow:3px 3px 5px 3px #A6A5A3}main.woocommerce #content ul.products li.product img,div.woocommerce #content ul.products li.product img{color:transparent}main.woocommerce #content ul.products li.product img:hover,div.woocommerce #content ul.products li.product img:hover{color:transparent}#container #content ul.products li.product{width:33.33%;clear:none;float:left}#container #content ul.products li.product{width:33.33%;clear:none;float:left}@media only screen and (max-width: 40em){#container #content ul.products li.product{width:75%;margin-left:35px;float:left}}.orderby,.woocommerce-result-count{display:none}ul.products li a h3{color:#006a71;display:inline-block;padding-bottom:10px !important}ul.products div[itemprop="description"] p{line-height:1.1;color:black}div[itemprop="description"] p{font-family:"josefin sans"}.woocommerce-tabs .tabs .product_inquiry_tab_tab{background-color:#006a71 !important}.woocommerce-tabs .tabs .product_inquiry_tab_tab a{color:white !important}.product_featured_image{margin:0 auto;max-height:370px;max-width:1920px;overflow-y:hidden;position:relative;top:0;width:100%;z-index:-1;min-height:0px}woocommerce #content div.product .woocommerce-tabs ul.tabs li,.woocommerce div.product .woocommerce-tabs ul.tabs li,.woocommerce-page #content div.product .woocommerce-tabs ul.tabs li,.woocommerce-page div.product .woocommerce-tabs ul.tabs li{left:10px}ul.products li .button.product_type_simple.ajax_add_to_cart{display:none}.st_sharethis{float:right;margin:10px;width:58px}#content-wrapper .stButton .sharethis{background-image:url("../assets/share-icon.png") !important;width:52px;height:22px}.products_image{list-style:none}li.products_image_container,a.product_image_link{display:inline-block;height:200px;width:200px;margin:5px}.sidebar-headline{margin-bottom:1px}ul#tags_sidebar div.sidebar-region{line-height:1.1;margin-bottom:5px}.form-confirmation{color:white;background:#5E300B;width:550px;height:50px;font-family:"josefin sans";font-size:20px;-moz-box-shadow:3px 3px 5px 3px #A6A5A3;-webkit-box-shadow:3px 3px 5px 3px #A6A5A3;box-shadow:3px 3px 5px 3px #A6A5A3;border-radius:5px}.form-confirmation .confirmation-text{padding-top:15px;text-align:center}#tab-description p{padding-top:15px}.home-feed-post{padding-bottom:25px}input[type="submit"].blogbutton{border-radius:3px;color:#FFFFFF;border:2px solid #FFFFFF;font-weight:bold;font-size:13px;padding:2px 5px;margin-top:-10px;text-transform:uppercase}input[type="submit"].blogbutton:hover{cursor:pointer;background:#FFFFFF;border:2px solid #035C84;color:white}#blog-posts-over .search_result_context{margin-bottom:5px}#blog-posts-over article{display:inline-block;width:100%;z-index:0;line-height:120%}#blog-posts-over article .entry-header{background:transparent}#blog-posts-over article #addthis_wrapper{margin-top:3px}#blog-posts-over article a.read-more{border:2px solid #FFFFFF;font-weight:bold;font-size:13px;padding:0 3px;display:inline;text-transform:uppercase}#blog-posts-over article a.read-more:hover{background:#FFFFFF;border:2px solid #006A71;color:#a6a090}#blog-posts-over article .entry-header{margin-bottom:15px}#blog-posts-over article .entry-header .entry-title{margin-bottom:0}#blog-posts-over article .entry-header .meta.date{font-weight:bold;font-size:13px}#blog-posts-over article h1.entry-title{line-height:1.2;font-size:2.375rem}#blog-posts-over article .single-title{padding-bottom:15px}#blog-posts-over article .single-title a{text-decoration:none}article .entry-header .featured-image-wrap{margin-bottom:25px}.blog-excerpt-date{font-size:12px;margin-bottom:10px;color:grey}#blog-posts-over .entry-meta{text-align:center;color:#757575;font-size:12px}#blog-posts-over>div{margin:25px 0 50px 0}#blog-side-info #searchform{margin-bottom:30px}#blog-side-info p{margin-bottom:0}@media only screen and (max-width: 40em){#blog-side-info-wrapper{float:none;margin:0 auto;clear:both}#blog-side-info{padding-left:0;border-left:0}#blog-side-info ul{margin-left:0;margin-top:10px}#blog-side-info #searchform{padding:35px 0}#blog-side-info #searchform #s{width:100%}}#blog-side-info{padding-right:10px}#blog-side-info ul{list-style-type:none}#blog-side-info ul li{margin-bottom:15px}.blog-featured-home,.blog-featured-archive{height:250px;float:left;background-size:cover;background-repeat:no-repeat;background-position:center}#addthis_wrapper{float:right}#sidebar{padding-top:25px;background:#f2f9fc}#sidebar .row.collapse{margin-left:14px}#sidebar li{list-style:none}#sidebar li #calendar_wrap table#wp-calendar{margin:0 auto}#sidebar a{font-size:12px}#sidebar form{margin:0 12px 0 14px}#sidebar form select{padding:0 0.5rem;border-radius:5px;height:25px;margin:0}#sidebar form select option{font-size:10px}#sidebar .small-block-grid-2{margin-top:10px}#sidebar .small-block-grid-2 li{padding:0 0.625rem 0.625rem}#sidebar .small-block-grid-2 li img{border:2px solid lightblue}#sidebar .small-block-grid-2>li:nth-of-type(2),#sidebar .small-block-grid-2>li:nth-of-type(4){padding-left:0}#sidebar .small-block-grid-2>li:nth-of-type(3),#sidebar .small-block-grid-2>li:nth-of-type(4){padding-bottom:20px}#sidebar h3{margin:20px 0 0}#sidebar h1{margin:0;font-size:1.5625rem;text-transform:none}#sidebar input{padding:5px 0 5px 8px;height:auto;margin:10px 0}#sidebar button{border-radius:2px;padding:0 10px}#side-nav{padding-top:10px;background:#f2f9fc}#side-nav h1{font-size:1.375rem}#side-nav h4{font-weight:bold;margin-left:10px}#side-nav li{list-style:none}#side-nav ul{list-style:none;margin:0 0 20px}#side-nav ul li{margin:0 -15px;padding:5px 10px 5px 25px}#side-nav ul li:hover{background:#81adc1}#side-nav ul li a{color:darkblue}#side-nav ul li a:hover{color:#FFFFFF}#side-nav h3{text-transform:none;margin:0}#side-nav input{padding:5px 0 5px 8px;height:auto;margin-bottom:10px}#side-nav button{border-radius:2px;padding:0 10px}#extra{margin-top:15px}#extra p{line-height:1.3}#extra p.title{margin:0}#extra p.title#last{padding-top:10px}#extra p#message{text-transform:uppercase;color:lightblue;font-size:0.9375rem;margin:40px 0}.county-news{font-weight:bold}.current_page_item a{font-weight:bold}#ads_sidebar_container li{list-style:outside none none;text-align:center}.search-top #searchform{text-align:left;display:inline-block;position:relative}.search-top #searchform #search-button{width:22px;right:0px;position:absolute;padding:0;border:1px solid lightgray}.search-top input{height:20px;width:167px;padding:0 8px;margin:13px 0px 0px 18px;border-radius:3px;font-size:10px;color:#000000;display:inline-block}.search-top a.magnifying-glass{font-size:10em;width:0.75rem;height:0.75rem;border:0.125rem solid darkblue;position:absolute;top:15px;border-radius:0.35em;margin:0 0 0 -20px}.search-top a.magnifying-glass:before{content:"";display:inline-block;position:absolute;right:-0.4375rem;bottom:-0.25rem;border-width:0;background:darkblue;width:0.5rem;height:0.125rem;-webkit-transform:rotate(45deg);-moz-transform:rotate(45deg);-ms-transform:rotate(45deg);transform:rotate(45deg)}footer.main{background-color:#009543;position:relative;z-index:1;left:0;right:0;padding:20px 0 0px;box-shadow:0 8px 10px 0px rgba(0,0,0,0.5);-ms-box-shadow:0 8px 10px 0px rgba(0,0,0,0.5);-moz-box-shadow:0 8px 10px 0px rgba(0,0,0,0.5);-webkit-box-shadow:0 8px 10px 0px rgba(0,0,0,0.5)}footer.main a{color:#FFFFFF;text-decoration:underline}footer.main a:hover{color:#FFFFFF}#space{background:url(../assets/general.jpg) no-repeat center center;background-size:cover;height:400px}#footer_address .address{margin-bottom:10px}#footer_address .contact{margin-left:-5px}#footer_address .footer-img{padding-top:10px}#footer_address h4{text-transform:none;letter-spacing:normal;margin:0}#footer_address span{color:#FFFFFF;white-space:nowrap}#footer_address a{color:#FFFFFF;text-decoration:underline}#footer_address a span{color:#FFFFFF;text-decoration:underline}#footer-widget li{list-style:none}#footer-widget li ul{margin:0;list-style:none}#footer-widget li ul li{display:inline-block;padding:0 5px;width:auto}.social{display:inline-block}.social ul{list-style:none;margin:15px 0 0;display:block}.social ul li a.facebook,.social ul li a.insta,.social ul li a.twit,.social ul li a.tube{background:url(../assets/Social-Icons-Set-color.png) no-repeat;width:25px;height:25px;display:block}.social ul li{display:inline-block;padding:5px}.social ul li a.facebook{background-position:-672px 0}.social ul li a.insta{background-position:-751px 0}.social ul li a.twit{background-position:-712px 0}.social ul li a.tube{background-position:-792px 0}#connect{padding-top:20px;background:#4c4d4f}#connect ul{margin:0;list-style:none}#connect ul li{background:none;padding:0 5px;display:inline-block}#connect ul li>a{display:block;font-family:Open Sans, sans-serif;font-size:12px;color:#fff;padding:20px 18px;line-height:1.2}#connect ul li a#current{background:#96d3f9}#copyright{position:relative;z-index:0;background:#009543;padding:5px 0;margin:0 auto;float:none;text-align:center}#copyright span{font-size:0.625rem;color:#FFFFFF}#copyright span a{color:#FFFFFF;text-decoration:underline}#footer_address span.bullet,#copyright span.bullet{margin:0 5px}@media only screen and (max-width: 40em){#footer_address span.bullet,#copyright span.bullet{display:none !important;}}.off-canvas-wrap{min-height:100%}.off-canvas-wrap .inner-wrap{min-height:100vh;height:100%}h1{letter-spacing:0.05em;color:#009543}h2{font-family:Times;font-style:italic;color:#AAAAAA;letter-spacing:0.025em}h3{font-family:Times;font-style:italic;color:#009543}h4{font-weight:600;text-transform:uppercase;color:#FFFFFF;letter-spacing:0.05em}h5{text-transform:uppercase;color:#AAAAAA}h6{font-family:Times;font-style:italic;color:#009543}#example.element{background-color:transparent}aside.left-off-canvas-menu li.page_item{display:block;overflow:hidden;position:relative;padding:4px 8px}aside.left-off-canvas-menu .off-canvas-list ul li a{line-height:20px;color:white;border-bottom:1px solid #b1b3b6;background-repeat:no-repeat;background-position:3px 50%}aside.left-off-canvas-menu li.page_item_has_children a.toggle{position:absolute;right:10px;top:5px;width:auto;text-decoration:none}aside.left-off-canvas-menu li.page_item_has_children a.toggle:before{content:'>';transform:rotate(0deg);color:#FFFFFF;height:17px;width:17px;font-size:17px;font-weight:bold;display:block}aside.left-off-canvas-menu li.page_item_has_children a.toggle:hover{background:transparent}aside.left-off-canvas-menu li.page_item_has_children a.toggle.open{content:'>';transform:rotate(90deg);color:#FFFFFF;height:1rem;width:1rem;font-size:1rem;font-weight:bold;display:block}aside.left-off-canvas-menu ul.children{display:none}aside.left-off-canvas-menu .off-canvas-list ul li>ul li>a{padding-left:10px;margin-left:25px;line-height:18px}aside.left-off-canvas-menu ul.open{display:block}.left-off-canvas-menu{list-style:none}.left-off-canvas-menu li a{color:#FFFFFF;font-size:1rem;line-height:1.2;margin-bottom:5px;border-color:white}.left-off-canvas-menu li a:hover{color:#a6a090}.left-off-canvas-menu li .dropdown{list-style:none}.left-off-canvas-menu ul{list-style:none;padding:10px 0}.left-off-canvas-menu ul li{color:#FFFFFF}.left-off-canvas-menu ul li a{color:#FFFFFF}.left-off-canvas-menu ul li ul{list-style:none}.left-off-canvas-menu ul li ul li a{width:85%;display:block;white-space:pre-wrap}.left-off-canvas-menu .searchform .search-button{float:none;margin:0 auto 10px;display:block}.offcanvas-social-list{list-style:none;margin-top:0;margin-bottom:1.0625rem;margin-left:-1.375rem;margin-right:0;overflow:hidden;padding:0;margin-left:auto;display:inline-block}.offcanvas-social-list>li{display:block;float:left;list-style:none;margin-left:1.375rem}.offcanvas-social-list>li>*{display:block}.offcanvas-social-list li a.facebook,.offcanvas-social-list li a.insta,.offcanvas-social-list li a.twit,.offcanvas-social-list li a.tube{background:url(../assets/Social-Icons-Set-color.png) no-repeat;width:25px;height:25px;display:block}.offcanvas-social-list li{display:inline-block;padding:5px}.offcanvas-social-list li a.facebook{background-position:-672px 0}.offcanvas-social-list li a.insta{background-position:-751px 0}.offcanvas-social-list li a.twit{background-position:-712px 0}.offcanvas-social-list li a.tube{background-position:-792px 0}
\ No newline at end of file
--- /dev/null
+{
+ "version": 3,
+ "file": "app.css",
+ "sources": [
+ "../app.scss",
+ "../_settings.scss",
+ "../../bower_components/foundation/scss/foundation.scss",
+ "../_mixins.scss",
+ "../_wordpress.scss",
+ "../_defaults.scss",
+ "../_body.scss",
+ "../_page.header.scss",
+ "../_topbar.scss",
+ "../_main.scss",
+ "../_slideshow.scss",
+ "../_plugins.scss",
+ "../_blog.scss",
+ "../_sidebar.scss",
+ "../_search.scss",
+ "../_page.footer.scss",
+ "../_copyright.scss",
+ "../_structure.scss",
+ "../_left-off-canvas.scss",
+ "../../bower_components/foundation/scss/foundation/_functions.scss",
+ "../../bower_components/foundation/scss/foundation/components/_grid.scss",
+ "../../bower_components/foundation/scss/foundation/components/_accordion.scss",
+ "../../bower_components/foundation/scss/foundation/components/_alert-boxes.scss",
+ "../../bower_components/foundation/scss/foundation/components/_block-grid.scss",
+ "../../bower_components/foundation/scss/foundation/components/_breadcrumbs.scss",
+ "../../bower_components/foundation/scss/foundation/components/_button-groups.scss",
+ "../../bower_components/foundation/scss/foundation/components/_buttons.scss",
+ "../../bower_components/foundation/scss/foundation/components/_clearing.scss",
+ "../../bower_components/foundation/scss/foundation/components/_dropdown.scss",
+ "../../bower_components/foundation/scss/foundation/components/_dropdown-buttons.scss",
+ "../../bower_components/foundation/scss/foundation/components/_flex-video.scss",
+ "../../bower_components/foundation/scss/foundation/components/_forms.scss",
+ "../../bower_components/foundation/scss/foundation/components/_icon-bar.scss",
+ "../../bower_components/foundation/scss/foundation/components/_inline-lists.scss",
+ "../../bower_components/foundation/scss/foundation/components/_joyride.scss",
+ "../../bower_components/foundation/scss/foundation/components/_keystrokes.scss",
+ "../../bower_components/foundation/scss/foundation/components/_labels.scss",
+ "../../bower_components/foundation/scss/foundation/components/_magellan.scss",
+ "../../bower_components/foundation/scss/foundation/components/_orbit.scss",
+ "../../bower_components/foundation/scss/foundation/components/_pagination.scss",
+ "../../bower_components/foundation/scss/foundation/components/_panels.scss",
+ "../../bower_components/foundation/scss/foundation/components/_pricing-tables.scss",
+ "../../bower_components/foundation/scss/foundation/components/_progress-bars.scss",
+ "../../bower_components/foundation/scss/foundation/components/_range-slider.scss",
+ "../../bower_components/foundation/scss/foundation/components/_reveal.scss",
+ "../../bower_components/foundation/scss/foundation/components/_side-nav.scss",
+ "../../bower_components/foundation/scss/foundation/components/_split-buttons.scss",
+ "../../bower_components/foundation/scss/foundation/components/_sub-nav.scss",
+ "../../bower_components/foundation/scss/foundation/components/_switches.scss",
+ "../../bower_components/foundation/scss/foundation/components/_tables.scss",
+ "../../bower_components/foundation/scss/foundation/components/_tabs.scss",
+ "../../bower_components/foundation/scss/foundation/components/_thumbs.scss",
+ "../../bower_components/foundation/scss/foundation/components/_tooltips.scss",
+ "../../bower_components/foundation/scss/foundation/components/_top-bar.scss",
+ "../../bower_components/foundation/scss/foundation/components/_type.scss",
+ "../../bower_components/foundation/scss/foundation/components/_offcanvas.scss",
+ "../../bower_components/foundation/scss/foundation/components/_visibility.scss",
+ "../mixins/_gradient.scss",
+ "../mixins/_off-canvas-arrow.scss",
+ "../plugins/_nextgen.scss",
+ "../plugins/_gravityForms.scss",
+ "../plugins/_woocommerce.scss",
+ "../../bower_components/foundation/scss/foundation/components/_global.scss"
+ ],
+ "sourcesContent": [],
+ "mappings": "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",
+ "names": []
+}
\ No newline at end of file
--- /dev/null
+/*! Copyright (c) 2011 Brandon Aaron (http://brandonaaron.net)
+ * Licensed under the MIT License (LICENSE.txt).
+ *
+ * Thanks to: http://adomas.org/javascript-mouse-wheel/ for some pointers.
+ * Thanks to: Mathias Bank(http://www.mathias-bank.de) for a scope bug fix.
+ * Thanks to: Seamus Leahy for adding deltaX and deltaY
+ *
+ * Version: 3.0.6
+ *
+ * Requires: 1.2.2+
+ */
+(function(d){function e(a){var b=a||window.event,c=[].slice.call(arguments,1),f=0,e=0,g=0,a=d.event.fix(b);a.type="mousewheel";b.wheelDelta&&(f=b.wheelDelta/120);b.detail&&(f=-b.detail/3);g=f;b.axis!==void 0&&b.axis===b.HORIZONTAL_AXIS&&(g=0,e=-1*f);b.wheelDeltaY!==void 0&&(g=b.wheelDeltaY/120);b.wheelDeltaX!==void 0&&(e=-1*b.wheelDeltaX/120);c.unshift(a,f,e,g);return(d.event.dispatch||d.event.handle).apply(this,c)}var c=["DOMMouseScroll","mousewheel"];if(d.event.fixHooks)for(var h=c.length;h;)d.event.fixHooks[c[--h]]=
+d.event.mouseHooks;d.event.special.mousewheel={setup:function(){if(this.addEventListener)for(var a=c.length;a;)this.addEventListener(c[--a],e,false);else this.onmousewheel=e},teardown:function(){if(this.removeEventListener)for(var a=c.length;a;)this.removeEventListener(c[--a],e,false);else this.onmousewheel=null}};d.fn.extend({mousewheel:function(a){return a?this.bind("mousewheel",a):this.trigger("mousewheel")},unmousewheel:function(a){return this.unbind("mousewheel",a)}})})(jQuery);
\ No newline at end of file
--- /dev/null
+#fancybox-buttons {
+ position: fixed;
+ left: 0;
+ width: 100%;
+ z-index: 8050;
+}
+
+#fancybox-buttons.top {
+ top: 10px;
+}
+
+#fancybox-buttons.bottom {
+ bottom: 10px;
+}
+
+#fancybox-buttons ul {
+ display: block;
+ width: 166px;
+ height: 30px;
+ margin: 0 auto;
+ padding: 0;
+ list-style: none;
+ border: 1px solid #111;
+ border-radius: 3px;
+ -webkit-box-shadow: inset 0 0 0 1px rgba(255,255,255,.05);
+ -moz-box-shadow: inset 0 0 0 1px rgba(255,255,255,.05);
+ box-shadow: inset 0 0 0 1px rgba(255,255,255,.05);
+ background: rgb(50,50,50);
+ background: -moz-linear-gradient(top, rgb(68,68,68) 0%, rgb(52,52,52) 50%, rgb(41,41,41) 50%, rgb(51,51,51) 100%);
+ background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,rgb(68,68,68)), color-stop(50%,rgb(52,52,52)), color-stop(50%,rgb(41,41,41)), color-stop(100%,rgb(51,51,51)));
+ background: -webkit-linear-gradient(top, rgb(68,68,68) 0%,rgb(52,52,52) 50%,rgb(41,41,41) 50%,rgb(51,51,51) 100%);
+ background: -o-linear-gradient(top, rgb(68,68,68) 0%,rgb(52,52,52) 50%,rgb(41,41,41) 50%,rgb(51,51,51) 100%);
+ background: -ms-linear-gradient(top, rgb(68,68,68) 0%,rgb(52,52,52) 50%,rgb(41,41,41) 50%,rgb(51,51,51) 100%);
+ background: linear-gradient(top, rgb(68,68,68) 0%,rgb(52,52,52) 50%,rgb(41,41,41) 50%,rgb(51,51,51) 100%);
+ filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#444444', endColorstr='#222222',GradientType=0 );
+}
+
+#fancybox-buttons ul li {
+ float: left;
+ margin: 0;
+ padding: 0;
+}
+
+#fancybox-buttons a {
+ display: block;
+ width: 30px;
+ height: 30px;
+ text-indent: -9999px;
+ background-color: transparent;
+ background-image: url('fancybox_buttons.png');
+ background-repeat: no-repeat;
+ outline: none;
+ opacity: 0.8;
+}
+
+#fancybox-buttons a:hover {
+ opacity: 1;
+}
+
+#fancybox-buttons a.btnPrev {
+ background-position: 5px 0;
+}
+
+#fancybox-buttons a.btnNext {
+ background-position: -33px 0;
+ border-right: 1px solid #3e3e3e;
+}
+
+#fancybox-buttons a.btnPlay {
+ background-position: 0 -30px;
+}
+
+#fancybox-buttons a.btnPlayOn {
+ background-position: -30px -30px;
+}
+
+#fancybox-buttons a.btnToggle {
+ background-position: 3px -60px;
+ border-left: 1px solid #111;
+ border-right: 1px solid #3e3e3e;
+ width: 35px
+}
+
+#fancybox-buttons a.btnToggleOn {
+ background-position: -27px -60px;
+}
+
+#fancybox-buttons a.btnClose {
+ border-left: 1px solid #111;
+ width: 35px;
+ background-position: -56px 0px;
+}
+
+#fancybox-buttons a.btnDisabled {
+ opacity : 0.4;
+ cursor: default;
+}
\ No newline at end of file
--- /dev/null
+ /*!
+ * Buttons helper for fancyBox
+ * version: 1.0.5 (Mon, 15 Oct 2012)
+ * @requires fancyBox v2.0 or later
+ *
+ * Usage:
+ * $(".fancybox").fancybox({
+ * helpers : {
+ * buttons: {
+ * position : 'top'
+ * }
+ * }
+ * });
+ *
+ */
+(function ($) {
+ //Shortcut for fancyBox object
+ var F = $.fancybox;
+
+ //Add helper object
+ F.helpers.buttons = {
+ defaults : {
+ skipSingle : false, // disables if gallery contains single image
+ position : 'top', // 'top' or 'bottom'
+ tpl : '<div id="fancybox-buttons"><ul><li><a class="btnPrev" title="Previous" href="javascript:;"></a></li><li><a class="btnPlay" title="Start slideshow" href="javascript:;"></a></li><li><a class="btnNext" title="Next" href="javascript:;"></a></li><li><a class="btnToggle" title="Toggle size" href="javascript:;"></a></li><li><a class="btnClose" title="Close" href="javascript:;"></a></li></ul></div>'
+ },
+
+ list : null,
+ buttons: null,
+
+ beforeLoad: function (opts, obj) {
+ //Remove self if gallery do not have at least two items
+
+ if (opts.skipSingle && obj.group.length < 2) {
+ obj.helpers.buttons = false;
+ obj.closeBtn = true;
+
+ return;
+ }
+
+ //Increase top margin to give space for buttons
+ obj.margin[ opts.position === 'bottom' ? 2 : 0 ] += 30;
+ },
+
+ onPlayStart: function () {
+ if (this.buttons) {
+ this.buttons.play.attr('title', 'Pause slideshow').addClass('btnPlayOn');
+ }
+ },
+
+ onPlayEnd: function () {
+ if (this.buttons) {
+ this.buttons.play.attr('title', 'Start slideshow').removeClass('btnPlayOn');
+ }
+ },
+
+ afterShow: function (opts, obj) {
+ var buttons = this.buttons;
+
+ if (!buttons) {
+ this.list = $(opts.tpl).addClass(opts.position).appendTo('body');
+
+ buttons = {
+ prev : this.list.find('.btnPrev').click( F.prev ),
+ next : this.list.find('.btnNext').click( F.next ),
+ play : this.list.find('.btnPlay').click( F.play ),
+ toggle : this.list.find('.btnToggle').click( F.toggle ),
+ close : this.list.find('.btnClose').click( F.close )
+ }
+ }
+
+ //Prev
+ if (obj.index > 0 || obj.loop) {
+ buttons.prev.removeClass('btnDisabled');
+ } else {
+ buttons.prev.addClass('btnDisabled');
+ }
+
+ //Next / Play
+ if (obj.loop || obj.index < obj.group.length - 1) {
+ buttons.next.removeClass('btnDisabled');
+ buttons.play.removeClass('btnDisabled');
+
+ } else {
+ buttons.next.addClass('btnDisabled');
+ buttons.play.addClass('btnDisabled');
+ }
+
+ this.buttons = buttons;
+
+ this.onUpdate(opts, obj);
+ },
+
+ onUpdate: function (opts, obj) {
+ var toggle;
+
+ if (!this.buttons) {
+ return;
+ }
+
+ toggle = this.buttons.toggle.removeClass('btnDisabled btnToggleOn');
+
+ //Size toggle button
+ if (obj.canShrink) {
+ toggle.addClass('btnToggleOn');
+
+ } else if (!obj.canExpand) {
+ toggle.addClass('btnDisabled');
+ }
+ },
+
+ beforeClose: function () {
+ if (this.list) {
+ this.list.remove();
+ }
+
+ this.list = null;
+ this.buttons = null;
+ }
+ };
+
+}(jQuery));
--- /dev/null
+/*!
+ * Media helper for fancyBox
+ * version: 1.0.6 (Fri, 14 Jun 2013)
+ * @requires fancyBox v2.0 or later
+ *
+ * Usage:
+ * $(".fancybox").fancybox({
+ * helpers : {
+ * media: true
+ * }
+ * });
+ *
+ * Set custom URL parameters:
+ * $(".fancybox").fancybox({
+ * helpers : {
+ * media: {
+ * youtube : {
+ * params : {
+ * autoplay : 0
+ * }
+ * }
+ * }
+ * }
+ * });
+ *
+ * Or:
+ * $(".fancybox").fancybox({,
+ * helpers : {
+ * media: true
+ * },
+ * youtube : {
+ * autoplay: 0
+ * }
+ * });
+ *
+ * Supports:
+ *
+ * Youtube
+ * http://www.youtube.com/watch?v=opj24KnzrWo
+ * http://www.youtube.com/embed/opj24KnzrWo
+ * http://youtu.be/opj24KnzrWo
+ * http://www.youtube-nocookie.com/embed/opj24KnzrWo
+ * Vimeo
+ * http://vimeo.com/40648169
+ * http://vimeo.com/channels/staffpicks/38843628
+ * http://vimeo.com/groups/surrealism/videos/36516384
+ * http://player.vimeo.com/video/45074303
+ * Metacafe
+ * http://www.metacafe.com/watch/7635964/dr_seuss_the_lorax_movie_trailer/
+ * http://www.metacafe.com/watch/7635964/
+ * Dailymotion
+ * http://www.dailymotion.com/video/xoytqh_dr-seuss-the-lorax-premiere_people
+ * Twitvid
+ * http://twitvid.com/QY7MD
+ * Twitpic
+ * http://twitpic.com/7p93st
+ * Instagram
+ * http://instagr.am/p/IejkuUGxQn/
+ * http://instagram.com/p/IejkuUGxQn/
+ * Google maps
+ * http://maps.google.com/maps?q=Eiffel+Tower,+Avenue+Gustave+Eiffel,+Paris,+France&t=h&z=17
+ * http://maps.google.com/?ll=48.857995,2.294297&spn=0.007666,0.021136&t=m&z=16
+ * http://maps.google.com/?ll=48.859463,2.292626&spn=0.000965,0.002642&t=m&z=19&layer=c&cbll=48.859524,2.292532&panoid=YJ0lq28OOy3VT2IqIuVY0g&cbp=12,151.58,,0,-15.56
+ */
+(function ($) {
+ "use strict";
+
+ //Shortcut for fancyBox object
+ var F = $.fancybox,
+ format = function( url, rez, params ) {
+ params = params || '';
+
+ if ( $.type( params ) === "object" ) {
+ params = $.param(params, true);
+ }
+
+ $.each(rez, function(key, value) {
+ url = url.replace( '$' + key, value || '' );
+ });
+
+ if (params.length) {
+ url += ( url.indexOf('?') > 0 ? '&' : '?' ) + params;
+ }
+
+ return url;
+ };
+
+ //Add helper object
+ F.helpers.media = {
+ defaults : {
+ youtube : {
+ matcher : /(youtube\.com|youtu\.be|youtube-nocookie\.com)\/(watch\?v=|v\/|u\/|embed\/?)?(videoseries\?list=(.*)|[\w-]{11}|\?listType=(.*)&list=(.*)).*/i,
+ params : {
+ autoplay : 1,
+ autohide : 1,
+ fs : 1,
+ rel : 0,
+ hd : 1,
+ wmode : 'opaque',
+ enablejsapi : 1
+ },
+ type : 'iframe',
+ url : '//www.youtube.com/embed/$3'
+ },
+ vimeo : {
+ matcher : /(?:vimeo(?:pro)?.com)\/(?:[^\d]+)?(\d+)(?:.*)/,
+ params : {
+ autoplay : 1,
+ hd : 1,
+ show_title : 1,
+ show_byline : 1,
+ show_portrait : 0,
+ fullscreen : 1
+ },
+ type : 'iframe',
+ url : '//player.vimeo.com/video/$1'
+ },
+ metacafe : {
+ matcher : /metacafe.com\/(?:watch|fplayer)\/([\w\-]{1,10})/,
+ params : {
+ autoPlay : 'yes'
+ },
+ type : 'swf',
+ url : function( rez, params, obj ) {
+ obj.swf.flashVars = 'playerVars=' + $.param( params, true );
+
+ return '//www.metacafe.com/fplayer/' + rez[1] + '/.swf';
+ }
+ },
+ dailymotion : {
+ matcher : /dailymotion.com\/video\/(.*)\/?(.*)/,
+ params : {
+ additionalInfos : 0,
+ autoStart : 1
+ },
+ type : 'swf',
+ url : '//www.dailymotion.com/swf/video/$1'
+ },
+ twitvid : {
+ matcher : /twitvid\.com\/([a-zA-Z0-9_\-\?\=]+)/i,
+ params : {
+ autoplay : 0
+ },
+ type : 'iframe',
+ url : '//www.twitvid.com/embed.php?guid=$1'
+ },
+ twitpic : {
+ matcher : /twitpic\.com\/(?!(?:place|photos|events)\/)([a-zA-Z0-9\?\=\-]+)/i,
+ type : 'image',
+ url : '//twitpic.com/show/full/$1/'
+ },
+ instagram : {
+ matcher : /(instagr\.am|instagram\.com)\/p\/([a-zA-Z0-9_\-]+)\/?/i,
+ type : 'image',
+ url : '//$1/p/$2/media/?size=l'
+ },
+ google_maps : {
+ matcher : /maps\.google\.([a-z]{2,3}(\.[a-z]{2})?)\/(\?ll=|maps\?)(.*)/i,
+ type : 'iframe',
+ url : function( rez ) {
+ return '//maps.google.' + rez[1] + '/' + rez[3] + '' + rez[4] + '&output=' + (rez[4].indexOf('layer=c') > 0 ? 'svembed' : 'embed');
+ }
+ }
+ },
+
+ beforeLoad : function(opts, obj) {
+ var url = obj.href || '',
+ type = false,
+ what,
+ item,
+ rez,
+ params;
+
+ for (what in opts) {
+ if (opts.hasOwnProperty(what)) {
+ item = opts[ what ];
+ rez = url.match( item.matcher );
+
+ if (rez) {
+ type = item.type;
+ params = $.extend(true, {}, item.params, obj[ what ] || ($.isPlainObject(opts[ what ]) ? opts[ what ].params : null));
+
+ url = $.type( item.url ) === "function" ? item.url.call( this, rez, params, obj ) : format( item.url, rez, params );
+
+ break;
+ }
+ }
+ }
+
+ if (type) {
+ obj.href = url;
+ obj.type = type;
+
+ obj.autoHeight = false;
+ }
+ }
+ };
+
+}(jQuery));
\ No newline at end of file
--- /dev/null
+#fancybox-thumbs {
+ position: fixed;
+ left: 0;
+ width: 100%;
+ overflow: hidden;
+ z-index: 8050;
+}
+
+#fancybox-thumbs.bottom {
+ bottom: 2px;
+}
+
+#fancybox-thumbs.top {
+ top: 2px;
+}
+
+#fancybox-thumbs ul {
+ position: relative;
+ list-style: none;
+ margin: 0;
+ padding: 0;
+}
+
+#fancybox-thumbs ul li {
+ float: left;
+ padding: 1px;
+ opacity: 0.5;
+}
+
+#fancybox-thumbs ul li.active {
+ opacity: 0.75;
+ padding: 0;
+ border: 1px solid #fff;
+}
+
+#fancybox-thumbs ul li:hover {
+ opacity: 1;
+}
+
+#fancybox-thumbs ul li a {
+ display: block;
+ position: relative;
+ overflow: hidden;
+ border: 1px solid #222;
+ background: #111;
+ outline: none;
+}
+
+#fancybox-thumbs ul li img {
+ display: block;
+ position: relative;
+ border: 0;
+ padding: 0;
+ max-width: none;
+}
\ No newline at end of file
--- /dev/null
+ /*!
+ * Thumbnail helper for fancyBox
+ * version: 1.0.7 (Mon, 01 Oct 2012)
+ * @requires fancyBox v2.0 or later
+ *
+ * Usage:
+ * $(".fancybox").fancybox({
+ * helpers : {
+ * thumbs: {
+ * width : 50,
+ * height : 50
+ * }
+ * }
+ * });
+ *
+ */
+(function ($) {
+ //Shortcut for fancyBox object
+ var F = $.fancybox;
+
+ //Add helper object
+ F.helpers.thumbs = {
+ defaults : {
+ width : 50, // thumbnail width
+ height : 50, // thumbnail height
+ position : 'bottom', // 'top' or 'bottom'
+ source : function ( item ) { // function to obtain the URL of the thumbnail image
+ var href;
+
+ if (item.element) {
+ href = $(item.element).find('img').attr('src');
+ }
+
+ if (!href && item.type === 'image' && item.href) {
+ href = item.href;
+ }
+
+ return href;
+ }
+ },
+
+ wrap : null,
+ list : null,
+ width : 0,
+
+ init: function (opts, obj) {
+ var that = this,
+ list,
+ thumbWidth = opts.width,
+ thumbHeight = opts.height,
+ thumbSource = opts.source;
+
+ //Build list structure
+ list = '';
+
+ for (var n = 0; n < obj.group.length; n++) {
+ list += '<li><a style="width:' + thumbWidth + 'px;height:' + thumbHeight + 'px;" href="javascript:jQuery.fancybox.jumpto(' + n + ');"></a></li>';
+ }
+
+ this.wrap = $('<div id="fancybox-thumbs"></div>').addClass(opts.position).appendTo('body');
+ this.list = $('<ul>' + list + '</ul>').appendTo(this.wrap);
+
+ //Load each thumbnail
+ $.each(obj.group, function (i) {
+ var href = thumbSource( obj.group[ i ] );
+
+ if (!href) {
+ return;
+ }
+
+ $("<img />").load(function () {
+ var width = this.width,
+ height = this.height,
+ widthRatio, heightRatio, parent;
+
+ if (!that.list || !width || !height) {
+ return;
+ }
+
+ //Calculate thumbnail width/height and center it
+ widthRatio = width / thumbWidth;
+ heightRatio = height / thumbHeight;
+
+ parent = that.list.children().eq(i).find('a');
+
+ if (widthRatio >= 1 && heightRatio >= 1) {
+ if (widthRatio > heightRatio) {
+ width = Math.floor(width / heightRatio);
+ height = thumbHeight;
+
+ } else {
+ width = thumbWidth;
+ height = Math.floor(height / widthRatio);
+ }
+ }
+
+ $(this).css({
+ width : width,
+ height : height,
+ top : Math.floor(thumbHeight / 2 - height / 2),
+ left : Math.floor(thumbWidth / 2 - width / 2)
+ });
+
+ parent.width(thumbWidth).height(thumbHeight);
+
+ $(this).hide().appendTo(parent).fadeIn(300);
+
+ }).attr('src', href);
+ });
+
+ //Set initial width
+ this.width = this.list.children().eq(0).outerWidth(true);
+
+ this.list.width(this.width * (obj.group.length + 1)).css('left', Math.floor($(window).width() * 0.5 - (obj.index * this.width + this.width * 0.5)));
+ },
+
+ beforeLoad: function (opts, obj) {
+ //Remove self if gallery do not have at least two items
+ if (obj.group.length < 2) {
+ obj.helpers.thumbs = false;
+
+ return;
+ }
+
+ //Increase bottom margin to give space for thumbs
+ obj.margin[ opts.position === 'top' ? 0 : 2 ] += ((opts.height) + 15);
+ },
+
+ afterShow: function (opts, obj) {
+ //Check if exists and create or update list
+ if (this.list) {
+ this.onUpdate(opts, obj);
+
+ } else {
+ this.init(opts, obj);
+ }
+
+ //Set active element
+ this.list.children().removeClass('active').eq(obj.index).addClass('active');
+ },
+
+ //Center list
+ onUpdate: function (opts, obj) {
+ if (this.list) {
+ this.list.stop(true).animate({
+ 'left': Math.floor($(window).width() * 0.5 - (obj.index * this.width + this.width * 0.5))
+ }, 150);
+ }
+ },
+
+ beforeClose: function () {
+ if (this.wrap) {
+ this.wrap.remove();
+ }
+
+ this.wrap = null;
+ this.list = null;
+ this.width = 0;
+ }
+ }
+
+}(jQuery));
\ No newline at end of file
--- /dev/null
+/*! fancyBox v2.1.5 fancyapps.com | fancyapps.com/fancybox/#license */
+.fancybox-wrap,
+.fancybox-skin,
+.fancybox-outer,
+.fancybox-inner,
+.fancybox-image,
+.fancybox-wrap iframe,
+.fancybox-wrap object,
+.fancybox-nav,
+.fancybox-nav span,
+.fancybox-tmp
+{
+ padding: 0;
+ margin: 0;
+ border: 0;
+ outline: none;
+ vertical-align: top;
+}
+
+.fancybox-wrap {
+ position: absolute;
+ top: 0;
+ left: 0;
+ z-index: 8020;
+}
+
+.fancybox-skin {
+ position: relative;
+ background: #f9f9f9;
+ color: #444;
+ text-shadow: none;
+ -webkit-border-radius: 4px;
+ -moz-border-radius: 4px;
+ border-radius: 4px;
+}
+
+.fancybox-opened {
+ z-index: 8030;
+}
+
+.fancybox-opened .fancybox-skin {
+ -webkit-box-shadow: 0 10px 25px rgba(0, 0, 0, 0.5);
+ -moz-box-shadow: 0 10px 25px rgba(0, 0, 0, 0.5);
+ box-shadow: 0 10px 25px rgba(0, 0, 0, 0.5);
+}
+
+.fancybox-outer, .fancybox-inner {
+ position: relative;
+}
+
+.fancybox-inner {
+ overflow: hidden;
+}
+
+.fancybox-type-iframe .fancybox-inner {
+ -webkit-overflow-scrolling: touch;
+}
+
+.fancybox-error {
+ color: #444;
+ font: 14px/20px "Helvetica Neue",Helvetica,Arial,sans-serif;
+ margin: 0;
+ padding: 15px;
+ white-space: nowrap;
+}
+
+.fancybox-image, .fancybox-iframe {
+ display: block;
+ width: 100%;
+ height: 100%;
+}
+
+.fancybox-image {
+ max-width: 100%;
+ max-height: 100%;
+}
+
+#fancybox-loading, .fancybox-close, .fancybox-prev span, .fancybox-next span {
+ background-image: url('fancybox_sprite.png');
+}
+
+#fancybox-loading {
+ position: fixed;
+ top: 50%;
+ left: 50%;
+ margin-top: -22px;
+ margin-left: -22px;
+ background-position: 0 -108px;
+ opacity: 0.8;
+ cursor: pointer;
+ z-index: 8060;
+}
+
+#fancybox-loading div {
+ width: 44px;
+ height: 44px;
+ background: url('fancybox_loading.gif') center center no-repeat;
+}
+
+.fancybox-close {
+ position: absolute;
+ top: -18px;
+ right: -18px;
+ width: 36px;
+ height: 36px;
+ cursor: pointer;
+ z-index: 8040;
+}
+
+.fancybox-nav {
+ position: absolute;
+ top: 0;
+ width: 40%;
+ height: 100%;
+ cursor: pointer;
+ text-decoration: none;
+ background: transparent url('blank.gif'); /* helps IE */
+ -webkit-tap-highlight-color: rgba(0,0,0,0);
+ z-index: 8040;
+}
+
+.fancybox-prev {
+ left: 0;
+}
+
+.fancybox-next {
+ right: 0;
+}
+
+.fancybox-nav span {
+ position: absolute;
+ top: 50%;
+ width: 36px;
+ height: 34px;
+ margin-top: -18px;
+ cursor: pointer;
+ z-index: 8040;
+ visibility: hidden;
+}
+
+.fancybox-prev span {
+ left: 10px;
+ background-position: 0 -36px;
+}
+
+.fancybox-next span {
+ right: 10px;
+ background-position: 0 -72px;
+}
+
+.fancybox-nav:hover span {
+ visibility: visible;
+}
+
+.fancybox-tmp {
+ position: absolute;
+ top: -99999px;
+ left: -99999px;
+ visibility: hidden;
+ max-width: 99999px;
+ max-height: 99999px;
+ overflow: visible !important;
+}
+
+/* Overlay helper */
+
+.fancybox-lock {
+ overflow: hidden !important;
+ width: auto;
+}
+
+.fancybox-lock body {
+ overflow: hidden !important;
+}
+
+.fancybox-lock-test {
+ overflow-y: hidden !important;
+}
+
+.fancybox-overlay {
+ position: absolute;
+ top: 0;
+ left: 0;
+ overflow: hidden;
+ display: none;
+ z-index: 8010;
+ background: url('fancybox_overlay.png');
+}
+
+.fancybox-overlay-fixed {
+ position: fixed;
+ bottom: 0;
+ right: 0;
+}
+
+.fancybox-lock .fancybox-overlay {
+ overflow: auto;
+ overflow-y: scroll;
+}
+
+/* Title helper */
+
+.fancybox-title {
+ visibility: hidden;
+ font: normal 13px/20px "Helvetica Neue",Helvetica,Arial,sans-serif;
+ position: relative;
+ text-shadow: none;
+ z-index: 8050;
+}
+
+.fancybox-opened .fancybox-title {
+ visibility: visible;
+}
+
+.fancybox-title-float-wrap {
+ position: absolute;
+ bottom: 0;
+ right: 50%;
+ margin-bottom: -35px;
+ z-index: 8050;
+ text-align: center;
+}
+
+.fancybox-title-float-wrap .child {
+ display: inline-block;
+ margin-right: -100%;
+ padding: 2px 20px;
+ background: transparent; /* Fallback for web browsers that doesn't support RGBa */
+ background: rgba(0, 0, 0, 0.8);
+ -webkit-border-radius: 15px;
+ -moz-border-radius: 15px;
+ border-radius: 15px;
+ text-shadow: 0 1px 2px #222;
+ color: #FFF;
+ font-weight: bold;
+ line-height: 24px;
+ white-space: nowrap;
+}
+
+.fancybox-title-outside-wrap {
+ position: relative;
+ margin-top: 10px;
+ color: #fff;
+}
+
+.fancybox-title-inside-wrap {
+ padding-top: 10px;
+}
+
+.fancybox-title-over-wrap {
+ position: absolute;
+ bottom: 0;
+ left: 0;
+ color: #fff;
+ padding: 10px;
+ background: #000;
+ background: rgba(0, 0, 0, .8);
+}
+
+/*Retina graphics!*/
+@media only screen and (-webkit-min-device-pixel-ratio: 1.5),
+ only screen and (min--moz-device-pixel-ratio: 1.5),
+ only screen and (min-device-pixel-ratio: 1.5){
+
+ #fancybox-loading, .fancybox-close, .fancybox-prev span, .fancybox-next span {
+ background-image: url('fancybox_sprite@2x.png');
+ background-size: 44px 152px; /*The size of the normal image, half the size of the hi-res image*/
+ }
+
+ #fancybox-loading div {
+ background-image: url('fancybox_loading@2x.gif');
+ background-size: 24px 24px; /*The size of the normal image, half the size of the hi-res image*/
+ }
+}
\ No newline at end of file
--- /dev/null
+/*!
+ * fancyBox - jQuery Plugin
+ * version: 2.1.5 (Fri, 14 Jun 2013)
+ * @requires jQuery v1.6 or later
+ *
+ * Examples at http://fancyapps.com/fancybox/
+ * License: www.fancyapps.com/fancybox/#license
+ *
+ * Copyright 2012 Janis Skarnelis - janis@fancyapps.com
+ *
+ */
+
+(function (window, document, $, undefined) {
+ "use strict";
+
+ var H = $("html"),
+ W = $(window),
+ D = $(document),
+ F = $.fancybox = function () {
+ F.open.apply( this, arguments );
+ },
+ IE = navigator.userAgent.match(/msie/i),
+ didUpdate = null,
+ isTouch = document.createTouch !== undefined,
+
+ isQuery = function(obj) {
+ return obj && obj.hasOwnProperty && obj instanceof $;
+ },
+ isString = function(str) {
+ return str && $.type(str) === "string";
+ },
+ isPercentage = function(str) {
+ return isString(str) && str.indexOf('%') > 0;
+ },
+ isScrollable = function(el) {
+ return (el && !(el.style.overflow && el.style.overflow === 'hidden') && ((el.clientWidth && el.scrollWidth > el.clientWidth) || (el.clientHeight && el.scrollHeight > el.clientHeight)));
+ },
+ getScalar = function(orig, dim) {
+ var value = parseInt(orig, 10) || 0;
+
+ if (dim && isPercentage(orig)) {
+ value = F.getViewport()[ dim ] / 100 * value;
+ }
+
+ return Math.ceil(value);
+ },
+ getValue = function(value, dim) {
+ return getScalar(value, dim) + 'px';
+ };
+
+ $.extend(F, {
+ // The current version of fancyBox
+ version: '2.1.5',
+
+ defaults: {
+ padding : 15,
+ margin : 20,
+
+ width : 800,
+ height : 600,
+ minWidth : 100,
+ minHeight : 100,
+ maxWidth : 9999,
+ maxHeight : 9999,
+ pixelRatio: 1, // Set to 2 for retina display support
+
+ autoSize : true,
+ autoHeight : false,
+ autoWidth : false,
+
+ autoResize : true,
+ autoCenter : !isTouch,
+ fitToView : true,
+ aspectRatio : false,
+ topRatio : 0.5,
+ leftRatio : 0.5,
+
+ scrolling : 'auto', // 'auto', 'yes' or 'no'
+ wrapCSS : '',
+
+ arrows : true,
+ closeBtn : true,
+ closeClick : false,
+ nextClick : false,
+ mouseWheel : true,
+ autoPlay : false,
+ playSpeed : 3000,
+ preload : 3,
+ modal : false,
+ loop : true,
+
+ ajax : {
+ dataType : 'html',
+ headers : { 'X-fancyBox': true }
+ },
+ iframe : {
+ scrolling : 'auto',
+ preload : true
+ },
+ swf : {
+ wmode: 'transparent',
+ allowfullscreen : 'true',
+ allowscriptaccess : 'always'
+ },
+
+ keys : {
+ next : {
+ 13 : 'left', // enter
+ 34 : 'up', // page down
+ 39 : 'left', // right arrow
+ 40 : 'up' // down arrow
+ },
+ prev : {
+ 8 : 'right', // backspace
+ 33 : 'down', // page up
+ 37 : 'right', // left arrow
+ 38 : 'down' // up arrow
+ },
+ close : [27], // escape key
+ play : [32], // space - start/stop slideshow
+ toggle : [70] // letter "f" - toggle fullscreen
+ },
+
+ direction : {
+ next : 'left',
+ prev : 'right'
+ },
+
+ scrollOutside : true,
+
+ // Override some properties
+ index : 0,
+ type : null,
+ href : null,
+ content : null,
+ title : null,
+
+ // HTML templates
+ tpl: {
+ wrap : '<div class="fancybox-wrap" tabIndex="-1"><div class="fancybox-skin"><div class="fancybox-outer"><div class="fancybox-inner"></div></div></div></div>',
+ image : '<img class="fancybox-image" src="{href}" alt="" />',
+ iframe : '<iframe id="fancybox-frame{rnd}" name="fancybox-frame{rnd}" class="fancybox-iframe" frameborder="0" vspace="0" hspace="0" webkitAllowFullScreen mozallowfullscreen allowFullScreen' + (IE ? ' allowtransparency="true"' : '') + '></iframe>',
+ error : '<p class="fancybox-error">The requested content cannot be loaded.<br/>Please try again later.</p>',
+ closeBtn : '<a title="Close" class="fancybox-item fancybox-close" href="javascript:;"></a>',
+ next : '<a title="Next" class="fancybox-nav fancybox-next" href="javascript:;"><span></span></a>',
+ prev : '<a title="Previous" class="fancybox-nav fancybox-prev" href="javascript:;"><span></span></a>'
+ },
+
+ // Properties for each animation type
+ // Opening fancyBox
+ openEffect : 'fade', // 'elastic', 'fade' or 'none'
+ openSpeed : 250,
+ openEasing : 'swing',
+ openOpacity : true,
+ openMethod : 'zoomIn',
+
+ // Closing fancyBox
+ closeEffect : 'fade', // 'elastic', 'fade' or 'none'
+ closeSpeed : 250,
+ closeEasing : 'swing',
+ closeOpacity : true,
+ closeMethod : 'zoomOut',
+
+ // Changing next gallery item
+ nextEffect : 'elastic', // 'elastic', 'fade' or 'none'
+ nextSpeed : 250,
+ nextEasing : 'swing',
+ nextMethod : 'changeIn',
+
+ // Changing previous gallery item
+ prevEffect : 'elastic', // 'elastic', 'fade' or 'none'
+ prevSpeed : 250,
+ prevEasing : 'swing',
+ prevMethod : 'changeOut',
+
+ // Enable default helpers
+ helpers : {
+ overlay : true,
+ title : true
+ },
+
+ // Callbacks
+ onCancel : $.noop, // If canceling
+ beforeLoad : $.noop, // Before loading
+ afterLoad : $.noop, // After loading
+ beforeShow : $.noop, // Before changing in current item
+ afterShow : $.noop, // After opening
+ beforeChange : $.noop, // Before changing gallery item
+ beforeClose : $.noop, // Before closing
+ afterClose : $.noop // After closing
+ },
+
+ //Current state
+ group : {}, // Selected group
+ opts : {}, // Group options
+ previous : null, // Previous element
+ coming : null, // Element being loaded
+ current : null, // Currently loaded element
+ isActive : false, // Is activated
+ isOpen : false, // Is currently open
+ isOpened : false, // Have been fully opened at least once
+
+ wrap : null,
+ skin : null,
+ outer : null,
+ inner : null,
+
+ player : {
+ timer : null,
+ isActive : false
+ },
+
+ // Loaders
+ ajaxLoad : null,
+ imgPreload : null,
+
+ // Some collections
+ transitions : {},
+ helpers : {},
+
+ /*
+ * Static methods
+ */
+
+ open: function (group, opts) {
+ if (!group) {
+ return;
+ }
+
+ if (!$.isPlainObject(opts)) {
+ opts = {};
+ }
+
+ // Close if already active
+ if (false === F.close(true)) {
+ return;
+ }
+
+ // Normalize group
+ if (!$.isArray(group)) {
+ group = isQuery(group) ? $(group).get() : [group];
+ }
+
+ // Recheck if the type of each element is `object` and set content type (image, ajax, etc)
+ $.each(group, function(i, element) {
+ var obj = {},
+ href,
+ title,
+ content,
+ type,
+ rez,
+ hrefParts,
+ selector;
+
+ if ($.type(element) === "object") {
+ // Check if is DOM element
+ if (element.nodeType) {
+ element = $(element);
+ }
+
+ if (isQuery(element)) {
+ obj = {
+ href : element.data('fancybox-href') || element.attr('href'),
+ title : element.data('fancybox-title') || element.attr('title'),
+ isDom : true,
+ element : element
+ };
+
+ if ($.metadata) {
+ $.extend(true, obj, element.metadata());
+ }
+
+ } else {
+ obj = element;
+ }
+ }
+
+ href = opts.href || obj.href || (isString(element) ? element : null);
+ title = opts.title !== undefined ? opts.title : obj.title || '';
+
+ content = opts.content || obj.content;
+ type = content ? 'html' : (opts.type || obj.type);
+
+ if (!type && obj.isDom) {
+ type = element.data('fancybox-type');
+
+ if (!type) {
+ rez = element.prop('class').match(/fancybox\.(\w+)/);
+ type = rez ? rez[1] : null;
+ }
+ }
+
+ if (isString(href)) {
+ // Try to guess the content type
+ if (!type) {
+ if (F.isImage(href)) {
+ type = 'image';
+
+ } else if (F.isSWF(href)) {
+ type = 'swf';
+
+ } else if (href.charAt(0) === '#') {
+ type = 'inline';
+
+ } else if (isString(element)) {
+ type = 'html';
+ content = element;
+ }
+ }
+
+ // Split url into two pieces with source url and content selector, e.g,
+ // "/mypage.html #my_id" will load "/mypage.html" and display element having id "my_id"
+ if (type === 'ajax') {
+ hrefParts = href.split(/\s+/, 2);
+ href = hrefParts.shift();
+ selector = hrefParts.shift();
+ }
+ }
+
+ if (!content) {
+ if (type === 'inline') {
+ if (href) {
+ content = $( isString(href) ? href.replace(/.*(?=#[^\s]+$)/, '') : href ); //strip for ie7
+
+ } else if (obj.isDom) {
+ content = element;
+ }
+
+ } else if (type === 'html') {
+ content = href;
+
+ } else if (!type && !href && obj.isDom) {
+ type = 'inline';
+ content = element;
+ }
+ }
+
+ $.extend(obj, {
+ href : href,
+ type : type,
+ content : content,
+ title : title,
+ selector : selector
+ });
+
+ group[ i ] = obj;
+ });
+
+ // Extend the defaults
+ F.opts = $.extend(true, {}, F.defaults, opts);
+
+ // All options are merged recursive except keys
+ if (opts.keys !== undefined) {
+ F.opts.keys = opts.keys ? $.extend({}, F.defaults.keys, opts.keys) : false;
+ }
+
+ F.group = group;
+
+ return F._start(F.opts.index);
+ },
+
+ // Cancel image loading or abort ajax request
+ cancel: function () {
+ var coming = F.coming;
+
+ if (!coming || false === F.trigger('onCancel')) {
+ return;
+ }
+
+ F.hideLoading();
+
+ if (F.ajaxLoad) {
+ F.ajaxLoad.abort();
+ }
+
+ F.ajaxLoad = null;
+
+ if (F.imgPreload) {
+ F.imgPreload.onload = F.imgPreload.onerror = null;
+ }
+
+ if (coming.wrap) {
+ coming.wrap.stop(true, true).trigger('onReset').remove();
+ }
+
+ F.coming = null;
+
+ // If the first item has been canceled, then clear everything
+ if (!F.current) {
+ F._afterZoomOut( coming );
+ }
+ },
+
+ // Start closing animation if is open; remove immediately if opening/closing
+ close: function (event) {
+ F.cancel();
+
+ if (false === F.trigger('beforeClose')) {
+ return;
+ }
+
+ F.unbindEvents();
+
+ if (!F.isActive) {
+ return;
+ }
+
+ if (!F.isOpen || event === true) {
+ $('.fancybox-wrap').stop(true).trigger('onReset').remove();
+
+ F._afterZoomOut();
+
+ } else {
+ F.isOpen = F.isOpened = false;
+ F.isClosing = true;
+
+ $('.fancybox-item, .fancybox-nav').remove();
+
+ F.wrap.stop(true, true).removeClass('fancybox-opened');
+
+ F.transitions[ F.current.closeMethod ]();
+ }
+ },
+
+ // Manage slideshow:
+ // $.fancybox.play(); - toggle slideshow
+ // $.fancybox.play( true ); - start
+ // $.fancybox.play( false ); - stop
+ play: function ( action ) {
+ var clear = function () {
+ clearTimeout(F.player.timer);
+ },
+ set = function () {
+ clear();
+
+ if (F.current && F.player.isActive) {
+ F.player.timer = setTimeout(F.next, F.current.playSpeed);
+ }
+ },
+ stop = function () {
+ clear();
+
+ D.unbind('.player');
+
+ F.player.isActive = false;
+
+ F.trigger('onPlayEnd');
+ },
+ start = function () {
+ if (F.current && (F.current.loop || F.current.index < F.group.length - 1)) {
+ F.player.isActive = true;
+
+ D.bind({
+ 'onCancel.player beforeClose.player' : stop,
+ 'onUpdate.player' : set,
+ 'beforeLoad.player' : clear
+ });
+
+ set();
+
+ F.trigger('onPlayStart');
+ }
+ };
+
+ if (action === true || (!F.player.isActive && action !== false)) {
+ start();
+ } else {
+ stop();
+ }
+ },
+
+ // Navigate to next gallery item
+ next: function ( direction ) {
+ var current = F.current;
+
+ if (current) {
+ if (!isString(direction)) {
+ direction = current.direction.next;
+ }
+
+ F.jumpto(current.index + 1, direction, 'next');
+ }
+ },
+
+ // Navigate to previous gallery item
+ prev: function ( direction ) {
+ var current = F.current;
+
+ if (current) {
+ if (!isString(direction)) {
+ direction = current.direction.prev;
+ }
+
+ F.jumpto(current.index - 1, direction, 'prev');
+ }
+ },
+
+ // Navigate to gallery item by index
+ jumpto: function ( index, direction, router ) {
+ var current = F.current;
+
+ if (!current) {
+ return;
+ }
+
+ index = getScalar(index);
+
+ F.direction = direction || current.direction[ (index >= current.index ? 'next' : 'prev') ];
+ F.router = router || 'jumpto';
+
+ if (current.loop) {
+ if (index < 0) {
+ index = current.group.length + (index % current.group.length);
+ }
+
+ index = index % current.group.length;
+ }
+
+ if (current.group[ index ] !== undefined) {
+ F.cancel();
+
+ F._start(index);
+ }
+ },
+
+ // Center inside viewport and toggle position type to fixed or absolute if needed
+ reposition: function (e, onlyAbsolute) {
+ var current = F.current,
+ wrap = current ? current.wrap : null,
+ pos;
+
+ if (wrap) {
+ pos = F._getPosition(onlyAbsolute);
+
+ if (e && e.type === 'scroll') {
+ delete pos.position;
+
+ wrap.stop(true, true).animate(pos, 200);
+
+ } else {
+ wrap.css(pos);
+
+ current.pos = $.extend({}, current.dim, pos);
+ }
+ }
+ },
+
+ update: function (e) {
+ var type = (e && e.type),
+ anyway = !type || type === 'orientationchange';
+
+ if (anyway) {
+ clearTimeout(didUpdate);
+
+ didUpdate = null;
+ }
+
+ if (!F.isOpen || didUpdate) {
+ return;
+ }
+
+ didUpdate = setTimeout(function() {
+ var current = F.current;
+
+ if (!current || F.isClosing) {
+ return;
+ }
+
+ F.wrap.removeClass('fancybox-tmp');
+
+ if (anyway || type === 'load' || (type === 'resize' && current.autoResize)) {
+ F._setDimension();
+ }
+
+ if (!(type === 'scroll' && current.canShrink)) {
+ F.reposition(e);
+ }
+
+ F.trigger('onUpdate');
+
+ didUpdate = null;
+
+ }, (anyway && !isTouch ? 0 : 300));
+ },
+
+ // Shrink content to fit inside viewport or restore if resized
+ toggle: function ( action ) {
+ if (F.isOpen) {
+ F.current.fitToView = $.type(action) === "boolean" ? action : !F.current.fitToView;
+
+ // Help browser to restore document dimensions
+ if (isTouch) {
+ F.wrap.removeAttr('style').addClass('fancybox-tmp');
+
+ F.trigger('onUpdate');
+ }
+
+ F.update();
+ }
+ },
+
+ hideLoading: function () {
+ D.unbind('.loading');
+
+ $('#fancybox-loading').remove();
+ },
+
+ showLoading: function () {
+ var el, viewport;
+
+ F.hideLoading();
+
+ el = $('<div id="fancybox-loading"><div></div></div>').click(F.cancel).appendTo('body');
+
+ // If user will press the escape-button, the request will be canceled
+ D.bind('keydown.loading', function(e) {
+ if ((e.which || e.keyCode) === 27) {
+ e.preventDefault();
+
+ F.cancel();
+ }
+ });
+
+ if (!F.defaults.fixed) {
+ viewport = F.getViewport();
+
+ el.css({
+ position : 'absolute',
+ top : (viewport.h * 0.5) + viewport.y,
+ left : (viewport.w * 0.5) + viewport.x
+ });
+ }
+ },
+
+ getViewport: function () {
+ var locked = (F.current && F.current.locked) || false,
+ rez = {
+ x: W.scrollLeft(),
+ y: W.scrollTop()
+ };
+
+ if (locked) {
+ rez.w = locked[0].clientWidth;
+ rez.h = locked[0].clientHeight;
+
+ } else {
+ // See http://bugs.jquery.com/ticket/6724
+ rez.w = isTouch && window.innerWidth ? window.innerWidth : W.width();
+ rez.h = isTouch && window.innerHeight ? window.innerHeight : W.height();
+ }
+
+ return rez;
+ },
+
+ // Unbind the keyboard / clicking actions
+ unbindEvents: function () {
+ if (F.wrap && isQuery(F.wrap)) {
+ F.wrap.unbind('.fb');
+ }
+
+ D.unbind('.fb');
+ W.unbind('.fb');
+ },
+
+ bindEvents: function () {
+ var current = F.current,
+ keys;
+
+ if (!current) {
+ return;
+ }
+
+ // Changing document height on iOS devices triggers a 'resize' event,
+ // that can change document height... repeating infinitely
+ W.bind('orientationchange.fb' + (isTouch ? '' : ' resize.fb') + (current.autoCenter && !current.locked ? ' scroll.fb' : ''), F.update);
+
+ keys = current.keys;
+
+ if (keys) {
+ D.bind('keydown.fb', function (e) {
+ var code = e.which || e.keyCode,
+ target = e.target || e.srcElement;
+
+ // Skip esc key if loading, because showLoading will cancel preloading
+ if (code === 27 && F.coming) {
+ return false;
+ }
+
+ // Ignore key combinations and key events within form elements
+ if (!e.ctrlKey && !e.altKey && !e.shiftKey && !e.metaKey && !(target && (target.type || $(target).is('[contenteditable]')))) {
+ $.each(keys, function(i, val) {
+ if (current.group.length > 1 && val[ code ] !== undefined) {
+ F[ i ]( val[ code ] );
+
+ e.preventDefault();
+ return false;
+ }
+
+ if ($.inArray(code, val) > -1) {
+ F[ i ] ();
+
+ e.preventDefault();
+ return false;
+ }
+ });
+ }
+ });
+ }
+
+ if ($.fn.mousewheel && current.mouseWheel) {
+ F.wrap.bind('mousewheel.fb', function (e, delta, deltaX, deltaY) {
+ var target = e.target || null,
+ parent = $(target),
+ canScroll = false;
+
+ while (parent.length) {
+ if (canScroll || parent.is('.fancybox-skin') || parent.is('.fancybox-wrap')) {
+ break;
+ }
+
+ canScroll = isScrollable( parent[0] );
+ parent = $(parent).parent();
+ }
+
+ if (delta !== 0 && !canScroll) {
+ if (F.group.length > 1 && !current.canShrink) {
+ if (deltaY > 0 || deltaX > 0) {
+ F.prev( deltaY > 0 ? 'down' : 'left' );
+
+ } else if (deltaY < 0 || deltaX < 0) {
+ F.next( deltaY < 0 ? 'up' : 'right' );
+ }
+
+ e.preventDefault();
+ }
+ }
+ });
+ }
+ },
+
+ trigger: function (event, o) {
+ var ret, obj = o || F.coming || F.current;
+
+ if (!obj) {
+ return;
+ }
+
+ if ($.isFunction( obj[event] )) {
+ ret = obj[event].apply(obj, Array.prototype.slice.call(arguments, 1));
+ }
+
+ if (ret === false) {
+ return false;
+ }
+
+ if (obj.helpers) {
+ $.each(obj.helpers, function (helper, opts) {
+ if (opts && F.helpers[helper] && $.isFunction(F.helpers[helper][event])) {
+ F.helpers[helper][event]($.extend(true, {}, F.helpers[helper].defaults, opts), obj);
+ }
+ });
+ }
+
+ D.trigger(event);
+ },
+
+ isImage: function (str) {
+ return isString(str) && str.match(/(^data:image\/.*,)|(\.(jp(e|g|eg)|gif|png|bmp|webp|svg)((\?|#).*)?$)/i);
+ },
+
+ isSWF: function (str) {
+ return isString(str) && str.match(/\.(swf)((\?|#).*)?$/i);
+ },
+
+ _start: function (index) {
+ var coming = {},
+ obj,
+ href,
+ type,
+ margin,
+ padding;
+
+ index = getScalar( index );
+ obj = F.group[ index ] || null;
+
+ if (!obj) {
+ return false;
+ }
+
+ coming = $.extend(true, {}, F.opts, obj);
+
+ // Convert margin and padding properties to array - top, right, bottom, left
+ margin = coming.margin;
+ padding = coming.padding;
+
+ if ($.type(margin) === 'number') {
+ coming.margin = [margin, margin, margin, margin];
+ }
+
+ if ($.type(padding) === 'number') {
+ coming.padding = [padding, padding, padding, padding];
+ }
+
+ // 'modal' propery is just a shortcut
+ if (coming.modal) {
+ $.extend(true, coming, {
+ closeBtn : false,
+ closeClick : false,
+ nextClick : false,
+ arrows : false,
+ mouseWheel : false,
+ keys : null,
+ helpers: {
+ overlay : {
+ closeClick : false
+ }
+ }
+ });
+ }
+
+ // 'autoSize' property is a shortcut, too
+ if (coming.autoSize) {
+ coming.autoWidth = coming.autoHeight = true;
+ }
+
+ if (coming.width === 'auto') {
+ coming.autoWidth = true;
+ }
+
+ if (coming.height === 'auto') {
+ coming.autoHeight = true;
+ }
+
+ /*
+ * Add reference to the group, so it`s possible to access from callbacks, example:
+ * afterLoad : function() {
+ * this.title = 'Image ' + (this.index + 1) + ' of ' + this.group.length + (this.title ? ' - ' + this.title : '');
+ * }
+ */
+
+ coming.group = F.group;
+ coming.index = index;
+
+ // Give a chance for callback or helpers to update coming item (type, title, etc)
+ F.coming = coming;
+
+ if (false === F.trigger('beforeLoad')) {
+ F.coming = null;
+
+ return;
+ }
+
+ type = coming.type;
+ href = coming.href;
+
+ if (!type) {
+ F.coming = null;
+
+ //If we can not determine content type then drop silently or display next/prev item if looping through gallery
+ if (F.current && F.router && F.router !== 'jumpto') {
+ F.current.index = index;
+
+ return F[ F.router ]( F.direction );
+ }
+
+ return false;
+ }
+
+ F.isActive = true;
+
+ if (type === 'image' || type === 'swf') {
+ coming.autoHeight = coming.autoWidth = false;
+ coming.scrolling = 'visible';
+ }
+
+ if (type === 'image') {
+ coming.aspectRatio = true;
+ }
+
+ if (type === 'iframe' && isTouch) {
+ coming.scrolling = 'scroll';
+ }
+
+ // Build the neccessary markup
+ coming.wrap = $(coming.tpl.wrap).addClass('fancybox-' + (isTouch ? 'mobile' : 'desktop') + ' fancybox-type-' + type + ' fancybox-tmp ' + coming.wrapCSS).appendTo( coming.parent || 'body' );
+
+ $.extend(coming, {
+ skin : $('.fancybox-skin', coming.wrap),
+ outer : $('.fancybox-outer', coming.wrap),
+ inner : $('.fancybox-inner', coming.wrap)
+ });
+
+ $.each(["Top", "Right", "Bottom", "Left"], function(i, v) {
+ coming.skin.css('padding' + v, getValue(coming.padding[ i ]));
+ });
+
+ F.trigger('onReady');
+
+ // Check before try to load; 'inline' and 'html' types need content, others - href
+ if (type === 'inline' || type === 'html') {
+ if (!coming.content || !coming.content.length) {
+ return F._error( 'content' );
+ }
+
+ } else if (!href) {
+ return F._error( 'href' );
+ }
+
+ if (type === 'image') {
+ F._loadImage();
+
+ } else if (type === 'ajax') {
+ F._loadAjax();
+
+ } else if (type === 'iframe') {
+ F._loadIframe();
+
+ } else {
+ F._afterLoad();
+ }
+ },
+
+ _error: function ( type ) {
+ $.extend(F.coming, {
+ type : 'html',
+ autoWidth : true,
+ autoHeight : true,
+ minWidth : 0,
+ minHeight : 0,
+ scrolling : 'no',
+ hasError : type,
+ content : F.coming.tpl.error
+ });
+
+ F._afterLoad();
+ },
+
+ _loadImage: function () {
+ // Reset preload image so it is later possible to check "complete" property
+ var img = F.imgPreload = new Image();
+
+ img.onload = function () {
+ this.onload = this.onerror = null;
+
+ F.coming.width = this.width / F.opts.pixelRatio;
+ F.coming.height = this.height / F.opts.pixelRatio;
+
+ F._afterLoad();
+ };
+
+ img.onerror = function () {
+ this.onload = this.onerror = null;
+
+ F._error( 'image' );
+ };
+
+ img.src = F.coming.href;
+
+ if (img.complete !== true) {
+ F.showLoading();
+ }
+ },
+
+ _loadAjax: function () {
+ var coming = F.coming;
+
+ F.showLoading();
+
+ F.ajaxLoad = $.ajax($.extend({}, coming.ajax, {
+ url: coming.href,
+ error: function (jqXHR, textStatus) {
+ if (F.coming && textStatus !== 'abort') {
+ F._error( 'ajax', jqXHR );
+
+ } else {
+ F.hideLoading();
+ }
+ },
+ success: function (data, textStatus) {
+ if (textStatus === 'success') {
+ coming.content = data;
+
+ F._afterLoad();
+ }
+ }
+ }));
+ },
+
+ _loadIframe: function() {
+ var coming = F.coming,
+ iframe = $(coming.tpl.iframe.replace(/\{rnd\}/g, new Date().getTime()))
+ .attr('scrolling', isTouch ? 'auto' : coming.iframe.scrolling)
+ .attr('src', coming.href);
+
+ // This helps IE
+ $(coming.wrap).bind('onReset', function () {
+ try {
+ $(this).find('iframe').hide().attr('src', '//about:blank').end().empty();
+ } catch (e) {}
+ });
+
+ if (coming.iframe.preload) {
+ F.showLoading();
+
+ iframe.one('load', function() {
+ $(this).data('ready', 1);
+
+ // iOS will lose scrolling if we resize
+ if (!isTouch) {
+ $(this).bind('load.fb', F.update);
+ }
+
+ // Without this trick:
+ // - iframe won't scroll on iOS devices
+ // - IE7 sometimes displays empty iframe
+ $(this).parents('.fancybox-wrap').width('100%').removeClass('fancybox-tmp').show();
+
+ F._afterLoad();
+ });
+ }
+
+ coming.content = iframe.appendTo( coming.inner );
+
+ if (!coming.iframe.preload) {
+ F._afterLoad();
+ }
+ },
+
+ _preloadImages: function() {
+ var group = F.group,
+ current = F.current,
+ len = group.length,
+ cnt = current.preload ? Math.min(current.preload, len - 1) : 0,
+ item,
+ i;
+
+ for (i = 1; i <= cnt; i += 1) {
+ item = group[ (current.index + i ) % len ];
+
+ if (item.type === 'image' && item.href) {
+ new Image().src = item.href;
+ }
+ }
+ },
+
+ _afterLoad: function () {
+ var coming = F.coming,
+ previous = F.current,
+ placeholder = 'fancybox-placeholder',
+ current,
+ content,
+ type,
+ scrolling,
+ href,
+ embed;
+
+ F.hideLoading();
+
+ if (!coming || F.isActive === false) {
+ return;
+ }
+
+ if (false === F.trigger('afterLoad', coming, previous)) {
+ coming.wrap.stop(true).trigger('onReset').remove();
+
+ F.coming = null;
+
+ return;
+ }
+
+ if (previous) {
+ F.trigger('beforeChange', previous);
+
+ previous.wrap.stop(true).removeClass('fancybox-opened')
+ .find('.fancybox-item, .fancybox-nav')
+ .remove();
+ }
+
+ F.unbindEvents();
+
+ current = coming;
+ content = coming.content;
+ type = coming.type;
+ scrolling = coming.scrolling;
+
+ $.extend(F, {
+ wrap : current.wrap,
+ skin : current.skin,
+ outer : current.outer,
+ inner : current.inner,
+ current : current,
+ previous : previous
+ });
+
+ href = current.href;
+
+ switch (type) {
+ case 'inline':
+ case 'ajax':
+ case 'html':
+ if (current.selector) {
+ content = $('<div>').html(content).find(current.selector);
+
+ } else if (isQuery(content)) {
+ if (!content.data(placeholder)) {
+ content.data(placeholder, $('<div class="' + placeholder + '"></div>').insertAfter( content ).hide() );
+ }
+
+ content = content.show().detach();
+
+ current.wrap.bind('onReset', function () {
+ if ($(this).find(content).length) {
+ content.hide().replaceAll( content.data(placeholder) ).data(placeholder, false);
+ }
+ });
+ }
+ break;
+
+ case 'image':
+ content = current.tpl.image.replace('{href}', href);
+ break;
+
+ case 'swf':
+ content = '<object id="fancybox-swf" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="100%" height="100%"><param name="movie" value="' + href + '"></param>';
+ embed = '';
+
+ $.each(current.swf, function(name, val) {
+ content += '<param name="' + name + '" value="' + val + '"></param>';
+ embed += ' ' + name + '="' + val + '"';
+ });
+
+ content += '<embed src="' + href + '" type="application/x-shockwave-flash" width="100%" height="100%"' + embed + '></embed></object>';
+ break;
+ }
+
+ if (!(isQuery(content) && content.parent().is(current.inner))) {
+ current.inner.append( content );
+ }
+
+ // Give a chance for helpers or callbacks to update elements
+ F.trigger('beforeShow');
+
+ // Set scrolling before calculating dimensions
+ current.inner.css('overflow', scrolling === 'yes' ? 'scroll' : (scrolling === 'no' ? 'hidden' : scrolling));
+
+ // Set initial dimensions and start position
+ F._setDimension();
+
+ F.reposition();
+
+ F.isOpen = false;
+ F.coming = null;
+
+ F.bindEvents();
+
+ if (!F.isOpened) {
+ $('.fancybox-wrap').not( current.wrap ).stop(true).trigger('onReset').remove();
+
+ } else if (previous.prevMethod) {
+ F.transitions[ previous.prevMethod ]();
+ }
+
+ F.transitions[ F.isOpened ? current.nextMethod : current.openMethod ]();
+
+ F._preloadImages();
+ },
+
+ _setDimension: function () {
+ var viewport = F.getViewport(),
+ steps = 0,
+ canShrink = false,
+ canExpand = false,
+ wrap = F.wrap,
+ skin = F.skin,
+ inner = F.inner,
+ current = F.current,
+ width = current.width,
+ height = current.height,
+ minWidth = current.minWidth,
+ minHeight = current.minHeight,
+ maxWidth = current.maxWidth,
+ maxHeight = current.maxHeight,
+ scrolling = current.scrolling,
+ scrollOut = current.scrollOutside ? current.scrollbarWidth : 0,
+ margin = current.margin,
+ wMargin = getScalar(margin[1] + margin[3]),
+ hMargin = getScalar(margin[0] + margin[2]),
+ wPadding,
+ hPadding,
+ wSpace,
+ hSpace,
+ origWidth,
+ origHeight,
+ origMaxWidth,
+ origMaxHeight,
+ ratio,
+ width_,
+ height_,
+ maxWidth_,
+ maxHeight_,
+ iframe,
+ body;
+
+ // Reset dimensions so we could re-check actual size
+ wrap.add(skin).add(inner).width('auto').height('auto').removeClass('fancybox-tmp');
+
+ wPadding = getScalar(skin.outerWidth(true) - skin.width());
+ hPadding = getScalar(skin.outerHeight(true) - skin.height());
+
+ // Any space between content and viewport (margin, padding, border, title)
+ wSpace = wMargin + wPadding;
+ hSpace = hMargin + hPadding;
+
+ origWidth = isPercentage(width) ? (viewport.w - wSpace) * getScalar(width) / 100 : width;
+ origHeight = isPercentage(height) ? (viewport.h - hSpace) * getScalar(height) / 100 : height;
+
+ if (current.type === 'iframe') {
+ iframe = current.content;
+
+ if (current.autoHeight && iframe.data('ready') === 1) {
+ try {
+ if (iframe[0].contentWindow.document.location) {
+ inner.width( origWidth ).height(9999);
+
+ body = iframe.contents().find('body');
+
+ if (scrollOut) {
+ body.css('overflow-x', 'hidden');
+ }
+
+ origHeight = body.outerHeight(true);
+ }
+
+ } catch (e) {}
+ }
+
+ } else if (current.autoWidth || current.autoHeight) {
+ inner.addClass( 'fancybox-tmp' );
+
+ // Set width or height in case we need to calculate only one dimension
+ if (!current.autoWidth) {
+ inner.width( origWidth );
+ }
+
+ if (!current.autoHeight) {
+ inner.height( origHeight );
+ }
+
+ if (current.autoWidth) {
+ origWidth = inner.width();
+ }
+
+ if (current.autoHeight) {
+ origHeight = inner.height();
+ }
+
+ inner.removeClass( 'fancybox-tmp' );
+ }
+
+ width = getScalar( origWidth );
+ height = getScalar( origHeight );
+
+ ratio = origWidth / origHeight;
+
+ // Calculations for the content
+ minWidth = getScalar(isPercentage(minWidth) ? getScalar(minWidth, 'w') - wSpace : minWidth);
+ maxWidth = getScalar(isPercentage(maxWidth) ? getScalar(maxWidth, 'w') - wSpace : maxWidth);
+
+ minHeight = getScalar(isPercentage(minHeight) ? getScalar(minHeight, 'h') - hSpace : minHeight);
+ maxHeight = getScalar(isPercentage(maxHeight) ? getScalar(maxHeight, 'h') - hSpace : maxHeight);
+
+ // These will be used to determine if wrap can fit in the viewport
+ origMaxWidth = maxWidth;
+ origMaxHeight = maxHeight;
+
+ if (current.fitToView) {
+ maxWidth = Math.min(viewport.w - wSpace, maxWidth);
+ maxHeight = Math.min(viewport.h - hSpace, maxHeight);
+ }
+
+ maxWidth_ = viewport.w - wMargin;
+ maxHeight_ = viewport.h - hMargin;
+
+ if (current.aspectRatio) {
+ if (width > maxWidth) {
+ width = maxWidth;
+ height = getScalar(width / ratio);
+ }
+
+ if (height > maxHeight) {
+ height = maxHeight;
+ width = getScalar(height * ratio);
+ }
+
+ if (width < minWidth) {
+ width = minWidth;
+ height = getScalar(width / ratio);
+ }
+
+ if (height < minHeight) {
+ height = minHeight;
+ width = getScalar(height * ratio);
+ }
+
+ } else {
+ width = Math.max(minWidth, Math.min(width, maxWidth));
+
+ if (current.autoHeight && current.type !== 'iframe') {
+ inner.width( width );
+
+ height = inner.height();
+ }
+
+ height = Math.max(minHeight, Math.min(height, maxHeight));
+ }
+
+ // Try to fit inside viewport (including the title)
+ if (current.fitToView) {
+ inner.width( width ).height( height );
+
+ wrap.width( width + wPadding );
+
+ // Real wrap dimensions
+ width_ = wrap.width();
+ height_ = wrap.height();
+
+ if (current.aspectRatio) {
+ while ((width_ > maxWidth_ || height_ > maxHeight_) && width > minWidth && height > minHeight) {
+ if (steps++ > 19) {
+ break;
+ }
+
+ height = Math.max(minHeight, Math.min(maxHeight, height - 10));
+ width = getScalar(height * ratio);
+
+ if (width < minWidth) {
+ width = minWidth;
+ height = getScalar(width / ratio);
+ }
+
+ if (width > maxWidth) {
+ width = maxWidth;
+ height = getScalar(width / ratio);
+ }
+
+ inner.width( width ).height( height );
+
+ wrap.width( width + wPadding );
+
+ width_ = wrap.width();
+ height_ = wrap.height();
+ }
+
+ } else {
+ width = Math.max(minWidth, Math.min(width, width - (width_ - maxWidth_)));
+ height = Math.max(minHeight, Math.min(height, height - (height_ - maxHeight_)));
+ }
+ }
+
+ if (scrollOut && scrolling === 'auto' && height < origHeight && (width + wPadding + scrollOut) < maxWidth_) {
+ width += scrollOut;
+ }
+
+ inner.width( width ).height( height );
+
+ wrap.width( width + wPadding );
+
+ width_ = wrap.width();
+ height_ = wrap.height();
+
+ canShrink = (width_ > maxWidth_ || height_ > maxHeight_) && width > minWidth && height > minHeight;
+ canExpand = current.aspectRatio ? (width < origMaxWidth && height < origMaxHeight && width < origWidth && height < origHeight) : ((width < origMaxWidth || height < origMaxHeight) && (width < origWidth || height < origHeight));
+
+ $.extend(current, {
+ dim : {
+ width : getValue( width_ ),
+ height : getValue( height_ )
+ },
+ origWidth : origWidth,
+ origHeight : origHeight,
+ canShrink : canShrink,
+ canExpand : canExpand,
+ wPadding : wPadding,
+ hPadding : hPadding,
+ wrapSpace : height_ - skin.outerHeight(true),
+ skinSpace : skin.height() - height
+ });
+
+ if (!iframe && current.autoHeight && height > minHeight && height < maxHeight && !canExpand) {
+ inner.height('auto');
+ }
+ },
+
+ _getPosition: function (onlyAbsolute) {
+ var current = F.current,
+ viewport = F.getViewport(),
+ margin = current.margin,
+ width = F.wrap.width() + margin[1] + margin[3],
+ height = F.wrap.height() + margin[0] + margin[2],
+ rez = {
+ position: 'absolute',
+ top : margin[0],
+ left : margin[3]
+ };
+
+ if (current.autoCenter && current.fixed && !onlyAbsolute && height <= viewport.h && width <= viewport.w) {
+ rez.position = 'fixed';
+
+ } else if (!current.locked) {
+ rez.top += viewport.y;
+ rez.left += viewport.x;
+ }
+
+ rez.top = getValue(Math.max(rez.top, rez.top + ((viewport.h - height) * current.topRatio)));
+ rez.left = getValue(Math.max(rez.left, rez.left + ((viewport.w - width) * current.leftRatio)));
+
+ return rez;
+ },
+
+ _afterZoomIn: function () {
+ var current = F.current;
+
+ if (!current) {
+ return;
+ }
+
+ F.isOpen = F.isOpened = true;
+
+ F.wrap.css('overflow', 'visible').addClass('fancybox-opened');
+
+ F.update();
+
+ // Assign a click event
+ if ( current.closeClick || (current.nextClick && F.group.length > 1) ) {
+ F.inner.css('cursor', 'pointer').bind('click.fb', function(e) {
+ if (!$(e.target).is('a') && !$(e.target).parent().is('a')) {
+ e.preventDefault();
+
+ F[ current.closeClick ? 'close' : 'next' ]();
+ }
+ });
+ }
+
+ // Create a close button
+ if (current.closeBtn) {
+ $(current.tpl.closeBtn).appendTo(F.skin).bind('click.fb', function(e) {
+ e.preventDefault();
+
+ F.close();
+ });
+ }
+
+ // Create navigation arrows
+ if (current.arrows && F.group.length > 1) {
+ if (current.loop || current.index > 0) {
+ $(current.tpl.prev).appendTo(F.outer).bind('click.fb', F.prev);
+ }
+
+ if (current.loop || current.index < F.group.length - 1) {
+ $(current.tpl.next).appendTo(F.outer).bind('click.fb', F.next);
+ }
+ }
+
+ F.trigger('afterShow');
+
+ // Stop the slideshow if this is the last item
+ if (!current.loop && current.index === current.group.length - 1) {
+ F.play( false );
+
+ } else if (F.opts.autoPlay && !F.player.isActive) {
+ F.opts.autoPlay = false;
+
+ F.play();
+ }
+ },
+
+ _afterZoomOut: function ( obj ) {
+ obj = obj || F.current;
+
+ $('.fancybox-wrap').trigger('onReset').remove();
+
+ $.extend(F, {
+ group : {},
+ opts : {},
+ router : false,
+ current : null,
+ isActive : false,
+ isOpened : false,
+ isOpen : false,
+ isClosing : false,
+ wrap : null,
+ skin : null,
+ outer : null,
+ inner : null
+ });
+
+ F.trigger('afterClose', obj);
+ }
+ });
+
+ /*
+ * Default transitions
+ */
+
+ F.transitions = {
+ getOrigPosition: function () {
+ var current = F.current,
+ element = current.element,
+ orig = current.orig,
+ pos = {},
+ width = 50,
+ height = 50,
+ hPadding = current.hPadding,
+ wPadding = current.wPadding,
+ viewport = F.getViewport();
+
+ if (!orig && current.isDom && element.is(':visible')) {
+ orig = element.find('img:first');
+
+ if (!orig.length) {
+ orig = element;
+ }
+ }
+
+ if (isQuery(orig)) {
+ pos = orig.offset();
+
+ if (orig.is('img')) {
+ width = orig.outerWidth();
+ height = orig.outerHeight();
+ }
+
+ } else {
+ pos.top = viewport.y + (viewport.h - height) * current.topRatio;
+ pos.left = viewport.x + (viewport.w - width) * current.leftRatio;
+ }
+
+ if (F.wrap.css('position') === 'fixed' || current.locked) {
+ pos.top -= viewport.y;
+ pos.left -= viewport.x;
+ }
+
+ pos = {
+ top : getValue(pos.top - hPadding * current.topRatio),
+ left : getValue(pos.left - wPadding * current.leftRatio),
+ width : getValue(width + wPadding),
+ height : getValue(height + hPadding)
+ };
+
+ return pos;
+ },
+
+ step: function (now, fx) {
+ var ratio,
+ padding,
+ value,
+ prop = fx.prop,
+ current = F.current,
+ wrapSpace = current.wrapSpace,
+ skinSpace = current.skinSpace;
+
+ if (prop === 'width' || prop === 'height') {
+ ratio = fx.end === fx.start ? 1 : (now - fx.start) / (fx.end - fx.start);
+
+ if (F.isClosing) {
+ ratio = 1 - ratio;
+ }
+
+ padding = prop === 'width' ? current.wPadding : current.hPadding;
+ value = now - padding;
+
+ F.skin[ prop ]( getScalar( prop === 'width' ? value : value - (wrapSpace * ratio) ) );
+ F.inner[ prop ]( getScalar( prop === 'width' ? value : value - (wrapSpace * ratio) - (skinSpace * ratio) ) );
+ }
+ },
+
+ zoomIn: function () {
+ var current = F.current,
+ startPos = current.pos,
+ effect = current.openEffect,
+ elastic = effect === 'elastic',
+ endPos = $.extend({opacity : 1}, startPos);
+
+ // Remove "position" property that breaks older IE
+ delete endPos.position;
+
+ if (elastic) {
+ startPos = this.getOrigPosition();
+
+ if (current.openOpacity) {
+ startPos.opacity = 0.1;
+ }
+
+ } else if (effect === 'fade') {
+ startPos.opacity = 0.1;
+ }
+
+ F.wrap.css(startPos).animate(endPos, {
+ duration : effect === 'none' ? 0 : current.openSpeed,
+ easing : current.openEasing,
+ step : elastic ? this.step : null,
+ complete : F._afterZoomIn
+ });
+ },
+
+ zoomOut: function () {
+ var current = F.current,
+ effect = current.closeEffect,
+ elastic = effect === 'elastic',
+ endPos = {opacity : 0.1};
+
+ if (elastic) {
+ endPos = this.getOrigPosition();
+
+ if (current.closeOpacity) {
+ endPos.opacity = 0.1;
+ }
+ }
+
+ F.wrap.animate(endPos, {
+ duration : effect === 'none' ? 0 : current.closeSpeed,
+ easing : current.closeEasing,
+ step : elastic ? this.step : null,
+ complete : F._afterZoomOut
+ });
+ },
+
+ changeIn: function () {
+ var current = F.current,
+ effect = current.nextEffect,
+ startPos = current.pos,
+ endPos = { opacity : 1 },
+ direction = F.direction,
+ distance = 200,
+ field;
+
+ startPos.opacity = 0.1;
+
+ if (effect === 'elastic') {
+ field = direction === 'down' || direction === 'up' ? 'top' : 'left';
+
+ if (direction === 'down' || direction === 'right') {
+ startPos[ field ] = getValue(getScalar(startPos[ field ]) - distance);
+ endPos[ field ] = '+=' + distance + 'px';
+
+ } else {
+ startPos[ field ] = getValue(getScalar(startPos[ field ]) + distance);
+ endPos[ field ] = '-=' + distance + 'px';
+ }
+ }
+
+ // Workaround for http://bugs.jquery.com/ticket/12273
+ if (effect === 'none') {
+ F._afterZoomIn();
+
+ } else {
+ F.wrap.css(startPos).animate(endPos, {
+ duration : current.nextSpeed,
+ easing : current.nextEasing,
+ complete : F._afterZoomIn
+ });
+ }
+ },
+
+ changeOut: function () {
+ var previous = F.previous,
+ effect = previous.prevEffect,
+ endPos = { opacity : 0.1 },
+ direction = F.direction,
+ distance = 200;
+
+ if (effect === 'elastic') {
+ endPos[ direction === 'down' || direction === 'up' ? 'top' : 'left' ] = ( direction === 'up' || direction === 'left' ? '-' : '+' ) + '=' + distance + 'px';
+ }
+
+ previous.wrap.animate(endPos, {
+ duration : effect === 'none' ? 0 : previous.prevSpeed,
+ easing : previous.prevEasing,
+ complete : function () {
+ $(this).trigger('onReset').remove();
+ }
+ });
+ }
+ };
+
+ /*
+ * Overlay helper
+ */
+
+ F.helpers.overlay = {
+ defaults : {
+ closeClick : true, // if true, fancyBox will be closed when user clicks on the overlay
+ speedOut : 200, // duration of fadeOut animation
+ showEarly : true, // indicates if should be opened immediately or wait until the content is ready
+ css : {}, // custom CSS properties
+ locked : !isTouch, // if true, the content will be locked into overlay
+ fixed : true // if false, the overlay CSS position property will not be set to "fixed"
+ },
+
+ overlay : null, // current handle
+ fixed : false, // indicates if the overlay has position "fixed"
+ el : $('html'), // element that contains "the lock"
+
+ // Public methods
+ create : function(opts) {
+ opts = $.extend({}, this.defaults, opts);
+
+ if (this.overlay) {
+ this.close();
+ }
+
+ this.overlay = $('<div class="fancybox-overlay"></div>').appendTo( F.coming ? F.coming.parent : opts.parent );
+ this.fixed = false;
+
+ if (opts.fixed && F.defaults.fixed) {
+ this.overlay.addClass('fancybox-overlay-fixed');
+
+ this.fixed = true;
+ }
+ },
+
+ open : function(opts) {
+ var that = this;
+
+ opts = $.extend({}, this.defaults, opts);
+
+ if (this.overlay) {
+ this.overlay.unbind('.overlay').width('auto').height('auto');
+
+ } else {
+ this.create(opts);
+ }
+
+ if (!this.fixed) {
+ W.bind('resize.overlay', $.proxy( this.update, this) );
+
+ this.update();
+ }
+
+ if (opts.closeClick) {
+ this.overlay.bind('click.overlay', function(e) {
+ if ($(e.target).hasClass('fancybox-overlay')) {
+ if (F.isActive) {
+ F.close();
+ } else {
+ that.close();
+ }
+
+ return false;
+ }
+ });
+ }
+
+ this.overlay.css( opts.css ).show();
+ },
+
+ close : function() {
+ var scrollV, scrollH;
+
+ W.unbind('resize.overlay');
+
+ if (this.el.hasClass('fancybox-lock')) {
+ $('.fancybox-margin').removeClass('fancybox-margin');
+
+ scrollV = W.scrollTop();
+ scrollH = W.scrollLeft();
+
+ this.el.removeClass('fancybox-lock');
+
+ W.scrollTop( scrollV ).scrollLeft( scrollH );
+ }
+
+ $('.fancybox-overlay').remove().hide();
+
+ $.extend(this, {
+ overlay : null,
+ fixed : false
+ });
+ },
+
+ // Private, callbacks
+
+ update : function () {
+ var width = '100%', offsetWidth;
+
+ // Reset width/height so it will not mess
+ this.overlay.width(width).height('100%');
+
+ // jQuery does not return reliable result for IE
+ if (IE) {
+ offsetWidth = Math.max(document.documentElement.offsetWidth, document.body.offsetWidth);
+
+ if (D.width() > offsetWidth) {
+ width = D.width();
+ }
+
+ } else if (D.width() > W.width()) {
+ width = D.width();
+ }
+
+ this.overlay.width(width).height(D.height());
+ },
+
+ // This is where we can manipulate DOM, because later it would cause iframes to reload
+ onReady : function (opts, obj) {
+ var overlay = this.overlay;
+
+ $('.fancybox-overlay').stop(true, true);
+
+ if (!overlay) {
+ this.create(opts);
+ }
+
+ if (opts.locked && this.fixed && obj.fixed) {
+ if (!overlay) {
+ this.margin = D.height() > W.height() ? $('html').css('margin-right').replace("px", "") : false;
+ }
+
+ obj.locked = this.overlay.append( obj.wrap );
+ obj.fixed = false;
+ }
+
+ if (opts.showEarly === true) {
+ this.beforeShow.apply(this, arguments);
+ }
+ },
+
+ beforeShow : function(opts, obj) {
+ var scrollV, scrollH;
+
+ if (obj.locked) {
+ if (this.margin !== false) {
+ $('*').filter(function(){
+ return ($(this).css('position') === 'fixed' && !$(this).hasClass("fancybox-overlay") && !$(this).hasClass("fancybox-wrap") );
+ }).addClass('fancybox-margin');
+
+ this.el.addClass('fancybox-margin');
+ }
+
+ scrollV = W.scrollTop();
+ scrollH = W.scrollLeft();
+
+ this.el.addClass('fancybox-lock');
+
+ W.scrollTop( scrollV ).scrollLeft( scrollH );
+ }
+
+ this.open(opts);
+ },
+
+ onUpdate : function() {
+ if (!this.fixed) {
+ this.update();
+ }
+ },
+
+ afterClose: function (opts) {
+ // Remove overlay if exists and fancyBox is not opening
+ // (e.g., it is not being open using afterClose callback)
+ //if (this.overlay && !F.isActive) {
+ if (this.overlay && !F.coming) {
+ this.overlay.fadeOut(opts.speedOut, $.proxy( this.close, this ));
+ }
+ }
+ };
+
+ /*
+ * Title helper
+ */
+
+ F.helpers.title = {
+ defaults : {
+ type : 'float', // 'float', 'inside', 'outside' or 'over',
+ position : 'bottom' // 'top' or 'bottom'
+ },
+
+ beforeShow: function (opts) {
+ var current = F.current,
+ text = current.title,
+ type = opts.type,
+ title,
+ target;
+
+ if ($.isFunction(text)) {
+ text = text.call(current.element, current);
+ }
+
+ if (!isString(text) || $.trim(text) === '') {
+ return;
+ }
+
+ title = $('<div class="fancybox-title fancybox-title-' + type + '-wrap">' + text + '</div>');
+
+ switch (type) {
+ case 'inside':
+ target = F.skin;
+ break;
+
+ case 'outside':
+ target = F.wrap;
+ break;
+
+ case 'over':
+ target = F.inner;
+ break;
+
+ default: // 'float'
+ target = F.skin;
+
+ title.appendTo('body');
+
+ if (IE) {
+ title.width( title.width() );
+ }
+
+ title.wrapInner('<span class="child"></span>');
+
+ //Increase bottom margin so this title will also fit into viewport
+ F.current.margin[2] += Math.abs( getScalar(title.css('margin-bottom')) );
+ break;
+ }
+
+ title[ (opts.position === 'top' ? 'prependTo' : 'appendTo') ](target);
+ }
+ };
+
+ // jQuery plugin initialization
+ $.fn.fancybox = function (options) {
+ var index,
+ that = $(this),
+ selector = this.selector || '',
+ run = function(e) {
+ var what = $(this).blur(), idx = index, relType, relVal;
+
+ if (!(e.ctrlKey || e.altKey || e.shiftKey || e.metaKey) && !what.is('.fancybox-wrap')) {
+ relType = options.groupAttr || 'data-fancybox-group';
+ relVal = what.attr(relType);
+
+ if (!relVal) {
+ relType = 'rel';
+ relVal = what.get(0)[ relType ];
+ }
+
+ if (relVal && relVal !== '' && relVal !== 'nofollow') {
+ what = selector.length ? $(selector) : that;
+ what = what.filter('[' + relType + '="' + relVal + '"]');
+ idx = what.index(this);
+ }
+
+ options.index = idx;
+
+ // Stop an event from bubbling if everything is fine
+ if (F.open(what, options) !== false) {
+ e.preventDefault();
+ }
+ }
+ };
+
+ options = options || {};
+ index = options.index || 0;
+
+ if (!selector || options.live === false) {
+ that.unbind('click.fb-start').bind('click.fb-start', run);
+
+ } else {
+ D.undelegate(selector, 'click.fb-start').delegate(selector + ":not('.fancybox-item, .fancybox-nav')", 'click.fb-start', run);
+ }
+
+ this.filter('[data-fancybox-start=1]').trigger('click');
+
+ return this;
+ };
+
+ // Tests that need a body at doc ready
+ D.ready(function() {
+ var w1, w2;
+
+ if ( $.scrollbarWidth === undefined ) {
+ // http://benalman.com/projects/jquery-misc-plugins/#scrollbarwidth
+ $.scrollbarWidth = function() {
+ var parent = $('<div style="width:50px;height:50px;overflow:auto"><div/></div>').appendTo('body'),
+ child = parent.children(),
+ width = child.innerWidth() - child.height( 99 ).innerWidth();
+
+ parent.remove();
+
+ return width;
+ };
+ }
+
+ if ( $.support.fixedPosition === undefined ) {
+ $.support.fixedPosition = (function() {
+ var elem = $('<div style="position:fixed;top:20px;"></div>').appendTo('body'),
+ fixed = ( elem[0].offsetTop === 20 || elem[0].offsetTop === 15 );
+
+ elem.remove();
+
+ return fixed;
+ }());
+ }
+
+ $.extend(F.defaults, {
+ scrollbarWidth : $.scrollbarWidth(),
+ fixed : $.support.fixedPosition,
+ parent : $('body')
+ });
+
+ //Get real width of page scroll-bar
+ w1 = $(window).width();
+
+ H.addClass('fancybox-lock-test');
+
+ w2 = $(window).width();
+
+ H.removeClass('fancybox-lock-test');
+
+ $("<style type='text/css'>.fancybox-margin{margin-right:" + (w2 - w1) + "px;}</style>").appendTo("head");
+ });
+
+}(window, document, jQuery));
\ No newline at end of file
--- /dev/null
+/*! fancyBox v2.1.5 fancyapps.com | fancyapps.com/fancybox/#license */
+(function(r,G,f,v){var J=f("html"),n=f(r),p=f(G),b=f.fancybox=function(){b.open.apply(this,arguments)},I=navigator.userAgent.match(/msie/i),B=null,s=G.createTouch!==v,t=function(a){return a&&a.hasOwnProperty&&a instanceof f},q=function(a){return a&&"string"===f.type(a)},E=function(a){return q(a)&&0<a.indexOf("%")},l=function(a,d){var e=parseInt(a,10)||0;d&&E(a)&&(e*=b.getViewport()[d]/100);return Math.ceil(e)},w=function(a,b){return l(a,b)+"px"};f.extend(b,{version:"2.1.5",defaults:{padding:15,margin:20,
+width:800,height:600,minWidth:100,minHeight:100,maxWidth:9999,maxHeight:9999,pixelRatio:1,autoSize:!0,autoHeight:!1,autoWidth:!1,autoResize:!0,autoCenter:!s,fitToView:!0,aspectRatio:!1,topRatio:0.5,leftRatio:0.5,scrolling:"auto",wrapCSS:"",arrows:!0,closeBtn:!0,closeClick:!1,nextClick:!1,mouseWheel:!0,autoPlay:!1,playSpeed:3E3,preload:3,modal:!1,loop:!0,ajax:{dataType:"html",headers:{"X-fancyBox":!0}},iframe:{scrolling:"auto",preload:!0},swf:{wmode:"transparent",allowfullscreen:"true",allowscriptaccess:"always"},
+keys:{next:{13:"left",34:"up",39:"left",40:"up"},prev:{8:"right",33:"down",37:"right",38:"down"},close:[27],play:[32],toggle:[70]},direction:{next:"left",prev:"right"},scrollOutside:!0,index:0,type:null,href:null,content:null,title:null,tpl:{wrap:'<div class="fancybox-wrap" tabIndex="-1"><div class="fancybox-skin"><div class="fancybox-outer"><div class="fancybox-inner"></div></div></div></div>',image:'<img class="fancybox-image" src="{href}" alt="" />',iframe:'<iframe id="fancybox-frame{rnd}" name="fancybox-frame{rnd}" class="fancybox-iframe" frameborder="0" vspace="0" hspace="0" webkitAllowFullScreen mozallowfullscreen allowFullScreen'+
+(I?' allowtransparency="true"':"")+"></iframe>",error:'<p class="fancybox-error">The requested content cannot be loaded.<br/>Please try again later.</p>',closeBtn:'<a title="Close" class="fancybox-item fancybox-close" href="javascript:;"></a>',next:'<a title="Next" class="fancybox-nav fancybox-next" href="javascript:;"><span></span></a>',prev:'<a title="Previous" class="fancybox-nav fancybox-prev" href="javascript:;"><span></span></a>'},openEffect:"fade",openSpeed:250,openEasing:"swing",openOpacity:!0,
+openMethod:"zoomIn",closeEffect:"fade",closeSpeed:250,closeEasing:"swing",closeOpacity:!0,closeMethod:"zoomOut",nextEffect:"elastic",nextSpeed:250,nextEasing:"swing",nextMethod:"changeIn",prevEffect:"elastic",prevSpeed:250,prevEasing:"swing",prevMethod:"changeOut",helpers:{overlay:!0,title:!0},onCancel:f.noop,beforeLoad:f.noop,afterLoad:f.noop,beforeShow:f.noop,afterShow:f.noop,beforeChange:f.noop,beforeClose:f.noop,afterClose:f.noop},group:{},opts:{},previous:null,coming:null,current:null,isActive:!1,
+isOpen:!1,isOpened:!1,wrap:null,skin:null,outer:null,inner:null,player:{timer:null,isActive:!1},ajaxLoad:null,imgPreload:null,transitions:{},helpers:{},open:function(a,d){if(a&&(f.isPlainObject(d)||(d={}),!1!==b.close(!0)))return f.isArray(a)||(a=t(a)?f(a).get():[a]),f.each(a,function(e,c){var k={},g,h,j,m,l;"object"===f.type(c)&&(c.nodeType&&(c=f(c)),t(c)?(k={href:c.data("fancybox-href")||c.attr("href"),title:c.data("fancybox-title")||c.attr("title"),isDom:!0,element:c},f.metadata&&f.extend(!0,k,
+c.metadata())):k=c);g=d.href||k.href||(q(c)?c:null);h=d.title!==v?d.title:k.title||"";m=(j=d.content||k.content)?"html":d.type||k.type;!m&&k.isDom&&(m=c.data("fancybox-type"),m||(m=(m=c.prop("class").match(/fancybox\.(\w+)/))?m[1]:null));q(g)&&(m||(b.isImage(g)?m="image":b.isSWF(g)?m="swf":"#"===g.charAt(0)?m="inline":q(c)&&(m="html",j=c)),"ajax"===m&&(l=g.split(/\s+/,2),g=l.shift(),l=l.shift()));j||("inline"===m?g?j=f(q(g)?g.replace(/.*(?=#[^\s]+$)/,""):g):k.isDom&&(j=c):"html"===m?j=g:!m&&(!g&&
+k.isDom)&&(m="inline",j=c));f.extend(k,{href:g,type:m,content:j,title:h,selector:l});a[e]=k}),b.opts=f.extend(!0,{},b.defaults,d),d.keys!==v&&(b.opts.keys=d.keys?f.extend({},b.defaults.keys,d.keys):!1),b.group=a,b._start(b.opts.index)},cancel:function(){var a=b.coming;a&&!1!==b.trigger("onCancel")&&(b.hideLoading(),b.ajaxLoad&&b.ajaxLoad.abort(),b.ajaxLoad=null,b.imgPreload&&(b.imgPreload.onload=b.imgPreload.onerror=null),a.wrap&&a.wrap.stop(!0,!0).trigger("onReset").remove(),b.coming=null,b.current||
+b._afterZoomOut(a))},close:function(a){b.cancel();!1!==b.trigger("beforeClose")&&(b.unbindEvents(),b.isActive&&(!b.isOpen||!0===a?(f(".fancybox-wrap").stop(!0).trigger("onReset").remove(),b._afterZoomOut()):(b.isOpen=b.isOpened=!1,b.isClosing=!0,f(".fancybox-item, .fancybox-nav").remove(),b.wrap.stop(!0,!0).removeClass("fancybox-opened"),b.transitions[b.current.closeMethod]())))},play:function(a){var d=function(){clearTimeout(b.player.timer)},e=function(){d();b.current&&b.player.isActive&&(b.player.timer=
+setTimeout(b.next,b.current.playSpeed))},c=function(){d();p.unbind(".player");b.player.isActive=!1;b.trigger("onPlayEnd")};if(!0===a||!b.player.isActive&&!1!==a){if(b.current&&(b.current.loop||b.current.index<b.group.length-1))b.player.isActive=!0,p.bind({"onCancel.player beforeClose.player":c,"onUpdate.player":e,"beforeLoad.player":d}),e(),b.trigger("onPlayStart")}else c()},next:function(a){var d=b.current;d&&(q(a)||(a=d.direction.next),b.jumpto(d.index+1,a,"next"))},prev:function(a){var d=b.current;
+d&&(q(a)||(a=d.direction.prev),b.jumpto(d.index-1,a,"prev"))},jumpto:function(a,d,e){var c=b.current;c&&(a=l(a),b.direction=d||c.direction[a>=c.index?"next":"prev"],b.router=e||"jumpto",c.loop&&(0>a&&(a=c.group.length+a%c.group.length),a%=c.group.length),c.group[a]!==v&&(b.cancel(),b._start(a)))},reposition:function(a,d){var e=b.current,c=e?e.wrap:null,k;c&&(k=b._getPosition(d),a&&"scroll"===a.type?(delete k.position,c.stop(!0,!0).animate(k,200)):(c.css(k),e.pos=f.extend({},e.dim,k)))},update:function(a){var d=
+a&&a.type,e=!d||"orientationchange"===d;e&&(clearTimeout(B),B=null);b.isOpen&&!B&&(B=setTimeout(function(){var c=b.current;c&&!b.isClosing&&(b.wrap.removeClass("fancybox-tmp"),(e||"load"===d||"resize"===d&&c.autoResize)&&b._setDimension(),"scroll"===d&&c.canShrink||b.reposition(a),b.trigger("onUpdate"),B=null)},e&&!s?0:300))},toggle:function(a){b.isOpen&&(b.current.fitToView="boolean"===f.type(a)?a:!b.current.fitToView,s&&(b.wrap.removeAttr("style").addClass("fancybox-tmp"),b.trigger("onUpdate")),
+b.update())},hideLoading:function(){p.unbind(".loading");f("#fancybox-loading").remove()},showLoading:function(){var a,d;b.hideLoading();a=f('<div id="fancybox-loading"><div></div></div>').click(b.cancel).appendTo("body");p.bind("keydown.loading",function(a){if(27===(a.which||a.keyCode))a.preventDefault(),b.cancel()});b.defaults.fixed||(d=b.getViewport(),a.css({position:"absolute",top:0.5*d.h+d.y,left:0.5*d.w+d.x}))},getViewport:function(){var a=b.current&&b.current.locked||!1,d={x:n.scrollLeft(),
+y:n.scrollTop()};a?(d.w=a[0].clientWidth,d.h=a[0].clientHeight):(d.w=s&&r.innerWidth?r.innerWidth:n.width(),d.h=s&&r.innerHeight?r.innerHeight:n.height());return d},unbindEvents:function(){b.wrap&&t(b.wrap)&&b.wrap.unbind(".fb");p.unbind(".fb");n.unbind(".fb")},bindEvents:function(){var a=b.current,d;a&&(n.bind("orientationchange.fb"+(s?"":" resize.fb")+(a.autoCenter&&!a.locked?" scroll.fb":""),b.update),(d=a.keys)&&p.bind("keydown.fb",function(e){var c=e.which||e.keyCode,k=e.target||e.srcElement;
+if(27===c&&b.coming)return!1;!e.ctrlKey&&(!e.altKey&&!e.shiftKey&&!e.metaKey&&(!k||!k.type&&!f(k).is("[contenteditable]")))&&f.each(d,function(d,k){if(1<a.group.length&&k[c]!==v)return b[d](k[c]),e.preventDefault(),!1;if(-1<f.inArray(c,k))return b[d](),e.preventDefault(),!1})}),f.fn.mousewheel&&a.mouseWheel&&b.wrap.bind("mousewheel.fb",function(d,c,k,g){for(var h=f(d.target||null),j=!1;h.length&&!j&&!h.is(".fancybox-skin")&&!h.is(".fancybox-wrap");)j=h[0]&&!(h[0].style.overflow&&"hidden"===h[0].style.overflow)&&
+(h[0].clientWidth&&h[0].scrollWidth>h[0].clientWidth||h[0].clientHeight&&h[0].scrollHeight>h[0].clientHeight),h=f(h).parent();if(0!==c&&!j&&1<b.group.length&&!a.canShrink){if(0<g||0<k)b.prev(0<g?"down":"left");else if(0>g||0>k)b.next(0>g?"up":"right");d.preventDefault()}}))},trigger:function(a,d){var e,c=d||b.coming||b.current;if(c){f.isFunction(c[a])&&(e=c[a].apply(c,Array.prototype.slice.call(arguments,1)));if(!1===e)return!1;c.helpers&&f.each(c.helpers,function(d,e){if(e&&b.helpers[d]&&f.isFunction(b.helpers[d][a]))b.helpers[d][a](f.extend(!0,
+{},b.helpers[d].defaults,e),c)});p.trigger(a)}},isImage:function(a){return q(a)&&a.match(/(^data:image\/.*,)|(\.(jp(e|g|eg)|gif|png|bmp|webp|svg)((\?|#).*)?$)/i)},isSWF:function(a){return q(a)&&a.match(/\.(swf)((\?|#).*)?$/i)},_start:function(a){var d={},e,c;a=l(a);e=b.group[a]||null;if(!e)return!1;d=f.extend(!0,{},b.opts,e);e=d.margin;c=d.padding;"number"===f.type(e)&&(d.margin=[e,e,e,e]);"number"===f.type(c)&&(d.padding=[c,c,c,c]);d.modal&&f.extend(!0,d,{closeBtn:!1,closeClick:!1,nextClick:!1,arrows:!1,
+mouseWheel:!1,keys:null,helpers:{overlay:{closeClick:!1}}});d.autoSize&&(d.autoWidth=d.autoHeight=!0);"auto"===d.width&&(d.autoWidth=!0);"auto"===d.height&&(d.autoHeight=!0);d.group=b.group;d.index=a;b.coming=d;if(!1===b.trigger("beforeLoad"))b.coming=null;else{c=d.type;e=d.href;if(!c)return b.coming=null,b.current&&b.router&&"jumpto"!==b.router?(b.current.index=a,b[b.router](b.direction)):!1;b.isActive=!0;if("image"===c||"swf"===c)d.autoHeight=d.autoWidth=!1,d.scrolling="visible";"image"===c&&(d.aspectRatio=
+!0);"iframe"===c&&s&&(d.scrolling="scroll");d.wrap=f(d.tpl.wrap).addClass("fancybox-"+(s?"mobile":"desktop")+" fancybox-type-"+c+" fancybox-tmp "+d.wrapCSS).appendTo(d.parent||"body");f.extend(d,{skin:f(".fancybox-skin",d.wrap),outer:f(".fancybox-outer",d.wrap),inner:f(".fancybox-inner",d.wrap)});f.each(["Top","Right","Bottom","Left"],function(a,b){d.skin.css("padding"+b,w(d.padding[a]))});b.trigger("onReady");if("inline"===c||"html"===c){if(!d.content||!d.content.length)return b._error("content")}else if(!e)return b._error("href");
+"image"===c?b._loadImage():"ajax"===c?b._loadAjax():"iframe"===c?b._loadIframe():b._afterLoad()}},_error:function(a){f.extend(b.coming,{type:"html",autoWidth:!0,autoHeight:!0,minWidth:0,minHeight:0,scrolling:"no",hasError:a,content:b.coming.tpl.error});b._afterLoad()},_loadImage:function(){var a=b.imgPreload=new Image;a.onload=function(){this.onload=this.onerror=null;b.coming.width=this.width/b.opts.pixelRatio;b.coming.height=this.height/b.opts.pixelRatio;b._afterLoad()};a.onerror=function(){this.onload=
+this.onerror=null;b._error("image")};a.src=b.coming.href;!0!==a.complete&&b.showLoading()},_loadAjax:function(){var a=b.coming;b.showLoading();b.ajaxLoad=f.ajax(f.extend({},a.ajax,{url:a.href,error:function(a,e){b.coming&&"abort"!==e?b._error("ajax",a):b.hideLoading()},success:function(d,e){"success"===e&&(a.content=d,b._afterLoad())}}))},_loadIframe:function(){var a=b.coming,d=f(a.tpl.iframe.replace(/\{rnd\}/g,(new Date).getTime())).attr("scrolling",s?"auto":a.iframe.scrolling).attr("src",a.href);
+f(a.wrap).bind("onReset",function(){try{f(this).find("iframe").hide().attr("src","//about:blank").end().empty()}catch(a){}});a.iframe.preload&&(b.showLoading(),d.one("load",function(){f(this).data("ready",1);s||f(this).bind("load.fb",b.update);f(this).parents(".fancybox-wrap").width("100%").removeClass("fancybox-tmp").show();b._afterLoad()}));a.content=d.appendTo(a.inner);a.iframe.preload||b._afterLoad()},_preloadImages:function(){var a=b.group,d=b.current,e=a.length,c=d.preload?Math.min(d.preload,
+e-1):0,f,g;for(g=1;g<=c;g+=1)f=a[(d.index+g)%e],"image"===f.type&&f.href&&((new Image).src=f.href)},_afterLoad:function(){var a=b.coming,d=b.current,e,c,k,g,h;b.hideLoading();if(a&&!1!==b.isActive)if(!1===b.trigger("afterLoad",a,d))a.wrap.stop(!0).trigger("onReset").remove(),b.coming=null;else{d&&(b.trigger("beforeChange",d),d.wrap.stop(!0).removeClass("fancybox-opened").find(".fancybox-item, .fancybox-nav").remove());b.unbindEvents();e=a.content;c=a.type;k=a.scrolling;f.extend(b,{wrap:a.wrap,skin:a.skin,
+outer:a.outer,inner:a.inner,current:a,previous:d});g=a.href;switch(c){case "inline":case "ajax":case "html":a.selector?e=f("<div>").html(e).find(a.selector):t(e)&&(e.data("fancybox-placeholder")||e.data("fancybox-placeholder",f('<div class="fancybox-placeholder"></div>').insertAfter(e).hide()),e=e.show().detach(),a.wrap.bind("onReset",function(){f(this).find(e).length&&e.hide().replaceAll(e.data("fancybox-placeholder")).data("fancybox-placeholder",!1)}));break;case "image":e=a.tpl.image.replace("{href}",
+g);break;case "swf":e='<object id="fancybox-swf" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="100%" height="100%"><param name="movie" value="'+g+'"></param>',h="",f.each(a.swf,function(a,b){e+='<param name="'+a+'" value="'+b+'"></param>';h+=" "+a+'="'+b+'"'}),e+='<embed src="'+g+'" type="application/x-shockwave-flash" width="100%" height="100%"'+h+"></embed></object>"}(!t(e)||!e.parent().is(a.inner))&&a.inner.append(e);b.trigger("beforeShow");a.inner.css("overflow","yes"===k?"scroll":
+"no"===k?"hidden":k);b._setDimension();b.reposition();b.isOpen=!1;b.coming=null;b.bindEvents();if(b.isOpened){if(d.prevMethod)b.transitions[d.prevMethod]()}else f(".fancybox-wrap").not(a.wrap).stop(!0).trigger("onReset").remove();b.transitions[b.isOpened?a.nextMethod:a.openMethod]();b._preloadImages()}},_setDimension:function(){var a=b.getViewport(),d=0,e=!1,c=!1,e=b.wrap,k=b.skin,g=b.inner,h=b.current,c=h.width,j=h.height,m=h.minWidth,u=h.minHeight,n=h.maxWidth,p=h.maxHeight,s=h.scrolling,q=h.scrollOutside?
+h.scrollbarWidth:0,x=h.margin,y=l(x[1]+x[3]),r=l(x[0]+x[2]),v,z,t,C,A,F,B,D,H;e.add(k).add(g).width("auto").height("auto").removeClass("fancybox-tmp");x=l(k.outerWidth(!0)-k.width());v=l(k.outerHeight(!0)-k.height());z=y+x;t=r+v;C=E(c)?(a.w-z)*l(c)/100:c;A=E(j)?(a.h-t)*l(j)/100:j;if("iframe"===h.type){if(H=h.content,h.autoHeight&&1===H.data("ready"))try{H[0].contentWindow.document.location&&(g.width(C).height(9999),F=H.contents().find("body"),q&&F.css("overflow-x","hidden"),A=F.outerHeight(!0))}catch(G){}}else if(h.autoWidth||
+h.autoHeight)g.addClass("fancybox-tmp"),h.autoWidth||g.width(C),h.autoHeight||g.height(A),h.autoWidth&&(C=g.width()),h.autoHeight&&(A=g.height()),g.removeClass("fancybox-tmp");c=l(C);j=l(A);D=C/A;m=l(E(m)?l(m,"w")-z:m);n=l(E(n)?l(n,"w")-z:n);u=l(E(u)?l(u,"h")-t:u);p=l(E(p)?l(p,"h")-t:p);F=n;B=p;h.fitToView&&(n=Math.min(a.w-z,n),p=Math.min(a.h-t,p));z=a.w-y;r=a.h-r;h.aspectRatio?(c>n&&(c=n,j=l(c/D)),j>p&&(j=p,c=l(j*D)),c<m&&(c=m,j=l(c/D)),j<u&&(j=u,c=l(j*D))):(c=Math.max(m,Math.min(c,n)),h.autoHeight&&
+"iframe"!==h.type&&(g.width(c),j=g.height()),j=Math.max(u,Math.min(j,p)));if(h.fitToView)if(g.width(c).height(j),e.width(c+x),a=e.width(),y=e.height(),h.aspectRatio)for(;(a>z||y>r)&&(c>m&&j>u)&&!(19<d++);)j=Math.max(u,Math.min(p,j-10)),c=l(j*D),c<m&&(c=m,j=l(c/D)),c>n&&(c=n,j=l(c/D)),g.width(c).height(j),e.width(c+x),a=e.width(),y=e.height();else c=Math.max(m,Math.min(c,c-(a-z))),j=Math.max(u,Math.min(j,j-(y-r)));q&&("auto"===s&&j<A&&c+x+q<z)&&(c+=q);g.width(c).height(j);e.width(c+x);a=e.width();
+y=e.height();e=(a>z||y>r)&&c>m&&j>u;c=h.aspectRatio?c<F&&j<B&&c<C&&j<A:(c<F||j<B)&&(c<C||j<A);f.extend(h,{dim:{width:w(a),height:w(y)},origWidth:C,origHeight:A,canShrink:e,canExpand:c,wPadding:x,hPadding:v,wrapSpace:y-k.outerHeight(!0),skinSpace:k.height()-j});!H&&(h.autoHeight&&j>u&&j<p&&!c)&&g.height("auto")},_getPosition:function(a){var d=b.current,e=b.getViewport(),c=d.margin,f=b.wrap.width()+c[1]+c[3],g=b.wrap.height()+c[0]+c[2],c={position:"absolute",top:c[0],left:c[3]};d.autoCenter&&d.fixed&&
+!a&&g<=e.h&&f<=e.w?c.position="fixed":d.locked||(c.top+=e.y,c.left+=e.x);c.top=w(Math.max(c.top,c.top+(e.h-g)*d.topRatio));c.left=w(Math.max(c.left,c.left+(e.w-f)*d.leftRatio));return c},_afterZoomIn:function(){var a=b.current;a&&(b.isOpen=b.isOpened=!0,b.wrap.css("overflow","visible").addClass("fancybox-opened"),b.update(),(a.closeClick||a.nextClick&&1<b.group.length)&&b.inner.css("cursor","pointer").bind("click.fb",function(d){!f(d.target).is("a")&&!f(d.target).parent().is("a")&&(d.preventDefault(),
+b[a.closeClick?"close":"next"]())}),a.closeBtn&&f(a.tpl.closeBtn).appendTo(b.skin).bind("click.fb",function(a){a.preventDefault();b.close()}),a.arrows&&1<b.group.length&&((a.loop||0<a.index)&&f(a.tpl.prev).appendTo(b.outer).bind("click.fb",b.prev),(a.loop||a.index<b.group.length-1)&&f(a.tpl.next).appendTo(b.outer).bind("click.fb",b.next)),b.trigger("afterShow"),!a.loop&&a.index===a.group.length-1?b.play(!1):b.opts.autoPlay&&!b.player.isActive&&(b.opts.autoPlay=!1,b.play()))},_afterZoomOut:function(a){a=
+a||b.current;f(".fancybox-wrap").trigger("onReset").remove();f.extend(b,{group:{},opts:{},router:!1,current:null,isActive:!1,isOpened:!1,isOpen:!1,isClosing:!1,wrap:null,skin:null,outer:null,inner:null});b.trigger("afterClose",a)}});b.transitions={getOrigPosition:function(){var a=b.current,d=a.element,e=a.orig,c={},f=50,g=50,h=a.hPadding,j=a.wPadding,m=b.getViewport();!e&&(a.isDom&&d.is(":visible"))&&(e=d.find("img:first"),e.length||(e=d));t(e)?(c=e.offset(),e.is("img")&&(f=e.outerWidth(),g=e.outerHeight())):
+(c.top=m.y+(m.h-g)*a.topRatio,c.left=m.x+(m.w-f)*a.leftRatio);if("fixed"===b.wrap.css("position")||a.locked)c.top-=m.y,c.left-=m.x;return c={top:w(c.top-h*a.topRatio),left:w(c.left-j*a.leftRatio),width:w(f+j),height:w(g+h)}},step:function(a,d){var e,c,f=d.prop;c=b.current;var g=c.wrapSpace,h=c.skinSpace;if("width"===f||"height"===f)e=d.end===d.start?1:(a-d.start)/(d.end-d.start),b.isClosing&&(e=1-e),c="width"===f?c.wPadding:c.hPadding,c=a-c,b.skin[f](l("width"===f?c:c-g*e)),b.inner[f](l("width"===
+f?c:c-g*e-h*e))},zoomIn:function(){var a=b.current,d=a.pos,e=a.openEffect,c="elastic"===e,k=f.extend({opacity:1},d);delete k.position;c?(d=this.getOrigPosition(),a.openOpacity&&(d.opacity=0.1)):"fade"===e&&(d.opacity=0.1);b.wrap.css(d).animate(k,{duration:"none"===e?0:a.openSpeed,easing:a.openEasing,step:c?this.step:null,complete:b._afterZoomIn})},zoomOut:function(){var a=b.current,d=a.closeEffect,e="elastic"===d,c={opacity:0.1};e&&(c=this.getOrigPosition(),a.closeOpacity&&(c.opacity=0.1));b.wrap.animate(c,
+{duration:"none"===d?0:a.closeSpeed,easing:a.closeEasing,step:e?this.step:null,complete:b._afterZoomOut})},changeIn:function(){var a=b.current,d=a.nextEffect,e=a.pos,c={opacity:1},f=b.direction,g;e.opacity=0.1;"elastic"===d&&(g="down"===f||"up"===f?"top":"left","down"===f||"right"===f?(e[g]=w(l(e[g])-200),c[g]="+=200px"):(e[g]=w(l(e[g])+200),c[g]="-=200px"));"none"===d?b._afterZoomIn():b.wrap.css(e).animate(c,{duration:a.nextSpeed,easing:a.nextEasing,complete:b._afterZoomIn})},changeOut:function(){var a=
+b.previous,d=a.prevEffect,e={opacity:0.1},c=b.direction;"elastic"===d&&(e["down"===c||"up"===c?"top":"left"]=("up"===c||"left"===c?"-":"+")+"=200px");a.wrap.animate(e,{duration:"none"===d?0:a.prevSpeed,easing:a.prevEasing,complete:function(){f(this).trigger("onReset").remove()}})}};b.helpers.overlay={defaults:{closeClick:!0,speedOut:200,showEarly:!0,css:{},locked:!s,fixed:!0},overlay:null,fixed:!1,el:f("html"),create:function(a){a=f.extend({},this.defaults,a);this.overlay&&this.close();this.overlay=
+f('<div class="fancybox-overlay"></div>').appendTo(b.coming?b.coming.parent:a.parent);this.fixed=!1;a.fixed&&b.defaults.fixed&&(this.overlay.addClass("fancybox-overlay-fixed"),this.fixed=!0)},open:function(a){var d=this;a=f.extend({},this.defaults,a);this.overlay?this.overlay.unbind(".overlay").width("auto").height("auto"):this.create(a);this.fixed||(n.bind("resize.overlay",f.proxy(this.update,this)),this.update());a.closeClick&&this.overlay.bind("click.overlay",function(a){if(f(a.target).hasClass("fancybox-overlay"))return b.isActive?
+b.close():d.close(),!1});this.overlay.css(a.css).show()},close:function(){var a,b;n.unbind("resize.overlay");this.el.hasClass("fancybox-lock")&&(f(".fancybox-margin").removeClass("fancybox-margin"),a=n.scrollTop(),b=n.scrollLeft(),this.el.removeClass("fancybox-lock"),n.scrollTop(a).scrollLeft(b));f(".fancybox-overlay").remove().hide();f.extend(this,{overlay:null,fixed:!1})},update:function(){var a="100%",b;this.overlay.width(a).height("100%");I?(b=Math.max(G.documentElement.offsetWidth,G.body.offsetWidth),
+p.width()>b&&(a=p.width())):p.width()>n.width()&&(a=p.width());this.overlay.width(a).height(p.height())},onReady:function(a,b){var e=this.overlay;f(".fancybox-overlay").stop(!0,!0);e||this.create(a);a.locked&&(this.fixed&&b.fixed)&&(e||(this.margin=p.height()>n.height()?f("html").css("margin-right").replace("px",""):!1),b.locked=this.overlay.append(b.wrap),b.fixed=!1);!0===a.showEarly&&this.beforeShow.apply(this,arguments)},beforeShow:function(a,b){var e,c;b.locked&&(!1!==this.margin&&(f("*").filter(function(){return"fixed"===
+f(this).css("position")&&!f(this).hasClass("fancybox-overlay")&&!f(this).hasClass("fancybox-wrap")}).addClass("fancybox-margin"),this.el.addClass("fancybox-margin")),e=n.scrollTop(),c=n.scrollLeft(),this.el.addClass("fancybox-lock"),n.scrollTop(e).scrollLeft(c));this.open(a)},onUpdate:function(){this.fixed||this.update()},afterClose:function(a){this.overlay&&!b.coming&&this.overlay.fadeOut(a.speedOut,f.proxy(this.close,this))}};b.helpers.title={defaults:{type:"float",position:"bottom"},beforeShow:function(a){var d=
+b.current,e=d.title,c=a.type;f.isFunction(e)&&(e=e.call(d.element,d));if(q(e)&&""!==f.trim(e)){d=f('<div class="fancybox-title fancybox-title-'+c+'-wrap">'+e+"</div>");switch(c){case "inside":c=b.skin;break;case "outside":c=b.wrap;break;case "over":c=b.inner;break;default:c=b.skin,d.appendTo("body"),I&&d.width(d.width()),d.wrapInner('<span class="child"></span>'),b.current.margin[2]+=Math.abs(l(d.css("margin-bottom")))}d["top"===a.position?"prependTo":"appendTo"](c)}}};f.fn.fancybox=function(a){var d,
+e=f(this),c=this.selector||"",k=function(g){var h=f(this).blur(),j=d,k,l;!g.ctrlKey&&(!g.altKey&&!g.shiftKey&&!g.metaKey)&&!h.is(".fancybox-wrap")&&(k=a.groupAttr||"data-fancybox-group",l=h.attr(k),l||(k="rel",l=h.get(0)[k]),l&&(""!==l&&"nofollow"!==l)&&(h=c.length?f(c):e,h=h.filter("["+k+'="'+l+'"]'),j=h.index(this)),a.index=j,!1!==b.open(h,a)&&g.preventDefault())};a=a||{};d=a.index||0;!c||!1===a.live?e.unbind("click.fb-start").bind("click.fb-start",k):p.undelegate(c,"click.fb-start").delegate(c+
+":not('.fancybox-item, .fancybox-nav')","click.fb-start",k);this.filter("[data-fancybox-start=1]").trigger("click");return this};p.ready(function(){var a,d;f.scrollbarWidth===v&&(f.scrollbarWidth=function(){var a=f('<div style="width:50px;height:50px;overflow:auto"><div/></div>').appendTo("body"),b=a.children(),b=b.innerWidth()-b.height(99).innerWidth();a.remove();return b});if(f.support.fixedPosition===v){a=f.support;d=f('<div style="position:fixed;top:20px;"></div>').appendTo("body");var e=20===
+d[0].offsetTop||15===d[0].offsetTop;d.remove();a.fixedPosition=e}f.extend(b.defaults,{scrollbarWidth:f.scrollbarWidth(),fixed:f.support.fixedPosition,parent:f("body")});a=f(r).width();J.addClass("fancybox-lock-test");d=f(r).width();J.removeClass("fancybox-lock-test");f("<style type='text/css'>.fancybox-margin{margin-right:"+(d-a)+"px;}</style>").appendTo("head")})})(window,document,jQuery);
\ No newline at end of file
--- /dev/null
+ </main><!--End of main-->
+ <div id="space"></div>
+ <footer class="main opensearchserver.ignore">
+ <div class="row">
+ <div class="small-12 small-centered large-uncentered large-4 columns small-text-center large-text-left">
+ <a href="#"><img alt="footer image"></a>
+ </div>
+ <?php get_template_part('parts/client-info-footer');?>
+ <div id="footer-widget" class="small-12 text-center medium-text-left small-centered medium-uncentered medium-6 large-4 columns">
+ <?php if (is_active_sidebar('sidebar-f')) :?>
+ <?php dynamic_sidebar('sidebar-f');?>
+ <?php endif;?>
+ <div class="social show-for-medium-up">
+ <ul>
+ <li><a class="facebook" href="#" target="_blank"></a></li>
+ <li><a class="insta" href="#" target="_blank"></a></li>
+ <li><a class="twit" href="#" target="_blank"></a></li>
+ <li><a class="tube" href="#" target="_blank"></a></li>
+ </ul>
+ </div>
+ </div>
+ </div>
+ </footer>
+
+ <div id="copyright" class="opensearchserver.ignore">
+ <span>Copyright © <?php echo date('Y');?> </span>
+ <span class="bullet"> • </span>
+ <span> Produced by <a target="_blank" href="http://www.gaslightmedia.com">Gaslight Media</a></span>
+ <span class="bullet"> • </span>
+ <span> All Rights Reserved.</span>
+ </div>
+ </div><!--/#page-wrapper-->
+ <a class="exit-off-canvas"></a>
+ </div><!--End of inner-wrap-->
+ </div><!--End of off-canvas-->
+ <?php wp_footer();?>
+<script charset="utf-8" type="text/javascript">var switchTo5x=true;</script>
+<script charset="utf-8" type="text/javascript" src="http://w.sharethis.com/button/buttons.js"></script>
+<script charset="utf-8" type="text/javascript">stLight.options({"publisher":"wp.c3d3647e-de70-4780-b71d-6b739fad685a"});var st_type="wordpress4.3.1";</script>
+ </body>
+</html>
--- /dev/null
+<?php get_header(); ?>
+<main class="page-front">
+ <?php get_template_part('parts/slide-show');?>
+ <div id="content-wrapper">
+ <div id="block-row" class="row" data-equalizer data-options="equalize_on_stack: false">
+ <?php
+ get_template_part('parts/glm-blocks');
+ ?>
+ </div>
+ <div class="row">
+ <div id="main-content" class="small-11 small-centered columns">
+ <?php if(have_posts()) : while(have_posts()): the_post();?>
+ <?php the_content();?>
+ <?php endwhile; else:?>
+ <p><?php _e('Sorry, no posts yet');?></p>
+ <?php endif;?>
+ </div>
+ </div>
+<!--
+ <div class="small-12 medium-6 large-4 columns small-text-center medium-text-left">
+ <?php //get_sidebar(); ?>
+ </div>
+-->
+ <div id="rotation">
+ <?php
+ //get_template_part('parts/event-feed');
+ ?>
+ <div id="event-container" class="row">
+ <h1 class="text-center">Feature Events</h1>
+ <div class="arrow small-1 column">
+ <a class="left" href="#"><img src="<?php echo esc_url( get_template_directory_uri() ); ?>/assets/arrow-left.jpg"></a>
+ </div>
+ <div class="small-10 columns">
+ <div class="row">
+ <div class="small-12 medium-6 large-4 columns">
+ <div class="event">
+ <a href="#"><img src="<?php echo esc_url( get_template_directory_uri() ); ?>/assets/block-image-wine-grapes.jpg"></a>
+ <a href="#"><h6>Event One</h6></a>
+ <span class="left">Oct.28</span>
+ <span class="right">More</span>
+ </div>
+ </div>
+ <div class="medium-6 large-4 columns show-for-medium-up">
+ <div class="event">
+ <a href="#"><img src="<?php echo esc_url( get_template_directory_uri() ); ?>/assets/block-image-wine-grapes.jpg"></a>
+ <a href="#"><h6>Event Two</h6></a>
+ <span class="left">Oct.30</span>
+ <span class="right">More</span>
+ </div>
+ </div>
+ <div class="large-4 columns show-for-large-up">
+ <div class="event">
+ <a href="#"><img src="<?php echo esc_url( get_template_directory_uri() ); ?>/assets/block-image-wine-grapes.jpg"></a>
+ <a href="#"><h6>Event Three</h6></a>
+ <span class="left">Oct.31</span>
+ <span class="right">More</span>
+ </div>
+ </div>
+ </div>
+ </div>
+ <div class="arrow small-1 column">
+ <a class="right" href="#"><img src="<?php echo esc_url( get_template_directory_uri() ); ?>/assets/arrow-right.jpg"></a>
+ </div>
+ </div>
+ </div>
+ <div class="row">
+ <div id="blog-feed" class="small-11 small-centered columns">
+ <?php get_template_part('parts/blog-feed-home'); ?>
+ </div>
+ </div>
+ </div>
+<?php get_footer(); ?>
--- /dev/null
+<?php
+require_once 'lib/menu-walker.php';
+require_once 'lib/navigation.php';
+
+DEFINE("REGIONS_PAGE_ID", 100);
+DEFINE("REGIONS_GROUP",468);
+DEFINE("FRONT_GROUP",470);
+
+$ancestorId = null;
+$includePages = array();
+$frontPageId = get_option('page_on_front');
+add_action('widgets_init', 'glm_quicksite_widget_init');
+
+if (!function_exists('glm_quicksite_widget_init')) {
+
+ function glm_quicksite_widget_init()
+ {
+ register_sidebar(array(
+ 'name' => __('Footer Widget Area'),
+ 'id' => 'sidebar-f',
+ 'description' => __('Widget Area in the Footer')
+ ));
+ register_sidebar(array(
+ 'name' => __('Slideshow'),
+ 'id' => 'slideshow',
+ 'description' => __('Meta Slider/Slideshow Area')
+ ));
+
+ }
+
+}
+
+/**
+ * Return the client info option for the given key
+ *
+ * @param type $name Name of the client info option to return
+ *
+ * @return string Option
+ */
+if (!function_exists('glm_get_clientinfo_option')) {
+ function glm_get_clientinfo_option($name)
+ {
+ $settings = get_option('glmclientinfo_settings');
+ $states = get_option('glmclientinfo_states');
+ if ($name == 'stateFull' && $settings['state']) {
+ return $states[$settings['state']];
+ }
+ if ($name == 'state2Full' && $settings['state2']) {
+ return $states[$settings['state2']];
+ }
+ return ($settings && $settings[$name])
+ ? $settings[$name]
+ : null;
+ }
+}
+
+add_filter( 'woocommerce_product_tabs', 'woo_product_tab_edits' );
+
+function woo_product_tab_edits( $tabs ) {
+ // to always have the WooCommerce product inquiry tab display
+ $tabs[ 'product_inquiry_tab' ] = array(
+ 'title' => __( 'Inquire about this tour', 'woocommerce' ),
+ 'callback' => 'woo_product_inquiry_content'
+ );
+ $tabs[ 'itinerary_tab' ] = array(
+ 'title' => __('Itinerary', 'woocommerce'),
+ 'callback' => 'woo_itinerary_content'
+ );
+ $tabs[ 'photos_tab' ] = array(
+ 'title' => __('Photos', 'woocommerce'),
+ 'callback' => 'woo_photos_content'
+ );
+ $tabs['description']['title'] = __('Details');
+ unset( $tabs[ 'reviews' ]);
+
+ unset( $tabs[ 'additional_information' ]);
+//
+ $tabs[ 'photos_tab' ][ 'priority' ] = 5;
+ $tabs[ 'description' ][ 'priority' ] = 10;
+ $tabs[ 'itinerary_tab' ][ 'priority' ] = 20;
+ $tabs[ 'html5_video' ][ 'priority' ] = 30;
+ $tabs[ 'product_inquiry_tab' ][ 'priority' ] = 40;
+
+ return $tabs;
+
+}
+
+function woo_product_inquiry_content() {
+ global $product;
+ echo do_shortcode('[gravityform id="3" title="true" description="true"]');
+}
+
+function woo_itinerary_content() {
+ global $product;
+ echo the_field('itinerary');
+}
+
+function woo_photos_content() {
+ global $product;
+
+ $attachment_ids = $product->get_gallery_attachment_ids();
+ echo "<ul class='product_gallery_images'>";
+ foreach( $attachment_ids as $attachment_id )
+ {
+ $full_url = wp_get_attachment_image_src( $attachment_id, 'full' )[0];
+
+ echo '<li class="products_image_container">
+ <a class="product_image_link" rel="gallery1" href="' . $full_url .'" style="background: url('.$full_url.')no-repeat center center;background-size: cover;">
+
+ </a>
+ </li>';
+ }
+ echo "</ul>";
+}
+
+add_filter( 'gform_field_value_product_name', 'gform_add_product_name_field' );
+function gform_add_product_name_field( $value ) {
+
+ global $product, $post, $woocommerce;
+
+ if ( ! empty($_GET) && isset($_GET)){
+ $title = $_GET['title'];
+ } else {
+ $id = $post->ID;
+ $product_meta = new WC_Product($id);
+ $title = $product_meta->get_title();
+ $title = str_replace(' ', '-', $title);
+ }
+
+ if ($title){
+ return $title;
+ } else {
+ return __( '(not set)', 'woocommerce' );
+ }
+}
+add_filter( 'gform_field_value_product_sku', 'gform_add_product_sku_field' );
+function gform_add_product_sku_field( $value ) {
+ global $product, $post, $woocommerce;
+
+ if ( ! empty($_GET) && isset($_GET)){
+ $sku = $_GET['sku'];
+ } else {
+ $id = $post->ID;
+ $product_meta = new WC_Product($id);
+ $sku = $product_meta->get_sku();
+ }
+
+ if ($sku){
+ return $sku;
+ } else {
+ return __( '(not set)', 'woocommerce' );
+ }
+}
+
+// custom form submission confirmation message
+function after_submission(){
+ echo '<div class="form-confirmation"><div class="confirmation-text"> Thanks for contacting us! We will get in touch with you shortly.</div></div>';
+}
+
+add_action( 'gform_after_submission_3', 'after_submission', 10, 2 );
+
+
+// remove pagination from products page
+add_filter( 'loop_shop_per_page', create_function( '$cols', 'return -1;' ) );
+
+/*---Move Product Title*/
+remove_action( 'woocommerce_single_product_summary', 'woocommerce_template_single_title', 5 );
+add_action( 'woocommerce_before_single_product_summary', 'woocommerce_template_single_title', 5 );
+
+remove_action( 'woocommerce_single_product_summary', 'woocommerce_template_single_excerpt', 10);
+add_action( 'woocommerce_single_product_summary', 'woocommerce_template_single_excerpt', 20);
+
+remove_action( 'woocommerce_single_product_summary', 'woocommerce_template_single_meta', 40);
+remove_action( 'woocommerce_after_single_product_summary', 'woocommerce_output_related_products' , 20);
+
+add_action('woocommerce_after_shop_loop_item_title','woocommerce_template_single_excerpt', 5);
+
+function shareThis(){
+ echo '<span class="st_sharethis" st_title="'. get_the_title().'" st_url="'. get_the_permalink() .'"></span>';
+}
+add_action( 'woocommerce_single_product_summary', 'shareThis', 20);
+
+add_theme_support('post-thumbnails');
+set_post_thumbnail_size(120, 100, true);
+
+
+/**
+ * glm_site_scripts
+ *
+ * Add the scripts that we'll need for any home page stuff
+ */
+function glm_site_scripts()
+{
+ wp_enqueue_script(
+ 'modernizr',
+ get_template_directory_uri() . '/js/modernizr/modernizr.min.js'
+ );
+ wp_enqueue_script('jquery');
+ wp_enqueue_script(
+ 'glm_foundation',
+ get_template_directory_uri() . '/js/app.js',
+ 'jquery',
+ '1.0',
+ true
+ );
+ wp_enqueue_style('jquery-style', '//ajax.googleapis.com/ajax/libs/jqueryui/1.8.2/themes/smoothness/jquery-ui.css');
+ wp_enqueue_script('jquery-ui-datepicker');
+ wp_enqueue_style('fancyStyle', get_template_directory_uri() . '/fancybox/source/jquery.fancybox.css?v=2.1.5');
+ wp_enqueue_style('fancyStyleButtons', get_template_directory_uri() . '/fancybox/source/helpers/jquery.fancybox-buttons.css?v=1.0.5');
+ wp_enqueue_style('fancyStyleThumbs', get_template_directory_uri() . '/fancybox/source/helpers/jquery.fancybox-thumbs.css?v=1.0.7');
+
+ wp_enqueue_script('fancyScript', get_template_directory_uri() . '/fancybox/source/jquery.fancybox.pack.js?v=2.1.5', array('jquery'), '', true );
+ wp_enqueue_script('fancyMouse', get_template_directory_uri() . '/fancybox/lib/jquery.mousewheel-3.0.6.pack.js', array('jquery'), '', true );
+ wp_enqueue_script('fancyThumbs', get_template_directory_uri() . '/fancybox/source/helpers/jquery.fancybox-thumbs.js?v=1.0.7', array('jquery'), '', true );
+ wp_enqueue_script('fancyButtons', get_template_directory_uri() . '/fancybox/source/helpers/jquery.fancybox-buttons.js?v=1.0.5', array('jquery'), '', true );
+ wp_enqueue_script('fancyMedia', get_template_directory_uri() . '/fancybox/source/helpers/jquery.fancybox-media.js?v=1.0.6', array('jquery'), '', true );
+
+}
+
+
+/* Header for posts*/
+function glm_get_header() {
+ global $post;
+ $post_id = $post->ID;
+
+ // inherit featured image from parent pages
+ if ( $post->post_parent && !has_post_thumbnail($post->ID)){
+ $post_id = $post->post_parent;
+ }
+ echo '<div class="header-image-background"';
+ if ( has_post_thumbnail($post_id) && is_post_type('page')) {
+
+ $image_data = wp_get_attachment_image_src(get_post_thumbnail_id($post_id), "full");
+ echo ' style="background-image: url('.$image_data[0].');padding:0;padding-bottom:20%;background-position:center center;background-size: 100%;background-repeat:no-repeat;max-height: 370px; "';
+
+ //} else {
+// echo ' style="background-image: url('.get_template_directory_uri().'/assets/header-images-2.jpg);padding:0;padding-bottom:30%;background-position:center center;background-size:cover;background-repeat:no-repeat;max-height: 370px; "';
+// echo ' class="no-featured"';
+ }
+ echo '>';
+ echo '</div>';
+ echo '<div class="row">';
+ echo '<div class="small-12 columns">';
+ echo '</div>';
+ echo '</div>';
+}
+
+// // The code below is useful when you want the image to resize to
+// if (has_post_thumbnail()) {
+// $image_data = wp_get_attachment_image_src(get_post_thumbnail_id(), "full");
+// echo '<img src="'.$image_data[0].'" style="no-repeat;max-height:400px;">';
+// } else {
+// echo '<img src="'.get_template_directory_uri().'/assets/default-header.gif" style="max-height:400px;">';
+// }
+// echo '<div class="row">';
+// echo '<div class="small-12 columns">';
+// echo '</div>';
+// echo '</div>';
+
+add_action('wp_enqueue_scripts', 'glm_site_scripts');
+
+
+// Start of the Contextual/Highlight Search functions
+function mytheme_init() {
+ remove_action('thematic_searchloop', 'thematic_search_loop');
+}
+
+add_action('init', 'mytheme_init', 10);
+
+function wpse_setup_theme() {
+ add_image_size('glm-block-image', 290, 190,true);
+}
+
+add_action( 'after_setup_theme', 'wpse_setup_theme' );
+function mytheme_search_loop() {
+ while ( have_posts() ) : the_post(); ?>
+
+ <div id="post-<?php the_ID() ?>" class="<?php thematic_post_class() ?>">
+ <?php thematic_postheader(); ?>
+ <div class="entry-content">
+ <?php thematic_content(); /* We will replace this next */ ?>
+
+ </div>
+ <?php thematic_postfooter(); ?>
+ </div><!-- .post -->
+
+ <?php endwhile;
+}
+
+function is_post_type($type){
+ global $wp_query;
+ if($type == get_post_type($wp_query->post->ID)){
+ return true;
+ } else {
+ return false;
+ }
+}
+
+add_action('thematic_searchloop', 'mytheme_search_loop');
+// End of the Contextual/Highlight Search functions
+
+/*
+ * This function returns true when the current page is the page given by ID
+ * or a descendent thereof.
+ */
+if (!function_exists('is_in_tree')) {
+ function is_in_tree( $pid ) {
+ global $post;
+
+ if ( is_page($pid) )
+ return true;
+
+ $anc = get_post_ancestors( $post->ID );
+ foreach ( $anc as $ancestor ) {
+ if( is_page() && $ancestor == $pid ) {
+ return true;
+ }
+ }
+ return false;
+ }
+}
+?>
--- /dev/null
+<!doctype html>
+<html class="no-js" lang="en">
+ <head>
+ <meta charset="utf-8" />
+ <meta name="viewport" content="width=device-width, initial-scale=1.0" />
+ <title><?php wp_title(); ?></title>
+<!-- <link rel="shortcut icon" href="<?php echo get_template_directory_uri(); ?>/favicon.ico"> -->
+ <link rel="stylesheet" href="<?php echo get_stylesheet_directory_uri() ; ?>/css/app.css?v=1.0">
+ <link href='https://fonts.googleapis.com/css?family=Josefin+Sans:400,600,700' rel='stylesheet' type='text/css'>
+ <?php wp_head(); ?>
+ </head>
+ <body>
+ <div class="off-canvas-wrap" data-offcanvas>
+ <div class="inner-wrap">
+ <div id="page-wrapper">
+ <header class="main sticky opensearchserver.ignore">
+ <div class="row medium-uncollapse large-collapse">
+ <div id="logo-tag" class="small-12 text-center medium-12 columns">
+ <?php get_custom_logo($blog_id = 0 );?>
+ <?php the_custom_logo($blog_id = 0 );?>
+ <?php
+ if ( is_front_page() && is_home() ) : ?>
+ <h1 class="site-title"><a href="<?php echo esc_url( home_url( '/' ) ); ?>" rel="home"><?php bloginfo( 'name' ); ?></a></h1>
+ <?php else : ?>
+ <h1 class="site-title"><a href="<?php echo esc_url( home_url( '/' ) ); ?>" rel="home"><?php bloginfo( 'name' ); ?></a></h1>
+ <?php endif;
+
+ $description = get_bloginfo( 'description', 'display' );
+ if ( $description || is_customize_preview() ) : ?>
+ <h3 class="site-description"><?php echo $description; ?></h3>
+ <?php endif;
+ ?>
+ </div>
+ </div>
+<!--
+ <div class="search-top show-for-large-up">
+ <?php //get_template_part('parts/search');?>
+ </div>
+-->
+ <?php get_template_part('parts/top-bar');?>
+ </header>
+ <?php get_template_part('parts/off-canvas-menu');?>
--- /dev/null
+<?php get_header(); ?>
+<main class="blog-home">
+ <div id="header-image" class="page-header">
+ <?php echo glm_get_header();?>
+ </div>
+<!-- <article <?php // post_class() ?> id="interior-featured">
+ <?php // GLM_get_header(); ?>
+ </article> -->
+ <div class="row">
+ <div id="blog-posts-over" class="small-12 medium-9 columns">
+ <?php if(have_posts()) : while(have_posts()): the_post();?>
+ <?php $status = get_post_status($post->ID); ?>
+ <div class="row content blog-posts-container">
+ <?php
+ if (has_post_thumbnail()) {
+ $thumbnail = get_the_post_thumbnail($post->ID, 'blog-feed-front'); ?>
+ <div class="small-12 medium-4 columns text-center blog-feed-imgs">
+ <?php echo $thumbnail; ?>
+ </div>
+ <?php echo '<div class="small-12 medium-8 small-centered columns right">';
+ } else {
+ echo '<div class="small-12 small-centered columns">';
+ }
+ ?>
+ <article id="<?php the_ID()?>" <?php post_class()?>>
+ <h2 class="entry-title"><a href="<?php the_permalink(); ?>"><?php the_title();?></a></h2>
+ <div class="blog-excerpt-date">
+ Posted on <strong><?php the_time('F jS, Y'); ?></strong>
+ </div>
+ <?php echo the_advanced_excerpt('length=265&length_type=characters&no_custom=1&ellipsis=%26hellip;&exclude_tags=a,img,p,strong,h1,h2,h3,hr,div'); ?>
+ <!-- <hr class="contentBreak">-->
+ </article>
+ </div>
+ </div>
+ <?php endwhile; ?>
+ <div class="navigation">
+ <span class="newer"><?php previous_posts_link(__('« Newer','example')) ?></span>
+ <span class="older"><?php next_posts_link(__('Older »','example')) ?></span>
+ </div>
+ <!-- /.navigation -->
+ <?php else: ?>
+ <div id="post-404" class="noposts">
+ <p><?php _e('Sorry, no results were found.');?></p>
+ </div>
+ <!-- /#post-404 -->
+ <?php endif;?>
+ </div>
+<?php get_template_part('parts/blog-sidebar-r'); ?>
+</div>
+<?php get_footer(); ?>
+
+
--- /dev/null
+<?php get_header(); ?>
+<main class="page-inside">
+ <div id="header-image" class="page-header">
+ <?php echo glm_get_header();?>
+ </div>
+
+
+ <div id="content-wrapper">
+ <div class="row">
+ <?php
+ get_template_part('parts/bread-crumbs');
+ ?>
+ </div>
+ <div class="row">
+
+ </div>
+ <div class="row">
+
+
+ <div id="main-content" class="small-12 columns">
+ <?php if(have_posts()) : while(have_posts()): the_post();?>
+ <?php the_content();?>
+ <?php endwhile; else:?>
+ <p><?php _e('Sorry, no results found.');?></p>
+ <?php endif;?>
+ </div>
+ </div>
+ </div>
+<?php get_footer(); ?>
--- /dev/null
+/*
+ * To avoid conflicts, Wordpress tends to prefer jQuery being used over $.
+ * As long as this file is included, no such conflicts should arise. Ensure it
+ * is called before other .js files using $.
+ */
+var $=jQuery.noConflict();;!function(a,b,c,d){"use strict";function e(a){return("string"==typeof a||a instanceof String)&&(a=a.replace(/^['\\/"]+|(;\s?})+|['\\/"]+$/g,"")),a}function f(a){this.selector=a,this.query=""}var g=function(b){var c=a("head");c.prepend(a.map(b,function(a){return 0===c.has("."+a).length?'<meta class="'+a+'" />':void 0}))};g(["foundation-mq-small","foundation-mq-small-only","foundation-mq-medium","foundation-mq-medium-only","foundation-mq-large","foundation-mq-large-only","foundation-mq-xlarge","foundation-mq-xlarge-only","foundation-mq-xxlarge","foundation-data-attribute-namespace"]),a(function(){"undefined"!=typeof FastClick&&"undefined"!=typeof c.body&&FastClick.attach(c.body)});var h=function(b,d){if("string"==typeof b){if(d){var e;if(d.jquery){if(e=d[0],!e)return d}else e=d;return a(e.querySelectorAll(b))}return a(c.querySelectorAll(b))}return a(b,d)},i=function(a){var b=[];return a||b.push("data"),this.namespace.length>0&&b.push(this.namespace),b.push(this.name),b.join("-")},j=function(a){for(var b=a.split("-"),c=b.length,d=[];c--;)0!==c?d.push(b[c]):this.namespace.length>0?d.push(this.namespace,b[c]):d.push(b[c]);return d.reverse().join("-")},k=function(b,c){var d=this,e=function(){var e=h(this),f=!e.data(d.attr_name(!0)+"-init");e.data(d.attr_name(!0)+"-init",a.extend({},d.settings,c||b,d.data_options(e))),f&&d.events(this)};return h(this.scope).is("["+this.attr_name()+"]")?e.call(this.scope):h("["+this.attr_name()+"]",this.scope).each(e),"string"==typeof b?this[b].call(this,c):void 0},l=function(a,b){function c(){b(a[0])}function d(){if(this.one("load",c),/MSIE (\d+\.\d+);/.test(navigator.userAgent)){var a=this.attr("src"),b=a.match(/\?/)?"&":"?";b+="random="+(new Date).getTime(),this.attr("src",a+b)}}return a.attr("src")?void(a[0].complete||4===a[0].readyState?c():d.call(a)):void c()};/*! matchMedia() polyfill - Test a CSS media type/query in JS. Authors & copyright (c) 2012: Scott Jehl, Paul Irish, Nicholas Zakas, David Knight. Dual MIT/BSD license */
+b.matchMedia||(b.matchMedia=function(){var a=b.styleMedia||b.media;if(!a){var d=c.createElement("style"),e=c.getElementsByTagName("script")[0],f=null;d.type="text/css",d.id="matchmediajs-test",e.parentNode.insertBefore(d,e),f="getComputedStyle"in b&&b.getComputedStyle(d,null)||d.currentStyle,a={matchMedium:function(a){var b="@media "+a+"{ #matchmediajs-test { width: 1px; } }";return d.styleSheet?d.styleSheet.cssText=b:d.textContent=b,"1px"===f.width}}}return function(b){return{matches:a.matchMedium(b||"all"),media:b||"all"}}}()),function(a){function c(){d&&(g(c),i&&a.fx.tick())}for(var d,e=0,f=["webkit","moz"],g=b.requestAnimationFrame,h=b.cancelAnimationFrame,i="undefined"!=typeof a.fx;e<f.length&&!g;e++)g=b[f[e]+"RequestAnimationFrame"],h=h||b[f[e]+"CancelAnimationFrame"]||b[f[e]+"CancelRequestAnimationFrame"];g?(b.requestAnimationFrame=g,b.cancelAnimationFrame=h,i&&(a.fx.timer=function(b){b()&&a.timers.push(b)&&!d&&(d=!0,c())},a.fx.stop=function(){d=!1})):(b.requestAnimationFrame=function(a){var c=(new Date).getTime(),d=Math.max(0,16-(c-e)),f=b.setTimeout(function(){a(c+d)},d);return e=c+d,f},b.cancelAnimationFrame=function(a){clearTimeout(a)})}(a),f.prototype.toString=function(){return this.query||(this.query=h(this.selector).css("font-family").replace(/^[\/\\'"]+|(;\s?})+|[\/\\'"]+$/g,""))},b.Foundation={name:"Foundation",version:"5.5.3",media_queries:{small:new f(".foundation-mq-small"),"small-only":new f(".foundation-mq-small-only"),medium:new f(".foundation-mq-medium"),"medium-only":new f(".foundation-mq-medium-only"),large:new f(".foundation-mq-large"),"large-only":new f(".foundation-mq-large-only"),xlarge:new f(".foundation-mq-xlarge"),"xlarge-only":new f(".foundation-mq-xlarge-only"),xxlarge:new f(".foundation-mq-xxlarge")},stylesheet:a("<style></style>").appendTo("head")[0].sheet,global:{namespace:d},init:function(a,c,d,e,f){var g=[a,d,e,f],i=[];if(this.rtl=/rtl/i.test(h("html").attr("dir")),this.scope=a||this.scope,this.set_namespace(),c&&"string"==typeof c&&!/reflow/i.test(c))this.libs.hasOwnProperty(c)&&i.push(this.init_lib(c,g));else for(var j in this.libs)i.push(this.init_lib(j,c));return h(b).load(function(){h(b).trigger("resize.fndtn.clearing").trigger("resize.fndtn.dropdown").trigger("resize.fndtn.equalizer").trigger("resize.fndtn.interchange").trigger("resize.fndtn.joyride").trigger("resize.fndtn.magellan").trigger("resize.fndtn.topbar").trigger("resize.fndtn.slider")}),a},init_lib:function(b,c){return this.libs.hasOwnProperty(b)?(this.patch(this.libs[b]),c&&c.hasOwnProperty(b)?("undefined"!=typeof this.libs[b].settings?a.extend(!0,this.libs[b].settings,c[b]):"undefined"!=typeof this.libs[b].defaults&&a.extend(!0,this.libs[b].defaults,c[b]),this.libs[b].init.apply(this.libs[b],[this.scope,c[b]])):(c=c instanceof Array?c:new Array(c),this.libs[b].init.apply(this.libs[b],c))):function(){}},patch:function(a){a.scope=this.scope,a.namespace=this.global.namespace,a.rtl=this.rtl,a.data_options=this.utils.data_options,a.attr_name=i,a.add_namespace=j,a.bindings=k,a.S=this.utils.S},inherit:function(a,b){for(var c=b.split(" "),d=c.length;d--;)this.utils.hasOwnProperty(c[d])&&(a[c[d]]=this.utils[c[d]])},set_namespace:function(){var b=this.global.namespace===d?a(".foundation-data-attribute-namespace").css("font-family"):this.global.namespace;this.global.namespace=b===d||/false/i.test(b)?"":b},libs:{},utils:{S:h,throttle:function(a,b){var c=null;return function(){var d=this,e=arguments;null==c&&(c=setTimeout(function(){a.apply(d,e),c=null},b))}},debounce:function(a,b,c){var d,e;return function(){var f=this,g=arguments,h=function(){d=null,c||(e=a.apply(f,g))},i=c&&!d;return clearTimeout(d),d=setTimeout(h,b),i&&(e=a.apply(f,g)),e}},data_options:function(b,c){function d(a){return!isNaN(a-0)&&null!==a&&""!==a&&a!==!1&&a!==!0}function e(b){return"string"==typeof b?a.trim(b):b}c=c||"options";var f,g,h,i={},j=function(a){var b=Foundation.global.namespace;return b.length>0?a.data(b+"-"+c):a.data(c)},k=j(b);if("object"==typeof k)return k;for(h=(k||":").split(";"),f=h.length;f--;)g=h[f].split(":"),g=[g[0],g.slice(1).join(":")],/true/i.test(g[1])&&(g[1]=!0),/false/i.test(g[1])&&(g[1]=!1),d(g[1])&&(-1===g[1].indexOf(".")?g[1]=parseInt(g[1],10):g[1]=parseFloat(g[1])),2===g.length&&g[0].length>0&&(i[e(g[0])]=e(g[1]));return i},register_media:function(b,c){Foundation.media_queries[b]===d&&(a("head").append('<meta class="'+c+'"/>'),Foundation.media_queries[b]=e(a("."+c).css("font-family")))},add_custom_rule:function(a,b){if(b===d&&Foundation.stylesheet)Foundation.stylesheet.insertRule(a,Foundation.stylesheet.cssRules.length);else{var c=Foundation.media_queries[b];c!==d&&Foundation.stylesheet.insertRule("@media "+Foundation.media_queries[b]+"{ "+a+" }",Foundation.stylesheet.cssRules.length)}},image_loaded:function(a,b){function c(a){for(var b=a.length,c=b-1;c>=0;c--)if(a.attr("height")===d)return!1;return!0}var e=this,f=a.length;(0===f||c(a))&&b(a),a.each(function(){l(e.S(this),function(){f-=1,0===f&&b(a)})})},random_str:function(){return this.fidx||(this.fidx=0),this.prefix=this.prefix||[this.name||"F",(+new Date).toString(36)].join("-"),this.prefix+(this.fidx++).toString(36)},match:function(a){return b.matchMedia(a).matches},is_small_up:function(){return this.match(Foundation.media_queries.small)},is_medium_up:function(){return this.match(Foundation.media_queries.medium)},is_large_up:function(){return this.match(Foundation.media_queries.large)},is_xlarge_up:function(){return this.match(Foundation.media_queries.xlarge)},is_xxlarge_up:function(){return this.match(Foundation.media_queries.xxlarge)},is_small_only:function(){return!(this.is_medium_up()||this.is_large_up()||this.is_xlarge_up()||this.is_xxlarge_up())},is_medium_only:function(){return this.is_medium_up()&&!this.is_large_up()&&!this.is_xlarge_up()&&!this.is_xxlarge_up()},is_large_only:function(){return this.is_medium_up()&&this.is_large_up()&&!this.is_xlarge_up()&&!this.is_xxlarge_up()},is_xlarge_only:function(){return this.is_medium_up()&&this.is_large_up()&&this.is_xlarge_up()&&!this.is_xxlarge_up()},is_xxlarge_only:function(){return this.is_medium_up()&&this.is_large_up()&&this.is_xlarge_up()&&this.is_xxlarge_up()}}},a.fn.foundation=function(){var a=Array.prototype.slice.call(arguments,0);return this.each(function(){return Foundation.init.apply(Foundation,[this].concat(a)),this})}}(jQuery,window,window.document),function(a,b,c,d){"use strict";Foundation.libs.abide={name:"abide",version:"5.5.3",settings:{live_validate:!0,validate_on_blur:!0,focus_on_invalid:!0,error_labels:!0,error_class:"error",timeout:1e3,patterns:{alpha:/^[a-zA-Z]+$/,alpha_numeric:/^[a-zA-Z0-9]+$/,integer:/^[-+]?\d+$/,number:/^[-+]?\d*(?:[\.\,]\d+)?$/,card:/^(?:4[0-9]{12}(?:[0-9]{3})?|5[1-5][0-9]{14}|6(?:011|5[0-9][0-9])[0-9]{12}|3[47][0-9]{13}|3(?:0[0-5]|[68][0-9])[0-9]{11}|(?:2131|1800|35\d{3})\d{11})$/,cvv:/^([0-9]){3,4}$/,email:/^[a-zA-Z0-9.!#$%&'*+\/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+$/,url:/^(https?|ftp|file|ssh):\/\/([-;:&=\+\$,\w]+@{1})?([-A-Za-z0-9\.]+)+:?(\d+)?((\/[-\+~%\/\.\w]+)?\??([-\+=&;%@\.\w]+)?#?([\w]+)?)?/,domain:/^([a-zA-Z0-9]([a-zA-Z0-9\-]{0,61}[a-zA-Z0-9])?\.)+[a-zA-Z]{2,8}$/,datetime:/^([0-2][0-9]{3})\-([0-1][0-9])\-([0-3][0-9])T([0-5][0-9])\:([0-5][0-9])\:([0-5][0-9])(Z|([\-\+]([0-1][0-9])\:00))$/,date:/(?:19|20)[0-9]{2}-(?:(?:0[1-9]|1[0-2])-(?:0[1-9]|1[0-9]|2[0-9])|(?:(?!02)(?:0[1-9]|1[0-2])-(?:30))|(?:(?:0[13578]|1[02])-31))$/,time:/^(0[0-9]|1[0-9]|2[0-3])(:[0-5][0-9]){2}$/,dateISO:/^\d{4}[\/\-]\d{1,2}[\/\-]\d{1,2}$/,month_day_year:/^(0[1-9]|1[012])[- \/.](0[1-9]|[12][0-9]|3[01])[- \/.]\d{4}$/,day_month_year:/^(0[1-9]|[12][0-9]|3[01])[- \/.](0[1-9]|1[012])[- \/.]\d{4}$/,color:/^#?([a-fA-F0-9]{6}|[a-fA-F0-9]{3})$/},validators:{equalTo:function(a,b,d){var e=c.getElementById(a.getAttribute(this.add_namespace("data-equalto"))).value,f=a.value,g=e===f;return g}}},timer:null,init:function(a,b,c){this.bindings(b,c)},events:function(b){function c(a,b){clearTimeout(d.timer),d.timer=setTimeout(function(){d.validate([a],b)}.bind(a),f.timeout)}var d=this,e=d.S(b).attr("novalidate","novalidate"),f=e.data(this.attr_name(!0)+"-init")||{};this.invalid_attr=this.add_namespace("data-invalid"),e.off(".abide").on("submit.fndtn.abide",function(a){var b=/ajax/i.test(d.S(this).attr(d.attr_name()));return d.validate(d.S(this).find("input, textarea, select").not(":hidden, [data-abide-ignore]").get(),a,b)}).on("validate.fndtn.abide",function(a){"manual"===f.validate_on&&d.validate([a.target],a)}).on("reset",function(b){return d.reset(a(this),b)}).find("input, textarea, select").not(":hidden, [data-abide-ignore]").off(".abide").on("blur.fndtn.abide change.fndtn.abide",function(a){var b=this.getAttribute("id"),d=e.find('[data-equalto="'+b+'"]');f.validate_on_blur&&f.validate_on_blur===!0&&c(this,a),"undefined"!=typeof d.get(0)&&d.val().length&&c(d.get(0),a),"change"===f.validate_on&&c(this,a)}).on("keydown.fndtn.abide",function(a){var b=this.getAttribute("id"),d=e.find('[data-equalto="'+b+'"]');f.live_validate&&f.live_validate===!0&&9!=a.which&&c(this,a),"undefined"!=typeof d.get(0)&&d.val().length&&c(d.get(0),a),"tab"===f.validate_on&&9===a.which?c(this,a):"change"===f.validate_on&&c(this,a)}).on("focus",function(b){navigator.userAgent.match(/iPad|iPhone|Android|BlackBerry|Windows Phone|webOS/i)&&a("html, body").animate({scrollTop:a(b.target).offset().top},100)})},reset:function(b,c){var d=this;b.removeAttr(d.invalid_attr),a("["+d.invalid_attr+"]",b).removeAttr(d.invalid_attr),a("."+d.settings.error_class,b).not("small").removeClass(d.settings.error_class),a(":input",b).not(":button, :submit, :reset, :hidden, [data-abide-ignore]").val("").removeAttr(d.invalid_attr)},validate:function(a,b,c){for(var d=this.parse_patterns(a),e=d.length,f=this.S(a[0]).closest("form"),g=/submit/.test(b.type),h=0;e>h;h++)if(!d[h]&&(g||c))return this.settings.focus_on_invalid&&a[h].focus(),f.trigger("invalid.fndtn.abide"),this.S(a[h]).closest("form").attr(this.invalid_attr,""),!1;return(g||c)&&f.trigger("valid.fndtn.abide"),f.removeAttr(this.invalid_attr),c?!1:!0},parse_patterns:function(a){for(var b=a.length,c=[];b--;)c.push(this.pattern(a[b]));return this.check_validation_and_apply_styles(c)},pattern:function(a){var b=a.getAttribute("type"),c="string"==typeof a.getAttribute("required"),d=a.getAttribute("pattern")||"";return this.settings.patterns.hasOwnProperty(d)&&d.length>0?[a,this.settings.patterns[d],c]:d.length>0?[a,new RegExp(d),c]:this.settings.patterns.hasOwnProperty(b)?[a,this.settings.patterns[b],c]:(d=/.*/,[a,d,c])},check_validation_and_apply_styles:function(b){var c=b.length,d=[];if(0==c)return d;var e=this.S(b[0][0]).closest("[data-"+this.attr_name(!0)+"]");for(e.data(this.attr_name(!0)+"-init")||{};c--;){var f,g,h=b[c][0],i=b[c][2],j=h.value.trim(),k=this.S(h).parent(),l=h.getAttribute(this.add_namespace("data-abide-validator")),m="radio"===h.type,n="checkbox"===h.type,o=this.S('label[for="'+h.getAttribute("id")+'"]'),p=i?h.value.length>0:!0,q=[];if(h.getAttribute(this.add_namespace("data-equalto"))&&(l="equalTo"),f=k.is("label")?k.parent():k,m&&i)q.push(this.valid_radio(h,i));else if(n&&i)q.push(this.valid_checkbox(h,i));else if(l){for(var r=l.split(" "),s=!0,t=!0,u=0;u<r.length;u++)g=this.settings.validators[r[u]].apply(this,[h,i,f]),q.push(g),t=g&&s,s=g;t?(this.S(h).removeAttr(this.invalid_attr),f.removeClass("error"),o.length>0&&this.settings.error_labels&&o.removeClass(this.settings.error_class).removeAttr("role"),a(h).triggerHandler("valid")):(this.S(h).attr(this.invalid_attr,""),f.addClass("error"),o.length>0&&this.settings.error_labels&&o.addClass(this.settings.error_class).attr("role","alert"),a(h).triggerHandler("invalid"))}else if(b[c][1].test(j)&&p||!i&&h.value.length<1||a(h).attr("disabled")?q.push(!0):q.push(!1),q=[q.every(function(a){return a})],q[0])this.S(h).removeAttr(this.invalid_attr),h.setAttribute("aria-invalid","false"),h.removeAttribute("aria-describedby"),f.removeClass(this.settings.error_class),o.length>0&&this.settings.error_labels&&o.removeClass(this.settings.error_class).removeAttr("role"),a(h).triggerHandler("valid");else{this.S(h).attr(this.invalid_attr,""),h.setAttribute("aria-invalid","true");var v=f.find("small."+this.settings.error_class,"span."+this.settings.error_class),w=v.length>0?v[0].id:"";w.length>0&&h.setAttribute("aria-describedby",w),f.addClass(this.settings.error_class),o.length>0&&this.settings.error_labels&&o.addClass(this.settings.error_class).attr("role","alert"),a(h).triggerHandler("invalid")}d=d.concat(q)}return d},valid_checkbox:function(b,c){var b=this.S(b),d=b.is(":checked")||!c||b.get(0).getAttribute("disabled");return d?(b.removeAttr(this.invalid_attr).parent().removeClass(this.settings.error_class),a(b).triggerHandler("valid")):(b.attr(this.invalid_attr,"").parent().addClass(this.settings.error_class),a(b).triggerHandler("invalid")),d},valid_radio:function(b,c){for(var d=b.getAttribute("name"),e=this.S(b).closest("[data-"+this.attr_name(!0)+"]").find("[name='"+d+"']"),f=e.length,g=!1,h=!1,i=0;f>i;i++)e[i].getAttribute("disabled")?(h=!0,g=!0):e[i].checked?g=!0:h&&(g=!1);for(var i=0;f>i;i++)g?(this.S(e[i]).removeAttr(this.invalid_attr).parent().removeClass(this.settings.error_class),a(e[i]).triggerHandler("valid")):(this.S(e[i]).attr(this.invalid_attr,"").parent().addClass(this.settings.error_class),a(e[i]).triggerHandler("invalid"));return g},valid_equal:function(a,b,d){var e=c.getElementById(a.getAttribute(this.add_namespace("data-equalto"))).value,f=a.value,g=e===f;return g?(this.S(a).removeAttr(this.invalid_attr),d.removeClass(this.settings.error_class),label.length>0&&settings.error_labels&&label.removeClass(this.settings.error_class)):(this.S(a).attr(this.invalid_attr,""),d.addClass(this.settings.error_class),label.length>0&&settings.error_labels&&label.addClass(this.settings.error_class)),g},valid_oneof:function(a,b,c,d){var a=this.S(a),e=this.S("["+this.add_namespace("data-oneof")+"]"),f=e.filter(":checked").length>0;if(f?a.removeAttr(this.invalid_attr).parent().removeClass(this.settings.error_class):a.attr(this.invalid_attr,"").parent().addClass(this.settings.error_class),!d){var g=this;e.each(function(){g.valid_oneof.call(g,this,null,null,!0)})}return f},reflow:function(a,b){var c=this,d=c.S("["+this.attr_name()+"]").attr("novalidate","novalidate");c.S(d).each(function(a,b){c.events(b)})}}}(jQuery,window,window.document),function(a,b,c,d){"use strict";Foundation.libs.accordion={name:"accordion",version:"5.5.3",settings:{content_class:"content",active_class:"active",multi_expand:!1,toggleable:!0,callback:function(){}},init:function(a,b,c){this.bindings(b,c)},events:function(b){var c=this,d=this.S;c.create(this.S(b)),d(this.scope).off(".fndtn.accordion").on("click.fndtn.accordion","["+this.attr_name()+"] > dd > a, ["+this.attr_name()+"] > li > a",function(b){var e=d(this).closest("["+c.attr_name()+"]"),f=c.attr_name()+"="+e.attr(c.attr_name()),g=e.data(c.attr_name(!0)+"-init")||c.settings,h=d("#"+this.href.split("#")[1]),i=a("> dd, > li",e),j=i.children("."+g.content_class),k=j.filter("."+g.active_class);return b.preventDefault(),e.attr(c.attr_name())&&(j=j.add("["+f+"] dd > ."+g.content_class+", ["+f+"] li > ."+g.content_class),i=i.add("["+f+"] dd, ["+f+"] li")),g.toggleable&&h.is(k)?(h.parent("dd, li").toggleClass(g.active_class,!1),h.toggleClass(g.active_class,!1),d(this).attr("aria-expanded",function(a,b){return"true"===b?"false":"true"}),g.callback(h),h.triggerHandler("toggled",[e]),void e.triggerHandler("toggled",[h])):(g.multi_expand||(j.removeClass(g.active_class),i.removeClass(g.active_class),i.children("a").attr("aria-expanded","false")),h.addClass(g.active_class).parent().addClass(g.active_class),g.callback(h),h.triggerHandler("toggled",[e]),e.triggerHandler("toggled",[h]),void d(this).attr("aria-expanded","true"))})},create:function(b){var c=this,d=b,e=a("> .accordion-navigation",d),f=d.data(c.attr_name(!0)+"-init")||c.settings;e.children("a").attr("aria-expanded","false"),e.has("."+f.content_class+"."+f.active_class).addClass(f.active_class).children("a").attr("aria-expanded","true"),f.multi_expand&&b.attr("aria-multiselectable","true")},toggle:function(a){var a="undefined"!=typeof a?a:{},c="undefined"!=typeof a.selector?a.selector:"",d="undefined"!=typeof a.toggle_state?a.toggle_state:"",e="undefined"!=typeof a.$accordion?a.$accordion:this.S(this.scope).closest("["+this.attr_name()+"]"),f=e.find("> dd"+c+", > li"+c);if(f.length<1)return b.console&&console.error("Selection not found.",c),!1;var g=this.S,h=this.settings.active_class;f.each(function(){var a=g(this),b=a.hasClass(h);(b&&"close"===d||!b&&"open"===d||""===d)&&a.find("> a").trigger("click.fndtn.accordion")})},open:function(a){var a="undefined"!=typeof a?a:{};a.toggle_state="open",this.toggle(a)},close:function(a){var a="undefined"!=typeof a?a:{};a.toggle_state="close",this.toggle(a)},off:function(){},reflow:function(){}}}(jQuery,window,window.document),function(a,b,c,d){"use strict";Foundation.libs.alert={name:"alert",version:"5.5.3",settings:{callback:function(){}},init:function(a,b,c){this.bindings(b,c)},events:function(){var b=this,c=this.S;a(this.scope).off(".alert").on("click.fndtn.alert","["+this.attr_name()+"] .close",function(a){var d=c(this).closest("["+b.attr_name()+"]"),e=d.data(b.attr_name(!0)+"-init")||b.settings;a.preventDefault(),Modernizr.csstransitions?(d.addClass("alert-close"),d.on("transitionend webkitTransitionEnd oTransitionEnd",function(a){c(this).trigger("close.fndtn.alert").remove(),e.callback()})):d.fadeOut(300,function(){c(this).trigger("close.fndtn.alert").remove(),e.callback()})})},reflow:function(){}}}(jQuery,window,window.document),function(a,b,c,d){"use strict";Foundation.libs.clearing={name:"clearing",version:"5.5.3",settings:{templates:{viewing:'<a href="#" class="clearing-close">×</a><div class="visible-img" style="display: none"><div class="clearing-touch-label"></div><img src="data:image/gif;base64,R0lGODlhAQABAAD/ACwAAAAAAQABAAACADs%3D" alt="" /><p class="clearing-caption"></p><a href="#" class="clearing-main-prev"><span></span></a><a href="#" class="clearing-main-next"><span></span></a></div><img class="clearing-preload-next" style="display: none" src="data:image/gif;base64,R0lGODlhAQABAAD/ACwAAAAAAQABAAACADs%3D" alt="" /><img class="clearing-preload-prev" style="display: none" src="data:image/gif;base64,R0lGODlhAQABAAD/ACwAAAAAAQABAAACADs%3D" alt="" />'},close_selectors:".clearing-close, div.clearing-blackout",open_selectors:"",skip_selector:"",touch_label:"",init:!1,locked:!1},init:function(a,b,c){var d=this;Foundation.inherit(this,"throttle image_loaded"),this.bindings(b,c),d.S(this.scope).is("["+this.attr_name()+"]")?this.assemble(d.S("li",this.scope)):d.S("["+this.attr_name()+"]",this.scope).each(function(){d.assemble(d.S("li",this))})},events:function(d){var e=this,f=e.S,g=a(".scroll-container");g.length>0&&(this.scope=g),f(this.scope).off(".clearing").on("click.fndtn.clearing","ul["+this.attr_name()+"] li "+this.settings.open_selectors,function(a,b,c){var b=b||f(this),c=c||b,d=b.next("li"),g=b.closest("["+e.attr_name()+"]").data(e.attr_name(!0)+"-init"),h=f(a.target);a.preventDefault(),g||(e.init(),g=b.closest("["+e.attr_name()+"]").data(e.attr_name(!0)+"-init")),c.hasClass("visible")&&b[0]===c[0]&&d.length>0&&e.is_open(b)&&(c=d,h=f("img",c)),e.open(h,b,c),e.update_paddles(c)}).on("click.fndtn.clearing",".clearing-main-next",function(a){e.nav(a,"next")}).on("click.fndtn.clearing",".clearing-main-prev",function(a){e.nav(a,"prev")}).on("click.fndtn.clearing",this.settings.close_selectors,function(a){Foundation.libs.clearing.close(a,this)}),a(c).on("keydown.fndtn.clearing",function(a){e.keydown(a)}),f(b).off(".clearing").on("resize.fndtn.clearing",function(){e.resize()}),this.swipe_events(d)},swipe_events:function(a){var b=this,c=b.S;c(this.scope).on("touchstart.fndtn.clearing",".visible-img",function(a){a.touches||(a=a.originalEvent);var b={start_page_x:a.touches[0].pageX,start_page_y:a.touches[0].pageY,start_time:(new Date).getTime(),delta_x:0,is_scrolling:d};c(this).data("swipe-transition",b),a.stopPropagation()}).on("touchmove.fndtn.clearing",".visible-img",function(a){if(a.touches||(a=a.originalEvent),!(a.touches.length>1||a.scale&&1!==a.scale)){var d=c(this).data("swipe-transition");if("undefined"==typeof d&&(d={}),d.delta_x=a.touches[0].pageX-d.start_page_x,Foundation.rtl&&(d.delta_x=-d.delta_x),"undefined"==typeof d.is_scrolling&&(d.is_scrolling=!!(d.is_scrolling||Math.abs(d.delta_x)<Math.abs(a.touches[0].pageY-d.start_page_y))),!d.is_scrolling&&!d.active){a.preventDefault();var e=d.delta_x<0?"next":"prev";d.active=!0,b.nav(a,e)}}}).on("touchend.fndtn.clearing",".visible-img",function(a){c(this).data("swipe-transition",{}),a.stopPropagation()})},assemble:function(b){var c=b.parent();if(!c.parent().hasClass("carousel")){c.after('<div id="foundationClearingHolder"></div>');var d=c.detach(),e="";if(null!=d[0]){e=d[0].outerHTML;var f=this.S("#foundationClearingHolder"),g=c.data(this.attr_name(!0)+"-init"),h={grid:'<div class="carousel">'+e+"</div>",viewing:g.templates.viewing},i='<div class="clearing-assembled"><div>'+h.viewing+h.grid+"</div></div>",j=this.settings.touch_label;Modernizr.touch&&(i=a(i).find(".clearing-touch-label").html(j).end()),f.after(i).remove()}}},open:function(b,d,e){function f(){setTimeout(function(){this.image_loaded(m,function(){1!==m.outerWidth()||o?g.call(this,m):f.call(this)}.bind(this))}.bind(this),100)}function g(b){var c=a(b);c.css("visibility","visible"),c.trigger("imageVisible"),i.css("overflow","hidden"),j.addClass("clearing-blackout"),k.addClass("clearing-container"),l.show(),this.fix_height(e).caption(h.S(".clearing-caption",l),h.S("img",e)).center_and_label(b,n).shift(d,e,function(){e.closest("li").siblings().removeClass("visible"),e.closest("li").addClass("visible")}),l.trigger("opened.fndtn.clearing")}var h=this,i=a(c.body),j=e.closest(".clearing-assembled"),k=h.S("div",j).first(),l=h.S(".visible-img",k),m=h.S("img",l).not(b),n=h.S(".clearing-touch-label",k),o=!1,p={};a("body").on("touchmove",function(a){a.preventDefault()}),m.error(function(){o=!0}),this.locked()||(l.trigger("open.fndtn.clearing"),p=this.load(b),p.interchange?m.attr("data-interchange",p.interchange).foundation("interchange","reflow"):m.attr("src",p.src).attr("data-interchange",""),m.css("visibility","hidden"),f.call(this))},close:function(b,d){b.preventDefault();var e,f,g=function(a){return/blackout/.test(a.selector)?a:a.closest(".clearing-blackout")}(a(d)),h=a(c.body);return d===b.target&&g&&(h.css("overflow",""),e=a("div",g).first(),f=a(".visible-img",e),f.trigger("close.fndtn.clearing"),this.settings.prev_index=0,a("ul["+this.attr_name()+"]",g).attr("style","").closest(".clearing-blackout").removeClass("clearing-blackout"),e.removeClass("clearing-container"),f.hide(),f.trigger("closed.fndtn.clearing")),a("body").off("touchmove"),!1},is_open:function(a){return a.parent().prop("style").length>0},keydown:function(b){var c=a(".clearing-blackout ul["+this.attr_name()+"]"),d=this.rtl?37:39,e=this.rtl?39:37,f=27;b.which===d&&this.go(c,"next"),b.which===e&&this.go(c,"prev"),b.which===f&&this.S("a.clearing-close").trigger("click.fndtn.clearing")},nav:function(b,c){var d=a("ul["+this.attr_name()+"]",".clearing-blackout");b.preventDefault(),this.go(d,c)},resize:function(){var b=a("img",".clearing-blackout .visible-img"),c=a(".clearing-touch-label",".clearing-blackout");b.length&&(this.center_and_label(b,c),b.trigger("resized.fndtn.clearing"))},fix_height:function(a){var b=a.parent().children(),c=this;return b.each(function(){var a=c.S(this),b=a.find("img");a.height()>b.outerHeight()&&a.addClass("fix-height")}).closest("ul").width(100*b.length+"%"),this},update_paddles:function(a){a=a.closest("li");var b=a.closest(".carousel").siblings(".visible-img");a.next().length>0?this.S(".clearing-main-next",b).removeClass("disabled"):this.S(".clearing-main-next",b).addClass("disabled"),a.prev().length>0?this.S(".clearing-main-prev",b).removeClass("disabled"):this.S(".clearing-main-prev",b).addClass("disabled")},center_and_label:function(a,b){return!this.rtl&&b.length>0?b.css({marginLeft:-(b.outerWidth()/2),marginTop:-(a.outerHeight()/2)-b.outerHeight()-10}):b.css({marginRight:-(b.outerWidth()/2),marginTop:-(a.outerHeight()/2)-b.outerHeight()-10,left:"auto",right:"50%"}),this},load:function(a){var b,c,d;return"A"===a[0].nodeName?(b=a.attr("href"),c=a.data("clearing-interchange")):(d=a.closest("a"),b=d.attr("href"),c=d.data("clearing-interchange")),this.preload(a),{src:b?b:a.attr("src"),interchange:b?c:a.data("clearing-interchange")}},preload:function(a){this.img(a.closest("li").next(),"next").img(a.closest("li").prev(),"prev")},img:function(b,c){if(b.length){var d,e,f,g=a(".clearing-preload-"+c),h=this.S("a",b);h.length?(d=h.attr("href"),e=h.data("clearing-interchange")):(f=this.S("img",b),d=f.attr("src"),e=f.data("clearing-interchange")),e?g.attr("data-interchange",e):(g.attr("src",d),g.attr("data-interchange",""))}return this},caption:function(a,b){var c=b.attr("data-caption");if(c){var d=a.get(0);d.innerHTML=c,a.show()}else a.text("").hide();return this},go:function(a,b){var c=this.S(".visible",a),d=c[b]();this.settings.skip_selector&&0!=d.find(this.settings.skip_selector).length&&(d=d[b]()),d.length&&this.S("img",d).trigger("click.fndtn.clearing",[c,d]).trigger("change.fndtn.clearing")},shift:function(a,b,c){var d,e=b.parent(),f=this.settings.prev_index||b.index(),g=this.direction(e,a,b),h=this.rtl?"right":"left",i=parseInt(e.css("left"),10),j=b.outerWidth(),k={};b.index()===f||/skip/.test(g)?/skip/.test(g)&&(d=b.index()-this.settings.up_count,this.lock(),d>0?(k[h]=-(d*j),e.animate(k,300,this.unlock())):(k[h]=0,e.animate(k,300,this.unlock()))):/left/.test(g)?(this.lock(),k[h]=i+j,e.animate(k,300,this.unlock())):/right/.test(g)&&(this.lock(),k[h]=i-j,e.animate(k,300,this.unlock())),c()},direction:function(a,b,c){var d,e=this.S("li",a),f=e.outerWidth()+e.outerWidth()/4,g=Math.floor(this.S(".clearing-container").outerWidth()/f)-1,h=e.index(c);return this.settings.up_count=g,d=this.adjacent(this.settings.prev_index,h)?h>g&&h>this.settings.prev_index?"right":h>g-1&&h<=this.settings.prev_index?"left":!1:"skip",this.settings.prev_index=h,d},adjacent:function(a,b){for(var c=b+1;c>=b-1;c--)if(c===a)return!0;return!1},lock:function(){this.settings.locked=!0},unlock:function(){this.settings.locked=!1},locked:function(){return this.settings.locked},off:function(){this.S(this.scope).off(".fndtn.clearing"),this.S(b).off(".fndtn.clearing")},reflow:function(){this.init()}}}(jQuery,window,window.document),function(a,b,c,d){"use strict";Foundation.libs.dropdown={name:"dropdown",version:"5.5.3",settings:{active_class:"open",disabled_class:"disabled",mega_class:"mega",align:"bottom",is_hover:!1,hover_timeout:150,opened:function(){},closed:function(){}},init:function(b,c,d){Foundation.inherit(this,"throttle"),a.extend(!0,this.settings,c,d),this.bindings(c,d)},events:function(d){var e=this,f=e.S;f(this.scope).off(".dropdown").on("click.fndtn.dropdown","["+this.attr_name()+"]",function(b){var c=f(this).data(e.attr_name(!0)+"-init")||e.settings;(!c.is_hover||Modernizr.touch)&&(b.preventDefault(),f(this).parent("[data-reveal-id]").length&&b.stopPropagation(),e.toggle(a(this)))}).on("mouseenter.fndtn.dropdown","["+this.attr_name()+"], ["+this.attr_name()+"-content]",function(a){var b,c,d=f(this);clearTimeout(e.timeout),d.data(e.data_attr())?(b=f("#"+d.data(e.data_attr())),c=d):(b=d,c=f("["+e.attr_name()+'="'+b.attr("id")+'"]'));var g=c.data(e.attr_name(!0)+"-init")||e.settings;f(a.currentTarget).data(e.data_attr())&&g.is_hover&&e.closeall.call(e),g.is_hover&&e.open.apply(e,[b,c])}).on("mouseleave.fndtn.dropdown","["+this.attr_name()+"], ["+this.attr_name()+"-content]",function(a){var b,c=f(this);if(c.data(e.data_attr()))b=c.data(e.data_attr(!0)+"-init")||e.settings;else var d=f("["+e.attr_name()+'="'+f(this).attr("id")+'"]'),b=d.data(e.attr_name(!0)+"-init")||e.settings;e.timeout=setTimeout(function(){c.data(e.data_attr())?b.is_hover&&e.close.call(e,f("#"+c.data(e.data_attr()))):b.is_hover&&e.close.call(e,c)}.bind(this),b.hover_timeout)}).on("click.fndtn.dropdown",function(b){var d=f(b.target).closest("["+e.attr_name()+"-content]"),g=d.find("a");return g.length>0&&"false"!==d.attr("aria-autoclose")&&e.close.call(e,f("["+e.attr_name()+"-content]")),b.target!==c&&!a.contains(c.documentElement,b.target)||f(b.target).closest("["+e.attr_name()+"]").length>0?void 0:!f(b.target).data("revealId")&&d.length>0&&(f(b.target).is("["+e.attr_name()+"-content]")||a.contains(d.first()[0],b.target))?void b.stopPropagation():void e.close.call(e,f("["+e.attr_name()+"-content]"))}).on("opened.fndtn.dropdown","["+e.attr_name()+"-content]",function(){e.settings.opened.call(this)}).on("closed.fndtn.dropdown","["+e.attr_name()+"-content]",function(){e.settings.closed.call(this)}),f(b).off(".dropdown").on("resize.fndtn.dropdown",e.throttle(function(){e.resize.call(e)},50)),this.resize()},close:function(b){var c=this;b.each(function(d){var e=a("["+c.attr_name()+"="+b[d].id+"]")||a("aria-controls="+b[d].id+"]");e.attr("aria-expanded","false"),c.S(this).hasClass(c.settings.active_class)&&(c.S(this).css(Foundation.rtl?"right":"left","-99999px").attr("aria-hidden","true").removeClass(c.settings.active_class).prev("["+c.attr_name()+"]").removeClass(c.settings.active_class).removeData("target"),c.S(this).trigger("closed.fndtn.dropdown",[b]))}),b.removeClass("f-open-"+this.attr_name(!0))},closeall:function(){var b=this;a.each(b.S(".f-open-"+this.attr_name(!0)),function(){b.close.call(b,b.S(this))})},open:function(a,b){this.css(a.addClass(this.settings.active_class),b),a.prev("["+this.attr_name()+"]").addClass(this.settings.active_class),a.data("target",b.get(0)).trigger("opened.fndtn.dropdown",[a,b]),a.attr("aria-hidden","false"),b.attr("aria-expanded","true"),a.focus(),a.addClass("f-open-"+this.attr_name(!0))},data_attr:function(){return this.namespace.length>0?this.namespace+"-"+this.name:this.name},toggle:function(a){if(!a.hasClass(this.settings.disabled_class)){var b=this.S("#"+a.data(this.data_attr()));0!==b.length&&(this.close.call(this,this.S("["+this.attr_name()+"-content]").not(b)),b.hasClass(this.settings.active_class)?(this.close.call(this,b),b.data("target")!==a.get(0)&&this.open.call(this,b,a)):this.open.call(this,b,a))}},resize:function(){var b=this.S("["+this.attr_name()+"-content].open"),c=a(b.data("target"));b.length&&c.length&&this.css(b,c)},css:function(a,b){var c=Math.max((b.width()-a.width())/2,8),d=b.data(this.attr_name(!0)+"-init")||this.settings,e=a.parent().css("overflow-y")||a.parent().css("overflow");if(this.clear_idx(),this.small()){var f=this.dirs.bottom.call(a,b,d);a.attr("style","").removeClass("drop-left drop-right drop-top").css({position:"absolute",width:"95%","max-width":"none",top:f.top}),a.css(Foundation.rtl?"right":"left",c)}else if("visible"!==e){var g=b[0].offsetTop+b[0].offsetHeight;a.attr("style","").css({position:"absolute",top:g}),a.css(Foundation.rtl?"right":"left",c)}else this.style(a,b,d);return a},style:function(b,c,d){var e=a.extend({position:"absolute"},this.dirs[d.align].call(b,c,d));b.attr("style","").css(e)},dirs:{_base:function(a,d){var e=this.offsetParent(),f=e.offset(),g=a.offset();g.top-=f.top,g.left-=f.left,g.missRight=!1,g.missTop=!1,g.missLeft=!1,g.leftRightFlag=!1;var h,i=b.innerWidth;h=c.getElementsByClassName("row")[0]?c.getElementsByClassName("row")[0].clientWidth:i;var j=(i-h)/2,k=h;if(!this.hasClass("mega")&&!d.ignore_repositioning){var l=this.outerWidth(),m=a.offset().left;a.offset().top<=this.outerHeight()&&(g.missTop=!0,k=i-j,g.leftRightFlag=!0),m+l>m+j&&m-j>l&&(g.missRight=!0,g.missLeft=!1),0>=m-l&&(g.missLeft=!0,g.missRight=!1)}return g},top:function(a,b){var c=Foundation.libs.dropdown,d=c.dirs._base.call(this,a,b);return this.addClass("drop-top"),1==d.missTop&&(d.top=d.top+a.outerHeight()+this.outerHeight(),
+this.removeClass("drop-top")),1==d.missRight&&(d.left=d.left-this.outerWidth()+a.outerWidth()),(a.outerWidth()<this.outerWidth()||c.small()||this.hasClass(b.mega_menu))&&c.adjust_pip(this,a,b,d),Foundation.rtl?{left:d.left-this.outerWidth()+a.outerWidth(),top:d.top-this.outerHeight()}:{left:d.left,top:d.top-this.outerHeight()}},bottom:function(a,b){var c=Foundation.libs.dropdown,d=c.dirs._base.call(this,a,b);return 1==d.missRight&&(d.left=d.left-this.outerWidth()+a.outerWidth()),(a.outerWidth()<this.outerWidth()||c.small()||this.hasClass(b.mega_menu))&&c.adjust_pip(this,a,b,d),c.rtl?{left:d.left-this.outerWidth()+a.outerWidth(),top:d.top+a.outerHeight()}:{left:d.left,top:d.top+a.outerHeight()}},left:function(a,b){var c=Foundation.libs.dropdown.dirs._base.call(this,a,b);return this.addClass("drop-left"),1==c.missLeft&&(c.left=c.left+this.outerWidth(),c.top=c.top+a.outerHeight(),this.removeClass("drop-left")),{left:c.left-this.outerWidth(),top:c.top}},right:function(a,b){var c=Foundation.libs.dropdown.dirs._base.call(this,a,b);this.addClass("drop-right"),1==c.missRight?(c.left=c.left-this.outerWidth(),c.top=c.top+a.outerHeight(),this.removeClass("drop-right")):c.triggeredRight=!0;var d=Foundation.libs.dropdown;return(a.outerWidth()<this.outerWidth()||d.small()||this.hasClass(b.mega_menu))&&d.adjust_pip(this,a,b,c),{left:c.left+a.outerWidth(),top:c.top}}},adjust_pip:function(a,b,c,d){var e=Foundation.stylesheet,f=8;a.hasClass(c.mega_class)?f=d.left+b.outerWidth()/2-8:this.small()&&(f+=d.left-8),this.rule_idx=e.cssRules.length;var g=".f-dropdown.open:before",h=".f-dropdown.open:after",i="left: "+f+"px;",j="left: "+(f-1)+"px;";1==d.missRight&&(f=a.outerWidth()-23,g=".f-dropdown.open:before",h=".f-dropdown.open:after",i="left: "+f+"px;",j="left: "+(f-1)+"px;"),1==d.triggeredRight&&(g=".f-dropdown.open:before",h=".f-dropdown.open:after",i="left:-12px;",j="left:-14px;"),e.insertRule?(e.insertRule([g,"{",i,"}"].join(" "),this.rule_idx),e.insertRule([h,"{",j,"}"].join(" "),this.rule_idx+1)):(e.addRule(g,i,this.rule_idx),e.addRule(h,j,this.rule_idx+1))},clear_idx:function(){var a=Foundation.stylesheet;"undefined"!=typeof this.rule_idx&&(a.deleteRule(this.rule_idx),a.deleteRule(this.rule_idx),delete this.rule_idx)},small:function(){return matchMedia(Foundation.media_queries.small).matches&&!matchMedia(Foundation.media_queries.medium).matches},off:function(){this.S(this.scope).off(".fndtn.dropdown"),this.S("html, body").off(".fndtn.dropdown"),this.S(b).off(".fndtn.dropdown"),this.S("[data-dropdown-content]").off(".fndtn.dropdown")},reflow:function(){}}}(jQuery,window,window.document),function(a,b,c,d){"use strict";Foundation.libs.equalizer={name:"equalizer",version:"5.5.3",settings:{use_tallest:!0,before_height_change:a.noop,after_height_change:a.noop,equalize_on_stack:!1,act_on_hidden_el:!1},init:function(a,b,c){Foundation.inherit(this,"image_loaded"),this.bindings(b,c),this.reflow()},events:function(){this.S(b).off(".equalizer").on("resize.fndtn.equalizer",function(a){this.reflow()}.bind(this))},equalize:function(b){var c,d,e=!1,f=b.data("equalizer"),g=b.data(this.attr_name(!0)+"-init")||this.settings;if(c=g.act_on_hidden_el?f?b.find("["+this.attr_name()+'-watch="'+f+'"]'):b.find("["+this.attr_name()+"-watch]"):f?b.find("["+this.attr_name()+'-watch="'+f+'"]:visible'):b.find("["+this.attr_name()+"-watch]:visible"),0!==c.length&&(g.before_height_change(),b.trigger("before-height-change.fndth.equalizer"),c.height("inherit"),g.equalize_on_stack!==!1||(d=c.first().offset().top,c.each(function(){return a(this).offset().top!==d?(e=!0,!1):void 0}),!e))){var h=c.map(function(){return a(this).outerHeight(!1)}).get();if(g.use_tallest){var i=Math.max.apply(null,h);c.css("height",i)}else{var j=Math.min.apply(null,h);c.css("height",j)}g.after_height_change(),b.trigger("after-height-change.fndtn.equalizer")}},reflow:function(){var b=this;this.S("["+this.attr_name()+"]",this.scope).each(function(){var c=a(this),d=c.data("equalizer-mq"),e=!0;d&&(d="is_"+d.replace(/-/g,"_"),Foundation.utils.hasOwnProperty(d)&&(e=!1)),b.image_loaded(b.S("img",this),function(){if(e||Foundation.utils[d]())b.equalize(c);else{var a=c.find("["+b.attr_name()+"-watch]:visible");a.css("height","auto")}})})}}}(jQuery,window,window.document),function(a,b,c,d){"use strict";Foundation.libs.interchange={name:"interchange",version:"5.5.3",cache:{},images_loaded:!1,nodes_loaded:!1,settings:{load_attr:"interchange",named_queries:{"default":"only screen",small:Foundation.media_queries.small,"small-only":Foundation.media_queries["small-only"],medium:Foundation.media_queries.medium,"medium-only":Foundation.media_queries["medium-only"],large:Foundation.media_queries.large,"large-only":Foundation.media_queries["large-only"],xlarge:Foundation.media_queries.xlarge,"xlarge-only":Foundation.media_queries["xlarge-only"],xxlarge:Foundation.media_queries.xxlarge,landscape:"only screen and (orientation: landscape)",portrait:"only screen and (orientation: portrait)",retina:"only screen and (-webkit-min-device-pixel-ratio: 2),only screen and (min--moz-device-pixel-ratio: 2),only screen and (-o-min-device-pixel-ratio: 2/1),only screen and (min-device-pixel-ratio: 2),only screen and (min-resolution: 192dpi),only screen and (min-resolution: 2dppx)"},directives:{replace:function(b,c,d){if(null!==b&&/IMG/.test(b[0].nodeName)){var e=a.each(b,function(){this.src=c});if(new RegExp(c,"i").test(e))return;return b.attr("src",c),d(b[0].src)}var f=b.data(this.data_attr+"-last-path"),g=this;if(f!=c)return/\.(gif|jpg|jpeg|tiff|png)([?#].*)?/i.test(c)?(a(b).css("background-image","url("+c+")"),b.data("interchange-last-path",c),d(c)):a.get(c,function(a){b.html(a),b.data(g.data_attr+"-last-path",c),d()})}}},init:function(b,c,d){Foundation.inherit(this,"throttle random_str"),this.data_attr=this.set_data_attr(),a.extend(!0,this.settings,c,d),this.bindings(c,d),this.reflow()},get_media_hash:function(){var a="";for(var b in this.settings.named_queries)a+=matchMedia(this.settings.named_queries[b]).matches.toString();return a},events:function(){var c,d=this;return a(b).off(".interchange").on("resize.fndtn.interchange",d.throttle(function(){var a=d.get_media_hash();a!==c&&d.resize(),c=a},50)),this},resize:function(){var b=this.cache;if(!this.images_loaded||!this.nodes_loaded)return void setTimeout(a.proxy(this.resize,this),50);for(var c in b)if(b.hasOwnProperty(c)){var d=this.results(c,b[c]);d&&this.settings.directives[d.scenario[1]].call(this,d.el,d.scenario[0],function(a){if(arguments[0]instanceof Array)var b=arguments[0];else var b=Array.prototype.slice.call(arguments,0);return function(){a.el.trigger(a.scenario[1],b)}}(d))}},results:function(a,b){var c=b.length;if(c>0)for(var d=this.S("["+this.add_namespace("data-uuid")+'="'+a+'"]');c--;){var e,f=b[c][2];if(e=this.settings.named_queries.hasOwnProperty(f)?matchMedia(this.settings.named_queries[f]):matchMedia(f),e.matches)return{el:d,scenario:b[c]}}return!1},load:function(a,b){return("undefined"==typeof this["cached_"+a]||b)&&this["update_"+a](),this["cached_"+a]},update_images:function(){var a=this.S("img["+this.data_attr+"]"),b=a.length,c=b,d=0,e=this.data_attr;for(this.cache={},this.cached_images=[],this.images_loaded=0===b;c--;){if(d++,a[c]){var f=a[c].getAttribute(e)||"";f.length>0&&this.cached_images.push(a[c])}d===b&&(this.images_loaded=!0,this.enhance("images"))}return this},update_nodes:function(){var a=this.S("["+this.data_attr+"]").not("img"),b=a.length,c=b,d=0,e=this.data_attr;for(this.cached_nodes=[],this.nodes_loaded=0===b;c--;){d++;var f=a[c].getAttribute(e)||"";f.length>0&&this.cached_nodes.push(a[c]),d===b&&(this.nodes_loaded=!0,this.enhance("nodes"))}return this},enhance:function(c){for(var d=this["cached_"+c].length;d--;)this.object(a(this["cached_"+c][d]));return a(b).trigger("resize.fndtn.interchange")},convert_directive:function(a){var b=this.trim(a);return b.length>0?b:"replace"},parse_scenario:function(a){var b=a[0].match(/(.+),\s*(\w+)\s*$/),c=a[1].match(/(.*)\)/);if(b)var d=b[1],e=b[2];else var f=a[0].split(/,\s*$/),d=f[0],e="";return[this.trim(d),this.convert_directive(e),this.trim(c[1])]},object:function(a){var b=this.parse_data_attr(a),c=[],d=b.length;if(d>0)for(;d--;){var e=b[d].split(/,\s?\(/);if(e.length>1){var f=this.parse_scenario(e);c.push(f)}}return this.store(a,c)},store:function(a,b){var c=this.random_str(),d=a.data(this.add_namespace("uuid",!0));return this.cache[d]?this.cache[d]:(a.attr(this.add_namespace("data-uuid"),c),this.cache[c]=b)},trim:function(b){return"string"==typeof b?a.trim(b):b},set_data_attr:function(a){return a?this.namespace.length>0?this.namespace+"-"+this.settings.load_attr:this.settings.load_attr:this.namespace.length>0?"data-"+this.namespace+"-"+this.settings.load_attr:"data-"+this.settings.load_attr},parse_data_attr:function(a){for(var b=a.attr(this.attr_name()).split(/\[(.*?)\]/),c=b.length,d=[];c--;)b[c].replace(/[\W\d]+/,"").length>4&&d.push(b[c]);return d},reflow:function(){this.load("images",!0),this.load("nodes",!0)}}}(jQuery,window,window.document),function(a,b,c,d){"use strict";Foundation.libs.joyride={name:"joyride",version:"5.5.3",defaults:{expose:!1,modal:!0,keyboard:!0,tip_location:"bottom",nub_position:"auto",scroll_speed:1500,scroll_animation:"linear",timer:0,start_timer_on_click:!0,start_offset:0,next_button:!0,prev_button:!0,tip_animation:"fade",pause_after:[],exposed:[],tip_animation_fade_speed:300,cookie_monster:!1,cookie_name:"joyride",cookie_domain:!1,cookie_expires:365,tip_container:"body",abort_on_close:!0,tip_location_patterns:{top:["bottom"],bottom:[],left:["right","top","bottom"],right:["left","top","bottom"]},post_ride_callback:function(){},post_step_callback:function(){},pre_step_callback:function(){},pre_ride_callback:function(){},post_expose_callback:function(){},template:{link:'<a href="#close" class="joyride-close-tip">×</a>',timer:'<div class="joyride-timer-indicator-wrap"><span class="joyride-timer-indicator"></span></div>',tip:'<div class="joyride-tip-guide"><span class="joyride-nub"></span></div>',wrapper:'<div class="joyride-content-wrapper"></div>',button:'<a href="#" class="small button joyride-next-tip"></a>',prev_button:'<a href="#" class="small button joyride-prev-tip"></a>',modal:'<div class="joyride-modal-bg"></div>',expose:'<div class="joyride-expose-wrapper"></div>',expose_cover:'<div class="joyride-expose-cover"></div>'},expose_add_class:""},init:function(b,c,d){Foundation.inherit(this,"throttle random_str"),this.settings=this.settings||a.extend({},this.defaults,d||c),this.bindings(c,d)},go_next:function(){this.settings.$li.next().length<1?this.end():this.settings.timer>0?(clearTimeout(this.settings.automate),this.hide(),this.show(),this.startTimer()):(this.hide(),this.show())},go_prev:function(){this.settings.$li.prev().length<1||(this.settings.timer>0?(clearTimeout(this.settings.automate),this.hide(),this.show(null,!0),this.startTimer()):(this.hide(),this.show(null,!0)))},events:function(){var c=this;a(this.scope).off(".joyride").on("click.fndtn.joyride",".joyride-next-tip, .joyride-modal-bg",function(a){a.preventDefault(),this.go_next()}.bind(this)).on("click.fndtn.joyride",".joyride-prev-tip",function(a){a.preventDefault(),this.go_prev()}.bind(this)).on("click.fndtn.joyride",".joyride-close-tip",function(a){a.preventDefault(),this.end(this.settings.abort_on_close)}.bind(this)).on("keyup.fndtn.joyride",function(a){if(this.settings.keyboard&&this.settings.riding)switch(a.which){case 39:a.preventDefault(),this.go_next();break;case 37:a.preventDefault(),this.go_prev();break;case 27:a.preventDefault(),this.end(this.settings.abort_on_close)}}.bind(this)),a(b).off(".joyride").on("resize.fndtn.joyride",c.throttle(function(){if(a("["+c.attr_name()+"]").length>0&&c.settings.$next_tip&&c.settings.riding){if(c.settings.exposed.length>0){var b=a(c.settings.exposed);b.each(function(){var b=a(this);c.un_expose(b),c.expose(b)})}c.is_phone()?c.pos_phone():c.pos_default(!1)}},100))},start:function(){var b=this,c=a("["+this.attr_name()+"]",this.scope),d=["timer","scrollSpeed","startOffset","tipAnimationFadeSpeed","cookieExpires"],e=d.length;!c.length>0||(this.settings.init||this.events(),this.settings=c.data(this.attr_name(!0)+"-init"),this.settings.$content_el=c,this.settings.$body=a(this.settings.tip_container),this.settings.body_offset=a(this.settings.tip_container).position(),this.settings.$tip_content=this.settings.$content_el.find("> li"),this.settings.paused=!1,this.settings.attempts=0,this.settings.riding=!0,"function"!=typeof a.cookie&&(this.settings.cookie_monster=!1),(!this.settings.cookie_monster||this.settings.cookie_monster&&!a.cookie(this.settings.cookie_name))&&(this.settings.$tip_content.each(function(c){var f=a(this);this.settings=a.extend({},b.defaults,b.data_options(f));for(var g=e;g--;)b.settings[d[g]]=parseInt(b.settings[d[g]],10);b.create({$li:f,index:c})}),!this.settings.start_timer_on_click&&this.settings.timer>0?(this.show("init"),this.startTimer()):this.show("init")))},resume:function(){this.set_li(),this.show()},tip_template:function(b){var c,d;return b.tip_class=b.tip_class||"",c=a(this.settings.template.tip).addClass(b.tip_class),d=a.trim(a(b.li).html())+this.prev_button_text(b.prev_button_text,b.index)+this.button_text(b.button_text)+this.settings.template.link+this.timer_instance(b.index),c.append(a(this.settings.template.wrapper)),c.first().attr(this.add_namespace("data-index"),b.index),a(".joyride-content-wrapper",c).append(d),c[0]},timer_instance:function(b){var c;return c=0===b&&this.settings.start_timer_on_click&&this.settings.timer>0||0===this.settings.timer?"":a(this.settings.template.timer)[0].outerHTML},button_text:function(b){return this.settings.tip_settings.next_button?(b=a.trim(b)||"Next",b=a(this.settings.template.button).append(b)[0].outerHTML):b="",b},prev_button_text:function(b,c){return this.settings.tip_settings.prev_button?(b=a.trim(b)||"Previous",b=0==c?a(this.settings.template.prev_button).append(b).addClass("disabled")[0].outerHTML:a(this.settings.template.prev_button).append(b)[0].outerHTML):b="",b},create:function(b){this.settings.tip_settings=a.extend({},this.settings,this.data_options(b.$li));var c=b.$li.attr(this.add_namespace("data-button"))||b.$li.attr(this.add_namespace("data-text")),d=b.$li.attr(this.add_namespace("data-button-prev"))||b.$li.attr(this.add_namespace("data-prev-text")),e=b.$li.attr("class"),f=a(this.tip_template({tip_class:e,index:b.index,button_text:c,prev_button_text:d,li:b.$li}));a(this.settings.tip_container).append(f)},show:function(b,c){var e=null;if(this.settings.$li===d||-1===a.inArray(this.settings.$li.index(),this.settings.pause_after))if(this.settings.paused?this.settings.paused=!1:this.set_li(b,c),this.settings.attempts=0,this.settings.$li.length&&this.settings.$target.length>0){if(b&&(this.settings.pre_ride_callback(this.settings.$li.index(),this.settings.$next_tip),this.settings.modal&&this.show_modal()),this.settings.pre_step_callback(this.settings.$li.index(),this.settings.$next_tip),this.settings.modal&&this.settings.expose&&this.expose(),this.settings.tip_settings=a.extend({},this.settings,this.data_options(this.settings.$li)),this.settings.timer=parseInt(this.settings.timer,10),this.settings.tip_settings.tip_location_pattern=this.settings.tip_location_patterns[this.settings.tip_settings.tip_location],!/body/i.test(this.settings.$target.selector)&&!this.settings.expose){var f=a(".joyride-modal-bg");/pop/i.test(this.settings.tipAnimation)?f.hide():f.fadeOut(this.settings.tipAnimationFadeSpeed),this.scroll_to()}this.is_phone()?this.pos_phone(!0):this.pos_default(!0),e=this.settings.$next_tip.find(".joyride-timer-indicator"),/pop/i.test(this.settings.tip_animation)?(e.width(0),this.settings.timer>0?(this.settings.$next_tip.show(),setTimeout(function(){e.animate({width:e.parent().width()},this.settings.timer,"linear")}.bind(this),this.settings.tip_animation_fade_speed)):this.settings.$next_tip.show()):/fade/i.test(this.settings.tip_animation)&&(e.width(0),this.settings.timer>0?(this.settings.$next_tip.fadeIn(this.settings.tip_animation_fade_speed).show(),setTimeout(function(){e.animate({width:e.parent().width()},this.settings.timer,"linear")}.bind(this),this.settings.tip_animation_fade_speed)):this.settings.$next_tip.fadeIn(this.settings.tip_animation_fade_speed)),this.settings.$current_tip=this.settings.$next_tip}else this.settings.$li&&this.settings.$target.length<1?this.show(b,c):this.end();else this.settings.paused=!0},is_phone:function(){return matchMedia(Foundation.media_queries.small).matches&&!matchMedia(Foundation.media_queries.medium).matches},hide:function(){this.settings.modal&&this.settings.expose&&this.un_expose(),this.settings.modal||a(".joyride-modal-bg").hide(),this.settings.$current_tip.css("visibility","hidden"),setTimeout(a.proxy(function(){this.hide(),this.css("visibility","visible")},this.settings.$current_tip),0),this.settings.post_step_callback(this.settings.$li.index(),this.settings.$current_tip)},set_li:function(a,b){a?(this.settings.$li=this.settings.$tip_content.eq(this.settings.start_offset),this.set_next_tip(),this.settings.$current_tip=this.settings.$next_tip):(b?this.settings.$li=this.settings.$li.prev():this.settings.$li=this.settings.$li.next(),this.set_next_tip()),this.set_target()},set_next_tip:function(){this.settings.$next_tip=a(".joyride-tip-guide").eq(this.settings.$li.index()),this.settings.$next_tip.data("closed","")},set_target:function(){var b=this.settings.$li.attr(this.add_namespace("data-class")),d=this.settings.$li.attr(this.add_namespace("data-id")),e=function(){return d?a(c.getElementById(d)):b?a("."+b).first():a("body")};this.settings.$target=e()},scroll_to:function(){var c,d;c=a(b).height()/2,d=Math.ceil(this.settings.$target.offset().top-c+this.settings.$next_tip.outerHeight()),0!=d&&a("html, body").stop().animate({scrollTop:d},this.settings.scroll_speed,"swing")},paused:function(){return-1===a.inArray(this.settings.$li.index()+1,this.settings.pause_after)},restart:function(){this.hide(),this.settings.$li=d,this.show("init")},pos_default:function(a){var b=this.settings.$next_tip.find(".joyride-nub"),c=Math.ceil(b.outerWidth()/2),d=Math.ceil(b.outerHeight()/2),e=a||!1;if(e&&(this.settings.$next_tip.css("visibility","hidden"),this.settings.$next_tip.show()),/body/i.test(this.settings.$target.selector))this.settings.$li.length&&this.pos_modal(b);else{var f=this.settings.tip_settings.tipAdjustmentY?parseInt(this.settings.tip_settings.tipAdjustmentY):0,g=this.settings.tip_settings.tipAdjustmentX?parseInt(this.settings.tip_settings.tipAdjustmentX):0;this.bottom()?(this.rtl?this.settings.$next_tip.css({top:this.settings.$target.offset().top+d+this.settings.$target.outerHeight()+f,left:this.settings.$target.offset().left+this.settings.$target.outerWidth()-this.settings.$next_tip.outerWidth()+g}):this.settings.$next_tip.css({top:this.settings.$target.offset().top+d+this.settings.$target.outerHeight()+f,left:this.settings.$target.offset().left+g}),this.nub_position(b,this.settings.tip_settings.nub_position,"top")):this.top()?(this.rtl?this.settings.$next_tip.css({top:this.settings.$target.offset().top-this.settings.$next_tip.outerHeight()-d+f,left:this.settings.$target.offset().left+this.settings.$target.outerWidth()-this.settings.$next_tip.outerWidth()}):this.settings.$next_tip.css({top:this.settings.$target.offset().top-this.settings.$next_tip.outerHeight()-d+f,left:this.settings.$target.offset().left+g}),this.nub_position(b,this.settings.tip_settings.nub_position,"bottom")):this.right()?(this.settings.$next_tip.css({top:this.settings.$target.offset().top+f,left:this.settings.$target.outerWidth()+this.settings.$target.offset().left+c+g}),this.nub_position(b,this.settings.tip_settings.nub_position,"left")):this.left()&&(this.settings.$next_tip.css({top:this.settings.$target.offset().top+f,left:this.settings.$target.offset().left-this.settings.$next_tip.outerWidth()-c+g}),this.nub_position(b,this.settings.tip_settings.nub_position,"right")),!this.visible(this.corners(this.settings.$next_tip))&&this.settings.attempts<this.settings.tip_settings.tip_location_pattern.length&&(b.removeClass("bottom").removeClass("top").removeClass("right").removeClass("left"),this.settings.tip_settings.tip_location=this.settings.tip_settings.tip_location_pattern[this.settings.attempts],this.settings.attempts++,this.pos_default())}e&&(this.settings.$next_tip.hide(),this.settings.$next_tip.css("visibility","visible"))},pos_phone:function(b){var c=this.settings.$next_tip.outerHeight(),d=(this.settings.$next_tip.offset(),this.settings.$target.outerHeight()),e=a(".joyride-nub",this.settings.$next_tip),f=Math.ceil(e.outerHeight()/2),g=b||!1;e.removeClass("bottom").removeClass("top").removeClass("right").removeClass("left"),g&&(this.settings.$next_tip.css("visibility","hidden"),this.settings.$next_tip.show()),/body/i.test(this.settings.$target.selector)?this.settings.$li.length&&this.pos_modal(e):this.top()?(this.settings.$next_tip.offset({top:this.settings.$target.offset().top-c-f}),e.addClass("bottom")):(this.settings.$next_tip.offset({top:this.settings.$target.offset().top+d+f}),e.addClass("top")),g&&(this.settings.$next_tip.hide(),this.settings.$next_tip.css("visibility","visible"))},pos_modal:function(a){this.center(),a.hide(),this.show_modal()},show_modal:function(){if(!this.settings.$next_tip.data("closed")){var b=a(".joyride-modal-bg");if(b.length<1){var b=a(this.settings.template.modal);b.appendTo("body")}/pop/i.test(this.settings.tip_animation)?b.show():b.fadeIn(this.settings.tip_animation_fade_speed)}},expose:function(){var c,d,e,f,g,h="expose-"+this.random_str(6);if(arguments.length>0&&arguments[0]instanceof a)e=arguments[0];else{if(!this.settings.$target||/body/i.test(this.settings.$target.selector))return!1;e=this.settings.$target}return e.length<1?(b.console&&console.error("element not valid",e),!1):(c=a(this.settings.template.expose),this.settings.$body.append(c),c.css({top:e.offset().top,left:e.offset().left,width:e.outerWidth(!0),height:e.outerHeight(!0)}),d=a(this.settings.template.expose_cover),f={zIndex:e.css("z-index"),position:e.css("position")},g=null==e.attr("class")?"":e.attr("class"),e.css("z-index",parseInt(c.css("z-index"))+1),"static"==f.position&&e.css("position","relative"),e.data("expose-css",f),e.data("orig-class",g),e.attr("class",g+" "+this.settings.expose_add_class),d.css({top:e.offset().top,left:e.offset().left,width:e.outerWidth(!0),height:e.outerHeight(!0)}),this.settings.modal&&this.show_modal(),this.settings.$body.append(d),c.addClass(h),d.addClass(h),e.data("expose",h),this.settings.post_expose_callback(this.settings.$li.index(),this.settings.$next_tip,e),void this.add_exposed(e))},un_expose:function(){var c,d,e,f,g,h=!1;if(arguments.length>0&&arguments[0]instanceof a)d=arguments[0];else{if(!this.settings.$target||/body/i.test(this.settings.$target.selector))return!1;d=this.settings.$target}return d.length<1?(b.console&&console.error("element not valid",d),!1):(c=d.data("expose"),e=a("."+c),arguments.length>1&&(h=arguments[1]),h===!0?a(".joyride-expose-wrapper,.joyride-expose-cover").remove():e.remove(),f=d.data("expose-css"),"auto"==f.zIndex?d.css("z-index",""):d.css("z-index",f.zIndex),f.position!=d.css("position")&&("static"==f.position?d.css("position",""):d.css("position",f.position)),g=d.data("orig-class"),d.attr("class",g),d.removeData("orig-classes"),d.removeData("expose"),d.removeData("expose-z-index"),void this.remove_exposed(d))},add_exposed:function(b){this.settings.exposed=this.settings.exposed||[],b instanceof a||"object"==typeof b?this.settings.exposed.push(b[0]):"string"==typeof b&&this.settings.exposed.push(b)},remove_exposed:function(b){var c,d;for(b instanceof a?c=b[0]:"string"==typeof b&&(c=b),this.settings.exposed=this.settings.exposed||[],d=this.settings.exposed.length;d--;)if(this.settings.exposed[d]==c)return void this.settings.exposed.splice(d,1)},center:function(){var c=a(b);return this.settings.$next_tip.css({top:(c.height()-this.settings.$next_tip.outerHeight())/2+c.scrollTop(),left:(c.width()-this.settings.$next_tip.outerWidth())/2+c.scrollLeft()}),!0},bottom:function(){return/bottom/i.test(this.settings.tip_settings.tip_location)},top:function(){return/top/i.test(this.settings.tip_settings.tip_location)},right:function(){return/right/i.test(this.settings.tip_settings.tip_location)},left:function(){return/left/i.test(this.settings.tip_settings.tip_location)},corners:function(c){if(0===c.length)return[!1,!1,!1,!1];var d=a(b),e=d.height()/2,f=Math.ceil(this.settings.$target.offset().top-e+this.settings.$next_tip.outerHeight()),g=d.width()+d.scrollLeft(),h=d.height()+f,i=d.height()+d.scrollTop(),j=d.scrollTop();return j>f&&(j=0>f?0:f),h>i&&(i=h),[c.offset().top<j,g<c.offset().left+c.outerWidth(),i<c.offset().top+c.outerHeight(),d.scrollLeft()>c.offset().left]},visible:function(a){for(var b=a.length;b--;)if(a[b])return!1;return!0},nub_position:function(a,b,c){"auto"===b?a.addClass(c):a.addClass(b)},startTimer:function(){this.settings.$li.length?this.settings.automate=setTimeout(function(){this.hide(),this.show(),this.startTimer()}.bind(this),this.settings.timer):clearTimeout(this.settings.automate)},end:function(b){this.settings.cookie_monster&&a.cookie(this.settings.cookie_name,"ridden",{expires:this.settings.cookie_expires,domain:this.settings.cookie_domain}),this.settings.timer>0&&clearTimeout(this.settings.automate),this.settings.modal&&this.settings.expose&&this.un_expose(),a(this.scope).off("keyup.joyride"),this.settings.$next_tip.data("closed",!0),this.settings.riding=!1,a(".joyride-modal-bg").hide(),this.settings.$current_tip.hide(),("undefined"==typeof b||b===!1)&&(this.settings.post_step_callback(this.settings.$li.index(),this.settings.$current_tip),this.settings.post_ride_callback(this.settings.$li.index(),this.settings.$current_tip)),a(".joyride-tip-guide").remove()},off:function(){a(this.scope).off(".joyride"),a(b).off(".joyride"),a(".joyride-close-tip, .joyride-next-tip, .joyride-modal-bg").off(".joyride"),a(".joyride-tip-guide, .joyride-modal-bg").remove(),clearTimeout(this.settings.automate)},reflow:function(){}}}(jQuery,window,window.document),function(a,b,c,d){"use strict";Foundation.libs["magellan-expedition"]={name:"magellan-expedition",version:"5.5.3",settings:{active_class:"active",threshold:0,destination_threshold:20,throttle_delay:30,fixed_top:0,offset_by_height:!0,duration:700,easing:"swing"},init:function(a,b,c){Foundation.inherit(this,"throttle"),this.bindings(b,c)},events:function(){var b=this,c=b.S,d=b.settings;b.set_expedition_position(),c(b.scope).off(".magellan").on("click.fndtn.magellan","["+b.add_namespace("data-magellan-arrival")+"] a[href*=#]",function(c){var d=this.hostname===location.hostname||!this.hostname,e=b.filterPathname(location.pathname)===b.filterPathname(this.pathname),f=this.hash.replace(/(:|\.|\/)/g,"\\$1"),g=this;if(d&&e&&f){c.preventDefault();var h=a(this).closest("["+b.attr_name()+"]"),i=h.data("magellan-expedition-init"),j=this.hash.split("#").join(""),k=a('a[name="'+j+'"]');0===k.length&&(k=a("#"+j));var l=k.offset().top-i.destination_threshold+1;i.offset_by_height&&(l-=h.outerHeight()),a("html, body").stop().animate({scrollTop:l},i.duration,i.easing,function(){history.pushState?history.pushState(null,null,g.pathname+g.search+"#"+j):location.hash=g.pathname+g.search+"#"+j})}}).on("scroll.fndtn.magellan",b.throttle(this.check_for_arrivals.bind(this),d.throttle_delay))},check_for_arrivals:function(){var a=this;a.update_arrivals(),a.update_expedition_positions()},set_expedition_position:function(){var b=this;a("["+this.attr_name()+"=fixed]",b.scope).each(function(c,d){var e,f,g=a(this),h=g.data("magellan-expedition-init"),i=g.attr("styles");g.attr("style",""),e=g.offset().top+h.threshold,f=parseInt(g.data("magellan-fixed-top")),isNaN(f)||(b.settings.fixed_top=f),g.data(b.data_attr("magellan-top-offset"),e),g.attr("style",i)})},update_expedition_positions:function(){var c=this,d=a(b).scrollTop();a("["+this.attr_name()+"=fixed]",c.scope).each(function(){var b=a(this),e=b.data("magellan-expedition-init"),f=b.attr("style"),g=b.data("magellan-top-offset");if(d+c.settings.fixed_top>=g){var h=b.prev("["+c.add_namespace("data-magellan-expedition-clone")+"]");0===h.length&&(h=b.clone(),h.removeAttr(c.attr_name()),h.attr(c.add_namespace("data-magellan-expedition-clone"),""),b.before(h)),b.css({position:"fixed",top:e.fixed_top}).addClass("fixed")}else b.prev("["+c.add_namespace("data-magellan-expedition-clone")+"]").remove(),b.attr("style",f).css("position","").css("top","").removeClass("fixed")})},update_arrivals:function(){var c=this,d=a(b).scrollTop();a("["+this.attr_name()+"]",c.scope).each(function(){var b=a(this),e=b.data(c.attr_name(!0)+"-init"),f=c.offsets(b,d),g=b.find("["+c.add_namespace("data-magellan-arrival")+"]"),h=!1;f.each(function(a,d){if(d.viewport_offset>=d.top_offset){var f=b.find("["+c.add_namespace("data-magellan-arrival")+"]");return f.not(d.arrival).removeClass(e.active_class),d.arrival.addClass(e.active_class),h=!0,!0}}),h||g.removeClass(e.active_class)})},offsets:function(b,c){var d=this,e=b.data(d.attr_name(!0)+"-init"),f=c;return b.find("["+d.add_namespace("data-magellan-arrival")+"]").map(function(c,g){var h=a(this).data(d.data_attr("magellan-arrival")),i=a("["+d.add_namespace("data-magellan-destination")+"="+h+"]");if(i.length>0){var j=i.offset().top-e.destination_threshold;return e.offset_by_height&&(j-=b.outerHeight()),j=Math.floor(j),{destination:i,arrival:a(this),top_offset:j,viewport_offset:f}}}).sort(function(a,b){return a.top_offset<b.top_offset?-1:a.top_offset>b.top_offset?1:0})},data_attr:function(a){return this.namespace.length>0?this.namespace+"-"+a:a},off:function(){this.S(this.scope).off(".magellan"),this.S(b).off(".magellan")},filterPathname:function(a){return a=a||"",a.replace(/^\//,"").replace(/(?:index|default).[a-zA-Z]{3,4}$/,"").replace(/\/$/,"")},reflow:function(){var b=this;a("["+b.add_namespace("data-magellan-expedition-clone")+"]",b.scope).remove()}}}(jQuery,window,window.document),function(a,b,c,d){"use strict";Foundation.libs.offcanvas={name:"offcanvas",version:"5.5.3",settings:{open_method:"move",close_on_click:!1},init:function(a,b,c){this.bindings(b,c)},events:function(){var b=this,c=b.S,d="",e="",f="",g="",h="";"move"===this.settings.open_method?(d="move-",e="right",f="left",g="top",h="bottom"):"overlap_single"===this.settings.open_method?(d="offcanvas-overlap-",e="right",f="left",g="top",h="bottom"):"overlap"===this.settings.open_method&&(d="offcanvas-overlap"),c(this.scope).off(".offcanvas").on("click.fndtn.offcanvas",".left-off-canvas-toggle",function(f){b.click_toggle_class(f,d+e),"overlap"!==b.settings.open_method&&c(".left-submenu").removeClass(d+e),a(".left-off-canvas-toggle").attr("aria-expanded","true")}).on("click.fndtn.offcanvas",".left-off-canvas-menu a",function(f){var g=b.get_settings(f),h=c(this).parent();!g.close_on_click||h.hasClass("has-submenu")||h.hasClass("back")?c(this).parent().hasClass("has-submenu")?(f.preventDefault(),c(this).siblings(".left-submenu").toggleClass(d+e)):h.hasClass("back")&&(f.preventDefault(),h.parent().removeClass(d+e)):(b.hide.call(b,d+e,b.get_wrapper(f)),h.parent().removeClass(d+e)),a(".left-off-canvas-toggle").attr("aria-expanded","true")}).on("click.fndtn.offcanvas",".right-off-canvas-toggle",function(e){b.click_toggle_class(e,d+f),"overlap"!==b.settings.open_method&&c(".right-submenu").removeClass(d+f),a(".right-off-canvas-toggle").attr("aria-expanded","true")}).on("click.fndtn.offcanvas",".right-off-canvas-menu a",function(e){var g=b.get_settings(e),h=c(this).parent();!g.close_on_click||h.hasClass("has-submenu")||h.hasClass("back")?c(this).parent().hasClass("has-submenu")?(e.preventDefault(),c(this).siblings(".right-submenu").toggleClass(d+f)):h.hasClass("back")&&(e.preventDefault(),h.parent().removeClass(d+f)):(b.hide.call(b,d+f,b.get_wrapper(e)),h.parent().removeClass(d+f)),a(".right-off-canvas-toggle").attr("aria-expanded","true");
+}).on("click.fndtn.offcanvas",".top-off-canvas-toggle",function(e){b.click_toggle_class(e,d+h),"overlap"!==b.settings.open_method&&c(".top-submenu").removeClass(d+h),a(".top-off-canvas-toggle").attr("aria-expanded","true")}).on("click.fndtn.offcanvas",".top-off-canvas-menu a",function(e){var f=b.get_settings(e),g=c(this).parent();!f.close_on_click||g.hasClass("has-submenu")||g.hasClass("back")?c(this).parent().hasClass("has-submenu")?(e.preventDefault(),c(this).siblings(".top-submenu").toggleClass(d+h)):g.hasClass("back")&&(e.preventDefault(),g.parent().removeClass(d+h)):(b.hide.call(b,d+h,b.get_wrapper(e)),g.parent().removeClass(d+h)),a(".top-off-canvas-toggle").attr("aria-expanded","true")}).on("click.fndtn.offcanvas",".bottom-off-canvas-toggle",function(e){b.click_toggle_class(e,d+g),"overlap"!==b.settings.open_method&&c(".bottom-submenu").removeClass(d+g),a(".bottom-off-canvas-toggle").attr("aria-expanded","true")}).on("click.fndtn.offcanvas",".bottom-off-canvas-menu a",function(e){var f=b.get_settings(e),h=c(this).parent();!f.close_on_click||h.hasClass("has-submenu")||h.hasClass("back")?c(this).parent().hasClass("has-submenu")?(e.preventDefault(),c(this).siblings(".bottom-submenu").toggleClass(d+g)):h.hasClass("back")&&(e.preventDefault(),h.parent().removeClass(d+g)):(b.hide.call(b,d+g,b.get_wrapper(e)),h.parent().removeClass(d+g)),a(".bottom-off-canvas-toggle").attr("aria-expanded","true")}).on("click.fndtn.offcanvas",".exit-off-canvas",function(g){b.click_remove_class(g,d+f),c(".right-submenu").removeClass(d+f),e&&(b.click_remove_class(g,d+e),c(".left-submenu").removeClass(d+f)),a(".right-off-canvas-toggle").attr("aria-expanded","true")}).on("click.fndtn.offcanvas",".exit-off-canvas",function(c){b.click_remove_class(c,d+f),a(".left-off-canvas-toggle").attr("aria-expanded","false"),e&&(b.click_remove_class(c,d+e),a(".right-off-canvas-toggle").attr("aria-expanded","false"))}).on("click.fndtn.offcanvas",".exit-off-canvas",function(e){b.click_remove_class(e,d+g),c(".bottom-submenu").removeClass(d+g),h&&(b.click_remove_class(e,d+h),c(".top-submenu").removeClass(d+g)),a(".bottom-off-canvas-toggle").attr("aria-expanded","true")}).on("click.fndtn.offcanvas",".exit-off-canvas",function(c){b.click_remove_class(c,d+g),a(".top-off-canvas-toggle").attr("aria-expanded","false"),h&&(b.click_remove_class(c,d+h),a(".bottom-off-canvas-toggle").attr("aria-expanded","false"))})},toggle:function(a,b){b=b||this.get_wrapper(),b.is("."+a)?this.hide(a,b):this.show(a,b)},show:function(a,b){b=b||this.get_wrapper(),b.trigger("open.fndtn.offcanvas"),b.addClass(a)},hide:function(a,b){b=b||this.get_wrapper(),b.trigger("close.fndtn.offcanvas"),b.removeClass(a)},click_toggle_class:function(a,b){a.preventDefault();var c=this.get_wrapper(a);this.toggle(b,c)},click_remove_class:function(a,b){a.preventDefault();var c=this.get_wrapper(a);this.hide(b,c)},get_settings:function(a){var b=this.S(a.target).closest("["+this.attr_name()+"]");return b.data(this.attr_name(!0)+"-init")||this.settings},get_wrapper:function(a){var b=this.S(a?a.target:this.scope).closest(".off-canvas-wrap");return 0===b.length&&(b=this.S(".off-canvas-wrap")),b},reflow:function(){}}}(jQuery,window,window.document),function(a,b,c,d){"use strict";var e=function(){},f=function(e,f){if(e.hasClass(f.slides_container_class))return this;var j,k,l,m,n,o,p=this,q=e,r=0,s=!1;p.slides=function(){return q.children(f.slide_selector)},p.slides().first().addClass(f.active_slide_class),p.update_slide_number=function(b){f.slide_number&&(k.find("span:first").text(parseInt(b)+1),k.find("span:last").text(p.slides().length)),f.bullets&&(l.children().removeClass(f.bullets_active_class),a(l.children().get(b)).addClass(f.bullets_active_class))},p.update_active_link=function(b){var c=a('[data-orbit-link="'+p.slides().eq(b).attr("data-orbit-slide")+'"]');c.siblings().removeClass(f.bullets_active_class),c.addClass(f.bullets_active_class)},p.build_markup=function(){q.wrap('<div class="'+f.container_class+'"></div>'),j=q.parent(),q.addClass(f.slides_container_class),f.stack_on_small&&j.addClass(f.stack_on_small_class),f.navigation_arrows&&(j.append(a('<a href="#"><span></span></a>').addClass(f.prev_class)),j.append(a('<a href="#"><span></span></a>').addClass(f.next_class))),f.timer&&(m=a("<div>").addClass(f.timer_container_class),m.append("<span>"),m.append(a("<div>").addClass(f.timer_progress_class)),m.addClass(f.timer_paused_class),j.append(m)),f.slide_number&&(k=a("<div>").addClass(f.slide_number_class),k.append("<span></span> "+f.slide_number_text+" <span></span>"),j.append(k)),f.bullets&&(l=a("<ol>").addClass(f.bullets_container_class),j.append(l),l.wrap('<div class="orbit-bullets-container"></div>'),p.slides().each(function(b,c){var d=a("<li>").attr("data-orbit-slide",b).on("click",p.link_bullet);l.append(d)}))},p._goto=function(b,c){if(b===r)return!1;"object"==typeof o&&o.restart();var d=p.slides(),e="next";if(s=!0,r>b&&(e="prev"),b>=d.length){if(!f.circular)return!1;b=0}else if(0>b){if(!f.circular)return!1;b=d.length-1}var g=a(d.get(r)),h=a(d.get(b));g.css("zIndex",2),g.removeClass(f.active_slide_class),h.css("zIndex",4).addClass(f.active_slide_class),q.trigger("before-slide-change.fndtn.orbit"),f.before_slide_change(),p.update_active_link(b);var i=function(){var a=function(){r=b,s=!1,c===!0&&(o=p.create_timer(),o.start()),p.update_slide_number(r),q.trigger("after-slide-change.fndtn.orbit",[{slide_number:r,total_slides:d.length}]),f.after_slide_change(r,d.length)};q.outerHeight()!=h.outerHeight()&&f.variable_height?q.animate({height:h.outerHeight()},250,"linear",a):a()};if(1===d.length)return i(),!1;var j=function(){"next"===e&&n.next(g,h,i),"prev"===e&&n.prev(g,h,i)};h.outerHeight()>q.outerHeight()&&f.variable_height?q.animate({height:h.outerHeight()},250,"linear",j):j()},p.next=function(a){a.stopImmediatePropagation(),a.preventDefault(),p._goto(r+1)},p.prev=function(a){a.stopImmediatePropagation(),a.preventDefault(),p._goto(r-1)},p.link_custom=function(b){b.preventDefault();var c=a(this).attr("data-orbit-link");if("string"==typeof c&&""!=(c=a.trim(c))){var d=j.find("[data-orbit-slide="+c+"]");-1!=d.index()&&p._goto(d.index())}},p.link_bullet=function(b){var c=a(this).attr("data-orbit-slide");if("string"==typeof c&&""!=(c=a.trim(c)))if(isNaN(parseInt(c))){var d=j.find("[data-orbit-slide="+c+"]");-1!=d.index()&&p._goto(d.index()+1)}else p._goto(parseInt(c))},p.timer_callback=function(){p._goto(r+1,!0)},p.compute_dimensions=function(){var b=a(p.slides().get(r)),c=b.outerHeight();f.variable_height||p.slides().each(function(){a(this).outerHeight()>c&&(c=a(this).outerHeight())}),q.height(c)},p.create_timer=function(){var a=new g(j.find("."+f.timer_container_class),f,p.timer_callback);return a},p.stop_timer=function(){"object"==typeof o&&o.stop()},p.toggle_timer=function(){var a=j.find("."+f.timer_container_class);a.hasClass(f.timer_paused_class)?("undefined"==typeof o&&(o=p.create_timer()),o.start()):"object"==typeof o&&o.stop()},p.init=function(){p.build_markup(),f.timer&&(o=p.create_timer(),Foundation.utils.image_loaded(this.slides().children("img"),o.start)),n=new i(f,q),"slide"===f.animation&&(n=new h(f,q)),j.on("click","."+f.next_class,p.next),j.on("click","."+f.prev_class,p.prev),f.next_on_click&&j.on("click","."+f.slides_container_class+" [data-orbit-slide]",p.link_bullet),j.on("click",p.toggle_timer),f.swipe&&j.on("touchstart.fndtn.orbit",function(a){a.touches||(a=a.originalEvent);var b={start_page_x:a.touches[0].pageX,start_page_y:a.touches[0].pageY,start_time:(new Date).getTime(),delta_x:0,is_scrolling:d};j.data("swipe-transition",b),a.stopPropagation()}).on("touchmove.fndtn.orbit",function(a){if(a.touches||(a=a.originalEvent),!(a.touches.length>1||a.scale&&1!==a.scale)){var b=j.data("swipe-transition");if("undefined"==typeof b&&(b={}),b.delta_x=a.touches[0].pageX-b.start_page_x,"undefined"==typeof b.is_scrolling&&(b.is_scrolling=!!(b.is_scrolling||Math.abs(b.delta_x)<Math.abs(a.touches[0].pageY-b.start_page_y))),!b.is_scrolling&&!b.active){a.preventDefault();var c=b.delta_x<0?r+1:r-1;b.active=!0,p._goto(c)}}}).on("touchend.fndtn.orbit",function(a){j.data("swipe-transition",{}),a.stopPropagation()}),j.on("mouseenter.fndtn.orbit",function(a){f.timer&&f.pause_on_hover&&p.stop_timer()}).on("mouseleave.fndtn.orbit",function(a){f.timer&&f.resume_on_mouseout&&o.start()}),a(c).on("click","[data-orbit-link]",p.link_custom),a(b).on("load resize",p.compute_dimensions),Foundation.utils.image_loaded(this.slides().children("img"),p.compute_dimensions),Foundation.utils.image_loaded(this.slides().children("img"),function(){j.prev("."+f.preloader_class).css("display","none"),p.update_slide_number(0),p.update_active_link(0),q.trigger("ready.fndtn.orbit")})},p.init()},g=function(a,b,c){var d,e,f=this,g=b.timer_speed,h=a.find("."+b.timer_progress_class),i=-1;this.update_progress=function(a){var b=h.clone();b.attr("style",""),b.css("width",a+"%"),h.replaceWith(b),h=b},this.restart=function(){clearTimeout(e),a.addClass(b.timer_paused_class),i=-1,f.update_progress(0)},this.start=function(){return a.hasClass(b.timer_paused_class)?(i=-1===i?g:i,a.removeClass(b.timer_paused_class),d=(new Date).getTime(),h.animate({width:"100%"},i,"linear"),e=setTimeout(function(){f.restart(),c()},i),void a.trigger("timer-started.fndtn.orbit")):!0},this.stop=function(){if(a.hasClass(b.timer_paused_class))return!0;clearTimeout(e),a.addClass(b.timer_paused_class);var c=(new Date).getTime();i-=c-d;var h=100-i/g*100;f.update_progress(h),a.trigger("timer-stopped.fndtn.orbit")}},h=function(b,c){var d=b.animation_speed,e=1===a("html[dir=rtl]").length,f=e?"marginRight":"marginLeft",g={};g[f]="0%",this.next=function(a,b,c){a.animate({marginLeft:"-100%"},d),b.animate(g,d,function(){a.css(f,"100%"),c()})},this.prev=function(a,b,c){a.animate({marginLeft:"100%"},d),b.css(f,"-100%"),b.animate(g,d,function(){a.css(f,"100%"),c()})}},i=function(b,c){var d=b.animation_speed;1===a("html[dir=rtl]").length;this.next=function(a,b,c){b.css({margin:"0%",opacity:"0.01"}),b.animate({opacity:"1"},d,"linear",function(){a.css("margin","100%"),c()})},this.prev=function(a,b,c){b.css({margin:"0%",opacity:"0.01"}),b.animate({opacity:"1"},d,"linear",function(){a.css("margin","100%"),c()})}};Foundation.libs=Foundation.libs||{},Foundation.libs.orbit={name:"orbit",version:"5.5.3",settings:{animation:"slide",timer_speed:1e4,pause_on_hover:!0,resume_on_mouseout:!1,next_on_click:!0,animation_speed:500,stack_on_small:!1,navigation_arrows:!0,slide_number:!0,slide_number_text:"of",container_class:"orbit-container",stack_on_small_class:"orbit-stack-on-small",next_class:"orbit-next",prev_class:"orbit-prev",timer_container_class:"orbit-timer",timer_paused_class:"paused",timer_progress_class:"orbit-progress",slides_container_class:"orbit-slides-container",preloader_class:"preloader",slide_selector:"*",bullets_container_class:"orbit-bullets",bullets_active_class:"active",slide_number_class:"orbit-slide-number",caption_class:"orbit-caption",active_slide_class:"active",orbit_transition_class:"orbit-transitioning",bullets:!0,circular:!0,timer:!0,variable_height:!1,swipe:!0,before_slide_change:e,after_slide_change:e},init:function(a,b,c){this.bindings(b,c)},events:function(a){var b=new f(this.S(a),this.S(a).data("orbit-init"));this.S(a).data(this.name+"-instance",b)},reflow:function(){var a=this;if(a.S(a.scope).is("[data-orbit]")){var b=a.S(a.scope),c=b.data(a.name+"-instance");c.compute_dimensions()}else a.S("[data-orbit]",a.scope).each(function(b,c){var d=a.S(c),e=(a.data_options(d),d.data(a.name+"-instance"));e.compute_dimensions()})}}}(jQuery,window,window.document),function(a,b,c,d){"use strict";function e(a){var b=/fade/i.test(a),c=/pop/i.test(a);return{animate:b||c,pop:c,fade:b}}var f=[];Foundation.libs.reveal={name:"reveal",version:"5.5.3",locked:!1,settings:{animation:"fadeAndPop",animation_speed:250,close_on_background_click:!0,close_on_esc:!0,dismiss_modal_class:"close-reveal-modal",multiple_opened:!1,bg_class:"reveal-modal-bg",root_element:"body",open:function(){},opened:function(){},close:function(){},closed:function(){},on_ajax_error:a.noop,bg:a(".reveal-modal-bg"),css:{open:{opacity:0,visibility:"visible",display:"block"},close:{opacity:1,visibility:"hidden",display:"none"}}},init:function(b,c,d){a.extend(!0,this.settings,c,d),this.bindings(c,d)},events:function(a){var b=this,d=b.S;return d(this.scope).off(".reveal").on("click.fndtn.reveal","["+this.add_namespace("data-reveal-id")+"]:not([disabled])",function(a){if(a.preventDefault(),!b.locked){var c=d(this),e=c.data(b.data_attr("reveal-ajax")),f=c.data(b.data_attr("reveal-replace-content"));if(b.locked=!0,"undefined"==typeof e)b.open.call(b,c);else{var g=e===!0?c.attr("href"):e;b.open.call(b,c,{url:g},{replaceContentSel:f})}}}),d(c).on("click.fndtn.reveal",this.close_targets(),function(a){if(a.preventDefault(),!b.locked){var c=d("["+b.attr_name()+"].open").data(b.attr_name(!0)+"-init")||b.settings,e=d(a.target)[0]===d("."+c.bg_class)[0];if(e){if(!c.close_on_background_click)return;a.stopPropagation()}b.locked=!0,b.close.call(b,e?d("["+b.attr_name()+"].open:not(.toback)"):d(this).closest("["+b.attr_name()+"]"))}}),d("["+b.attr_name()+"]",this.scope).length>0?d(this.scope).on("open.fndtn.reveal",this.settings.open).on("opened.fndtn.reveal",this.settings.opened).on("opened.fndtn.reveal",this.open_video).on("close.fndtn.reveal",this.settings.close).on("closed.fndtn.reveal",this.settings.closed).on("closed.fndtn.reveal",this.close_video):d(this.scope).on("open.fndtn.reveal","["+b.attr_name()+"]",this.settings.open).on("opened.fndtn.reveal","["+b.attr_name()+"]",this.settings.opened).on("opened.fndtn.reveal","["+b.attr_name()+"]",this.open_video).on("close.fndtn.reveal","["+b.attr_name()+"]",this.settings.close).on("closed.fndtn.reveal","["+b.attr_name()+"]",this.settings.closed).on("closed.fndtn.reveal","["+b.attr_name()+"]",this.close_video),!0},key_up_on:function(a){var b=this;return b.S("body").off("keyup.fndtn.reveal").on("keyup.fndtn.reveal",function(a){var c=b.S("["+b.attr_name()+"].open"),d=c.data(b.attr_name(!0)+"-init")||b.settings;d&&27===a.which&&d.close_on_esc&&!b.locked&&b.close.call(b,c)}),!0},key_up_off:function(a){return this.S("body").off("keyup.fndtn.reveal"),!0},open:function(c,e){var g,h=this;c?"undefined"!=typeof c.selector?g=h.S("#"+c.data(h.data_attr("reveal-id"))).first():(g=h.S(this.scope),e=c):g=h.S(this.scope);var i=g.data(h.attr_name(!0)+"-init");if(i=i||this.settings,g.hasClass("open")&&c!==d&&c.attr("data-reveal-id")==g.attr("id"))return h.close(g);if(!g.hasClass("open")){var j=h.S("["+h.attr_name()+"].open");"undefined"==typeof g.data("css-top")&&g.data("css-top",parseInt(g.css("top"),10)).data("offset",this.cache_offset(g)),g.attr("tabindex","0").attr("aria-hidden","false"),this.key_up_on(g),g.on("open.fndtn.reveal",function(a){"fndtn.reveal"!==a.namespace}),g.on("open.fndtn.reveal").trigger("open.fndtn.reveal"),j.length<1&&this.toggle_bg(g,!0),"string"==typeof e&&(e={url:e});var k=function(){j.length>0&&(i.multiple_opened?h.to_back(j):h.hide(j,i.css.close)),i.multiple_opened&&f.push(g),h.show(g,i.css.open)};if("undefined"!=typeof e&&e.url){var l="undefined"!=typeof e.success?e.success:null;a.extend(e,{success:function(b,c,d){if(a.isFunction(l)){var e=l(b,c,d);"string"==typeof e&&(b=e)}"undefined"!=typeof options&&"undefined"!=typeof options.replaceContentSel?g.find(options.replaceContentSel).html(b):g.html(b),h.S(g).foundation("section","reflow"),h.S(g).children().foundation(),k()}}),i.on_ajax_error!==a.noop&&a.extend(e,{error:i.on_ajax_error}),a.ajax(e)}else k()}h.S(b).trigger("resize")},close:function(b){var b=b&&b.length?b:this.S(this.scope),c=this.S("["+this.attr_name()+"].open"),d=b.data(this.attr_name(!0)+"-init")||this.settings,e=this;if(c.length>0)if(b.removeAttr("tabindex","0").attr("aria-hidden","true"),this.locked=!0,this.key_up_off(b),b.trigger("close.fndtn.reveal"),(d.multiple_opened&&1===c.length||!d.multiple_opened||b.length>1)&&(e.toggle_bg(b,!1),e.to_front(b)),d.multiple_opened){var g=b.is(":not(.toback)");e.hide(b,d.css.close,d),g?f.pop():f=a.grep(f,function(a){var c=a[0]===b[0];return c&&e.to_front(b),!c}),f.length>0&&e.to_front(f[f.length-1])}else e.hide(c,d.css.close,d)},close_targets:function(){var a="."+this.settings.dismiss_modal_class;return this.settings.close_on_background_click?a+", ."+this.settings.bg_class:a},toggle_bg:function(b,c){0===this.S("."+this.settings.bg_class).length&&(this.settings.bg=a("<div />",{"class":this.settings.bg_class}).appendTo("body").hide());var e=this.settings.bg.filter(":visible").length>0;c!=e&&((c==d?e:!c)?this.hide(this.settings.bg):this.show(this.settings.bg))},show:function(c,d){if(d){var f=c.data(this.attr_name(!0)+"-init")||this.settings,g=f.root_element,h=this;if(0===c.parent(g).length){var i=c.wrap('<div style="display: none;" />').parent();c.on("closed.fndtn.reveal.wrapped",function(){c.detach().appendTo(i),c.unwrap().unbind("closed.fndtn.reveal.wrapped")}),c.detach().appendTo(g)}var j=e(f.animation);if(j.animate||(this.locked=!1),j.pop){d.top=a(b).scrollTop()-c.data("offset")+"px";var k={top:a(b).scrollTop()+c.data("css-top")+"px",opacity:1};return setTimeout(function(){return c.css(d).animate(k,f.animation_speed,"linear",function(){h.locked=!1,c.trigger("opened.fndtn.reveal")}).addClass("open")},f.animation_speed/2)}if(d.top=a(b).scrollTop()+c.data("css-top")+"px",j.fade){var k={opacity:1};return setTimeout(function(){return c.css(d).animate(k,f.animation_speed,"linear",function(){h.locked=!1,c.trigger("opened.fndtn.reveal")}).addClass("open")},f.animation_speed/2)}return c.css(d).show().css({opacity:1}).addClass("open").trigger("opened.fndtn.reveal")}var f=this.settings;return e(f.animation).fade?c.fadeIn(f.animation_speed/2):(this.locked=!1,c.show())},to_back:function(a){a.addClass("toback")},to_front:function(a){a.removeClass("toback")},hide:function(c,d){if(d){var f=c.data(this.attr_name(!0)+"-init"),g=this;f=f||this.settings;var h=e(f.animation);if(h.animate||(this.locked=!1),h.pop){var i={top:-a(b).scrollTop()-c.data("offset")+"px",opacity:0};return setTimeout(function(){return c.animate(i,f.animation_speed,"linear",function(){g.locked=!1,c.css(d).trigger("closed.fndtn.reveal")}).removeClass("open")},f.animation_speed/2)}if(h.fade){var i={opacity:0};return setTimeout(function(){return c.animate(i,f.animation_speed,"linear",function(){g.locked=!1,c.css(d).trigger("closed.fndtn.reveal")}).removeClass("open")},f.animation_speed/2)}return c.hide().css(d).removeClass("open").trigger("closed.fndtn.reveal")}var f=this.settings;return e(f.animation).fade?c.fadeOut(f.animation_speed/2):c.hide()},close_video:function(b){var c=a(".flex-video",b.target),d=a("iframe",c);d.length>0&&(d.attr("data-src",d[0].src),d.attr("src",d.attr("src")),c.hide())},open_video:function(b){var c=a(".flex-video",b.target),e=c.find("iframe");if(e.length>0){var f=e.attr("data-src");if("string"==typeof f)e[0].src=e.attr("data-src");else{var g=e[0].src;e[0].src=d,e[0].src=g}c.show()}},data_attr:function(a){return this.namespace.length>0?this.namespace+"-"+a:a},cache_offset:function(a){var b=a.show().height()+parseInt(a.css("top"),10)+a.scrollY;return a.hide(),b},off:function(){a(this.scope).off(".fndtn.reveal")},reflow:function(){}}}(jQuery,window,window.document),function(a,b,c,d){"use strict";Foundation.libs.slider={name:"slider",version:"5.5.3",settings:{start:0,end:100,step:1,precision:2,initial:null,display_selector:"",vertical:!1,trigger_input_change:!1,on_change:function(){}},cache:{},init:function(a,b,c){Foundation.inherit(this,"throttle"),this.bindings(b,c),this.reflow()},events:function(){var c=this;a(this.scope).off(".slider").on("mousedown.fndtn.slider touchstart.fndtn.slider pointerdown.fndtn.slider","["+c.attr_name()+"]:not(.disabled, [disabled]) .range-slider-handle",function(b){c.cache.active||(b.preventDefault(),c.set_active_slider(a(b.target)))}).on("mousemove.fndtn.slider touchmove.fndtn.slider pointermove.fndtn.slider",function(d){if(c.cache.active)if(d.preventDefault(),a.data(c.cache.active[0],"settings").vertical){var e=0;d.pageY||(e=b.scrollY),c.calculate_position(c.cache.active,c.get_cursor_position(d,"y")+e)}else c.calculate_position(c.cache.active,c.get_cursor_position(d,"x"))}).on("mouseup.fndtn.slider touchend.fndtn.slider pointerup.fndtn.slider",function(d){if(!c.cache.active){var e="slider"===a(d.target).attr("role")?a(d.target):a(d.target).closest(".range-slider").find("[role='slider']");if(e.length&&!e.parent().hasClass("disabled")&&!e.parent().attr("disabled"))if(c.set_active_slider(e),a.data(c.cache.active[0],"settings").vertical){var f=0;d.pageY||(f=b.scrollY),c.calculate_position(c.cache.active,c.get_cursor_position(d,"y")+f)}else c.calculate_position(c.cache.active,c.get_cursor_position(d,"x"))}c.remove_active_slider()}).on("change.fndtn.slider",function(a){c.settings.on_change()}),c.S(b).on("resize.fndtn.slider",c.throttle(function(a){c.reflow()},300)),this.S("["+this.attr_name()+"]").each(function(){var b=a(this),d=b.children(".range-slider-handle")[0],e=c.initialize_settings(d);""!=e.display_selector&&a(e.display_selector).each(function(){a(this).attr("value")&&a(this).off("change").on("change",function(){b.foundation("slider","set_value",a(this).val())})})})},get_cursor_position:function(a,b){var c,d="page"+b.toUpperCase(),e="client"+b.toUpperCase();return"undefined"!=typeof a[d]?c=a[d]:"undefined"!=typeof a.originalEvent[e]?c=a.originalEvent[e]:a.originalEvent.touches&&a.originalEvent.touches[0]&&"undefined"!=typeof a.originalEvent.touches[0][e]?c=a.originalEvent.touches[0][e]:a.currentPoint&&"undefined"!=typeof a.currentPoint[b]&&(c=a.currentPoint[b]),c},set_active_slider:function(a){this.cache.active=a},remove_active_slider:function(){this.cache.active=null},calculate_position:function(b,c){var d=this,e=a.data(b[0],"settings"),f=(a.data(b[0],"handle_l"),a.data(b[0],"handle_o"),a.data(b[0],"bar_l")),g=a.data(b[0],"bar_o");requestAnimationFrame(function(){var a;a=Foundation.rtl&&!e.vertical?d.limit_to((g+f-c)/f,0,1):d.limit_to((c-g)/f,0,1),a=e.vertical?1-a:a;var h=d.normalized_value(a,e.start,e.end,e.step,e.precision);d.set_ui(b,h)})},set_ui:function(b,c){var d=a.data(b[0],"settings"),e=a.data(b[0],"handle_l"),f=a.data(b[0],"bar_l"),g=this.normalized_percentage(c,d.start,d.end),h=g*(f-e)-1,i=100*g,j=b.parent(),k=b.parent().children("input[type=hidden]");Foundation.rtl&&!d.vertical&&(h=-h),h=d.vertical?-h+f-e+1:h,this.set_translate(b,h,d.vertical),d.vertical?b.siblings(".range-slider-active-segment").css("height",i+"%"):b.siblings(".range-slider-active-segment").css("width",i+"%"),j.attr(this.attr_name(),c).trigger("change.fndtn.slider"),k.val(c),d.trigger_input_change&&k.trigger("change.fndtn.slider"),b[0].hasAttribute("aria-valuemin")||b.attr({"aria-valuemin":d.start,"aria-valuemax":d.end}),b.attr("aria-valuenow",c),""!=d.display_selector&&a(d.display_selector).each(function(){this.hasAttribute("value")?a(this).val(c):a(this).text(c)})},normalized_percentage:function(a,b,c){return Math.min(1,(a-b)/(c-b))},normalized_value:function(a,b,c,d,e){var f=c-b,g=a*f,h=(g-g%d)/d,i=g%d,j=i>=.5*d?d:0;return(h*d+j+b).toFixed(e)},set_translate:function(b,c,d){d?a(b).css("-webkit-transform","translateY("+c+"px)").css("-moz-transform","translateY("+c+"px)").css("-ms-transform","translateY("+c+"px)").css("-o-transform","translateY("+c+"px)").css("transform","translateY("+c+"px)"):a(b).css("-webkit-transform","translateX("+c+"px)").css("-moz-transform","translateX("+c+"px)").css("-ms-transform","translateX("+c+"px)").css("-o-transform","translateX("+c+"px)").css("transform","translateX("+c+"px)")},limit_to:function(a,b,c){return Math.min(Math.max(a,b),c)},initialize_settings:function(b){var c,d=a.extend({},this.settings,this.data_options(a(b).parent()));return null===d.precision&&(c=(""+d.step).match(/\.([\d]*)/),d.precision=c&&c[1]?c[1].length:0),d.vertical?(a.data(b,"bar_o",a(b).parent().offset().top),a.data(b,"bar_l",a(b).parent().outerHeight()),a.data(b,"handle_o",a(b).offset().top),a.data(b,"handle_l",a(b).outerHeight())):(a.data(b,"bar_o",a(b).parent().offset().left),a.data(b,"bar_l",a(b).parent().outerWidth()),a.data(b,"handle_o",a(b).offset().left),a.data(b,"handle_l",a(b).outerWidth())),a.data(b,"bar",a(b).parent()),a.data(b,"settings",d)},set_initial_position:function(b){var c=a.data(b.children(".range-slider-handle")[0],"settings"),d="number"!=typeof c.initial||isNaN(c.initial)?Math.floor(.5*(c.end-c.start)/c.step)*c.step+c.start:c.initial,e=b.children(".range-slider-handle");this.set_ui(e,d)},set_value:function(b){var c=this;a("["+c.attr_name()+"]",this.scope).each(function(){a(this).attr(c.attr_name(),b)}),a(this.scope).attr(c.attr_name())&&a(this.scope).attr(c.attr_name(),b),c.reflow()},reflow:function(){var b=this;b.S("["+this.attr_name()+"]").each(function(){var c=a(this).children(".range-slider-handle")[0],d=a(this).attr(b.attr_name());b.initialize_settings(c),d?b.set_ui(a(c),parseFloat(d)):b.set_initial_position(a(this))})}}}(jQuery,window,window.document),function(a,b,c,d){"use strict";Foundation.libs.tab={name:"tab",version:"5.5.3",settings:{active_class:"active",callback:function(){},deep_linking:!1,scroll_to_content:!0,is_hover:!1},default_tab_hashes:[],init:function(a,b,c){var d=this,e=this.S;e("["+this.attr_name()+"] > .active > a",this.scope).each(function(){d.default_tab_hashes.push(this.hash)}),this.bindings(b,c),this.handle_location_hash_change()},events:function(){var a=this,c=this.S,d=function(b,d){var e=c(d).closest("["+a.attr_name()+"]").data(a.attr_name(!0)+"-init");if(!e.is_hover||Modernizr.touch){var f=b.keyCode||b.which;9!==f&&(b.preventDefault(),b.stopPropagation()),a.toggle_active_tab(c(d).parent())}};c(this.scope).off(".tab").on("keydown.fndtn.tab","["+this.attr_name()+"] > * > a",function(a){var b=a.keyCode||a.which;if(13===b||32===b){var c=this;d(a,c)}}).on("click.fndtn.tab","["+this.attr_name()+"] > * > a",function(a){var b=this;d(a,b)}).on("mouseenter.fndtn.tab","["+this.attr_name()+"] > * > a",function(b){var d=c(this).closest("["+a.attr_name()+"]").data(a.attr_name(!0)+"-init");d.is_hover&&a.toggle_active_tab(c(this).parent())}),c(b).on("hashchange.fndtn.tab",function(b){b.preventDefault(),a.handle_location_hash_change()})},handle_location_hash_change:function(){var b=this,c=this.S;c("["+this.attr_name()+"]",this.scope).each(function(){var e=c(this).data(b.attr_name(!0)+"-init");if(e.deep_linking){var f;if(f=e.scroll_to_content?b.scope.location.hash:b.scope.location.hash.replace("fndtn-",""),""!=f){var g=c(f);if(g.hasClass("content")&&g.parent().hasClass("tabs-content"))b.toggle_active_tab(a("["+b.attr_name()+"] > * > a[href="+f+"]").parent());else{var h=g.closest(".content").attr("id");h!=d&&b.toggle_active_tab(a("["+b.attr_name()+"] > * > a[href=#"+h+"]").parent(),f)}}else for(var i=0;i<b.default_tab_hashes.length;i++)b.toggle_active_tab(a("["+b.attr_name()+"] > * > a[href="+b.default_tab_hashes[i]+"]").parent())}})},toggle_active_tab:function(e,f){var g=this,h=g.S,i=e.closest("["+this.attr_name()+"]"),j=e.find("a"),k=e.children("a").first(),l="#"+k.attr("href").split("#")[1],m=h(l),n=e.siblings(),o=i.data(this.attr_name(!0)+"-init"),p=function(b){var d,e=a(this),f=a(this).parents("li").prev().children('[role="tab"]'),g=a(this).parents("li").next().children('[role="tab"]');switch(b.keyCode){case 37:d=f;break;case 39:d=g;break;default:d=!1}d.length&&(e.attr({tabindex:"-1","aria-selected":null}),d.attr({tabindex:"0","aria-selected":!0}).focus()),a('[role="tabpanel"]').attr("aria-hidden","true"),a("#"+a(c.activeElement).attr("href").substring(1)).attr("aria-hidden",null)},q=function(a){var c=o.scroll_to_content?g.default_tab_hashes[0]:"fndtn-"+g.default_tab_hashes[0].replace("#","");(a!==c||b.location.hash)&&(b.location.hash=a)};k.data("tab-content")&&(l="#"+k.data("tab-content").split("#")[1],m=h(l)),o.deep_linking&&(o.scroll_to_content?(q(f||l),f==d||f==l?e.parent()[0].scrollIntoView():h(l)[0].scrollIntoView()):q(f!=d?"fndtn-"+f.replace("#",""):"fndtn-"+l.replace("#",""))),e.addClass(o.active_class).triggerHandler("opened"),j.attr({"aria-selected":"true",tabindex:0}),n.removeClass(o.active_class),n.find("a").attr({"aria-selected":"false"}),m.siblings().removeClass(o.active_class).attr({"aria-hidden":"true"}),m.addClass(o.active_class).attr("aria-hidden","false").removeAttr("tabindex"),o.callback(e),m.triggerHandler("toggled",[m]),i.triggerHandler("toggled",[e]),j.off("keydown").on("keydown",p)},data_attr:function(a){return this.namespace.length>0?this.namespace+"-"+a:a},off:function(){},reflow:function(){}}}(jQuery,window,window.document),function(a,b,c,d){"use strict";Foundation.libs.tooltip={name:"tooltip",version:"5.5.3",settings:{additional_inheritable_classes:[],tooltip_class:".tooltip",append_to:"body",touch_close_text:"Tap To Close",disable_for_touch:!1,hover_delay:200,fade_in_duration:150,fade_out_duration:150,show_on:"all",tip_template:function(a,b){return'<span data-selector="'+a+'" id="'+a+'" class="'+Foundation.libs.tooltip.settings.tooltip_class.substring(1)+'" role="tooltip">'+b+'<span class="nub"></span></span>'}},cache:{},init:function(a,b,c){Foundation.inherit(this,"random_str"),this.bindings(b,c)},should_show:function(b,c){var d=a.extend({},this.settings,this.data_options(b));return"all"===d.show_on?!0:this.small()&&"small"===d.show_on?!0:this.medium()&&"medium"===d.show_on?!0:this.large()&&"large"===d.show_on?!0:!1},medium:function(){return matchMedia(Foundation.media_queries.medium).matches},large:function(){return matchMedia(Foundation.media_queries.large).matches},events:function(b){function c(a,b,c){a.timer||(c?(a.timer=null,e.showTip(b)):a.timer=setTimeout(function(){a.timer=null,e.showTip(b)}.bind(a),e.settings.hover_delay))}function d(a,b){a.timer&&(clearTimeout(a.timer),a.timer=null),e.hide(b)}var e=this,f=e.S;e.create(this.S(b)),a(this.scope).off(".tooltip").on("mouseenter.fndtn.tooltip mouseleave.fndtn.tooltip touchstart.fndtn.tooltip MSPointerDown.fndtn.tooltip","["+this.attr_name()+"]",function(b){var g=f(this),h=a.extend({},e.settings,e.data_options(g)),i=!1;if(Modernizr.touch&&/touchstart|MSPointerDown/i.test(b.type)&&f(b.target).is("a"))return!1;if(/mouse/i.test(b.type)&&e.ie_touch(b))return!1;if(g.hasClass("open"))Modernizr.touch&&/touchstart|MSPointerDown/i.test(b.type)&&b.preventDefault(),e.hide(g);else{if(h.disable_for_touch&&Modernizr.touch&&/touchstart|MSPointerDown/i.test(b.type))return;if(!h.disable_for_touch&&Modernizr.touch&&/touchstart|MSPointerDown/i.test(b.type)&&(b.preventDefault(),f(h.tooltip_class+".open").hide(),i=!0,a(".open["+e.attr_name()+"]").length>0)){var j=f(a(".open["+e.attr_name()+"]")[0]);e.hide(j)}/enter|over/i.test(b.type)?c(this,g):"mouseout"===b.type||"mouseleave"===b.type?d(this,g):c(this,g,!0)}}).on("mouseleave.fndtn.tooltip touchstart.fndtn.tooltip MSPointerDown.fndtn.tooltip","["+this.attr_name()+"].open",function(b){return/mouse/i.test(b.type)&&e.ie_touch(b)?!1:void(("touch"!=a(this).data("tooltip-open-event-type")||"mouseleave"!=b.type)&&("mouse"==a(this).data("tooltip-open-event-type")&&/MSPointerDown|touchstart/i.test(b.type)?e.convert_to_touch(a(this)):d(this,a(this))))}).on("DOMNodeRemoved DOMAttrModified","["+this.attr_name()+"]:not(a)",function(a){d(this,f(this))})},ie_touch:function(a){return!1},showTip:function(a){var b=this.getTip(a);return this.should_show(a,b)?this.show(a):void 0},getTip:function(b){var c=this.selector(b),d=a.extend({},this.settings,this.data_options(b)),e=null;return c&&(e=this.S('span[data-selector="'+c+'"]'+d.tooltip_class)),"object"==typeof e?e:!1},selector:function(a){var b=a.attr(this.attr_name())||a.attr("data-selector");return"string"!=typeof b&&(b=this.random_str(6),a.attr("data-selector",b).attr("aria-describedby",b)),b},create:function(c){var d=this,e=a.extend({},this.settings,this.data_options(c)),f=this.settings.tip_template;"string"==typeof e.tip_template&&b.hasOwnProperty(e.tip_template)&&(f=b[e.tip_template]);
+var g=a(f(this.selector(c),a("<div></div>").html(c.attr("title")).html())),h=this.inheritable_classes(c);g.addClass(h).appendTo(e.append_to),Modernizr.touch&&(g.append('<span class="tap-to-close">'+e.touch_close_text+"</span>"),g.on("touchstart.fndtn.tooltip MSPointerDown.fndtn.tooltip",function(a){d.hide(c)})),c.removeAttr("title").attr("title","")},reposition:function(b,c,d){var e,f,g,h,i;c.css("visibility","hidden").show(),e=b.data("width"),f=c.children(".nub"),g=f.outerHeight(),h=f.outerWidth(),this.small()?c.css({width:"100%"}):c.css({width:e?e:"auto"}),i=function(a,b,c,d,e,f){return a.css({top:b?b:"auto",bottom:d?d:"auto",left:e?e:"auto",right:c?c:"auto"}).end()};var j=b.offset().top,k=b.offset().left,l=b.outerHeight();if(i(c,j+l+10,"auto","auto",k),this.small())i(c,j+l+10,"auto","auto",12.5,a(this.scope).width()),c.addClass("tip-override"),i(f,-g,"auto","auto",k);else{Foundation.rtl&&(f.addClass("rtl"),k=k+b.outerWidth()-c.outerWidth()),i(c,j+l+10,"auto","auto",k),f.attr("style")&&f.removeAttr("style"),c.removeClass("tip-override");var m=c.outerHeight();d&&d.indexOf("tip-top")>-1?(Foundation.rtl&&f.addClass("rtl"),i(c,j-m,"auto","auto",k).removeClass("tip-override")):d&&d.indexOf("tip-left")>-1?(i(c,j+l/2-m/2,"auto","auto",k-c.outerWidth()-g).removeClass("tip-override"),f.removeClass("rtl")):d&&d.indexOf("tip-right")>-1&&(i(c,j+l/2-m/2,"auto","auto",k+b.outerWidth()+g).removeClass("tip-override"),f.removeClass("rtl"))}c.css("visibility","visible").hide()},small:function(){return matchMedia(Foundation.media_queries.small).matches&&!matchMedia(Foundation.media_queries.medium).matches},inheritable_classes:function(b){var c=a.extend({},this.settings,this.data_options(b)),d=["tip-top","tip-left","tip-bottom","tip-right","radius","round"].concat(c.additional_inheritable_classes),e=b.attr("class"),f=e?a.map(e.split(" "),function(b,c){return-1!==a.inArray(b,d)?b:void 0}).join(" "):"";return a.trim(f)},convert_to_touch:function(b){var c=this,d=c.getTip(b),e=a.extend({},c.settings,c.data_options(b));0===d.find(".tap-to-close").length&&(d.append('<span class="tap-to-close">'+e.touch_close_text+"</span>"),d.on("click.fndtn.tooltip.tapclose touchstart.fndtn.tooltip.tapclose MSPointerDown.fndtn.tooltip.tapclose",function(a){c.hide(b)})),b.data("tooltip-open-event-type","touch")},show:function(a){var b=this.getTip(a);"touch"==a.data("tooltip-open-event-type")&&this.convert_to_touch(a),this.reposition(a,b,a.attr("class")),a.addClass("open"),b.fadeIn(this.settings.fade_in_duration)},hide:function(a){var b=this.getTip(a);b.fadeOut(this.settings.fade_out_duration,function(){b.find(".tap-to-close").remove(),b.off("click.fndtn.tooltip.tapclose MSPointerDown.fndtn.tapclose"),a.removeClass("open")})},off:function(){var b=this;this.S(this.scope).off(".fndtn.tooltip"),this.S(this.settings.tooltip_class).each(function(c){a("["+b.attr_name()+"]").eq(c).attr("title",a(this).text())}).remove()},reflow:function(){}}}(jQuery,window,window.document),function(a,b,c,d){"use strict";Foundation.libs.topbar={name:"topbar",version:"5.5.3",settings:{index:0,start_offset:0,sticky_class:"sticky",custom_back_text:!0,back_text:"Back",mobile_show_parent_link:!0,is_hover:!0,scrolltop:!0,sticky_on:"all",dropdown_autoclose:!0},init:function(b,c,d){Foundation.inherit(this,"add_custom_rule register_media throttle");var e=this;e.register_media("topbar","foundation-mq-topbar"),this.bindings(c,d),e.S("["+this.attr_name()+"]",this.scope).each(function(){var b=a(this),c=b.data(e.attr_name(!0)+"-init");e.S("section, .top-bar-section",this);b.data("index",0);var d=b.parent();d.hasClass("fixed")||e.is_sticky(b,d,c)?(e.settings.sticky_class=c.sticky_class,e.settings.sticky_topbar=b,b.data("height",d.outerHeight()),b.data("stickyoffset",d.offset().top)):b.data("height",b.outerHeight()),c.assembled||e.assemble(b),c.is_hover?e.S(".has-dropdown",b).addClass("not-click"):e.S(".has-dropdown",b).removeClass("not-click"),e.add_custom_rule(".f-topbar-fixed { padding-top: "+b.data("height")+"px }"),d.hasClass("fixed")&&e.S("body").addClass("f-topbar-fixed")})},is_sticky:function(a,b,c){var d=b.hasClass(c.sticky_class),e=matchMedia(Foundation.media_queries.small).matches,f=matchMedia(Foundation.media_queries.medium).matches,g=matchMedia(Foundation.media_queries.large).matches;return d&&"all"===c.sticky_on?!0:d&&this.small()&&-1!==c.sticky_on.indexOf("small")&&e&&!f&&!g?!0:d&&this.medium()&&-1!==c.sticky_on.indexOf("medium")&&e&&f&&!g?!0:d&&this.large()&&-1!==c.sticky_on.indexOf("large")&&e&&f&&g?!0:!1},toggle:function(c){var d,e=this;d=c?e.S(c).closest("["+this.attr_name()+"]"):e.S("["+this.attr_name()+"]");var f=d.data(this.attr_name(!0)+"-init"),g=e.S("section, .top-bar-section",d);e.breakpoint()&&(e.rtl?(g.css({right:"0%"}),a(">.name",g).css({right:"100%"})):(g.css({left:"0%"}),a(">.name",g).css({left:"100%"})),e.S("li.moved",g).removeClass("moved"),d.data("index",0),d.toggleClass("expanded").css("height","")),f.scrolltop?d.hasClass("expanded")?d.parent().hasClass("fixed")&&(f.scrolltop?(d.parent().removeClass("fixed"),d.addClass("fixed"),e.S("body").removeClass("f-topbar-fixed"),b.scrollTo(0,0)):d.parent().removeClass("expanded")):d.hasClass("fixed")&&(d.parent().addClass("fixed"),d.removeClass("fixed"),e.S("body").addClass("f-topbar-fixed")):(e.is_sticky(d,d.parent(),f)&&d.parent().addClass("fixed"),d.parent().hasClass("fixed")&&(d.hasClass("expanded")?(d.addClass("fixed"),d.parent().addClass("expanded"),e.S("body").addClass("f-topbar-fixed")):(d.removeClass("fixed"),d.parent().removeClass("expanded"),e.update_sticky_positioning())))},timer:null,events:function(c){var d=this,e=this.S;e(this.scope).off(".topbar").on("click.fndtn.topbar","["+this.attr_name()+"] .toggle-topbar",function(a){a.preventDefault(),d.toggle(this)}).on("click.fndtn.topbar contextmenu.fndtn.topbar",'.top-bar .top-bar-section li a[href^="#"],['+this.attr_name()+'] .top-bar-section li a[href^="#"]',function(b){var c=a(this).closest("li"),e=c.closest("["+d.attr_name()+"]"),f=e.data(d.attr_name(!0)+"-init");if(f.dropdown_autoclose&&f.is_hover){var g=a(this).closest(".hover");g.removeClass("hover")}!d.breakpoint()||c.hasClass("back")||c.hasClass("has-dropdown")||d.toggle()}).on("click.fndtn.topbar","["+this.attr_name()+"] li.has-dropdown",function(b){var c=e(this),f=e(b.target),g=c.closest("["+d.attr_name()+"]"),h=g.data(d.attr_name(!0)+"-init");return f.data("revealId")?void d.toggle():void(d.breakpoint()||(!h.is_hover||Modernizr.touch)&&(b.stopImmediatePropagation(),c.hasClass("hover")?(c.removeClass("hover").find("li").removeClass("hover"),c.parents("li.hover").removeClass("hover")):(c.addClass("hover"),a(c).siblings().removeClass("hover"),"A"===f[0].nodeName&&f.parent().hasClass("has-dropdown")&&b.preventDefault())))}).on("click.fndtn.topbar","["+this.attr_name()+"] .has-dropdown>a",function(a){if(d.breakpoint()){a.preventDefault();var b=e(this),c=b.closest("["+d.attr_name()+"]"),f=c.find("section, .top-bar-section"),g=(b.next(".dropdown").outerHeight(),b.closest("li"));c.data("index",c.data("index")+1),g.addClass("moved"),d.rtl?(f.css({right:-(100*c.data("index"))+"%"}),f.find(">.name").css({right:100*c.data("index")+"%"})):(f.css({left:-(100*c.data("index"))+"%"}),f.find(">.name").css({left:100*c.data("index")+"%"})),c.css("height",b.siblings("ul").outerHeight(!0)+c.data("height"))}}),e(b).off(".topbar").on("resize.fndtn.topbar",d.throttle(function(){d.resize.call(d)},50)).trigger("resize.fndtn.topbar").load(function(){e(this).trigger("resize.fndtn.topbar")}),e("body").off(".topbar").on("click.fndtn.topbar",function(a){var b=e(a.target).closest("li").closest("li.hover");b.length>0||e("["+d.attr_name()+"] li.hover").removeClass("hover")}),e(this.scope).on("click.fndtn.topbar","["+this.attr_name()+"] .has-dropdown .back",function(a){a.preventDefault();var b=e(this),c=b.closest("["+d.attr_name()+"]"),f=c.find("section, .top-bar-section"),g=(c.data(d.attr_name(!0)+"-init"),b.closest("li.moved")),h=g.parent();c.data("index",c.data("index")-1),d.rtl?(f.css({right:-(100*c.data("index"))+"%"}),f.find(">.name").css({right:100*c.data("index")+"%"})):(f.css({left:-(100*c.data("index"))+"%"}),f.find(">.name").css({left:100*c.data("index")+"%"})),0===c.data("index")?c.css("height",""):c.css("height",h.outerHeight(!0)+c.data("height")),setTimeout(function(){g.removeClass("moved")},300)}),e(this.scope).find(".dropdown a").focus(function(){a(this).parents(".has-dropdown").addClass("hover")}).blur(function(){a(this).parents(".has-dropdown").removeClass("hover")})},resize:function(){var a=this;a.S("["+this.attr_name()+"]").each(function(){var b,d=a.S(this),e=d.data(a.attr_name(!0)+"-init"),f=d.parent("."+a.settings.sticky_class);if(!a.breakpoint()){var g=d.hasClass("expanded");d.css("height","").removeClass("expanded").find("li").removeClass("hover"),g&&a.toggle(d)}a.is_sticky(d,f,e)&&(f.hasClass("fixed")?(f.removeClass("fixed"),b=f.offset().top,a.S(c.body).hasClass("f-topbar-fixed")&&(b-=d.data("height")),d.data("stickyoffset",b),f.addClass("fixed")):(b=f.offset().top,d.data("stickyoffset",b)))})},breakpoint:function(){return!matchMedia(Foundation.media_queries.topbar).matches},small:function(){return matchMedia(Foundation.media_queries.small).matches},medium:function(){return matchMedia(Foundation.media_queries.medium).matches},large:function(){return matchMedia(Foundation.media_queries.large).matches},assemble:function(b){var c=this,d=b.data(this.attr_name(!0)+"-init"),e=c.S("section, .top-bar-section",b);e.detach(),c.S(".has-dropdown>a",e).each(function(){var b,e=c.S(this),f=e.siblings(".dropdown"),g=e.attr("href");f.find(".title.back").length||(b=a(1==d.mobile_show_parent_link&&g?'<li class="title back js-generated"><h5><a href="javascript:void(0)"></a></h5></li><li class="parent-link hide-for-medium-up"><a class="parent-link js-generated" href="'+g+'">'+e.html()+"</a></li>":'<li class="title back js-generated"><h5><a href="javascript:void(0)"></a></h5>'),1==d.custom_back_text?a("h5>a",b).html(d.back_text):a("h5>a",b).html("« "+e.html()),f.prepend(b))}),e.appendTo(b),this.sticky(),this.assembled(b)},assembled:function(b){b.data(this.attr_name(!0),a.extend({},b.data(this.attr_name(!0)),{assembled:!0}))},height:function(b){var c=0,d=this;return a("> li",b).each(function(){c+=d.S(this).outerHeight(!0)}),c},sticky:function(){var a=this;this.S(b).on("scroll",function(){a.update_sticky_positioning()})},update_sticky_positioning:function(){var a="."+this.settings.sticky_class,c=this.S(b),d=this;if(d.settings.sticky_topbar&&d.is_sticky(this.settings.sticky_topbar,this.settings.sticky_topbar.parent(),this.settings)){var e=this.settings.sticky_topbar.data("stickyoffset")+this.settings.start_offset;d.S(a).hasClass("expanded")||(c.scrollTop()>e?d.S(a).hasClass("fixed")||(d.S(a).addClass("fixed"),d.S("body").addClass("f-topbar-fixed")):c.scrollTop()<=e&&d.S(a).hasClass("fixed")&&(d.S(a).removeClass("fixed"),d.S("body").removeClass("f-topbar-fixed")))}},off:function(){this.S(this.scope).off(".fndtn.topbar"),this.S(b).off(".fndtn.topbar")},reflow:function(){}}}(jQuery,window,window.document);;// Load foundation
+$(document).foundation();
+$(document).ready(function () {
+ $('ul.children').each(function () {
+ $(this).before('<a class="toggle" href="#"></a>');
+ });
+ $('a.toggle').click('click', function () {
+ $(this).toggleClass('open');
+ $(this).siblings('ul').toggleClass('open');
+ });
+
+
+ //move the last list item before the first item. The purpose of this is if the user clicks previous he will be able to see the last item.
+
+ //when user clicks the image for sliding right
+ var event_feed = $("#feed");
+ var event_rotate = $(".rotate");
+ event_rotate.find("button").addClass("view-all");
+ event_feed.addClass("feed");
+ event_feed.children("div").addClass("feed-block");
+
+ Array.max = function( array ){
+ return Math.max.apply( Math, array );
+ };
+
+ var event_header_heights = [];
+ $(event_feed).find('div').each( function () {
+ var event_header = $(this).find('h6');
+ event_header_heights.push(event_header.height());
+ });
+
+ var header_height_max = Array.max(event_header_heights);
+
+ // replace the event's img element with a wrapper div that has a background image of the same src
+ $(event_feed).find("div").each( function () {
+ var event_header = $(this).find('h6');
+ var prev = $(this).prev();
+ var next = $(this).next();
+
+ event_header.css("height", header_height_max + "px");
+
+ var img_src = $(this).find("img").attr('src');
+ $(this).find('img').wrap("<div style='background: url(" + img_src + ") no-repeat center center;background-size: cover;' class='image-container'></div>");
+ $(this).find('img').remove();
+
+ });
+
+// changing the img tag for category view from a source to having a background to make the sizes uniform .attachment-shop_single
+ $(".attachment-shop_catalog").each( function () {
+ $(this).wrap('<div class="image_wrapper"></div>');
+ });
+
+ $(".image_wrapper").each( function () {
+ var src = $(this).find('img').attr("src");
+ $(this).css("height", 175).css("width", 'auto');
+ $(this).css("background", 'url(' + src + ') no-repeat center center').css("background-size", "cover");
+ $(this).find('img').remove();
+ });
+
+ var products = $("ul.products");
+ products.find("li").each( function () {
+ $(this).addClass("data-equalizer-watch");
+ });
+
+ $("#tab-description").find("h2:contains('Product Description')").remove();
+ $(".html5_video_tab").find('a').html("Video");
+
+ // wrap every 3 li elements in a div class=row so we can add data equalizer
+ var divs = $("ul.products > li");
+ for(var i = 0; i < divs.length; i+=3) {
+ divs.slice(i, i+3).wrapAll("<div class='row categories data-equalizer'></div>");
+ }
+
+ // change breadcrumbs 'products' to 'experiences'
+ $(".post-product-archive").find('span').text('Tours');
+
+ $("[property=name]:contains('Products')").html('Tours');
+
+ $("a.product_image_link").fancybox({
+
+ helpers: {
+ overlay: { locked: false },
+ title: { type: 'inside'},
+ },
+ afterLoad: function(){
+ this.title = $(this.element).find('img').attr('alt');
+ }
+ });
+
+ $(".st_sharethis").insertAfter(".images");
+
+ $(".tag_image").each( function () {
+ $(this).on("click", function () {
+ window.location.href = $(this).siblings('a').attr("href")
+ });
+ });
+
+ $(".categories").find(".type-product").each( function (){
+ $(this).find('small').insertAfter($(this).find('h3'));
+ });
+
+ if ($(".form-confirmation").length > 0){
+ $("div.breadcrumbs").css("margin-bottom", "25px")
+ $(".form-confirmation").insertAfter("div.breadcrumbs");
+ }
+
+ $(".blocks").find('a').removeAttr("target");
+
+ if ($.trim($("#tab-html5_video").text()).length === 0){
+ $(".html5_video_tab").remove();
+ }
+ if ($.trim($("#tab-itinerary_tab").text()).length === 0){
+ $(".itinerary_tab_tab").remove();
+ }
+});
--- /dev/null
+// Load foundation
+$(document).foundation();
+$(document).ready(function () {
+ $('ul.children').each(function () {
+ $(this).before('<a class="toggle" href="#"></a>');
+ });
+ $('a.toggle').click('click', function () {
+ $(this).toggleClass('open');
+ $(this).siblings('ul').toggleClass('open');
+ });
+
+
+ //move the last list item before the first item. The purpose of this is if the user clicks previous he will be able to see the last item.
+
+ //when user clicks the image for sliding right
+ var event_feed = $("#feed");
+ var event_rotate = $(".rotate");
+ event_rotate.find("button").addClass("view-all");
+ event_feed.addClass("feed");
+ event_feed.children("div").addClass("feed-block");
+
+ Array.max = function( array ){
+ return Math.max.apply( Math, array );
+ };
+
+ var event_header_heights = [];
+ $(event_feed).find('div').each( function () {
+ var event_header = $(this).find('h6');
+ event_header_heights.push(event_header.height());
+ });
+
+ var header_height_max = Array.max(event_header_heights);
+
+ // replace the event's img element with a wrapper div that has a background image of the same src
+ $(event_feed).find("div").each( function () {
+ var event_header = $(this).find('h6');
+ var prev = $(this).prev();
+ var next = $(this).next();
+
+ event_header.css("height", header_height_max + "px");
+
+ var img_src = $(this).find("img").attr('src');
+ $(this).find('img').wrap("<div style='background: url(" + img_src + ") no-repeat center center;background-size: cover;' class='image-container'></div>");
+ $(this).find('img').remove();
+
+ });
+
+// changing the img tag for category view from a source to having a background to make the sizes uniform .attachment-shop_single
+ $(".attachment-shop_catalog").each( function () {
+ $(this).wrap('<div class="image_wrapper"></div>');
+ });
+
+ $(".image_wrapper").each( function () {
+ var src = $(this).find('img').attr("src");
+ $(this).css("height", 175).css("width", 'auto');
+ $(this).css("background", 'url(' + src + ') no-repeat center center').css("background-size", "cover");
+ $(this).find('img').remove();
+ });
+
+ var products = $("ul.products");
+ products.find("li").each( function () {
+ $(this).addClass("data-equalizer-watch");
+ });
+
+ $("#tab-description").find("h2:contains('Product Description')").remove();
+ $(".html5_video_tab").find('a').html("Video");
+
+ // wrap every 3 li elements in a div class=row so we can add data equalizer
+ var divs = $("ul.products > li");
+ for(var i = 0; i < divs.length; i+=3) {
+ divs.slice(i, i+3).wrapAll("<div class='row categories data-equalizer'></div>");
+ }
+
+ // change breadcrumbs 'products' to 'experiences'
+ $(".post-product-archive").find('span').text('Tours');
+
+ $("[property=name]:contains('Products')").html('Tours');
+
+ $("a.product_image_link").fancybox({
+
+ helpers: {
+ overlay: { locked: false },
+ title: { type: 'inside'},
+ },
+ afterLoad: function(){
+ this.title = $(this.element).find('img').attr('alt');
+ }
+ });
+
+ $(".st_sharethis").insertAfter(".images");
+
+ $(".tag_image").each( function () {
+ $(this).on("click", function () {
+ window.location.href = $(this).siblings('a').attr("href")
+ });
+ });
+
+ $(".categories").find(".type-product").each( function (){
+ $(this).find('small').insertAfter($(this).find('h3'));
+ });
+
+ if ($(".form-confirmation").length > 0){
+ $("div.breadcrumbs").css("margin-bottom", "25px")
+ $(".form-confirmation").insertAfter("div.breadcrumbs");
+ }
+
+ $(".blocks").find('a').removeAttr("target");
+
+ if ($.trim($("#tab-html5_video").text()).length === 0){
+ $(".html5_video_tab").remove();
+ }
+ if ($.trim($("#tab-itinerary_tab").text()).length === 0){
+ $(".itinerary_tab_tab").remove();
+ }
+});
--- /dev/null
+/*
+ * To avoid conflicts, Wordpress tends to prefer jQuery being used over $.
+ * As long as this file is included, no such conflicts should arise. Ensure it
+ * is called before other .js files using $.
+ */
+var $=jQuery.noConflict();
\ No newline at end of file
--- /dev/null
+;(function () {
+ 'use strict';
+
+ /**
+ * @preserve FastClick: polyfill to remove click delays on browsers with touch UIs.
+ *
+ * @codingstandard ftlabs-jsv2
+ * @copyright The Financial Times Limited [All Rights Reserved]
+ * @license MIT License (see LICENSE.txt)
+ */
+
+ /*jslint browser:true, node:true*/
+ /*global define, Event, Node*/
+
+
+ /**
+ * Instantiate fast-clicking listeners on the specified layer.
+ *
+ * @constructor
+ * @param {Element} layer The layer to listen on
+ * @param {Object} [options={}] The options to override the defaults
+ */
+ function FastClick(layer, options) {
+ var oldOnClick;
+
+ options = options || {};
+
+ /**
+ * Whether a click is currently being tracked.
+ *
+ * @type boolean
+ */
+ this.trackingClick = false;
+
+
+ /**
+ * Timestamp for when click tracking started.
+ *
+ * @type number
+ */
+ this.trackingClickStart = 0;
+
+
+ /**
+ * The element being tracked for a click.
+ *
+ * @type EventTarget
+ */
+ this.targetElement = null;
+
+
+ /**
+ * X-coordinate of touch start event.
+ *
+ * @type number
+ */
+ this.touchStartX = 0;
+
+
+ /**
+ * Y-coordinate of touch start event.
+ *
+ * @type number
+ */
+ this.touchStartY = 0;
+
+
+ /**
+ * ID of the last touch, retrieved from Touch.identifier.
+ *
+ * @type number
+ */
+ this.lastTouchIdentifier = 0;
+
+
+ /**
+ * Touchmove boundary, beyond which a click will be cancelled.
+ *
+ * @type number
+ */
+ this.touchBoundary = options.touchBoundary || 10;
+
+
+ /**
+ * The FastClick layer.
+ *
+ * @type Element
+ */
+ this.layer = layer;
+
+ /**
+ * The minimum time between tap(touchstart and touchend) events
+ *
+ * @type number
+ */
+ this.tapDelay = options.tapDelay || 200;
+
+ /**
+ * The maximum time for a tap
+ *
+ * @type number
+ */
+ this.tapTimeout = options.tapTimeout || 700;
+
+ if (FastClick.notNeeded(layer)) {
+ return;
+ }
+
+ // Some old versions of Android don't have Function.prototype.bind
+ function bind(method, context) {
+ return function() { return method.apply(context, arguments); };
+ }
+
+
+ var methods = ['onMouse', 'onClick', 'onTouchStart', 'onTouchMove', 'onTouchEnd', 'onTouchCancel'];
+ var context = this;
+ for (var i = 0, l = methods.length; i < l; i++) {
+ context[methods[i]] = bind(context[methods[i]], context);
+ }
+
+ // Set up event handlers as required
+ if (deviceIsAndroid) {
+ layer.addEventListener('mouseover', this.onMouse, true);
+ layer.addEventListener('mousedown', this.onMouse, true);
+ layer.addEventListener('mouseup', this.onMouse, true);
+ }
+
+ layer.addEventListener('click', this.onClick, true);
+ layer.addEventListener('touchstart', this.onTouchStart, false);
+ layer.addEventListener('touchmove', this.onTouchMove, false);
+ layer.addEventListener('touchend', this.onTouchEnd, false);
+ layer.addEventListener('touchcancel', this.onTouchCancel, false);
+
+ // Hack is required for browsers that don't support Event#stopImmediatePropagation (e.g. Android 2)
+ // which is how FastClick normally stops click events bubbling to callbacks registered on the FastClick
+ // layer when they are cancelled.
+ if (!Event.prototype.stopImmediatePropagation) {
+ layer.removeEventListener = function(type, callback, capture) {
+ var rmv = Node.prototype.removeEventListener;
+ if (type === 'click') {
+ rmv.call(layer, type, callback.hijacked || callback, capture);
+ } else {
+ rmv.call(layer, type, callback, capture);
+ }
+ };
+
+ layer.addEventListener = function(type, callback, capture) {
+ var adv = Node.prototype.addEventListener;
+ if (type === 'click') {
+ adv.call(layer, type, callback.hijacked || (callback.hijacked = function(event) {
+ if (!event.propagationStopped) {
+ callback(event);
+ }
+ }), capture);
+ } else {
+ adv.call(layer, type, callback, capture);
+ }
+ };
+ }
+
+ // If a handler is already declared in the element's onclick attribute, it will be fired before
+ // FastClick's onClick handler. Fix this by pulling out the user-defined handler function and
+ // adding it as listener.
+ if (typeof layer.onclick === 'function') {
+
+ // Android browser on at least 3.2 requires a new reference to the function in layer.onclick
+ // - the old one won't work if passed to addEventListener directly.
+ oldOnClick = layer.onclick;
+ layer.addEventListener('click', function(event) {
+ oldOnClick(event);
+ }, false);
+ layer.onclick = null;
+ }
+ }
+
+ /**
+ * Windows Phone 8.1 fakes user agent string to look like Android and iPhone.
+ *
+ * @type boolean
+ */
+ var deviceIsWindowsPhone = navigator.userAgent.indexOf("Windows Phone") >= 0;
+
+ /**
+ * Android requires exceptions.
+ *
+ * @type boolean
+ */
+ var deviceIsAndroid = navigator.userAgent.indexOf('Android') > 0 && !deviceIsWindowsPhone;
+
+
+ /**
+ * iOS requires exceptions.
+ *
+ * @type boolean
+ */
+ var deviceIsIOS = /iP(ad|hone|od)/.test(navigator.userAgent) && !deviceIsWindowsPhone;
+
+
+ /**
+ * iOS 4 requires an exception for select elements.
+ *
+ * @type boolean
+ */
+ var deviceIsIOS4 = deviceIsIOS && (/OS 4_\d(_\d)?/).test(navigator.userAgent);
+
+
+ /**
+ * iOS 6.0-7.* requires the target element to be manually derived
+ *
+ * @type boolean
+ */
+ var deviceIsIOSWithBadTarget = deviceIsIOS && (/OS [6-7]_\d/).test(navigator.userAgent);
+
+ /**
+ * BlackBerry requires exceptions.
+ *
+ * @type boolean
+ */
+ var deviceIsBlackBerry10 = navigator.userAgent.indexOf('BB10') > 0;
+
+ /**
+ * Determine whether a given element requires a native click.
+ *
+ * @param {EventTarget|Element} target Target DOM element
+ * @returns {boolean} Returns true if the element needs a native click
+ */
+ FastClick.prototype.needsClick = function(target) {
+ switch (target.nodeName.toLowerCase()) {
+
+ // Don't send a synthetic click to disabled inputs (issue #62)
+ case 'button':
+ case 'select':
+ case 'textarea':
+ if (target.disabled) {
+ return true;
+ }
+
+ break;
+ case 'input':
+
+ // File inputs need real clicks on iOS 6 due to a browser bug (issue #68)
+ if ((deviceIsIOS && target.type === 'file') || target.disabled) {
+ return true;
+ }
+
+ break;
+ case 'label':
+ case 'iframe': // iOS8 homescreen apps can prevent events bubbling into frames
+ case 'video':
+ return true;
+ }
+
+ return (/\bneedsclick\b/).test(target.className);
+ };
+
+
+ /**
+ * Determine whether a given element requires a call to focus to simulate click into element.
+ *
+ * @param {EventTarget|Element} target Target DOM element
+ * @returns {boolean} Returns true if the element requires a call to focus to simulate native click.
+ */
+ FastClick.prototype.needsFocus = function(target) {
+ switch (target.nodeName.toLowerCase()) {
+ case 'textarea':
+ return true;
+ case 'select':
+ return !deviceIsAndroid;
+ case 'input':
+ switch (target.type) {
+ case 'button':
+ case 'checkbox':
+ case 'file':
+ case 'image':
+ case 'radio':
+ case 'submit':
+ return false;
+ }
+
+ // No point in attempting to focus disabled inputs
+ return !target.disabled && !target.readOnly;
+ default:
+ return (/\bneedsfocus\b/).test(target.className);
+ }
+ };
+
+
+ /**
+ * Send a click event to the specified element.
+ *
+ * @param {EventTarget|Element} targetElement
+ * @param {Event} event
+ */
+ FastClick.prototype.sendClick = function(targetElement, event) {
+ var clickEvent, touch;
+
+ // On some Android devices activeElement needs to be blurred otherwise the synthetic click will have no effect (#24)
+ if (document.activeElement && document.activeElement !== targetElement) {
+ document.activeElement.blur();
+ }
+
+ touch = event.changedTouches[0];
+
+ // Synthesise a click event, with an extra attribute so it can be tracked
+ clickEvent = document.createEvent('MouseEvents');
+ clickEvent.initMouseEvent(this.determineEventType(targetElement), true, true, window, 1, touch.screenX, touch.screenY, touch.clientX, touch.clientY, false, false, false, false, 0, null);
+ clickEvent.forwardedTouchEvent = true;
+ targetElement.dispatchEvent(clickEvent);
+ };
+
+ FastClick.prototype.determineEventType = function(targetElement) {
+
+ //Issue #159: Android Chrome Select Box does not open with a synthetic click event
+ if (deviceIsAndroid && targetElement.tagName.toLowerCase() === 'select') {
+ return 'mousedown';
+ }
+
+ return 'click';
+ };
+
+
+ /**
+ * @param {EventTarget|Element} targetElement
+ */
+ FastClick.prototype.focus = function(targetElement) {
+ var length;
+
+ // Issue #160: on iOS 7, some input elements (e.g. date datetime month) throw a vague TypeError on setSelectionRange. These elements don't have an integer value for the selectionStart and selectionEnd properties, but unfortunately that can't be used for detection because accessing the properties also throws a TypeError. Just check the type instead. Filed as Apple bug #15122724.
+ if (deviceIsIOS && targetElement.setSelectionRange && targetElement.type.indexOf('date') !== 0 && targetElement.type !== 'time' && targetElement.type !== 'month') {
+ length = targetElement.value.length;
+ targetElement.setSelectionRange(length, length);
+ } else {
+ targetElement.focus();
+ }
+ };
+
+
+ /**
+ * Check whether the given target element is a child of a scrollable layer and if so, set a flag on it.
+ *
+ * @param {EventTarget|Element} targetElement
+ */
+ FastClick.prototype.updateScrollParent = function(targetElement) {
+ var scrollParent, parentElement;
+
+ scrollParent = targetElement.fastClickScrollParent;
+
+ // Attempt to discover whether the target element is contained within a scrollable layer. Re-check if the
+ // target element was moved to another parent.
+ if (!scrollParent || !scrollParent.contains(targetElement)) {
+ parentElement = targetElement;
+ do {
+ if (parentElement.scrollHeight > parentElement.offsetHeight) {
+ scrollParent = parentElement;
+ targetElement.fastClickScrollParent = parentElement;
+ break;
+ }
+
+ parentElement = parentElement.parentElement;
+ } while (parentElement);
+ }
+
+ // Always update the scroll top tracker if possible.
+ if (scrollParent) {
+ scrollParent.fastClickLastScrollTop = scrollParent.scrollTop;
+ }
+ };
+
+
+ /**
+ * @param {EventTarget} targetElement
+ * @returns {Element|EventTarget}
+ */
+ FastClick.prototype.getTargetElementFromEventTarget = function(eventTarget) {
+
+ // On some older browsers (notably Safari on iOS 4.1 - see issue #56) the event target may be a text node.
+ if (eventTarget.nodeType === Node.TEXT_NODE) {
+ return eventTarget.parentNode;
+ }
+
+ return eventTarget;
+ };
+
+
+ /**
+ * On touch start, record the position and scroll offset.
+ *
+ * @param {Event} event
+ * @returns {boolean}
+ */
+ FastClick.prototype.onTouchStart = function(event) {
+ var targetElement, touch, selection;
+
+ // Ignore multiple touches, otherwise pinch-to-zoom is prevented if both fingers are on the FastClick element (issue #111).
+ if (event.targetTouches.length > 1) {
+ return true;
+ }
+
+ targetElement = this.getTargetElementFromEventTarget(event.target);
+ touch = event.targetTouches[0];
+
+ if (deviceIsIOS) {
+
+ // Only trusted events will deselect text on iOS (issue #49)
+ selection = window.getSelection();
+ if (selection.rangeCount && !selection.isCollapsed) {
+ return true;
+ }
+
+ if (!deviceIsIOS4) {
+
+ // Weird things happen on iOS when an alert or confirm dialog is opened from a click event callback (issue #23):
+ // when the user next taps anywhere else on the page, new touchstart and touchend events are dispatched
+ // with the same identifier as the touch event that previously triggered the click that triggered the alert.
+ // Sadly, there is an issue on iOS 4 that causes some normal touch events to have the same identifier as an
+ // immediately preceeding touch event (issue #52), so this fix is unavailable on that platform.
+ // Issue 120: touch.identifier is 0 when Chrome dev tools 'Emulate touch events' is set with an iOS device UA string,
+ // which causes all touch events to be ignored. As this block only applies to iOS, and iOS identifiers are always long,
+ // random integers, it's safe to to continue if the identifier is 0 here.
+ if (touch.identifier && touch.identifier === this.lastTouchIdentifier) {
+ event.preventDefault();
+ return false;
+ }
+
+ this.lastTouchIdentifier = touch.identifier;
+
+ // If the target element is a child of a scrollable layer (using -webkit-overflow-scrolling: touch) and:
+ // 1) the user does a fling scroll on the scrollable layer
+ // 2) the user stops the fling scroll with another tap
+ // then the event.target of the last 'touchend' event will be the element that was under the user's finger
+ // when the fling scroll was started, causing FastClick to send a click event to that layer - unless a check
+ // is made to ensure that a parent layer was not scrolled before sending a synthetic click (issue #42).
+ this.updateScrollParent(targetElement);
+ }
+ }
+
+ this.trackingClick = true;
+ this.trackingClickStart = event.timeStamp;
+ this.targetElement = targetElement;
+
+ this.touchStartX = touch.pageX;
+ this.touchStartY = touch.pageY;
+
+ // Prevent phantom clicks on fast double-tap (issue #36)
+ if ((event.timeStamp - this.lastClickTime) < this.tapDelay) {
+ event.preventDefault();
+ }
+
+ return true;
+ };
+
+
+ /**
+ * Based on a touchmove event object, check whether the touch has moved past a boundary since it started.
+ *
+ * @param {Event} event
+ * @returns {boolean}
+ */
+ FastClick.prototype.touchHasMoved = function(event) {
+ var touch = event.changedTouches[0], boundary = this.touchBoundary;
+
+ if (Math.abs(touch.pageX - this.touchStartX) > boundary || Math.abs(touch.pageY - this.touchStartY) > boundary) {
+ return true;
+ }
+
+ return false;
+ };
+
+
+ /**
+ * Update the last position.
+ *
+ * @param {Event} event
+ * @returns {boolean}
+ */
+ FastClick.prototype.onTouchMove = function(event) {
+ if (!this.trackingClick) {
+ return true;
+ }
+
+ // If the touch has moved, cancel the click tracking
+ if (this.targetElement !== this.getTargetElementFromEventTarget(event.target) || this.touchHasMoved(event)) {
+ this.trackingClick = false;
+ this.targetElement = null;
+ }
+
+ return true;
+ };
+
+
+ /**
+ * Attempt to find the labelled control for the given label element.
+ *
+ * @param {EventTarget|HTMLLabelElement} labelElement
+ * @returns {Element|null}
+ */
+ FastClick.prototype.findControl = function(labelElement) {
+
+ // Fast path for newer browsers supporting the HTML5 control attribute
+ if (labelElement.control !== undefined) {
+ return labelElement.control;
+ }
+
+ // All browsers under test that support touch events also support the HTML5 htmlFor attribute
+ if (labelElement.htmlFor) {
+ return document.getElementById(labelElement.htmlFor);
+ }
+
+ // If no for attribute exists, attempt to retrieve the first labellable descendant element
+ // the list of which is defined here: http://www.w3.org/TR/html5/forms.html#category-label
+ return labelElement.querySelector('button, input:not([type=hidden]), keygen, meter, output, progress, select, textarea');
+ };
+
+
+ /**
+ * On touch end, determine whether to send a click event at once.
+ *
+ * @param {Event} event
+ * @returns {boolean}
+ */
+ FastClick.prototype.onTouchEnd = function(event) {
+ var forElement, trackingClickStart, targetTagName, scrollParent, touch, targetElement = this.targetElement;
+
+ if (!this.trackingClick) {
+ return true;
+ }
+
+ // Prevent phantom clicks on fast double-tap (issue #36)
+ if ((event.timeStamp - this.lastClickTime) < this.tapDelay) {
+ this.cancelNextClick = true;
+ return true;
+ }
+
+ if ((event.timeStamp - this.trackingClickStart) > this.tapTimeout) {
+ return true;
+ }
+
+ // Reset to prevent wrong click cancel on input (issue #156).
+ this.cancelNextClick = false;
+
+ this.lastClickTime = event.timeStamp;
+
+ trackingClickStart = this.trackingClickStart;
+ this.trackingClick = false;
+ this.trackingClickStart = 0;
+
+ // On some iOS devices, the targetElement supplied with the event is invalid if the layer
+ // is performing a transition or scroll, and has to be re-detected manually. Note that
+ // for this to function correctly, it must be called *after* the event target is checked!
+ // See issue #57; also filed as rdar://13048589 .
+ if (deviceIsIOSWithBadTarget) {
+ touch = event.changedTouches[0];
+
+ // In certain cases arguments of elementFromPoint can be negative, so prevent setting targetElement to null
+ targetElement = document.elementFromPoint(touch.pageX - window.pageXOffset, touch.pageY - window.pageYOffset) || targetElement;
+ targetElement.fastClickScrollParent = this.targetElement.fastClickScrollParent;
+ }
+
+ targetTagName = targetElement.tagName.toLowerCase();
+ if (targetTagName === 'label') {
+ forElement = this.findControl(targetElement);
+ if (forElement) {
+ this.focus(targetElement);
+ if (deviceIsAndroid) {
+ return false;
+ }
+
+ targetElement = forElement;
+ }
+ } else if (this.needsFocus(targetElement)) {
+
+ // Case 1: If the touch started a while ago (best guess is 100ms based on tests for issue #36) then focus will be triggered anyway. Return early and unset the target element reference so that the subsequent click will be allowed through.
+ // Case 2: Without this exception for input elements tapped when the document is contained in an iframe, then any inputted text won't be visible even though the value attribute is updated as the user types (issue #37).
+ if ((event.timeStamp - trackingClickStart) > 100 || (deviceIsIOS && window.top !== window && targetTagName === 'input')) {
+ this.targetElement = null;
+ return false;
+ }
+
+ this.focus(targetElement);
+ this.sendClick(targetElement, event);
+
+ // Select elements need the event to go through on iOS 4, otherwise the selector menu won't open.
+ // Also this breaks opening selects when VoiceOver is active on iOS6, iOS7 (and possibly others)
+ if (!deviceIsIOS || targetTagName !== 'select') {
+ this.targetElement = null;
+ event.preventDefault();
+ }
+
+ return false;
+ }
+
+ if (deviceIsIOS && !deviceIsIOS4) {
+
+ // Don't send a synthetic click event if the target element is contained within a parent layer that was scrolled
+ // and this tap is being used to stop the scrolling (usually initiated by a fling - issue #42).
+ scrollParent = targetElement.fastClickScrollParent;
+ if (scrollParent && scrollParent.fastClickLastScrollTop !== scrollParent.scrollTop) {
+ return true;
+ }
+ }
+
+ // Prevent the actual click from going though - unless the target node is marked as requiring
+ // real clicks or if it is in the whitelist in which case only non-programmatic clicks are permitted.
+ if (!this.needsClick(targetElement)) {
+ event.preventDefault();
+ this.sendClick(targetElement, event);
+ }
+
+ return false;
+ };
+
+
+ /**
+ * On touch cancel, stop tracking the click.
+ *
+ * @returns {void}
+ */
+ FastClick.prototype.onTouchCancel = function() {
+ this.trackingClick = false;
+ this.targetElement = null;
+ };
+
+
+ /**
+ * Determine mouse events which should be permitted.
+ *
+ * @param {Event} event
+ * @returns {boolean}
+ */
+ FastClick.prototype.onMouse = function(event) {
+
+ // If a target element was never set (because a touch event was never fired) allow the event
+ if (!this.targetElement) {
+ return true;
+ }
+
+ if (event.forwardedTouchEvent) {
+ return true;
+ }
+
+ // Programmatically generated events targeting a specific element should be permitted
+ if (!event.cancelable) {
+ return true;
+ }
+
+ // Derive and check the target element to see whether the mouse event needs to be permitted;
+ // unless explicitly enabled, prevent non-touch click events from triggering actions,
+ // to prevent ghost/doubleclicks.
+ if (!this.needsClick(this.targetElement) || this.cancelNextClick) {
+
+ // Prevent any user-added listeners declared on FastClick element from being fired.
+ if (event.stopImmediatePropagation) {
+ event.stopImmediatePropagation();
+ } else {
+
+ // Part of the hack for browsers that don't support Event#stopImmediatePropagation (e.g. Android 2)
+ event.propagationStopped = true;
+ }
+
+ // Cancel the event
+ event.stopPropagation();
+ event.preventDefault();
+
+ return false;
+ }
+
+ // If the mouse event is permitted, return true for the action to go through.
+ return true;
+ };
+
+
+ /**
+ * On actual clicks, determine whether this is a touch-generated click, a click action occurring
+ * naturally after a delay after a touch (which needs to be cancelled to avoid duplication), or
+ * an actual click which should be permitted.
+ *
+ * @param {Event} event
+ * @returns {boolean}
+ */
+ FastClick.prototype.onClick = function(event) {
+ var permitted;
+
+ // It's possible for another FastClick-like library delivered with third-party code to fire a click event before FastClick does (issue #44). In that case, set the click-tracking flag back to false and return early. This will cause onTouchEnd to return early.
+ if (this.trackingClick) {
+ this.targetElement = null;
+ this.trackingClick = false;
+ return true;
+ }
+
+ // Very odd behaviour on iOS (issue #18): if a submit element is present inside a form and the user hits enter in the iOS simulator or clicks the Go button on the pop-up OS keyboard the a kind of 'fake' click event will be triggered with the submit-type input element as the target.
+ if (event.target.type === 'submit' && event.detail === 0) {
+ return true;
+ }
+
+ permitted = this.onMouse(event);
+
+ // Only unset targetElement if the click is not permitted. This will ensure that the check for !targetElement in onMouse fails and the browser's click doesn't go through.
+ if (!permitted) {
+ this.targetElement = null;
+ }
+
+ // If clicks are permitted, return true for the action to go through.
+ return permitted;
+ };
+
+
+ /**
+ * Remove all FastClick's event listeners.
+ *
+ * @returns {void}
+ */
+ FastClick.prototype.destroy = function() {
+ var layer = this.layer;
+
+ if (deviceIsAndroid) {
+ layer.removeEventListener('mouseover', this.onMouse, true);
+ layer.removeEventListener('mousedown', this.onMouse, true);
+ layer.removeEventListener('mouseup', this.onMouse, true);
+ }
+
+ layer.removeEventListener('click', this.onClick, true);
+ layer.removeEventListener('touchstart', this.onTouchStart, false);
+ layer.removeEventListener('touchmove', this.onTouchMove, false);
+ layer.removeEventListener('touchend', this.onTouchEnd, false);
+ layer.removeEventListener('touchcancel', this.onTouchCancel, false);
+ };
+
+
+ /**
+ * Check whether FastClick is needed.
+ *
+ * @param {Element} layer The layer to listen on
+ */
+ FastClick.notNeeded = function(layer) {
+ var metaViewport;
+ var chromeVersion;
+ var blackberryVersion;
+ var firefoxVersion;
+
+ // Devices that don't support touch don't need FastClick
+ if (typeof window.ontouchstart === 'undefined') {
+ return true;
+ }
+
+ // Chrome version - zero for other browsers
+ chromeVersion = +(/Chrome\/([0-9]+)/.exec(navigator.userAgent) || [,0])[1];
+
+ if (chromeVersion) {
+
+ if (deviceIsAndroid) {
+ metaViewport = document.querySelector('meta[name=viewport]');
+
+ if (metaViewport) {
+ // Chrome on Android with user-scalable="no" doesn't need FastClick (issue #89)
+ if (metaViewport.content.indexOf('user-scalable=no') !== -1) {
+ return true;
+ }
+ // Chrome 32 and above with width=device-width or less don't need FastClick
+ if (chromeVersion > 31 && document.documentElement.scrollWidth <= window.outerWidth) {
+ return true;
+ }
+ }
+
+ // Chrome desktop doesn't need FastClick (issue #15)
+ } else {
+ return true;
+ }
+ }
+
+ if (deviceIsBlackBerry10) {
+ blackberryVersion = navigator.userAgent.match(/Version\/([0-9]*)\.([0-9]*)/);
+
+ // BlackBerry 10.3+ does not require Fastclick library.
+ // https://github.com/ftlabs/fastclick/issues/251
+ if (blackberryVersion[1] >= 10 && blackberryVersion[2] >= 3) {
+ metaViewport = document.querySelector('meta[name=viewport]');
+
+ if (metaViewport) {
+ // user-scalable=no eliminates click delay.
+ if (metaViewport.content.indexOf('user-scalable=no') !== -1) {
+ return true;
+ }
+ // width=device-width (or less than device-width) eliminates click delay.
+ if (document.documentElement.scrollWidth <= window.outerWidth) {
+ return true;
+ }
+ }
+ }
+ }
+
+ // IE10 with -ms-touch-action: none or manipulation, which disables double-tap-to-zoom (issue #97)
+ if (layer.style.msTouchAction === 'none' || layer.style.touchAction === 'manipulation') {
+ return true;
+ }
+
+ // Firefox version - zero for other browsers
+ firefoxVersion = +(/Firefox\/([0-9]+)/.exec(navigator.userAgent) || [,0])[1];
+
+ if (firefoxVersion >= 27) {
+ // Firefox 27+ does not have tap delay if the content is not zoomable - https://bugzilla.mozilla.org/show_bug.cgi?id=922896
+
+ metaViewport = document.querySelector('meta[name=viewport]');
+ if (metaViewport && (metaViewport.content.indexOf('user-scalable=no') !== -1 || document.documentElement.scrollWidth <= window.outerWidth)) {
+ return true;
+ }
+ }
+
+ // IE11: prefixed -ms-touch-action is no longer supported and it's recomended to use non-prefixed version
+ // http://msdn.microsoft.com/en-us/library/windows/apps/Hh767313.aspx
+ if (layer.style.touchAction === 'none' || layer.style.touchAction === 'manipulation') {
+ return true;
+ }
+
+ return false;
+ };
+
+
+ /**
+ * Factory method for creating a FastClick object
+ *
+ * @param {Element} layer The layer to listen on
+ * @param {Object} [options={}] The options to override the defaults
+ */
+ FastClick.attach = function(layer, options) {
+ return new FastClick(layer, options);
+ };
+
+
+ if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {
+
+ // AMD. Register as an anonymous module.
+ define(function() {
+ return FastClick;
+ });
+ } else if (typeof module !== 'undefined' && module.exports) {
+ module.exports = FastClick.attach;
+ module.exports.FastClick = FastClick;
+ } else {
+ window.FastClick = FastClick;
+ }
+}());
--- /dev/null
+{
+"version": 3,
+"mappings": "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",
+"sources": ["../../../scss/foundation/components/_global.scss","../../../scss/foundation/components/_grid.scss","../../../scss/foundation/components/_accordion.scss","../../../scss/foundation/components/_alert-boxes.scss","../../../scss/foundation/components/_block-grid.scss","../../../scss/foundation/components/_breadcrumbs.scss","../../../scss/foundation/components/_buttons.scss","../../../scss/foundation/_functions.scss","../../../scss/foundation/components/_button-groups.scss","../../../scss/foundation/components/_clearing.scss","../../../scss/foundation/components/_dropdown.scss","../../../scss/foundation/components/_dropdown-buttons.scss","../../../scss/foundation/components/_flex-video.scss","../../../scss/foundation/components/_forms.scss","../../../scss/foundation/components/_icon-bar.scss","../../../scss/foundation/components/_inline-lists.scss","../../../scss/foundation/components/_joyride.scss","../../../scss/foundation/components/_keystrokes.scss","../../../scss/foundation/components/_labels.scss","../../../scss/foundation/components/_magellan.scss","../../../scss/foundation/components/_orbit.scss","../../../scss/foundation/components/_pagination.scss","../../../scss/foundation/components/_panels.scss","../../../scss/foundation/components/_pricing-tables.scss","../../../scss/foundation/components/_progress-bars.scss","../../../scss/foundation/components/_range-slider.scss","../../../scss/foundation/components/_reveal.scss","../../../scss/foundation/components/_side-nav.scss","../../../scss/foundation/components/_split-buttons.scss","../../../scss/foundation/components/_sub-nav.scss","../../../scss/foundation/components/_switches.scss","../../../scss/foundation/components/_tables.scss","../../../scss/foundation/components/_tabs.scss","../../../scss/foundation/components/_thumbs.scss","../../../scss/foundation/components/_tooltips.scss","../../../scss/foundation/components/_top-bar.scss","../../../scss/foundation/components/_type.scss","../../../scss/foundation/components/_offcanvas.scss","../../../scss/foundation/components/_visibility.scss"],
+"names": [],
+"file": "foundation.css"
+}
--- /dev/null
+{
+"version": 3,
+"mappings": ";;;;;;AAQA,IAAK;EACH,WAAW,EAAE,UAAU;;EACvB,oBAAoB,EAAE,IAAI;;EAC1B,wBAAwB,EAAE,IAAI;;;;;;AAOhC,IAAK;EACH,MAAM,EAAE,CAAC;;;;;;;;;;AAaX;;;;;;;;;;;;OAYQ;EACN,OAAO,EAAE,KAAK;;;;;;AAQhB;;;KAGM;EACJ,OAAO,EAAE,YAAY;;EACrB,cAAc,EAAE,QAAQ;;;;;;;AAQ1B,qBAAsB;EACpB,OAAO,EAAE,IAAI;EACb,MAAM,EAAE,CAAC;;;;;;AAQX;QACS;EACP,OAAO,EAAE,IAAI;;;;;;;AAUf,CAAE;EACA,gBAAgB,EAAE,WAAW;;;;;;AAQ/B;OACQ;EACN,OAAO,EAAE,CAAC;;;;;;;AAUZ,WAAY;EACV,aAAa,EAAE,UAAU;;;;;AAO3B;MACO;EACL,WAAW,EAAE,IAAI;;;;;AAOnB,GAAI;EACF,UAAU,EAAE,MAAM;;;;;;AAQpB,EAAG;EACD,SAAS,EAAE,GAAG;EACd,MAAM,EAAE,QAAQ;;;;;AAOlB,IAAK;EACH,UAAU,EAAE,IAAI;EAChB,KAAK,EAAE,IAAI;;;;;AAOb,KAAM;EACJ,SAAS,EAAE,GAAG;;;;;AAOhB;GACI;EACF,SAAS,EAAE,GAAG;EACd,WAAW,EAAE,CAAC;EACd,QAAQ,EAAE,QAAQ;EAClB,cAAc,EAAE,QAAQ;;AAG1B,GAAI;EACF,GAAG,EAAE,MAAM;;AAGb,GAAI;EACF,MAAM,EAAE,OAAO;;;;;;;AAUjB,GAAI;EACF,MAAM,EAAE,CAAC;;;;;AAOX,cAAe;EACb,QAAQ,EAAE,MAAM;;;;;;;AAUlB,MAAO;EACL,MAAM,EAAE,QAAQ;;;;;AAOlB,EAAG;EACD,UAAU,EAAE,WAAW;EACvB,MAAM,EAAE,CAAC;;;;;AAOX,GAAI;EACF,QAAQ,EAAE,IAAI;;;;;AAOhB;;;IAGK;EACH,WAAW,EAAE,oBAAoB;EACjC,SAAS,EAAE,GAAG;;;;;;;;;;;;;;AAkBhB;;;;QAIS;EACP,KAAK,EAAE,OAAO;;EACd,IAAI,EAAE,OAAO;;EACb,MAAM,EAAE,CAAC;;;;;;AAOX,MAAO;EACL,QAAQ,EAAE,OAAO;;;;;;;;AAUnB;MACO;EACL,cAAc,EAAE,IAAI;;;;;;;;;AAWtB;;;oBAGqB;EACnB,kBAAkB,EAAE,MAAM;;EAC1B,MAAM,EAAE,OAAO;;;;;;AAOjB;oBACqB;EACnB,MAAM,EAAE,OAAO;;;;;AAOjB;uBACwB;EACtB,MAAM,EAAE,CAAC;EACT,OAAO,EAAE,CAAC;;;;;;AAQZ,KAAM;EACJ,WAAW,EAAE,MAAM;;;;;;;;;AAWrB;mBACoB;EAClB,UAAU,EAAE,UAAU;;EACtB,OAAO,EAAE,CAAC;;;;;;;;AASZ;+CACgD;EAC9C,MAAM,EAAE,IAAI;;;;;;AAQd,oBAAqB;EACnB,kBAAkB,EAAE,SAAS;;EAC7B,UAAU,EAAE,WAAW;;;;;;;;AASzB;+CACgD;EAC9C,kBAAkB,EAAE,IAAI;;;;;AAO1B,QAAS;EACP,MAAM,EAAE,iBAAiB;EACzB,MAAM,EAAE,KAAK;EACb,OAAO,EAAE,qBAAqB;;;;;;AAQhC,MAAO;EACL,MAAM,EAAE,CAAC;;EACT,OAAO,EAAE,CAAC;;;;;;AAOZ,QAAS;EACP,QAAQ,EAAE,IAAI;;;;;;AAQhB,QAAS;EACP,WAAW,EAAE,IAAI;;;;;;;AAUnB,KAAM;EACJ,eAAe,EAAE,QAAQ;EACzB,cAAc,EAAE,CAAC;;AAGnB;EACG;EACD,OAAO,EAAE,CAAC",
+"sources": ["../../../scss/normalize.scss"],
+"names": [],
+"file": "normalize.css"
+}
--- /dev/null
+/*
+ * Foundation Responsive Library
+ * http://foundation.zurb.com
+ * Copyright 2015, ZURB
+ * Free to use under the MIT license.
+ * http://www.opensource.org/licenses/mit-license.php
+*/
+
+(function ($, window, document, undefined) {
+ 'use strict';
+
+ var header_helpers = function (class_array) {
+ var head = $('head');
+ head.prepend($.map(class_array, function (class_name) {
+ if (head.has('.' + class_name).length === 0) {
+ return '<meta class="' + class_name + '" />';
+ }
+ }));
+ };
+
+ header_helpers([
+ 'foundation-mq-small',
+ 'foundation-mq-small-only',
+ 'foundation-mq-medium',
+ 'foundation-mq-medium-only',
+ 'foundation-mq-large',
+ 'foundation-mq-large-only',
+ 'foundation-mq-xlarge',
+ 'foundation-mq-xlarge-only',
+ 'foundation-mq-xxlarge',
+ 'foundation-data-attribute-namespace']);
+
+ // Enable FastClick if present
+
+ $(function () {
+ if (typeof FastClick !== 'undefined') {
+ // Don't attach to body if undefined
+ if (typeof document.body !== 'undefined') {
+ FastClick.attach(document.body);
+ }
+ }
+ });
+
+ // private Fast Selector wrapper,
+ // returns jQuery object. Only use where
+ // getElementById is not available.
+ var S = function (selector, context) {
+ if (typeof selector === 'string') {
+ if (context) {
+ var cont;
+ if (context.jquery) {
+ cont = context[0];
+ if (!cont) {
+ return context;
+ }
+ } else {
+ cont = context;
+ }
+ return $(cont.querySelectorAll(selector));
+ }
+
+ return $(document.querySelectorAll(selector));
+ }
+
+ return $(selector, context);
+ };
+
+ // Namespace functions.
+
+ var attr_name = function (init) {
+ var arr = [];
+ if (!init) {
+ arr.push('data');
+ }
+ if (this.namespace.length > 0) {
+ arr.push(this.namespace);
+ }
+ arr.push(this.name);
+
+ return arr.join('-');
+ };
+
+ var add_namespace = function (str) {
+ var parts = str.split('-'),
+ i = parts.length,
+ arr = [];
+
+ while (i--) {
+ if (i !== 0) {
+ arr.push(parts[i]);
+ } else {
+ if (this.namespace.length > 0) {
+ arr.push(this.namespace, parts[i]);
+ } else {
+ arr.push(parts[i]);
+ }
+ }
+ }
+
+ return arr.reverse().join('-');
+ };
+
+ // Event binding and data-options updating.
+
+ var bindings = function (method, options) {
+ var self = this,
+ bind = function(){
+ var $this = S(this),
+ should_bind_events = !$this.data(self.attr_name(true) + '-init');
+ $this.data(self.attr_name(true) + '-init', $.extend({}, self.settings, (options || method), self.data_options($this)));
+
+ if (should_bind_events) {
+ self.events(this);
+ }
+ };
+
+ if (S(this.scope).is('[' + this.attr_name() +']')) {
+ bind.call(this.scope);
+ } else {
+ S('[' + this.attr_name() +']', this.scope).each(bind);
+ }
+ // # Patch to fix #5043 to move this *after* the if/else clause in order for Backbone and similar frameworks to have improved control over event binding and data-options updating.
+ if (typeof method === 'string') {
+ return this[method].call(this, options);
+ }
+
+ };
+
+ var single_image_loaded = function (image, callback) {
+ function loaded () {
+ callback(image[0]);
+ }
+
+ function bindLoad () {
+ this.one('load', loaded);
+
+ if (/MSIE (\d+\.\d+);/.test(navigator.userAgent)) {
+ var src = this.attr( 'src' ),
+ param = src.match( /\?/ ) ? '&' : '?';
+
+ param += 'random=' + (new Date()).getTime();
+ this.attr('src', src + param);
+ }
+ }
+
+ if (!image.attr('src')) {
+ loaded();
+ return;
+ }
+
+ if (image[0].complete || image[0].readyState === 4) {
+ loaded();
+ } else {
+ bindLoad.call(image);
+ }
+ };
+
+ /*! matchMedia() polyfill - Test a CSS media type/query in JS. Authors & copyright (c) 2012: Scott Jehl, Paul Irish, Nicholas Zakas, David Knight. Dual MIT/BSD license */
+
+ window.matchMedia || (window.matchMedia = function() {
+ "use strict";
+
+ // For browsers that support matchMedium api such as IE 9 and webkit
+ var styleMedia = (window.styleMedia || window.media);
+
+ // For those that don't support matchMedium
+ if (!styleMedia) {
+ var style = document.createElement('style'),
+ script = document.getElementsByTagName('script')[0],
+ info = null;
+
+ style.type = 'text/css';
+ style.id = 'matchmediajs-test';
+
+ script.parentNode.insertBefore(style, script);
+
+ // 'style.currentStyle' is used by IE <= 8 and 'window.getComputedStyle' for all other browsers
+ info = ('getComputedStyle' in window) && window.getComputedStyle(style, null) || style.currentStyle;
+
+ styleMedia = {
+ matchMedium: function(media) {
+ var text = '@media ' + media + '{ #matchmediajs-test { width: 1px; } }';
+
+ // 'style.styleSheet' is used by IE <= 8 and 'style.textContent' for all other browsers
+ if (style.styleSheet) {
+ style.styleSheet.cssText = text;
+ } else {
+ style.textContent = text;
+ }
+
+ // Test if media query is true or false
+ return info.width === '1px';
+ }
+ };
+ }
+
+ return function(media) {
+ return {
+ matches: styleMedia.matchMedium(media || 'all'),
+ media: media || 'all'
+ };
+ };
+ }());
+
+ /*
+ * jquery.requestAnimationFrame
+ * https://github.com/gnarf37/jquery-requestAnimationFrame
+ * Requires jQuery 1.8+
+ *
+ * Copyright (c) 2012 Corey Frang
+ * Licensed under the MIT license.
+ */
+
+ (function(jQuery) {
+
+
+ // requestAnimationFrame polyfill adapted from Erik Möller
+ // fixes from Paul Irish and Tino Zijdel
+ // http://paulirish.com/2011/requestanimationframe-for-smart-animating/
+ // http://my.opera.com/emoller/blog/2011/12/20/requestanimationframe-for-smart-er-animating
+
+ var animating,
+ lastTime = 0,
+ vendors = ['webkit', 'moz'],
+ requestAnimationFrame = window.requestAnimationFrame,
+ cancelAnimationFrame = window.cancelAnimationFrame,
+ jqueryFxAvailable = 'undefined' !== typeof jQuery.fx;
+
+ for (; lastTime < vendors.length && !requestAnimationFrame; lastTime++) {
+ requestAnimationFrame = window[ vendors[lastTime] + 'RequestAnimationFrame' ];
+ cancelAnimationFrame = cancelAnimationFrame ||
+ window[ vendors[lastTime] + 'CancelAnimationFrame' ] ||
+ window[ vendors[lastTime] + 'CancelRequestAnimationFrame' ];
+ }
+
+ function raf() {
+ if (animating) {
+ requestAnimationFrame(raf);
+
+ if (jqueryFxAvailable) {
+ jQuery.fx.tick();
+ }
+ }
+ }
+
+ if (requestAnimationFrame) {
+ // use rAF
+ window.requestAnimationFrame = requestAnimationFrame;
+ window.cancelAnimationFrame = cancelAnimationFrame;
+
+ if (jqueryFxAvailable) {
+ jQuery.fx.timer = function (timer) {
+ if (timer() && jQuery.timers.push(timer) && !animating) {
+ animating = true;
+ raf();
+ }
+ };
+
+ jQuery.fx.stop = function () {
+ animating = false;
+ };
+ }
+ } else {
+ // polyfill
+ window.requestAnimationFrame = function (callback) {
+ var currTime = new Date().getTime(),
+ timeToCall = Math.max(0, 16 - (currTime - lastTime)),
+ id = window.setTimeout(function () {
+ callback(currTime + timeToCall);
+ }, timeToCall);
+ lastTime = currTime + timeToCall;
+ return id;
+ };
+
+ window.cancelAnimationFrame = function (id) {
+ clearTimeout(id);
+ };
+
+ }
+
+ }( $ ));
+
+ function removeQuotes (string) {
+ if (typeof string === 'string' || string instanceof String) {
+ string = string.replace(/^['\\/"]+|(;\s?})+|['\\/"]+$/g, '');
+ }
+
+ return string;
+ }
+
+ function MediaQuery(selector) {
+ this.selector = selector;
+ this.query = '';
+ }
+
+ MediaQuery.prototype.toString = function () {
+ return this.query || (this.query = S(this.selector).css('font-family').replace(/^[\/\\'"]+|(;\s?})+|[\/\\'"]+$/g, ''));
+ };
+
+ window.Foundation = {
+ name : 'Foundation',
+
+ version : '5.5.3',
+
+ media_queries : {
+ 'small' : new MediaQuery('.foundation-mq-small'),
+ 'small-only' : new MediaQuery('.foundation-mq-small-only'),
+ 'medium' : new MediaQuery('.foundation-mq-medium'),
+ 'medium-only' : new MediaQuery('.foundation-mq-medium-only'),
+ 'large' : new MediaQuery('.foundation-mq-large'),
+ 'large-only' : new MediaQuery('.foundation-mq-large-only'),
+ 'xlarge' : new MediaQuery('.foundation-mq-xlarge'),
+ 'xlarge-only' : new MediaQuery('.foundation-mq-xlarge-only'),
+ 'xxlarge' : new MediaQuery('.foundation-mq-xxlarge')
+ },
+
+ stylesheet : $('<style></style>').appendTo('head')[0].sheet,
+
+ global : {
+ namespace : undefined
+ },
+
+ init : function (scope, libraries, method, options, response) {
+ var args = [scope, method, options, response],
+ responses = [];
+
+ // check RTL
+ this.rtl = /rtl/i.test(S('html').attr('dir'));
+
+ // set foundation global scope
+ this.scope = scope || this.scope;
+
+ this.set_namespace();
+
+ if (libraries && typeof libraries === 'string' && !/reflow/i.test(libraries)) {
+ if (this.libs.hasOwnProperty(libraries)) {
+ responses.push(this.init_lib(libraries, args));
+ }
+ } else {
+ for (var lib in this.libs) {
+ responses.push(this.init_lib(lib, libraries));
+ }
+ }
+
+ S(window).load(function () {
+ S(window)
+ .trigger('resize.fndtn.clearing')
+ .trigger('resize.fndtn.dropdown')
+ .trigger('resize.fndtn.equalizer')
+ .trigger('resize.fndtn.interchange')
+ .trigger('resize.fndtn.joyride')
+ .trigger('resize.fndtn.magellan')
+ .trigger('resize.fndtn.topbar')
+ .trigger('resize.fndtn.slider');
+ });
+
+ return scope;
+ },
+
+ init_lib : function (lib, args) {
+ if (this.libs.hasOwnProperty(lib)) {
+ this.patch(this.libs[lib]);
+
+ if (args && args.hasOwnProperty(lib)) {
+ if (typeof this.libs[lib].settings !== 'undefined') {
+ $.extend(true, this.libs[lib].settings, args[lib]);
+ } else if (typeof this.libs[lib].defaults !== 'undefined') {
+ $.extend(true, this.libs[lib].defaults, args[lib]);
+ }
+ return this.libs[lib].init.apply(this.libs[lib], [this.scope, args[lib]]);
+ }
+
+ args = args instanceof Array ? args : new Array(args);
+ return this.libs[lib].init.apply(this.libs[lib], args);
+ }
+
+ return function () {};
+ },
+
+ patch : function (lib) {
+ lib.scope = this.scope;
+ lib.namespace = this.global.namespace;
+ lib.rtl = this.rtl;
+ lib['data_options'] = this.utils.data_options;
+ lib['attr_name'] = attr_name;
+ lib['add_namespace'] = add_namespace;
+ lib['bindings'] = bindings;
+ lib['S'] = this.utils.S;
+ },
+
+ inherit : function (scope, methods) {
+ var methods_arr = methods.split(' '),
+ i = methods_arr.length;
+
+ while (i--) {
+ if (this.utils.hasOwnProperty(methods_arr[i])) {
+ scope[methods_arr[i]] = this.utils[methods_arr[i]];
+ }
+ }
+ },
+
+ set_namespace : function () {
+
+ // Description:
+ // Don't bother reading the namespace out of the meta tag
+ // if the namespace has been set globally in javascript
+ //
+ // Example:
+ // Foundation.global.namespace = 'my-namespace';
+ // or make it an empty string:
+ // Foundation.global.namespace = '';
+ //
+ //
+
+ // If the namespace has not been set (is undefined), try to read it out of the meta element.
+ // Otherwise use the globally defined namespace, even if it's empty ('')
+ var namespace = ( this.global.namespace === undefined ) ? $('.foundation-data-attribute-namespace').css('font-family') : this.global.namespace;
+
+ // Finally, if the namsepace is either undefined or false, set it to an empty string.
+ // Otherwise use the namespace value.
+ this.global.namespace = ( namespace === undefined || /false/i.test(namespace) ) ? '' : namespace;
+ },
+
+ libs : {},
+
+ // methods that can be inherited in libraries
+ utils : {
+
+ // Description:
+ // Fast Selector wrapper returns jQuery object. Only use where getElementById
+ // is not available.
+ //
+ // Arguments:
+ // Selector (String): CSS selector describing the element(s) to be
+ // returned as a jQuery object.
+ //
+ // Scope (String): CSS selector describing the area to be searched. Default
+ // is document.
+ //
+ // Returns:
+ // Element (jQuery Object): jQuery object containing elements matching the
+ // selector within the scope.
+ S : S,
+
+ // Description:
+ // Executes a function a max of once every n milliseconds
+ //
+ // Arguments:
+ // Func (Function): Function to be throttled.
+ //
+ // Delay (Integer): Function execution threshold in milliseconds.
+ //
+ // Returns:
+ // Lazy_function (Function): Function with throttling applied.
+ throttle : function (func, delay) {
+ var timer = null;
+
+ return function () {
+ var context = this, args = arguments;
+
+ if (timer == null) {
+ timer = setTimeout(function () {
+ func.apply(context, args);
+ timer = null;
+ }, delay);
+ }
+ };
+ },
+
+ // Description:
+ // Executes a function when it stops being invoked for n seconds
+ // Modified version of _.debounce() http://underscorejs.org
+ //
+ // Arguments:
+ // Func (Function): Function to be debounced.
+ //
+ // Delay (Integer): Function execution threshold in milliseconds.
+ //
+ // Immediate (Bool): Whether the function should be called at the beginning
+ // of the delay instead of the end. Default is false.
+ //
+ // Returns:
+ // Lazy_function (Function): Function with debouncing applied.
+ debounce : function (func, delay, immediate) {
+ var timeout, result;
+ return function () {
+ var context = this, args = arguments;
+ var later = function () {
+ timeout = null;
+ if (!immediate) {
+ result = func.apply(context, args);
+ }
+ };
+ var callNow = immediate && !timeout;
+ clearTimeout(timeout);
+ timeout = setTimeout(later, delay);
+ if (callNow) {
+ result = func.apply(context, args);
+ }
+ return result;
+ };
+ },
+
+ // Description:
+ // Parses data-options attribute
+ //
+ // Arguments:
+ // El (jQuery Object): Element to be parsed.
+ //
+ // Returns:
+ // Options (Javascript Object): Contents of the element's data-options
+ // attribute.
+ data_options : function (el, data_attr_name) {
+ data_attr_name = data_attr_name || 'options';
+ var opts = {}, ii, p, opts_arr,
+ data_options = function (el) {
+ var namespace = Foundation.global.namespace;
+
+ if (namespace.length > 0) {
+ return el.data(namespace + '-' + data_attr_name);
+ }
+
+ return el.data(data_attr_name);
+ };
+
+ var cached_options = data_options(el);
+
+ if (typeof cached_options === 'object') {
+ return cached_options;
+ }
+
+ opts_arr = (cached_options || ':').split(';');
+ ii = opts_arr.length;
+
+ function isNumber (o) {
+ return !isNaN (o - 0) && o !== null && o !== '' && o !== false && o !== true;
+ }
+
+ function trim (str) {
+ if (typeof str === 'string') {
+ return $.trim(str);
+ }
+ return str;
+ }
+
+ while (ii--) {
+ p = opts_arr[ii].split(':');
+ p = [p[0], p.slice(1).join(':')];
+
+ if (/true/i.test(p[1])) {
+ p[1] = true;
+ }
+ if (/false/i.test(p[1])) {
+ p[1] = false;
+ }
+ if (isNumber(p[1])) {
+ if (p[1].indexOf('.') === -1) {
+ p[1] = parseInt(p[1], 10);
+ } else {
+ p[1] = parseFloat(p[1]);
+ }
+ }
+
+ if (p.length === 2 && p[0].length > 0) {
+ opts[trim(p[0])] = trim(p[1]);
+ }
+ }
+
+ return opts;
+ },
+
+ // Description:
+ // Adds JS-recognizable media queries
+ //
+ // Arguments:
+ // Media (String): Key string for the media query to be stored as in
+ // Foundation.media_queries
+ //
+ // Class (String): Class name for the generated <meta> tag
+ register_media : function (media, media_class) {
+ if (Foundation.media_queries[media] === undefined) {
+ $('head').append('<meta class="' + media_class + '"/>');
+ Foundation.media_queries[media] = removeQuotes($('.' + media_class).css('font-family'));
+ }
+ },
+
+ // Description:
+ // Add custom CSS within a JS-defined media query
+ //
+ // Arguments:
+ // Rule (String): CSS rule to be appended to the document.
+ //
+ // Media (String): Optional media query string for the CSS rule to be
+ // nested under.
+ add_custom_rule : function (rule, media) {
+ if (media === undefined && Foundation.stylesheet) {
+ Foundation.stylesheet.insertRule(rule, Foundation.stylesheet.cssRules.length);
+ } else {
+ var query = Foundation.media_queries[media];
+
+ if (query !== undefined) {
+ Foundation.stylesheet.insertRule('@media ' +
+ Foundation.media_queries[media] + '{ ' + rule + ' }', Foundation.stylesheet.cssRules.length);
+ }
+ }
+ },
+
+ // Description:
+ // Performs a callback function when an image is fully loaded
+ //
+ // Arguments:
+ // Image (jQuery Object): Image(s) to check if loaded.
+ //
+ // Callback (Function): Function to execute when image is fully loaded.
+ image_loaded : function (images, callback) {
+ var self = this,
+ unloaded = images.length;
+
+ function pictures_has_height(images) {
+ var pictures_number = images.length;
+
+ for (var i = pictures_number - 1; i >= 0; i--) {
+ if(images.attr('height') === undefined) {
+ return false;
+ };
+ };
+
+ return true;
+ }
+
+ if (unloaded === 0 || pictures_has_height(images)) {
+ callback(images);
+ }
+
+ images.each(function () {
+ single_image_loaded(self.S(this), function () {
+ unloaded -= 1;
+ if (unloaded === 0) {
+ callback(images);
+ }
+ });
+ });
+ },
+
+ // Description:
+ // Returns a random, alphanumeric string
+ //
+ // Arguments:
+ // Length (Integer): Length of string to be generated. Defaults to random
+ // integer.
+ //
+ // Returns:
+ // Rand (String): Pseudo-random, alphanumeric string.
+ random_str : function () {
+ if (!this.fidx) {
+ this.fidx = 0;
+ }
+ this.prefix = this.prefix || [(this.name || 'F'), (+new Date).toString(36)].join('-');
+
+ return this.prefix + (this.fidx++).toString(36);
+ },
+
+ // Description:
+ // Helper for window.matchMedia
+ //
+ // Arguments:
+ // mq (String): Media query
+ //
+ // Returns:
+ // (Boolean): Whether the media query passes or not
+ match : function (mq) {
+ return window.matchMedia(mq).matches;
+ },
+
+ // Description:
+ // Helpers for checking Foundation default media queries with JS
+ //
+ // Returns:
+ // (Boolean): Whether the media query passes or not
+
+ is_small_up : function () {
+ return this.match(Foundation.media_queries.small);
+ },
+
+ is_medium_up : function () {
+ return this.match(Foundation.media_queries.medium);
+ },
+
+ is_large_up : function () {
+ return this.match(Foundation.media_queries.large);
+ },
+
+ is_xlarge_up : function () {
+ return this.match(Foundation.media_queries.xlarge);
+ },
+
+ is_xxlarge_up : function () {
+ return this.match(Foundation.media_queries.xxlarge);
+ },
+
+ is_small_only : function () {
+ return !this.is_medium_up() && !this.is_large_up() && !this.is_xlarge_up() && !this.is_xxlarge_up();
+ },
+
+ is_medium_only : function () {
+ return this.is_medium_up() && !this.is_large_up() && !this.is_xlarge_up() && !this.is_xxlarge_up();
+ },
+
+ is_large_only : function () {
+ return this.is_medium_up() && this.is_large_up() && !this.is_xlarge_up() && !this.is_xxlarge_up();
+ },
+
+ is_xlarge_only : function () {
+ return this.is_medium_up() && this.is_large_up() && this.is_xlarge_up() && !this.is_xxlarge_up();
+ },
+
+ is_xxlarge_only : function () {
+ return this.is_medium_up() && this.is_large_up() && this.is_xlarge_up() && this.is_xxlarge_up();
+ }
+ }
+ };
+
+ $.fn.foundation = function () {
+ var args = Array.prototype.slice.call(arguments, 0);
+
+ return this.each(function () {
+ Foundation.init.apply(Foundation, [this].concat(args));
+ return this;
+ });
+ };
+
+}(jQuery, window, window.document));
+
+;(function ($, window, document, undefined) {
+ 'use strict';
+
+ Foundation.libs.abide = {
+ name : 'abide',
+
+ version : '5.5.3',
+
+ settings : {
+ live_validate : true, // validate the form as you go
+ validate_on_blur : true, // validate whenever you focus/blur on an input field
+ // validate_on: 'tab', // tab (when user tabs between fields), change (input changes), manual (call custom events)
+
+ focus_on_invalid : true, // automatically bring the focus to an invalid input field
+ error_labels : true, // labels with a for="inputId" will receive an `error` class
+ error_class : 'error', // labels with a for="inputId" will receive an `error` class
+ // the amount of time Abide will take before it validates the form (in ms).
+ // smaller time will result in faster validation
+ timeout : 1000,
+ patterns : {
+ alpha : /^[a-zA-Z]+$/,
+ alpha_numeric : /^[a-zA-Z0-9]+$/,
+ integer : /^[-+]?\d+$/,
+ number : /^[-+]?\d*(?:[\.\,]\d+)?$/,
+
+ // amex, visa, diners
+ card : /^(?:4[0-9]{12}(?:[0-9]{3})?|5[1-5][0-9]{14}|6(?:011|5[0-9][0-9])[0-9]{12}|3[47][0-9]{13}|3(?:0[0-5]|[68][0-9])[0-9]{11}|(?:2131|1800|35\d{3})\d{11})$/,
+ cvv : /^([0-9]){3,4}$/,
+
+ // http://www.whatwg.org/specs/web-apps/current-work/multipage/states-of-the-type-attribute.html#valid-e-mail-address
+ email : /^[a-zA-Z0-9.!#$%&'*+\/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+$/,
+
+ // http://blogs.lse.ac.uk/lti/2008/04/23/a-regular-expression-to-match-any-url/
+ url: /^(https?|ftp|file|ssh):\/\/([-;:&=\+\$,\w]+@{1})?([-A-Za-z0-9\.]+)+:?(\d+)?((\/[-\+~%\/\.\w]+)?\??([-\+=&;%@\.\w]+)?#?([\w]+)?)?/,
+ // abc.de
+ domain : /^([a-zA-Z0-9]([a-zA-Z0-9\-]{0,61}[a-zA-Z0-9])?\.)+[a-zA-Z]{2,8}$/,
+
+ datetime : /^([0-2][0-9]{3})\-([0-1][0-9])\-([0-3][0-9])T([0-5][0-9])\:([0-5][0-9])\:([0-5][0-9])(Z|([\-\+]([0-1][0-9])\:00))$/,
+ // YYYY-MM-DD
+ date : /(?:19|20)[0-9]{2}-(?:(?:0[1-9]|1[0-2])-(?:0[1-9]|1[0-9]|2[0-9])|(?:(?!02)(?:0[1-9]|1[0-2])-(?:30))|(?:(?:0[13578]|1[02])-31))$/,
+ // HH:MM:SS
+ time : /^(0[0-9]|1[0-9]|2[0-3])(:[0-5][0-9]){2}$/,
+ dateISO : /^\d{4}[\/\-]\d{1,2}[\/\-]\d{1,2}$/,
+ // MM/DD/YYYY
+ month_day_year : /^(0[1-9]|1[012])[- \/.](0[1-9]|[12][0-9]|3[01])[- \/.]\d{4}$/,
+ // DD/MM/YYYY
+ day_month_year : /^(0[1-9]|[12][0-9]|3[01])[- \/.](0[1-9]|1[012])[- \/.]\d{4}$/,
+
+ // #FFF or #FFFFFF
+ color : /^#?([a-fA-F0-9]{6}|[a-fA-F0-9]{3})$/
+ },
+ validators : {
+ equalTo : function (el, required, parent) {
+ var from = document.getElementById(el.getAttribute(this.add_namespace('data-equalto'))).value,
+ to = el.value,
+ valid = (from === to);
+
+ return valid;
+ }
+ }
+ },
+
+ timer : null,
+
+ init : function (scope, method, options) {
+ this.bindings(method, options);
+ },
+
+ events : function (scope) {
+ var self = this,
+ form = self.S(scope).attr('novalidate', 'novalidate'),
+ settings = form.data(this.attr_name(true) + '-init') || {};
+
+ this.invalid_attr = this.add_namespace('data-invalid');
+
+ function validate(originalSelf, e) {
+ clearTimeout(self.timer);
+ self.timer = setTimeout(function () {
+ self.validate([originalSelf], e);
+ }.bind(originalSelf), settings.timeout);
+ }
+
+ form
+ .off('.abide')
+ .on('submit.fndtn.abide', function (e) {
+ var is_ajax = /ajax/i.test(self.S(this).attr(self.attr_name()));
+ return self.validate(self.S(this).find('input, textarea, select').not(":hidden, [data-abide-ignore]").get(), e, is_ajax);
+ })
+ .on('validate.fndtn.abide', function (e) {
+ if (settings.validate_on === 'manual') {
+ self.validate([e.target], e);
+ }
+ })
+ .on('reset', function (e) {
+ return self.reset($(this), e);
+ })
+ .find('input, textarea, select').not(":hidden, [data-abide-ignore]")
+ .off('.abide')
+ .on('blur.fndtn.abide change.fndtn.abide', function (e) {
+ var id = this.getAttribute('id'),
+ eqTo = form.find('[data-equalto="'+ id +'"]');
+ // old settings fallback
+ // will be deprecated with F6 release
+ if (settings.validate_on_blur && settings.validate_on_blur === true) {
+ validate(this, e);
+ }
+ // checks if there is an equalTo equivalent related by id
+ if(typeof eqTo.get(0) !== "undefined" && eqTo.val().length){
+ validate(eqTo.get(0),e);
+ }
+ // new settings combining validate options into one setting
+ if (settings.validate_on === 'change') {
+ validate(this, e);
+ }
+ })
+ .on('keydown.fndtn.abide', function (e) {
+ var id = this.getAttribute('id'),
+ eqTo = form.find('[data-equalto="'+ id +'"]');
+ // old settings fallback
+ // will be deprecated with F6 release
+ if (settings.live_validate && settings.live_validate === true && e.which != 9) {
+ validate(this, e);
+ }
+ // checks if there is an equalTo equivalent related by id
+ if(typeof eqTo.get(0) !== "undefined" && eqTo.val().length){
+ validate(eqTo.get(0),e);
+ }
+ // new settings combining validate options into one setting
+ if (settings.validate_on === 'tab' && e.which === 9) {
+ validate(this, e);
+ }
+ else if (settings.validate_on === 'change') {
+ validate(this, e);
+ }
+ })
+ .on('focus', function (e) {
+ if (navigator.userAgent.match(/iPad|iPhone|Android|BlackBerry|Windows Phone|webOS/i)) {
+ $('html, body').animate({
+ scrollTop: $(e.target).offset().top
+ }, 100);
+ }
+ });
+ },
+
+ reset : function (form, e) {
+ var self = this;
+ form.removeAttr(self.invalid_attr);
+
+ $('[' + self.invalid_attr + ']', form).removeAttr(self.invalid_attr);
+ $('.' + self.settings.error_class, form).not('small').removeClass(self.settings.error_class);
+ $(':input', form).not(':button, :submit, :reset, :hidden, [data-abide-ignore]').val('').removeAttr(self.invalid_attr);
+ },
+
+ validate : function (els, e, is_ajax) {
+ var validations = this.parse_patterns(els),
+ validation_count = validations.length,
+ form = this.S(els[0]).closest('form'),
+ submit_event = /submit/.test(e.type);
+
+ // Has to count up to make sure the focus gets applied to the top error
+ for (var i = 0; i < validation_count; i++) {
+ if (!validations[i] && (submit_event || is_ajax)) {
+ if (this.settings.focus_on_invalid) {
+ els[i].focus();
+ }
+ form.trigger('invalid.fndtn.abide');
+ this.S(els[i]).closest('form').attr(this.invalid_attr, '');
+ return false;
+ }
+ }
+
+ if (submit_event || is_ajax) {
+ form.trigger('valid.fndtn.abide');
+ }
+
+ form.removeAttr(this.invalid_attr);
+
+ if (is_ajax) {
+ return false;
+ }
+
+ return true;
+ },
+
+ parse_patterns : function (els) {
+ var i = els.length,
+ el_patterns = [];
+
+ while (i--) {
+ el_patterns.push(this.pattern(els[i]));
+ }
+
+ return this.check_validation_and_apply_styles(el_patterns);
+ },
+
+ pattern : function (el) {
+ var type = el.getAttribute('type'),
+ required = typeof el.getAttribute('required') === 'string';
+
+ var pattern = el.getAttribute('pattern') || '';
+
+ if (this.settings.patterns.hasOwnProperty(pattern) && pattern.length > 0) {
+ return [el, this.settings.patterns[pattern], required];
+ } else if (pattern.length > 0) {
+ return [el, new RegExp(pattern), required];
+ }
+
+ if (this.settings.patterns.hasOwnProperty(type)) {
+ return [el, this.settings.patterns[type], required];
+ }
+
+ pattern = /.*/;
+
+ return [el, pattern, required];
+ },
+
+ // TODO: Break this up into smaller methods, getting hard to read.
+ check_validation_and_apply_styles : function (el_patterns) {
+ var i = el_patterns.length,
+ validations = [];
+ if (i == 0) {
+ return validations;
+ }
+ var form = this.S(el_patterns[0][0]).closest('[data-' + this.attr_name(true) + ']'),
+ settings = form.data(this.attr_name(true) + '-init') || {};
+ while (i--) {
+ var el = el_patterns[i][0],
+ required = el_patterns[i][2],
+ value = el.value.trim(),
+ direct_parent = this.S(el).parent(),
+ validator = el.getAttribute(this.add_namespace('data-abide-validator')),
+ is_radio = el.type === 'radio',
+ is_checkbox = el.type === 'checkbox',
+ label = this.S('label[for="' + el.getAttribute('id') + '"]'),
+ valid_length = (required) ? (el.value.length > 0) : true,
+ el_validations = [];
+
+ var parent, valid;
+
+ // support old way to do equalTo validations
+ if (el.getAttribute(this.add_namespace('data-equalto'))) { validator = 'equalTo' }
+
+ if (!direct_parent.is('label')) {
+ parent = direct_parent;
+ } else {
+ parent = direct_parent.parent();
+ }
+
+ if (is_radio && required) {
+ el_validations.push(this.valid_radio(el, required));
+ } else if (is_checkbox && required) {
+ el_validations.push(this.valid_checkbox(el, required));
+
+ } else if (validator) {
+ // Validate using each of the specified (space-delimited) validators.
+ var validators = validator.split(' ');
+ var last_valid = true, all_valid = true;
+ for (var iv = 0; iv < validators.length; iv++) {
+ valid = this.settings.validators[validators[iv]].apply(this, [el, required, parent])
+ el_validations.push(valid);
+ all_valid = valid && last_valid;
+ last_valid = valid;
+ }
+ if (all_valid) {
+ this.S(el).removeAttr(this.invalid_attr);
+ parent.removeClass('error');
+ if (label.length > 0 && this.settings.error_labels) {
+ label.removeClass(this.settings.error_class).removeAttr('role');
+ }
+ $(el).triggerHandler('valid');
+ } else {
+ this.S(el).attr(this.invalid_attr, '');
+ parent.addClass('error');
+ if (label.length > 0 && this.settings.error_labels) {
+ label.addClass(this.settings.error_class).attr('role', 'alert');
+ }
+ $(el).triggerHandler('invalid');
+ }
+ } else {
+
+ if (el_patterns[i][1].test(value) && valid_length ||
+ !required && el.value.length < 1 || $(el).attr('disabled')) {
+ el_validations.push(true);
+ } else {
+ el_validations.push(false);
+ }
+
+ el_validations = [el_validations.every(function (valid) {return valid;})];
+ if (el_validations[0]) {
+ this.S(el).removeAttr(this.invalid_attr);
+ el.setAttribute('aria-invalid', 'false');
+ el.removeAttribute('aria-describedby');
+ parent.removeClass(this.settings.error_class);
+ if (label.length > 0 && this.settings.error_labels) {
+ label.removeClass(this.settings.error_class).removeAttr('role');
+ }
+ $(el).triggerHandler('valid');
+ } else {
+ this.S(el).attr(this.invalid_attr, '');
+ el.setAttribute('aria-invalid', 'true');
+
+ // Try to find the error associated with the input
+ var errorElem = parent.find('small.' + this.settings.error_class, 'span.' + this.settings.error_class);
+ var errorID = errorElem.length > 0 ? errorElem[0].id : '';
+ if (errorID.length > 0) {
+ el.setAttribute('aria-describedby', errorID);
+ }
+
+ // el.setAttribute('aria-describedby', $(el).find('.error')[0].id);
+ parent.addClass(this.settings.error_class);
+ if (label.length > 0 && this.settings.error_labels) {
+ label.addClass(this.settings.error_class).attr('role', 'alert');
+ }
+ $(el).triggerHandler('invalid');
+ }
+ }
+ validations = validations.concat(el_validations);
+ }
+
+ return validations;
+ },
+
+ valid_checkbox : function (el, required) {
+ var el = this.S(el),
+ valid = (el.is(':checked') || !required || el.get(0).getAttribute('disabled'));
+
+ if (valid) {
+ el.removeAttr(this.invalid_attr).parent().removeClass(this.settings.error_class);
+ $(el).triggerHandler('valid');
+ } else {
+ el.attr(this.invalid_attr, '').parent().addClass(this.settings.error_class);
+ $(el).triggerHandler('invalid');
+ }
+
+ return valid;
+ },
+
+ valid_radio : function (el, required) {
+ var name = el.getAttribute('name'),
+ group = this.S(el).closest('[data-' + this.attr_name(true) + ']').find("[name='" + name + "']"),
+ count = group.length,
+ valid = false,
+ disabled = false;
+
+ // Has to count up to make sure the focus gets applied to the top error
+ for (var i=0; i < count; i++) {
+ if( group[i].getAttribute('disabled') ){
+ disabled=true;
+ valid=true;
+ } else {
+ if (group[i].checked){
+ valid = true;
+ } else {
+ if( disabled ){
+ valid = false;
+ }
+ }
+ }
+ }
+
+ // Has to count up to make sure the focus gets applied to the top error
+ for (var i = 0; i < count; i++) {
+ if (valid) {
+ this.S(group[i]).removeAttr(this.invalid_attr).parent().removeClass(this.settings.error_class);
+ $(group[i]).triggerHandler('valid');
+ } else {
+ this.S(group[i]).attr(this.invalid_attr, '').parent().addClass(this.settings.error_class);
+ $(group[i]).triggerHandler('invalid');
+ }
+ }
+
+ return valid;
+ },
+
+ valid_equal : function (el, required, parent) {
+ var from = document.getElementById(el.getAttribute(this.add_namespace('data-equalto'))).value,
+ to = el.value,
+ valid = (from === to);
+
+ if (valid) {
+ this.S(el).removeAttr(this.invalid_attr);
+ parent.removeClass(this.settings.error_class);
+ if (label.length > 0 && settings.error_labels) {
+ label.removeClass(this.settings.error_class);
+ }
+ } else {
+ this.S(el).attr(this.invalid_attr, '');
+ parent.addClass(this.settings.error_class);
+ if (label.length > 0 && settings.error_labels) {
+ label.addClass(this.settings.error_class);
+ }
+ }
+
+ return valid;
+ },
+
+ valid_oneof : function (el, required, parent, doNotValidateOthers) {
+ var el = this.S(el),
+ others = this.S('[' + this.add_namespace('data-oneof') + ']'),
+ valid = others.filter(':checked').length > 0;
+
+ if (valid) {
+ el.removeAttr(this.invalid_attr).parent().removeClass(this.settings.error_class);
+ } else {
+ el.attr(this.invalid_attr, '').parent().addClass(this.settings.error_class);
+ }
+
+ if (!doNotValidateOthers) {
+ var _this = this;
+ others.each(function () {
+ _this.valid_oneof.call(_this, this, null, null, true);
+ });
+ }
+
+ return valid;
+ },
+
+ reflow : function(scope, options) {
+ var self = this,
+ form = self.S('[' + this.attr_name() + ']').attr('novalidate', 'novalidate');
+ self.S(form).each(function (idx, el) {
+ self.events(el);
+ });
+ }
+ };
+}(jQuery, window, window.document));
+
+;(function ($, window, document, undefined) {
+ 'use strict';
+
+ Foundation.libs.accordion = {
+ name : 'accordion',
+
+ version : '5.5.3',
+
+ settings : {
+ content_class : 'content',
+ active_class : 'active',
+ multi_expand : false,
+ toggleable : true,
+ callback : function () {}
+ },
+
+ init : function (scope, method, options) {
+ this.bindings(method, options);
+ },
+
+ events : function (instance) {
+ var self = this;
+ var S = this.S;
+ self.create(this.S(instance));
+
+ S(this.scope)
+ .off('.fndtn.accordion')
+ .on('click.fndtn.accordion', '[' + this.attr_name() + '] > dd > a, [' + this.attr_name() + '] > li > a', function (e) {
+ var accordion = S(this).closest('[' + self.attr_name() + ']'),
+ groupSelector = self.attr_name() + '=' + accordion.attr(self.attr_name()),
+ settings = accordion.data(self.attr_name(true) + '-init') || self.settings,
+ target = S('#' + this.href.split('#')[1]),
+ aunts = $('> dd, > li', accordion),
+ siblings = aunts.children('.' + settings.content_class),
+ active_content = siblings.filter('.' + settings.active_class);
+
+ e.preventDefault();
+
+ if (accordion.attr(self.attr_name())) {
+ siblings = siblings.add('[' + groupSelector + '] dd > ' + '.' + settings.content_class + ', [' + groupSelector + '] li > ' + '.' + settings.content_class);
+ aunts = aunts.add('[' + groupSelector + '] dd, [' + groupSelector + '] li');
+ }
+
+ if (settings.toggleable && target.is(active_content)) {
+ target.parent('dd, li').toggleClass(settings.active_class, false);
+ target.toggleClass(settings.active_class, false);
+ S(this).attr('aria-expanded', function(i, attr){
+ return attr === 'true' ? 'false' : 'true';
+ });
+ settings.callback(target);
+ target.triggerHandler('toggled', [accordion]);
+ accordion.triggerHandler('toggled', [target]);
+ return;
+ }
+
+ if (!settings.multi_expand) {
+ siblings.removeClass(settings.active_class);
+ aunts.removeClass(settings.active_class);
+ aunts.children('a').attr('aria-expanded','false');
+ }
+
+ target.addClass(settings.active_class).parent().addClass(settings.active_class);
+ settings.callback(target);
+ target.triggerHandler('toggled', [accordion]);
+ accordion.triggerHandler('toggled', [target]);
+ S(this).attr('aria-expanded','true');
+ });
+ },
+
+ create: function($instance) {
+ var self = this,
+ accordion = $instance,
+ aunts = $('> .accordion-navigation', accordion),
+ settings = accordion.data(self.attr_name(true) + '-init') || self.settings;
+
+ aunts.children('a').attr('aria-expanded','false');
+ aunts.has('.' + settings.content_class + '.' + settings.active_class).addClass(settings.active_class).children('a').attr('aria-expanded','true');
+
+ if (settings.multi_expand) {
+ $instance.attr('aria-multiselectable','true');
+ }
+ },
+
+ toggle : function(options) {
+ var options = typeof options !== 'undefined' ? options : {};
+ var selector = typeof options.selector !== 'undefined' ? options.selector : '';
+ var toggle_state = typeof options.toggle_state !== 'undefined' ? options.toggle_state : '';
+ var $accordion = typeof options.$accordion !== 'undefined' ? options.$accordion : this.S(this.scope).closest('[' + this.attr_name() + ']');
+
+ var $items = $accordion.find('> dd' + selector + ', > li' + selector);
+ if ( $items.length < 1 ) {
+ if ( window.console ) {
+ console.error('Selection not found.', selector);
+ }
+ return false;
+ }
+
+ var S = this.S;
+ var active_class = this.settings.active_class;
+ $items.each(function() {
+ var $item = S(this);
+ var is_active = $item.hasClass(active_class);
+ if ( ( is_active && toggle_state === 'close' ) || ( !is_active && toggle_state === 'open' ) || toggle_state === '' ) {
+ $item.find('> a').trigger('click.fndtn.accordion');
+ }
+ });
+ },
+
+ open : function(options) {
+ var options = typeof options !== 'undefined' ? options : {};
+ options.toggle_state = 'open';
+ this.toggle(options);
+ },
+
+ close : function(options) {
+ var options = typeof options !== 'undefined' ? options : {};
+ options.toggle_state = 'close';
+ this.toggle(options);
+ },
+
+ off : function () {},
+
+ reflow : function () {}
+ };
+}(jQuery, window, window.document));
+
+;(function ($, window, document, undefined) {
+ 'use strict';
+
+ Foundation.libs.alert = {
+ name : 'alert',
+
+ version : '5.5.3',
+
+ settings : {
+ callback : function () {}
+ },
+
+ init : function (scope, method, options) {
+ this.bindings(method, options);
+ },
+
+ events : function () {
+ var self = this,
+ S = this.S;
+
+ $(this.scope).off('.alert').on('click.fndtn.alert', '[' + this.attr_name() + '] .close', function (e) {
+ var alertBox = S(this).closest('[' + self.attr_name() + ']'),
+ settings = alertBox.data(self.attr_name(true) + '-init') || self.settings;
+
+ e.preventDefault();
+ if (Modernizr.csstransitions) {
+ alertBox.addClass('alert-close');
+ alertBox.on('transitionend webkitTransitionEnd oTransitionEnd', function (e) {
+ S(this).trigger('close.fndtn.alert').remove();
+ settings.callback();
+ });
+ } else {
+ alertBox.fadeOut(300, function () {
+ S(this).trigger('close.fndtn.alert').remove();
+ settings.callback();
+ });
+ }
+ });
+ },
+
+ reflow : function () {}
+ };
+}(jQuery, window, window.document));
+
+;(function ($, window, document, undefined) {
+ 'use strict';
+
+ Foundation.libs.clearing = {
+ name : 'clearing',
+
+ version : '5.5.3',
+
+ settings : {
+ templates : {
+ viewing : '<a href="#" class="clearing-close">×</a>' +
+ '<div class="visible-img" style="display: none"><div class="clearing-touch-label"></div><img src="data:image/gif;base64,R0lGODlhAQABAAD/ACwAAAAAAQABAAACADs%3D" alt="" />' +
+ '<p class="clearing-caption"></p><a href="#" class="clearing-main-prev"><span></span></a>' +
+ '<a href="#" class="clearing-main-next"><span></span></a></div>' +
+ '<img class="clearing-preload-next" style="display: none" src="data:image/gif;base64,R0lGODlhAQABAAD/ACwAAAAAAQABAAACADs%3D" alt="" />' +
+ '<img class="clearing-preload-prev" style="display: none" src="data:image/gif;base64,R0lGODlhAQABAAD/ACwAAAAAAQABAAACADs%3D" alt="" />'
+ },
+
+ // comma delimited list of selectors that, on click, will close clearing,
+ // add 'div.clearing-blackout, div.visible-img' to close on background click
+ close_selectors : '.clearing-close, div.clearing-blackout',
+
+ // Default to the entire li element.
+ open_selectors : '',
+
+ // Image will be skipped in carousel.
+ skip_selector : '',
+
+ touch_label : '',
+
+ // event initializer and locks
+ init : false,
+ locked : false
+ },
+
+ init : function (scope, method, options) {
+ var self = this;
+ Foundation.inherit(this, 'throttle image_loaded');
+
+ this.bindings(method, options);
+
+ if (self.S(this.scope).is('[' + this.attr_name() + ']')) {
+ this.assemble(self.S('li', this.scope));
+ } else {
+ self.S('[' + this.attr_name() + ']', this.scope).each(function () {
+ self.assemble(self.S('li', this));
+ });
+ }
+ },
+
+ events : function (scope) {
+ var self = this,
+ S = self.S,
+ $scroll_container = $('.scroll-container');
+
+ if ($scroll_container.length > 0) {
+ this.scope = $scroll_container;
+ }
+
+ S(this.scope)
+ .off('.clearing')
+ .on('click.fndtn.clearing', 'ul[' + this.attr_name() + '] li ' + this.settings.open_selectors,
+ function (e, current, target) {
+ var current = current || S(this),
+ target = target || current,
+ next = current.next('li'),
+ settings = current.closest('[' + self.attr_name() + ']').data(self.attr_name(true) + '-init'),
+ image = S(e.target);
+
+ e.preventDefault();
+
+ if (!settings) {
+ self.init();
+ settings = current.closest('[' + self.attr_name() + ']').data(self.attr_name(true) + '-init');
+ }
+
+ // if clearing is open and the current image is
+ // clicked, go to the next image in sequence
+ if (target.hasClass('visible') &&
+ current[0] === target[0] &&
+ next.length > 0 && self.is_open(current)) {
+ target = next;
+ image = S('img', target);
+ }
+
+ // set current and target to the clicked li if not otherwise defined.
+ self.open(image, current, target);
+ self.update_paddles(target);
+ })
+
+ .on('click.fndtn.clearing', '.clearing-main-next',
+ function (e) { self.nav(e, 'next') })
+ .on('click.fndtn.clearing', '.clearing-main-prev',
+ function (e) { self.nav(e, 'prev') })
+ .on('click.fndtn.clearing', this.settings.close_selectors,
+ function (e) { Foundation.libs.clearing.close(e, this) });
+
+ $(document).on('keydown.fndtn.clearing',
+ function (e) { self.keydown(e) });
+
+ S(window).off('.clearing').on('resize.fndtn.clearing',
+ function () { self.resize() });
+
+ this.swipe_events(scope);
+ },
+
+ swipe_events : function (scope) {
+ var self = this,
+ S = self.S;
+
+ S(this.scope)
+ .on('touchstart.fndtn.clearing', '.visible-img', function (e) {
+ if (!e.touches) { e = e.originalEvent; }
+ var data = {
+ start_page_x : e.touches[0].pageX,
+ start_page_y : e.touches[0].pageY,
+ start_time : (new Date()).getTime(),
+ delta_x : 0,
+ is_scrolling : undefined
+ };
+
+ S(this).data('swipe-transition', data);
+ e.stopPropagation();
+ })
+ .on('touchmove.fndtn.clearing', '.visible-img', function (e) {
+ if (!e.touches) {
+ e = e.originalEvent;
+ }
+ // Ignore pinch/zoom events
+ if (e.touches.length > 1 || e.scale && e.scale !== 1) {
+ return;
+ }
+
+ var data = S(this).data('swipe-transition');
+
+ if (typeof data === 'undefined') {
+ data = {};
+ }
+
+ data.delta_x = e.touches[0].pageX - data.start_page_x;
+
+ if (Foundation.rtl) {
+ data.delta_x = -data.delta_x;
+ }
+
+ if (typeof data.is_scrolling === 'undefined') {
+ data.is_scrolling = !!( data.is_scrolling || Math.abs(data.delta_x) < Math.abs(e.touches[0].pageY - data.start_page_y) );
+ }
+
+ if (!data.is_scrolling && !data.active) {
+ e.preventDefault();
+ var direction = (data.delta_x < 0) ? 'next' : 'prev';
+ data.active = true;
+ self.nav(e, direction);
+ }
+ })
+ .on('touchend.fndtn.clearing', '.visible-img', function (e) {
+ S(this).data('swipe-transition', {});
+ e.stopPropagation();
+ });
+ },
+
+ assemble : function ($li) {
+ var $el = $li.parent();
+
+ if ($el.parent().hasClass('carousel')) {
+ return;
+ }
+
+ $el.after('<div id="foundationClearingHolder"></div>');
+
+ var grid = $el.detach(),
+ grid_outerHTML = '';
+
+ if (grid[0] == null) {
+ return;
+ } else {
+ grid_outerHTML = grid[0].outerHTML;
+ }
+
+ var holder = this.S('#foundationClearingHolder'),
+ settings = $el.data(this.attr_name(true) + '-init'),
+ data = {
+ grid : '<div class="carousel">' + grid_outerHTML + '</div>',
+ viewing : settings.templates.viewing
+ },
+ wrapper = '<div class="clearing-assembled"><div>' + data.viewing +
+ data.grid + '</div></div>',
+ touch_label = this.settings.touch_label;
+
+ if (Modernizr.touch) {
+ wrapper = $(wrapper).find('.clearing-touch-label').html(touch_label).end();
+ }
+
+ holder.after(wrapper).remove();
+ },
+
+ open : function ($image, current, target) {
+ var self = this,
+ body = $(document.body),
+ root = target.closest('.clearing-assembled'),
+ container = self.S('div', root).first(),
+ visible_image = self.S('.visible-img', container),
+ image = self.S('img', visible_image).not($image),
+ label = self.S('.clearing-touch-label', container),
+ error = false,
+ loaded = {};
+
+ // Event to disable scrolling on touch devices when Clearing is activated
+ $('body').on('touchmove', function (e) {
+ e.preventDefault();
+ });
+
+ image.error(function () {
+ error = true;
+ });
+
+ function startLoad() {
+ setTimeout(function () {
+ this.image_loaded(image, function () {
+ if (image.outerWidth() === 1 && !error) {
+ startLoad.call(this);
+ } else {
+ cb.call(this, image);
+ }
+ }.bind(this));
+ }.bind(this), 100);
+ }
+
+ function cb (image) {
+ var $image = $(image);
+ $image.css('visibility', 'visible');
+ $image.trigger('imageVisible');
+ // toggle the gallery
+ body.css('overflow', 'hidden');
+ root.addClass('clearing-blackout');
+ container.addClass('clearing-container');
+ visible_image.show();
+ this.fix_height(target)
+ .caption(self.S('.clearing-caption', visible_image), self.S('img', target))
+ .center_and_label(image, label)
+ .shift(current, target, function () {
+ target.closest('li').siblings().removeClass('visible');
+ target.closest('li').addClass('visible');
+ });
+ visible_image.trigger('opened.fndtn.clearing')
+ }
+
+ if (!this.locked()) {
+ visible_image.trigger('open.fndtn.clearing');
+ // set the image to the selected thumbnail
+ loaded = this.load($image);
+ if (loaded.interchange) {
+ image
+ .attr('data-interchange', loaded.interchange)
+ .foundation('interchange', 'reflow');
+ } else {
+ image
+ .attr('src', loaded.src)
+ .attr('data-interchange', '');
+ }
+ image.css('visibility', 'hidden');
+
+ startLoad.call(this);
+ }
+ },
+
+ close : function (e, el) {
+ e.preventDefault();
+
+ var root = (function (target) {
+ if (/blackout/.test(target.selector)) {
+ return target;
+ } else {
+ return target.closest('.clearing-blackout');
+ }
+ }($(el))),
+ body = $(document.body), container, visible_image;
+
+ if (el === e.target && root) {
+ body.css('overflow', '');
+ container = $('div', root).first();
+ visible_image = $('.visible-img', container);
+ visible_image.trigger('close.fndtn.clearing');
+ this.settings.prev_index = 0;
+ $('ul[' + this.attr_name() + ']', root)
+ .attr('style', '').closest('.clearing-blackout')
+ .removeClass('clearing-blackout');
+ container.removeClass('clearing-container');
+ visible_image.hide();
+ visible_image.trigger('closed.fndtn.clearing');
+ }
+
+ // Event to re-enable scrolling on touch devices
+ $('body').off('touchmove');
+
+ return false;
+ },
+
+ is_open : function (current) {
+ return current.parent().prop('style').length > 0;
+ },
+
+ keydown : function (e) {
+ var clearing = $('.clearing-blackout ul[' + this.attr_name() + ']'),
+ NEXT_KEY = this.rtl ? 37 : 39,
+ PREV_KEY = this.rtl ? 39 : 37,
+ ESC_KEY = 27;
+
+ if (e.which === NEXT_KEY) {
+ this.go(clearing, 'next');
+ }
+ if (e.which === PREV_KEY) {
+ this.go(clearing, 'prev');
+ }
+ if (e.which === ESC_KEY) {
+ this.S('a.clearing-close').trigger('click.fndtn.clearing');
+ }
+ },
+
+ nav : function (e, direction) {
+ var clearing = $('ul[' + this.attr_name() + ']', '.clearing-blackout');
+
+ e.preventDefault();
+ this.go(clearing, direction);
+ },
+
+ resize : function () {
+ var image = $('img', '.clearing-blackout .visible-img'),
+ label = $('.clearing-touch-label', '.clearing-blackout');
+
+ if (image.length) {
+ this.center_and_label(image, label);
+ image.trigger('resized.fndtn.clearing')
+ }
+ },
+
+ // visual adjustments
+ fix_height : function (target) {
+ var lis = target.parent().children(),
+ self = this;
+
+ lis.each(function () {
+ var li = self.S(this),
+ image = li.find('img');
+
+ if (li.height() > image.outerHeight()) {
+ li.addClass('fix-height');
+ }
+ })
+ .closest('ul')
+ .width(lis.length * 100 + '%');
+
+ return this;
+ },
+
+ update_paddles : function (target) {
+ target = target.closest('li');
+ var visible_image = target
+ .closest('.carousel')
+ .siblings('.visible-img');
+
+ if (target.next().length > 0) {
+ this.S('.clearing-main-next', visible_image).removeClass('disabled');
+ } else {
+ this.S('.clearing-main-next', visible_image).addClass('disabled');
+ }
+
+ if (target.prev().length > 0) {
+ this.S('.clearing-main-prev', visible_image).removeClass('disabled');
+ } else {
+ this.S('.clearing-main-prev', visible_image).addClass('disabled');
+ }
+ },
+
+ center_and_label : function (target, label) {
+ if (!this.rtl && label.length > 0) {
+ label.css({
+ marginLeft : -(label.outerWidth() / 2),
+ marginTop : -(target.outerHeight() / 2)-label.outerHeight()-10
+ });
+ } else {
+ label.css({
+ marginRight : -(label.outerWidth() / 2),
+ marginTop : -(target.outerHeight() / 2)-label.outerHeight()-10,
+ left: 'auto',
+ right: '50%'
+ });
+ }
+ return this;
+ },
+
+ // image loading and preloading
+
+ load : function ($image) {
+ var href,
+ interchange,
+ closest_a;
+
+ if ($image[0].nodeName === 'A') {
+ href = $image.attr('href');
+ interchange = $image.data('clearing-interchange');
+ } else {
+ closest_a = $image.closest('a');
+ href = closest_a.attr('href');
+ interchange = closest_a.data('clearing-interchange');
+ }
+
+ this.preload($image);
+
+ return {
+ 'src': href ? href : $image.attr('src'),
+ 'interchange': href ? interchange : $image.data('clearing-interchange')
+ }
+ },
+
+ preload : function ($image) {
+ this
+ .img($image.closest('li').next(), 'next')
+ .img($image.closest('li').prev(), 'prev');
+ },
+
+ img : function (img, sibling_type) {
+ if (img.length) {
+ var preload_img = $('.clearing-preload-' + sibling_type),
+ new_a = this.S('a', img),
+ src,
+ interchange,
+ image;
+
+ if (new_a.length) {
+ src = new_a.attr('href');
+ interchange = new_a.data('clearing-interchange');
+ } else {
+ image = this.S('img', img);
+ src = image.attr('src');
+ interchange = image.data('clearing-interchange');
+ }
+
+ if (interchange) {
+ preload_img.attr('data-interchange', interchange);
+ } else {
+ preload_img.attr('src', src);
+ preload_img.attr('data-interchange', '');
+ }
+ }
+ return this;
+ },
+
+ // image caption
+
+ caption : function (container, $image) {
+ var caption = $image.attr('data-caption');
+
+ if (caption) {
+ var containerPlain = container.get(0);
+ containerPlain.innerHTML = caption;
+ container.show();
+ } else {
+ container
+ .text('')
+ .hide();
+ }
+ return this;
+ },
+
+ // directional methods
+
+ go : function ($ul, direction) {
+ var current = this.S('.visible', $ul),
+ target = current[direction]();
+
+ // Check for skip selector.
+ if (this.settings.skip_selector && target.find(this.settings.skip_selector).length != 0) {
+ target = target[direction]();
+ }
+
+ if (target.length) {
+ this.S('img', target)
+ .trigger('click.fndtn.clearing', [current, target])
+ .trigger('change.fndtn.clearing');
+ }
+ },
+
+ shift : function (current, target, callback) {
+ var clearing = target.parent(),
+ old_index = this.settings.prev_index || target.index(),
+ direction = this.direction(clearing, current, target),
+ dir = this.rtl ? 'right' : 'left',
+ left = parseInt(clearing.css('left'), 10),
+ width = target.outerWidth(),
+ skip_shift;
+
+ var dir_obj = {};
+
+ // we use jQuery animate instead of CSS transitions because we
+ // need a callback to unlock the next animation
+ // needs support for RTL **
+ if (target.index() !== old_index && !/skip/.test(direction)) {
+ if (/left/.test(direction)) {
+ this.lock();
+ dir_obj[dir] = left + width;
+ clearing.animate(dir_obj, 300, this.unlock());
+ } else if (/right/.test(direction)) {
+ this.lock();
+ dir_obj[dir] = left - width;
+ clearing.animate(dir_obj, 300, this.unlock());
+ }
+ } else if (/skip/.test(direction)) {
+ // the target image is not adjacent to the current image, so
+ // do we scroll right or not
+ skip_shift = target.index() - this.settings.up_count;
+ this.lock();
+
+ if (skip_shift > 0) {
+ dir_obj[dir] = -(skip_shift * width);
+ clearing.animate(dir_obj, 300, this.unlock());
+ } else {
+ dir_obj[dir] = 0;
+ clearing.animate(dir_obj, 300, this.unlock());
+ }
+ }
+
+ callback();
+ },
+
+ direction : function ($el, current, target) {
+ var lis = this.S('li', $el),
+ li_width = lis.outerWidth() + (lis.outerWidth() / 4),
+ up_count = Math.floor(this.S('.clearing-container').outerWidth() / li_width) - 1,
+ target_index = lis.index(target),
+ response;
+
+ this.settings.up_count = up_count;
+
+ if (this.adjacent(this.settings.prev_index, target_index)) {
+ if ((target_index > up_count) && target_index > this.settings.prev_index) {
+ response = 'right';
+ } else if ((target_index > up_count - 1) && target_index <= this.settings.prev_index) {
+ response = 'left';
+ } else {
+ response = false;
+ }
+ } else {
+ response = 'skip';
+ }
+
+ this.settings.prev_index = target_index;
+
+ return response;
+ },
+
+ adjacent : function (current_index, target_index) {
+ for (var i = target_index + 1; i >= target_index - 1; i--) {
+ if (i === current_index) {
+ return true;
+ }
+ }
+ return false;
+ },
+
+ // lock management
+
+ lock : function () {
+ this.settings.locked = true;
+ },
+
+ unlock : function () {
+ this.settings.locked = false;
+ },
+
+ locked : function () {
+ return this.settings.locked;
+ },
+
+ off : function () {
+ this.S(this.scope).off('.fndtn.clearing');
+ this.S(window).off('.fndtn.clearing');
+ },
+
+ reflow : function () {
+ this.init();
+ }
+ };
+
+}(jQuery, window, window.document));
+
+;(function ($, window, document, undefined) {
+ 'use strict';
+
+ Foundation.libs.dropdown = {
+ name : 'dropdown',
+
+ version : '5.5.3',
+
+ settings : {
+ active_class : 'open',
+ disabled_class : 'disabled',
+ mega_class : 'mega',
+ align : 'bottom',
+ is_hover : false,
+ hover_timeout : 150,
+ opened : function () {},
+ closed : function () {}
+ },
+
+ init : function (scope, method, options) {
+ Foundation.inherit(this, 'throttle');
+
+ $.extend(true, this.settings, method, options);
+ this.bindings(method, options);
+ },
+
+ events : function (scope) {
+ var self = this,
+ S = self.S;
+
+ S(this.scope)
+ .off('.dropdown')
+ .on('click.fndtn.dropdown', '[' + this.attr_name() + ']', function (e) {
+ var settings = S(this).data(self.attr_name(true) + '-init') || self.settings;
+ if (!settings.is_hover || Modernizr.touch) {
+ e.preventDefault();
+ if (S(this).parent('[data-reveal-id]').length) {
+ e.stopPropagation();
+ }
+ self.toggle($(this));
+ }
+ })
+ .on('mouseenter.fndtn.dropdown', '[' + this.attr_name() + '], [' + this.attr_name() + '-content]', function (e) {
+ var $this = S(this),
+ dropdown,
+ target;
+
+ clearTimeout(self.timeout);
+
+ if ($this.data(self.data_attr())) {
+ dropdown = S('#' + $this.data(self.data_attr()));
+ target = $this;
+ } else {
+ dropdown = $this;
+ target = S('[' + self.attr_name() + '="' + dropdown.attr('id') + '"]');
+ }
+
+ var settings = target.data(self.attr_name(true) + '-init') || self.settings;
+
+ if (S(e.currentTarget).data(self.data_attr()) && settings.is_hover) {
+ self.closeall.call(self);
+ }
+
+ if (settings.is_hover) {
+ self.open.apply(self, [dropdown, target]);
+ }
+ })
+ .on('mouseleave.fndtn.dropdown', '[' + this.attr_name() + '], [' + this.attr_name() + '-content]', function (e) {
+ var $this = S(this);
+ var settings;
+
+ if ($this.data(self.data_attr())) {
+ settings = $this.data(self.data_attr(true) + '-init') || self.settings;
+ } else {
+ var target = S('[' + self.attr_name() + '="' + S(this).attr('id') + '"]'),
+ settings = target.data(self.attr_name(true) + '-init') || self.settings;
+ }
+
+ self.timeout = setTimeout(function () {
+ if ($this.data(self.data_attr())) {
+ if (settings.is_hover) {
+ self.close.call(self, S('#' + $this.data(self.data_attr())));
+ }
+ } else {
+ if (settings.is_hover) {
+ self.close.call(self, $this);
+ }
+ }
+ }.bind(this), settings.hover_timeout);
+ })
+ .on('click.fndtn.dropdown', function (e) {
+ var parent = S(e.target).closest('[' + self.attr_name() + '-content]');
+ var links = parent.find('a');
+
+ if (links.length > 0 && parent.attr('aria-autoclose') !== 'false') {
+ self.close.call(self, S('[' + self.attr_name() + '-content]'));
+ }
+
+ if (e.target !== document && !$.contains(document.documentElement, e.target)) {
+ return;
+ }
+
+ if (S(e.target).closest('[' + self.attr_name() + ']').length > 0) {
+ return;
+ }
+
+ if (!(S(e.target).data('revealId')) &&
+ (parent.length > 0 && (S(e.target).is('[' + self.attr_name() + '-content]') ||
+ $.contains(parent.first()[0], e.target)))) {
+ e.stopPropagation();
+ return;
+ }
+
+ self.close.call(self, S('[' + self.attr_name() + '-content]'));
+ })
+ .on('opened.fndtn.dropdown', '[' + self.attr_name() + '-content]', function () {
+ self.settings.opened.call(this);
+ })
+ .on('closed.fndtn.dropdown', '[' + self.attr_name() + '-content]', function () {
+ self.settings.closed.call(this);
+ });
+
+ S(window)
+ .off('.dropdown')
+ .on('resize.fndtn.dropdown', self.throttle(function () {
+ self.resize.call(self);
+ }, 50));
+
+ this.resize();
+ },
+
+ close : function (dropdown) {
+ var self = this;
+ dropdown.each(function (idx) {
+ var original_target = $('[' + self.attr_name() + '=' + dropdown[idx].id + ']') || $('aria-controls=' + dropdown[idx].id + ']');
+ original_target.attr('aria-expanded', 'false');
+ if (self.S(this).hasClass(self.settings.active_class)) {
+ self.S(this)
+ .css(Foundation.rtl ? 'right' : 'left', '-99999px')
+ .attr('aria-hidden', 'true')
+ .removeClass(self.settings.active_class)
+ .prev('[' + self.attr_name() + ']')
+ .removeClass(self.settings.active_class)
+ .removeData('target');
+
+ self.S(this).trigger('closed.fndtn.dropdown', [dropdown]);
+ }
+ });
+ dropdown.removeClass('f-open-' + this.attr_name(true));
+ },
+
+ closeall : function () {
+ var self = this;
+ $.each(self.S('.f-open-' + this.attr_name(true)), function () {
+ self.close.call(self, self.S(this));
+ });
+ },
+
+ open : function (dropdown, target) {
+ this
+ .css(dropdown
+ .addClass(this.settings.active_class), target);
+ dropdown.prev('[' + this.attr_name() + ']').addClass(this.settings.active_class);
+ dropdown.data('target', target.get(0)).trigger('opened.fndtn.dropdown', [dropdown, target]);
+ dropdown.attr('aria-hidden', 'false');
+ target.attr('aria-expanded', 'true');
+ dropdown.focus();
+ dropdown.addClass('f-open-' + this.attr_name(true));
+ },
+
+ data_attr : function () {
+ if (this.namespace.length > 0) {
+ return this.namespace + '-' + this.name;
+ }
+
+ return this.name;
+ },
+
+ toggle : function (target) {
+ if (target.hasClass(this.settings.disabled_class)) {
+ return;
+ }
+ var dropdown = this.S('#' + target.data(this.data_attr()));
+ if (dropdown.length === 0) {
+ // No dropdown found, not continuing
+ return;
+ }
+
+ this.close.call(this, this.S('[' + this.attr_name() + '-content]').not(dropdown));
+
+ if (dropdown.hasClass(this.settings.active_class)) {
+ this.close.call(this, dropdown);
+ if (dropdown.data('target') !== target.get(0)) {
+ this.open.call(this, dropdown, target);
+ }
+ } else {
+ this.open.call(this, dropdown, target);
+ }
+ },
+
+ resize : function () {
+ var dropdown = this.S('[' + this.attr_name() + '-content].open');
+ var target = $(dropdown.data("target"));
+
+ if (dropdown.length && target.length) {
+ this.css(dropdown, target);
+ }
+ },
+
+ css : function (dropdown, target) {
+ var left_offset = Math.max((target.width() - dropdown.width()) / 2, 8),
+ settings = target.data(this.attr_name(true) + '-init') || this.settings,
+ parentOverflow = dropdown.parent().css('overflow-y') || dropdown.parent().css('overflow');
+
+ this.clear_idx();
+
+
+
+ if (this.small()) {
+ var p = this.dirs.bottom.call(dropdown, target, settings);
+
+ dropdown.attr('style', '').removeClass('drop-left drop-right drop-top').css({
+ position : 'absolute',
+ width : '95%',
+ 'max-width' : 'none',
+ top : p.top
+ });
+
+ dropdown.css(Foundation.rtl ? 'right' : 'left', left_offset);
+ }
+ // detect if dropdown is in an overflow container
+ else if (parentOverflow !== 'visible') {
+ var offset = target[0].offsetTop + target[0].offsetHeight;
+
+ dropdown.attr('style', '').css({
+ position : 'absolute',
+ top : offset
+ });
+
+ dropdown.css(Foundation.rtl ? 'right' : 'left', left_offset);
+ }
+ else {
+
+ this.style(dropdown, target, settings);
+ }
+
+ return dropdown;
+ },
+
+ style : function (dropdown, target, settings) {
+ var css = $.extend({position : 'absolute'},
+ this.dirs[settings.align].call(dropdown, target, settings));
+
+ dropdown.attr('style', '').css(css);
+ },
+
+ // return CSS property object
+ // `this` is the dropdown
+ dirs : {
+ // Calculate target offset
+ _base : function (t, s) {
+ var o_p = this.offsetParent(),
+ o = o_p.offset(),
+ p = t.offset();
+
+ p.top -= o.top;
+ p.left -= o.left;
+
+ //set some flags on the p object to pass along
+ p.missRight = false;
+ p.missTop = false;
+ p.missLeft = false;
+ p.leftRightFlag = false;
+
+ //lets see if the panel will be off the screen
+ //get the actual width of the page and store it
+ var actualBodyWidth;
+ var windowWidth = window.innerWidth;
+
+ if (document.getElementsByClassName('row')[0]) {
+ actualBodyWidth = document.getElementsByClassName('row')[0].clientWidth;
+ } else {
+ actualBodyWidth = windowWidth;
+ }
+
+ var actualMarginWidth = (windowWidth - actualBodyWidth) / 2;
+ var actualBoundary = actualBodyWidth;
+
+ if (!this.hasClass('mega') && !s.ignore_repositioning) {
+ var outerWidth = this.outerWidth();
+ var o_left = t.offset().left;
+
+ //miss top
+ if (t.offset().top <= this.outerHeight()) {
+ p.missTop = true;
+ actualBoundary = windowWidth - actualMarginWidth;
+ p.leftRightFlag = true;
+ }
+
+ //miss right
+ if (o_left + outerWidth > o_left + actualMarginWidth && o_left - actualMarginWidth > outerWidth) {
+ p.missRight = true;
+ p.missLeft = false;
+ }
+
+ //miss left
+ if (o_left - outerWidth <= 0) {
+ p.missLeft = true;
+ p.missRight = false;
+ }
+ }
+
+ return p;
+ },
+
+ top : function (t, s) {
+ var self = Foundation.libs.dropdown,
+ p = self.dirs._base.call(this, t, s);
+
+ this.addClass('drop-top');
+
+ if (p.missTop == true) {
+ p.top = p.top + t.outerHeight() + this.outerHeight();
+ this.removeClass('drop-top');
+ }
+
+ if (p.missRight == true) {
+ p.left = p.left - this.outerWidth() + t.outerWidth();
+ }
+
+ if (t.outerWidth() < this.outerWidth() || self.small() || this.hasClass(s.mega_menu)) {
+ self.adjust_pip(this, t, s, p);
+ }
+
+ if (Foundation.rtl) {
+ return {left : p.left - this.outerWidth() + t.outerWidth(),
+ top : p.top - this.outerHeight()};
+ }
+
+ return {left : p.left, top : p.top - this.outerHeight()};
+ },
+
+ bottom : function (t, s) {
+ var self = Foundation.libs.dropdown,
+ p = self.dirs._base.call(this, t, s);
+
+ if (p.missRight == true) {
+ p.left = p.left - this.outerWidth() + t.outerWidth();
+ }
+
+ if (t.outerWidth() < this.outerWidth() || self.small() || this.hasClass(s.mega_menu)) {
+ self.adjust_pip(this, t, s, p);
+ }
+
+ if (self.rtl) {
+ return {left : p.left - this.outerWidth() + t.outerWidth(), top : p.top + t.outerHeight()};
+ }
+
+ return {left : p.left, top : p.top + t.outerHeight()};
+ },
+
+ left : function (t, s) {
+ var p = Foundation.libs.dropdown.dirs._base.call(this, t, s);
+
+ this.addClass('drop-left');
+
+ if (p.missLeft == true) {
+ p.left = p.left + this.outerWidth();
+ p.top = p.top + t.outerHeight();
+ this.removeClass('drop-left');
+ }
+
+ return {left : p.left - this.outerWidth(), top : p.top};
+ },
+
+ right : function (t, s) {
+ var p = Foundation.libs.dropdown.dirs._base.call(this, t, s);
+
+ this.addClass('drop-right');
+
+ if (p.missRight == true) {
+ p.left = p.left - this.outerWidth();
+ p.top = p.top + t.outerHeight();
+ this.removeClass('drop-right');
+ } else {
+ p.triggeredRight = true;
+ }
+
+ var self = Foundation.libs.dropdown;
+
+ if (t.outerWidth() < this.outerWidth() || self.small() || this.hasClass(s.mega_menu)) {
+ self.adjust_pip(this, t, s, p);
+ }
+
+ return {left : p.left + t.outerWidth(), top : p.top};
+ }
+ },
+
+ // Insert rule to style psuedo elements
+ adjust_pip : function (dropdown, target, settings, position) {
+ var sheet = Foundation.stylesheet,
+ pip_offset_base = 8;
+
+ if (dropdown.hasClass(settings.mega_class)) {
+ pip_offset_base = position.left + (target.outerWidth() / 2) - 8;
+ } else if (this.small()) {
+ pip_offset_base += position.left - 8;
+ }
+
+ this.rule_idx = sheet.cssRules.length;
+
+ //default
+ var sel_before = '.f-dropdown.open:before',
+ sel_after = '.f-dropdown.open:after',
+ css_before = 'left: ' + pip_offset_base + 'px;',
+ css_after = 'left: ' + (pip_offset_base - 1) + 'px;';
+
+ if (position.missRight == true) {
+ pip_offset_base = dropdown.outerWidth() - 23;
+ sel_before = '.f-dropdown.open:before',
+ sel_after = '.f-dropdown.open:after',
+ css_before = 'left: ' + pip_offset_base + 'px;',
+ css_after = 'left: ' + (pip_offset_base - 1) + 'px;';
+ }
+
+ //just a case where right is fired, but its not missing right
+ if (position.triggeredRight == true) {
+ sel_before = '.f-dropdown.open:before',
+ sel_after = '.f-dropdown.open:after',
+ css_before = 'left:-12px;',
+ css_after = 'left:-14px;';
+ }
+
+ if (sheet.insertRule) {
+ sheet.insertRule([sel_before, '{', css_before, '}'].join(' '), this.rule_idx);
+ sheet.insertRule([sel_after, '{', css_after, '}'].join(' '), this.rule_idx + 1);
+ } else {
+ sheet.addRule(sel_before, css_before, this.rule_idx);
+ sheet.addRule(sel_after, css_after, this.rule_idx + 1);
+ }
+ },
+
+ // Remove old dropdown rule index
+ clear_idx : function () {
+ var sheet = Foundation.stylesheet;
+
+ if (typeof this.rule_idx !== 'undefined') {
+ sheet.deleteRule(this.rule_idx);
+ sheet.deleteRule(this.rule_idx);
+ delete this.rule_idx;
+ }
+ },
+
+ small : function () {
+ return matchMedia(Foundation.media_queries.small).matches &&
+ !matchMedia(Foundation.media_queries.medium).matches;
+ },
+
+ off : function () {
+ this.S(this.scope).off('.fndtn.dropdown');
+ this.S('html, body').off('.fndtn.dropdown');
+ this.S(window).off('.fndtn.dropdown');
+ this.S('[data-dropdown-content]').off('.fndtn.dropdown');
+ },
+
+ reflow : function () {}
+ };
+}(jQuery, window, window.document));
+
+;(function ($, window, document, undefined) {
+ 'use strict';
+
+ Foundation.libs.equalizer = {
+ name : 'equalizer',
+
+ version : '5.5.3',
+
+ settings : {
+ use_tallest : true,
+ before_height_change : $.noop,
+ after_height_change : $.noop,
+ equalize_on_stack : false,
+ act_on_hidden_el: false
+ },
+
+ init : function (scope, method, options) {
+ Foundation.inherit(this, 'image_loaded');
+ this.bindings(method, options);
+ this.reflow();
+ },
+
+ events : function () {
+ this.S(window).off('.equalizer').on('resize.fndtn.equalizer', function (e) {
+ this.reflow();
+ }.bind(this));
+ },
+
+ equalize : function (equalizer) {
+ var isStacked = false,
+ group = equalizer.data('equalizer'),
+ settings = equalizer.data(this.attr_name(true)+'-init') || this.settings,
+ vals,
+ firstTopOffset;
+
+ if (settings.act_on_hidden_el) {
+ vals = group ? equalizer.find('['+this.attr_name()+'-watch="'+group+'"]') : equalizer.find('['+this.attr_name()+'-watch]');
+ }
+ else {
+ vals = group ? equalizer.find('['+this.attr_name()+'-watch="'+group+'"]:visible') : equalizer.find('['+this.attr_name()+'-watch]:visible');
+ }
+
+ if (vals.length === 0) {
+ return;
+ }
+
+ settings.before_height_change();
+ equalizer.trigger('before-height-change.fndth.equalizer');
+ vals.height('inherit');
+
+ if (settings.equalize_on_stack === false) {
+ firstTopOffset = vals.first().offset().top;
+ vals.each(function () {
+ if ($(this).offset().top !== firstTopOffset) {
+ isStacked = true;
+ return false;
+ }
+ });
+ if (isStacked) {
+ return;
+ }
+ }
+
+ var heights = vals.map(function () { return $(this).outerHeight(false) }).get();
+
+ if (settings.use_tallest) {
+ var max = Math.max.apply(null, heights);
+ vals.css('height', max);
+ } else {
+ var min = Math.min.apply(null, heights);
+ vals.css('height', min);
+ }
+
+ settings.after_height_change();
+ equalizer.trigger('after-height-change.fndtn.equalizer');
+ },
+
+ reflow : function () {
+ var self = this;
+
+ this.S('[' + this.attr_name() + ']', this.scope).each(function () {
+ var $eq_target = $(this),
+ media_query = $eq_target.data('equalizer-mq'),
+ ignore_media_query = true;
+
+ if (media_query) {
+ media_query = 'is_' + media_query.replace(/-/g, '_');
+ if (Foundation.utils.hasOwnProperty(media_query)) {
+ ignore_media_query = false;
+ }
+ }
+
+ self.image_loaded(self.S('img', this), function () {
+ if (ignore_media_query || Foundation.utils[media_query]()) {
+ self.equalize($eq_target)
+ } else {
+ var vals = $eq_target.find('[' + self.attr_name() + '-watch]:visible');
+ vals.css('height', 'auto');
+ }
+ });
+ });
+ }
+ };
+})(jQuery, window, window.document);
+
+;(function ($, window, document, undefined) {
+ 'use strict';
+
+ Foundation.libs.interchange = {
+ name : 'interchange',
+
+ version : '5.5.3',
+
+ cache : {},
+
+ images_loaded : false,
+ nodes_loaded : false,
+
+ settings : {
+ load_attr : 'interchange',
+
+ named_queries : {
+ 'default' : 'only screen',
+ 'small' : Foundation.media_queries['small'],
+ 'small-only' : Foundation.media_queries['small-only'],
+ 'medium' : Foundation.media_queries['medium'],
+ 'medium-only' : Foundation.media_queries['medium-only'],
+ 'large' : Foundation.media_queries['large'],
+ 'large-only' : Foundation.media_queries['large-only'],
+ 'xlarge' : Foundation.media_queries['xlarge'],
+ 'xlarge-only' : Foundation.media_queries['xlarge-only'],
+ 'xxlarge' : Foundation.media_queries['xxlarge'],
+ 'landscape' : 'only screen and (orientation: landscape)',
+ 'portrait' : 'only screen and (orientation: portrait)',
+ 'retina' : 'only screen and (-webkit-min-device-pixel-ratio: 2),' +
+ 'only screen and (min--moz-device-pixel-ratio: 2),' +
+ 'only screen and (-o-min-device-pixel-ratio: 2/1),' +
+ 'only screen and (min-device-pixel-ratio: 2),' +
+ 'only screen and (min-resolution: 192dpi),' +
+ 'only screen and (min-resolution: 2dppx)'
+ },
+
+ directives : {
+ replace : function (el, path, trigger) {
+ // The trigger argument, if called within the directive, fires
+ // an event named after the directive on the element, passing
+ // any parameters along to the event that you pass to trigger.
+ //
+ // ex. trigger(), trigger([a, b, c]), or trigger(a, b, c)
+ //
+ // This allows you to bind a callback like so:
+ // $('#interchangeContainer').on('replace', function (e, a, b, c) {
+ // console.log($(this).html(), a, b, c);
+ // });
+
+ if (el !== null && /IMG/.test(el[0].nodeName)) {
+ var orig_path = $.each(el, function(){this.src = path;});
+ // var orig_path = el[0].src;
+
+ if (new RegExp(path, 'i').test(orig_path)) {
+ return;
+ }
+
+ el.attr("src", path);
+
+ return trigger(el[0].src);
+ }
+ var last_path = el.data(this.data_attr + '-last-path'),
+ self = this;
+
+ if (last_path == path) {
+ return;
+ }
+
+ if (/\.(gif|jpg|jpeg|tiff|png)([?#].*)?/i.test(path)) {
+ $(el).css('background-image', 'url(' + path + ')');
+ el.data('interchange-last-path', path);
+ return trigger(path);
+ }
+
+ return $.get(path, function (response) {
+ el.html(response);
+ el.data(self.data_attr + '-last-path', path);
+ trigger();
+ });
+
+ }
+ }
+ },
+
+ init : function (scope, method, options) {
+ Foundation.inherit(this, 'throttle random_str');
+
+ this.data_attr = this.set_data_attr();
+ $.extend(true, this.settings, method, options);
+ this.bindings(method, options);
+ this.reflow();
+ },
+
+ get_media_hash : function () {
+ var mediaHash = '';
+ for (var queryName in this.settings.named_queries ) {
+ mediaHash += matchMedia(this.settings.named_queries[queryName]).matches.toString();
+ }
+ return mediaHash;
+ },
+
+ events : function () {
+ var self = this, prevMediaHash;
+
+ $(window)
+ .off('.interchange')
+ .on('resize.fndtn.interchange', self.throttle(function () {
+ var currMediaHash = self.get_media_hash();
+ if (currMediaHash !== prevMediaHash) {
+ self.resize();
+ }
+ prevMediaHash = currMediaHash;
+ }, 50));
+
+ return this;
+ },
+
+ resize : function () {
+ var cache = this.cache;
+
+ if (!this.images_loaded || !this.nodes_loaded) {
+ setTimeout($.proxy(this.resize, this), 50);
+ return;
+ }
+
+ for (var uuid in cache) {
+ if (cache.hasOwnProperty(uuid)) {
+ var passed = this.results(uuid, cache[uuid]);
+ if (passed) {
+ this.settings.directives[passed
+ .scenario[1]].call(this, passed.el, passed.scenario[0], (function (passed) {
+ if (arguments[0] instanceof Array) {
+ var args = arguments[0];
+ } else {
+ var args = Array.prototype.slice.call(arguments, 0);
+ }
+
+ return function() {
+ passed.el.trigger(passed.scenario[1], args);
+ }
+ }(passed)));
+ }
+ }
+ }
+
+ },
+
+ results : function (uuid, scenarios) {
+ var count = scenarios.length;
+
+ if (count > 0) {
+ var el = this.S('[' + this.add_namespace('data-uuid') + '="' + uuid + '"]');
+
+ while (count--) {
+ var mq, rule = scenarios[count][2];
+ if (this.settings.named_queries.hasOwnProperty(rule)) {
+ mq = matchMedia(this.settings.named_queries[rule]);
+ } else {
+ mq = matchMedia(rule);
+ }
+ if (mq.matches) {
+ return {el : el, scenario : scenarios[count]};
+ }
+ }
+ }
+
+ return false;
+ },
+
+ load : function (type, force_update) {
+ if (typeof this['cached_' + type] === 'undefined' || force_update) {
+ this['update_' + type]();
+ }
+
+ return this['cached_' + type];
+ },
+
+ update_images : function () {
+ var images = this.S('img[' + this.data_attr + ']'),
+ count = images.length,
+ i = count,
+ loaded_count = 0,
+ data_attr = this.data_attr;
+
+ this.cache = {};
+ this.cached_images = [];
+ this.images_loaded = (count === 0);
+
+ while (i--) {
+ loaded_count++;
+ if (images[i]) {
+ var str = images[i].getAttribute(data_attr) || '';
+
+ if (str.length > 0) {
+ this.cached_images.push(images[i]);
+ }
+ }
+
+ if (loaded_count === count) {
+ this.images_loaded = true;
+ this.enhance('images');
+ }
+ }
+
+ return this;
+ },
+
+ update_nodes : function () {
+ var nodes = this.S('[' + this.data_attr + ']').not('img'),
+ count = nodes.length,
+ i = count,
+ loaded_count = 0,
+ data_attr = this.data_attr;
+
+ this.cached_nodes = [];
+ this.nodes_loaded = (count === 0);
+
+ while (i--) {
+ loaded_count++;
+ var str = nodes[i].getAttribute(data_attr) || '';
+
+ if (str.length > 0) {
+ this.cached_nodes.push(nodes[i]);
+ }
+
+ if (loaded_count === count) {
+ this.nodes_loaded = true;
+ this.enhance('nodes');
+ }
+ }
+
+ return this;
+ },
+
+ enhance : function (type) {
+ var i = this['cached_' + type].length;
+
+ while (i--) {
+ this.object($(this['cached_' + type][i]));
+ }
+
+ return $(window).trigger('resize.fndtn.interchange');
+ },
+
+ convert_directive : function (directive) {
+
+ var trimmed = this.trim(directive);
+
+ if (trimmed.length > 0) {
+ return trimmed;
+ }
+
+ return 'replace';
+ },
+
+ parse_scenario : function (scenario) {
+ // This logic had to be made more complex since some users were using commas in the url path
+ // So we cannot simply just split on a comma
+
+ var directive_match = scenario[0].match(/(.+),\s*(\w+)\s*$/),
+ // getting the mq has gotten a bit complicated since we started accounting for several use cases
+ // of URLs. For now we'll continue to match these scenarios, but we may consider having these scenarios
+ // as nested objects or arrays in F6.
+ // regex: match everything before close parenthesis for mq
+ media_query = scenario[1].match(/(.*)\)/);
+
+ if (directive_match) {
+ var path = directive_match[1],
+ directive = directive_match[2];
+
+ } else {
+ var cached_split = scenario[0].split(/,\s*$/),
+ path = cached_split[0],
+ directive = '';
+ }
+
+ return [this.trim(path), this.convert_directive(directive), this.trim(media_query[1])];
+ },
+
+ object : function (el) {
+ var raw_arr = this.parse_data_attr(el),
+ scenarios = [],
+ i = raw_arr.length;
+
+ if (i > 0) {
+ while (i--) {
+ // split array between comma delimited content and mq
+ // regex: comma, optional space, open parenthesis
+ var scenario = raw_arr[i].split(/,\s?\(/);
+
+ if (scenario.length > 1) {
+ var params = this.parse_scenario(scenario);
+ scenarios.push(params);
+ }
+ }
+ }
+
+ return this.store(el, scenarios);
+ },
+
+ store : function (el, scenarios) {
+ var uuid = this.random_str(),
+ current_uuid = el.data(this.add_namespace('uuid', true));
+
+ if (this.cache[current_uuid]) {
+ return this.cache[current_uuid];
+ }
+
+ el.attr(this.add_namespace('data-uuid'), uuid);
+ return this.cache[uuid] = scenarios;
+ },
+
+ trim : function (str) {
+
+ if (typeof str === 'string') {
+ return $.trim(str);
+ }
+
+ return str;
+ },
+
+ set_data_attr : function (init) {
+ if (init) {
+ if (this.namespace.length > 0) {
+ return this.namespace + '-' + this.settings.load_attr;
+ }
+
+ return this.settings.load_attr;
+ }
+
+ if (this.namespace.length > 0) {
+ return 'data-' + this.namespace + '-' + this.settings.load_attr;
+ }
+
+ return 'data-' + this.settings.load_attr;
+ },
+
+ parse_data_attr : function (el) {
+ var raw = el.attr(this.attr_name()).split(/\[(.*?)\]/),
+ i = raw.length,
+ output = [];
+
+ while (i--) {
+ if (raw[i].replace(/[\W\d]+/, '').length > 4) {
+ output.push(raw[i]);
+ }
+ }
+
+ return output;
+ },
+
+ reflow : function () {
+ this.load('images', true);
+ this.load('nodes', true);
+ }
+
+ };
+
+}(jQuery, window, window.document));
+
+;(function ($, window, document, undefined) {
+ 'use strict';
+
+ var Modernizr = Modernizr || false;
+
+ Foundation.libs.joyride = {
+ name : 'joyride',
+
+ version : '5.5.3',
+
+ defaults : {
+ expose : false, // turn on or off the expose feature
+ modal : true, // Whether to cover page with modal during the tour
+ keyboard : true, // enable left, right and esc keystrokes
+ tip_location : 'bottom', // 'top', 'bottom', 'left' or 'right' in relation to parent
+ nub_position : 'auto', // override on a per tooltip bases
+ scroll_speed : 1500, // Page scrolling speed in milliseconds, 0 = no scroll animation
+ scroll_animation : 'linear', // supports 'swing' and 'linear', extend with jQuery UI.
+ timer : 0, // 0 = no timer , all other numbers = timer in milliseconds
+ start_timer_on_click : true, // true or false - true requires clicking the first button start the timer
+ start_offset : 0, // the index of the tooltip you want to start on (index of the li)
+ next_button : true, // true or false to control whether a next button is used
+ prev_button : true, // true or false to control whether a prev button is used
+ tip_animation : 'fade', // 'pop' or 'fade' in each tip
+ pause_after : [], // array of indexes where to pause the tour after
+ exposed : [], // array of expose elements
+ tip_animation_fade_speed : 300, // when tipAnimation = 'fade' this is speed in milliseconds for the transition
+ cookie_monster : false, // true or false to control whether cookies are used
+ cookie_name : 'joyride', // Name the cookie you'll use
+ cookie_domain : false, // Will this cookie be attached to a domain, ie. '.notableapp.com'
+ cookie_expires : 365, // set when you would like the cookie to expire.
+ tip_container : 'body', // Where will the tip be attached
+ abort_on_close : true, // When true, the close event will not fire any callback
+ tip_location_patterns : {
+ top : ['bottom'],
+ bottom : [], // bottom should not need to be repositioned
+ left : ['right', 'top', 'bottom'],
+ right : ['left', 'top', 'bottom']
+ },
+ post_ride_callback : function () {}, // A method to call once the tour closes (canceled or complete)
+ post_step_callback : function () {}, // A method to call after each step
+ pre_step_callback : function () {}, // A method to call before each step
+ pre_ride_callback : function () {}, // A method to call before the tour starts (passed index, tip, and cloned exposed element)
+ post_expose_callback : function () {}, // A method to call after an element has been exposed
+ template : { // HTML segments for tip layout
+ link : '<a href="#close" class="joyride-close-tip">×</a>',
+ timer : '<div class="joyride-timer-indicator-wrap"><span class="joyride-timer-indicator"></span></div>',
+ tip : '<div class="joyride-tip-guide"><span class="joyride-nub"></span></div>',
+ wrapper : '<div class="joyride-content-wrapper"></div>',
+ button : '<a href="#" class="small button joyride-next-tip"></a>',
+ prev_button : '<a href="#" class="small button joyride-prev-tip"></a>',
+ modal : '<div class="joyride-modal-bg"></div>',
+ expose : '<div class="joyride-expose-wrapper"></div>',
+ expose_cover : '<div class="joyride-expose-cover"></div>'
+ },
+ expose_add_class : '' // One or more space-separated class names to be added to exposed element
+ },
+
+ init : function (scope, method, options) {
+ Foundation.inherit(this, 'throttle random_str');
+
+ this.settings = this.settings || $.extend({}, this.defaults, (options || method));
+
+ this.bindings(method, options)
+ },
+
+ go_next : function () {
+ if (this.settings.$li.next().length < 1) {
+ this.end();
+ } else if (this.settings.timer > 0) {
+ clearTimeout(this.settings.automate);
+ this.hide();
+ this.show();
+ this.startTimer();
+ } else {
+ this.hide();
+ this.show();
+ }
+ },
+
+ go_prev : function () {
+ if (this.settings.$li.prev().length < 1) {
+ // Do nothing if there are no prev element
+ } else if (this.settings.timer > 0) {
+ clearTimeout(this.settings.automate);
+ this.hide();
+ this.show(null, true);
+ this.startTimer();
+ } else {
+ this.hide();
+ this.show(null, true);
+ }
+ },
+
+ events : function () {
+ var self = this;
+
+ $(this.scope)
+ .off('.joyride')
+ .on('click.fndtn.joyride', '.joyride-next-tip, .joyride-modal-bg', function (e) {
+ e.preventDefault();
+ this.go_next()
+ }.bind(this))
+ .on('click.fndtn.joyride', '.joyride-prev-tip', function (e) {
+ e.preventDefault();
+ this.go_prev();
+ }.bind(this))
+
+ .on('click.fndtn.joyride', '.joyride-close-tip', function (e) {
+ e.preventDefault();
+ this.end(this.settings.abort_on_close);
+ }.bind(this))
+
+ .on('keyup.fndtn.joyride', function (e) {
+ // Don't do anything if keystrokes are disabled
+ // or if the joyride is not being shown
+ if (!this.settings.keyboard || !this.settings.riding) {
+ return;
+ }
+
+ switch (e.which) {
+ case 39: // right arrow
+ e.preventDefault();
+ this.go_next();
+ break;
+ case 37: // left arrow
+ e.preventDefault();
+ this.go_prev();
+ break;
+ case 27: // escape
+ e.preventDefault();
+ this.end(this.settings.abort_on_close);
+ }
+ }.bind(this));
+
+ $(window)
+ .off('.joyride')
+ .on('resize.fndtn.joyride', self.throttle(function () {
+ if ($('[' + self.attr_name() + ']').length > 0 && self.settings.$next_tip && self.settings.riding) {
+ if (self.settings.exposed.length > 0) {
+ var $els = $(self.settings.exposed);
+
+ $els.each(function () {
+ var $this = $(this);
+ self.un_expose($this);
+ self.expose($this);
+ });
+ }
+
+ if (self.is_phone()) {
+ self.pos_phone();
+ } else {
+ self.pos_default(false);
+ }
+ }
+ }, 100));
+ },
+
+ start : function () {
+ var self = this,
+ $this = $('[' + this.attr_name() + ']', this.scope),
+ integer_settings = ['timer', 'scrollSpeed', 'startOffset', 'tipAnimationFadeSpeed', 'cookieExpires'],
+ int_settings_count = integer_settings.length;
+
+ if (!$this.length > 0) {
+ return;
+ }
+
+ if (!this.settings.init) {
+ this.events();
+ }
+
+ this.settings = $this.data(this.attr_name(true) + '-init');
+
+ // non configureable settings
+ this.settings.$content_el = $this;
+ this.settings.$body = $(this.settings.tip_container);
+ this.settings.body_offset = $(this.settings.tip_container).position();
+ this.settings.$tip_content = this.settings.$content_el.find('> li');
+ this.settings.paused = false;
+ this.settings.attempts = 0;
+ this.settings.riding = true;
+
+ // can we create cookies?
+ if (typeof $.cookie !== 'function') {
+ this.settings.cookie_monster = false;
+ }
+
+ // generate the tips and insert into dom.
+ if (!this.settings.cookie_monster || this.settings.cookie_monster && !$.cookie(this.settings.cookie_name)) {
+ this.settings.$tip_content.each(function (index) {
+ var $this = $(this);
+ this.settings = $.extend({}, self.defaults, self.data_options($this));
+
+ // Make sure that settings parsed from data_options are integers where necessary
+ var i = int_settings_count;
+ while (i--) {
+ self.settings[integer_settings[i]] = parseInt(self.settings[integer_settings[i]], 10);
+ }
+ self.create({$li : $this, index : index});
+ });
+
+ // show first tip
+ if (!this.settings.start_timer_on_click && this.settings.timer > 0) {
+ this.show('init');
+ this.startTimer();
+ } else {
+ this.show('init');
+ }
+
+ }
+ },
+
+ resume : function () {
+ this.set_li();
+ this.show();
+ },
+
+ tip_template : function (opts) {
+ var $blank, content;
+
+ opts.tip_class = opts.tip_class || '';
+
+ $blank = $(this.settings.template.tip).addClass(opts.tip_class);
+ content = $.trim($(opts.li).html()) +
+ this.prev_button_text(opts.prev_button_text, opts.index) +
+ this.button_text(opts.button_text) +
+ this.settings.template.link +
+ this.timer_instance(opts.index);
+
+ $blank.append($(this.settings.template.wrapper));
+ $blank.first().attr(this.add_namespace('data-index'), opts.index);
+ $('.joyride-content-wrapper', $blank).append(content);
+
+ return $blank[0];
+ },
+
+ timer_instance : function (index) {
+ var txt;
+
+ if ((index === 0 && this.settings.start_timer_on_click && this.settings.timer > 0) || this.settings.timer === 0) {
+ txt = '';
+ } else {
+ txt = $(this.settings.template.timer)[0].outerHTML;
+ }
+ return txt;
+ },
+
+ button_text : function (txt) {
+ if (this.settings.tip_settings.next_button) {
+ txt = $.trim(txt) || 'Next';
+ txt = $(this.settings.template.button).append(txt)[0].outerHTML;
+ } else {
+ txt = '';
+ }
+ return txt;
+ },
+
+ prev_button_text : function (txt, idx) {
+ if (this.settings.tip_settings.prev_button) {
+ txt = $.trim(txt) || 'Previous';
+
+ // Add the disabled class to the button if it's the first element
+ if (idx == 0) {
+ txt = $(this.settings.template.prev_button).append(txt).addClass('disabled')[0].outerHTML;
+ } else {
+ txt = $(this.settings.template.prev_button).append(txt)[0].outerHTML;
+ }
+ } else {
+ txt = '';
+ }
+ return txt;
+ },
+
+ create : function (opts) {
+ this.settings.tip_settings = $.extend({}, this.settings, this.data_options(opts.$li));
+ var buttonText = opts.$li.attr(this.add_namespace('data-button')) || opts.$li.attr(this.add_namespace('data-text')),
+ prevButtonText = opts.$li.attr(this.add_namespace('data-button-prev')) || opts.$li.attr(this.add_namespace('data-prev-text')),
+ tipClass = opts.$li.attr('class'),
+ $tip_content = $(this.tip_template({
+ tip_class : tipClass,
+ index : opts.index,
+ button_text : buttonText,
+ prev_button_text : prevButtonText,
+ li : opts.$li
+ }));
+
+ $(this.settings.tip_container).append($tip_content);
+ },
+
+ show : function (init, is_prev) {
+ var $timer = null;
+
+ // are we paused?
+ if (this.settings.$li === undefined || ($.inArray(this.settings.$li.index(), this.settings.pause_after) === -1)) {
+
+ // don't go to the next li if the tour was paused
+ if (this.settings.paused) {
+ this.settings.paused = false;
+ } else {
+ this.set_li(init, is_prev);
+ }
+
+ this.settings.attempts = 0;
+
+ if (this.settings.$li.length && this.settings.$target.length > 0) {
+ if (init) { //run when we first start
+ this.settings.pre_ride_callback(this.settings.$li.index(), this.settings.$next_tip);
+ if (this.settings.modal) {
+ this.show_modal();
+ }
+ }
+
+ this.settings.pre_step_callback(this.settings.$li.index(), this.settings.$next_tip);
+
+ if (this.settings.modal && this.settings.expose) {
+ this.expose();
+ }
+
+ this.settings.tip_settings = $.extend({}, this.settings, this.data_options(this.settings.$li));
+
+ this.settings.timer = parseInt(this.settings.timer, 10);
+
+ this.settings.tip_settings.tip_location_pattern = this.settings.tip_location_patterns[this.settings.tip_settings.tip_location];
+
+ // scroll and hide bg if not modal and not expose
+ if (!/body/i.test(this.settings.$target.selector) && !this.settings.expose) {
+ var joyridemodalbg = $('.joyride-modal-bg');
+ if (/pop/i.test(this.settings.tipAnimation)) {
+ joyridemodalbg.hide();
+ } else {
+ joyridemodalbg.fadeOut(this.settings.tipAnimationFadeSpeed);
+ }
+ this.scroll_to();
+ }
+
+ if (this.is_phone()) {
+ this.pos_phone(true);
+ } else {
+ this.pos_default(true);
+ }
+
+ $timer = this.settings.$next_tip.find('.joyride-timer-indicator');
+
+ if (/pop/i.test(this.settings.tip_animation)) {
+
+ $timer.width(0);
+
+ if (this.settings.timer > 0) {
+
+ this.settings.$next_tip.show();
+
+ setTimeout(function () {
+ $timer.animate({
+ width : $timer.parent().width()
+ }, this.settings.timer, 'linear');
+ }.bind(this), this.settings.tip_animation_fade_speed);
+
+ } else {
+ this.settings.$next_tip.show();
+
+ }
+
+ } else if (/fade/i.test(this.settings.tip_animation)) {
+
+ $timer.width(0);
+
+ if (this.settings.timer > 0) {
+
+ this.settings.$next_tip
+ .fadeIn(this.settings.tip_animation_fade_speed)
+ .show();
+
+ setTimeout(function () {
+ $timer.animate({
+ width : $timer.parent().width()
+ }, this.settings.timer, 'linear');
+ }.bind(this), this.settings.tip_animation_fade_speed);
+
+ } else {
+ this.settings.$next_tip.fadeIn(this.settings.tip_animation_fade_speed);
+ }
+ }
+
+ this.settings.$current_tip = this.settings.$next_tip;
+
+ // skip non-existant targets
+ } else if (this.settings.$li && this.settings.$target.length < 1) {
+
+ this.show(init, is_prev);
+
+ } else {
+
+ this.end();
+
+ }
+ } else {
+
+ this.settings.paused = true;
+
+ }
+
+ },
+
+ is_phone : function () {
+ return matchMedia(Foundation.media_queries.small).matches &&
+ !matchMedia(Foundation.media_queries.medium).matches;
+ },
+
+ hide : function () {
+ if (this.settings.modal && this.settings.expose) {
+ this.un_expose();
+ }
+
+ if (!this.settings.modal) {
+ $('.joyride-modal-bg').hide();
+ }
+
+ // Prevent scroll bouncing...wait to remove from layout
+ this.settings.$current_tip.css('visibility', 'hidden');
+ setTimeout($.proxy(function () {
+ this.hide();
+ this.css('visibility', 'visible');
+ }, this.settings.$current_tip), 0);
+ this.settings.post_step_callback(this.settings.$li.index(),
+ this.settings.$current_tip);
+ },
+
+ set_li : function (init, is_prev) {
+ if (init) {
+ this.settings.$li = this.settings.$tip_content.eq(this.settings.start_offset);
+ this.set_next_tip();
+ this.settings.$current_tip = this.settings.$next_tip;
+ } else {
+ if (is_prev) {
+ this.settings.$li = this.settings.$li.prev();
+ } else {
+ this.settings.$li = this.settings.$li.next();
+ }
+ this.set_next_tip();
+ }
+
+ this.set_target();
+ },
+
+ set_next_tip : function () {
+ this.settings.$next_tip = $('.joyride-tip-guide').eq(this.settings.$li.index());
+ this.settings.$next_tip.data('closed', '');
+ },
+
+ set_target : function () {
+ var cl = this.settings.$li.attr(this.add_namespace('data-class')),
+ id = this.settings.$li.attr(this.add_namespace('data-id')),
+ $sel = function () {
+ if (id) {
+ return $(document.getElementById(id));
+ } else if (cl) {
+ return $('.' + cl).first();
+ } else {
+ return $('body');
+ }
+ };
+
+ this.settings.$target = $sel();
+ },
+
+ scroll_to : function () {
+ var window_half, tipOffset;
+
+ window_half = $(window).height() / 2;
+ tipOffset = Math.ceil(this.settings.$target.offset().top - window_half + this.settings.$next_tip.outerHeight());
+
+ if (tipOffset != 0) {
+ $('html, body').stop().animate({
+ scrollTop : tipOffset
+ }, this.settings.scroll_speed, 'swing');
+ }
+ },
+
+ paused : function () {
+ return ($.inArray((this.settings.$li.index() + 1), this.settings.pause_after) === -1);
+ },
+
+ restart : function () {
+ this.hide();
+ this.settings.$li = undefined;
+ this.show('init');
+ },
+
+ pos_default : function (init) {
+ var $nub = this.settings.$next_tip.find('.joyride-nub'),
+ nub_width = Math.ceil($nub.outerWidth() / 2),
+ nub_height = Math.ceil($nub.outerHeight() / 2),
+ toggle = init || false;
+
+ // tip must not be "display: none" to calculate position
+ if (toggle) {
+ this.settings.$next_tip.css('visibility', 'hidden');
+ this.settings.$next_tip.show();
+ }
+
+ if (!/body/i.test(this.settings.$target.selector)) {
+ var topAdjustment = this.settings.tip_settings.tipAdjustmentY ? parseInt(this.settings.tip_settings.tipAdjustmentY) : 0,
+ leftAdjustment = this.settings.tip_settings.tipAdjustmentX ? parseInt(this.settings.tip_settings.tipAdjustmentX) : 0;
+
+ if (this.bottom()) {
+ if (this.rtl) {
+ this.settings.$next_tip.css({
+ top : (this.settings.$target.offset().top + nub_height + this.settings.$target.outerHeight() + topAdjustment),
+ left : this.settings.$target.offset().left + this.settings.$target.outerWidth() - this.settings.$next_tip.outerWidth() + leftAdjustment});
+ } else {
+ this.settings.$next_tip.css({
+ top : (this.settings.$target.offset().top + nub_height + this.settings.$target.outerHeight() + topAdjustment),
+ left : this.settings.$target.offset().left + leftAdjustment});
+ }
+
+ this.nub_position($nub, this.settings.tip_settings.nub_position, 'top');
+
+ } else if (this.top()) {
+ if (this.rtl) {
+ this.settings.$next_tip.css({
+ top : (this.settings.$target.offset().top - this.settings.$next_tip.outerHeight() - nub_height + topAdjustment),
+ left : this.settings.$target.offset().left + this.settings.$target.outerWidth() - this.settings.$next_tip.outerWidth()});
+ } else {
+ this.settings.$next_tip.css({
+ top : (this.settings.$target.offset().top - this.settings.$next_tip.outerHeight() - nub_height + topAdjustment),
+ left : this.settings.$target.offset().left + leftAdjustment});
+ }
+
+ this.nub_position($nub, this.settings.tip_settings.nub_position, 'bottom');
+
+ } else if (this.right()) {
+
+ this.settings.$next_tip.css({
+ top : this.settings.$target.offset().top + topAdjustment,
+ left : (this.settings.$target.outerWidth() + this.settings.$target.offset().left + nub_width + leftAdjustment)});
+
+ this.nub_position($nub, this.settings.tip_settings.nub_position, 'left');
+
+ } else if (this.left()) {
+
+ this.settings.$next_tip.css({
+ top : this.settings.$target.offset().top + topAdjustment,
+ left : (this.settings.$target.offset().left - this.settings.$next_tip.outerWidth() - nub_width + leftAdjustment)});
+
+ this.nub_position($nub, this.settings.tip_settings.nub_position, 'right');
+
+ }
+
+ if (!this.visible(this.corners(this.settings.$next_tip)) && this.settings.attempts < this.settings.tip_settings.tip_location_pattern.length) {
+
+ $nub.removeClass('bottom')
+ .removeClass('top')
+ .removeClass('right')
+ .removeClass('left');
+
+ this.settings.tip_settings.tip_location = this.settings.tip_settings.tip_location_pattern[this.settings.attempts];
+
+ this.settings.attempts++;
+
+ this.pos_default();
+
+ }
+
+ } else if (this.settings.$li.length) {
+
+ this.pos_modal($nub);
+
+ }
+
+ if (toggle) {
+ this.settings.$next_tip.hide();
+ this.settings.$next_tip.css('visibility', 'visible');
+ }
+
+ },
+
+ pos_phone : function (init) {
+ var tip_height = this.settings.$next_tip.outerHeight(),
+ tip_offset = this.settings.$next_tip.offset(),
+ target_height = this.settings.$target.outerHeight(),
+ $nub = $('.joyride-nub', this.settings.$next_tip),
+ nub_height = Math.ceil($nub.outerHeight() / 2),
+ toggle = init || false;
+
+ $nub.removeClass('bottom')
+ .removeClass('top')
+ .removeClass('right')
+ .removeClass('left');
+
+ if (toggle) {
+ this.settings.$next_tip.css('visibility', 'hidden');
+ this.settings.$next_tip.show();
+ }
+
+ if (!/body/i.test(this.settings.$target.selector)) {
+
+ if (this.top()) {
+
+ this.settings.$next_tip.offset({top : this.settings.$target.offset().top - tip_height - nub_height});
+ $nub.addClass('bottom');
+
+ } else {
+
+ this.settings.$next_tip.offset({top : this.settings.$target.offset().top + target_height + nub_height});
+ $nub.addClass('top');
+
+ }
+
+ } else if (this.settings.$li.length) {
+ this.pos_modal($nub);
+ }
+
+ if (toggle) {
+ this.settings.$next_tip.hide();
+ this.settings.$next_tip.css('visibility', 'visible');
+ }
+ },
+
+ pos_modal : function ($nub) {
+ this.center();
+ $nub.hide();
+
+ this.show_modal();
+ },
+
+ show_modal : function () {
+ if (!this.settings.$next_tip.data('closed')) {
+ var joyridemodalbg = $('.joyride-modal-bg');
+ if (joyridemodalbg.length < 1) {
+ var joyridemodalbg = $(this.settings.template.modal);
+ joyridemodalbg.appendTo('body');
+ }
+
+ if (/pop/i.test(this.settings.tip_animation)) {
+ joyridemodalbg.show();
+ } else {
+ joyridemodalbg.fadeIn(this.settings.tip_animation_fade_speed);
+ }
+ }
+ },
+
+ expose : function () {
+ var expose,
+ exposeCover,
+ el,
+ origCSS,
+ origClasses,
+ randId = 'expose-' + this.random_str(6);
+
+ if (arguments.length > 0 && arguments[0] instanceof $) {
+ el = arguments[0];
+ } else if (this.settings.$target && !/body/i.test(this.settings.$target.selector)) {
+ el = this.settings.$target;
+ } else {
+ return false;
+ }
+
+ if (el.length < 1) {
+ if (window.console) {
+ console.error('element not valid', el);
+ }
+ return false;
+ }
+
+ expose = $(this.settings.template.expose);
+ this.settings.$body.append(expose);
+ expose.css({
+ top : el.offset().top,
+ left : el.offset().left,
+ width : el.outerWidth(true),
+ height : el.outerHeight(true)
+ });
+
+ exposeCover = $(this.settings.template.expose_cover);
+
+ origCSS = {
+ zIndex : el.css('z-index'),
+ position : el.css('position')
+ };
+
+ origClasses = el.attr('class') == null ? '' : el.attr('class');
+
+ el.css('z-index', parseInt(expose.css('z-index')) + 1);
+
+ if (origCSS.position == 'static') {
+ el.css('position', 'relative');
+ }
+
+ el.data('expose-css', origCSS);
+ el.data('orig-class', origClasses);
+ el.attr('class', origClasses + ' ' + this.settings.expose_add_class);
+
+ exposeCover.css({
+ top : el.offset().top,
+ left : el.offset().left,
+ width : el.outerWidth(true),
+ height : el.outerHeight(true)
+ });
+
+ if (this.settings.modal) {
+ this.show_modal();
+ }
+
+ this.settings.$body.append(exposeCover);
+ expose.addClass(randId);
+ exposeCover.addClass(randId);
+ el.data('expose', randId);
+ this.settings.post_expose_callback(this.settings.$li.index(), this.settings.$next_tip, el);
+ this.add_exposed(el);
+ },
+
+ un_expose : function () {
+ var exposeId,
+ el,
+ expose,
+ origCSS,
+ origClasses,
+ clearAll = false;
+
+ if (arguments.length > 0 && arguments[0] instanceof $) {
+ el = arguments[0];
+ } else if (this.settings.$target && !/body/i.test(this.settings.$target.selector)) {
+ el = this.settings.$target;
+ } else {
+ return false;
+ }
+
+ if (el.length < 1) {
+ if (window.console) {
+ console.error('element not valid', el);
+ }
+ return false;
+ }
+
+ exposeId = el.data('expose');
+ expose = $('.' + exposeId);
+
+ if (arguments.length > 1) {
+ clearAll = arguments[1];
+ }
+
+ if (clearAll === true) {
+ $('.joyride-expose-wrapper,.joyride-expose-cover').remove();
+ } else {
+ expose.remove();
+ }
+
+ origCSS = el.data('expose-css');
+
+ if (origCSS.zIndex == 'auto') {
+ el.css('z-index', '');
+ } else {
+ el.css('z-index', origCSS.zIndex);
+ }
+
+ if (origCSS.position != el.css('position')) {
+ if (origCSS.position == 'static') {// this is default, no need to set it.
+ el.css('position', '');
+ } else {
+ el.css('position', origCSS.position);
+ }
+ }
+
+ origClasses = el.data('orig-class');
+ el.attr('class', origClasses);
+ el.removeData('orig-classes');
+
+ el.removeData('expose');
+ el.removeData('expose-z-index');
+ this.remove_exposed(el);
+ },
+
+ add_exposed : function (el) {
+ this.settings.exposed = this.settings.exposed || [];
+ if (el instanceof $ || typeof el === 'object') {
+ this.settings.exposed.push(el[0]);
+ } else if (typeof el == 'string') {
+ this.settings.exposed.push(el);
+ }
+ },
+
+ remove_exposed : function (el) {
+ var search, i;
+ if (el instanceof $) {
+ search = el[0]
+ } else if (typeof el == 'string') {
+ search = el;
+ }
+
+ this.settings.exposed = this.settings.exposed || [];
+ i = this.settings.exposed.length;
+
+ while (i--) {
+ if (this.settings.exposed[i] == search) {
+ this.settings.exposed.splice(i, 1);
+ return;
+ }
+ }
+ },
+
+ center : function () {
+ var $w = $(window);
+
+ this.settings.$next_tip.css({
+ top : ((($w.height() - this.settings.$next_tip.outerHeight()) / 2) + $w.scrollTop()),
+ left : ((($w.width() - this.settings.$next_tip.outerWidth()) / 2) + $w.scrollLeft())
+ });
+
+ return true;
+ },
+
+ bottom : function () {
+ return /bottom/i.test(this.settings.tip_settings.tip_location);
+ },
+
+ top : function () {
+ return /top/i.test(this.settings.tip_settings.tip_location);
+ },
+
+ right : function () {
+ return /right/i.test(this.settings.tip_settings.tip_location);
+ },
+
+ left : function () {
+ return /left/i.test(this.settings.tip_settings.tip_location);
+ },
+
+ corners : function (el) {
+ if (el.length === 0) {
+ return [false, false, false, false];
+ }
+
+ var w = $(window),
+ window_half = w.height() / 2,
+ //using this to calculate since scroll may not have finished yet.
+ tipOffset = Math.ceil(this.settings.$target.offset().top - window_half + this.settings.$next_tip.outerHeight()),
+ right = w.width() + w.scrollLeft(),
+ offsetBottom = w.height() + tipOffset,
+ bottom = w.height() + w.scrollTop(),
+ top = w.scrollTop();
+
+ if (tipOffset < top) {
+ if (tipOffset < 0) {
+ top = 0;
+ } else {
+ top = tipOffset;
+ }
+ }
+
+ if (offsetBottom > bottom) {
+ bottom = offsetBottom;
+ }
+
+ return [
+ el.offset().top < top,
+ right < el.offset().left + el.outerWidth(),
+ bottom < el.offset().top + el.outerHeight(),
+ w.scrollLeft() > el.offset().left
+ ];
+ },
+
+ visible : function (hidden_corners) {
+ var i = hidden_corners.length;
+
+ while (i--) {
+ if (hidden_corners[i]) {
+ return false;
+ }
+ }
+
+ return true;
+ },
+
+ nub_position : function (nub, pos, def) {
+ if (pos === 'auto') {
+ nub.addClass(def);
+ } else {
+ nub.addClass(pos);
+ }
+ },
+
+ startTimer : function () {
+ if (this.settings.$li.length) {
+ this.settings.automate = setTimeout(function () {
+ this.hide();
+ this.show();
+ this.startTimer();
+ }.bind(this), this.settings.timer);
+ } else {
+ clearTimeout(this.settings.automate);
+ }
+ },
+
+ end : function (abort) {
+ if (this.settings.cookie_monster) {
+ $.cookie(this.settings.cookie_name, 'ridden', {expires : this.settings.cookie_expires, domain : this.settings.cookie_domain});
+ }
+
+ if (this.settings.timer > 0) {
+ clearTimeout(this.settings.automate);
+ }
+
+ if (this.settings.modal && this.settings.expose) {
+ this.un_expose();
+ }
+
+ // Unplug keystrokes listener
+ $(this.scope).off('keyup.joyride')
+
+ this.settings.$next_tip.data('closed', true);
+ this.settings.riding = false;
+
+ $('.joyride-modal-bg').hide();
+ this.settings.$current_tip.hide();
+
+ if (typeof abort === 'undefined' || abort === false) {
+ this.settings.post_step_callback(this.settings.$li.index(), this.settings.$current_tip);
+ this.settings.post_ride_callback(this.settings.$li.index(), this.settings.$current_tip);
+ }
+
+ $('.joyride-tip-guide').remove();
+ },
+
+ off : function () {
+ $(this.scope).off('.joyride');
+ $(window).off('.joyride');
+ $('.joyride-close-tip, .joyride-next-tip, .joyride-modal-bg').off('.joyride');
+ $('.joyride-tip-guide, .joyride-modal-bg').remove();
+ clearTimeout(this.settings.automate);
+ },
+
+ reflow : function () {}
+ };
+}(jQuery, window, window.document));
+
+;(function ($, window, document, undefined) {
+ 'use strict';
+
+ Foundation.libs['magellan-expedition'] = {
+ name : 'magellan-expedition',
+
+ version : '5.5.3',
+
+ settings : {
+ active_class : 'active',
+ threshold : 0, // pixels from the top of the expedition for it to become fixes
+ destination_threshold : 20, // pixels from the top of destination for it to be considered active
+ throttle_delay : 30, // calculation throttling to increase framerate
+ fixed_top : 0, // top distance in pixels assigend to the fixed element on scroll
+ offset_by_height : true, // whether to offset the destination by the expedition height. Usually you want this to be true, unless your expedition is on the side.
+ duration : 700, // animation duration time
+ easing : 'swing' // animation easing
+ },
+
+ init : function (scope, method, options) {
+ Foundation.inherit(this, 'throttle');
+ this.bindings(method, options);
+ },
+
+ events : function () {
+ var self = this,
+ S = self.S,
+ settings = self.settings;
+
+ // initialize expedition offset
+ self.set_expedition_position();
+
+ S(self.scope)
+ .off('.magellan')
+ .on('click.fndtn.magellan', '[' + self.add_namespace('data-magellan-arrival') + '] a[href*=#]', function (e) {
+ var sameHost = ((this.hostname === location.hostname) || !this.hostname),
+ samePath = self.filterPathname(location.pathname) === self.filterPathname(this.pathname),
+ testHash = this.hash.replace(/(:|\.|\/)/g, '\\$1'),
+ anchor = this;
+
+ if (sameHost && samePath && testHash) {
+ e.preventDefault();
+ var expedition = $(this).closest('[' + self.attr_name() + ']'),
+ settings = expedition.data('magellan-expedition-init'),
+ hash = this.hash.split('#').join(''),
+ target = $('a[name="' + hash + '"]');
+
+ if (target.length === 0) {
+ target = $('#' + hash);
+
+ }
+
+ // Account for expedition height if fixed position
+ var scroll_top = target.offset().top - settings.destination_threshold + 1;
+ if (settings.offset_by_height) {
+ scroll_top = scroll_top - expedition.outerHeight();
+ }
+ $('html, body').stop().animate({
+ 'scrollTop' : scroll_top
+ }, settings.duration, settings.easing, function () {
+ if (history.pushState) {
+ history.pushState(null, null, anchor.pathname + anchor.search + '#' + hash);
+ } else {
+ location.hash = anchor.pathname + anchor.search + '#' + hash;
+ }
+ });
+ }
+ })
+ .on('scroll.fndtn.magellan', self.throttle(this.check_for_arrivals.bind(this), settings.throttle_delay));
+ },
+
+ check_for_arrivals : function () {
+ var self = this;
+ self.update_arrivals();
+ self.update_expedition_positions();
+ },
+
+ set_expedition_position : function () {
+ var self = this;
+ $('[' + this.attr_name() + '=fixed]', self.scope).each(function (idx, el) {
+ var expedition = $(this),
+ settings = expedition.data('magellan-expedition-init'),
+ styles = expedition.attr('styles'), // save styles
+ top_offset, fixed_top;
+
+ expedition.attr('style', '');
+ top_offset = expedition.offset().top + settings.threshold;
+
+ //set fixed-top by attribute
+ fixed_top = parseInt(expedition.data('magellan-fixed-top'));
+ if (!isNaN(fixed_top)) {
+ self.settings.fixed_top = fixed_top;
+ }
+
+ expedition.data(self.data_attr('magellan-top-offset'), top_offset);
+ expedition.attr('style', styles);
+ });
+ },
+
+ update_expedition_positions : function () {
+ var self = this,
+ window_top_offset = $(window).scrollTop();
+
+ $('[' + this.attr_name() + '=fixed]', self.scope).each(function () {
+ var expedition = $(this),
+ settings = expedition.data('magellan-expedition-init'),
+ styles = expedition.attr('style'), // save styles
+ top_offset = expedition.data('magellan-top-offset');
+
+ //scroll to the top distance
+ if (window_top_offset + self.settings.fixed_top >= top_offset) {
+ // Placeholder allows height calculations to be consistent even when
+ // appearing to switch between fixed/non-fixed placement
+ var placeholder = expedition.prev('[' + self.add_namespace('data-magellan-expedition-clone') + ']');
+ if (placeholder.length === 0) {
+ placeholder = expedition.clone();
+ placeholder.removeAttr(self.attr_name());
+ placeholder.attr(self.add_namespace('data-magellan-expedition-clone'), '');
+ expedition.before(placeholder);
+ }
+ expedition.css({position :'fixed', top : settings.fixed_top}).addClass('fixed');
+ } else {
+ expedition.prev('[' + self.add_namespace('data-magellan-expedition-clone') + ']').remove();
+ expedition.attr('style', styles).css('position', '').css('top', '').removeClass('fixed');
+ }
+ });
+ },
+
+ update_arrivals : function () {
+ var self = this,
+ window_top_offset = $(window).scrollTop();
+
+ $('[' + this.attr_name() + ']', self.scope).each(function () {
+ var expedition = $(this),
+ settings = expedition.data(self.attr_name(true) + '-init'),
+ offsets = self.offsets(expedition, window_top_offset),
+ arrivals = expedition.find('[' + self.add_namespace('data-magellan-arrival') + ']'),
+ active_item = false;
+ offsets.each(function (idx, item) {
+ if (item.viewport_offset >= item.top_offset) {
+ var arrivals = expedition.find('[' + self.add_namespace('data-magellan-arrival') + ']');
+ arrivals.not(item.arrival).removeClass(settings.active_class);
+ item.arrival.addClass(settings.active_class);
+ active_item = true;
+ return true;
+ }
+ });
+
+ if (!active_item) {
+ arrivals.removeClass(settings.active_class);
+ }
+ });
+ },
+
+ offsets : function (expedition, window_offset) {
+ var self = this,
+ settings = expedition.data(self.attr_name(true) + '-init'),
+ viewport_offset = window_offset;
+
+ return expedition.find('[' + self.add_namespace('data-magellan-arrival') + ']').map(function (idx, el) {
+ var name = $(this).data(self.data_attr('magellan-arrival')),
+ dest = $('[' + self.add_namespace('data-magellan-destination') + '=' + name + ']');
+ if (dest.length > 0) {
+ var top_offset = dest.offset().top - settings.destination_threshold;
+ if (settings.offset_by_height) {
+ top_offset = top_offset - expedition.outerHeight();
+ }
+ top_offset = Math.floor(top_offset);
+ return {
+ destination : dest,
+ arrival : $(this),
+ top_offset : top_offset,
+ viewport_offset : viewport_offset
+ }
+ }
+ }).sort(function (a, b) {
+ if (a.top_offset < b.top_offset) {
+ return -1;
+ }
+ if (a.top_offset > b.top_offset) {
+ return 1;
+ }
+ return 0;
+ });
+ },
+
+ data_attr : function (str) {
+ if (this.namespace.length > 0) {
+ return this.namespace + '-' + str;
+ }
+
+ return str;
+ },
+
+ off : function () {
+ this.S(this.scope).off('.magellan');
+ this.S(window).off('.magellan');
+ },
+
+ filterPathname : function (pathname) {
+ pathname = pathname || '';
+ return pathname
+ .replace(/^\//,'')
+ .replace(/(?:index|default).[a-zA-Z]{3,4}$/,'')
+ .replace(/\/$/,'');
+ },
+
+ reflow : function () {
+ var self = this;
+ // remove placeholder expeditions used for height calculation purposes
+ $('[' + self.add_namespace('data-magellan-expedition-clone') + ']', self.scope).remove();
+ }
+ };
+}(jQuery, window, window.document));
+
+;(function ($, window, document, undefined) {
+ 'use strict';
+
+ Foundation.libs.offcanvas = {
+ name : 'offcanvas',
+
+ version : '5.5.3',
+
+ settings : {
+ open_method : 'move',
+ close_on_click : false
+ },
+
+ init : function (scope, method, options) {
+ this.bindings(method, options);
+ },
+
+ events : function () {
+ var self = this,
+ S = self.S,
+ move_class = '',
+ right_postfix = '',
+ left_postfix = '',
+ top_postfix = '',
+ bottom_postfix = '';
+
+ if (this.settings.open_method === 'move') {
+ move_class = 'move-';
+ right_postfix = 'right';
+ left_postfix = 'left';
+ top_postfix = 'top';
+ bottom_postfix = 'bottom';
+ } else if (this.settings.open_method === 'overlap_single') {
+ move_class = 'offcanvas-overlap-';
+ right_postfix = 'right';
+ left_postfix = 'left';
+ top_postfix = 'top';
+ bottom_postfix = 'bottom';
+ } else if (this.settings.open_method === 'overlap') {
+ move_class = 'offcanvas-overlap';
+ }
+
+ S(this.scope).off('.offcanvas')
+ .on('click.fndtn.offcanvas', '.left-off-canvas-toggle', function (e) {
+ self.click_toggle_class(e, move_class + right_postfix);
+ if (self.settings.open_method !== 'overlap') {
+ S('.left-submenu').removeClass(move_class + right_postfix);
+ }
+ $('.left-off-canvas-toggle').attr('aria-expanded', 'true');
+ })
+ .on('click.fndtn.offcanvas', '.left-off-canvas-menu a', function (e) {
+ var settings = self.get_settings(e);
+ var parent = S(this).parent();
+
+ if (settings.close_on_click && !parent.hasClass('has-submenu') && !parent.hasClass('back')) {
+ self.hide.call(self, move_class + right_postfix, self.get_wrapper(e));
+ parent.parent().removeClass(move_class + right_postfix);
+ } else if (S(this).parent().hasClass('has-submenu')) {
+ e.preventDefault();
+ S(this).siblings('.left-submenu').toggleClass(move_class + right_postfix);
+ } else if (parent.hasClass('back')) {
+ e.preventDefault();
+ parent.parent().removeClass(move_class + right_postfix);
+ }
+ $('.left-off-canvas-toggle').attr('aria-expanded', 'true');
+ })
+ //end of left canvas
+ .on('click.fndtn.offcanvas', '.right-off-canvas-toggle', function (e) {
+ self.click_toggle_class(e, move_class + left_postfix);
+ if (self.settings.open_method !== 'overlap') {
+ S('.right-submenu').removeClass(move_class + left_postfix);
+ }
+ $('.right-off-canvas-toggle').attr('aria-expanded', 'true');
+ })
+ .on('click.fndtn.offcanvas', '.right-off-canvas-menu a', function (e) {
+ var settings = self.get_settings(e);
+ var parent = S(this).parent();
+
+ if (settings.close_on_click && !parent.hasClass('has-submenu') && !parent.hasClass('back')) {
+ self.hide.call(self, move_class + left_postfix, self.get_wrapper(e));
+ parent.parent().removeClass(move_class + left_postfix);
+ } else if (S(this).parent().hasClass('has-submenu')) {
+ e.preventDefault();
+ S(this).siblings('.right-submenu').toggleClass(move_class + left_postfix);
+ } else if (parent.hasClass('back')) {
+ e.preventDefault();
+ parent.parent().removeClass(move_class + left_postfix);
+ }
+ $('.right-off-canvas-toggle').attr('aria-expanded', 'true');
+ })
+ //end of right canvas
+ .on('click.fndtn.offcanvas', '.top-off-canvas-toggle', function (e) {
+ self.click_toggle_class(e, move_class + bottom_postfix);
+ if (self.settings.open_method !== 'overlap') {
+ S('.top-submenu').removeClass(move_class + bottom_postfix);
+ }
+ $('.top-off-canvas-toggle').attr('aria-expanded', 'true');
+ })
+ .on('click.fndtn.offcanvas', '.top-off-canvas-menu a', function (e) {
+ var settings = self.get_settings(e);
+ var parent = S(this).parent();
+
+ if (settings.close_on_click && !parent.hasClass('has-submenu') && !parent.hasClass('back')) {
+ self.hide.call(self, move_class + bottom_postfix, self.get_wrapper(e));
+ parent.parent().removeClass(move_class + bottom_postfix);
+ } else if (S(this).parent().hasClass('has-submenu')) {
+ e.preventDefault();
+ S(this).siblings('.top-submenu').toggleClass(move_class + bottom_postfix);
+ } else if (parent.hasClass('back')) {
+ e.preventDefault();
+ parent.parent().removeClass(move_class + bottom_postfix);
+ }
+ $('.top-off-canvas-toggle').attr('aria-expanded', 'true');
+ })
+ //end of top canvas
+ .on('click.fndtn.offcanvas', '.bottom-off-canvas-toggle', function (e) {
+ self.click_toggle_class(e, move_class + top_postfix);
+ if (self.settings.open_method !== 'overlap') {
+ S('.bottom-submenu').removeClass(move_class + top_postfix);
+ }
+ $('.bottom-off-canvas-toggle').attr('aria-expanded', 'true');
+ })
+ .on('click.fndtn.offcanvas', '.bottom-off-canvas-menu a', function (e) {
+ var settings = self.get_settings(e);
+ var parent = S(this).parent();
+
+ if (settings.close_on_click && !parent.hasClass('has-submenu') && !parent.hasClass('back')) {
+ self.hide.call(self, move_class + top_postfix, self.get_wrapper(e));
+ parent.parent().removeClass(move_class + top_postfix);
+ } else if (S(this).parent().hasClass('has-submenu')) {
+ e.preventDefault();
+ S(this).siblings('.bottom-submenu').toggleClass(move_class + top_postfix);
+ } else if (parent.hasClass('back')) {
+ e.preventDefault();
+ parent.parent().removeClass(move_class + top_postfix);
+ }
+ $('.bottom-off-canvas-toggle').attr('aria-expanded', 'true');
+ })
+ //end of bottom
+ .on('click.fndtn.offcanvas', '.exit-off-canvas', function (e) {
+ self.click_remove_class(e, move_class + left_postfix);
+ S('.right-submenu').removeClass(move_class + left_postfix);
+ if (right_postfix) {
+ self.click_remove_class(e, move_class + right_postfix);
+ S('.left-submenu').removeClass(move_class + left_postfix);
+ }
+ $('.right-off-canvas-toggle').attr('aria-expanded', 'true');
+ })
+ .on('click.fndtn.offcanvas', '.exit-off-canvas', function (e) {
+ self.click_remove_class(e, move_class + left_postfix);
+ $('.left-off-canvas-toggle').attr('aria-expanded', 'false');
+ if (right_postfix) {
+ self.click_remove_class(e, move_class + right_postfix);
+ $('.right-off-canvas-toggle').attr('aria-expanded', 'false');
+ }
+ })
+ .on('click.fndtn.offcanvas', '.exit-off-canvas', function (e) {
+ self.click_remove_class(e, move_class + top_postfix);
+ S('.bottom-submenu').removeClass(move_class + top_postfix);
+ if (bottom_postfix) {
+ self.click_remove_class(e, move_class + bottom_postfix);
+ S('.top-submenu').removeClass(move_class + top_postfix);
+ }
+ $('.bottom-off-canvas-toggle').attr('aria-expanded', 'true');
+ })
+ .on('click.fndtn.offcanvas', '.exit-off-canvas', function (e) {
+ self.click_remove_class(e, move_class + top_postfix);
+ $('.top-off-canvas-toggle').attr('aria-expanded', 'false');
+ if (bottom_postfix) {
+ self.click_remove_class(e, move_class + bottom_postfix);
+ $('.bottom-off-canvas-toggle').attr('aria-expanded', 'false');
+ }
+ });
+ },
+
+ toggle : function (class_name, $off_canvas) {
+ $off_canvas = $off_canvas || this.get_wrapper();
+ if ($off_canvas.is('.' + class_name)) {
+ this.hide(class_name, $off_canvas);
+ } else {
+ this.show(class_name, $off_canvas);
+ }
+ },
+
+ show : function (class_name, $off_canvas) {
+ $off_canvas = $off_canvas || this.get_wrapper();
+ $off_canvas.trigger('open.fndtn.offcanvas');
+ $off_canvas.addClass(class_name);
+ },
+
+ hide : function (class_name, $off_canvas) {
+ $off_canvas = $off_canvas || this.get_wrapper();
+ $off_canvas.trigger('close.fndtn.offcanvas');
+ $off_canvas.removeClass(class_name);
+ },
+
+ click_toggle_class : function (e, class_name) {
+ e.preventDefault();
+ var $off_canvas = this.get_wrapper(e);
+ this.toggle(class_name, $off_canvas);
+ },
+
+ click_remove_class : function (e, class_name) {
+ e.preventDefault();
+ var $off_canvas = this.get_wrapper(e);
+ this.hide(class_name, $off_canvas);
+ },
+
+ get_settings : function (e) {
+ var offcanvas = this.S(e.target).closest('[' + this.attr_name() + ']');
+ return offcanvas.data(this.attr_name(true) + '-init') || this.settings;
+ },
+
+ get_wrapper : function (e) {
+ var $off_canvas = this.S(e ? e.target : this.scope).closest('.off-canvas-wrap');
+
+ if ($off_canvas.length === 0) {
+ $off_canvas = this.S('.off-canvas-wrap');
+ }
+ return $off_canvas;
+ },
+
+ reflow : function () {}
+ };
+}(jQuery, window, window.document));
+
+;(function ($, window, document, undefined) {
+ 'use strict';
+
+ var noop = function () {};
+
+ var Orbit = function (el, settings) {
+ // Don't reinitialize plugin
+ if (el.hasClass(settings.slides_container_class)) {
+ return this;
+ }
+
+ var self = this,
+ container,
+ slides_container = el,
+ number_container,
+ bullets_container,
+ timer_container,
+ idx = 0,
+ animate,
+ timer,
+ locked = false,
+ adjust_height_after = false;
+
+ self.slides = function () {
+ return slides_container.children(settings.slide_selector);
+ };
+
+ self.slides().first().addClass(settings.active_slide_class);
+
+ self.update_slide_number = function (index) {
+ if (settings.slide_number) {
+ number_container.find('span:first').text(parseInt(index) + 1);
+ number_container.find('span:last').text(self.slides().length);
+ }
+ if (settings.bullets) {
+ bullets_container.children().removeClass(settings.bullets_active_class);
+ $(bullets_container.children().get(index)).addClass(settings.bullets_active_class);
+ }
+ };
+
+ self.update_active_link = function (index) {
+ var link = $('[data-orbit-link="' + self.slides().eq(index).attr('data-orbit-slide') + '"]');
+ link.siblings().removeClass(settings.bullets_active_class);
+ link.addClass(settings.bullets_active_class);
+ };
+
+ self.build_markup = function () {
+ slides_container.wrap('<div class="' + settings.container_class + '"></div>');
+ container = slides_container.parent();
+ slides_container.addClass(settings.slides_container_class);
+
+ if (settings.stack_on_small) {
+ container.addClass(settings.stack_on_small_class);
+ }
+
+ if (settings.navigation_arrows) {
+ container.append($('<a href="#"><span></span></a>').addClass(settings.prev_class));
+ container.append($('<a href="#"><span></span></a>').addClass(settings.next_class));
+ }
+
+ if (settings.timer) {
+ timer_container = $('<div>').addClass(settings.timer_container_class);
+ timer_container.append('<span>');
+ timer_container.append($('<div>').addClass(settings.timer_progress_class));
+ timer_container.addClass(settings.timer_paused_class);
+ container.append(timer_container);
+ }
+
+ if (settings.slide_number) {
+ number_container = $('<div>').addClass(settings.slide_number_class);
+ number_container.append('<span></span> ' + settings.slide_number_text + ' <span></span>');
+ container.append(number_container);
+ }
+
+ if (settings.bullets) {
+ bullets_container = $('<ol>').addClass(settings.bullets_container_class);
+ container.append(bullets_container);
+ bullets_container.wrap('<div class="orbit-bullets-container"></div>');
+ self.slides().each(function (idx, el) {
+ var bullet = $('<li>').attr('data-orbit-slide', idx).on('click', self.link_bullet);;
+ bullets_container.append(bullet);
+ });
+ }
+
+ };
+
+ self._goto = function (next_idx, start_timer) {
+ // if (locked) {return false;}
+ if (next_idx === idx) {return false;}
+ if (typeof timer === 'object') {timer.restart();}
+ var slides = self.slides();
+
+ var dir = 'next';
+ locked = true;
+ if (next_idx < idx) {dir = 'prev';}
+ if (next_idx >= slides.length) {
+ if (!settings.circular) {
+ return false;
+ }
+ next_idx = 0;
+ } else if (next_idx < 0) {
+ if (!settings.circular) {
+ return false;
+ }
+ next_idx = slides.length - 1;
+ }
+
+ var current = $(slides.get(idx));
+ var next = $(slides.get(next_idx));
+
+ current.css('zIndex', 2);
+ current.removeClass(settings.active_slide_class);
+ next.css('zIndex', 4).addClass(settings.active_slide_class);
+
+ slides_container.trigger('before-slide-change.fndtn.orbit');
+ settings.before_slide_change();
+ self.update_active_link(next_idx);
+
+ var callback = function () {
+ var unlock = function () {
+ idx = next_idx;
+ locked = false;
+ if (start_timer === true) {timer = self.create_timer(); timer.start();}
+ self.update_slide_number(idx);
+ slides_container.trigger('after-slide-change.fndtn.orbit', [{slide_number : idx, total_slides : slides.length}]);
+ settings.after_slide_change(idx, slides.length);
+ };
+ if (slides_container.outerHeight() != next.outerHeight() && settings.variable_height) {
+ slides_container.animate({'height': next.outerHeight()}, 250, 'linear', unlock);
+ } else {
+ unlock();
+ }
+ };
+
+ if (slides.length === 1) {callback(); return false;}
+
+ var start_animation = function () {
+ if (dir === 'next') {animate.next(current, next, callback);}
+ if (dir === 'prev') {animate.prev(current, next, callback);}
+ };
+
+ if (next.outerHeight() > slides_container.outerHeight() && settings.variable_height) {
+ slides_container.animate({'height': next.outerHeight()}, 250, 'linear', start_animation);
+ } else {
+ start_animation();
+ }
+ };
+
+ self.next = function (e) {
+ e.stopImmediatePropagation();
+ e.preventDefault();
+ self._goto(idx + 1);
+ };
+
+ self.prev = function (e) {
+ e.stopImmediatePropagation();
+ e.preventDefault();
+ self._goto(idx - 1);
+ };
+
+ self.link_custom = function (e) {
+ e.preventDefault();
+ var link = $(this).attr('data-orbit-link');
+ if ((typeof link === 'string') && (link = $.trim(link)) != '') {
+ var slide = container.find('[data-orbit-slide=' + link + ']');
+ if (slide.index() != -1) {self._goto(slide.index());}
+ }
+ };
+
+ self.link_bullet = function (e) {
+ var index = $(this).attr('data-orbit-slide');
+ if ((typeof index === 'string') && (index = $.trim(index)) != '') {
+ if (isNaN(parseInt(index))) {
+ var slide = container.find('[data-orbit-slide=' + index + ']');
+ if (slide.index() != -1) {self._goto(slide.index() + 1);}
+ } else {
+ self._goto(parseInt(index));
+ }
+ }
+
+ }
+
+ self.timer_callback = function () {
+ self._goto(idx + 1, true);
+ }
+
+ self.compute_dimensions = function () {
+ var current = $(self.slides().get(idx));
+ var h = current.outerHeight();
+ if (!settings.variable_height) {
+ self.slides().each(function(){
+ if ($(this).outerHeight() > h) { h = $(this).outerHeight(); }
+ });
+ }
+ slides_container.height(h);
+ };
+
+ self.create_timer = function () {
+ var t = new Timer(
+ container.find('.' + settings.timer_container_class),
+ settings,
+ self.timer_callback
+ );
+ return t;
+ };
+
+ self.stop_timer = function () {
+ if (typeof timer === 'object') {
+ timer.stop();
+ }
+ };
+
+ self.toggle_timer = function () {
+ var t = container.find('.' + settings.timer_container_class);
+ if (t.hasClass(settings.timer_paused_class)) {
+ if (typeof timer === 'undefined') {timer = self.create_timer();}
+ timer.start();
+ } else {
+ if (typeof timer === 'object') {timer.stop();}
+ }
+ };
+
+ self.init = function () {
+ self.build_markup();
+ if (settings.timer) {
+ timer = self.create_timer();
+ Foundation.utils.image_loaded(this.slides().children('img'), timer.start);
+ }
+ animate = new FadeAnimation(settings, slides_container);
+ if (settings.animation === 'slide') {
+ animate = new SlideAnimation(settings, slides_container);
+ }
+
+ container.on('click', '.' + settings.next_class, self.next);
+ container.on('click', '.' + settings.prev_class, self.prev);
+
+ if (settings.next_on_click) {
+ container.on('click', '.' + settings.slides_container_class + ' [data-orbit-slide]', self.link_bullet);
+ }
+
+ container.on('click', self.toggle_timer);
+ if (settings.swipe) {
+ container.on('touchstart.fndtn.orbit', function (e) {
+ if (!e.touches) {e = e.originalEvent;}
+ var data = {
+ start_page_x : e.touches[0].pageX,
+ start_page_y : e.touches[0].pageY,
+ start_time : (new Date()).getTime(),
+ delta_x : 0,
+ is_scrolling : undefined
+ };
+ container.data('swipe-transition', data);
+ e.stopPropagation();
+ })
+ .on('touchmove.fndtn.orbit', function (e) {
+ if (!e.touches) {
+ e = e.originalEvent;
+ }
+ // Ignore pinch/zoom events
+ if (e.touches.length > 1 || e.scale && e.scale !== 1) {
+ return;
+ }
+
+ var data = container.data('swipe-transition');
+ if (typeof data === 'undefined') {data = {};}
+
+ data.delta_x = e.touches[0].pageX - data.start_page_x;
+
+ if ( typeof data.is_scrolling === 'undefined') {
+ data.is_scrolling = !!( data.is_scrolling || Math.abs(data.delta_x) < Math.abs(e.touches[0].pageY - data.start_page_y) );
+ }
+
+ if (!data.is_scrolling && !data.active) {
+ e.preventDefault();
+ var direction = (data.delta_x < 0) ? (idx + 1) : (idx - 1);
+ data.active = true;
+ self._goto(direction);
+ }
+ })
+ .on('touchend.fndtn.orbit', function (e) {
+ container.data('swipe-transition', {});
+ e.stopPropagation();
+ })
+ }
+ container.on('mouseenter.fndtn.orbit', function (e) {
+ if (settings.timer && settings.pause_on_hover) {
+ self.stop_timer();
+ }
+ })
+ .on('mouseleave.fndtn.orbit', function (e) {
+ if (settings.timer && settings.resume_on_mouseout) {
+ timer.start();
+ }
+ });
+
+ $(document).on('click', '[data-orbit-link]', self.link_custom);
+ $(window).on('load resize', self.compute_dimensions);
+ Foundation.utils.image_loaded(this.slides().children('img'), self.compute_dimensions);
+ Foundation.utils.image_loaded(this.slides().children('img'), function () {
+ container.prev('.' + settings.preloader_class).css('display', 'none');
+ self.update_slide_number(0);
+ self.update_active_link(0);
+ slides_container.trigger('ready.fndtn.orbit');
+ });
+ };
+
+ self.init();
+ };
+
+ var Timer = function (el, settings, callback) {
+ var self = this,
+ duration = settings.timer_speed,
+ progress = el.find('.' + settings.timer_progress_class),
+ start,
+ timeout,
+ left = -1;
+
+ this.update_progress = function (w) {
+ var new_progress = progress.clone();
+ new_progress.attr('style', '');
+ new_progress.css('width', w + '%');
+ progress.replaceWith(new_progress);
+ progress = new_progress;
+ };
+
+ this.restart = function () {
+ clearTimeout(timeout);
+ el.addClass(settings.timer_paused_class);
+ left = -1;
+ self.update_progress(0);
+ };
+
+ this.start = function () {
+ if (!el.hasClass(settings.timer_paused_class)) {return true;}
+ left = (left === -1) ? duration : left;
+ el.removeClass(settings.timer_paused_class);
+ start = new Date().getTime();
+ progress.animate({'width' : '100%'}, left, 'linear');
+ timeout = setTimeout(function () {
+ self.restart();
+ callback();
+ }, left);
+ el.trigger('timer-started.fndtn.orbit')
+ };
+
+ this.stop = function () {
+ if (el.hasClass(settings.timer_paused_class)) {return true;}
+ clearTimeout(timeout);
+ el.addClass(settings.timer_paused_class);
+ var end = new Date().getTime();
+ left = left - (end - start);
+ var w = 100 - ((left / duration) * 100);
+ self.update_progress(w);
+ el.trigger('timer-stopped.fndtn.orbit');
+ };
+ };
+
+ var SlideAnimation = function (settings, container) {
+ var duration = settings.animation_speed;
+ var is_rtl = ($('html[dir=rtl]').length === 1);
+ var margin = is_rtl ? 'marginRight' : 'marginLeft';
+ var animMargin = {};
+ animMargin[margin] = '0%';
+
+ this.next = function (current, next, callback) {
+ current.animate({marginLeft : '-100%'}, duration);
+ next.animate(animMargin, duration, function () {
+ current.css(margin, '100%');
+ callback();
+ });
+ };
+
+ this.prev = function (current, prev, callback) {
+ current.animate({marginLeft : '100%'}, duration);
+ prev.css(margin, '-100%');
+ prev.animate(animMargin, duration, function () {
+ current.css(margin, '100%');
+ callback();
+ });
+ };
+ };
+
+ var FadeAnimation = function (settings, container) {
+ var duration = settings.animation_speed;
+ var is_rtl = ($('html[dir=rtl]').length === 1);
+ var margin = is_rtl ? 'marginRight' : 'marginLeft';
+
+ this.next = function (current, next, callback) {
+ next.css({'margin' : '0%', 'opacity' : '0.01'});
+ next.animate({'opacity' :'1'}, duration, 'linear', function () {
+ current.css('margin', '100%');
+ callback();
+ });
+ };
+
+ this.prev = function (current, prev, callback) {
+ prev.css({'margin' : '0%', 'opacity' : '0.01'});
+ prev.animate({'opacity' : '1'}, duration, 'linear', function () {
+ current.css('margin', '100%');
+ callback();
+ });
+ };
+ };
+
+ Foundation.libs = Foundation.libs || {};
+
+ Foundation.libs.orbit = {
+ name : 'orbit',
+
+ version : '5.5.3',
+
+ settings : {
+ animation : 'slide',
+ timer_speed : 10000,
+ pause_on_hover : true,
+ resume_on_mouseout : false,
+ next_on_click : true,
+ animation_speed : 500,
+ stack_on_small : false,
+ navigation_arrows : true,
+ slide_number : true,
+ slide_number_text : 'of',
+ container_class : 'orbit-container',
+ stack_on_small_class : 'orbit-stack-on-small',
+ next_class : 'orbit-next',
+ prev_class : 'orbit-prev',
+ timer_container_class : 'orbit-timer',
+ timer_paused_class : 'paused',
+ timer_progress_class : 'orbit-progress',
+ slides_container_class : 'orbit-slides-container',
+ preloader_class : 'preloader',
+ slide_selector : '*',
+ bullets_container_class : 'orbit-bullets',
+ bullets_active_class : 'active',
+ slide_number_class : 'orbit-slide-number',
+ caption_class : 'orbit-caption',
+ active_slide_class : 'active',
+ orbit_transition_class : 'orbit-transitioning',
+ bullets : true,
+ circular : true,
+ timer : true,
+ variable_height : false,
+ swipe : true,
+ before_slide_change : noop,
+ after_slide_change : noop
+ },
+
+ init : function (scope, method, options) {
+ var self = this;
+ this.bindings(method, options);
+ },
+
+ events : function (instance) {
+ var orbit_instance = new Orbit(this.S(instance), this.S(instance).data('orbit-init'));
+ this.S(instance).data(this.name + '-instance', orbit_instance);
+ },
+
+ reflow : function () {
+ var self = this;
+
+ if (self.S(self.scope).is('[data-orbit]')) {
+ var $el = self.S(self.scope);
+ var instance = $el.data(self.name + '-instance');
+ instance.compute_dimensions();
+ } else {
+ self.S('[data-orbit]', self.scope).each(function (idx, el) {
+ var $el = self.S(el);
+ var opts = self.data_options($el);
+ var instance = $el.data(self.name + '-instance');
+ instance.compute_dimensions();
+ });
+ }
+ }
+ };
+
+}(jQuery, window, window.document));
+
+;(function ($, window, document, undefined) {
+ 'use strict';
+
+ var openModals = [];
+
+ Foundation.libs.reveal = {
+ name : 'reveal',
+
+ version : '5.5.3',
+
+ locked : false,
+
+ settings : {
+ animation : 'fadeAndPop',
+ animation_speed : 250,
+ close_on_background_click : true,
+ close_on_esc : true,
+ dismiss_modal_class : 'close-reveal-modal',
+ multiple_opened : false,
+ bg_class : 'reveal-modal-bg',
+ root_element : 'body',
+ open : function(){},
+ opened : function(){},
+ close : function(){},
+ closed : function(){},
+ on_ajax_error: $.noop,
+ bg : $('.reveal-modal-bg'),
+ css : {
+ open : {
+ 'opacity' : 0,
+ 'visibility' : 'visible',
+ 'display' : 'block'
+ },
+ close : {
+ 'opacity' : 1,
+ 'visibility' : 'hidden',
+ 'display' : 'none'
+ }
+ }
+ },
+
+ init : function (scope, method, options) {
+ $.extend(true, this.settings, method, options);
+ this.bindings(method, options);
+ },
+
+ events : function (scope) {
+ var self = this,
+ S = self.S;
+
+ S(this.scope)
+ .off('.reveal')
+ .on('click.fndtn.reveal', '[' + this.add_namespace('data-reveal-id') + ']:not([disabled])', function (e) {
+ e.preventDefault();
+
+ if (!self.locked) {
+ var element = S(this),
+ ajax = element.data(self.data_attr('reveal-ajax')),
+ replaceContentSel = element.data(self.data_attr('reveal-replace-content'));
+
+ self.locked = true;
+
+ if (typeof ajax === 'undefined') {
+ self.open.call(self, element);
+ } else {
+ var url = ajax === true ? element.attr('href') : ajax;
+ self.open.call(self, element, {url : url}, { replaceContentSel : replaceContentSel });
+ }
+ }
+ });
+
+ S(document)
+ .on('click.fndtn.reveal', this.close_targets(), function (e) {
+ e.preventDefault();
+ if (!self.locked) {
+ var settings = S('[' + self.attr_name() + '].open').data(self.attr_name(true) + '-init') || self.settings,
+ bg_clicked = S(e.target)[0] === S('.' + settings.bg_class)[0];
+
+ if (bg_clicked) {
+ if (settings.close_on_background_click) {
+ e.stopPropagation();
+ } else {
+ return;
+ }
+ }
+
+ self.locked = true;
+ self.close.call(self, bg_clicked ? S('[' + self.attr_name() + '].open:not(.toback)') : S(this).closest('[' + self.attr_name() + ']'));
+ }
+ });
+
+ if (S('[' + self.attr_name() + ']', this.scope).length > 0) {
+ S(this.scope)
+ // .off('.reveal')
+ .on('open.fndtn.reveal', this.settings.open)
+ .on('opened.fndtn.reveal', this.settings.opened)
+ .on('opened.fndtn.reveal', this.open_video)
+ .on('close.fndtn.reveal', this.settings.close)
+ .on('closed.fndtn.reveal', this.settings.closed)
+ .on('closed.fndtn.reveal', this.close_video);
+ } else {
+ S(this.scope)
+ // .off('.reveal')
+ .on('open.fndtn.reveal', '[' + self.attr_name() + ']', this.settings.open)
+ .on('opened.fndtn.reveal', '[' + self.attr_name() + ']', this.settings.opened)
+ .on('opened.fndtn.reveal', '[' + self.attr_name() + ']', this.open_video)
+ .on('close.fndtn.reveal', '[' + self.attr_name() + ']', this.settings.close)
+ .on('closed.fndtn.reveal', '[' + self.attr_name() + ']', this.settings.closed)
+ .on('closed.fndtn.reveal', '[' + self.attr_name() + ']', this.close_video);
+ }
+
+ return true;
+ },
+
+ // PATCH #3: turning on key up capture only when a reveal window is open
+ key_up_on : function (scope) {
+ var self = this;
+
+ // PATCH #1: fixing multiple keyup event trigger from single key press
+ self.S('body').off('keyup.fndtn.reveal').on('keyup.fndtn.reveal', function ( event ) {
+ var open_modal = self.S('[' + self.attr_name() + '].open'),
+ settings = open_modal.data(self.attr_name(true) + '-init') || self.settings ;
+ // PATCH #2: making sure that the close event can be called only while unlocked,
+ // so that multiple keyup.fndtn.reveal events don't prevent clean closing of the reveal window.
+ if ( settings && event.which === 27 && settings.close_on_esc && !self.locked) { // 27 is the keycode for the Escape key
+ self.close.call(self, open_modal);
+ }
+ });
+
+ return true;
+ },
+
+ // PATCH #3: turning on key up capture only when a reveal window is open
+ key_up_off : function (scope) {
+ this.S('body').off('keyup.fndtn.reveal');
+ return true;
+ },
+
+ open : function (target, ajax_settings) {
+ var self = this,
+ modal;
+
+ if (target) {
+ if (typeof target.selector !== 'undefined') {
+ // Find the named node; only use the first one found, since the rest of the code assumes there's only one node
+ modal = self.S('#' + target.data(self.data_attr('reveal-id'))).first();
+ } else {
+ modal = self.S(this.scope);
+
+ ajax_settings = target;
+ }
+ } else {
+ modal = self.S(this.scope);
+ }
+
+ var settings = modal.data(self.attr_name(true) + '-init');
+ settings = settings || this.settings;
+
+
+ if (modal.hasClass('open') && target !== undefined && target.attr('data-reveal-id') == modal.attr('id')) {
+ return self.close(modal);
+ }
+
+ if (!modal.hasClass('open')) {
+ var open_modal = self.S('[' + self.attr_name() + '].open');
+
+ if (typeof modal.data('css-top') === 'undefined') {
+ modal.data('css-top', parseInt(modal.css('top'), 10))
+ .data('offset', this.cache_offset(modal));
+ }
+
+ modal.attr('tabindex','0').attr('aria-hidden','false');
+
+ this.key_up_on(modal); // PATCH #3: turning on key up capture only when a reveal window is open
+
+ // Prevent namespace event from triggering twice
+ modal.on('open.fndtn.reveal', function(e) {
+ if (e.namespace !== 'fndtn.reveal') return;
+ });
+
+ modal.on('open.fndtn.reveal').trigger('open.fndtn.reveal');
+
+ if (open_modal.length < 1) {
+ this.toggle_bg(modal, true);
+ }
+
+ if (typeof ajax_settings === 'string') {
+ ajax_settings = {
+ url : ajax_settings
+ };
+ }
+
+ var openModal = function() {
+ if(open_modal.length > 0) {
+ if(settings.multiple_opened) {
+ self.to_back(open_modal);
+ } else {
+ self.hide(open_modal, settings.css.close);
+ }
+ }
+
+ // bl: add the open_modal that isn't already in the background to the openModals array
+ if(settings.multiple_opened) {
+ openModals.push(modal);
+ }
+
+ self.show(modal, settings.css.open);
+ };
+
+ if (typeof ajax_settings === 'undefined' || !ajax_settings.url) {
+ openModal();
+ } else {
+ var old_success = typeof ajax_settings.success !== 'undefined' ? ajax_settings.success : null;
+ $.extend(ajax_settings, {
+ success : function (data, textStatus, jqXHR) {
+ if ( $.isFunction(old_success) ) {
+ var result = old_success(data, textStatus, jqXHR);
+ if (typeof result == 'string') {
+ data = result;
+ }
+ }
+
+ if (typeof options !== 'undefined' && typeof options.replaceContentSel !== 'undefined') {
+ modal.find(options.replaceContentSel).html(data);
+ } else {
+ modal.html(data);
+ }
+
+ self.S(modal).foundation('section', 'reflow');
+ self.S(modal).children().foundation();
+
+ openModal();
+ }
+ });
+
+ // check for if user initalized with error callback
+ if (settings.on_ajax_error !== $.noop) {
+ $.extend(ajax_settings, {
+ error : settings.on_ajax_error
+ });
+ }
+
+ $.ajax(ajax_settings);
+ }
+ }
+ self.S(window).trigger('resize');
+ },
+
+ close : function (modal) {
+ var modal = modal && modal.length ? modal : this.S(this.scope),
+ open_modals = this.S('[' + this.attr_name() + '].open'),
+ settings = modal.data(this.attr_name(true) + '-init') || this.settings,
+ self = this;
+
+ if (open_modals.length > 0) {
+
+ modal.removeAttr('tabindex','0').attr('aria-hidden','true');
+
+ this.locked = true;
+ this.key_up_off(modal); // PATCH #3: turning on key up capture only when a reveal window is open
+
+ modal.trigger('close.fndtn.reveal');
+
+ if ((settings.multiple_opened && open_modals.length === 1) || !settings.multiple_opened || modal.length > 1) {
+ self.toggle_bg(modal, false);
+ self.to_front(modal);
+ }
+
+ if (settings.multiple_opened) {
+ var isCurrent = modal.is(':not(.toback)');
+ self.hide(modal, settings.css.close, settings);
+ if(isCurrent) {
+ // remove the last modal since it is now closed
+ openModals.pop();
+ } else {
+ // if this isn't the current modal, then find it in the array and remove it
+ openModals = $.grep(openModals, function(elt) {
+ var isThis = elt[0]===modal[0];
+ if(isThis) {
+ // since it's not currently in the front, put it in the front now that it is hidden
+ // so that if it's re-opened, it won't be .toback
+ self.to_front(modal);
+ }
+ return !isThis;
+ });
+ }
+ // finally, show the next modal in the stack, if there is one
+ if(openModals.length>0) {
+ self.to_front(openModals[openModals.length - 1]);
+ }
+ } else {
+ self.hide(open_modals, settings.css.close, settings);
+ }
+ }
+ },
+
+ close_targets : function () {
+ var base = '.' + this.settings.dismiss_modal_class;
+
+ if (this.settings.close_on_background_click) {
+ return base + ', .' + this.settings.bg_class;
+ }
+
+ return base;
+ },
+
+ toggle_bg : function (modal, state) {
+ if (this.S('.' + this.settings.bg_class).length === 0) {
+ this.settings.bg = $('<div />', {'class': this.settings.bg_class})
+ .appendTo('body').hide();
+ }
+
+ var visible = this.settings.bg.filter(':visible').length > 0;
+ if ( state != visible ) {
+ if ( state == undefined ? visible : !state ) {
+ this.hide(this.settings.bg);
+ } else {
+ this.show(this.settings.bg);
+ }
+ }
+ },
+
+ show : function (el, css) {
+ // is modal
+ if (css) {
+ var settings = el.data(this.attr_name(true) + '-init') || this.settings,
+ root_element = settings.root_element,
+ context = this;
+
+ if (el.parent(root_element).length === 0) {
+ var placeholder = el.wrap('<div style="display: none;" />').parent();
+
+ el.on('closed.fndtn.reveal.wrapped', function () {
+ el.detach().appendTo(placeholder);
+ el.unwrap().unbind('closed.fndtn.reveal.wrapped');
+ });
+
+ el.detach().appendTo(root_element);
+ }
+
+ var animData = getAnimationData(settings.animation);
+ if (!animData.animate) {
+ this.locked = false;
+ }
+ if (animData.pop) {
+ css.top = $(window).scrollTop() - el.data('offset') + 'px';
+ var end_css = {
+ top: $(window).scrollTop() + el.data('css-top') + 'px',
+ opacity: 1
+ };
+
+ return setTimeout(function () {
+ return el
+ .css(css)
+ .animate(end_css, settings.animation_speed, 'linear', function () {
+ context.locked = false;
+ el.trigger('opened.fndtn.reveal');
+ })
+ .addClass('open');
+ }, settings.animation_speed / 2);
+ }
+
+ css.top = $(window).scrollTop() + el.data('css-top') + 'px';
+
+ if (animData.fade) {
+ var end_css = {opacity: 1};
+
+ return setTimeout(function () {
+ return el
+ .css(css)
+ .animate(end_css, settings.animation_speed, 'linear', function () {
+ context.locked = false;
+ el.trigger('opened.fndtn.reveal');
+ })
+ .addClass('open');
+ }, settings.animation_speed / 2);
+ }
+
+ return el.css(css).show().css({opacity : 1}).addClass('open').trigger('opened.fndtn.reveal');
+ }
+
+ var settings = this.settings;
+
+ // should we animate the background?
+ if (getAnimationData(settings.animation).fade) {
+ return el.fadeIn(settings.animation_speed / 2);
+ }
+
+ this.locked = false;
+
+ return el.show();
+ },
+
+ to_back : function(el) {
+ el.addClass('toback');
+ },
+
+ to_front : function(el) {
+ el.removeClass('toback');
+ },
+
+ hide : function (el, css) {
+ // is modal
+ if (css) {
+ var settings = el.data(this.attr_name(true) + '-init'),
+ context = this;
+ settings = settings || this.settings;
+
+ var animData = getAnimationData(settings.animation);
+ if (!animData.animate) {
+ this.locked = false;
+ }
+ if (animData.pop) {
+ var end_css = {
+ top: - $(window).scrollTop() - el.data('offset') + 'px',
+ opacity: 0
+ };
+
+ return setTimeout(function () {
+ return el
+ .animate(end_css, settings.animation_speed, 'linear', function () {
+ context.locked = false;
+ el.css(css).trigger('closed.fndtn.reveal');
+ })
+ .removeClass('open');
+ }, settings.animation_speed / 2);
+ }
+
+ if (animData.fade) {
+ var end_css = {opacity : 0};
+
+ return setTimeout(function () {
+ return el
+ .animate(end_css, settings.animation_speed, 'linear', function () {
+ context.locked = false;
+ el.css(css).trigger('closed.fndtn.reveal');
+ })
+ .removeClass('open');
+ }, settings.animation_speed / 2);
+ }
+
+ return el.hide().css(css).removeClass('open').trigger('closed.fndtn.reveal');
+ }
+
+ var settings = this.settings;
+
+ // should we animate the background?
+ if (getAnimationData(settings.animation).fade) {
+ return el.fadeOut(settings.animation_speed / 2);
+ }
+
+ return el.hide();
+ },
+
+ close_video : function (e) {
+ var video = $('.flex-video', e.target),
+ iframe = $('iframe', video);
+
+ if (iframe.length > 0) {
+ iframe.attr('data-src', iframe[0].src);
+ iframe.attr('src', iframe.attr('src'));
+ video.hide();
+ }
+ },
+
+ open_video : function (e) {
+ var video = $('.flex-video', e.target),
+ iframe = video.find('iframe');
+
+ if (iframe.length > 0) {
+ var data_src = iframe.attr('data-src');
+ if (typeof data_src === 'string') {
+ iframe[0].src = iframe.attr('data-src');
+ } else {
+ var src = iframe[0].src;
+ iframe[0].src = undefined;
+ iframe[0].src = src;
+ }
+ video.show();
+ }
+ },
+
+ data_attr : function (str) {
+ if (this.namespace.length > 0) {
+ return this.namespace + '-' + str;
+ }
+
+ return str;
+ },
+
+ cache_offset : function (modal) {
+ var offset = modal.show().height() + parseInt(modal.css('top'), 10) + modal.scrollY;
+
+ modal.hide();
+
+ return offset;
+ },
+
+ off : function () {
+ $(this.scope).off('.fndtn.reveal');
+ },
+
+ reflow : function () {}
+ };
+
+ /*
+ * getAnimationData('popAndFade') // {animate: true, pop: true, fade: true}
+ * getAnimationData('fade') // {animate: true, pop: false, fade: true}
+ * getAnimationData('pop') // {animate: true, pop: true, fade: false}
+ * getAnimationData('foo') // {animate: false, pop: false, fade: false}
+ * getAnimationData(null) // {animate: false, pop: false, fade: false}
+ */
+ function getAnimationData(str) {
+ var fade = /fade/i.test(str);
+ var pop = /pop/i.test(str);
+ return {
+ animate : fade || pop,
+ pop : pop,
+ fade : fade
+ };
+ }
+}(jQuery, window, window.document));
+
+;(function ($, window, document, undefined) {
+ 'use strict';
+
+ Foundation.libs.slider = {
+ name : 'slider',
+
+ version : '5.5.3',
+
+ settings : {
+ start : 0,
+ end : 100,
+ step : 1,
+ precision : 2,
+ initial : null,
+ display_selector : '',
+ vertical : false,
+ trigger_input_change : false,
+ on_change : function () {}
+ },
+
+ cache : {},
+
+ init : function (scope, method, options) {
+ Foundation.inherit(this, 'throttle');
+ this.bindings(method, options);
+ this.reflow();
+ },
+
+ events : function () {
+ var self = this;
+ $(this.scope)
+ .off('.slider')
+ .on('mousedown.fndtn.slider touchstart.fndtn.slider pointerdown.fndtn.slider',
+ '[' + self.attr_name() + ']:not(.disabled, [disabled]) .range-slider-handle', function (e) {
+ if (!self.cache.active) {
+ e.preventDefault();
+ self.set_active_slider($(e.target));
+ }
+ })
+ .on('mousemove.fndtn.slider touchmove.fndtn.slider pointermove.fndtn.slider', function (e) {
+ if (!!self.cache.active) {
+ e.preventDefault();
+ if ($.data(self.cache.active[0], 'settings').vertical) {
+ var scroll_offset = 0;
+ if (!e.pageY) {
+ scroll_offset = window.scrollY;
+ }
+ self.calculate_position(self.cache.active, self.get_cursor_position(e, 'y') + scroll_offset);
+ } else {
+ self.calculate_position(self.cache.active, self.get_cursor_position(e, 'x'));
+ }
+ }
+ })
+ .on('mouseup.fndtn.slider touchend.fndtn.slider pointerup.fndtn.slider', function (e) {
+ if(!self.cache.active) {
+ // if the user has just clicked into the slider without starting to drag the handle
+ var slider = $(e.target).attr('role') === 'slider' ? $(e.target) : $(e.target).closest('.range-slider').find("[role='slider']");
+
+ if (slider.length && (!slider.parent().hasClass('disabled') && !slider.parent().attr('disabled'))) {
+ self.set_active_slider(slider);
+ if ($.data(self.cache.active[0], 'settings').vertical) {
+ var scroll_offset = 0;
+ if (!e.pageY) {
+ scroll_offset = window.scrollY;
+ }
+ self.calculate_position(self.cache.active, self.get_cursor_position(e, 'y') + scroll_offset);
+ } else {
+ self.calculate_position(self.cache.active, self.get_cursor_position(e, 'x'));
+ }
+ }
+ }
+ self.remove_active_slider();
+ })
+ .on('change.fndtn.slider', function (e) {
+ self.settings.on_change();
+ });
+
+ self.S(window)
+ .on('resize.fndtn.slider', self.throttle(function (e) {
+ self.reflow();
+ }, 300));
+
+ // update slider value as users change input value
+ this.S('[' + this.attr_name() + ']').each(function () {
+ var slider = $(this),
+ handle = slider.children('.range-slider-handle')[0],
+ settings = self.initialize_settings(handle);
+
+ if (settings.display_selector != '') {
+ $(settings.display_selector).each(function(){
+ if ($(this).attr('value')) {
+ $(this).off('change').on('change', function () {
+ slider.foundation("slider", "set_value", $(this).val());
+ });
+ }
+ });
+ }
+ });
+ },
+
+ get_cursor_position : function (e, xy) {
+ var pageXY = 'page' + xy.toUpperCase(),
+ clientXY = 'client' + xy.toUpperCase(),
+ position;
+
+ if (typeof e[pageXY] !== 'undefined') {
+ position = e[pageXY];
+ } else if (typeof e.originalEvent[clientXY] !== 'undefined') {
+ position = e.originalEvent[clientXY];
+ } else if (e.originalEvent.touches && e.originalEvent.touches[0] && typeof e.originalEvent.touches[0][clientXY] !== 'undefined') {
+ position = e.originalEvent.touches[0][clientXY];
+ } else if (e.currentPoint && typeof e.currentPoint[xy] !== 'undefined') {
+ position = e.currentPoint[xy];
+ }
+
+ return position;
+ },
+
+ set_active_slider : function ($handle) {
+ this.cache.active = $handle;
+ },
+
+ remove_active_slider : function () {
+ this.cache.active = null;
+ },
+
+ calculate_position : function ($handle, cursor_x) {
+ var self = this,
+ settings = $.data($handle[0], 'settings'),
+ handle_l = $.data($handle[0], 'handle_l'),
+ handle_o = $.data($handle[0], 'handle_o'),
+ bar_l = $.data($handle[0], 'bar_l'),
+ bar_o = $.data($handle[0], 'bar_o');
+
+ requestAnimationFrame(function () {
+ var pct;
+
+ if (Foundation.rtl && !settings.vertical) {
+ pct = self.limit_to(((bar_o + bar_l - cursor_x) / bar_l), 0, 1);
+ } else {
+ pct = self.limit_to(((cursor_x - bar_o) / bar_l), 0, 1);
+ }
+
+ pct = settings.vertical ? 1 - pct : pct;
+
+ var norm = self.normalized_value(pct, settings.start, settings.end, settings.step, settings.precision);
+
+ self.set_ui($handle, norm);
+ });
+ },
+
+ set_ui : function ($handle, value) {
+ var settings = $.data($handle[0], 'settings'),
+ handle_l = $.data($handle[0], 'handle_l'),
+ bar_l = $.data($handle[0], 'bar_l'),
+ norm_pct = this.normalized_percentage(value, settings.start, settings.end),
+ handle_offset = norm_pct * (bar_l - handle_l) - 1,
+ progress_bar_length = norm_pct * 100,
+ $handle_parent = $handle.parent(),
+ $hidden_inputs = $handle.parent().children('input[type=hidden]');
+
+ if (Foundation.rtl && !settings.vertical) {
+ handle_offset = -handle_offset;
+ }
+
+ handle_offset = settings.vertical ? -handle_offset + bar_l - handle_l + 1 : handle_offset;
+ this.set_translate($handle, handle_offset, settings.vertical);
+
+ if (settings.vertical) {
+ $handle.siblings('.range-slider-active-segment').css('height', progress_bar_length + '%');
+ } else {
+ $handle.siblings('.range-slider-active-segment').css('width', progress_bar_length + '%');
+ }
+
+ $handle_parent.attr(this.attr_name(), value).trigger('change.fndtn.slider');
+
+ $hidden_inputs.val(value);
+ if (settings.trigger_input_change) {
+ $hidden_inputs.trigger('change.fndtn.slider');
+ }
+
+ if (!$handle[0].hasAttribute('aria-valuemin')) {
+ $handle.attr({
+ 'aria-valuemin' : settings.start,
+ 'aria-valuemax' : settings.end
+ });
+ }
+ $handle.attr('aria-valuenow', value);
+
+ if (settings.display_selector != '') {
+ $(settings.display_selector).each(function () {
+ if (this.hasAttribute('value')) {
+ $(this).val(value);
+ } else {
+ $(this).text(value);
+ }
+ });
+ }
+
+ },
+
+ normalized_percentage : function (val, start, end) {
+ return Math.min(1, (val - start) / (end - start));
+ },
+
+ normalized_value : function (val, start, end, step, precision) {
+ var range = end - start,
+ point = val * range,
+ mod = (point - (point % step)) / step,
+ rem = point % step,
+ round = ( rem >= step * 0.5 ? step : 0);
+ return ((mod * step + round) + start).toFixed(precision);
+ },
+
+ set_translate : function (ele, offset, vertical) {
+ if (vertical) {
+ $(ele)
+ .css('-webkit-transform', 'translateY(' + offset + 'px)')
+ .css('-moz-transform', 'translateY(' + offset + 'px)')
+ .css('-ms-transform', 'translateY(' + offset + 'px)')
+ .css('-o-transform', 'translateY(' + offset + 'px)')
+ .css('transform', 'translateY(' + offset + 'px)');
+ } else {
+ $(ele)
+ .css('-webkit-transform', 'translateX(' + offset + 'px)')
+ .css('-moz-transform', 'translateX(' + offset + 'px)')
+ .css('-ms-transform', 'translateX(' + offset + 'px)')
+ .css('-o-transform', 'translateX(' + offset + 'px)')
+ .css('transform', 'translateX(' + offset + 'px)');
+ }
+ },
+
+ limit_to : function (val, min, max) {
+ return Math.min(Math.max(val, min), max);
+ },
+
+ initialize_settings : function (handle) {
+ var settings = $.extend({}, this.settings, this.data_options($(handle).parent())),
+ decimal_places_match_result;
+
+ if (settings.precision === null) {
+ decimal_places_match_result = ('' + settings.step).match(/\.([\d]*)/);
+ settings.precision = decimal_places_match_result && decimal_places_match_result[1] ? decimal_places_match_result[1].length : 0;
+ }
+
+ if (settings.vertical) {
+ $.data(handle, 'bar_o', $(handle).parent().offset().top);
+ $.data(handle, 'bar_l', $(handle).parent().outerHeight());
+ $.data(handle, 'handle_o', $(handle).offset().top);
+ $.data(handle, 'handle_l', $(handle).outerHeight());
+ } else {
+ $.data(handle, 'bar_o', $(handle).parent().offset().left);
+ $.data(handle, 'bar_l', $(handle).parent().outerWidth());
+ $.data(handle, 'handle_o', $(handle).offset().left);
+ $.data(handle, 'handle_l', $(handle).outerWidth());
+ }
+
+ $.data(handle, 'bar', $(handle).parent());
+ return $.data(handle, 'settings', settings);
+ },
+
+ set_initial_position : function ($ele) {
+ var settings = $.data($ele.children('.range-slider-handle')[0], 'settings'),
+ initial = ((typeof settings.initial == 'number' && !isNaN(settings.initial)) ? settings.initial : Math.floor((settings.end - settings.start) * 0.5 / settings.step) * settings.step + settings.start),
+ $handle = $ele.children('.range-slider-handle');
+ this.set_ui($handle, initial);
+ },
+
+ set_value : function (value) {
+ var self = this;
+ $('[' + self.attr_name() + ']', this.scope).each(function () {
+ $(this).attr(self.attr_name(), value);
+ });
+ if (!!$(this.scope).attr(self.attr_name())) {
+ $(this.scope).attr(self.attr_name(), value);
+ }
+ self.reflow();
+ },
+
+ reflow : function () {
+ var self = this;
+ self.S('[' + this.attr_name() + ']').each(function () {
+ var handle = $(this).children('.range-slider-handle')[0],
+ val = $(this).attr(self.attr_name());
+ self.initialize_settings(handle);
+
+ if (val) {
+ self.set_ui($(handle), parseFloat(val));
+ } else {
+ self.set_initial_position($(this));
+ }
+ });
+ }
+ };
+
+}(jQuery, window, window.document));
+
+;(function ($, window, document, undefined) {
+ 'use strict';
+
+ Foundation.libs.tab = {
+ name : 'tab',
+
+ version : '5.5.3',
+
+ settings : {
+ active_class : 'active',
+ callback : function () {},
+ deep_linking : false,
+ scroll_to_content : true,
+ is_hover : false
+ },
+
+ default_tab_hashes : [],
+
+ init : function (scope, method, options) {
+ var self = this,
+ S = this.S;
+
+ // Store the default active tabs which will be referenced when the
+ // location hash is absent, as in the case of navigating the tabs and
+ // returning to the first viewing via the browser Back button.
+ S('[' + this.attr_name() + '] > .active > a', this.scope).each(function () {
+ self.default_tab_hashes.push(this.hash);
+ });
+
+ this.bindings(method, options);
+ this.handle_location_hash_change();
+ },
+
+ events : function () {
+ var self = this,
+ S = this.S;
+
+ var usual_tab_behavior = function (e, target) {
+ var settings = S(target).closest('[' + self.attr_name() + ']').data(self.attr_name(true) + '-init');
+ if (!settings.is_hover || Modernizr.touch) {
+ // if user did not pressed tab key, prevent default action
+ var keyCode = e.keyCode || e.which;
+ if (keyCode !== 9) {
+ e.preventDefault();
+ e.stopPropagation();
+ }
+ self.toggle_active_tab(S(target).parent());
+
+ }
+ };
+
+ S(this.scope)
+ .off('.tab')
+ // Key event: focus/tab key
+ .on('keydown.fndtn.tab', '[' + this.attr_name() + '] > * > a', function(e) {
+ var keyCode = e.keyCode || e.which;
+ // if user pressed tab key
+ if (keyCode === 13 || keyCode === 32) { // enter or space
+ var el = this;
+ usual_tab_behavior(e, el);
+ }
+ })
+ // Click event: tab title
+ .on('click.fndtn.tab', '[' + this.attr_name() + '] > * > a', function(e) {
+ var el = this;
+ usual_tab_behavior(e, el);
+ })
+ // Hover event: tab title
+ .on('mouseenter.fndtn.tab', '[' + this.attr_name() + '] > * > a', function (e) {
+ var settings = S(this).closest('[' + self.attr_name() + ']').data(self.attr_name(true) + '-init');
+ if (settings.is_hover) {
+ self.toggle_active_tab(S(this).parent());
+ }
+ });
+
+ // Location hash change event
+ S(window).on('hashchange.fndtn.tab', function (e) {
+ e.preventDefault();
+ self.handle_location_hash_change();
+ });
+ },
+
+ handle_location_hash_change : function () {
+
+ var self = this,
+ S = this.S;
+
+ S('[' + this.attr_name() + ']', this.scope).each(function () {
+ var settings = S(this).data(self.attr_name(true) + '-init');
+ if (settings.deep_linking) {
+ // Match the location hash to a label
+ var hash;
+ if (settings.scroll_to_content) {
+ hash = self.scope.location.hash;
+ } else {
+ // prefix the hash to prevent anchor scrolling
+ hash = self.scope.location.hash.replace('fndtn-', '');
+ }
+ if (hash != '') {
+ // Check whether the location hash references a tab content div or
+ // another element on the page (inside or outside the tab content div)
+ var hash_element = S(hash);
+ if (hash_element.hasClass('content') && hash_element.parent().hasClass('tabs-content')) {
+ // Tab content div
+ self.toggle_active_tab($('[' + self.attr_name() + '] > * > a[href=' + hash + ']').parent());
+ } else {
+ // Not the tab content div. If inside the tab content, find the
+ // containing tab and toggle it as active.
+ var hash_tab_container_id = hash_element.closest('.content').attr('id');
+ if (hash_tab_container_id != undefined) {
+ self.toggle_active_tab($('[' + self.attr_name() + '] > * > a[href=#' + hash_tab_container_id + ']').parent(), hash);
+ }
+ }
+ } else {
+ // Reference the default tab hashes which were initialized in the init function
+ for (var ind = 0; ind < self.default_tab_hashes.length; ind++) {
+ self.toggle_active_tab($('[' + self.attr_name() + '] > * > a[href=' + self.default_tab_hashes[ind] + ']').parent());
+ }
+ }
+ }
+ });
+ },
+
+ toggle_active_tab : function (tab, location_hash) {
+ var self = this,
+ S = self.S,
+ tabs = tab.closest('[' + this.attr_name() + ']'),
+ tab_link = tab.find('a'),
+ anchor = tab.children('a').first(),
+ target_hash = '#' + anchor.attr('href').split('#')[1],
+ target = S(target_hash),
+ siblings = tab.siblings(),
+ settings = tabs.data(this.attr_name(true) + '-init'),
+ interpret_keyup_action = function (e) {
+ // Light modification of Heydon Pickering's Practical ARIA Examples: http://heydonworks.com/practical_aria_examples/js/a11y.js
+
+ // define current, previous and next (possible) tabs
+
+ var $original = $(this);
+ var $prev = $(this).parents('li').prev().children('[role="tab"]');
+ var $next = $(this).parents('li').next().children('[role="tab"]');
+ var $target;
+
+ // find the direction (prev or next)
+
+ switch (e.keyCode) {
+ case 37:
+ $target = $prev;
+ break;
+ case 39:
+ $target = $next;
+ break;
+ default:
+ $target = false
+ break;
+ }
+
+ if ($target.length) {
+ $original.attr({
+ 'tabindex' : '-1',
+ 'aria-selected' : null
+ });
+ $target.attr({
+ 'tabindex' : '0',
+ 'aria-selected' : true
+ }).focus();
+ }
+
+ // Hide panels
+
+ $('[role="tabpanel"]')
+ .attr('aria-hidden', 'true');
+
+ // Show panel which corresponds to target
+
+ $('#' + $(document.activeElement).attr('href').substring(1))
+ .attr('aria-hidden', null);
+
+ },
+ go_to_hash = function(hash) {
+ // This function allows correct behaviour of the browser's back button when deep linking is enabled. Without it
+ // the user would get continually redirected to the default hash.
+ var default_hash = settings.scroll_to_content ? self.default_tab_hashes[0] : 'fndtn-' + self.default_tab_hashes[0].replace('#', '');
+
+ if (hash !== default_hash || window.location.hash) {
+ window.location.hash = hash;
+ }
+ };
+
+ // allow usage of data-tab-content attribute instead of href
+ if (anchor.data('tab-content')) {
+ target_hash = '#' + anchor.data('tab-content').split('#')[1];
+ target = S(target_hash);
+ }
+
+ if (settings.deep_linking) {
+
+ if (settings.scroll_to_content) {
+
+ // retain current hash to scroll to content
+ go_to_hash(location_hash || target_hash);
+
+ if (location_hash == undefined || location_hash == target_hash) {
+ tab.parent()[0].scrollIntoView();
+ } else {
+ S(target_hash)[0].scrollIntoView();
+ }
+ } else {
+ // prefix the hashes so that the browser doesn't scroll down
+ if (location_hash != undefined) {
+ go_to_hash('fndtn-' + location_hash.replace('#', ''));
+ } else {
+ go_to_hash('fndtn-' + target_hash.replace('#', ''));
+ }
+ }
+ }
+
+ // WARNING: The activation and deactivation of the tab content must
+ // occur after the deep linking in order to properly refresh the browser
+ // window (notably in Chrome).
+ // Clean up multiple attr instances to done once
+ tab.addClass(settings.active_class).triggerHandler('opened');
+ tab_link.attr({'aria-selected' : 'true', tabindex : 0});
+ siblings.removeClass(settings.active_class)
+ siblings.find('a').attr({'aria-selected' : 'false'/*, tabindex : -1*/});
+ target.siblings().removeClass(settings.active_class).attr({'aria-hidden' : 'true'/*, tabindex : -1*/});
+ target.addClass(settings.active_class).attr('aria-hidden', 'false').removeAttr('tabindex');
+ settings.callback(tab);
+ target.triggerHandler('toggled', [target]);
+ tabs.triggerHandler('toggled', [tab]);
+
+ tab_link.off('keydown').on('keydown', interpret_keyup_action );
+ },
+
+ data_attr : function (str) {
+ if (this.namespace.length > 0) {
+ return this.namespace + '-' + str;
+ }
+
+ return str;
+ },
+
+ off : function () {},
+
+ reflow : function () {}
+ };
+}(jQuery, window, window.document));
+
+;(function ($, window, document, undefined) {
+ 'use strict';
+
+ Foundation.libs.tooltip = {
+ name : 'tooltip',
+
+ version : '5.5.3',
+
+ settings : {
+ additional_inheritable_classes : [],
+ tooltip_class : '.tooltip',
+ append_to : 'body',
+ touch_close_text : 'Tap To Close',
+ disable_for_touch : false,
+ hover_delay : 200,
+ fade_in_duration : 150,
+ fade_out_duration : 150,
+ show_on : 'all',
+ tip_template : function (selector, content) {
+ return '<span data-selector="' + selector + '" id="' + selector + '" class="'
+ + Foundation.libs.tooltip.settings.tooltip_class.substring(1)
+ + '" role="tooltip">' + content + '<span class="nub"></span></span>';
+ }
+ },
+
+ cache : {},
+
+ init : function (scope, method, options) {
+ Foundation.inherit(this, 'random_str');
+ this.bindings(method, options);
+ },
+
+ should_show : function (target, tip) {
+ var settings = $.extend({}, this.settings, this.data_options(target));
+
+ if (settings.show_on === 'all') {
+ return true;
+ } else if (this.small() && settings.show_on === 'small') {
+ return true;
+ } else if (this.medium() && settings.show_on === 'medium') {
+ return true;
+ } else if (this.large() && settings.show_on === 'large') {
+ return true;
+ }
+ return false;
+ },
+
+ medium : function () {
+ return matchMedia(Foundation.media_queries['medium']).matches;
+ },
+
+ large : function () {
+ return matchMedia(Foundation.media_queries['large']).matches;
+ },
+
+ events : function (instance) {
+ var self = this,
+ S = self.S;
+
+ self.create(this.S(instance));
+
+ function _startShow(elt, $this, immediate) {
+ if (elt.timer) {
+ return;
+ }
+
+ if (immediate) {
+ elt.timer = null;
+ self.showTip($this);
+ } else {
+ elt.timer = setTimeout(function () {
+ elt.timer = null;
+ self.showTip($this);
+ }.bind(elt), self.settings.hover_delay);
+ }
+ }
+
+ function _startHide(elt, $this) {
+ if (elt.timer) {
+ clearTimeout(elt.timer);
+ elt.timer = null;
+ }
+
+ self.hide($this);
+ }
+
+ $(this.scope)
+ .off('.tooltip')
+ .on('mouseenter.fndtn.tooltip mouseleave.fndtn.tooltip touchstart.fndtn.tooltip MSPointerDown.fndtn.tooltip',
+ '[' + this.attr_name() + ']', function (e) {
+ var $this = S(this),
+ settings = $.extend({}, self.settings, self.data_options($this)),
+ is_touch = false;
+
+ if (Modernizr.touch && /touchstart|MSPointerDown/i.test(e.type) && S(e.target).is('a')) {
+ return false;
+ }
+
+ if (/mouse/i.test(e.type) && self.ie_touch(e)) {
+ return false;
+ }
+
+ if ($this.hasClass('open')) {
+ if (Modernizr.touch && /touchstart|MSPointerDown/i.test(e.type)) {
+ e.preventDefault();
+ }
+ self.hide($this);
+ } else {
+ if (settings.disable_for_touch && Modernizr.touch && /touchstart|MSPointerDown/i.test(e.type)) {
+ return;
+ } else if (!settings.disable_for_touch && Modernizr.touch && /touchstart|MSPointerDown/i.test(e.type)) {
+ e.preventDefault();
+ S(settings.tooltip_class + '.open').hide();
+ is_touch = true;
+ // close other open tooltips on touch
+ if ($('.open[' + self.attr_name() + ']').length > 0) {
+ var prevOpen = S($('.open[' + self.attr_name() + ']')[0]);
+ self.hide(prevOpen);
+ }
+ }
+
+ if (/enter|over/i.test(e.type)) {
+ _startShow(this, $this);
+
+ } else if (e.type === 'mouseout' || e.type === 'mouseleave') {
+ _startHide(this, $this);
+ } else {
+ _startShow(this, $this, true);
+ }
+ }
+ })
+ .on('mouseleave.fndtn.tooltip touchstart.fndtn.tooltip MSPointerDown.fndtn.tooltip', '[' + this.attr_name() + '].open', function (e) {
+ if (/mouse/i.test(e.type) && self.ie_touch(e)) {
+ return false;
+ }
+
+ if ($(this).data('tooltip-open-event-type') == 'touch' && e.type == 'mouseleave') {
+ return;
+ } else if ($(this).data('tooltip-open-event-type') == 'mouse' && /MSPointerDown|touchstart/i.test(e.type)) {
+ self.convert_to_touch($(this));
+ } else {
+ _startHide(this, $(this));
+ }
+ })
+ .on('DOMNodeRemoved DOMAttrModified', '[' + this.attr_name() + ']:not(a)', function (e) {
+ _startHide(this, S(this));
+ });
+ },
+
+ ie_touch : function (e) {
+ // How do I distinguish between IE11 and Windows Phone 8?????
+ return false;
+ },
+
+ showTip : function ($target) {
+ var $tip = this.getTip($target);
+ if (this.should_show($target, $tip)) {
+ return this.show($target);
+ }
+ return;
+ },
+
+ getTip : function ($target) {
+ var selector = this.selector($target),
+ settings = $.extend({}, this.settings, this.data_options($target)),
+ tip = null;
+
+ if (selector) {
+ tip = this.S('span[data-selector="' + selector + '"]' + settings.tooltip_class);
+ }
+
+ return (typeof tip === 'object') ? tip : false;
+ },
+
+ selector : function ($target) {
+ var dataSelector = $target.attr(this.attr_name()) || $target.attr('data-selector');
+
+ if (typeof dataSelector != 'string') {
+ dataSelector = this.random_str(6);
+ $target
+ .attr('data-selector', dataSelector)
+ .attr('aria-describedby', dataSelector);
+ }
+
+ return dataSelector;
+ },
+
+ create : function ($target) {
+ var self = this,
+ settings = $.extend({}, this.settings, this.data_options($target)),
+ tip_template = this.settings.tip_template;
+
+ if (typeof settings.tip_template === 'string' && window.hasOwnProperty(settings.tip_template)) {
+ tip_template = window[settings.tip_template];
+ }
+
+ var $tip = $(tip_template(this.selector($target), $('<div></div>').html($target.attr('title')).html())),
+ classes = this.inheritable_classes($target);
+
+ $tip.addClass(classes).appendTo(settings.append_to);
+
+ if (Modernizr.touch) {
+ $tip.append('<span class="tap-to-close">' + settings.touch_close_text + '</span>');
+ $tip.on('touchstart.fndtn.tooltip MSPointerDown.fndtn.tooltip', function (e) {
+ self.hide($target);
+ });
+ }
+
+ $target.removeAttr('title').attr('title', '');
+ },
+
+ reposition : function (target, tip, classes) {
+ var width, nub, nubHeight, nubWidth, objPos;
+
+ tip.css('visibility', 'hidden').show();
+
+ width = target.data('width');
+ nub = tip.children('.nub');
+ nubHeight = nub.outerHeight();
+ nubWidth = nub.outerWidth();
+
+ if (this.small()) {
+ tip.css({'width' : '100%'});
+ } else {
+ tip.css({'width' : (width) ? width : 'auto'});
+ }
+
+ objPos = function (obj, top, right, bottom, left, width) {
+ return obj.css({
+ 'top' : (top) ? top : 'auto',
+ 'bottom' : (bottom) ? bottom : 'auto',
+ 'left' : (left) ? left : 'auto',
+ 'right' : (right) ? right : 'auto'
+ }).end();
+ };
+
+ var o_top = target.offset().top;
+ var o_left = target.offset().left;
+ var outerHeight = target.outerHeight();
+
+ objPos(tip, (o_top + outerHeight + 10), 'auto', 'auto', o_left);
+
+ if (this.small()) {
+ objPos(tip, (o_top + outerHeight + 10), 'auto', 'auto', 12.5, $(this.scope).width());
+ tip.addClass('tip-override');
+ objPos(nub, -nubHeight, 'auto', 'auto', o_left);
+ } else {
+
+ if (Foundation.rtl) {
+ nub.addClass('rtl');
+ o_left = o_left + target.outerWidth() - tip.outerWidth();
+ }
+
+ objPos(tip, (o_top + outerHeight + 10), 'auto', 'auto', o_left);
+ // reset nub from small styles, if they've been applied
+ if (nub.attr('style')) {
+ nub.removeAttr('style');
+ }
+
+ tip.removeClass('tip-override');
+
+ var tip_outerHeight = tip.outerHeight();
+
+ if (classes && classes.indexOf('tip-top') > -1) {
+ if (Foundation.rtl) {
+ nub.addClass('rtl');
+ }
+ objPos(tip, (o_top - tip_outerHeight), 'auto', 'auto', o_left)
+ .removeClass('tip-override');
+ } else if (classes && classes.indexOf('tip-left') > -1) {
+ objPos(tip, (o_top + (outerHeight / 2) - (tip_outerHeight / 2)), 'auto', 'auto', (o_left - tip.outerWidth() - nubHeight))
+ .removeClass('tip-override');
+ nub.removeClass('rtl');
+ } else if (classes && classes.indexOf('tip-right') > -1) {
+ objPos(tip, (o_top + (outerHeight / 2) - (tip_outerHeight / 2)), 'auto', 'auto', (o_left + target.outerWidth() + nubHeight))
+ .removeClass('tip-override');
+ nub.removeClass('rtl');
+ }
+ }
+
+ tip.css('visibility', 'visible').hide();
+ },
+
+ small : function () {
+ return matchMedia(Foundation.media_queries.small).matches &&
+ !matchMedia(Foundation.media_queries.medium).matches;
+ },
+
+ inheritable_classes : function ($target) {
+ var settings = $.extend({}, this.settings, this.data_options($target)),
+ inheritables = ['tip-top', 'tip-left', 'tip-bottom', 'tip-right', 'radius', 'round'].concat(settings.additional_inheritable_classes),
+ classes = $target.attr('class'),
+ filtered = classes ? $.map(classes.split(' '), function (el, i) {
+ if ($.inArray(el, inheritables) !== -1) {
+ return el;
+ }
+ }).join(' ') : '';
+
+ return $.trim(filtered);
+ },
+
+ convert_to_touch : function ($target) {
+ var self = this,
+ $tip = self.getTip($target),
+ settings = $.extend({}, self.settings, self.data_options($target));
+
+ if ($tip.find('.tap-to-close').length === 0) {
+ $tip.append('<span class="tap-to-close">' + settings.touch_close_text + '</span>');
+ $tip.on('click.fndtn.tooltip.tapclose touchstart.fndtn.tooltip.tapclose MSPointerDown.fndtn.tooltip.tapclose', function (e) {
+ self.hide($target);
+ });
+ }
+
+ $target.data('tooltip-open-event-type', 'touch');
+ },
+
+ show : function ($target) {
+ var $tip = this.getTip($target);
+ if ($target.data('tooltip-open-event-type') == 'touch') {
+ this.convert_to_touch($target);
+ }
+
+ this.reposition($target, $tip, $target.attr('class'));
+ $target.addClass('open');
+ $tip.fadeIn(this.settings.fade_in_duration);
+ },
+
+ hide : function ($target) {
+ var $tip = this.getTip($target);
+
+ $tip.fadeOut(this.settings.fade_out_duration, function () {
+ $tip.find('.tap-to-close').remove();
+ $tip.off('click.fndtn.tooltip.tapclose MSPointerDown.fndtn.tapclose');
+ $target.removeClass('open');
+ });
+ },
+
+ off : function () {
+ var self = this;
+ this.S(this.scope).off('.fndtn.tooltip');
+ this.S(this.settings.tooltip_class).each(function (i) {
+ $('[' + self.attr_name() + ']').eq(i).attr('title', $(this).text());
+ }).remove();
+ },
+
+ reflow : function () {}
+ };
+}(jQuery, window, window.document));
+
+;(function ($, window, document, undefined) {
+ 'use strict';
+
+ Foundation.libs.topbar = {
+ name : 'topbar',
+
+ version : '5.5.3',
+
+ settings : {
+ index : 0,
+ start_offset : 0,
+ sticky_class : 'sticky',
+ custom_back_text : true,
+ back_text : 'Back',
+ mobile_show_parent_link : true,
+ is_hover : true,
+ scrolltop : true, // jump to top when sticky nav menu toggle is clicked
+ sticky_on : 'all',
+ dropdown_autoclose: true
+ },
+
+ init : function (section, method, options) {
+ Foundation.inherit(this, 'add_custom_rule register_media throttle');
+ var self = this;
+
+ self.register_media('topbar', 'foundation-mq-topbar');
+
+ this.bindings(method, options);
+
+ self.S('[' + this.attr_name() + ']', this.scope).each(function () {
+ var topbar = $(this),
+ settings = topbar.data(self.attr_name(true) + '-init'),
+ section = self.S('section, .top-bar-section', this);
+ topbar.data('index', 0);
+ var topbarContainer = topbar.parent();
+ if (topbarContainer.hasClass('fixed') || self.is_sticky(topbar, topbarContainer, settings) ) {
+ self.settings.sticky_class = settings.sticky_class;
+ self.settings.sticky_topbar = topbar;
+ topbar.data('height', topbarContainer.outerHeight());
+ topbar.data('stickyoffset', topbarContainer.offset().top);
+ } else {
+ topbar.data('height', topbar.outerHeight());
+ }
+
+ if (!settings.assembled) {
+ self.assemble(topbar);
+ }
+
+ if (settings.is_hover) {
+ self.S('.has-dropdown', topbar).addClass('not-click');
+ } else {
+ self.S('.has-dropdown', topbar).removeClass('not-click');
+ }
+
+ // Pad body when sticky (scrolled) or fixed.
+ self.add_custom_rule('.f-topbar-fixed { padding-top: ' + topbar.data('height') + 'px }');
+
+ if (topbarContainer.hasClass('fixed')) {
+ self.S('body').addClass('f-topbar-fixed');
+ }
+ });
+
+ },
+
+ is_sticky : function (topbar, topbarContainer, settings) {
+ var sticky = topbarContainer.hasClass(settings.sticky_class);
+ var smallMatch = matchMedia(Foundation.media_queries.small).matches;
+ var medMatch = matchMedia(Foundation.media_queries.medium).matches;
+ var lrgMatch = matchMedia(Foundation.media_queries.large).matches;
+
+ if (sticky && settings.sticky_on === 'all') {
+ return true;
+ }
+ if (sticky && this.small() && settings.sticky_on.indexOf('small') !== -1) {
+ if (smallMatch && !medMatch && !lrgMatch) { return true; }
+ }
+ if (sticky && this.medium() && settings.sticky_on.indexOf('medium') !== -1) {
+ if (smallMatch && medMatch && !lrgMatch) { return true; }
+ }
+ if (sticky && this.large() && settings.sticky_on.indexOf('large') !== -1) {
+ if (smallMatch && medMatch && lrgMatch) { return true; }
+ }
+
+ return false;
+ },
+
+ toggle : function (toggleEl) {
+ var self = this,
+ topbar;
+
+ if (toggleEl) {
+ topbar = self.S(toggleEl).closest('[' + this.attr_name() + ']');
+ } else {
+ topbar = self.S('[' + this.attr_name() + ']');
+ }
+
+ var settings = topbar.data(this.attr_name(true) + '-init');
+
+ var section = self.S('section, .top-bar-section', topbar);
+
+ if (self.breakpoint()) {
+ if (!self.rtl) {
+ section.css({left : '0%'});
+ $('>.name', section).css({left : '100%'});
+ } else {
+ section.css({right : '0%'});
+ $('>.name', section).css({right : '100%'});
+ }
+
+ self.S('li.moved', section).removeClass('moved');
+ topbar.data('index', 0);
+
+ topbar
+ .toggleClass('expanded')
+ .css('height', '');
+ }
+
+ if (settings.scrolltop) {
+ if (!topbar.hasClass('expanded')) {
+ if (topbar.hasClass('fixed')) {
+ topbar.parent().addClass('fixed');
+ topbar.removeClass('fixed');
+ self.S('body').addClass('f-topbar-fixed');
+ }
+ } else if (topbar.parent().hasClass('fixed')) {
+ if (settings.scrolltop) {
+ topbar.parent().removeClass('fixed');
+ topbar.addClass('fixed');
+ self.S('body').removeClass('f-topbar-fixed');
+
+ window.scrollTo(0, 0);
+ } else {
+ topbar.parent().removeClass('expanded');
+ }
+ }
+ } else {
+ if (self.is_sticky(topbar, topbar.parent(), settings)) {
+ topbar.parent().addClass('fixed');
+ }
+
+ if (topbar.parent().hasClass('fixed')) {
+ if (!topbar.hasClass('expanded')) {
+ topbar.removeClass('fixed');
+ topbar.parent().removeClass('expanded');
+ self.update_sticky_positioning();
+ } else {
+ topbar.addClass('fixed');
+ topbar.parent().addClass('expanded');
+ self.S('body').addClass('f-topbar-fixed');
+ }
+ }
+ }
+ },
+
+ timer : null,
+
+ events : function (bar) {
+ var self = this,
+ S = this.S;
+
+ S(this.scope)
+ .off('.topbar')
+ .on('click.fndtn.topbar', '[' + this.attr_name() + '] .toggle-topbar', function (e) {
+ e.preventDefault();
+ self.toggle(this);
+ })
+ .on('click.fndtn.topbar contextmenu.fndtn.topbar', '.top-bar .top-bar-section li a[href^="#"],[' + this.attr_name() + '] .top-bar-section li a[href^="#"]', function (e) {
+ var li = $(this).closest('li'),
+ topbar = li.closest('[' + self.attr_name() + ']'),
+ settings = topbar.data(self.attr_name(true) + '-init');
+
+ if (settings.dropdown_autoclose && settings.is_hover) {
+ var hoverLi = $(this).closest('.hover');
+ hoverLi.removeClass('hover');
+ }
+ if (self.breakpoint() && !li.hasClass('back') && !li.hasClass('has-dropdown')) {
+ self.toggle();
+ }
+
+ })
+ .on('click.fndtn.topbar', '[' + this.attr_name() + '] li.has-dropdown', function (e) {
+ var li = S(this),
+ target = S(e.target),
+ topbar = li.closest('[' + self.attr_name() + ']'),
+ settings = topbar.data(self.attr_name(true) + '-init');
+
+ if (target.data('revealId')) {
+ self.toggle();
+ return;
+ }
+
+ if (self.breakpoint()) {
+ return;
+ }
+
+ if (settings.is_hover && !Modernizr.touch) {
+ return;
+ }
+
+ e.stopImmediatePropagation();
+
+ if (li.hasClass('hover')) {
+ li
+ .removeClass('hover')
+ .find('li')
+ .removeClass('hover');
+
+ li.parents('li.hover')
+ .removeClass('hover');
+ } else {
+ li.addClass('hover');
+
+ $(li).siblings().removeClass('hover');
+
+ if (target[0].nodeName === 'A' && target.parent().hasClass('has-dropdown')) {
+ e.preventDefault();
+ }
+ }
+ })
+ .on('click.fndtn.topbar', '[' + this.attr_name() + '] .has-dropdown>a', function (e) {
+ if (self.breakpoint()) {
+
+ e.preventDefault();
+
+ var $this = S(this),
+ topbar = $this.closest('[' + self.attr_name() + ']'),
+ section = topbar.find('section, .top-bar-section'),
+ dropdownHeight = $this.next('.dropdown').outerHeight(),
+ $selectedLi = $this.closest('li');
+
+ topbar.data('index', topbar.data('index') + 1);
+ $selectedLi.addClass('moved');
+
+ if (!self.rtl) {
+ section.css({left : -(100 * topbar.data('index')) + '%'});
+ section.find('>.name').css({left : 100 * topbar.data('index') + '%'});
+ } else {
+ section.css({right : -(100 * topbar.data('index')) + '%'});
+ section.find('>.name').css({right : 100 * topbar.data('index') + '%'});
+ }
+
+ topbar.css('height', $this.siblings('ul').outerHeight(true) + topbar.data('height'));
+ }
+ });
+
+ S(window).off('.topbar').on('resize.fndtn.topbar', self.throttle(function () {
+ self.resize.call(self);
+ }, 50)).trigger('resize.fndtn.topbar').load(function () {
+ // Ensure that the offset is calculated after all of the pages resources have loaded
+ S(this).trigger('resize.fndtn.topbar');
+ });
+
+ S('body').off('.topbar').on('click.fndtn.topbar', function (e) {
+ var parent = S(e.target).closest('li').closest('li.hover');
+
+ if (parent.length > 0) {
+ return;
+ }
+
+ S('[' + self.attr_name() + '] li.hover').removeClass('hover');
+ });
+
+ // Go up a level on Click
+ S(this.scope).on('click.fndtn.topbar', '[' + this.attr_name() + '] .has-dropdown .back', function (e) {
+ e.preventDefault();
+
+ var $this = S(this),
+ topbar = $this.closest('[' + self.attr_name() + ']'),
+ section = topbar.find('section, .top-bar-section'),
+ settings = topbar.data(self.attr_name(true) + '-init'),
+ $movedLi = $this.closest('li.moved'),
+ $previousLevelUl = $movedLi.parent();
+
+ topbar.data('index', topbar.data('index') - 1);
+
+ if (!self.rtl) {
+ section.css({left : -(100 * topbar.data('index')) + '%'});
+ section.find('>.name').css({left : 100 * topbar.data('index') + '%'});
+ } else {
+ section.css({right : -(100 * topbar.data('index')) + '%'});
+ section.find('>.name').css({right : 100 * topbar.data('index') + '%'});
+ }
+
+ if (topbar.data('index') === 0) {
+ topbar.css('height', '');
+ } else {
+ topbar.css('height', $previousLevelUl.outerHeight(true) + topbar.data('height'));
+ }
+
+ setTimeout(function () {
+ $movedLi.removeClass('moved');
+ }, 300);
+ });
+
+ // Show dropdown menus when their items are focused
+ S(this.scope).find('.dropdown a')
+ .focus(function () {
+ $(this).parents('.has-dropdown').addClass('hover');
+ })
+ .blur(function () {
+ $(this).parents('.has-dropdown').removeClass('hover');
+ });
+ },
+
+ resize : function () {
+ var self = this;
+ self.S('[' + this.attr_name() + ']').each(function () {
+ var topbar = self.S(this),
+ settings = topbar.data(self.attr_name(true) + '-init');
+
+ var stickyContainer = topbar.parent('.' + self.settings.sticky_class);
+ var stickyOffset;
+
+ if (!self.breakpoint()) {
+ var doToggle = topbar.hasClass('expanded');
+ topbar
+ .css('height', '')
+ .removeClass('expanded')
+ .find('li')
+ .removeClass('hover');
+
+ if (doToggle) {
+ self.toggle(topbar);
+ }
+ }
+
+ if (self.is_sticky(topbar, stickyContainer, settings)) {
+ if (stickyContainer.hasClass('fixed')) {
+ // Remove the fixed to allow for correct calculation of the offset.
+ stickyContainer.removeClass('fixed');
+
+ stickyOffset = stickyContainer.offset().top;
+ if (self.S(document.body).hasClass('f-topbar-fixed')) {
+ stickyOffset -= topbar.data('height');
+ }
+
+ topbar.data('stickyoffset', stickyOffset);
+ stickyContainer.addClass('fixed');
+ } else {
+ stickyOffset = stickyContainer.offset().top;
+ topbar.data('stickyoffset', stickyOffset);
+ }
+ }
+
+ });
+ },
+
+ breakpoint : function () {
+ return !matchMedia(Foundation.media_queries['topbar']).matches;
+ },
+
+ small : function () {
+ return matchMedia(Foundation.media_queries['small']).matches;
+ },
+
+ medium : function () {
+ return matchMedia(Foundation.media_queries['medium']).matches;
+ },
+
+ large : function () {
+ return matchMedia(Foundation.media_queries['large']).matches;
+ },
+
+ assemble : function (topbar) {
+ var self = this,
+ settings = topbar.data(this.attr_name(true) + '-init'),
+ section = self.S('section, .top-bar-section', topbar);
+
+ // Pull element out of the DOM for manipulation
+ section.detach();
+
+ self.S('.has-dropdown>a', section).each(function () {
+ var $link = self.S(this),
+ $dropdown = $link.siblings('.dropdown'),
+ url = $link.attr('href'),
+ $titleLi;
+
+ if (!$dropdown.find('.title.back').length) {
+
+ if (settings.mobile_show_parent_link == true && url) {
+ $titleLi = $('<li class="title back js-generated"><h5><a href="javascript:void(0)"></a></h5></li><li class="parent-link hide-for-medium-up"><a class="parent-link js-generated" href="' + url + '">' + $link.html() +'</a></li>');
+ } else {
+ $titleLi = $('<li class="title back js-generated"><h5><a href="javascript:void(0)"></a></h5>');
+ }
+
+ // Copy link to subnav
+ if (settings.custom_back_text == true) {
+ $('h5>a', $titleLi).html(settings.back_text);
+ } else {
+ $('h5>a', $titleLi).html('« ' + $link.html());
+ }
+ $dropdown.prepend($titleLi);
+ }
+ });
+
+ // Put element back in the DOM
+ section.appendTo(topbar);
+
+ // check for sticky
+ this.sticky();
+
+ this.assembled(topbar);
+ },
+
+ assembled : function (topbar) {
+ topbar.data(this.attr_name(true), $.extend({}, topbar.data(this.attr_name(true)), {assembled : true}));
+ },
+
+ height : function (ul) {
+ var total = 0,
+ self = this;
+
+ $('> li', ul).each(function () {
+ total += self.S(this).outerHeight(true);
+ });
+
+ return total;
+ },
+
+ sticky : function () {
+ var self = this;
+
+ this.S(window).on('scroll', function () {
+ self.update_sticky_positioning();
+ });
+ },
+
+ update_sticky_positioning : function () {
+ var klass = '.' + this.settings.sticky_class,
+ $window = this.S(window),
+ self = this;
+
+ if (self.settings.sticky_topbar && self.is_sticky(this.settings.sticky_topbar,this.settings.sticky_topbar.parent(), this.settings)) {
+ var distance = this.settings.sticky_topbar.data('stickyoffset') + this.settings.start_offset;
+ if (!self.S(klass).hasClass('expanded')) {
+ if ($window.scrollTop() > (distance)) {
+ if (!self.S(klass).hasClass('fixed')) {
+ self.S(klass).addClass('fixed');
+ self.S('body').addClass('f-topbar-fixed');
+ }
+ } else if ($window.scrollTop() <= distance) {
+ if (self.S(klass).hasClass('fixed')) {
+ self.S(klass).removeClass('fixed');
+ self.S('body').removeClass('f-topbar-fixed');
+ }
+ }
+ }
+ }
+ },
+
+ off : function () {
+ this.S(this.scope).off('.fndtn.topbar');
+ this.S(window).off('.fndtn.topbar');
+ },
+
+ reflow : function () {}
+ };
+}(jQuery, window, window.document));
--- /dev/null
+!function(a,b,c,d){"use strict";function e(a){return("string"==typeof a||a instanceof String)&&(a=a.replace(/^['\\/"]+|(;\s?})+|['\\/"]+$/g,"")),a}function f(a){this.selector=a,this.query=""}var g=function(b){var c=a("head");c.prepend(a.map(b,function(a){return 0===c.has("."+a).length?'<meta class="'+a+'" />':void 0}))};g(["foundation-mq-small","foundation-mq-small-only","foundation-mq-medium","foundation-mq-medium-only","foundation-mq-large","foundation-mq-large-only","foundation-mq-xlarge","foundation-mq-xlarge-only","foundation-mq-xxlarge","foundation-data-attribute-namespace"]),a(function(){"undefined"!=typeof FastClick&&"undefined"!=typeof c.body&&FastClick.attach(c.body)});var h=function(b,d){if("string"==typeof b){if(d){var e;if(d.jquery){if(e=d[0],!e)return d}else e=d;return a(e.querySelectorAll(b))}return a(c.querySelectorAll(b))}return a(b,d)},i=function(a){var b=[];return a||b.push("data"),this.namespace.length>0&&b.push(this.namespace),b.push(this.name),b.join("-")},j=function(a){for(var b=a.split("-"),c=b.length,d=[];c--;)0!==c?d.push(b[c]):this.namespace.length>0?d.push(this.namespace,b[c]):d.push(b[c]);return d.reverse().join("-")},k=function(b,c){var d=this,e=function(){var e=h(this),f=!e.data(d.attr_name(!0)+"-init");e.data(d.attr_name(!0)+"-init",a.extend({},d.settings,c||b,d.data_options(e))),f&&d.events(this)};return h(this.scope).is("["+this.attr_name()+"]")?e.call(this.scope):h("["+this.attr_name()+"]",this.scope).each(e),"string"==typeof b?this[b].call(this,c):void 0},l=function(a,b){function c(){b(a[0])}function d(){if(this.one("load",c),/MSIE (\d+\.\d+);/.test(navigator.userAgent)){var a=this.attr("src"),b=a.match(/\?/)?"&":"?";b+="random="+(new Date).getTime(),this.attr("src",a+b)}}return a.attr("src")?void(a[0].complete||4===a[0].readyState?c():d.call(a)):void c()};/*! matchMedia() polyfill - Test a CSS media type/query in JS. Authors & copyright (c) 2012: Scott Jehl, Paul Irish, Nicholas Zakas, David Knight. Dual MIT/BSD license */
+b.matchMedia||(b.matchMedia=function(){var a=b.styleMedia||b.media;if(!a){var d=c.createElement("style"),e=c.getElementsByTagName("script")[0],f=null;d.type="text/css",d.id="matchmediajs-test",e.parentNode.insertBefore(d,e),f="getComputedStyle"in b&&b.getComputedStyle(d,null)||d.currentStyle,a={matchMedium:function(a){var b="@media "+a+"{ #matchmediajs-test { width: 1px; } }";return d.styleSheet?d.styleSheet.cssText=b:d.textContent=b,"1px"===f.width}}}return function(b){return{matches:a.matchMedium(b||"all"),media:b||"all"}}}()),function(a){function c(){d&&(g(c),i&&a.fx.tick())}for(var d,e=0,f=["webkit","moz"],g=b.requestAnimationFrame,h=b.cancelAnimationFrame,i="undefined"!=typeof a.fx;e<f.length&&!g;e++)g=b[f[e]+"RequestAnimationFrame"],h=h||b[f[e]+"CancelAnimationFrame"]||b[f[e]+"CancelRequestAnimationFrame"];g?(b.requestAnimationFrame=g,b.cancelAnimationFrame=h,i&&(a.fx.timer=function(b){b()&&a.timers.push(b)&&!d&&(d=!0,c())},a.fx.stop=function(){d=!1})):(b.requestAnimationFrame=function(a){var c=(new Date).getTime(),d=Math.max(0,16-(c-e)),f=b.setTimeout(function(){a(c+d)},d);return e=c+d,f},b.cancelAnimationFrame=function(a){clearTimeout(a)})}(a),f.prototype.toString=function(){return this.query||(this.query=h(this.selector).css("font-family").replace(/^[\/\\'"]+|(;\s?})+|[\/\\'"]+$/g,""))},b.Foundation={name:"Foundation",version:"5.5.3",media_queries:{small:new f(".foundation-mq-small"),"small-only":new f(".foundation-mq-small-only"),medium:new f(".foundation-mq-medium"),"medium-only":new f(".foundation-mq-medium-only"),large:new f(".foundation-mq-large"),"large-only":new f(".foundation-mq-large-only"),xlarge:new f(".foundation-mq-xlarge"),"xlarge-only":new f(".foundation-mq-xlarge-only"),xxlarge:new f(".foundation-mq-xxlarge")},stylesheet:a("<style></style>").appendTo("head")[0].sheet,global:{namespace:d},init:function(a,c,d,e,f){var g=[a,d,e,f],i=[];if(this.rtl=/rtl/i.test(h("html").attr("dir")),this.scope=a||this.scope,this.set_namespace(),c&&"string"==typeof c&&!/reflow/i.test(c))this.libs.hasOwnProperty(c)&&i.push(this.init_lib(c,g));else for(var j in this.libs)i.push(this.init_lib(j,c));return h(b).load(function(){h(b).trigger("resize.fndtn.clearing").trigger("resize.fndtn.dropdown").trigger("resize.fndtn.equalizer").trigger("resize.fndtn.interchange").trigger("resize.fndtn.joyride").trigger("resize.fndtn.magellan").trigger("resize.fndtn.topbar").trigger("resize.fndtn.slider")}),a},init_lib:function(b,c){return this.libs.hasOwnProperty(b)?(this.patch(this.libs[b]),c&&c.hasOwnProperty(b)?("undefined"!=typeof this.libs[b].settings?a.extend(!0,this.libs[b].settings,c[b]):"undefined"!=typeof this.libs[b].defaults&&a.extend(!0,this.libs[b].defaults,c[b]),this.libs[b].init.apply(this.libs[b],[this.scope,c[b]])):(c=c instanceof Array?c:new Array(c),this.libs[b].init.apply(this.libs[b],c))):function(){}},patch:function(a){a.scope=this.scope,a.namespace=this.global.namespace,a.rtl=this.rtl,a.data_options=this.utils.data_options,a.attr_name=i,a.add_namespace=j,a.bindings=k,a.S=this.utils.S},inherit:function(a,b){for(var c=b.split(" "),d=c.length;d--;)this.utils.hasOwnProperty(c[d])&&(a[c[d]]=this.utils[c[d]])},set_namespace:function(){var b=this.global.namespace===d?a(".foundation-data-attribute-namespace").css("font-family"):this.global.namespace;this.global.namespace=b===d||/false/i.test(b)?"":b},libs:{},utils:{S:h,throttle:function(a,b){var c=null;return function(){var d=this,e=arguments;null==c&&(c=setTimeout(function(){a.apply(d,e),c=null},b))}},debounce:function(a,b,c){var d,e;return function(){var f=this,g=arguments,h=function(){d=null,c||(e=a.apply(f,g))},i=c&&!d;return clearTimeout(d),d=setTimeout(h,b),i&&(e=a.apply(f,g)),e}},data_options:function(b,c){function d(a){return!isNaN(a-0)&&null!==a&&""!==a&&a!==!1&&a!==!0}function e(b){return"string"==typeof b?a.trim(b):b}c=c||"options";var f,g,h,i={},j=function(a){var b=Foundation.global.namespace;return b.length>0?a.data(b+"-"+c):a.data(c)},k=j(b);if("object"==typeof k)return k;for(h=(k||":").split(";"),f=h.length;f--;)g=h[f].split(":"),g=[g[0],g.slice(1).join(":")],/true/i.test(g[1])&&(g[1]=!0),/false/i.test(g[1])&&(g[1]=!1),d(g[1])&&(-1===g[1].indexOf(".")?g[1]=parseInt(g[1],10):g[1]=parseFloat(g[1])),2===g.length&&g[0].length>0&&(i[e(g[0])]=e(g[1]));return i},register_media:function(b,c){Foundation.media_queries[b]===d&&(a("head").append('<meta class="'+c+'"/>'),Foundation.media_queries[b]=e(a("."+c).css("font-family")))},add_custom_rule:function(a,b){if(b===d&&Foundation.stylesheet)Foundation.stylesheet.insertRule(a,Foundation.stylesheet.cssRules.length);else{var c=Foundation.media_queries[b];c!==d&&Foundation.stylesheet.insertRule("@media "+Foundation.media_queries[b]+"{ "+a+" }",Foundation.stylesheet.cssRules.length)}},image_loaded:function(a,b){function c(a){for(var b=a.length,c=b-1;c>=0;c--)if(a.attr("height")===d)return!1;return!0}var e=this,f=a.length;(0===f||c(a))&&b(a),a.each(function(){l(e.S(this),function(){f-=1,0===f&&b(a)})})},random_str:function(){return this.fidx||(this.fidx=0),this.prefix=this.prefix||[this.name||"F",(+new Date).toString(36)].join("-"),this.prefix+(this.fidx++).toString(36)},match:function(a){return b.matchMedia(a).matches},is_small_up:function(){return this.match(Foundation.media_queries.small)},is_medium_up:function(){return this.match(Foundation.media_queries.medium)},is_large_up:function(){return this.match(Foundation.media_queries.large)},is_xlarge_up:function(){return this.match(Foundation.media_queries.xlarge)},is_xxlarge_up:function(){return this.match(Foundation.media_queries.xxlarge)},is_small_only:function(){return!(this.is_medium_up()||this.is_large_up()||this.is_xlarge_up()||this.is_xxlarge_up())},is_medium_only:function(){return this.is_medium_up()&&!this.is_large_up()&&!this.is_xlarge_up()&&!this.is_xxlarge_up()},is_large_only:function(){return this.is_medium_up()&&this.is_large_up()&&!this.is_xlarge_up()&&!this.is_xxlarge_up()},is_xlarge_only:function(){return this.is_medium_up()&&this.is_large_up()&&this.is_xlarge_up()&&!this.is_xxlarge_up()},is_xxlarge_only:function(){return this.is_medium_up()&&this.is_large_up()&&this.is_xlarge_up()&&this.is_xxlarge_up()}}},a.fn.foundation=function(){var a=Array.prototype.slice.call(arguments,0);return this.each(function(){return Foundation.init.apply(Foundation,[this].concat(a)),this})}}(jQuery,window,window.document),function(a,b,c,d){"use strict";Foundation.libs.abide={name:"abide",version:"5.5.3",settings:{live_validate:!0,validate_on_blur:!0,focus_on_invalid:!0,error_labels:!0,error_class:"error",timeout:1e3,patterns:{alpha:/^[a-zA-Z]+$/,alpha_numeric:/^[a-zA-Z0-9]+$/,integer:/^[-+]?\d+$/,number:/^[-+]?\d*(?:[\.\,]\d+)?$/,card:/^(?:4[0-9]{12}(?:[0-9]{3})?|5[1-5][0-9]{14}|6(?:011|5[0-9][0-9])[0-9]{12}|3[47][0-9]{13}|3(?:0[0-5]|[68][0-9])[0-9]{11}|(?:2131|1800|35\d{3})\d{11})$/,cvv:/^([0-9]){3,4}$/,email:/^[a-zA-Z0-9.!#$%&'*+\/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+$/,url:/^(https?|ftp|file|ssh):\/\/([-;:&=\+\$,\w]+@{1})?([-A-Za-z0-9\.]+)+:?(\d+)?((\/[-\+~%\/\.\w]+)?\??([-\+=&;%@\.\w]+)?#?([\w]+)?)?/,domain:/^([a-zA-Z0-9]([a-zA-Z0-9\-]{0,61}[a-zA-Z0-9])?\.)+[a-zA-Z]{2,8}$/,datetime:/^([0-2][0-9]{3})\-([0-1][0-9])\-([0-3][0-9])T([0-5][0-9])\:([0-5][0-9])\:([0-5][0-9])(Z|([\-\+]([0-1][0-9])\:00))$/,date:/(?:19|20)[0-9]{2}-(?:(?:0[1-9]|1[0-2])-(?:0[1-9]|1[0-9]|2[0-9])|(?:(?!02)(?:0[1-9]|1[0-2])-(?:30))|(?:(?:0[13578]|1[02])-31))$/,time:/^(0[0-9]|1[0-9]|2[0-3])(:[0-5][0-9]){2}$/,dateISO:/^\d{4}[\/\-]\d{1,2}[\/\-]\d{1,2}$/,month_day_year:/^(0[1-9]|1[012])[- \/.](0[1-9]|[12][0-9]|3[01])[- \/.]\d{4}$/,day_month_year:/^(0[1-9]|[12][0-9]|3[01])[- \/.](0[1-9]|1[012])[- \/.]\d{4}$/,color:/^#?([a-fA-F0-9]{6}|[a-fA-F0-9]{3})$/},validators:{equalTo:function(a,b,d){var e=c.getElementById(a.getAttribute(this.add_namespace("data-equalto"))).value,f=a.value,g=e===f;return g}}},timer:null,init:function(a,b,c){this.bindings(b,c)},events:function(b){function c(a,b){clearTimeout(d.timer),d.timer=setTimeout(function(){d.validate([a],b)}.bind(a),f.timeout)}var d=this,e=d.S(b).attr("novalidate","novalidate"),f=e.data(this.attr_name(!0)+"-init")||{};this.invalid_attr=this.add_namespace("data-invalid"),e.off(".abide").on("submit.fndtn.abide",function(a){var b=/ajax/i.test(d.S(this).attr(d.attr_name()));return d.validate(d.S(this).find("input, textarea, select").not(":hidden, [data-abide-ignore]").get(),a,b)}).on("validate.fndtn.abide",function(a){"manual"===f.validate_on&&d.validate([a.target],a)}).on("reset",function(b){return d.reset(a(this),b)}).find("input, textarea, select").not(":hidden, [data-abide-ignore]").off(".abide").on("blur.fndtn.abide change.fndtn.abide",function(a){var b=this.getAttribute("id"),d=e.find('[data-equalto="'+b+'"]');f.validate_on_blur&&f.validate_on_blur===!0&&c(this,a),"undefined"!=typeof d.get(0)&&d.val().length&&c(d.get(0),a),"change"===f.validate_on&&c(this,a)}).on("keydown.fndtn.abide",function(a){var b=this.getAttribute("id"),d=e.find('[data-equalto="'+b+'"]');f.live_validate&&f.live_validate===!0&&9!=a.which&&c(this,a),"undefined"!=typeof d.get(0)&&d.val().length&&c(d.get(0),a),"tab"===f.validate_on&&9===a.which?c(this,a):"change"===f.validate_on&&c(this,a)}).on("focus",function(b){navigator.userAgent.match(/iPad|iPhone|Android|BlackBerry|Windows Phone|webOS/i)&&a("html, body").animate({scrollTop:a(b.target).offset().top},100)})},reset:function(b,c){var d=this;b.removeAttr(d.invalid_attr),a("["+d.invalid_attr+"]",b).removeAttr(d.invalid_attr),a("."+d.settings.error_class,b).not("small").removeClass(d.settings.error_class),a(":input",b).not(":button, :submit, :reset, :hidden, [data-abide-ignore]").val("").removeAttr(d.invalid_attr)},validate:function(a,b,c){for(var d=this.parse_patterns(a),e=d.length,f=this.S(a[0]).closest("form"),g=/submit/.test(b.type),h=0;e>h;h++)if(!d[h]&&(g||c))return this.settings.focus_on_invalid&&a[h].focus(),f.trigger("invalid.fndtn.abide"),this.S(a[h]).closest("form").attr(this.invalid_attr,""),!1;return(g||c)&&f.trigger("valid.fndtn.abide"),f.removeAttr(this.invalid_attr),c?!1:!0},parse_patterns:function(a){for(var b=a.length,c=[];b--;)c.push(this.pattern(a[b]));return this.check_validation_and_apply_styles(c)},pattern:function(a){var b=a.getAttribute("type"),c="string"==typeof a.getAttribute("required"),d=a.getAttribute("pattern")||"";return this.settings.patterns.hasOwnProperty(d)&&d.length>0?[a,this.settings.patterns[d],c]:d.length>0?[a,new RegExp(d),c]:this.settings.patterns.hasOwnProperty(b)?[a,this.settings.patterns[b],c]:(d=/.*/,[a,d,c])},check_validation_and_apply_styles:function(b){var c=b.length,d=[];if(0==c)return d;var e=this.S(b[0][0]).closest("[data-"+this.attr_name(!0)+"]");for(e.data(this.attr_name(!0)+"-init")||{};c--;){var f,g,h=b[c][0],i=b[c][2],j=h.value.trim(),k=this.S(h).parent(),l=h.getAttribute(this.add_namespace("data-abide-validator")),m="radio"===h.type,n="checkbox"===h.type,o=this.S('label[for="'+h.getAttribute("id")+'"]'),p=i?h.value.length>0:!0,q=[];if(h.getAttribute(this.add_namespace("data-equalto"))&&(l="equalTo"),f=k.is("label")?k.parent():k,m&&i)q.push(this.valid_radio(h,i));else if(n&&i)q.push(this.valid_checkbox(h,i));else if(l){for(var r=l.split(" "),s=!0,t=!0,u=0;u<r.length;u++)g=this.settings.validators[r[u]].apply(this,[h,i,f]),q.push(g),t=g&&s,s=g;t?(this.S(h).removeAttr(this.invalid_attr),f.removeClass("error"),o.length>0&&this.settings.error_labels&&o.removeClass(this.settings.error_class).removeAttr("role"),a(h).triggerHandler("valid")):(this.S(h).attr(this.invalid_attr,""),f.addClass("error"),o.length>0&&this.settings.error_labels&&o.addClass(this.settings.error_class).attr("role","alert"),a(h).triggerHandler("invalid"))}else if(b[c][1].test(j)&&p||!i&&h.value.length<1||a(h).attr("disabled")?q.push(!0):q.push(!1),q=[q.every(function(a){return a})],q[0])this.S(h).removeAttr(this.invalid_attr),h.setAttribute("aria-invalid","false"),h.removeAttribute("aria-describedby"),f.removeClass(this.settings.error_class),o.length>0&&this.settings.error_labels&&o.removeClass(this.settings.error_class).removeAttr("role"),a(h).triggerHandler("valid");else{this.S(h).attr(this.invalid_attr,""),h.setAttribute("aria-invalid","true");var v=f.find("small."+this.settings.error_class,"span."+this.settings.error_class),w=v.length>0?v[0].id:"";w.length>0&&h.setAttribute("aria-describedby",w),f.addClass(this.settings.error_class),o.length>0&&this.settings.error_labels&&o.addClass(this.settings.error_class).attr("role","alert"),a(h).triggerHandler("invalid")}d=d.concat(q)}return d},valid_checkbox:function(b,c){var b=this.S(b),d=b.is(":checked")||!c||b.get(0).getAttribute("disabled");return d?(b.removeAttr(this.invalid_attr).parent().removeClass(this.settings.error_class),a(b).triggerHandler("valid")):(b.attr(this.invalid_attr,"").parent().addClass(this.settings.error_class),a(b).triggerHandler("invalid")),d},valid_radio:function(b,c){for(var d=b.getAttribute("name"),e=this.S(b).closest("[data-"+this.attr_name(!0)+"]").find("[name='"+d+"']"),f=e.length,g=!1,h=!1,i=0;f>i;i++)e[i].getAttribute("disabled")?(h=!0,g=!0):e[i].checked?g=!0:h&&(g=!1);for(var i=0;f>i;i++)g?(this.S(e[i]).removeAttr(this.invalid_attr).parent().removeClass(this.settings.error_class),a(e[i]).triggerHandler("valid")):(this.S(e[i]).attr(this.invalid_attr,"").parent().addClass(this.settings.error_class),a(e[i]).triggerHandler("invalid"));return g},valid_equal:function(a,b,d){var e=c.getElementById(a.getAttribute(this.add_namespace("data-equalto"))).value,f=a.value,g=e===f;return g?(this.S(a).removeAttr(this.invalid_attr),d.removeClass(this.settings.error_class),label.length>0&&settings.error_labels&&label.removeClass(this.settings.error_class)):(this.S(a).attr(this.invalid_attr,""),d.addClass(this.settings.error_class),label.length>0&&settings.error_labels&&label.addClass(this.settings.error_class)),g},valid_oneof:function(a,b,c,d){var a=this.S(a),e=this.S("["+this.add_namespace("data-oneof")+"]"),f=e.filter(":checked").length>0;if(f?a.removeAttr(this.invalid_attr).parent().removeClass(this.settings.error_class):a.attr(this.invalid_attr,"").parent().addClass(this.settings.error_class),!d){var g=this;e.each(function(){g.valid_oneof.call(g,this,null,null,!0)})}return f},reflow:function(a,b){var c=this,d=c.S("["+this.attr_name()+"]").attr("novalidate","novalidate");c.S(d).each(function(a,b){c.events(b)})}}}(jQuery,window,window.document),function(a,b,c,d){"use strict";Foundation.libs.accordion={name:"accordion",version:"5.5.3",settings:{content_class:"content",active_class:"active",multi_expand:!1,toggleable:!0,callback:function(){}},init:function(a,b,c){this.bindings(b,c)},events:function(b){var c=this,d=this.S;c.create(this.S(b)),d(this.scope).off(".fndtn.accordion").on("click.fndtn.accordion","["+this.attr_name()+"] > dd > a, ["+this.attr_name()+"] > li > a",function(b){var e=d(this).closest("["+c.attr_name()+"]"),f=c.attr_name()+"="+e.attr(c.attr_name()),g=e.data(c.attr_name(!0)+"-init")||c.settings,h=d("#"+this.href.split("#")[1]),i=a("> dd, > li",e),j=i.children("."+g.content_class),k=j.filter("."+g.active_class);return b.preventDefault(),e.attr(c.attr_name())&&(j=j.add("["+f+"] dd > ."+g.content_class+", ["+f+"] li > ."+g.content_class),i=i.add("["+f+"] dd, ["+f+"] li")),g.toggleable&&h.is(k)?(h.parent("dd, li").toggleClass(g.active_class,!1),h.toggleClass(g.active_class,!1),d(this).attr("aria-expanded",function(a,b){return"true"===b?"false":"true"}),g.callback(h),h.triggerHandler("toggled",[e]),void e.triggerHandler("toggled",[h])):(g.multi_expand||(j.removeClass(g.active_class),i.removeClass(g.active_class),i.children("a").attr("aria-expanded","false")),h.addClass(g.active_class).parent().addClass(g.active_class),g.callback(h),h.triggerHandler("toggled",[e]),e.triggerHandler("toggled",[h]),void d(this).attr("aria-expanded","true"))})},create:function(b){var c=this,d=b,e=a("> .accordion-navigation",d),f=d.data(c.attr_name(!0)+"-init")||c.settings;e.children("a").attr("aria-expanded","false"),e.has("."+f.content_class+"."+f.active_class).addClass(f.active_class).children("a").attr("aria-expanded","true"),f.multi_expand&&b.attr("aria-multiselectable","true")},toggle:function(a){var a="undefined"!=typeof a?a:{},c="undefined"!=typeof a.selector?a.selector:"",d="undefined"!=typeof a.toggle_state?a.toggle_state:"",e="undefined"!=typeof a.$accordion?a.$accordion:this.S(this.scope).closest("["+this.attr_name()+"]"),f=e.find("> dd"+c+", > li"+c);if(f.length<1)return b.console&&console.error("Selection not found.",c),!1;var g=this.S,h=this.settings.active_class;f.each(function(){var a=g(this),b=a.hasClass(h);(b&&"close"===d||!b&&"open"===d||""===d)&&a.find("> a").trigger("click.fndtn.accordion")})},open:function(a){var a="undefined"!=typeof a?a:{};a.toggle_state="open",this.toggle(a)},close:function(a){var a="undefined"!=typeof a?a:{};a.toggle_state="close",this.toggle(a)},off:function(){},reflow:function(){}}}(jQuery,window,window.document),function(a,b,c,d){"use strict";Foundation.libs.alert={name:"alert",version:"5.5.3",settings:{callback:function(){}},init:function(a,b,c){this.bindings(b,c)},events:function(){var b=this,c=this.S;a(this.scope).off(".alert").on("click.fndtn.alert","["+this.attr_name()+"] .close",function(a){var d=c(this).closest("["+b.attr_name()+"]"),e=d.data(b.attr_name(!0)+"-init")||b.settings;a.preventDefault(),Modernizr.csstransitions?(d.addClass("alert-close"),d.on("transitionend webkitTransitionEnd oTransitionEnd",function(a){c(this).trigger("close.fndtn.alert").remove(),e.callback()})):d.fadeOut(300,function(){c(this).trigger("close.fndtn.alert").remove(),e.callback()})})},reflow:function(){}}}(jQuery,window,window.document),function(a,b,c,d){"use strict";Foundation.libs.clearing={name:"clearing",version:"5.5.3",settings:{templates:{viewing:'<a href="#" class="clearing-close">×</a><div class="visible-img" style="display: none"><div class="clearing-touch-label"></div><img src="data:image/gif;base64,R0lGODlhAQABAAD/ACwAAAAAAQABAAACADs%3D" alt="" /><p class="clearing-caption"></p><a href="#" class="clearing-main-prev"><span></span></a><a href="#" class="clearing-main-next"><span></span></a></div><img class="clearing-preload-next" style="display: none" src="data:image/gif;base64,R0lGODlhAQABAAD/ACwAAAAAAQABAAACADs%3D" alt="" /><img class="clearing-preload-prev" style="display: none" src="data:image/gif;base64,R0lGODlhAQABAAD/ACwAAAAAAQABAAACADs%3D" alt="" />'},close_selectors:".clearing-close, div.clearing-blackout",open_selectors:"",skip_selector:"",touch_label:"",init:!1,locked:!1},init:function(a,b,c){var d=this;Foundation.inherit(this,"throttle image_loaded"),this.bindings(b,c),d.S(this.scope).is("["+this.attr_name()+"]")?this.assemble(d.S("li",this.scope)):d.S("["+this.attr_name()+"]",this.scope).each(function(){d.assemble(d.S("li",this))})},events:function(d){var e=this,f=e.S,g=a(".scroll-container");g.length>0&&(this.scope=g),f(this.scope).off(".clearing").on("click.fndtn.clearing","ul["+this.attr_name()+"] li "+this.settings.open_selectors,function(a,b,c){var b=b||f(this),c=c||b,d=b.next("li"),g=b.closest("["+e.attr_name()+"]").data(e.attr_name(!0)+"-init"),h=f(a.target);a.preventDefault(),g||(e.init(),g=b.closest("["+e.attr_name()+"]").data(e.attr_name(!0)+"-init")),c.hasClass("visible")&&b[0]===c[0]&&d.length>0&&e.is_open(b)&&(c=d,h=f("img",c)),e.open(h,b,c),e.update_paddles(c)}).on("click.fndtn.clearing",".clearing-main-next",function(a){e.nav(a,"next")}).on("click.fndtn.clearing",".clearing-main-prev",function(a){e.nav(a,"prev")}).on("click.fndtn.clearing",this.settings.close_selectors,function(a){Foundation.libs.clearing.close(a,this)}),a(c).on("keydown.fndtn.clearing",function(a){e.keydown(a)}),f(b).off(".clearing").on("resize.fndtn.clearing",function(){e.resize()}),this.swipe_events(d)},swipe_events:function(a){var b=this,c=b.S;c(this.scope).on("touchstart.fndtn.clearing",".visible-img",function(a){a.touches||(a=a.originalEvent);var b={start_page_x:a.touches[0].pageX,start_page_y:a.touches[0].pageY,start_time:(new Date).getTime(),delta_x:0,is_scrolling:d};c(this).data("swipe-transition",b),a.stopPropagation()}).on("touchmove.fndtn.clearing",".visible-img",function(a){if(a.touches||(a=a.originalEvent),!(a.touches.length>1||a.scale&&1!==a.scale)){var d=c(this).data("swipe-transition");if("undefined"==typeof d&&(d={}),d.delta_x=a.touches[0].pageX-d.start_page_x,Foundation.rtl&&(d.delta_x=-d.delta_x),"undefined"==typeof d.is_scrolling&&(d.is_scrolling=!!(d.is_scrolling||Math.abs(d.delta_x)<Math.abs(a.touches[0].pageY-d.start_page_y))),!d.is_scrolling&&!d.active){a.preventDefault();var e=d.delta_x<0?"next":"prev";d.active=!0,b.nav(a,e)}}}).on("touchend.fndtn.clearing",".visible-img",function(a){c(this).data("swipe-transition",{}),a.stopPropagation()})},assemble:function(b){var c=b.parent();if(!c.parent().hasClass("carousel")){c.after('<div id="foundationClearingHolder"></div>');var d=c.detach(),e="";if(null!=d[0]){e=d[0].outerHTML;var f=this.S("#foundationClearingHolder"),g=c.data(this.attr_name(!0)+"-init"),h={grid:'<div class="carousel">'+e+"</div>",viewing:g.templates.viewing},i='<div class="clearing-assembled"><div>'+h.viewing+h.grid+"</div></div>",j=this.settings.touch_label;Modernizr.touch&&(i=a(i).find(".clearing-touch-label").html(j).end()),f.after(i).remove()}}},open:function(b,d,e){function f(){setTimeout(function(){this.image_loaded(m,function(){1!==m.outerWidth()||o?g.call(this,m):f.call(this)}.bind(this))}.bind(this),100)}function g(b){var c=a(b);c.css("visibility","visible"),c.trigger("imageVisible"),i.css("overflow","hidden"),j.addClass("clearing-blackout"),k.addClass("clearing-container"),l.show(),this.fix_height(e).caption(h.S(".clearing-caption",l),h.S("img",e)).center_and_label(b,n).shift(d,e,function(){e.closest("li").siblings().removeClass("visible"),e.closest("li").addClass("visible")}),l.trigger("opened.fndtn.clearing")}var h=this,i=a(c.body),j=e.closest(".clearing-assembled"),k=h.S("div",j).first(),l=h.S(".visible-img",k),m=h.S("img",l).not(b),n=h.S(".clearing-touch-label",k),o=!1,p={};a("body").on("touchmove",function(a){a.preventDefault()}),m.error(function(){o=!0}),this.locked()||(l.trigger("open.fndtn.clearing"),p=this.load(b),p.interchange?m.attr("data-interchange",p.interchange).foundation("interchange","reflow"):m.attr("src",p.src).attr("data-interchange",""),m.css("visibility","hidden"),f.call(this))},close:function(b,d){b.preventDefault();var e,f,g=function(a){return/blackout/.test(a.selector)?a:a.closest(".clearing-blackout")}(a(d)),h=a(c.body);return d===b.target&&g&&(h.css("overflow",""),e=a("div",g).first(),f=a(".visible-img",e),f.trigger("close.fndtn.clearing"),this.settings.prev_index=0,a("ul["+this.attr_name()+"]",g).attr("style","").closest(".clearing-blackout").removeClass("clearing-blackout"),e.removeClass("clearing-container"),f.hide(),f.trigger("closed.fndtn.clearing")),a("body").off("touchmove"),!1},is_open:function(a){return a.parent().prop("style").length>0},keydown:function(b){var c=a(".clearing-blackout ul["+this.attr_name()+"]"),d=this.rtl?37:39,e=this.rtl?39:37,f=27;b.which===d&&this.go(c,"next"),b.which===e&&this.go(c,"prev"),b.which===f&&this.S("a.clearing-close").trigger("click.fndtn.clearing")},nav:function(b,c){var d=a("ul["+this.attr_name()+"]",".clearing-blackout");b.preventDefault(),this.go(d,c)},resize:function(){var b=a("img",".clearing-blackout .visible-img"),c=a(".clearing-touch-label",".clearing-blackout");b.length&&(this.center_and_label(b,c),b.trigger("resized.fndtn.clearing"))},fix_height:function(a){var b=a.parent().children(),c=this;return b.each(function(){var a=c.S(this),b=a.find("img");a.height()>b.outerHeight()&&a.addClass("fix-height")}).closest("ul").width(100*b.length+"%"),this},update_paddles:function(a){a=a.closest("li");var b=a.closest(".carousel").siblings(".visible-img");a.next().length>0?this.S(".clearing-main-next",b).removeClass("disabled"):this.S(".clearing-main-next",b).addClass("disabled"),a.prev().length>0?this.S(".clearing-main-prev",b).removeClass("disabled"):this.S(".clearing-main-prev",b).addClass("disabled")},center_and_label:function(a,b){return!this.rtl&&b.length>0?b.css({marginLeft:-(b.outerWidth()/2),marginTop:-(a.outerHeight()/2)-b.outerHeight()-10}):b.css({marginRight:-(b.outerWidth()/2),marginTop:-(a.outerHeight()/2)-b.outerHeight()-10,left:"auto",right:"50%"}),this},load:function(a){var b,c,d;return"A"===a[0].nodeName?(b=a.attr("href"),c=a.data("clearing-interchange")):(d=a.closest("a"),b=d.attr("href"),c=d.data("clearing-interchange")),this.preload(a),{src:b?b:a.attr("src"),interchange:b?c:a.data("clearing-interchange")}},preload:function(a){this.img(a.closest("li").next(),"next").img(a.closest("li").prev(),"prev")},img:function(b,c){if(b.length){var d,e,f,g=a(".clearing-preload-"+c),h=this.S("a",b);h.length?(d=h.attr("href"),e=h.data("clearing-interchange")):(f=this.S("img",b),d=f.attr("src"),e=f.data("clearing-interchange")),e?g.attr("data-interchange",e):(g.attr("src",d),g.attr("data-interchange",""))}return this},caption:function(a,b){var c=b.attr("data-caption");if(c){var d=a.get(0);d.innerHTML=c,a.show()}else a.text("").hide();return this},go:function(a,b){var c=this.S(".visible",a),d=c[b]();this.settings.skip_selector&&0!=d.find(this.settings.skip_selector).length&&(d=d[b]()),d.length&&this.S("img",d).trigger("click.fndtn.clearing",[c,d]).trigger("change.fndtn.clearing")},shift:function(a,b,c){var d,e=b.parent(),f=this.settings.prev_index||b.index(),g=this.direction(e,a,b),h=this.rtl?"right":"left",i=parseInt(e.css("left"),10),j=b.outerWidth(),k={};b.index()===f||/skip/.test(g)?/skip/.test(g)&&(d=b.index()-this.settings.up_count,this.lock(),d>0?(k[h]=-(d*j),e.animate(k,300,this.unlock())):(k[h]=0,e.animate(k,300,this.unlock()))):/left/.test(g)?(this.lock(),k[h]=i+j,e.animate(k,300,this.unlock())):/right/.test(g)&&(this.lock(),k[h]=i-j,e.animate(k,300,this.unlock())),c()},direction:function(a,b,c){var d,e=this.S("li",a),f=e.outerWidth()+e.outerWidth()/4,g=Math.floor(this.S(".clearing-container").outerWidth()/f)-1,h=e.index(c);return this.settings.up_count=g,d=this.adjacent(this.settings.prev_index,h)?h>g&&h>this.settings.prev_index?"right":h>g-1&&h<=this.settings.prev_index?"left":!1:"skip",this.settings.prev_index=h,d},adjacent:function(a,b){for(var c=b+1;c>=b-1;c--)if(c===a)return!0;return!1},lock:function(){this.settings.locked=!0},unlock:function(){this.settings.locked=!1},locked:function(){return this.settings.locked},off:function(){this.S(this.scope).off(".fndtn.clearing"),this.S(b).off(".fndtn.clearing")},reflow:function(){this.init()}}}(jQuery,window,window.document),function(a,b,c,d){"use strict";Foundation.libs.dropdown={name:"dropdown",version:"5.5.3",settings:{active_class:"open",disabled_class:"disabled",mega_class:"mega",align:"bottom",is_hover:!1,hover_timeout:150,opened:function(){},closed:function(){}},init:function(b,c,d){Foundation.inherit(this,"throttle"),a.extend(!0,this.settings,c,d),this.bindings(c,d)},events:function(d){var e=this,f=e.S;f(this.scope).off(".dropdown").on("click.fndtn.dropdown","["+this.attr_name()+"]",function(b){var c=f(this).data(e.attr_name(!0)+"-init")||e.settings;(!c.is_hover||Modernizr.touch)&&(b.preventDefault(),f(this).parent("[data-reveal-id]").length&&b.stopPropagation(),e.toggle(a(this)))}).on("mouseenter.fndtn.dropdown","["+this.attr_name()+"], ["+this.attr_name()+"-content]",function(a){var b,c,d=f(this);clearTimeout(e.timeout),d.data(e.data_attr())?(b=f("#"+d.data(e.data_attr())),c=d):(b=d,c=f("["+e.attr_name()+'="'+b.attr("id")+'"]'));var g=c.data(e.attr_name(!0)+"-init")||e.settings;f(a.currentTarget).data(e.data_attr())&&g.is_hover&&e.closeall.call(e),g.is_hover&&e.open.apply(e,[b,c])}).on("mouseleave.fndtn.dropdown","["+this.attr_name()+"], ["+this.attr_name()+"-content]",function(a){var b,c=f(this);if(c.data(e.data_attr()))b=c.data(e.data_attr(!0)+"-init")||e.settings;else var d=f("["+e.attr_name()+'="'+f(this).attr("id")+'"]'),b=d.data(e.attr_name(!0)+"-init")||e.settings;e.timeout=setTimeout(function(){c.data(e.data_attr())?b.is_hover&&e.close.call(e,f("#"+c.data(e.data_attr()))):b.is_hover&&e.close.call(e,c)}.bind(this),b.hover_timeout)}).on("click.fndtn.dropdown",function(b){var d=f(b.target).closest("["+e.attr_name()+"-content]"),g=d.find("a");return g.length>0&&"false"!==d.attr("aria-autoclose")&&e.close.call(e,f("["+e.attr_name()+"-content]")),b.target!==c&&!a.contains(c.documentElement,b.target)||f(b.target).closest("["+e.attr_name()+"]").length>0?void 0:!f(b.target).data("revealId")&&d.length>0&&(f(b.target).is("["+e.attr_name()+"-content]")||a.contains(d.first()[0],b.target))?void b.stopPropagation():void e.close.call(e,f("["+e.attr_name()+"-content]"))}).on("opened.fndtn.dropdown","["+e.attr_name()+"-content]",function(){e.settings.opened.call(this)}).on("closed.fndtn.dropdown","["+e.attr_name()+"-content]",function(){e.settings.closed.call(this)}),f(b).off(".dropdown").on("resize.fndtn.dropdown",e.throttle(function(){e.resize.call(e)},50)),this.resize()},close:function(b){var c=this;b.each(function(d){var e=a("["+c.attr_name()+"="+b[d].id+"]")||a("aria-controls="+b[d].id+"]");e.attr("aria-expanded","false"),c.S(this).hasClass(c.settings.active_class)&&(c.S(this).css(Foundation.rtl?"right":"left","-99999px").attr("aria-hidden","true").removeClass(c.settings.active_class).prev("["+c.attr_name()+"]").removeClass(c.settings.active_class).removeData("target"),c.S(this).trigger("closed.fndtn.dropdown",[b]))}),b.removeClass("f-open-"+this.attr_name(!0))},closeall:function(){var b=this;a.each(b.S(".f-open-"+this.attr_name(!0)),function(){b.close.call(b,b.S(this))})},open:function(a,b){this.css(a.addClass(this.settings.active_class),b),a.prev("["+this.attr_name()+"]").addClass(this.settings.active_class),a.data("target",b.get(0)).trigger("opened.fndtn.dropdown",[a,b]),a.attr("aria-hidden","false"),b.attr("aria-expanded","true"),a.focus(),a.addClass("f-open-"+this.attr_name(!0))},data_attr:function(){return this.namespace.length>0?this.namespace+"-"+this.name:this.name},toggle:function(a){if(!a.hasClass(this.settings.disabled_class)){var b=this.S("#"+a.data(this.data_attr()));0!==b.length&&(this.close.call(this,this.S("["+this.attr_name()+"-content]").not(b)),b.hasClass(this.settings.active_class)?(this.close.call(this,b),b.data("target")!==a.get(0)&&this.open.call(this,b,a)):this.open.call(this,b,a))}},resize:function(){var b=this.S("["+this.attr_name()+"-content].open"),c=a(b.data("target"));b.length&&c.length&&this.css(b,c)},css:function(a,b){var c=Math.max((b.width()-a.width())/2,8),d=b.data(this.attr_name(!0)+"-init")||this.settings,e=a.parent().css("overflow-y")||a.parent().css("overflow");if(this.clear_idx(),this.small()){var f=this.dirs.bottom.call(a,b,d);a.attr("style","").removeClass("drop-left drop-right drop-top").css({position:"absolute",width:"95%","max-width":"none",top:f.top}),a.css(Foundation.rtl?"right":"left",c)}else if("visible"!==e){var g=b[0].offsetTop+b[0].offsetHeight;a.attr("style","").css({position:"absolute",top:g}),a.css(Foundation.rtl?"right":"left",c)}else this.style(a,b,d);return a},style:function(b,c,d){var e=a.extend({position:"absolute"},this.dirs[d.align].call(b,c,d));b.attr("style","").css(e)},dirs:{_base:function(a,d){var e=this.offsetParent(),f=e.offset(),g=a.offset();g.top-=f.top,g.left-=f.left,g.missRight=!1,g.missTop=!1,g.missLeft=!1,g.leftRightFlag=!1;var h,i=b.innerWidth;h=c.getElementsByClassName("row")[0]?c.getElementsByClassName("row")[0].clientWidth:i;var j=(i-h)/2,k=h;if(!this.hasClass("mega")&&!d.ignore_repositioning){var l=this.outerWidth(),m=a.offset().left;a.offset().top<=this.outerHeight()&&(g.missTop=!0,k=i-j,g.leftRightFlag=!0),m+l>m+j&&m-j>l&&(g.missRight=!0,g.missLeft=!1),0>=m-l&&(g.missLeft=!0,g.missRight=!1)}return g},top:function(a,b){var c=Foundation.libs.dropdown,d=c.dirs._base.call(this,a,b);return this.addClass("drop-top"),1==d.missTop&&(d.top=d.top+a.outerHeight()+this.outerHeight(),
+this.removeClass("drop-top")),1==d.missRight&&(d.left=d.left-this.outerWidth()+a.outerWidth()),(a.outerWidth()<this.outerWidth()||c.small()||this.hasClass(b.mega_menu))&&c.adjust_pip(this,a,b,d),Foundation.rtl?{left:d.left-this.outerWidth()+a.outerWidth(),top:d.top-this.outerHeight()}:{left:d.left,top:d.top-this.outerHeight()}},bottom:function(a,b){var c=Foundation.libs.dropdown,d=c.dirs._base.call(this,a,b);return 1==d.missRight&&(d.left=d.left-this.outerWidth()+a.outerWidth()),(a.outerWidth()<this.outerWidth()||c.small()||this.hasClass(b.mega_menu))&&c.adjust_pip(this,a,b,d),c.rtl?{left:d.left-this.outerWidth()+a.outerWidth(),top:d.top+a.outerHeight()}:{left:d.left,top:d.top+a.outerHeight()}},left:function(a,b){var c=Foundation.libs.dropdown.dirs._base.call(this,a,b);return this.addClass("drop-left"),1==c.missLeft&&(c.left=c.left+this.outerWidth(),c.top=c.top+a.outerHeight(),this.removeClass("drop-left")),{left:c.left-this.outerWidth(),top:c.top}},right:function(a,b){var c=Foundation.libs.dropdown.dirs._base.call(this,a,b);this.addClass("drop-right"),1==c.missRight?(c.left=c.left-this.outerWidth(),c.top=c.top+a.outerHeight(),this.removeClass("drop-right")):c.triggeredRight=!0;var d=Foundation.libs.dropdown;return(a.outerWidth()<this.outerWidth()||d.small()||this.hasClass(b.mega_menu))&&d.adjust_pip(this,a,b,c),{left:c.left+a.outerWidth(),top:c.top}}},adjust_pip:function(a,b,c,d){var e=Foundation.stylesheet,f=8;a.hasClass(c.mega_class)?f=d.left+b.outerWidth()/2-8:this.small()&&(f+=d.left-8),this.rule_idx=e.cssRules.length;var g=".f-dropdown.open:before",h=".f-dropdown.open:after",i="left: "+f+"px;",j="left: "+(f-1)+"px;";1==d.missRight&&(f=a.outerWidth()-23,g=".f-dropdown.open:before",h=".f-dropdown.open:after",i="left: "+f+"px;",j="left: "+(f-1)+"px;"),1==d.triggeredRight&&(g=".f-dropdown.open:before",h=".f-dropdown.open:after",i="left:-12px;",j="left:-14px;"),e.insertRule?(e.insertRule([g,"{",i,"}"].join(" "),this.rule_idx),e.insertRule([h,"{",j,"}"].join(" "),this.rule_idx+1)):(e.addRule(g,i,this.rule_idx),e.addRule(h,j,this.rule_idx+1))},clear_idx:function(){var a=Foundation.stylesheet;"undefined"!=typeof this.rule_idx&&(a.deleteRule(this.rule_idx),a.deleteRule(this.rule_idx),delete this.rule_idx)},small:function(){return matchMedia(Foundation.media_queries.small).matches&&!matchMedia(Foundation.media_queries.medium).matches},off:function(){this.S(this.scope).off(".fndtn.dropdown"),this.S("html, body").off(".fndtn.dropdown"),this.S(b).off(".fndtn.dropdown"),this.S("[data-dropdown-content]").off(".fndtn.dropdown")},reflow:function(){}}}(jQuery,window,window.document),function(a,b,c,d){"use strict";Foundation.libs.equalizer={name:"equalizer",version:"5.5.3",settings:{use_tallest:!0,before_height_change:a.noop,after_height_change:a.noop,equalize_on_stack:!1,act_on_hidden_el:!1},init:function(a,b,c){Foundation.inherit(this,"image_loaded"),this.bindings(b,c),this.reflow()},events:function(){this.S(b).off(".equalizer").on("resize.fndtn.equalizer",function(a){this.reflow()}.bind(this))},equalize:function(b){var c,d,e=!1,f=b.data("equalizer"),g=b.data(this.attr_name(!0)+"-init")||this.settings;if(c=g.act_on_hidden_el?f?b.find("["+this.attr_name()+'-watch="'+f+'"]'):b.find("["+this.attr_name()+"-watch]"):f?b.find("["+this.attr_name()+'-watch="'+f+'"]:visible'):b.find("["+this.attr_name()+"-watch]:visible"),0!==c.length&&(g.before_height_change(),b.trigger("before-height-change.fndth.equalizer"),c.height("inherit"),g.equalize_on_stack!==!1||(d=c.first().offset().top,c.each(function(){return a(this).offset().top!==d?(e=!0,!1):void 0}),!e))){var h=c.map(function(){return a(this).outerHeight(!1)}).get();if(g.use_tallest){var i=Math.max.apply(null,h);c.css("height",i)}else{var j=Math.min.apply(null,h);c.css("height",j)}g.after_height_change(),b.trigger("after-height-change.fndtn.equalizer")}},reflow:function(){var b=this;this.S("["+this.attr_name()+"]",this.scope).each(function(){var c=a(this),d=c.data("equalizer-mq"),e=!0;d&&(d="is_"+d.replace(/-/g,"_"),Foundation.utils.hasOwnProperty(d)&&(e=!1)),b.image_loaded(b.S("img",this),function(){if(e||Foundation.utils[d]())b.equalize(c);else{var a=c.find("["+b.attr_name()+"-watch]:visible");a.css("height","auto")}})})}}}(jQuery,window,window.document),function(a,b,c,d){"use strict";Foundation.libs.interchange={name:"interchange",version:"5.5.3",cache:{},images_loaded:!1,nodes_loaded:!1,settings:{load_attr:"interchange",named_queries:{"default":"only screen",small:Foundation.media_queries.small,"small-only":Foundation.media_queries["small-only"],medium:Foundation.media_queries.medium,"medium-only":Foundation.media_queries["medium-only"],large:Foundation.media_queries.large,"large-only":Foundation.media_queries["large-only"],xlarge:Foundation.media_queries.xlarge,"xlarge-only":Foundation.media_queries["xlarge-only"],xxlarge:Foundation.media_queries.xxlarge,landscape:"only screen and (orientation: landscape)",portrait:"only screen and (orientation: portrait)",retina:"only screen and (-webkit-min-device-pixel-ratio: 2),only screen and (min--moz-device-pixel-ratio: 2),only screen and (-o-min-device-pixel-ratio: 2/1),only screen and (min-device-pixel-ratio: 2),only screen and (min-resolution: 192dpi),only screen and (min-resolution: 2dppx)"},directives:{replace:function(b,c,d){if(null!==b&&/IMG/.test(b[0].nodeName)){var e=a.each(b,function(){this.src=c});if(new RegExp(c,"i").test(e))return;return b.attr("src",c),d(b[0].src)}var f=b.data(this.data_attr+"-last-path"),g=this;if(f!=c)return/\.(gif|jpg|jpeg|tiff|png)([?#].*)?/i.test(c)?(a(b).css("background-image","url("+c+")"),b.data("interchange-last-path",c),d(c)):a.get(c,function(a){b.html(a),b.data(g.data_attr+"-last-path",c),d()})}}},init:function(b,c,d){Foundation.inherit(this,"throttle random_str"),this.data_attr=this.set_data_attr(),a.extend(!0,this.settings,c,d),this.bindings(c,d),this.reflow()},get_media_hash:function(){var a="";for(var b in this.settings.named_queries)a+=matchMedia(this.settings.named_queries[b]).matches.toString();return a},events:function(){var c,d=this;return a(b).off(".interchange").on("resize.fndtn.interchange",d.throttle(function(){var a=d.get_media_hash();a!==c&&d.resize(),c=a},50)),this},resize:function(){var b=this.cache;if(!this.images_loaded||!this.nodes_loaded)return void setTimeout(a.proxy(this.resize,this),50);for(var c in b)if(b.hasOwnProperty(c)){var d=this.results(c,b[c]);d&&this.settings.directives[d.scenario[1]].call(this,d.el,d.scenario[0],function(a){if(arguments[0]instanceof Array)var b=arguments[0];else var b=Array.prototype.slice.call(arguments,0);return function(){a.el.trigger(a.scenario[1],b)}}(d))}},results:function(a,b){var c=b.length;if(c>0)for(var d=this.S("["+this.add_namespace("data-uuid")+'="'+a+'"]');c--;){var e,f=b[c][2];if(e=this.settings.named_queries.hasOwnProperty(f)?matchMedia(this.settings.named_queries[f]):matchMedia(f),e.matches)return{el:d,scenario:b[c]}}return!1},load:function(a,b){return("undefined"==typeof this["cached_"+a]||b)&&this["update_"+a](),this["cached_"+a]},update_images:function(){var a=this.S("img["+this.data_attr+"]"),b=a.length,c=b,d=0,e=this.data_attr;for(this.cache={},this.cached_images=[],this.images_loaded=0===b;c--;){if(d++,a[c]){var f=a[c].getAttribute(e)||"";f.length>0&&this.cached_images.push(a[c])}d===b&&(this.images_loaded=!0,this.enhance("images"))}return this},update_nodes:function(){var a=this.S("["+this.data_attr+"]").not("img"),b=a.length,c=b,d=0,e=this.data_attr;for(this.cached_nodes=[],this.nodes_loaded=0===b;c--;){d++;var f=a[c].getAttribute(e)||"";f.length>0&&this.cached_nodes.push(a[c]),d===b&&(this.nodes_loaded=!0,this.enhance("nodes"))}return this},enhance:function(c){for(var d=this["cached_"+c].length;d--;)this.object(a(this["cached_"+c][d]));return a(b).trigger("resize.fndtn.interchange")},convert_directive:function(a){var b=this.trim(a);return b.length>0?b:"replace"},parse_scenario:function(a){var b=a[0].match(/(.+),\s*(\w+)\s*$/),c=a[1].match(/(.*)\)/);if(b)var d=b[1],e=b[2];else var f=a[0].split(/,\s*$/),d=f[0],e="";return[this.trim(d),this.convert_directive(e),this.trim(c[1])]},object:function(a){var b=this.parse_data_attr(a),c=[],d=b.length;if(d>0)for(;d--;){var e=b[d].split(/,\s?\(/);if(e.length>1){var f=this.parse_scenario(e);c.push(f)}}return this.store(a,c)},store:function(a,b){var c=this.random_str(),d=a.data(this.add_namespace("uuid",!0));return this.cache[d]?this.cache[d]:(a.attr(this.add_namespace("data-uuid"),c),this.cache[c]=b)},trim:function(b){return"string"==typeof b?a.trim(b):b},set_data_attr:function(a){return a?this.namespace.length>0?this.namespace+"-"+this.settings.load_attr:this.settings.load_attr:this.namespace.length>0?"data-"+this.namespace+"-"+this.settings.load_attr:"data-"+this.settings.load_attr},parse_data_attr:function(a){for(var b=a.attr(this.attr_name()).split(/\[(.*?)\]/),c=b.length,d=[];c--;)b[c].replace(/[\W\d]+/,"").length>4&&d.push(b[c]);return d},reflow:function(){this.load("images",!0),this.load("nodes",!0)}}}(jQuery,window,window.document),function(a,b,c,d){"use strict";Foundation.libs.joyride={name:"joyride",version:"5.5.3",defaults:{expose:!1,modal:!0,keyboard:!0,tip_location:"bottom",nub_position:"auto",scroll_speed:1500,scroll_animation:"linear",timer:0,start_timer_on_click:!0,start_offset:0,next_button:!0,prev_button:!0,tip_animation:"fade",pause_after:[],exposed:[],tip_animation_fade_speed:300,cookie_monster:!1,cookie_name:"joyride",cookie_domain:!1,cookie_expires:365,tip_container:"body",abort_on_close:!0,tip_location_patterns:{top:["bottom"],bottom:[],left:["right","top","bottom"],right:["left","top","bottom"]},post_ride_callback:function(){},post_step_callback:function(){},pre_step_callback:function(){},pre_ride_callback:function(){},post_expose_callback:function(){},template:{link:'<a href="#close" class="joyride-close-tip">×</a>',timer:'<div class="joyride-timer-indicator-wrap"><span class="joyride-timer-indicator"></span></div>',tip:'<div class="joyride-tip-guide"><span class="joyride-nub"></span></div>',wrapper:'<div class="joyride-content-wrapper"></div>',button:'<a href="#" class="small button joyride-next-tip"></a>',prev_button:'<a href="#" class="small button joyride-prev-tip"></a>',modal:'<div class="joyride-modal-bg"></div>',expose:'<div class="joyride-expose-wrapper"></div>',expose_cover:'<div class="joyride-expose-cover"></div>'},expose_add_class:""},init:function(b,c,d){Foundation.inherit(this,"throttle random_str"),this.settings=this.settings||a.extend({},this.defaults,d||c),this.bindings(c,d)},go_next:function(){this.settings.$li.next().length<1?this.end():this.settings.timer>0?(clearTimeout(this.settings.automate),this.hide(),this.show(),this.startTimer()):(this.hide(),this.show())},go_prev:function(){this.settings.$li.prev().length<1||(this.settings.timer>0?(clearTimeout(this.settings.automate),this.hide(),this.show(null,!0),this.startTimer()):(this.hide(),this.show(null,!0)))},events:function(){var c=this;a(this.scope).off(".joyride").on("click.fndtn.joyride",".joyride-next-tip, .joyride-modal-bg",function(a){a.preventDefault(),this.go_next()}.bind(this)).on("click.fndtn.joyride",".joyride-prev-tip",function(a){a.preventDefault(),this.go_prev()}.bind(this)).on("click.fndtn.joyride",".joyride-close-tip",function(a){a.preventDefault(),this.end(this.settings.abort_on_close)}.bind(this)).on("keyup.fndtn.joyride",function(a){if(this.settings.keyboard&&this.settings.riding)switch(a.which){case 39:a.preventDefault(),this.go_next();break;case 37:a.preventDefault(),this.go_prev();break;case 27:a.preventDefault(),this.end(this.settings.abort_on_close)}}.bind(this)),a(b).off(".joyride").on("resize.fndtn.joyride",c.throttle(function(){if(a("["+c.attr_name()+"]").length>0&&c.settings.$next_tip&&c.settings.riding){if(c.settings.exposed.length>0){var b=a(c.settings.exposed);b.each(function(){var b=a(this);c.un_expose(b),c.expose(b)})}c.is_phone()?c.pos_phone():c.pos_default(!1)}},100))},start:function(){var b=this,c=a("["+this.attr_name()+"]",this.scope),d=["timer","scrollSpeed","startOffset","tipAnimationFadeSpeed","cookieExpires"],e=d.length;!c.length>0||(this.settings.init||this.events(),this.settings=c.data(this.attr_name(!0)+"-init"),this.settings.$content_el=c,this.settings.$body=a(this.settings.tip_container),this.settings.body_offset=a(this.settings.tip_container).position(),this.settings.$tip_content=this.settings.$content_el.find("> li"),this.settings.paused=!1,this.settings.attempts=0,this.settings.riding=!0,"function"!=typeof a.cookie&&(this.settings.cookie_monster=!1),(!this.settings.cookie_monster||this.settings.cookie_monster&&!a.cookie(this.settings.cookie_name))&&(this.settings.$tip_content.each(function(c){var f=a(this);this.settings=a.extend({},b.defaults,b.data_options(f));for(var g=e;g--;)b.settings[d[g]]=parseInt(b.settings[d[g]],10);b.create({$li:f,index:c})}),!this.settings.start_timer_on_click&&this.settings.timer>0?(this.show("init"),this.startTimer()):this.show("init")))},resume:function(){this.set_li(),this.show()},tip_template:function(b){var c,d;return b.tip_class=b.tip_class||"",c=a(this.settings.template.tip).addClass(b.tip_class),d=a.trim(a(b.li).html())+this.prev_button_text(b.prev_button_text,b.index)+this.button_text(b.button_text)+this.settings.template.link+this.timer_instance(b.index),c.append(a(this.settings.template.wrapper)),c.first().attr(this.add_namespace("data-index"),b.index),a(".joyride-content-wrapper",c).append(d),c[0]},timer_instance:function(b){var c;return c=0===b&&this.settings.start_timer_on_click&&this.settings.timer>0||0===this.settings.timer?"":a(this.settings.template.timer)[0].outerHTML},button_text:function(b){return this.settings.tip_settings.next_button?(b=a.trim(b)||"Next",b=a(this.settings.template.button).append(b)[0].outerHTML):b="",b},prev_button_text:function(b,c){return this.settings.tip_settings.prev_button?(b=a.trim(b)||"Previous",b=0==c?a(this.settings.template.prev_button).append(b).addClass("disabled")[0].outerHTML:a(this.settings.template.prev_button).append(b)[0].outerHTML):b="",b},create:function(b){this.settings.tip_settings=a.extend({},this.settings,this.data_options(b.$li));var c=b.$li.attr(this.add_namespace("data-button"))||b.$li.attr(this.add_namespace("data-text")),d=b.$li.attr(this.add_namespace("data-button-prev"))||b.$li.attr(this.add_namespace("data-prev-text")),e=b.$li.attr("class"),f=a(this.tip_template({tip_class:e,index:b.index,button_text:c,prev_button_text:d,li:b.$li}));a(this.settings.tip_container).append(f)},show:function(b,c){var e=null;if(this.settings.$li===d||-1===a.inArray(this.settings.$li.index(),this.settings.pause_after))if(this.settings.paused?this.settings.paused=!1:this.set_li(b,c),this.settings.attempts=0,this.settings.$li.length&&this.settings.$target.length>0){if(b&&(this.settings.pre_ride_callback(this.settings.$li.index(),this.settings.$next_tip),this.settings.modal&&this.show_modal()),this.settings.pre_step_callback(this.settings.$li.index(),this.settings.$next_tip),this.settings.modal&&this.settings.expose&&this.expose(),this.settings.tip_settings=a.extend({},this.settings,this.data_options(this.settings.$li)),this.settings.timer=parseInt(this.settings.timer,10),this.settings.tip_settings.tip_location_pattern=this.settings.tip_location_patterns[this.settings.tip_settings.tip_location],!/body/i.test(this.settings.$target.selector)&&!this.settings.expose){var f=a(".joyride-modal-bg");/pop/i.test(this.settings.tipAnimation)?f.hide():f.fadeOut(this.settings.tipAnimationFadeSpeed),this.scroll_to()}this.is_phone()?this.pos_phone(!0):this.pos_default(!0),e=this.settings.$next_tip.find(".joyride-timer-indicator"),/pop/i.test(this.settings.tip_animation)?(e.width(0),this.settings.timer>0?(this.settings.$next_tip.show(),setTimeout(function(){e.animate({width:e.parent().width()},this.settings.timer,"linear")}.bind(this),this.settings.tip_animation_fade_speed)):this.settings.$next_tip.show()):/fade/i.test(this.settings.tip_animation)&&(e.width(0),this.settings.timer>0?(this.settings.$next_tip.fadeIn(this.settings.tip_animation_fade_speed).show(),setTimeout(function(){e.animate({width:e.parent().width()},this.settings.timer,"linear")}.bind(this),this.settings.tip_animation_fade_speed)):this.settings.$next_tip.fadeIn(this.settings.tip_animation_fade_speed)),this.settings.$current_tip=this.settings.$next_tip}else this.settings.$li&&this.settings.$target.length<1?this.show(b,c):this.end();else this.settings.paused=!0},is_phone:function(){return matchMedia(Foundation.media_queries.small).matches&&!matchMedia(Foundation.media_queries.medium).matches},hide:function(){this.settings.modal&&this.settings.expose&&this.un_expose(),this.settings.modal||a(".joyride-modal-bg").hide(),this.settings.$current_tip.css("visibility","hidden"),setTimeout(a.proxy(function(){this.hide(),this.css("visibility","visible")},this.settings.$current_tip),0),this.settings.post_step_callback(this.settings.$li.index(),this.settings.$current_tip)},set_li:function(a,b){a?(this.settings.$li=this.settings.$tip_content.eq(this.settings.start_offset),this.set_next_tip(),this.settings.$current_tip=this.settings.$next_tip):(b?this.settings.$li=this.settings.$li.prev():this.settings.$li=this.settings.$li.next(),this.set_next_tip()),this.set_target()},set_next_tip:function(){this.settings.$next_tip=a(".joyride-tip-guide").eq(this.settings.$li.index()),this.settings.$next_tip.data("closed","")},set_target:function(){var b=this.settings.$li.attr(this.add_namespace("data-class")),d=this.settings.$li.attr(this.add_namespace("data-id")),e=function(){return d?a(c.getElementById(d)):b?a("."+b).first():a("body")};this.settings.$target=e()},scroll_to:function(){var c,d;c=a(b).height()/2,d=Math.ceil(this.settings.$target.offset().top-c+this.settings.$next_tip.outerHeight()),0!=d&&a("html, body").stop().animate({scrollTop:d},this.settings.scroll_speed,"swing")},paused:function(){return-1===a.inArray(this.settings.$li.index()+1,this.settings.pause_after)},restart:function(){this.hide(),this.settings.$li=d,this.show("init")},pos_default:function(a){var b=this.settings.$next_tip.find(".joyride-nub"),c=Math.ceil(b.outerWidth()/2),d=Math.ceil(b.outerHeight()/2),e=a||!1;if(e&&(this.settings.$next_tip.css("visibility","hidden"),this.settings.$next_tip.show()),/body/i.test(this.settings.$target.selector))this.settings.$li.length&&this.pos_modal(b);else{var f=this.settings.tip_settings.tipAdjustmentY?parseInt(this.settings.tip_settings.tipAdjustmentY):0,g=this.settings.tip_settings.tipAdjustmentX?parseInt(this.settings.tip_settings.tipAdjustmentX):0;this.bottom()?(this.rtl?this.settings.$next_tip.css({top:this.settings.$target.offset().top+d+this.settings.$target.outerHeight()+f,left:this.settings.$target.offset().left+this.settings.$target.outerWidth()-this.settings.$next_tip.outerWidth()+g}):this.settings.$next_tip.css({top:this.settings.$target.offset().top+d+this.settings.$target.outerHeight()+f,left:this.settings.$target.offset().left+g}),this.nub_position(b,this.settings.tip_settings.nub_position,"top")):this.top()?(this.rtl?this.settings.$next_tip.css({top:this.settings.$target.offset().top-this.settings.$next_tip.outerHeight()-d+f,left:this.settings.$target.offset().left+this.settings.$target.outerWidth()-this.settings.$next_tip.outerWidth()}):this.settings.$next_tip.css({top:this.settings.$target.offset().top-this.settings.$next_tip.outerHeight()-d+f,left:this.settings.$target.offset().left+g}),this.nub_position(b,this.settings.tip_settings.nub_position,"bottom")):this.right()?(this.settings.$next_tip.css({top:this.settings.$target.offset().top+f,left:this.settings.$target.outerWidth()+this.settings.$target.offset().left+c+g}),this.nub_position(b,this.settings.tip_settings.nub_position,"left")):this.left()&&(this.settings.$next_tip.css({top:this.settings.$target.offset().top+f,left:this.settings.$target.offset().left-this.settings.$next_tip.outerWidth()-c+g}),this.nub_position(b,this.settings.tip_settings.nub_position,"right")),!this.visible(this.corners(this.settings.$next_tip))&&this.settings.attempts<this.settings.tip_settings.tip_location_pattern.length&&(b.removeClass("bottom").removeClass("top").removeClass("right").removeClass("left"),this.settings.tip_settings.tip_location=this.settings.tip_settings.tip_location_pattern[this.settings.attempts],this.settings.attempts++,this.pos_default())}e&&(this.settings.$next_tip.hide(),this.settings.$next_tip.css("visibility","visible"))},pos_phone:function(b){var c=this.settings.$next_tip.outerHeight(),d=(this.settings.$next_tip.offset(),this.settings.$target.outerHeight()),e=a(".joyride-nub",this.settings.$next_tip),f=Math.ceil(e.outerHeight()/2),g=b||!1;e.removeClass("bottom").removeClass("top").removeClass("right").removeClass("left"),g&&(this.settings.$next_tip.css("visibility","hidden"),this.settings.$next_tip.show()),/body/i.test(this.settings.$target.selector)?this.settings.$li.length&&this.pos_modal(e):this.top()?(this.settings.$next_tip.offset({top:this.settings.$target.offset().top-c-f}),e.addClass("bottom")):(this.settings.$next_tip.offset({top:this.settings.$target.offset().top+d+f}),e.addClass("top")),g&&(this.settings.$next_tip.hide(),this.settings.$next_tip.css("visibility","visible"))},pos_modal:function(a){this.center(),a.hide(),this.show_modal()},show_modal:function(){if(!this.settings.$next_tip.data("closed")){var b=a(".joyride-modal-bg");if(b.length<1){var b=a(this.settings.template.modal);b.appendTo("body")}/pop/i.test(this.settings.tip_animation)?b.show():b.fadeIn(this.settings.tip_animation_fade_speed)}},expose:function(){var c,d,e,f,g,h="expose-"+this.random_str(6);if(arguments.length>0&&arguments[0]instanceof a)e=arguments[0];else{if(!this.settings.$target||/body/i.test(this.settings.$target.selector))return!1;e=this.settings.$target}return e.length<1?(b.console&&console.error("element not valid",e),!1):(c=a(this.settings.template.expose),this.settings.$body.append(c),c.css({top:e.offset().top,left:e.offset().left,width:e.outerWidth(!0),height:e.outerHeight(!0)}),d=a(this.settings.template.expose_cover),f={zIndex:e.css("z-index"),position:e.css("position")},g=null==e.attr("class")?"":e.attr("class"),e.css("z-index",parseInt(c.css("z-index"))+1),"static"==f.position&&e.css("position","relative"),e.data("expose-css",f),e.data("orig-class",g),e.attr("class",g+" "+this.settings.expose_add_class),d.css({top:e.offset().top,left:e.offset().left,width:e.outerWidth(!0),height:e.outerHeight(!0)}),this.settings.modal&&this.show_modal(),this.settings.$body.append(d),c.addClass(h),d.addClass(h),e.data("expose",h),this.settings.post_expose_callback(this.settings.$li.index(),this.settings.$next_tip,e),void this.add_exposed(e))},un_expose:function(){var c,d,e,f,g,h=!1;if(arguments.length>0&&arguments[0]instanceof a)d=arguments[0];else{if(!this.settings.$target||/body/i.test(this.settings.$target.selector))return!1;d=this.settings.$target}return d.length<1?(b.console&&console.error("element not valid",d),!1):(c=d.data("expose"),e=a("."+c),arguments.length>1&&(h=arguments[1]),h===!0?a(".joyride-expose-wrapper,.joyride-expose-cover").remove():e.remove(),f=d.data("expose-css"),"auto"==f.zIndex?d.css("z-index",""):d.css("z-index",f.zIndex),f.position!=d.css("position")&&("static"==f.position?d.css("position",""):d.css("position",f.position)),g=d.data("orig-class"),d.attr("class",g),d.removeData("orig-classes"),d.removeData("expose"),d.removeData("expose-z-index"),void this.remove_exposed(d))},add_exposed:function(b){this.settings.exposed=this.settings.exposed||[],b instanceof a||"object"==typeof b?this.settings.exposed.push(b[0]):"string"==typeof b&&this.settings.exposed.push(b)},remove_exposed:function(b){var c,d;for(b instanceof a?c=b[0]:"string"==typeof b&&(c=b),this.settings.exposed=this.settings.exposed||[],d=this.settings.exposed.length;d--;)if(this.settings.exposed[d]==c)return void this.settings.exposed.splice(d,1)},center:function(){var c=a(b);return this.settings.$next_tip.css({top:(c.height()-this.settings.$next_tip.outerHeight())/2+c.scrollTop(),left:(c.width()-this.settings.$next_tip.outerWidth())/2+c.scrollLeft()}),!0},bottom:function(){return/bottom/i.test(this.settings.tip_settings.tip_location)},top:function(){return/top/i.test(this.settings.tip_settings.tip_location)},right:function(){return/right/i.test(this.settings.tip_settings.tip_location)},left:function(){return/left/i.test(this.settings.tip_settings.tip_location)},corners:function(c){if(0===c.length)return[!1,!1,!1,!1];var d=a(b),e=d.height()/2,f=Math.ceil(this.settings.$target.offset().top-e+this.settings.$next_tip.outerHeight()),g=d.width()+d.scrollLeft(),h=d.height()+f,i=d.height()+d.scrollTop(),j=d.scrollTop();return j>f&&(j=0>f?0:f),h>i&&(i=h),[c.offset().top<j,g<c.offset().left+c.outerWidth(),i<c.offset().top+c.outerHeight(),d.scrollLeft()>c.offset().left]},visible:function(a){for(var b=a.length;b--;)if(a[b])return!1;return!0},nub_position:function(a,b,c){"auto"===b?a.addClass(c):a.addClass(b)},startTimer:function(){this.settings.$li.length?this.settings.automate=setTimeout(function(){this.hide(),this.show(),this.startTimer()}.bind(this),this.settings.timer):clearTimeout(this.settings.automate)},end:function(b){this.settings.cookie_monster&&a.cookie(this.settings.cookie_name,"ridden",{expires:this.settings.cookie_expires,domain:this.settings.cookie_domain}),this.settings.timer>0&&clearTimeout(this.settings.automate),this.settings.modal&&this.settings.expose&&this.un_expose(),a(this.scope).off("keyup.joyride"),this.settings.$next_tip.data("closed",!0),this.settings.riding=!1,a(".joyride-modal-bg").hide(),this.settings.$current_tip.hide(),("undefined"==typeof b||b===!1)&&(this.settings.post_step_callback(this.settings.$li.index(),this.settings.$current_tip),this.settings.post_ride_callback(this.settings.$li.index(),this.settings.$current_tip)),a(".joyride-tip-guide").remove()},off:function(){a(this.scope).off(".joyride"),a(b).off(".joyride"),a(".joyride-close-tip, .joyride-next-tip, .joyride-modal-bg").off(".joyride"),a(".joyride-tip-guide, .joyride-modal-bg").remove(),clearTimeout(this.settings.automate)},reflow:function(){}}}(jQuery,window,window.document),function(a,b,c,d){"use strict";Foundation.libs["magellan-expedition"]={name:"magellan-expedition",version:"5.5.3",settings:{active_class:"active",threshold:0,destination_threshold:20,throttle_delay:30,fixed_top:0,offset_by_height:!0,duration:700,easing:"swing"},init:function(a,b,c){Foundation.inherit(this,"throttle"),this.bindings(b,c)},events:function(){var b=this,c=b.S,d=b.settings;b.set_expedition_position(),c(b.scope).off(".magellan").on("click.fndtn.magellan","["+b.add_namespace("data-magellan-arrival")+"] a[href*=#]",function(c){var d=this.hostname===location.hostname||!this.hostname,e=b.filterPathname(location.pathname)===b.filterPathname(this.pathname),f=this.hash.replace(/(:|\.|\/)/g,"\\$1"),g=this;if(d&&e&&f){c.preventDefault();var h=a(this).closest("["+b.attr_name()+"]"),i=h.data("magellan-expedition-init"),j=this.hash.split("#").join(""),k=a('a[name="'+j+'"]');0===k.length&&(k=a("#"+j));var l=k.offset().top-i.destination_threshold+1;i.offset_by_height&&(l-=h.outerHeight()),a("html, body").stop().animate({scrollTop:l},i.duration,i.easing,function(){history.pushState?history.pushState(null,null,g.pathname+g.search+"#"+j):location.hash=g.pathname+g.search+"#"+j})}}).on("scroll.fndtn.magellan",b.throttle(this.check_for_arrivals.bind(this),d.throttle_delay))},check_for_arrivals:function(){var a=this;a.update_arrivals(),a.update_expedition_positions()},set_expedition_position:function(){var b=this;a("["+this.attr_name()+"=fixed]",b.scope).each(function(c,d){var e,f,g=a(this),h=g.data("magellan-expedition-init"),i=g.attr("styles");g.attr("style",""),e=g.offset().top+h.threshold,f=parseInt(g.data("magellan-fixed-top")),isNaN(f)||(b.settings.fixed_top=f),g.data(b.data_attr("magellan-top-offset"),e),g.attr("style",i)})},update_expedition_positions:function(){var c=this,d=a(b).scrollTop();a("["+this.attr_name()+"=fixed]",c.scope).each(function(){var b=a(this),e=b.data("magellan-expedition-init"),f=b.attr("style"),g=b.data("magellan-top-offset");if(d+c.settings.fixed_top>=g){var h=b.prev("["+c.add_namespace("data-magellan-expedition-clone")+"]");0===h.length&&(h=b.clone(),h.removeAttr(c.attr_name()),h.attr(c.add_namespace("data-magellan-expedition-clone"),""),b.before(h)),b.css({position:"fixed",top:e.fixed_top}).addClass("fixed")}else b.prev("["+c.add_namespace("data-magellan-expedition-clone")+"]").remove(),b.attr("style",f).css("position","").css("top","").removeClass("fixed")})},update_arrivals:function(){var c=this,d=a(b).scrollTop();a("["+this.attr_name()+"]",c.scope).each(function(){var b=a(this),e=b.data(c.attr_name(!0)+"-init"),f=c.offsets(b,d),g=b.find("["+c.add_namespace("data-magellan-arrival")+"]"),h=!1;f.each(function(a,d){if(d.viewport_offset>=d.top_offset){var f=b.find("["+c.add_namespace("data-magellan-arrival")+"]");return f.not(d.arrival).removeClass(e.active_class),d.arrival.addClass(e.active_class),h=!0,!0}}),h||g.removeClass(e.active_class)})},offsets:function(b,c){var d=this,e=b.data(d.attr_name(!0)+"-init"),f=c;return b.find("["+d.add_namespace("data-magellan-arrival")+"]").map(function(c,g){var h=a(this).data(d.data_attr("magellan-arrival")),i=a("["+d.add_namespace("data-magellan-destination")+"="+h+"]");if(i.length>0){var j=i.offset().top-e.destination_threshold;return e.offset_by_height&&(j-=b.outerHeight()),j=Math.floor(j),{destination:i,arrival:a(this),top_offset:j,viewport_offset:f}}}).sort(function(a,b){return a.top_offset<b.top_offset?-1:a.top_offset>b.top_offset?1:0})},data_attr:function(a){return this.namespace.length>0?this.namespace+"-"+a:a},off:function(){this.S(this.scope).off(".magellan"),this.S(b).off(".magellan")},filterPathname:function(a){return a=a||"",a.replace(/^\//,"").replace(/(?:index|default).[a-zA-Z]{3,4}$/,"").replace(/\/$/,"")},reflow:function(){var b=this;a("["+b.add_namespace("data-magellan-expedition-clone")+"]",b.scope).remove()}}}(jQuery,window,window.document),function(a,b,c,d){"use strict";Foundation.libs.offcanvas={name:"offcanvas",version:"5.5.3",settings:{open_method:"move",close_on_click:!1},init:function(a,b,c){this.bindings(b,c)},events:function(){var b=this,c=b.S,d="",e="",f="",g="",h="";"move"===this.settings.open_method?(d="move-",e="right",f="left",g="top",h="bottom"):"overlap_single"===this.settings.open_method?(d="offcanvas-overlap-",e="right",f="left",g="top",h="bottom"):"overlap"===this.settings.open_method&&(d="offcanvas-overlap"),c(this.scope).off(".offcanvas").on("click.fndtn.offcanvas",".left-off-canvas-toggle",function(f){b.click_toggle_class(f,d+e),"overlap"!==b.settings.open_method&&c(".left-submenu").removeClass(d+e),a(".left-off-canvas-toggle").attr("aria-expanded","true")}).on("click.fndtn.offcanvas",".left-off-canvas-menu a",function(f){var g=b.get_settings(f),h=c(this).parent();!g.close_on_click||h.hasClass("has-submenu")||h.hasClass("back")?c(this).parent().hasClass("has-submenu")?(f.preventDefault(),c(this).siblings(".left-submenu").toggleClass(d+e)):h.hasClass("back")&&(f.preventDefault(),h.parent().removeClass(d+e)):(b.hide.call(b,d+e,b.get_wrapper(f)),h.parent().removeClass(d+e)),a(".left-off-canvas-toggle").attr("aria-expanded","true")}).on("click.fndtn.offcanvas",".right-off-canvas-toggle",function(e){b.click_toggle_class(e,d+f),"overlap"!==b.settings.open_method&&c(".right-submenu").removeClass(d+f),a(".right-off-canvas-toggle").attr("aria-expanded","true")}).on("click.fndtn.offcanvas",".right-off-canvas-menu a",function(e){var g=b.get_settings(e),h=c(this).parent();!g.close_on_click||h.hasClass("has-submenu")||h.hasClass("back")?c(this).parent().hasClass("has-submenu")?(e.preventDefault(),c(this).siblings(".right-submenu").toggleClass(d+f)):h.hasClass("back")&&(e.preventDefault(),h.parent().removeClass(d+f)):(b.hide.call(b,d+f,b.get_wrapper(e)),h.parent().removeClass(d+f)),a(".right-off-canvas-toggle").attr("aria-expanded","true");
+}).on("click.fndtn.offcanvas",".top-off-canvas-toggle",function(e){b.click_toggle_class(e,d+h),"overlap"!==b.settings.open_method&&c(".top-submenu").removeClass(d+h),a(".top-off-canvas-toggle").attr("aria-expanded","true")}).on("click.fndtn.offcanvas",".top-off-canvas-menu a",function(e){var f=b.get_settings(e),g=c(this).parent();!f.close_on_click||g.hasClass("has-submenu")||g.hasClass("back")?c(this).parent().hasClass("has-submenu")?(e.preventDefault(),c(this).siblings(".top-submenu").toggleClass(d+h)):g.hasClass("back")&&(e.preventDefault(),g.parent().removeClass(d+h)):(b.hide.call(b,d+h,b.get_wrapper(e)),g.parent().removeClass(d+h)),a(".top-off-canvas-toggle").attr("aria-expanded","true")}).on("click.fndtn.offcanvas",".bottom-off-canvas-toggle",function(e){b.click_toggle_class(e,d+g),"overlap"!==b.settings.open_method&&c(".bottom-submenu").removeClass(d+g),a(".bottom-off-canvas-toggle").attr("aria-expanded","true")}).on("click.fndtn.offcanvas",".bottom-off-canvas-menu a",function(e){var f=b.get_settings(e),h=c(this).parent();!f.close_on_click||h.hasClass("has-submenu")||h.hasClass("back")?c(this).parent().hasClass("has-submenu")?(e.preventDefault(),c(this).siblings(".bottom-submenu").toggleClass(d+g)):h.hasClass("back")&&(e.preventDefault(),h.parent().removeClass(d+g)):(b.hide.call(b,d+g,b.get_wrapper(e)),h.parent().removeClass(d+g)),a(".bottom-off-canvas-toggle").attr("aria-expanded","true")}).on("click.fndtn.offcanvas",".exit-off-canvas",function(g){b.click_remove_class(g,d+f),c(".right-submenu").removeClass(d+f),e&&(b.click_remove_class(g,d+e),c(".left-submenu").removeClass(d+f)),a(".right-off-canvas-toggle").attr("aria-expanded","true")}).on("click.fndtn.offcanvas",".exit-off-canvas",function(c){b.click_remove_class(c,d+f),a(".left-off-canvas-toggle").attr("aria-expanded","false"),e&&(b.click_remove_class(c,d+e),a(".right-off-canvas-toggle").attr("aria-expanded","false"))}).on("click.fndtn.offcanvas",".exit-off-canvas",function(e){b.click_remove_class(e,d+g),c(".bottom-submenu").removeClass(d+g),h&&(b.click_remove_class(e,d+h),c(".top-submenu").removeClass(d+g)),a(".bottom-off-canvas-toggle").attr("aria-expanded","true")}).on("click.fndtn.offcanvas",".exit-off-canvas",function(c){b.click_remove_class(c,d+g),a(".top-off-canvas-toggle").attr("aria-expanded","false"),h&&(b.click_remove_class(c,d+h),a(".bottom-off-canvas-toggle").attr("aria-expanded","false"))})},toggle:function(a,b){b=b||this.get_wrapper(),b.is("."+a)?this.hide(a,b):this.show(a,b)},show:function(a,b){b=b||this.get_wrapper(),b.trigger("open.fndtn.offcanvas"),b.addClass(a)},hide:function(a,b){b=b||this.get_wrapper(),b.trigger("close.fndtn.offcanvas"),b.removeClass(a)},click_toggle_class:function(a,b){a.preventDefault();var c=this.get_wrapper(a);this.toggle(b,c)},click_remove_class:function(a,b){a.preventDefault();var c=this.get_wrapper(a);this.hide(b,c)},get_settings:function(a){var b=this.S(a.target).closest("["+this.attr_name()+"]");return b.data(this.attr_name(!0)+"-init")||this.settings},get_wrapper:function(a){var b=this.S(a?a.target:this.scope).closest(".off-canvas-wrap");return 0===b.length&&(b=this.S(".off-canvas-wrap")),b},reflow:function(){}}}(jQuery,window,window.document),function(a,b,c,d){"use strict";var e=function(){},f=function(e,f){if(e.hasClass(f.slides_container_class))return this;var j,k,l,m,n,o,p=this,q=e,r=0,s=!1;p.slides=function(){return q.children(f.slide_selector)},p.slides().first().addClass(f.active_slide_class),p.update_slide_number=function(b){f.slide_number&&(k.find("span:first").text(parseInt(b)+1),k.find("span:last").text(p.slides().length)),f.bullets&&(l.children().removeClass(f.bullets_active_class),a(l.children().get(b)).addClass(f.bullets_active_class))},p.update_active_link=function(b){var c=a('[data-orbit-link="'+p.slides().eq(b).attr("data-orbit-slide")+'"]');c.siblings().removeClass(f.bullets_active_class),c.addClass(f.bullets_active_class)},p.build_markup=function(){q.wrap('<div class="'+f.container_class+'"></div>'),j=q.parent(),q.addClass(f.slides_container_class),f.stack_on_small&&j.addClass(f.stack_on_small_class),f.navigation_arrows&&(j.append(a('<a href="#"><span></span></a>').addClass(f.prev_class)),j.append(a('<a href="#"><span></span></a>').addClass(f.next_class))),f.timer&&(m=a("<div>").addClass(f.timer_container_class),m.append("<span>"),m.append(a("<div>").addClass(f.timer_progress_class)),m.addClass(f.timer_paused_class),j.append(m)),f.slide_number&&(k=a("<div>").addClass(f.slide_number_class),k.append("<span></span> "+f.slide_number_text+" <span></span>"),j.append(k)),f.bullets&&(l=a("<ol>").addClass(f.bullets_container_class),j.append(l),l.wrap('<div class="orbit-bullets-container"></div>'),p.slides().each(function(b,c){var d=a("<li>").attr("data-orbit-slide",b).on("click",p.link_bullet);l.append(d)}))},p._goto=function(b,c){if(b===r)return!1;"object"==typeof o&&o.restart();var d=p.slides(),e="next";if(s=!0,r>b&&(e="prev"),b>=d.length){if(!f.circular)return!1;b=0}else if(0>b){if(!f.circular)return!1;b=d.length-1}var g=a(d.get(r)),h=a(d.get(b));g.css("zIndex",2),g.removeClass(f.active_slide_class),h.css("zIndex",4).addClass(f.active_slide_class),q.trigger("before-slide-change.fndtn.orbit"),f.before_slide_change(),p.update_active_link(b);var i=function(){var a=function(){r=b,s=!1,c===!0&&(o=p.create_timer(),o.start()),p.update_slide_number(r),q.trigger("after-slide-change.fndtn.orbit",[{slide_number:r,total_slides:d.length}]),f.after_slide_change(r,d.length)};q.outerHeight()!=h.outerHeight()&&f.variable_height?q.animate({height:h.outerHeight()},250,"linear",a):a()};if(1===d.length)return i(),!1;var j=function(){"next"===e&&n.next(g,h,i),"prev"===e&&n.prev(g,h,i)};h.outerHeight()>q.outerHeight()&&f.variable_height?q.animate({height:h.outerHeight()},250,"linear",j):j()},p.next=function(a){a.stopImmediatePropagation(),a.preventDefault(),p._goto(r+1)},p.prev=function(a){a.stopImmediatePropagation(),a.preventDefault(),p._goto(r-1)},p.link_custom=function(b){b.preventDefault();var c=a(this).attr("data-orbit-link");if("string"==typeof c&&""!=(c=a.trim(c))){var d=j.find("[data-orbit-slide="+c+"]");-1!=d.index()&&p._goto(d.index())}},p.link_bullet=function(b){var c=a(this).attr("data-orbit-slide");if("string"==typeof c&&""!=(c=a.trim(c)))if(isNaN(parseInt(c))){var d=j.find("[data-orbit-slide="+c+"]");-1!=d.index()&&p._goto(d.index()+1)}else p._goto(parseInt(c))},p.timer_callback=function(){p._goto(r+1,!0)},p.compute_dimensions=function(){var b=a(p.slides().get(r)),c=b.outerHeight();f.variable_height||p.slides().each(function(){a(this).outerHeight()>c&&(c=a(this).outerHeight())}),q.height(c)},p.create_timer=function(){var a=new g(j.find("."+f.timer_container_class),f,p.timer_callback);return a},p.stop_timer=function(){"object"==typeof o&&o.stop()},p.toggle_timer=function(){var a=j.find("."+f.timer_container_class);a.hasClass(f.timer_paused_class)?("undefined"==typeof o&&(o=p.create_timer()),o.start()):"object"==typeof o&&o.stop()},p.init=function(){p.build_markup(),f.timer&&(o=p.create_timer(),Foundation.utils.image_loaded(this.slides().children("img"),o.start)),n=new i(f,q),"slide"===f.animation&&(n=new h(f,q)),j.on("click","."+f.next_class,p.next),j.on("click","."+f.prev_class,p.prev),f.next_on_click&&j.on("click","."+f.slides_container_class+" [data-orbit-slide]",p.link_bullet),j.on("click",p.toggle_timer),f.swipe&&j.on("touchstart.fndtn.orbit",function(a){a.touches||(a=a.originalEvent);var b={start_page_x:a.touches[0].pageX,start_page_y:a.touches[0].pageY,start_time:(new Date).getTime(),delta_x:0,is_scrolling:d};j.data("swipe-transition",b),a.stopPropagation()}).on("touchmove.fndtn.orbit",function(a){if(a.touches||(a=a.originalEvent),!(a.touches.length>1||a.scale&&1!==a.scale)){var b=j.data("swipe-transition");if("undefined"==typeof b&&(b={}),b.delta_x=a.touches[0].pageX-b.start_page_x,"undefined"==typeof b.is_scrolling&&(b.is_scrolling=!!(b.is_scrolling||Math.abs(b.delta_x)<Math.abs(a.touches[0].pageY-b.start_page_y))),!b.is_scrolling&&!b.active){a.preventDefault();var c=b.delta_x<0?r+1:r-1;b.active=!0,p._goto(c)}}}).on("touchend.fndtn.orbit",function(a){j.data("swipe-transition",{}),a.stopPropagation()}),j.on("mouseenter.fndtn.orbit",function(a){f.timer&&f.pause_on_hover&&p.stop_timer()}).on("mouseleave.fndtn.orbit",function(a){f.timer&&f.resume_on_mouseout&&o.start()}),a(c).on("click","[data-orbit-link]",p.link_custom),a(b).on("load resize",p.compute_dimensions),Foundation.utils.image_loaded(this.slides().children("img"),p.compute_dimensions),Foundation.utils.image_loaded(this.slides().children("img"),function(){j.prev("."+f.preloader_class).css("display","none"),p.update_slide_number(0),p.update_active_link(0),q.trigger("ready.fndtn.orbit")})},p.init()},g=function(a,b,c){var d,e,f=this,g=b.timer_speed,h=a.find("."+b.timer_progress_class),i=-1;this.update_progress=function(a){var b=h.clone();b.attr("style",""),b.css("width",a+"%"),h.replaceWith(b),h=b},this.restart=function(){clearTimeout(e),a.addClass(b.timer_paused_class),i=-1,f.update_progress(0)},this.start=function(){return a.hasClass(b.timer_paused_class)?(i=-1===i?g:i,a.removeClass(b.timer_paused_class),d=(new Date).getTime(),h.animate({width:"100%"},i,"linear"),e=setTimeout(function(){f.restart(),c()},i),void a.trigger("timer-started.fndtn.orbit")):!0},this.stop=function(){if(a.hasClass(b.timer_paused_class))return!0;clearTimeout(e),a.addClass(b.timer_paused_class);var c=(new Date).getTime();i-=c-d;var h=100-i/g*100;f.update_progress(h),a.trigger("timer-stopped.fndtn.orbit")}},h=function(b,c){var d=b.animation_speed,e=1===a("html[dir=rtl]").length,f=e?"marginRight":"marginLeft",g={};g[f]="0%",this.next=function(a,b,c){a.animate({marginLeft:"-100%"},d),b.animate(g,d,function(){a.css(f,"100%"),c()})},this.prev=function(a,b,c){a.animate({marginLeft:"100%"},d),b.css(f,"-100%"),b.animate(g,d,function(){a.css(f,"100%"),c()})}},i=function(b,c){var d=b.animation_speed;1===a("html[dir=rtl]").length;this.next=function(a,b,c){b.css({margin:"0%",opacity:"0.01"}),b.animate({opacity:"1"},d,"linear",function(){a.css("margin","100%"),c()})},this.prev=function(a,b,c){b.css({margin:"0%",opacity:"0.01"}),b.animate({opacity:"1"},d,"linear",function(){a.css("margin","100%"),c()})}};Foundation.libs=Foundation.libs||{},Foundation.libs.orbit={name:"orbit",version:"5.5.3",settings:{animation:"slide",timer_speed:1e4,pause_on_hover:!0,resume_on_mouseout:!1,next_on_click:!0,animation_speed:500,stack_on_small:!1,navigation_arrows:!0,slide_number:!0,slide_number_text:"of",container_class:"orbit-container",stack_on_small_class:"orbit-stack-on-small",next_class:"orbit-next",prev_class:"orbit-prev",timer_container_class:"orbit-timer",timer_paused_class:"paused",timer_progress_class:"orbit-progress",slides_container_class:"orbit-slides-container",preloader_class:"preloader",slide_selector:"*",bullets_container_class:"orbit-bullets",bullets_active_class:"active",slide_number_class:"orbit-slide-number",caption_class:"orbit-caption",active_slide_class:"active",orbit_transition_class:"orbit-transitioning",bullets:!0,circular:!0,timer:!0,variable_height:!1,swipe:!0,before_slide_change:e,after_slide_change:e},init:function(a,b,c){this.bindings(b,c)},events:function(a){var b=new f(this.S(a),this.S(a).data("orbit-init"));this.S(a).data(this.name+"-instance",b)},reflow:function(){var a=this;if(a.S(a.scope).is("[data-orbit]")){var b=a.S(a.scope),c=b.data(a.name+"-instance");c.compute_dimensions()}else a.S("[data-orbit]",a.scope).each(function(b,c){var d=a.S(c),e=(a.data_options(d),d.data(a.name+"-instance"));e.compute_dimensions()})}}}(jQuery,window,window.document),function(a,b,c,d){"use strict";function e(a){var b=/fade/i.test(a),c=/pop/i.test(a);return{animate:b||c,pop:c,fade:b}}var f=[];Foundation.libs.reveal={name:"reveal",version:"5.5.3",locked:!1,settings:{animation:"fadeAndPop",animation_speed:250,close_on_background_click:!0,close_on_esc:!0,dismiss_modal_class:"close-reveal-modal",multiple_opened:!1,bg_class:"reveal-modal-bg",root_element:"body",open:function(){},opened:function(){},close:function(){},closed:function(){},on_ajax_error:a.noop,bg:a(".reveal-modal-bg"),css:{open:{opacity:0,visibility:"visible",display:"block"},close:{opacity:1,visibility:"hidden",display:"none"}}},init:function(b,c,d){a.extend(!0,this.settings,c,d),this.bindings(c,d)},events:function(a){var b=this,d=b.S;return d(this.scope).off(".reveal").on("click.fndtn.reveal","["+this.add_namespace("data-reveal-id")+"]:not([disabled])",function(a){if(a.preventDefault(),!b.locked){var c=d(this),e=c.data(b.data_attr("reveal-ajax")),f=c.data(b.data_attr("reveal-replace-content"));if(b.locked=!0,"undefined"==typeof e)b.open.call(b,c);else{var g=e===!0?c.attr("href"):e;b.open.call(b,c,{url:g},{replaceContentSel:f})}}}),d(c).on("click.fndtn.reveal",this.close_targets(),function(a){if(a.preventDefault(),!b.locked){var c=d("["+b.attr_name()+"].open").data(b.attr_name(!0)+"-init")||b.settings,e=d(a.target)[0]===d("."+c.bg_class)[0];if(e){if(!c.close_on_background_click)return;a.stopPropagation()}b.locked=!0,b.close.call(b,e?d("["+b.attr_name()+"].open:not(.toback)"):d(this).closest("["+b.attr_name()+"]"))}}),d("["+b.attr_name()+"]",this.scope).length>0?d(this.scope).on("open.fndtn.reveal",this.settings.open).on("opened.fndtn.reveal",this.settings.opened).on("opened.fndtn.reveal",this.open_video).on("close.fndtn.reveal",this.settings.close).on("closed.fndtn.reveal",this.settings.closed).on("closed.fndtn.reveal",this.close_video):d(this.scope).on("open.fndtn.reveal","["+b.attr_name()+"]",this.settings.open).on("opened.fndtn.reveal","["+b.attr_name()+"]",this.settings.opened).on("opened.fndtn.reveal","["+b.attr_name()+"]",this.open_video).on("close.fndtn.reveal","["+b.attr_name()+"]",this.settings.close).on("closed.fndtn.reveal","["+b.attr_name()+"]",this.settings.closed).on("closed.fndtn.reveal","["+b.attr_name()+"]",this.close_video),!0},key_up_on:function(a){var b=this;return b.S("body").off("keyup.fndtn.reveal").on("keyup.fndtn.reveal",function(a){var c=b.S("["+b.attr_name()+"].open"),d=c.data(b.attr_name(!0)+"-init")||b.settings;d&&27===a.which&&d.close_on_esc&&!b.locked&&b.close.call(b,c)}),!0},key_up_off:function(a){return this.S("body").off("keyup.fndtn.reveal"),!0},open:function(c,e){var g,h=this;c?"undefined"!=typeof c.selector?g=h.S("#"+c.data(h.data_attr("reveal-id"))).first():(g=h.S(this.scope),e=c):g=h.S(this.scope);var i=g.data(h.attr_name(!0)+"-init");if(i=i||this.settings,g.hasClass("open")&&c!==d&&c.attr("data-reveal-id")==g.attr("id"))return h.close(g);if(!g.hasClass("open")){var j=h.S("["+h.attr_name()+"].open");"undefined"==typeof g.data("css-top")&&g.data("css-top",parseInt(g.css("top"),10)).data("offset",this.cache_offset(g)),g.attr("tabindex","0").attr("aria-hidden","false"),this.key_up_on(g),g.on("open.fndtn.reveal",function(a){"fndtn.reveal"!==a.namespace}),g.on("open.fndtn.reveal").trigger("open.fndtn.reveal"),j.length<1&&this.toggle_bg(g,!0),"string"==typeof e&&(e={url:e});var k=function(){j.length>0&&(i.multiple_opened?h.to_back(j):h.hide(j,i.css.close)),i.multiple_opened&&f.push(g),h.show(g,i.css.open)};if("undefined"!=typeof e&&e.url){var l="undefined"!=typeof e.success?e.success:null;a.extend(e,{success:function(b,c,d){if(a.isFunction(l)){var e=l(b,c,d);"string"==typeof e&&(b=e)}"undefined"!=typeof options&&"undefined"!=typeof options.replaceContentSel?g.find(options.replaceContentSel).html(b):g.html(b),h.S(g).foundation("section","reflow"),h.S(g).children().foundation(),k()}}),i.on_ajax_error!==a.noop&&a.extend(e,{error:i.on_ajax_error}),a.ajax(e)}else k()}h.S(b).trigger("resize")},close:function(b){var b=b&&b.length?b:this.S(this.scope),c=this.S("["+this.attr_name()+"].open"),d=b.data(this.attr_name(!0)+"-init")||this.settings,e=this;if(c.length>0)if(b.removeAttr("tabindex","0").attr("aria-hidden","true"),this.locked=!0,this.key_up_off(b),b.trigger("close.fndtn.reveal"),(d.multiple_opened&&1===c.length||!d.multiple_opened||b.length>1)&&(e.toggle_bg(b,!1),e.to_front(b)),d.multiple_opened){var g=b.is(":not(.toback)");e.hide(b,d.css.close,d),g?f.pop():f=a.grep(f,function(a){var c=a[0]===b[0];return c&&e.to_front(b),!c}),f.length>0&&e.to_front(f[f.length-1])}else e.hide(c,d.css.close,d)},close_targets:function(){var a="."+this.settings.dismiss_modal_class;return this.settings.close_on_background_click?a+", ."+this.settings.bg_class:a},toggle_bg:function(b,c){0===this.S("."+this.settings.bg_class).length&&(this.settings.bg=a("<div />",{"class":this.settings.bg_class}).appendTo("body").hide());var e=this.settings.bg.filter(":visible").length>0;c!=e&&((c==d?e:!c)?this.hide(this.settings.bg):this.show(this.settings.bg))},show:function(c,d){if(d){var f=c.data(this.attr_name(!0)+"-init")||this.settings,g=f.root_element,h=this;if(0===c.parent(g).length){var i=c.wrap('<div style="display: none;" />').parent();c.on("closed.fndtn.reveal.wrapped",function(){c.detach().appendTo(i),c.unwrap().unbind("closed.fndtn.reveal.wrapped")}),c.detach().appendTo(g)}var j=e(f.animation);if(j.animate||(this.locked=!1),j.pop){d.top=a(b).scrollTop()-c.data("offset")+"px";var k={top:a(b).scrollTop()+c.data("css-top")+"px",opacity:1};return setTimeout(function(){return c.css(d).animate(k,f.animation_speed,"linear",function(){h.locked=!1,c.trigger("opened.fndtn.reveal")}).addClass("open")},f.animation_speed/2)}if(d.top=a(b).scrollTop()+c.data("css-top")+"px",j.fade){var k={opacity:1};return setTimeout(function(){return c.css(d).animate(k,f.animation_speed,"linear",function(){h.locked=!1,c.trigger("opened.fndtn.reveal")}).addClass("open")},f.animation_speed/2)}return c.css(d).show().css({opacity:1}).addClass("open").trigger("opened.fndtn.reveal")}var f=this.settings;return e(f.animation).fade?c.fadeIn(f.animation_speed/2):(this.locked=!1,c.show())},to_back:function(a){a.addClass("toback")},to_front:function(a){a.removeClass("toback")},hide:function(c,d){if(d){var f=c.data(this.attr_name(!0)+"-init"),g=this;f=f||this.settings;var h=e(f.animation);if(h.animate||(this.locked=!1),h.pop){var i={top:-a(b).scrollTop()-c.data("offset")+"px",opacity:0};return setTimeout(function(){return c.animate(i,f.animation_speed,"linear",function(){g.locked=!1,c.css(d).trigger("closed.fndtn.reveal")}).removeClass("open")},f.animation_speed/2)}if(h.fade){var i={opacity:0};return setTimeout(function(){return c.animate(i,f.animation_speed,"linear",function(){g.locked=!1,c.css(d).trigger("closed.fndtn.reveal")}).removeClass("open")},f.animation_speed/2)}return c.hide().css(d).removeClass("open").trigger("closed.fndtn.reveal")}var f=this.settings;return e(f.animation).fade?c.fadeOut(f.animation_speed/2):c.hide()},close_video:function(b){var c=a(".flex-video",b.target),d=a("iframe",c);d.length>0&&(d.attr("data-src",d[0].src),d.attr("src",d.attr("src")),c.hide())},open_video:function(b){var c=a(".flex-video",b.target),e=c.find("iframe");if(e.length>0){var f=e.attr("data-src");if("string"==typeof f)e[0].src=e.attr("data-src");else{var g=e[0].src;e[0].src=d,e[0].src=g}c.show()}},data_attr:function(a){return this.namespace.length>0?this.namespace+"-"+a:a},cache_offset:function(a){var b=a.show().height()+parseInt(a.css("top"),10)+a.scrollY;return a.hide(),b},off:function(){a(this.scope).off(".fndtn.reveal")},reflow:function(){}}}(jQuery,window,window.document),function(a,b,c,d){"use strict";Foundation.libs.slider={name:"slider",version:"5.5.3",settings:{start:0,end:100,step:1,precision:2,initial:null,display_selector:"",vertical:!1,trigger_input_change:!1,on_change:function(){}},cache:{},init:function(a,b,c){Foundation.inherit(this,"throttle"),this.bindings(b,c),this.reflow()},events:function(){var c=this;a(this.scope).off(".slider").on("mousedown.fndtn.slider touchstart.fndtn.slider pointerdown.fndtn.slider","["+c.attr_name()+"]:not(.disabled, [disabled]) .range-slider-handle",function(b){c.cache.active||(b.preventDefault(),c.set_active_slider(a(b.target)))}).on("mousemove.fndtn.slider touchmove.fndtn.slider pointermove.fndtn.slider",function(d){if(c.cache.active)if(d.preventDefault(),a.data(c.cache.active[0],"settings").vertical){var e=0;d.pageY||(e=b.scrollY),c.calculate_position(c.cache.active,c.get_cursor_position(d,"y")+e)}else c.calculate_position(c.cache.active,c.get_cursor_position(d,"x"))}).on("mouseup.fndtn.slider touchend.fndtn.slider pointerup.fndtn.slider",function(d){if(!c.cache.active){var e="slider"===a(d.target).attr("role")?a(d.target):a(d.target).closest(".range-slider").find("[role='slider']");if(e.length&&!e.parent().hasClass("disabled")&&!e.parent().attr("disabled"))if(c.set_active_slider(e),a.data(c.cache.active[0],"settings").vertical){var f=0;d.pageY||(f=b.scrollY),c.calculate_position(c.cache.active,c.get_cursor_position(d,"y")+f)}else c.calculate_position(c.cache.active,c.get_cursor_position(d,"x"))}c.remove_active_slider()}).on("change.fndtn.slider",function(a){c.settings.on_change()}),c.S(b).on("resize.fndtn.slider",c.throttle(function(a){c.reflow()},300)),this.S("["+this.attr_name()+"]").each(function(){var b=a(this),d=b.children(".range-slider-handle")[0],e=c.initialize_settings(d);""!=e.display_selector&&a(e.display_selector).each(function(){a(this).attr("value")&&a(this).off("change").on("change",function(){b.foundation("slider","set_value",a(this).val())})})})},get_cursor_position:function(a,b){var c,d="page"+b.toUpperCase(),e="client"+b.toUpperCase();return"undefined"!=typeof a[d]?c=a[d]:"undefined"!=typeof a.originalEvent[e]?c=a.originalEvent[e]:a.originalEvent.touches&&a.originalEvent.touches[0]&&"undefined"!=typeof a.originalEvent.touches[0][e]?c=a.originalEvent.touches[0][e]:a.currentPoint&&"undefined"!=typeof a.currentPoint[b]&&(c=a.currentPoint[b]),c},set_active_slider:function(a){this.cache.active=a},remove_active_slider:function(){this.cache.active=null},calculate_position:function(b,c){var d=this,e=a.data(b[0],"settings"),f=(a.data(b[0],"handle_l"),a.data(b[0],"handle_o"),a.data(b[0],"bar_l")),g=a.data(b[0],"bar_o");requestAnimationFrame(function(){var a;a=Foundation.rtl&&!e.vertical?d.limit_to((g+f-c)/f,0,1):d.limit_to((c-g)/f,0,1),a=e.vertical?1-a:a;var h=d.normalized_value(a,e.start,e.end,e.step,e.precision);d.set_ui(b,h)})},set_ui:function(b,c){var d=a.data(b[0],"settings"),e=a.data(b[0],"handle_l"),f=a.data(b[0],"bar_l"),g=this.normalized_percentage(c,d.start,d.end),h=g*(f-e)-1,i=100*g,j=b.parent(),k=b.parent().children("input[type=hidden]");Foundation.rtl&&!d.vertical&&(h=-h),h=d.vertical?-h+f-e+1:h,this.set_translate(b,h,d.vertical),d.vertical?b.siblings(".range-slider-active-segment").css("height",i+"%"):b.siblings(".range-slider-active-segment").css("width",i+"%"),j.attr(this.attr_name(),c).trigger("change.fndtn.slider"),k.val(c),d.trigger_input_change&&k.trigger("change.fndtn.slider"),b[0].hasAttribute("aria-valuemin")||b.attr({"aria-valuemin":d.start,"aria-valuemax":d.end}),b.attr("aria-valuenow",c),""!=d.display_selector&&a(d.display_selector).each(function(){this.hasAttribute("value")?a(this).val(c):a(this).text(c)})},normalized_percentage:function(a,b,c){return Math.min(1,(a-b)/(c-b))},normalized_value:function(a,b,c,d,e){var f=c-b,g=a*f,h=(g-g%d)/d,i=g%d,j=i>=.5*d?d:0;return(h*d+j+b).toFixed(e)},set_translate:function(b,c,d){d?a(b).css("-webkit-transform","translateY("+c+"px)").css("-moz-transform","translateY("+c+"px)").css("-ms-transform","translateY("+c+"px)").css("-o-transform","translateY("+c+"px)").css("transform","translateY("+c+"px)"):a(b).css("-webkit-transform","translateX("+c+"px)").css("-moz-transform","translateX("+c+"px)").css("-ms-transform","translateX("+c+"px)").css("-o-transform","translateX("+c+"px)").css("transform","translateX("+c+"px)")},limit_to:function(a,b,c){return Math.min(Math.max(a,b),c)},initialize_settings:function(b){var c,d=a.extend({},this.settings,this.data_options(a(b).parent()));return null===d.precision&&(c=(""+d.step).match(/\.([\d]*)/),d.precision=c&&c[1]?c[1].length:0),d.vertical?(a.data(b,"bar_o",a(b).parent().offset().top),a.data(b,"bar_l",a(b).parent().outerHeight()),a.data(b,"handle_o",a(b).offset().top),a.data(b,"handle_l",a(b).outerHeight())):(a.data(b,"bar_o",a(b).parent().offset().left),a.data(b,"bar_l",a(b).parent().outerWidth()),a.data(b,"handle_o",a(b).offset().left),a.data(b,"handle_l",a(b).outerWidth())),a.data(b,"bar",a(b).parent()),a.data(b,"settings",d)},set_initial_position:function(b){var c=a.data(b.children(".range-slider-handle")[0],"settings"),d="number"!=typeof c.initial||isNaN(c.initial)?Math.floor(.5*(c.end-c.start)/c.step)*c.step+c.start:c.initial,e=b.children(".range-slider-handle");this.set_ui(e,d)},set_value:function(b){var c=this;a("["+c.attr_name()+"]",this.scope).each(function(){a(this).attr(c.attr_name(),b)}),a(this.scope).attr(c.attr_name())&&a(this.scope).attr(c.attr_name(),b),c.reflow()},reflow:function(){var b=this;b.S("["+this.attr_name()+"]").each(function(){var c=a(this).children(".range-slider-handle")[0],d=a(this).attr(b.attr_name());b.initialize_settings(c),d?b.set_ui(a(c),parseFloat(d)):b.set_initial_position(a(this))})}}}(jQuery,window,window.document),function(a,b,c,d){"use strict";Foundation.libs.tab={name:"tab",version:"5.5.3",settings:{active_class:"active",callback:function(){},deep_linking:!1,scroll_to_content:!0,is_hover:!1},default_tab_hashes:[],init:function(a,b,c){var d=this,e=this.S;e("["+this.attr_name()+"] > .active > a",this.scope).each(function(){d.default_tab_hashes.push(this.hash)}),this.bindings(b,c),this.handle_location_hash_change()},events:function(){var a=this,c=this.S,d=function(b,d){var e=c(d).closest("["+a.attr_name()+"]").data(a.attr_name(!0)+"-init");if(!e.is_hover||Modernizr.touch){var f=b.keyCode||b.which;9!==f&&(b.preventDefault(),b.stopPropagation()),a.toggle_active_tab(c(d).parent())}};c(this.scope).off(".tab").on("keydown.fndtn.tab","["+this.attr_name()+"] > * > a",function(a){var b=a.keyCode||a.which;if(13===b||32===b){var c=this;d(a,c)}}).on("click.fndtn.tab","["+this.attr_name()+"] > * > a",function(a){var b=this;d(a,b)}).on("mouseenter.fndtn.tab","["+this.attr_name()+"] > * > a",function(b){var d=c(this).closest("["+a.attr_name()+"]").data(a.attr_name(!0)+"-init");d.is_hover&&a.toggle_active_tab(c(this).parent())}),c(b).on("hashchange.fndtn.tab",function(b){b.preventDefault(),a.handle_location_hash_change()})},handle_location_hash_change:function(){var b=this,c=this.S;c("["+this.attr_name()+"]",this.scope).each(function(){var e=c(this).data(b.attr_name(!0)+"-init");if(e.deep_linking){var f;if(f=e.scroll_to_content?b.scope.location.hash:b.scope.location.hash.replace("fndtn-",""),""!=f){var g=c(f);if(g.hasClass("content")&&g.parent().hasClass("tabs-content"))b.toggle_active_tab(a("["+b.attr_name()+"] > * > a[href="+f+"]").parent());else{var h=g.closest(".content").attr("id");h!=d&&b.toggle_active_tab(a("["+b.attr_name()+"] > * > a[href=#"+h+"]").parent(),f)}}else for(var i=0;i<b.default_tab_hashes.length;i++)b.toggle_active_tab(a("["+b.attr_name()+"] > * > a[href="+b.default_tab_hashes[i]+"]").parent())}})},toggle_active_tab:function(e,f){var g=this,h=g.S,i=e.closest("["+this.attr_name()+"]"),j=e.find("a"),k=e.children("a").first(),l="#"+k.attr("href").split("#")[1],m=h(l),n=e.siblings(),o=i.data(this.attr_name(!0)+"-init"),p=function(b){var d,e=a(this),f=a(this).parents("li").prev().children('[role="tab"]'),g=a(this).parents("li").next().children('[role="tab"]');switch(b.keyCode){case 37:d=f;break;case 39:d=g;break;default:d=!1}d.length&&(e.attr({tabindex:"-1","aria-selected":null}),d.attr({tabindex:"0","aria-selected":!0}).focus()),a('[role="tabpanel"]').attr("aria-hidden","true"),a("#"+a(c.activeElement).attr("href").substring(1)).attr("aria-hidden",null)},q=function(a){var c=o.scroll_to_content?g.default_tab_hashes[0]:"fndtn-"+g.default_tab_hashes[0].replace("#","");(a!==c||b.location.hash)&&(b.location.hash=a)};k.data("tab-content")&&(l="#"+k.data("tab-content").split("#")[1],m=h(l)),o.deep_linking&&(o.scroll_to_content?(q(f||l),f==d||f==l?e.parent()[0].scrollIntoView():h(l)[0].scrollIntoView()):q(f!=d?"fndtn-"+f.replace("#",""):"fndtn-"+l.replace("#",""))),e.addClass(o.active_class).triggerHandler("opened"),j.attr({"aria-selected":"true",tabindex:0}),n.removeClass(o.active_class),n.find("a").attr({"aria-selected":"false"}),m.siblings().removeClass(o.active_class).attr({"aria-hidden":"true"}),m.addClass(o.active_class).attr("aria-hidden","false").removeAttr("tabindex"),o.callback(e),m.triggerHandler("toggled",[m]),i.triggerHandler("toggled",[e]),j.off("keydown").on("keydown",p)},data_attr:function(a){return this.namespace.length>0?this.namespace+"-"+a:a},off:function(){},reflow:function(){}}}(jQuery,window,window.document),function(a,b,c,d){"use strict";Foundation.libs.tooltip={name:"tooltip",version:"5.5.3",settings:{additional_inheritable_classes:[],tooltip_class:".tooltip",append_to:"body",touch_close_text:"Tap To Close",disable_for_touch:!1,hover_delay:200,fade_in_duration:150,fade_out_duration:150,show_on:"all",tip_template:function(a,b){return'<span data-selector="'+a+'" id="'+a+'" class="'+Foundation.libs.tooltip.settings.tooltip_class.substring(1)+'" role="tooltip">'+b+'<span class="nub"></span></span>'}},cache:{},init:function(a,b,c){Foundation.inherit(this,"random_str"),this.bindings(b,c)},should_show:function(b,c){var d=a.extend({},this.settings,this.data_options(b));return"all"===d.show_on?!0:this.small()&&"small"===d.show_on?!0:this.medium()&&"medium"===d.show_on?!0:this.large()&&"large"===d.show_on?!0:!1},medium:function(){return matchMedia(Foundation.media_queries.medium).matches},large:function(){return matchMedia(Foundation.media_queries.large).matches},events:function(b){function c(a,b,c){a.timer||(c?(a.timer=null,e.showTip(b)):a.timer=setTimeout(function(){a.timer=null,e.showTip(b)}.bind(a),e.settings.hover_delay))}function d(a,b){a.timer&&(clearTimeout(a.timer),a.timer=null),e.hide(b)}var e=this,f=e.S;e.create(this.S(b)),a(this.scope).off(".tooltip").on("mouseenter.fndtn.tooltip mouseleave.fndtn.tooltip touchstart.fndtn.tooltip MSPointerDown.fndtn.tooltip","["+this.attr_name()+"]",function(b){var g=f(this),h=a.extend({},e.settings,e.data_options(g)),i=!1;if(Modernizr.touch&&/touchstart|MSPointerDown/i.test(b.type)&&f(b.target).is("a"))return!1;if(/mouse/i.test(b.type)&&e.ie_touch(b))return!1;if(g.hasClass("open"))Modernizr.touch&&/touchstart|MSPointerDown/i.test(b.type)&&b.preventDefault(),e.hide(g);else{if(h.disable_for_touch&&Modernizr.touch&&/touchstart|MSPointerDown/i.test(b.type))return;if(!h.disable_for_touch&&Modernizr.touch&&/touchstart|MSPointerDown/i.test(b.type)&&(b.preventDefault(),f(h.tooltip_class+".open").hide(),i=!0,a(".open["+e.attr_name()+"]").length>0)){var j=f(a(".open["+e.attr_name()+"]")[0]);e.hide(j)}/enter|over/i.test(b.type)?c(this,g):"mouseout"===b.type||"mouseleave"===b.type?d(this,g):c(this,g,!0)}}).on("mouseleave.fndtn.tooltip touchstart.fndtn.tooltip MSPointerDown.fndtn.tooltip","["+this.attr_name()+"].open",function(b){return/mouse/i.test(b.type)&&e.ie_touch(b)?!1:void(("touch"!=a(this).data("tooltip-open-event-type")||"mouseleave"!=b.type)&&("mouse"==a(this).data("tooltip-open-event-type")&&/MSPointerDown|touchstart/i.test(b.type)?e.convert_to_touch(a(this)):d(this,a(this))))}).on("DOMNodeRemoved DOMAttrModified","["+this.attr_name()+"]:not(a)",function(a){d(this,f(this))})},ie_touch:function(a){return!1},showTip:function(a){var b=this.getTip(a);return this.should_show(a,b)?this.show(a):void 0},getTip:function(b){var c=this.selector(b),d=a.extend({},this.settings,this.data_options(b)),e=null;return c&&(e=this.S('span[data-selector="'+c+'"]'+d.tooltip_class)),"object"==typeof e?e:!1},selector:function(a){var b=a.attr(this.attr_name())||a.attr("data-selector");return"string"!=typeof b&&(b=this.random_str(6),a.attr("data-selector",b).attr("aria-describedby",b)),b},create:function(c){var d=this,e=a.extend({},this.settings,this.data_options(c)),f=this.settings.tip_template;"string"==typeof e.tip_template&&b.hasOwnProperty(e.tip_template)&&(f=b[e.tip_template]);
+var g=a(f(this.selector(c),a("<div></div>").html(c.attr("title")).html())),h=this.inheritable_classes(c);g.addClass(h).appendTo(e.append_to),Modernizr.touch&&(g.append('<span class="tap-to-close">'+e.touch_close_text+"</span>"),g.on("touchstart.fndtn.tooltip MSPointerDown.fndtn.tooltip",function(a){d.hide(c)})),c.removeAttr("title").attr("title","")},reposition:function(b,c,d){var e,f,g,h,i;c.css("visibility","hidden").show(),e=b.data("width"),f=c.children(".nub"),g=f.outerHeight(),h=f.outerWidth(),this.small()?c.css({width:"100%"}):c.css({width:e?e:"auto"}),i=function(a,b,c,d,e,f){return a.css({top:b?b:"auto",bottom:d?d:"auto",left:e?e:"auto",right:c?c:"auto"}).end()};var j=b.offset().top,k=b.offset().left,l=b.outerHeight();if(i(c,j+l+10,"auto","auto",k),this.small())i(c,j+l+10,"auto","auto",12.5,a(this.scope).width()),c.addClass("tip-override"),i(f,-g,"auto","auto",k);else{Foundation.rtl&&(f.addClass("rtl"),k=k+b.outerWidth()-c.outerWidth()),i(c,j+l+10,"auto","auto",k),f.attr("style")&&f.removeAttr("style"),c.removeClass("tip-override");var m=c.outerHeight();d&&d.indexOf("tip-top")>-1?(Foundation.rtl&&f.addClass("rtl"),i(c,j-m,"auto","auto",k).removeClass("tip-override")):d&&d.indexOf("tip-left")>-1?(i(c,j+l/2-m/2,"auto","auto",k-c.outerWidth()-g).removeClass("tip-override"),f.removeClass("rtl")):d&&d.indexOf("tip-right")>-1&&(i(c,j+l/2-m/2,"auto","auto",k+b.outerWidth()+g).removeClass("tip-override"),f.removeClass("rtl"))}c.css("visibility","visible").hide()},small:function(){return matchMedia(Foundation.media_queries.small).matches&&!matchMedia(Foundation.media_queries.medium).matches},inheritable_classes:function(b){var c=a.extend({},this.settings,this.data_options(b)),d=["tip-top","tip-left","tip-bottom","tip-right","radius","round"].concat(c.additional_inheritable_classes),e=b.attr("class"),f=e?a.map(e.split(" "),function(b,c){return-1!==a.inArray(b,d)?b:void 0}).join(" "):"";return a.trim(f)},convert_to_touch:function(b){var c=this,d=c.getTip(b),e=a.extend({},c.settings,c.data_options(b));0===d.find(".tap-to-close").length&&(d.append('<span class="tap-to-close">'+e.touch_close_text+"</span>"),d.on("click.fndtn.tooltip.tapclose touchstart.fndtn.tooltip.tapclose MSPointerDown.fndtn.tooltip.tapclose",function(a){c.hide(b)})),b.data("tooltip-open-event-type","touch")},show:function(a){var b=this.getTip(a);"touch"==a.data("tooltip-open-event-type")&&this.convert_to_touch(a),this.reposition(a,b,a.attr("class")),a.addClass("open"),b.fadeIn(this.settings.fade_in_duration)},hide:function(a){var b=this.getTip(a);b.fadeOut(this.settings.fade_out_duration,function(){b.find(".tap-to-close").remove(),b.off("click.fndtn.tooltip.tapclose MSPointerDown.fndtn.tapclose"),a.removeClass("open")})},off:function(){var b=this;this.S(this.scope).off(".fndtn.tooltip"),this.S(this.settings.tooltip_class).each(function(c){a("["+b.attr_name()+"]").eq(c).attr("title",a(this).text())}).remove()},reflow:function(){}}}(jQuery,window,window.document),function(a,b,c,d){"use strict";Foundation.libs.topbar={name:"topbar",version:"5.5.3",settings:{index:0,start_offset:0,sticky_class:"sticky",custom_back_text:!0,back_text:"Back",mobile_show_parent_link:!0,is_hover:!0,scrolltop:!0,sticky_on:"all",dropdown_autoclose:!0},init:function(b,c,d){Foundation.inherit(this,"add_custom_rule register_media throttle");var e=this;e.register_media("topbar","foundation-mq-topbar"),this.bindings(c,d),e.S("["+this.attr_name()+"]",this.scope).each(function(){var b=a(this),c=b.data(e.attr_name(!0)+"-init");e.S("section, .top-bar-section",this);b.data("index",0);var d=b.parent();d.hasClass("fixed")||e.is_sticky(b,d,c)?(e.settings.sticky_class=c.sticky_class,e.settings.sticky_topbar=b,b.data("height",d.outerHeight()),b.data("stickyoffset",d.offset().top)):b.data("height",b.outerHeight()),c.assembled||e.assemble(b),c.is_hover?e.S(".has-dropdown",b).addClass("not-click"):e.S(".has-dropdown",b).removeClass("not-click"),e.add_custom_rule(".f-topbar-fixed { padding-top: "+b.data("height")+"px }"),d.hasClass("fixed")&&e.S("body").addClass("f-topbar-fixed")})},is_sticky:function(a,b,c){var d=b.hasClass(c.sticky_class),e=matchMedia(Foundation.media_queries.small).matches,f=matchMedia(Foundation.media_queries.medium).matches,g=matchMedia(Foundation.media_queries.large).matches;return d&&"all"===c.sticky_on?!0:d&&this.small()&&-1!==c.sticky_on.indexOf("small")&&e&&!f&&!g?!0:d&&this.medium()&&-1!==c.sticky_on.indexOf("medium")&&e&&f&&!g?!0:d&&this.large()&&-1!==c.sticky_on.indexOf("large")&&e&&f&&g?!0:!1},toggle:function(c){var d,e=this;d=c?e.S(c).closest("["+this.attr_name()+"]"):e.S("["+this.attr_name()+"]");var f=d.data(this.attr_name(!0)+"-init"),g=e.S("section, .top-bar-section",d);e.breakpoint()&&(e.rtl?(g.css({right:"0%"}),a(">.name",g).css({right:"100%"})):(g.css({left:"0%"}),a(">.name",g).css({left:"100%"})),e.S("li.moved",g).removeClass("moved"),d.data("index",0),d.toggleClass("expanded").css("height","")),f.scrolltop?d.hasClass("expanded")?d.parent().hasClass("fixed")&&(f.scrolltop?(d.parent().removeClass("fixed"),d.addClass("fixed"),e.S("body").removeClass("f-topbar-fixed"),b.scrollTo(0,0)):d.parent().removeClass("expanded")):d.hasClass("fixed")&&(d.parent().addClass("fixed"),d.removeClass("fixed"),e.S("body").addClass("f-topbar-fixed")):(e.is_sticky(d,d.parent(),f)&&d.parent().addClass("fixed"),d.parent().hasClass("fixed")&&(d.hasClass("expanded")?(d.addClass("fixed"),d.parent().addClass("expanded"),e.S("body").addClass("f-topbar-fixed")):(d.removeClass("fixed"),d.parent().removeClass("expanded"),e.update_sticky_positioning())))},timer:null,events:function(c){var d=this,e=this.S;e(this.scope).off(".topbar").on("click.fndtn.topbar","["+this.attr_name()+"] .toggle-topbar",function(a){a.preventDefault(),d.toggle(this)}).on("click.fndtn.topbar contextmenu.fndtn.topbar",'.top-bar .top-bar-section li a[href^="#"],['+this.attr_name()+'] .top-bar-section li a[href^="#"]',function(b){var c=a(this).closest("li"),e=c.closest("["+d.attr_name()+"]"),f=e.data(d.attr_name(!0)+"-init");if(f.dropdown_autoclose&&f.is_hover){var g=a(this).closest(".hover");g.removeClass("hover")}!d.breakpoint()||c.hasClass("back")||c.hasClass("has-dropdown")||d.toggle()}).on("click.fndtn.topbar","["+this.attr_name()+"] li.has-dropdown",function(b){var c=e(this),f=e(b.target),g=c.closest("["+d.attr_name()+"]"),h=g.data(d.attr_name(!0)+"-init");return f.data("revealId")?void d.toggle():void(d.breakpoint()||(!h.is_hover||Modernizr.touch)&&(b.stopImmediatePropagation(),c.hasClass("hover")?(c.removeClass("hover").find("li").removeClass("hover"),c.parents("li.hover").removeClass("hover")):(c.addClass("hover"),a(c).siblings().removeClass("hover"),"A"===f[0].nodeName&&f.parent().hasClass("has-dropdown")&&b.preventDefault())))}).on("click.fndtn.topbar","["+this.attr_name()+"] .has-dropdown>a",function(a){if(d.breakpoint()){a.preventDefault();var b=e(this),c=b.closest("["+d.attr_name()+"]"),f=c.find("section, .top-bar-section"),g=(b.next(".dropdown").outerHeight(),b.closest("li"));c.data("index",c.data("index")+1),g.addClass("moved"),d.rtl?(f.css({right:-(100*c.data("index"))+"%"}),f.find(">.name").css({right:100*c.data("index")+"%"})):(f.css({left:-(100*c.data("index"))+"%"}),f.find(">.name").css({left:100*c.data("index")+"%"})),c.css("height",b.siblings("ul").outerHeight(!0)+c.data("height"))}}),e(b).off(".topbar").on("resize.fndtn.topbar",d.throttle(function(){d.resize.call(d)},50)).trigger("resize.fndtn.topbar").load(function(){e(this).trigger("resize.fndtn.topbar")}),e("body").off(".topbar").on("click.fndtn.topbar",function(a){var b=e(a.target).closest("li").closest("li.hover");b.length>0||e("["+d.attr_name()+"] li.hover").removeClass("hover")}),e(this.scope).on("click.fndtn.topbar","["+this.attr_name()+"] .has-dropdown .back",function(a){a.preventDefault();var b=e(this),c=b.closest("["+d.attr_name()+"]"),f=c.find("section, .top-bar-section"),g=(c.data(d.attr_name(!0)+"-init"),b.closest("li.moved")),h=g.parent();c.data("index",c.data("index")-1),d.rtl?(f.css({right:-(100*c.data("index"))+"%"}),f.find(">.name").css({right:100*c.data("index")+"%"})):(f.css({left:-(100*c.data("index"))+"%"}),f.find(">.name").css({left:100*c.data("index")+"%"})),0===c.data("index")?c.css("height",""):c.css("height",h.outerHeight(!0)+c.data("height")),setTimeout(function(){g.removeClass("moved")},300)}),e(this.scope).find(".dropdown a").focus(function(){a(this).parents(".has-dropdown").addClass("hover")}).blur(function(){a(this).parents(".has-dropdown").removeClass("hover")})},resize:function(){var a=this;a.S("["+this.attr_name()+"]").each(function(){var b,d=a.S(this),e=d.data(a.attr_name(!0)+"-init"),f=d.parent("."+a.settings.sticky_class);if(!a.breakpoint()){var g=d.hasClass("expanded");d.css("height","").removeClass("expanded").find("li").removeClass("hover"),g&&a.toggle(d)}a.is_sticky(d,f,e)&&(f.hasClass("fixed")?(f.removeClass("fixed"),b=f.offset().top,a.S(c.body).hasClass("f-topbar-fixed")&&(b-=d.data("height")),d.data("stickyoffset",b),f.addClass("fixed")):(b=f.offset().top,d.data("stickyoffset",b)))})},breakpoint:function(){return!matchMedia(Foundation.media_queries.topbar).matches},small:function(){return matchMedia(Foundation.media_queries.small).matches},medium:function(){return matchMedia(Foundation.media_queries.medium).matches},large:function(){return matchMedia(Foundation.media_queries.large).matches},assemble:function(b){var c=this,d=b.data(this.attr_name(!0)+"-init"),e=c.S("section, .top-bar-section",b);e.detach(),c.S(".has-dropdown>a",e).each(function(){var b,e=c.S(this),f=e.siblings(".dropdown"),g=e.attr("href");f.find(".title.back").length||(b=a(1==d.mobile_show_parent_link&&g?'<li class="title back js-generated"><h5><a href="javascript:void(0)"></a></h5></li><li class="parent-link hide-for-medium-up"><a class="parent-link js-generated" href="'+g+'">'+e.html()+"</a></li>":'<li class="title back js-generated"><h5><a href="javascript:void(0)"></a></h5>'),1==d.custom_back_text?a("h5>a",b).html(d.back_text):a("h5>a",b).html("« "+e.html()),f.prepend(b))}),e.appendTo(b),this.sticky(),this.assembled(b)},assembled:function(b){b.data(this.attr_name(!0),a.extend({},b.data(this.attr_name(!0)),{assembled:!0}))},height:function(b){var c=0,d=this;return a("> li",b).each(function(){c+=d.S(this).outerHeight(!0)}),c},sticky:function(){var a=this;this.S(b).on("scroll",function(){a.update_sticky_positioning()})},update_sticky_positioning:function(){var a="."+this.settings.sticky_class,c=this.S(b),d=this;if(d.settings.sticky_topbar&&d.is_sticky(this.settings.sticky_topbar,this.settings.sticky_topbar.parent(),this.settings)){var e=this.settings.sticky_topbar.data("stickyoffset")+this.settings.start_offset;d.S(a).hasClass("expanded")||(c.scrollTop()>e?d.S(a).hasClass("fixed")||(d.S(a).addClass("fixed"),d.S("body").addClass("f-topbar-fixed")):c.scrollTop()<=e&&d.S(a).hasClass("fixed")&&(d.S(a).removeClass("fixed"),d.S("body").removeClass("f-topbar-fixed")))}},off:function(){this.S(this.scope).off(".fndtn.topbar"),this.S(b).off(".fndtn.topbar")},reflow:function(){}}}(jQuery,window,window.document);
\ No newline at end of file
--- /dev/null
+;(function ($, window, document, undefined) {
+ 'use strict';
+
+ Foundation.libs.abide = {
+ name : 'abide',
+
+ version : '5.5.3',
+
+ settings : {
+ live_validate : true, // validate the form as you go
+ validate_on_blur : true, // validate whenever you focus/blur on an input field
+ // validate_on: 'tab', // tab (when user tabs between fields), change (input changes), manual (call custom events)
+
+ focus_on_invalid : true, // automatically bring the focus to an invalid input field
+ error_labels : true, // labels with a for="inputId" will receive an `error` class
+ error_class : 'error', // labels with a for="inputId" will receive an `error` class
+ // the amount of time Abide will take before it validates the form (in ms).
+ // smaller time will result in faster validation
+ timeout : 1000,
+ patterns : {
+ alpha : /^[a-zA-Z]+$/,
+ alpha_numeric : /^[a-zA-Z0-9]+$/,
+ integer : /^[-+]?\d+$/,
+ number : /^[-+]?\d*(?:[\.\,]\d+)?$/,
+
+ // amex, visa, diners
+ card : /^(?:4[0-9]{12}(?:[0-9]{3})?|5[1-5][0-9]{14}|6(?:011|5[0-9][0-9])[0-9]{12}|3[47][0-9]{13}|3(?:0[0-5]|[68][0-9])[0-9]{11}|(?:2131|1800|35\d{3})\d{11})$/,
+ cvv : /^([0-9]){3,4}$/,
+
+ // http://www.whatwg.org/specs/web-apps/current-work/multipage/states-of-the-type-attribute.html#valid-e-mail-address
+ email : /^[a-zA-Z0-9.!#$%&'*+\/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+$/,
+
+ // http://blogs.lse.ac.uk/lti/2008/04/23/a-regular-expression-to-match-any-url/
+ url: /^(https?|ftp|file|ssh):\/\/([-;:&=\+\$,\w]+@{1})?([-A-Za-z0-9\.]+)+:?(\d+)?((\/[-\+~%\/\.\w]+)?\??([-\+=&;%@\.\w]+)?#?([\w]+)?)?/,
+ // abc.de
+ domain : /^([a-zA-Z0-9]([a-zA-Z0-9\-]{0,61}[a-zA-Z0-9])?\.)+[a-zA-Z]{2,8}$/,
+
+ datetime : /^([0-2][0-9]{3})\-([0-1][0-9])\-([0-3][0-9])T([0-5][0-9])\:([0-5][0-9])\:([0-5][0-9])(Z|([\-\+]([0-1][0-9])\:00))$/,
+ // YYYY-MM-DD
+ date : /(?:19|20)[0-9]{2}-(?:(?:0[1-9]|1[0-2])-(?:0[1-9]|1[0-9]|2[0-9])|(?:(?!02)(?:0[1-9]|1[0-2])-(?:30))|(?:(?:0[13578]|1[02])-31))$/,
+ // HH:MM:SS
+ time : /^(0[0-9]|1[0-9]|2[0-3])(:[0-5][0-9]){2}$/,
+ dateISO : /^\d{4}[\/\-]\d{1,2}[\/\-]\d{1,2}$/,
+ // MM/DD/YYYY
+ month_day_year : /^(0[1-9]|1[012])[- \/.](0[1-9]|[12][0-9]|3[01])[- \/.]\d{4}$/,
+ // DD/MM/YYYY
+ day_month_year : /^(0[1-9]|[12][0-9]|3[01])[- \/.](0[1-9]|1[012])[- \/.]\d{4}$/,
+
+ // #FFF or #FFFFFF
+ color : /^#?([a-fA-F0-9]{6}|[a-fA-F0-9]{3})$/
+ },
+ validators : {
+ equalTo : function (el, required, parent) {
+ var from = document.getElementById(el.getAttribute(this.add_namespace('data-equalto'))).value,
+ to = el.value,
+ valid = (from === to);
+
+ return valid;
+ }
+ }
+ },
+
+ timer : null,
+
+ init : function (scope, method, options) {
+ this.bindings(method, options);
+ },
+
+ events : function (scope) {
+ var self = this,
+ form = self.S(scope).attr('novalidate', 'novalidate'),
+ settings = form.data(this.attr_name(true) + '-init') || {};
+
+ this.invalid_attr = this.add_namespace('data-invalid');
+
+ function validate(originalSelf, e) {
+ clearTimeout(self.timer);
+ self.timer = setTimeout(function () {
+ self.validate([originalSelf], e);
+ }.bind(originalSelf), settings.timeout);
+ }
+
+ form
+ .off('.abide')
+ .on('submit.fndtn.abide', function (e) {
+ var is_ajax = /ajax/i.test(self.S(this).attr(self.attr_name()));
+ return self.validate(self.S(this).find('input, textarea, select').not(":hidden, [data-abide-ignore]").get(), e, is_ajax);
+ })
+ .on('validate.fndtn.abide', function (e) {
+ if (settings.validate_on === 'manual') {
+ self.validate([e.target], e);
+ }
+ })
+ .on('reset', function (e) {
+ return self.reset($(this), e);
+ })
+ .find('input, textarea, select').not(":hidden, [data-abide-ignore]")
+ .off('.abide')
+ .on('blur.fndtn.abide change.fndtn.abide', function (e) {
+ var id = this.getAttribute('id'),
+ eqTo = form.find('[data-equalto="'+ id +'"]');
+ // old settings fallback
+ // will be deprecated with F6 release
+ if (settings.validate_on_blur && settings.validate_on_blur === true) {
+ validate(this, e);
+ }
+ // checks if there is an equalTo equivalent related by id
+ if(typeof eqTo.get(0) !== "undefined" && eqTo.val().length){
+ validate(eqTo.get(0),e);
+ }
+ // new settings combining validate options into one setting
+ if (settings.validate_on === 'change') {
+ validate(this, e);
+ }
+ })
+ .on('keydown.fndtn.abide', function (e) {
+ var id = this.getAttribute('id'),
+ eqTo = form.find('[data-equalto="'+ id +'"]');
+ // old settings fallback
+ // will be deprecated with F6 release
+ if (settings.live_validate && settings.live_validate === true && e.which != 9) {
+ validate(this, e);
+ }
+ // checks if there is an equalTo equivalent related by id
+ if(typeof eqTo.get(0) !== "undefined" && eqTo.val().length){
+ validate(eqTo.get(0),e);
+ }
+ // new settings combining validate options into one setting
+ if (settings.validate_on === 'tab' && e.which === 9) {
+ validate(this, e);
+ }
+ else if (settings.validate_on === 'change') {
+ validate(this, e);
+ }
+ })
+ .on('focus', function (e) {
+ if (navigator.userAgent.match(/iPad|iPhone|Android|BlackBerry|Windows Phone|webOS/i)) {
+ $('html, body').animate({
+ scrollTop: $(e.target).offset().top
+ }, 100);
+ }
+ });
+ },
+
+ reset : function (form, e) {
+ var self = this;
+ form.removeAttr(self.invalid_attr);
+
+ $('[' + self.invalid_attr + ']', form).removeAttr(self.invalid_attr);
+ $('.' + self.settings.error_class, form).not('small').removeClass(self.settings.error_class);
+ $(':input', form).not(':button, :submit, :reset, :hidden, [data-abide-ignore]').val('').removeAttr(self.invalid_attr);
+ },
+
+ validate : function (els, e, is_ajax) {
+ var validations = this.parse_patterns(els),
+ validation_count = validations.length,
+ form = this.S(els[0]).closest('form'),
+ submit_event = /submit/.test(e.type);
+
+ // Has to count up to make sure the focus gets applied to the top error
+ for (var i = 0; i < validation_count; i++) {
+ if (!validations[i] && (submit_event || is_ajax)) {
+ if (this.settings.focus_on_invalid) {
+ els[i].focus();
+ }
+ form.trigger('invalid.fndtn.abide');
+ this.S(els[i]).closest('form').attr(this.invalid_attr, '');
+ return false;
+ }
+ }
+
+ if (submit_event || is_ajax) {
+ form.trigger('valid.fndtn.abide');
+ }
+
+ form.removeAttr(this.invalid_attr);
+
+ if (is_ajax) {
+ return false;
+ }
+
+ return true;
+ },
+
+ parse_patterns : function (els) {
+ var i = els.length,
+ el_patterns = [];
+
+ while (i--) {
+ el_patterns.push(this.pattern(els[i]));
+ }
+
+ return this.check_validation_and_apply_styles(el_patterns);
+ },
+
+ pattern : function (el) {
+ var type = el.getAttribute('type'),
+ required = typeof el.getAttribute('required') === 'string';
+
+ var pattern = el.getAttribute('pattern') || '';
+
+ if (this.settings.patterns.hasOwnProperty(pattern) && pattern.length > 0) {
+ return [el, this.settings.patterns[pattern], required];
+ } else if (pattern.length > 0) {
+ return [el, new RegExp(pattern), required];
+ }
+
+ if (this.settings.patterns.hasOwnProperty(type)) {
+ return [el, this.settings.patterns[type], required];
+ }
+
+ pattern = /.*/;
+
+ return [el, pattern, required];
+ },
+
+ // TODO: Break this up into smaller methods, getting hard to read.
+ check_validation_and_apply_styles : function (el_patterns) {
+ var i = el_patterns.length,
+ validations = [];
+ if (i == 0) {
+ return validations;
+ }
+ var form = this.S(el_patterns[0][0]).closest('[data-' + this.attr_name(true) + ']'),
+ settings = form.data(this.attr_name(true) + '-init') || {};
+ while (i--) {
+ var el = el_patterns[i][0],
+ required = el_patterns[i][2],
+ value = el.value.trim(),
+ direct_parent = this.S(el).parent(),
+ validator = el.getAttribute(this.add_namespace('data-abide-validator')),
+ is_radio = el.type === 'radio',
+ is_checkbox = el.type === 'checkbox',
+ label = this.S('label[for="' + el.getAttribute('id') + '"]'),
+ valid_length = (required) ? (el.value.length > 0) : true,
+ el_validations = [];
+
+ var parent, valid;
+
+ // support old way to do equalTo validations
+ if (el.getAttribute(this.add_namespace('data-equalto'))) { validator = 'equalTo' }
+
+ if (!direct_parent.is('label')) {
+ parent = direct_parent;
+ } else {
+ parent = direct_parent.parent();
+ }
+
+ if (is_radio && required) {
+ el_validations.push(this.valid_radio(el, required));
+ } else if (is_checkbox && required) {
+ el_validations.push(this.valid_checkbox(el, required));
+
+ } else if (validator) {
+ // Validate using each of the specified (space-delimited) validators.
+ var validators = validator.split(' ');
+ var last_valid = true, all_valid = true;
+ for (var iv = 0; iv < validators.length; iv++) {
+ valid = this.settings.validators[validators[iv]].apply(this, [el, required, parent])
+ el_validations.push(valid);
+ all_valid = valid && last_valid;
+ last_valid = valid;
+ }
+ if (all_valid) {
+ this.S(el).removeAttr(this.invalid_attr);
+ parent.removeClass('error');
+ if (label.length > 0 && this.settings.error_labels) {
+ label.removeClass(this.settings.error_class).removeAttr('role');
+ }
+ $(el).triggerHandler('valid');
+ } else {
+ this.S(el).attr(this.invalid_attr, '');
+ parent.addClass('error');
+ if (label.length > 0 && this.settings.error_labels) {
+ label.addClass(this.settings.error_class).attr('role', 'alert');
+ }
+ $(el).triggerHandler('invalid');
+ }
+ } else {
+
+ if (el_patterns[i][1].test(value) && valid_length ||
+ !required && el.value.length < 1 || $(el).attr('disabled')) {
+ el_validations.push(true);
+ } else {
+ el_validations.push(false);
+ }
+
+ el_validations = [el_validations.every(function (valid) {return valid;})];
+ if (el_validations[0]) {
+ this.S(el).removeAttr(this.invalid_attr);
+ el.setAttribute('aria-invalid', 'false');
+ el.removeAttribute('aria-describedby');
+ parent.removeClass(this.settings.error_class);
+ if (label.length > 0 && this.settings.error_labels) {
+ label.removeClass(this.settings.error_class).removeAttr('role');
+ }
+ $(el).triggerHandler('valid');
+ } else {
+ this.S(el).attr(this.invalid_attr, '');
+ el.setAttribute('aria-invalid', 'true');
+
+ // Try to find the error associated with the input
+ var errorElem = parent.find('small.' + this.settings.error_class, 'span.' + this.settings.error_class);
+ var errorID = errorElem.length > 0 ? errorElem[0].id : '';
+ if (errorID.length > 0) {
+ el.setAttribute('aria-describedby', errorID);
+ }
+
+ // el.setAttribute('aria-describedby', $(el).find('.error')[0].id);
+ parent.addClass(this.settings.error_class);
+ if (label.length > 0 && this.settings.error_labels) {
+ label.addClass(this.settings.error_class).attr('role', 'alert');
+ }
+ $(el).triggerHandler('invalid');
+ }
+ }
+ validations = validations.concat(el_validations);
+ }
+
+ return validations;
+ },
+
+ valid_checkbox : function (el, required) {
+ var el = this.S(el),
+ valid = (el.is(':checked') || !required || el.get(0).getAttribute('disabled'));
+
+ if (valid) {
+ el.removeAttr(this.invalid_attr).parent().removeClass(this.settings.error_class);
+ $(el).triggerHandler('valid');
+ } else {
+ el.attr(this.invalid_attr, '').parent().addClass(this.settings.error_class);
+ $(el).triggerHandler('invalid');
+ }
+
+ return valid;
+ },
+
+ valid_radio : function (el, required) {
+ var name = el.getAttribute('name'),
+ group = this.S(el).closest('[data-' + this.attr_name(true) + ']').find("[name='" + name + "']"),
+ count = group.length,
+ valid = false,
+ disabled = false;
+
+ // Has to count up to make sure the focus gets applied to the top error
+ for (var i=0; i < count; i++) {
+ if( group[i].getAttribute('disabled') ){
+ disabled=true;
+ valid=true;
+ } else {
+ if (group[i].checked){
+ valid = true;
+ } else {
+ if( disabled ){
+ valid = false;
+ }
+ }
+ }
+ }
+
+ // Has to count up to make sure the focus gets applied to the top error
+ for (var i = 0; i < count; i++) {
+ if (valid) {
+ this.S(group[i]).removeAttr(this.invalid_attr).parent().removeClass(this.settings.error_class);
+ $(group[i]).triggerHandler('valid');
+ } else {
+ this.S(group[i]).attr(this.invalid_attr, '').parent().addClass(this.settings.error_class);
+ $(group[i]).triggerHandler('invalid');
+ }
+ }
+
+ return valid;
+ },
+
+ valid_equal : function (el, required, parent) {
+ var from = document.getElementById(el.getAttribute(this.add_namespace('data-equalto'))).value,
+ to = el.value,
+ valid = (from === to);
+
+ if (valid) {
+ this.S(el).removeAttr(this.invalid_attr);
+ parent.removeClass(this.settings.error_class);
+ if (label.length > 0 && settings.error_labels) {
+ label.removeClass(this.settings.error_class);
+ }
+ } else {
+ this.S(el).attr(this.invalid_attr, '');
+ parent.addClass(this.settings.error_class);
+ if (label.length > 0 && settings.error_labels) {
+ label.addClass(this.settings.error_class);
+ }
+ }
+
+ return valid;
+ },
+
+ valid_oneof : function (el, required, parent, doNotValidateOthers) {
+ var el = this.S(el),
+ others = this.S('[' + this.add_namespace('data-oneof') + ']'),
+ valid = others.filter(':checked').length > 0;
+
+ if (valid) {
+ el.removeAttr(this.invalid_attr).parent().removeClass(this.settings.error_class);
+ } else {
+ el.attr(this.invalid_attr, '').parent().addClass(this.settings.error_class);
+ }
+
+ if (!doNotValidateOthers) {
+ var _this = this;
+ others.each(function () {
+ _this.valid_oneof.call(_this, this, null, null, true);
+ });
+ }
+
+ return valid;
+ },
+
+ reflow : function(scope, options) {
+ var self = this,
+ form = self.S('[' + this.attr_name() + ']').attr('novalidate', 'novalidate');
+ self.S(form).each(function (idx, el) {
+ self.events(el);
+ });
+ }
+ };
+}(jQuery, window, window.document));
--- /dev/null
+;(function ($, window, document, undefined) {
+ 'use strict';
+
+ Foundation.libs.accordion = {
+ name : 'accordion',
+
+ version : '5.5.3',
+
+ settings : {
+ content_class : 'content',
+ active_class : 'active',
+ multi_expand : false,
+ toggleable : true,
+ callback : function () {}
+ },
+
+ init : function (scope, method, options) {
+ this.bindings(method, options);
+ },
+
+ events : function (instance) {
+ var self = this;
+ var S = this.S;
+ self.create(this.S(instance));
+
+ S(this.scope)
+ .off('.fndtn.accordion')
+ .on('click.fndtn.accordion', '[' + this.attr_name() + '] > dd > a, [' + this.attr_name() + '] > li > a', function (e) {
+ var accordion = S(this).closest('[' + self.attr_name() + ']'),
+ groupSelector = self.attr_name() + '=' + accordion.attr(self.attr_name()),
+ settings = accordion.data(self.attr_name(true) + '-init') || self.settings,
+ target = S('#' + this.href.split('#')[1]),
+ aunts = $('> dd, > li', accordion),
+ siblings = aunts.children('.' + settings.content_class),
+ active_content = siblings.filter('.' + settings.active_class);
+
+ e.preventDefault();
+
+ if (accordion.attr(self.attr_name())) {
+ siblings = siblings.add('[' + groupSelector + '] dd > ' + '.' + settings.content_class + ', [' + groupSelector + '] li > ' + '.' + settings.content_class);
+ aunts = aunts.add('[' + groupSelector + '] dd, [' + groupSelector + '] li');
+ }
+
+ if (settings.toggleable && target.is(active_content)) {
+ target.parent('dd, li').toggleClass(settings.active_class, false);
+ target.toggleClass(settings.active_class, false);
+ S(this).attr('aria-expanded', function(i, attr){
+ return attr === 'true' ? 'false' : 'true';
+ });
+ settings.callback(target);
+ target.triggerHandler('toggled', [accordion]);
+ accordion.triggerHandler('toggled', [target]);
+ return;
+ }
+
+ if (!settings.multi_expand) {
+ siblings.removeClass(settings.active_class);
+ aunts.removeClass(settings.active_class);
+ aunts.children('a').attr('aria-expanded','false');
+ }
+
+ target.addClass(settings.active_class).parent().addClass(settings.active_class);
+ settings.callback(target);
+ target.triggerHandler('toggled', [accordion]);
+ accordion.triggerHandler('toggled', [target]);
+ S(this).attr('aria-expanded','true');
+ });
+ },
+
+ create: function($instance) {
+ var self = this,
+ accordion = $instance,
+ aunts = $('> .accordion-navigation', accordion),
+ settings = accordion.data(self.attr_name(true) + '-init') || self.settings;
+
+ aunts.children('a').attr('aria-expanded','false');
+ aunts.has('.' + settings.content_class + '.' + settings.active_class).addClass(settings.active_class).children('a').attr('aria-expanded','true');
+
+ if (settings.multi_expand) {
+ $instance.attr('aria-multiselectable','true');
+ }
+ },
+
+ toggle : function(options) {
+ var options = typeof options !== 'undefined' ? options : {};
+ var selector = typeof options.selector !== 'undefined' ? options.selector : '';
+ var toggle_state = typeof options.toggle_state !== 'undefined' ? options.toggle_state : '';
+ var $accordion = typeof options.$accordion !== 'undefined' ? options.$accordion : this.S(this.scope).closest('[' + this.attr_name() + ']');
+
+ var $items = $accordion.find('> dd' + selector + ', > li' + selector);
+ if ( $items.length < 1 ) {
+ if ( window.console ) {
+ console.error('Selection not found.', selector);
+ }
+ return false;
+ }
+
+ var S = this.S;
+ var active_class = this.settings.active_class;
+ $items.each(function() {
+ var $item = S(this);
+ var is_active = $item.hasClass(active_class);
+ if ( ( is_active && toggle_state === 'close' ) || ( !is_active && toggle_state === 'open' ) || toggle_state === '' ) {
+ $item.find('> a').trigger('click.fndtn.accordion');
+ }
+ });
+ },
+
+ open : function(options) {
+ var options = typeof options !== 'undefined' ? options : {};
+ options.toggle_state = 'open';
+ this.toggle(options);
+ },
+
+ close : function(options) {
+ var options = typeof options !== 'undefined' ? options : {};
+ options.toggle_state = 'close';
+ this.toggle(options);
+ },
+
+ off : function () {},
+
+ reflow : function () {}
+ };
+}(jQuery, window, window.document));
--- /dev/null
+;(function ($, window, document, undefined) {
+ 'use strict';
+
+ Foundation.libs.alert = {
+ name : 'alert',
+
+ version : '5.5.3',
+
+ settings : {
+ callback : function () {}
+ },
+
+ init : function (scope, method, options) {
+ this.bindings(method, options);
+ },
+
+ events : function () {
+ var self = this,
+ S = this.S;
+
+ $(this.scope).off('.alert').on('click.fndtn.alert', '[' + this.attr_name() + '] .close', function (e) {
+ var alertBox = S(this).closest('[' + self.attr_name() + ']'),
+ settings = alertBox.data(self.attr_name(true) + '-init') || self.settings;
+
+ e.preventDefault();
+ if (Modernizr.csstransitions) {
+ alertBox.addClass('alert-close');
+ alertBox.on('transitionend webkitTransitionEnd oTransitionEnd', function (e) {
+ S(this).trigger('close.fndtn.alert').remove();
+ settings.callback();
+ });
+ } else {
+ alertBox.fadeOut(300, function () {
+ S(this).trigger('close.fndtn.alert').remove();
+ settings.callback();
+ });
+ }
+ });
+ },
+
+ reflow : function () {}
+ };
+}(jQuery, window, window.document));
--- /dev/null
+;(function ($, window, document, undefined) {
+ 'use strict';
+
+ Foundation.libs.clearing = {
+ name : 'clearing',
+
+ version : '5.5.3',
+
+ settings : {
+ templates : {
+ viewing : '<a href="#" class="clearing-close">×</a>' +
+ '<div class="visible-img" style="display: none"><div class="clearing-touch-label"></div><img src="data:image/gif;base64,R0lGODlhAQABAAD/ACwAAAAAAQABAAACADs%3D" alt="" />' +
+ '<p class="clearing-caption"></p><a href="#" class="clearing-main-prev"><span></span></a>' +
+ '<a href="#" class="clearing-main-next"><span></span></a></div>' +
+ '<img class="clearing-preload-next" style="display: none" src="data:image/gif;base64,R0lGODlhAQABAAD/ACwAAAAAAQABAAACADs%3D" alt="" />' +
+ '<img class="clearing-preload-prev" style="display: none" src="data:image/gif;base64,R0lGODlhAQABAAD/ACwAAAAAAQABAAACADs%3D" alt="" />'
+ },
+
+ // comma delimited list of selectors that, on click, will close clearing,
+ // add 'div.clearing-blackout, div.visible-img' to close on background click
+ close_selectors : '.clearing-close, div.clearing-blackout',
+
+ // Default to the entire li element.
+ open_selectors : '',
+
+ // Image will be skipped in carousel.
+ skip_selector : '',
+
+ touch_label : '',
+
+ // event initializer and locks
+ init : false,
+ locked : false
+ },
+
+ init : function (scope, method, options) {
+ var self = this;
+ Foundation.inherit(this, 'throttle image_loaded');
+
+ this.bindings(method, options);
+
+ if (self.S(this.scope).is('[' + this.attr_name() + ']')) {
+ this.assemble(self.S('li', this.scope));
+ } else {
+ self.S('[' + this.attr_name() + ']', this.scope).each(function () {
+ self.assemble(self.S('li', this));
+ });
+ }
+ },
+
+ events : function (scope) {
+ var self = this,
+ S = self.S,
+ $scroll_container = $('.scroll-container');
+
+ if ($scroll_container.length > 0) {
+ this.scope = $scroll_container;
+ }
+
+ S(this.scope)
+ .off('.clearing')
+ .on('click.fndtn.clearing', 'ul[' + this.attr_name() + '] li ' + this.settings.open_selectors,
+ function (e, current, target) {
+ var current = current || S(this),
+ target = target || current,
+ next = current.next('li'),
+ settings = current.closest('[' + self.attr_name() + ']').data(self.attr_name(true) + '-init'),
+ image = S(e.target);
+
+ e.preventDefault();
+
+ if (!settings) {
+ self.init();
+ settings = current.closest('[' + self.attr_name() + ']').data(self.attr_name(true) + '-init');
+ }
+
+ // if clearing is open and the current image is
+ // clicked, go to the next image in sequence
+ if (target.hasClass('visible') &&
+ current[0] === target[0] &&
+ next.length > 0 && self.is_open(current)) {
+ target = next;
+ image = S('img', target);
+ }
+
+ // set current and target to the clicked li if not otherwise defined.
+ self.open(image, current, target);
+ self.update_paddles(target);
+ })
+
+ .on('click.fndtn.clearing', '.clearing-main-next',
+ function (e) { self.nav(e, 'next') })
+ .on('click.fndtn.clearing', '.clearing-main-prev',
+ function (e) { self.nav(e, 'prev') })
+ .on('click.fndtn.clearing', this.settings.close_selectors,
+ function (e) { Foundation.libs.clearing.close(e, this) });
+
+ $(document).on('keydown.fndtn.clearing',
+ function (e) { self.keydown(e) });
+
+ S(window).off('.clearing').on('resize.fndtn.clearing',
+ function () { self.resize() });
+
+ this.swipe_events(scope);
+ },
+
+ swipe_events : function (scope) {
+ var self = this,
+ S = self.S;
+
+ S(this.scope)
+ .on('touchstart.fndtn.clearing', '.visible-img', function (e) {
+ if (!e.touches) { e = e.originalEvent; }
+ var data = {
+ start_page_x : e.touches[0].pageX,
+ start_page_y : e.touches[0].pageY,
+ start_time : (new Date()).getTime(),
+ delta_x : 0,
+ is_scrolling : undefined
+ };
+
+ S(this).data('swipe-transition', data);
+ e.stopPropagation();
+ })
+ .on('touchmove.fndtn.clearing', '.visible-img', function (e) {
+ if (!e.touches) {
+ e = e.originalEvent;
+ }
+ // Ignore pinch/zoom events
+ if (e.touches.length > 1 || e.scale && e.scale !== 1) {
+ return;
+ }
+
+ var data = S(this).data('swipe-transition');
+
+ if (typeof data === 'undefined') {
+ data = {};
+ }
+
+ data.delta_x = e.touches[0].pageX - data.start_page_x;
+
+ if (Foundation.rtl) {
+ data.delta_x = -data.delta_x;
+ }
+
+ if (typeof data.is_scrolling === 'undefined') {
+ data.is_scrolling = !!( data.is_scrolling || Math.abs(data.delta_x) < Math.abs(e.touches[0].pageY - data.start_page_y) );
+ }
+
+ if (!data.is_scrolling && !data.active) {
+ e.preventDefault();
+ var direction = (data.delta_x < 0) ? 'next' : 'prev';
+ data.active = true;
+ self.nav(e, direction);
+ }
+ })
+ .on('touchend.fndtn.clearing', '.visible-img', function (e) {
+ S(this).data('swipe-transition', {});
+ e.stopPropagation();
+ });
+ },
+
+ assemble : function ($li) {
+ var $el = $li.parent();
+
+ if ($el.parent().hasClass('carousel')) {
+ return;
+ }
+
+ $el.after('<div id="foundationClearingHolder"></div>');
+
+ var grid = $el.detach(),
+ grid_outerHTML = '';
+
+ if (grid[0] == null) {
+ return;
+ } else {
+ grid_outerHTML = grid[0].outerHTML;
+ }
+
+ var holder = this.S('#foundationClearingHolder'),
+ settings = $el.data(this.attr_name(true) + '-init'),
+ data = {
+ grid : '<div class="carousel">' + grid_outerHTML + '</div>',
+ viewing : settings.templates.viewing
+ },
+ wrapper = '<div class="clearing-assembled"><div>' + data.viewing +
+ data.grid + '</div></div>',
+ touch_label = this.settings.touch_label;
+
+ if (Modernizr.touch) {
+ wrapper = $(wrapper).find('.clearing-touch-label').html(touch_label).end();
+ }
+
+ holder.after(wrapper).remove();
+ },
+
+ open : function ($image, current, target) {
+ var self = this,
+ body = $(document.body),
+ root = target.closest('.clearing-assembled'),
+ container = self.S('div', root).first(),
+ visible_image = self.S('.visible-img', container),
+ image = self.S('img', visible_image).not($image),
+ label = self.S('.clearing-touch-label', container),
+ error = false,
+ loaded = {};
+
+ // Event to disable scrolling on touch devices when Clearing is activated
+ $('body').on('touchmove', function (e) {
+ e.preventDefault();
+ });
+
+ image.error(function () {
+ error = true;
+ });
+
+ function startLoad() {
+ setTimeout(function () {
+ this.image_loaded(image, function () {
+ if (image.outerWidth() === 1 && !error) {
+ startLoad.call(this);
+ } else {
+ cb.call(this, image);
+ }
+ }.bind(this));
+ }.bind(this), 100);
+ }
+
+ function cb (image) {
+ var $image = $(image);
+ $image.css('visibility', 'visible');
+ $image.trigger('imageVisible');
+ // toggle the gallery
+ body.css('overflow', 'hidden');
+ root.addClass('clearing-blackout');
+ container.addClass('clearing-container');
+ visible_image.show();
+ this.fix_height(target)
+ .caption(self.S('.clearing-caption', visible_image), self.S('img', target))
+ .center_and_label(image, label)
+ .shift(current, target, function () {
+ target.closest('li').siblings().removeClass('visible');
+ target.closest('li').addClass('visible');
+ });
+ visible_image.trigger('opened.fndtn.clearing')
+ }
+
+ if (!this.locked()) {
+ visible_image.trigger('open.fndtn.clearing');
+ // set the image to the selected thumbnail
+ loaded = this.load($image);
+ if (loaded.interchange) {
+ image
+ .attr('data-interchange', loaded.interchange)
+ .foundation('interchange', 'reflow');
+ } else {
+ image
+ .attr('src', loaded.src)
+ .attr('data-interchange', '');
+ }
+ image.css('visibility', 'hidden');
+
+ startLoad.call(this);
+ }
+ },
+
+ close : function (e, el) {
+ e.preventDefault();
+
+ var root = (function (target) {
+ if (/blackout/.test(target.selector)) {
+ return target;
+ } else {
+ return target.closest('.clearing-blackout');
+ }
+ }($(el))),
+ body = $(document.body), container, visible_image;
+
+ if (el === e.target && root) {
+ body.css('overflow', '');
+ container = $('div', root).first();
+ visible_image = $('.visible-img', container);
+ visible_image.trigger('close.fndtn.clearing');
+ this.settings.prev_index = 0;
+ $('ul[' + this.attr_name() + ']', root)
+ .attr('style', '').closest('.clearing-blackout')
+ .removeClass('clearing-blackout');
+ container.removeClass('clearing-container');
+ visible_image.hide();
+ visible_image.trigger('closed.fndtn.clearing');
+ }
+
+ // Event to re-enable scrolling on touch devices
+ $('body').off('touchmove');
+
+ return false;
+ },
+
+ is_open : function (current) {
+ return current.parent().prop('style').length > 0;
+ },
+
+ keydown : function (e) {
+ var clearing = $('.clearing-blackout ul[' + this.attr_name() + ']'),
+ NEXT_KEY = this.rtl ? 37 : 39,
+ PREV_KEY = this.rtl ? 39 : 37,
+ ESC_KEY = 27;
+
+ if (e.which === NEXT_KEY) {
+ this.go(clearing, 'next');
+ }
+ if (e.which === PREV_KEY) {
+ this.go(clearing, 'prev');
+ }
+ if (e.which === ESC_KEY) {
+ this.S('a.clearing-close').trigger('click.fndtn.clearing');
+ }
+ },
+
+ nav : function (e, direction) {
+ var clearing = $('ul[' + this.attr_name() + ']', '.clearing-blackout');
+
+ e.preventDefault();
+ this.go(clearing, direction);
+ },
+
+ resize : function () {
+ var image = $('img', '.clearing-blackout .visible-img'),
+ label = $('.clearing-touch-label', '.clearing-blackout');
+
+ if (image.length) {
+ this.center_and_label(image, label);
+ image.trigger('resized.fndtn.clearing')
+ }
+ },
+
+ // visual adjustments
+ fix_height : function (target) {
+ var lis = target.parent().children(),
+ self = this;
+
+ lis.each(function () {
+ var li = self.S(this),
+ image = li.find('img');
+
+ if (li.height() > image.outerHeight()) {
+ li.addClass('fix-height');
+ }
+ })
+ .closest('ul')
+ .width(lis.length * 100 + '%');
+
+ return this;
+ },
+
+ update_paddles : function (target) {
+ target = target.closest('li');
+ var visible_image = target
+ .closest('.carousel')
+ .siblings('.visible-img');
+
+ if (target.next().length > 0) {
+ this.S('.clearing-main-next', visible_image).removeClass('disabled');
+ } else {
+ this.S('.clearing-main-next', visible_image).addClass('disabled');
+ }
+
+ if (target.prev().length > 0) {
+ this.S('.clearing-main-prev', visible_image).removeClass('disabled');
+ } else {
+ this.S('.clearing-main-prev', visible_image).addClass('disabled');
+ }
+ },
+
+ center_and_label : function (target, label) {
+ if (!this.rtl && label.length > 0) {
+ label.css({
+ marginLeft : -(label.outerWidth() / 2),
+ marginTop : -(target.outerHeight() / 2)-label.outerHeight()-10
+ });
+ } else {
+ label.css({
+ marginRight : -(label.outerWidth() / 2),
+ marginTop : -(target.outerHeight() / 2)-label.outerHeight()-10,
+ left: 'auto',
+ right: '50%'
+ });
+ }
+ return this;
+ },
+
+ // image loading and preloading
+
+ load : function ($image) {
+ var href,
+ interchange,
+ closest_a;
+
+ if ($image[0].nodeName === 'A') {
+ href = $image.attr('href');
+ interchange = $image.data('clearing-interchange');
+ } else {
+ closest_a = $image.closest('a');
+ href = closest_a.attr('href');
+ interchange = closest_a.data('clearing-interchange');
+ }
+
+ this.preload($image);
+
+ return {
+ 'src': href ? href : $image.attr('src'),
+ 'interchange': href ? interchange : $image.data('clearing-interchange')
+ }
+ },
+
+ preload : function ($image) {
+ this
+ .img($image.closest('li').next(), 'next')
+ .img($image.closest('li').prev(), 'prev');
+ },
+
+ img : function (img, sibling_type) {
+ if (img.length) {
+ var preload_img = $('.clearing-preload-' + sibling_type),
+ new_a = this.S('a', img),
+ src,
+ interchange,
+ image;
+
+ if (new_a.length) {
+ src = new_a.attr('href');
+ interchange = new_a.data('clearing-interchange');
+ } else {
+ image = this.S('img', img);
+ src = image.attr('src');
+ interchange = image.data('clearing-interchange');
+ }
+
+ if (interchange) {
+ preload_img.attr('data-interchange', interchange);
+ } else {
+ preload_img.attr('src', src);
+ preload_img.attr('data-interchange', '');
+ }
+ }
+ return this;
+ },
+
+ // image caption
+
+ caption : function (container, $image) {
+ var caption = $image.attr('data-caption');
+
+ if (caption) {
+ var containerPlain = container.get(0);
+ containerPlain.innerHTML = caption;
+ container.show();
+ } else {
+ container
+ .text('')
+ .hide();
+ }
+ return this;
+ },
+
+ // directional methods
+
+ go : function ($ul, direction) {
+ var current = this.S('.visible', $ul),
+ target = current[direction]();
+
+ // Check for skip selector.
+ if (this.settings.skip_selector && target.find(this.settings.skip_selector).length != 0) {
+ target = target[direction]();
+ }
+
+ if (target.length) {
+ this.S('img', target)
+ .trigger('click.fndtn.clearing', [current, target])
+ .trigger('change.fndtn.clearing');
+ }
+ },
+
+ shift : function (current, target, callback) {
+ var clearing = target.parent(),
+ old_index = this.settings.prev_index || target.index(),
+ direction = this.direction(clearing, current, target),
+ dir = this.rtl ? 'right' : 'left',
+ left = parseInt(clearing.css('left'), 10),
+ width = target.outerWidth(),
+ skip_shift;
+
+ var dir_obj = {};
+
+ // we use jQuery animate instead of CSS transitions because we
+ // need a callback to unlock the next animation
+ // needs support for RTL **
+ if (target.index() !== old_index && !/skip/.test(direction)) {
+ if (/left/.test(direction)) {
+ this.lock();
+ dir_obj[dir] = left + width;
+ clearing.animate(dir_obj, 300, this.unlock());
+ } else if (/right/.test(direction)) {
+ this.lock();
+ dir_obj[dir] = left - width;
+ clearing.animate(dir_obj, 300, this.unlock());
+ }
+ } else if (/skip/.test(direction)) {
+ // the target image is not adjacent to the current image, so
+ // do we scroll right or not
+ skip_shift = target.index() - this.settings.up_count;
+ this.lock();
+
+ if (skip_shift > 0) {
+ dir_obj[dir] = -(skip_shift * width);
+ clearing.animate(dir_obj, 300, this.unlock());
+ } else {
+ dir_obj[dir] = 0;
+ clearing.animate(dir_obj, 300, this.unlock());
+ }
+ }
+
+ callback();
+ },
+
+ direction : function ($el, current, target) {
+ var lis = this.S('li', $el),
+ li_width = lis.outerWidth() + (lis.outerWidth() / 4),
+ up_count = Math.floor(this.S('.clearing-container').outerWidth() / li_width) - 1,
+ target_index = lis.index(target),
+ response;
+
+ this.settings.up_count = up_count;
+
+ if (this.adjacent(this.settings.prev_index, target_index)) {
+ if ((target_index > up_count) && target_index > this.settings.prev_index) {
+ response = 'right';
+ } else if ((target_index > up_count - 1) && target_index <= this.settings.prev_index) {
+ response = 'left';
+ } else {
+ response = false;
+ }
+ } else {
+ response = 'skip';
+ }
+
+ this.settings.prev_index = target_index;
+
+ return response;
+ },
+
+ adjacent : function (current_index, target_index) {
+ for (var i = target_index + 1; i >= target_index - 1; i--) {
+ if (i === current_index) {
+ return true;
+ }
+ }
+ return false;
+ },
+
+ // lock management
+
+ lock : function () {
+ this.settings.locked = true;
+ },
+
+ unlock : function () {
+ this.settings.locked = false;
+ },
+
+ locked : function () {
+ return this.settings.locked;
+ },
+
+ off : function () {
+ this.S(this.scope).off('.fndtn.clearing');
+ this.S(window).off('.fndtn.clearing');
+ },
+
+ reflow : function () {
+ this.init();
+ }
+ };
+
+}(jQuery, window, window.document));
--- /dev/null
+;(function ($, window, document, undefined) {
+ 'use strict';
+
+ Foundation.libs.dropdown = {
+ name : 'dropdown',
+
+ version : '5.5.3',
+
+ settings : {
+ active_class : 'open',
+ disabled_class : 'disabled',
+ mega_class : 'mega',
+ align : 'bottom',
+ is_hover : false,
+ hover_timeout : 150,
+ opened : function () {},
+ closed : function () {}
+ },
+
+ init : function (scope, method, options) {
+ Foundation.inherit(this, 'throttle');
+
+ $.extend(true, this.settings, method, options);
+ this.bindings(method, options);
+ },
+
+ events : function (scope) {
+ var self = this,
+ S = self.S;
+
+ S(this.scope)
+ .off('.dropdown')
+ .on('click.fndtn.dropdown', '[' + this.attr_name() + ']', function (e) {
+ var settings = S(this).data(self.attr_name(true) + '-init') || self.settings;
+ if (!settings.is_hover || Modernizr.touch) {
+ e.preventDefault();
+ if (S(this).parent('[data-reveal-id]').length) {
+ e.stopPropagation();
+ }
+ self.toggle($(this));
+ }
+ })
+ .on('mouseenter.fndtn.dropdown', '[' + this.attr_name() + '], [' + this.attr_name() + '-content]', function (e) {
+ var $this = S(this),
+ dropdown,
+ target;
+
+ clearTimeout(self.timeout);
+
+ if ($this.data(self.data_attr())) {
+ dropdown = S('#' + $this.data(self.data_attr()));
+ target = $this;
+ } else {
+ dropdown = $this;
+ target = S('[' + self.attr_name() + '="' + dropdown.attr('id') + '"]');
+ }
+
+ var settings = target.data(self.attr_name(true) + '-init') || self.settings;
+
+ if (S(e.currentTarget).data(self.data_attr()) && settings.is_hover) {
+ self.closeall.call(self);
+ }
+
+ if (settings.is_hover) {
+ self.open.apply(self, [dropdown, target]);
+ }
+ })
+ .on('mouseleave.fndtn.dropdown', '[' + this.attr_name() + '], [' + this.attr_name() + '-content]', function (e) {
+ var $this = S(this);
+ var settings;
+
+ if ($this.data(self.data_attr())) {
+ settings = $this.data(self.data_attr(true) + '-init') || self.settings;
+ } else {
+ var target = S('[' + self.attr_name() + '="' + S(this).attr('id') + '"]'),
+ settings = target.data(self.attr_name(true) + '-init') || self.settings;
+ }
+
+ self.timeout = setTimeout(function () {
+ if ($this.data(self.data_attr())) {
+ if (settings.is_hover) {
+ self.close.call(self, S('#' + $this.data(self.data_attr())));
+ }
+ } else {
+ if (settings.is_hover) {
+ self.close.call(self, $this);
+ }
+ }
+ }.bind(this), settings.hover_timeout);
+ })
+ .on('click.fndtn.dropdown', function (e) {
+ var parent = S(e.target).closest('[' + self.attr_name() + '-content]');
+ var links = parent.find('a');
+
+ if (links.length > 0 && parent.attr('aria-autoclose') !== 'false') {
+ self.close.call(self, S('[' + self.attr_name() + '-content]'));
+ }
+
+ if (e.target !== document && !$.contains(document.documentElement, e.target)) {
+ return;
+ }
+
+ if (S(e.target).closest('[' + self.attr_name() + ']').length > 0) {
+ return;
+ }
+
+ if (!(S(e.target).data('revealId')) &&
+ (parent.length > 0 && (S(e.target).is('[' + self.attr_name() + '-content]') ||
+ $.contains(parent.first()[0], e.target)))) {
+ e.stopPropagation();
+ return;
+ }
+
+ self.close.call(self, S('[' + self.attr_name() + '-content]'));
+ })
+ .on('opened.fndtn.dropdown', '[' + self.attr_name() + '-content]', function () {
+ self.settings.opened.call(this);
+ })
+ .on('closed.fndtn.dropdown', '[' + self.attr_name() + '-content]', function () {
+ self.settings.closed.call(this);
+ });
+
+ S(window)
+ .off('.dropdown')
+ .on('resize.fndtn.dropdown', self.throttle(function () {
+ self.resize.call(self);
+ }, 50));
+
+ this.resize();
+ },
+
+ close : function (dropdown) {
+ var self = this;
+ dropdown.each(function (idx) {
+ var original_target = $('[' + self.attr_name() + '=' + dropdown[idx].id + ']') || $('aria-controls=' + dropdown[idx].id + ']');
+ original_target.attr('aria-expanded', 'false');
+ if (self.S(this).hasClass(self.settings.active_class)) {
+ self.S(this)
+ .css(Foundation.rtl ? 'right' : 'left', '-99999px')
+ .attr('aria-hidden', 'true')
+ .removeClass(self.settings.active_class)
+ .prev('[' + self.attr_name() + ']')
+ .removeClass(self.settings.active_class)
+ .removeData('target');
+
+ self.S(this).trigger('closed.fndtn.dropdown', [dropdown]);
+ }
+ });
+ dropdown.removeClass('f-open-' + this.attr_name(true));
+ },
+
+ closeall : function () {
+ var self = this;
+ $.each(self.S('.f-open-' + this.attr_name(true)), function () {
+ self.close.call(self, self.S(this));
+ });
+ },
+
+ open : function (dropdown, target) {
+ this
+ .css(dropdown
+ .addClass(this.settings.active_class), target);
+ dropdown.prev('[' + this.attr_name() + ']').addClass(this.settings.active_class);
+ dropdown.data('target', target.get(0)).trigger('opened.fndtn.dropdown', [dropdown, target]);
+ dropdown.attr('aria-hidden', 'false');
+ target.attr('aria-expanded', 'true');
+ dropdown.focus();
+ dropdown.addClass('f-open-' + this.attr_name(true));
+ },
+
+ data_attr : function () {
+ if (this.namespace.length > 0) {
+ return this.namespace + '-' + this.name;
+ }
+
+ return this.name;
+ },
+
+ toggle : function (target) {
+ if (target.hasClass(this.settings.disabled_class)) {
+ return;
+ }
+ var dropdown = this.S('#' + target.data(this.data_attr()));
+ if (dropdown.length === 0) {
+ // No dropdown found, not continuing
+ return;
+ }
+
+ this.close.call(this, this.S('[' + this.attr_name() + '-content]').not(dropdown));
+
+ if (dropdown.hasClass(this.settings.active_class)) {
+ this.close.call(this, dropdown);
+ if (dropdown.data('target') !== target.get(0)) {
+ this.open.call(this, dropdown, target);
+ }
+ } else {
+ this.open.call(this, dropdown, target);
+ }
+ },
+
+ resize : function () {
+ var dropdown = this.S('[' + this.attr_name() + '-content].open');
+ var target = $(dropdown.data("target"));
+
+ if (dropdown.length && target.length) {
+ this.css(dropdown, target);
+ }
+ },
+
+ css : function (dropdown, target) {
+ var left_offset = Math.max((target.width() - dropdown.width()) / 2, 8),
+ settings = target.data(this.attr_name(true) + '-init') || this.settings,
+ parentOverflow = dropdown.parent().css('overflow-y') || dropdown.parent().css('overflow');
+
+ this.clear_idx();
+
+
+
+ if (this.small()) {
+ var p = this.dirs.bottom.call(dropdown, target, settings);
+
+ dropdown.attr('style', '').removeClass('drop-left drop-right drop-top').css({
+ position : 'absolute',
+ width : '95%',
+ 'max-width' : 'none',
+ top : p.top
+ });
+
+ dropdown.css(Foundation.rtl ? 'right' : 'left', left_offset);
+ }
+ // detect if dropdown is in an overflow container
+ else if (parentOverflow !== 'visible') {
+ var offset = target[0].offsetTop + target[0].offsetHeight;
+
+ dropdown.attr('style', '').css({
+ position : 'absolute',
+ top : offset
+ });
+
+ dropdown.css(Foundation.rtl ? 'right' : 'left', left_offset);
+ }
+ else {
+
+ this.style(dropdown, target, settings);
+ }
+
+ return dropdown;
+ },
+
+ style : function (dropdown, target, settings) {
+ var css = $.extend({position : 'absolute'},
+ this.dirs[settings.align].call(dropdown, target, settings));
+
+ dropdown.attr('style', '').css(css);
+ },
+
+ // return CSS property object
+ // `this` is the dropdown
+ dirs : {
+ // Calculate target offset
+ _base : function (t, s) {
+ var o_p = this.offsetParent(),
+ o = o_p.offset(),
+ p = t.offset();
+
+ p.top -= o.top;
+ p.left -= o.left;
+
+ //set some flags on the p object to pass along
+ p.missRight = false;
+ p.missTop = false;
+ p.missLeft = false;
+ p.leftRightFlag = false;
+
+ //lets see if the panel will be off the screen
+ //get the actual width of the page and store it
+ var actualBodyWidth;
+ var windowWidth = window.innerWidth;
+
+ if (document.getElementsByClassName('row')[0]) {
+ actualBodyWidth = document.getElementsByClassName('row')[0].clientWidth;
+ } else {
+ actualBodyWidth = windowWidth;
+ }
+
+ var actualMarginWidth = (windowWidth - actualBodyWidth) / 2;
+ var actualBoundary = actualBodyWidth;
+
+ if (!this.hasClass('mega') && !s.ignore_repositioning) {
+ var outerWidth = this.outerWidth();
+ var o_left = t.offset().left;
+
+ //miss top
+ if (t.offset().top <= this.outerHeight()) {
+ p.missTop = true;
+ actualBoundary = windowWidth - actualMarginWidth;
+ p.leftRightFlag = true;
+ }
+
+ //miss right
+ if (o_left + outerWidth > o_left + actualMarginWidth && o_left - actualMarginWidth > outerWidth) {
+ p.missRight = true;
+ p.missLeft = false;
+ }
+
+ //miss left
+ if (o_left - outerWidth <= 0) {
+ p.missLeft = true;
+ p.missRight = false;
+ }
+ }
+
+ return p;
+ },
+
+ top : function (t, s) {
+ var self = Foundation.libs.dropdown,
+ p = self.dirs._base.call(this, t, s);
+
+ this.addClass('drop-top');
+
+ if (p.missTop == true) {
+ p.top = p.top + t.outerHeight() + this.outerHeight();
+ this.removeClass('drop-top');
+ }
+
+ if (p.missRight == true) {
+ p.left = p.left - this.outerWidth() + t.outerWidth();
+ }
+
+ if (t.outerWidth() < this.outerWidth() || self.small() || this.hasClass(s.mega_menu)) {
+ self.adjust_pip(this, t, s, p);
+ }
+
+ if (Foundation.rtl) {
+ return {left : p.left - this.outerWidth() + t.outerWidth(),
+ top : p.top - this.outerHeight()};
+ }
+
+ return {left : p.left, top : p.top - this.outerHeight()};
+ },
+
+ bottom : function (t, s) {
+ var self = Foundation.libs.dropdown,
+ p = self.dirs._base.call(this, t, s);
+
+ if (p.missRight == true) {
+ p.left = p.left - this.outerWidth() + t.outerWidth();
+ }
+
+ if (t.outerWidth() < this.outerWidth() || self.small() || this.hasClass(s.mega_menu)) {
+ self.adjust_pip(this, t, s, p);
+ }
+
+ if (self.rtl) {
+ return {left : p.left - this.outerWidth() + t.outerWidth(), top : p.top + t.outerHeight()};
+ }
+
+ return {left : p.left, top : p.top + t.outerHeight()};
+ },
+
+ left : function (t, s) {
+ var p = Foundation.libs.dropdown.dirs._base.call(this, t, s);
+
+ this.addClass('drop-left');
+
+ if (p.missLeft == true) {
+ p.left = p.left + this.outerWidth();
+ p.top = p.top + t.outerHeight();
+ this.removeClass('drop-left');
+ }
+
+ return {left : p.left - this.outerWidth(), top : p.top};
+ },
+
+ right : function (t, s) {
+ var p = Foundation.libs.dropdown.dirs._base.call(this, t, s);
+
+ this.addClass('drop-right');
+
+ if (p.missRight == true) {
+ p.left = p.left - this.outerWidth();
+ p.top = p.top + t.outerHeight();
+ this.removeClass('drop-right');
+ } else {
+ p.triggeredRight = true;
+ }
+
+ var self = Foundation.libs.dropdown;
+
+ if (t.outerWidth() < this.outerWidth() || self.small() || this.hasClass(s.mega_menu)) {
+ self.adjust_pip(this, t, s, p);
+ }
+
+ return {left : p.left + t.outerWidth(), top : p.top};
+ }
+ },
+
+ // Insert rule to style psuedo elements
+ adjust_pip : function (dropdown, target, settings, position) {
+ var sheet = Foundation.stylesheet,
+ pip_offset_base = 8;
+
+ if (dropdown.hasClass(settings.mega_class)) {
+ pip_offset_base = position.left + (target.outerWidth() / 2) - 8;
+ } else if (this.small()) {
+ pip_offset_base += position.left - 8;
+ }
+
+ this.rule_idx = sheet.cssRules.length;
+
+ //default
+ var sel_before = '.f-dropdown.open:before',
+ sel_after = '.f-dropdown.open:after',
+ css_before = 'left: ' + pip_offset_base + 'px;',
+ css_after = 'left: ' + (pip_offset_base - 1) + 'px;';
+
+ if (position.missRight == true) {
+ pip_offset_base = dropdown.outerWidth() - 23;
+ sel_before = '.f-dropdown.open:before',
+ sel_after = '.f-dropdown.open:after',
+ css_before = 'left: ' + pip_offset_base + 'px;',
+ css_after = 'left: ' + (pip_offset_base - 1) + 'px;';
+ }
+
+ //just a case where right is fired, but its not missing right
+ if (position.triggeredRight == true) {
+ sel_before = '.f-dropdown.open:before',
+ sel_after = '.f-dropdown.open:after',
+ css_before = 'left:-12px;',
+ css_after = 'left:-14px;';
+ }
+
+ if (sheet.insertRule) {
+ sheet.insertRule([sel_before, '{', css_before, '}'].join(' '), this.rule_idx);
+ sheet.insertRule([sel_after, '{', css_after, '}'].join(' '), this.rule_idx + 1);
+ } else {
+ sheet.addRule(sel_before, css_before, this.rule_idx);
+ sheet.addRule(sel_after, css_after, this.rule_idx + 1);
+ }
+ },
+
+ // Remove old dropdown rule index
+ clear_idx : function () {
+ var sheet = Foundation.stylesheet;
+
+ if (typeof this.rule_idx !== 'undefined') {
+ sheet.deleteRule(this.rule_idx);
+ sheet.deleteRule(this.rule_idx);
+ delete this.rule_idx;
+ }
+ },
+
+ small : function () {
+ return matchMedia(Foundation.media_queries.small).matches &&
+ !matchMedia(Foundation.media_queries.medium).matches;
+ },
+
+ off : function () {
+ this.S(this.scope).off('.fndtn.dropdown');
+ this.S('html, body').off('.fndtn.dropdown');
+ this.S(window).off('.fndtn.dropdown');
+ this.S('[data-dropdown-content]').off('.fndtn.dropdown');
+ },
+
+ reflow : function () {}
+ };
+}(jQuery, window, window.document));
--- /dev/null
+;(function ($, window, document, undefined) {
+ 'use strict';
+
+ Foundation.libs.equalizer = {
+ name : 'equalizer',
+
+ version : '5.5.3',
+
+ settings : {
+ use_tallest : true,
+ before_height_change : $.noop,
+ after_height_change : $.noop,
+ equalize_on_stack : false,
+ act_on_hidden_el: false
+ },
+
+ init : function (scope, method, options) {
+ Foundation.inherit(this, 'image_loaded');
+ this.bindings(method, options);
+ this.reflow();
+ },
+
+ events : function () {
+ this.S(window).off('.equalizer').on('resize.fndtn.equalizer', function (e) {
+ this.reflow();
+ }.bind(this));
+ },
+
+ equalize : function (equalizer) {
+ var isStacked = false,
+ group = equalizer.data('equalizer'),
+ settings = equalizer.data(this.attr_name(true)+'-init') || this.settings,
+ vals,
+ firstTopOffset;
+
+ if (settings.act_on_hidden_el) {
+ vals = group ? equalizer.find('['+this.attr_name()+'-watch="'+group+'"]') : equalizer.find('['+this.attr_name()+'-watch]');
+ }
+ else {
+ vals = group ? equalizer.find('['+this.attr_name()+'-watch="'+group+'"]:visible') : equalizer.find('['+this.attr_name()+'-watch]:visible');
+ }
+
+ if (vals.length === 0) {
+ return;
+ }
+
+ settings.before_height_change();
+ equalizer.trigger('before-height-change.fndth.equalizer');
+ vals.height('inherit');
+
+ if (settings.equalize_on_stack === false) {
+ firstTopOffset = vals.first().offset().top;
+ vals.each(function () {
+ if ($(this).offset().top !== firstTopOffset) {
+ isStacked = true;
+ return false;
+ }
+ });
+ if (isStacked) {
+ return;
+ }
+ }
+
+ var heights = vals.map(function () { return $(this).outerHeight(false) }).get();
+
+ if (settings.use_tallest) {
+ var max = Math.max.apply(null, heights);
+ vals.css('height', max);
+ } else {
+ var min = Math.min.apply(null, heights);
+ vals.css('height', min);
+ }
+
+ settings.after_height_change();
+ equalizer.trigger('after-height-change.fndtn.equalizer');
+ },
+
+ reflow : function () {
+ var self = this;
+
+ this.S('[' + this.attr_name() + ']', this.scope).each(function () {
+ var $eq_target = $(this),
+ media_query = $eq_target.data('equalizer-mq'),
+ ignore_media_query = true;
+
+ if (media_query) {
+ media_query = 'is_' + media_query.replace(/-/g, '_');
+ if (Foundation.utils.hasOwnProperty(media_query)) {
+ ignore_media_query = false;
+ }
+ }
+
+ self.image_loaded(self.S('img', this), function () {
+ if (ignore_media_query || Foundation.utils[media_query]()) {
+ self.equalize($eq_target)
+ } else {
+ var vals = $eq_target.find('[' + self.attr_name() + '-watch]:visible');
+ vals.css('height', 'auto');
+ }
+ });
+ });
+ }
+ };
+})(jQuery, window, window.document);
--- /dev/null
+;(function ($, window, document, undefined) {
+ 'use strict';
+
+ Foundation.libs.interchange = {
+ name : 'interchange',
+
+ version : '5.5.3',
+
+ cache : {},
+
+ images_loaded : false,
+ nodes_loaded : false,
+
+ settings : {
+ load_attr : 'interchange',
+
+ named_queries : {
+ 'default' : 'only screen',
+ 'small' : Foundation.media_queries['small'],
+ 'small-only' : Foundation.media_queries['small-only'],
+ 'medium' : Foundation.media_queries['medium'],
+ 'medium-only' : Foundation.media_queries['medium-only'],
+ 'large' : Foundation.media_queries['large'],
+ 'large-only' : Foundation.media_queries['large-only'],
+ 'xlarge' : Foundation.media_queries['xlarge'],
+ 'xlarge-only' : Foundation.media_queries['xlarge-only'],
+ 'xxlarge' : Foundation.media_queries['xxlarge'],
+ 'landscape' : 'only screen and (orientation: landscape)',
+ 'portrait' : 'only screen and (orientation: portrait)',
+ 'retina' : 'only screen and (-webkit-min-device-pixel-ratio: 2),' +
+ 'only screen and (min--moz-device-pixel-ratio: 2),' +
+ 'only screen and (-o-min-device-pixel-ratio: 2/1),' +
+ 'only screen and (min-device-pixel-ratio: 2),' +
+ 'only screen and (min-resolution: 192dpi),' +
+ 'only screen and (min-resolution: 2dppx)'
+ },
+
+ directives : {
+ replace : function (el, path, trigger) {
+ // The trigger argument, if called within the directive, fires
+ // an event named after the directive on the element, passing
+ // any parameters along to the event that you pass to trigger.
+ //
+ // ex. trigger(), trigger([a, b, c]), or trigger(a, b, c)
+ //
+ // This allows you to bind a callback like so:
+ // $('#interchangeContainer').on('replace', function (e, a, b, c) {
+ // console.log($(this).html(), a, b, c);
+ // });
+
+ if (el !== null && /IMG/.test(el[0].nodeName)) {
+ var orig_path = $.each(el, function(){this.src = path;});
+ // var orig_path = el[0].src;
+
+ if (new RegExp(path, 'i').test(orig_path)) {
+ return;
+ }
+
+ el.attr("src", path);
+
+ return trigger(el[0].src);
+ }
+ var last_path = el.data(this.data_attr + '-last-path'),
+ self = this;
+
+ if (last_path == path) {
+ return;
+ }
+
+ if (/\.(gif|jpg|jpeg|tiff|png)([?#].*)?/i.test(path)) {
+ $(el).css('background-image', 'url(' + path + ')');
+ el.data('interchange-last-path', path);
+ return trigger(path);
+ }
+
+ return $.get(path, function (response) {
+ el.html(response);
+ el.data(self.data_attr + '-last-path', path);
+ trigger();
+ });
+
+ }
+ }
+ },
+
+ init : function (scope, method, options) {
+ Foundation.inherit(this, 'throttle random_str');
+
+ this.data_attr = this.set_data_attr();
+ $.extend(true, this.settings, method, options);
+ this.bindings(method, options);
+ this.reflow();
+ },
+
+ get_media_hash : function () {
+ var mediaHash = '';
+ for (var queryName in this.settings.named_queries ) {
+ mediaHash += matchMedia(this.settings.named_queries[queryName]).matches.toString();
+ }
+ return mediaHash;
+ },
+
+ events : function () {
+ var self = this, prevMediaHash;
+
+ $(window)
+ .off('.interchange')
+ .on('resize.fndtn.interchange', self.throttle(function () {
+ var currMediaHash = self.get_media_hash();
+ if (currMediaHash !== prevMediaHash) {
+ self.resize();
+ }
+ prevMediaHash = currMediaHash;
+ }, 50));
+
+ return this;
+ },
+
+ resize : function () {
+ var cache = this.cache;
+
+ if (!this.images_loaded || !this.nodes_loaded) {
+ setTimeout($.proxy(this.resize, this), 50);
+ return;
+ }
+
+ for (var uuid in cache) {
+ if (cache.hasOwnProperty(uuid)) {
+ var passed = this.results(uuid, cache[uuid]);
+ if (passed) {
+ this.settings.directives[passed
+ .scenario[1]].call(this, passed.el, passed.scenario[0], (function (passed) {
+ if (arguments[0] instanceof Array) {
+ var args = arguments[0];
+ } else {
+ var args = Array.prototype.slice.call(arguments, 0);
+ }
+
+ return function() {
+ passed.el.trigger(passed.scenario[1], args);
+ }
+ }(passed)));
+ }
+ }
+ }
+
+ },
+
+ results : function (uuid, scenarios) {
+ var count = scenarios.length;
+
+ if (count > 0) {
+ var el = this.S('[' + this.add_namespace('data-uuid') + '="' + uuid + '"]');
+
+ while (count--) {
+ var mq, rule = scenarios[count][2];
+ if (this.settings.named_queries.hasOwnProperty(rule)) {
+ mq = matchMedia(this.settings.named_queries[rule]);
+ } else {
+ mq = matchMedia(rule);
+ }
+ if (mq.matches) {
+ return {el : el, scenario : scenarios[count]};
+ }
+ }
+ }
+
+ return false;
+ },
+
+ load : function (type, force_update) {
+ if (typeof this['cached_' + type] === 'undefined' || force_update) {
+ this['update_' + type]();
+ }
+
+ return this['cached_' + type];
+ },
+
+ update_images : function () {
+ var images = this.S('img[' + this.data_attr + ']'),
+ count = images.length,
+ i = count,
+ loaded_count = 0,
+ data_attr = this.data_attr;
+
+ this.cache = {};
+ this.cached_images = [];
+ this.images_loaded = (count === 0);
+
+ while (i--) {
+ loaded_count++;
+ if (images[i]) {
+ var str = images[i].getAttribute(data_attr) || '';
+
+ if (str.length > 0) {
+ this.cached_images.push(images[i]);
+ }
+ }
+
+ if (loaded_count === count) {
+ this.images_loaded = true;
+ this.enhance('images');
+ }
+ }
+
+ return this;
+ },
+
+ update_nodes : function () {
+ var nodes = this.S('[' + this.data_attr + ']').not('img'),
+ count = nodes.length,
+ i = count,
+ loaded_count = 0,
+ data_attr = this.data_attr;
+
+ this.cached_nodes = [];
+ this.nodes_loaded = (count === 0);
+
+ while (i--) {
+ loaded_count++;
+ var str = nodes[i].getAttribute(data_attr) || '';
+
+ if (str.length > 0) {
+ this.cached_nodes.push(nodes[i]);
+ }
+
+ if (loaded_count === count) {
+ this.nodes_loaded = true;
+ this.enhance('nodes');
+ }
+ }
+
+ return this;
+ },
+
+ enhance : function (type) {
+ var i = this['cached_' + type].length;
+
+ while (i--) {
+ this.object($(this['cached_' + type][i]));
+ }
+
+ return $(window).trigger('resize.fndtn.interchange');
+ },
+
+ convert_directive : function (directive) {
+
+ var trimmed = this.trim(directive);
+
+ if (trimmed.length > 0) {
+ return trimmed;
+ }
+
+ return 'replace';
+ },
+
+ parse_scenario : function (scenario) {
+ // This logic had to be made more complex since some users were using commas in the url path
+ // So we cannot simply just split on a comma
+
+ var directive_match = scenario[0].match(/(.+),\s*(\w+)\s*$/),
+ // getting the mq has gotten a bit complicated since we started accounting for several use cases
+ // of URLs. For now we'll continue to match these scenarios, but we may consider having these scenarios
+ // as nested objects or arrays in F6.
+ // regex: match everything before close parenthesis for mq
+ media_query = scenario[1].match(/(.*)\)/);
+
+ if (directive_match) {
+ var path = directive_match[1],
+ directive = directive_match[2];
+
+ } else {
+ var cached_split = scenario[0].split(/,\s*$/),
+ path = cached_split[0],
+ directive = '';
+ }
+
+ return [this.trim(path), this.convert_directive(directive), this.trim(media_query[1])];
+ },
+
+ object : function (el) {
+ var raw_arr = this.parse_data_attr(el),
+ scenarios = [],
+ i = raw_arr.length;
+
+ if (i > 0) {
+ while (i--) {
+ // split array between comma delimited content and mq
+ // regex: comma, optional space, open parenthesis
+ var scenario = raw_arr[i].split(/,\s?\(/);
+
+ if (scenario.length > 1) {
+ var params = this.parse_scenario(scenario);
+ scenarios.push(params);
+ }
+ }
+ }
+
+ return this.store(el, scenarios);
+ },
+
+ store : function (el, scenarios) {
+ var uuid = this.random_str(),
+ current_uuid = el.data(this.add_namespace('uuid', true));
+
+ if (this.cache[current_uuid]) {
+ return this.cache[current_uuid];
+ }
+
+ el.attr(this.add_namespace('data-uuid'), uuid);
+ return this.cache[uuid] = scenarios;
+ },
+
+ trim : function (str) {
+
+ if (typeof str === 'string') {
+ return $.trim(str);
+ }
+
+ return str;
+ },
+
+ set_data_attr : function (init) {
+ if (init) {
+ if (this.namespace.length > 0) {
+ return this.namespace + '-' + this.settings.load_attr;
+ }
+
+ return this.settings.load_attr;
+ }
+
+ if (this.namespace.length > 0) {
+ return 'data-' + this.namespace + '-' + this.settings.load_attr;
+ }
+
+ return 'data-' + this.settings.load_attr;
+ },
+
+ parse_data_attr : function (el) {
+ var raw = el.attr(this.attr_name()).split(/\[(.*?)\]/),
+ i = raw.length,
+ output = [];
+
+ while (i--) {
+ if (raw[i].replace(/[\W\d]+/, '').length > 4) {
+ output.push(raw[i]);
+ }
+ }
+
+ return output;
+ },
+
+ reflow : function () {
+ this.load('images', true);
+ this.load('nodes', true);
+ }
+
+ };
+
+}(jQuery, window, window.document));
--- /dev/null
+;(function ($, window, document, undefined) {
+ 'use strict';
+
+ var Modernizr = Modernizr || false;
+
+ Foundation.libs.joyride = {
+ name : 'joyride',
+
+ version : '5.5.3',
+
+ defaults : {
+ expose : false, // turn on or off the expose feature
+ modal : true, // Whether to cover page with modal during the tour
+ keyboard : true, // enable left, right and esc keystrokes
+ tip_location : 'bottom', // 'top', 'bottom', 'left' or 'right' in relation to parent
+ nub_position : 'auto', // override on a per tooltip bases
+ scroll_speed : 1500, // Page scrolling speed in milliseconds, 0 = no scroll animation
+ scroll_animation : 'linear', // supports 'swing' and 'linear', extend with jQuery UI.
+ timer : 0, // 0 = no timer , all other numbers = timer in milliseconds
+ start_timer_on_click : true, // true or false - true requires clicking the first button start the timer
+ start_offset : 0, // the index of the tooltip you want to start on (index of the li)
+ next_button : true, // true or false to control whether a next button is used
+ prev_button : true, // true or false to control whether a prev button is used
+ tip_animation : 'fade', // 'pop' or 'fade' in each tip
+ pause_after : [], // array of indexes where to pause the tour after
+ exposed : [], // array of expose elements
+ tip_animation_fade_speed : 300, // when tipAnimation = 'fade' this is speed in milliseconds for the transition
+ cookie_monster : false, // true or false to control whether cookies are used
+ cookie_name : 'joyride', // Name the cookie you'll use
+ cookie_domain : false, // Will this cookie be attached to a domain, ie. '.notableapp.com'
+ cookie_expires : 365, // set when you would like the cookie to expire.
+ tip_container : 'body', // Where will the tip be attached
+ abort_on_close : true, // When true, the close event will not fire any callback
+ tip_location_patterns : {
+ top : ['bottom'],
+ bottom : [], // bottom should not need to be repositioned
+ left : ['right', 'top', 'bottom'],
+ right : ['left', 'top', 'bottom']
+ },
+ post_ride_callback : function () {}, // A method to call once the tour closes (canceled or complete)
+ post_step_callback : function () {}, // A method to call after each step
+ pre_step_callback : function () {}, // A method to call before each step
+ pre_ride_callback : function () {}, // A method to call before the tour starts (passed index, tip, and cloned exposed element)
+ post_expose_callback : function () {}, // A method to call after an element has been exposed
+ template : { // HTML segments for tip layout
+ link : '<a href="#close" class="joyride-close-tip">×</a>',
+ timer : '<div class="joyride-timer-indicator-wrap"><span class="joyride-timer-indicator"></span></div>',
+ tip : '<div class="joyride-tip-guide"><span class="joyride-nub"></span></div>',
+ wrapper : '<div class="joyride-content-wrapper"></div>',
+ button : '<a href="#" class="small button joyride-next-tip"></a>',
+ prev_button : '<a href="#" class="small button joyride-prev-tip"></a>',
+ modal : '<div class="joyride-modal-bg"></div>',
+ expose : '<div class="joyride-expose-wrapper"></div>',
+ expose_cover : '<div class="joyride-expose-cover"></div>'
+ },
+ expose_add_class : '' // One or more space-separated class names to be added to exposed element
+ },
+
+ init : function (scope, method, options) {
+ Foundation.inherit(this, 'throttle random_str');
+
+ this.settings = this.settings || $.extend({}, this.defaults, (options || method));
+
+ this.bindings(method, options)
+ },
+
+ go_next : function () {
+ if (this.settings.$li.next().length < 1) {
+ this.end();
+ } else if (this.settings.timer > 0) {
+ clearTimeout(this.settings.automate);
+ this.hide();
+ this.show();
+ this.startTimer();
+ } else {
+ this.hide();
+ this.show();
+ }
+ },
+
+ go_prev : function () {
+ if (this.settings.$li.prev().length < 1) {
+ // Do nothing if there are no prev element
+ } else if (this.settings.timer > 0) {
+ clearTimeout(this.settings.automate);
+ this.hide();
+ this.show(null, true);
+ this.startTimer();
+ } else {
+ this.hide();
+ this.show(null, true);
+ }
+ },
+
+ events : function () {
+ var self = this;
+
+ $(this.scope)
+ .off('.joyride')
+ .on('click.fndtn.joyride', '.joyride-next-tip, .joyride-modal-bg', function (e) {
+ e.preventDefault();
+ this.go_next()
+ }.bind(this))
+ .on('click.fndtn.joyride', '.joyride-prev-tip', function (e) {
+ e.preventDefault();
+ this.go_prev();
+ }.bind(this))
+
+ .on('click.fndtn.joyride', '.joyride-close-tip', function (e) {
+ e.preventDefault();
+ this.end(this.settings.abort_on_close);
+ }.bind(this))
+
+ .on('keyup.fndtn.joyride', function (e) {
+ // Don't do anything if keystrokes are disabled
+ // or if the joyride is not being shown
+ if (!this.settings.keyboard || !this.settings.riding) {
+ return;
+ }
+
+ switch (e.which) {
+ case 39: // right arrow
+ e.preventDefault();
+ this.go_next();
+ break;
+ case 37: // left arrow
+ e.preventDefault();
+ this.go_prev();
+ break;
+ case 27: // escape
+ e.preventDefault();
+ this.end(this.settings.abort_on_close);
+ }
+ }.bind(this));
+
+ $(window)
+ .off('.joyride')
+ .on('resize.fndtn.joyride', self.throttle(function () {
+ if ($('[' + self.attr_name() + ']').length > 0 && self.settings.$next_tip && self.settings.riding) {
+ if (self.settings.exposed.length > 0) {
+ var $els = $(self.settings.exposed);
+
+ $els.each(function () {
+ var $this = $(this);
+ self.un_expose($this);
+ self.expose($this);
+ });
+ }
+
+ if (self.is_phone()) {
+ self.pos_phone();
+ } else {
+ self.pos_default(false);
+ }
+ }
+ }, 100));
+ },
+
+ start : function () {
+ var self = this,
+ $this = $('[' + this.attr_name() + ']', this.scope),
+ integer_settings = ['timer', 'scrollSpeed', 'startOffset', 'tipAnimationFadeSpeed', 'cookieExpires'],
+ int_settings_count = integer_settings.length;
+
+ if (!$this.length > 0) {
+ return;
+ }
+
+ if (!this.settings.init) {
+ this.events();
+ }
+
+ this.settings = $this.data(this.attr_name(true) + '-init');
+
+ // non configureable settings
+ this.settings.$content_el = $this;
+ this.settings.$body = $(this.settings.tip_container);
+ this.settings.body_offset = $(this.settings.tip_container).position();
+ this.settings.$tip_content = this.settings.$content_el.find('> li');
+ this.settings.paused = false;
+ this.settings.attempts = 0;
+ this.settings.riding = true;
+
+ // can we create cookies?
+ if (typeof $.cookie !== 'function') {
+ this.settings.cookie_monster = false;
+ }
+
+ // generate the tips and insert into dom.
+ if (!this.settings.cookie_monster || this.settings.cookie_monster && !$.cookie(this.settings.cookie_name)) {
+ this.settings.$tip_content.each(function (index) {
+ var $this = $(this);
+ this.settings = $.extend({}, self.defaults, self.data_options($this));
+
+ // Make sure that settings parsed from data_options are integers where necessary
+ var i = int_settings_count;
+ while (i--) {
+ self.settings[integer_settings[i]] = parseInt(self.settings[integer_settings[i]], 10);
+ }
+ self.create({$li : $this, index : index});
+ });
+
+ // show first tip
+ if (!this.settings.start_timer_on_click && this.settings.timer > 0) {
+ this.show('init');
+ this.startTimer();
+ } else {
+ this.show('init');
+ }
+
+ }
+ },
+
+ resume : function () {
+ this.set_li();
+ this.show();
+ },
+
+ tip_template : function (opts) {
+ var $blank, content;
+
+ opts.tip_class = opts.tip_class || '';
+
+ $blank = $(this.settings.template.tip).addClass(opts.tip_class);
+ content = $.trim($(opts.li).html()) +
+ this.prev_button_text(opts.prev_button_text, opts.index) +
+ this.button_text(opts.button_text) +
+ this.settings.template.link +
+ this.timer_instance(opts.index);
+
+ $blank.append($(this.settings.template.wrapper));
+ $blank.first().attr(this.add_namespace('data-index'), opts.index);
+ $('.joyride-content-wrapper', $blank).append(content);
+
+ return $blank[0];
+ },
+
+ timer_instance : function (index) {
+ var txt;
+
+ if ((index === 0 && this.settings.start_timer_on_click && this.settings.timer > 0) || this.settings.timer === 0) {
+ txt = '';
+ } else {
+ txt = $(this.settings.template.timer)[0].outerHTML;
+ }
+ return txt;
+ },
+
+ button_text : function (txt) {
+ if (this.settings.tip_settings.next_button) {
+ txt = $.trim(txt) || 'Next';
+ txt = $(this.settings.template.button).append(txt)[0].outerHTML;
+ } else {
+ txt = '';
+ }
+ return txt;
+ },
+
+ prev_button_text : function (txt, idx) {
+ if (this.settings.tip_settings.prev_button) {
+ txt = $.trim(txt) || 'Previous';
+
+ // Add the disabled class to the button if it's the first element
+ if (idx == 0) {
+ txt = $(this.settings.template.prev_button).append(txt).addClass('disabled')[0].outerHTML;
+ } else {
+ txt = $(this.settings.template.prev_button).append(txt)[0].outerHTML;
+ }
+ } else {
+ txt = '';
+ }
+ return txt;
+ },
+
+ create : function (opts) {
+ this.settings.tip_settings = $.extend({}, this.settings, this.data_options(opts.$li));
+ var buttonText = opts.$li.attr(this.add_namespace('data-button')) || opts.$li.attr(this.add_namespace('data-text')),
+ prevButtonText = opts.$li.attr(this.add_namespace('data-button-prev')) || opts.$li.attr(this.add_namespace('data-prev-text')),
+ tipClass = opts.$li.attr('class'),
+ $tip_content = $(this.tip_template({
+ tip_class : tipClass,
+ index : opts.index,
+ button_text : buttonText,
+ prev_button_text : prevButtonText,
+ li : opts.$li
+ }));
+
+ $(this.settings.tip_container).append($tip_content);
+ },
+
+ show : function (init, is_prev) {
+ var $timer = null;
+
+ // are we paused?
+ if (this.settings.$li === undefined || ($.inArray(this.settings.$li.index(), this.settings.pause_after) === -1)) {
+
+ // don't go to the next li if the tour was paused
+ if (this.settings.paused) {
+ this.settings.paused = false;
+ } else {
+ this.set_li(init, is_prev);
+ }
+
+ this.settings.attempts = 0;
+
+ if (this.settings.$li.length && this.settings.$target.length > 0) {
+ if (init) { //run when we first start
+ this.settings.pre_ride_callback(this.settings.$li.index(), this.settings.$next_tip);
+ if (this.settings.modal) {
+ this.show_modal();
+ }
+ }
+
+ this.settings.pre_step_callback(this.settings.$li.index(), this.settings.$next_tip);
+
+ if (this.settings.modal && this.settings.expose) {
+ this.expose();
+ }
+
+ this.settings.tip_settings = $.extend({}, this.settings, this.data_options(this.settings.$li));
+
+ this.settings.timer = parseInt(this.settings.timer, 10);
+
+ this.settings.tip_settings.tip_location_pattern = this.settings.tip_location_patterns[this.settings.tip_settings.tip_location];
+
+ // scroll and hide bg if not modal and not expose
+ if (!/body/i.test(this.settings.$target.selector) && !this.settings.expose) {
+ var joyridemodalbg = $('.joyride-modal-bg');
+ if (/pop/i.test(this.settings.tipAnimation)) {
+ joyridemodalbg.hide();
+ } else {
+ joyridemodalbg.fadeOut(this.settings.tipAnimationFadeSpeed);
+ }
+ this.scroll_to();
+ }
+
+ if (this.is_phone()) {
+ this.pos_phone(true);
+ } else {
+ this.pos_default(true);
+ }
+
+ $timer = this.settings.$next_tip.find('.joyride-timer-indicator');
+
+ if (/pop/i.test(this.settings.tip_animation)) {
+
+ $timer.width(0);
+
+ if (this.settings.timer > 0) {
+
+ this.settings.$next_tip.show();
+
+ setTimeout(function () {
+ $timer.animate({
+ width : $timer.parent().width()
+ }, this.settings.timer, 'linear');
+ }.bind(this), this.settings.tip_animation_fade_speed);
+
+ } else {
+ this.settings.$next_tip.show();
+
+ }
+
+ } else if (/fade/i.test(this.settings.tip_animation)) {
+
+ $timer.width(0);
+
+ if (this.settings.timer > 0) {
+
+ this.settings.$next_tip
+ .fadeIn(this.settings.tip_animation_fade_speed)
+ .show();
+
+ setTimeout(function () {
+ $timer.animate({
+ width : $timer.parent().width()
+ }, this.settings.timer, 'linear');
+ }.bind(this), this.settings.tip_animation_fade_speed);
+
+ } else {
+ this.settings.$next_tip.fadeIn(this.settings.tip_animation_fade_speed);
+ }
+ }
+
+ this.settings.$current_tip = this.settings.$next_tip;
+
+ // skip non-existant targets
+ } else if (this.settings.$li && this.settings.$target.length < 1) {
+
+ this.show(init, is_prev);
+
+ } else {
+
+ this.end();
+
+ }
+ } else {
+
+ this.settings.paused = true;
+
+ }
+
+ },
+
+ is_phone : function () {
+ return matchMedia(Foundation.media_queries.small).matches &&
+ !matchMedia(Foundation.media_queries.medium).matches;
+ },
+
+ hide : function () {
+ if (this.settings.modal && this.settings.expose) {
+ this.un_expose();
+ }
+
+ if (!this.settings.modal) {
+ $('.joyride-modal-bg').hide();
+ }
+
+ // Prevent scroll bouncing...wait to remove from layout
+ this.settings.$current_tip.css('visibility', 'hidden');
+ setTimeout($.proxy(function () {
+ this.hide();
+ this.css('visibility', 'visible');
+ }, this.settings.$current_tip), 0);
+ this.settings.post_step_callback(this.settings.$li.index(),
+ this.settings.$current_tip);
+ },
+
+ set_li : function (init, is_prev) {
+ if (init) {
+ this.settings.$li = this.settings.$tip_content.eq(this.settings.start_offset);
+ this.set_next_tip();
+ this.settings.$current_tip = this.settings.$next_tip;
+ } else {
+ if (is_prev) {
+ this.settings.$li = this.settings.$li.prev();
+ } else {
+ this.settings.$li = this.settings.$li.next();
+ }
+ this.set_next_tip();
+ }
+
+ this.set_target();
+ },
+
+ set_next_tip : function () {
+ this.settings.$next_tip = $('.joyride-tip-guide').eq(this.settings.$li.index());
+ this.settings.$next_tip.data('closed', '');
+ },
+
+ set_target : function () {
+ var cl = this.settings.$li.attr(this.add_namespace('data-class')),
+ id = this.settings.$li.attr(this.add_namespace('data-id')),
+ $sel = function () {
+ if (id) {
+ return $(document.getElementById(id));
+ } else if (cl) {
+ return $('.' + cl).first();
+ } else {
+ return $('body');
+ }
+ };
+
+ this.settings.$target = $sel();
+ },
+
+ scroll_to : function () {
+ var window_half, tipOffset;
+
+ window_half = $(window).height() / 2;
+ tipOffset = Math.ceil(this.settings.$target.offset().top - window_half + this.settings.$next_tip.outerHeight());
+
+ if (tipOffset != 0) {
+ $('html, body').stop().animate({
+ scrollTop : tipOffset
+ }, this.settings.scroll_speed, 'swing');
+ }
+ },
+
+ paused : function () {
+ return ($.inArray((this.settings.$li.index() + 1), this.settings.pause_after) === -1);
+ },
+
+ restart : function () {
+ this.hide();
+ this.settings.$li = undefined;
+ this.show('init');
+ },
+
+ pos_default : function (init) {
+ var $nub = this.settings.$next_tip.find('.joyride-nub'),
+ nub_width = Math.ceil($nub.outerWidth() / 2),
+ nub_height = Math.ceil($nub.outerHeight() / 2),
+ toggle = init || false;
+
+ // tip must not be "display: none" to calculate position
+ if (toggle) {
+ this.settings.$next_tip.css('visibility', 'hidden');
+ this.settings.$next_tip.show();
+ }
+
+ if (!/body/i.test(this.settings.$target.selector)) {
+ var topAdjustment = this.settings.tip_settings.tipAdjustmentY ? parseInt(this.settings.tip_settings.tipAdjustmentY) : 0,
+ leftAdjustment = this.settings.tip_settings.tipAdjustmentX ? parseInt(this.settings.tip_settings.tipAdjustmentX) : 0;
+
+ if (this.bottom()) {
+ if (this.rtl) {
+ this.settings.$next_tip.css({
+ top : (this.settings.$target.offset().top + nub_height + this.settings.$target.outerHeight() + topAdjustment),
+ left : this.settings.$target.offset().left + this.settings.$target.outerWidth() - this.settings.$next_tip.outerWidth() + leftAdjustment});
+ } else {
+ this.settings.$next_tip.css({
+ top : (this.settings.$target.offset().top + nub_height + this.settings.$target.outerHeight() + topAdjustment),
+ left : this.settings.$target.offset().left + leftAdjustment});
+ }
+
+ this.nub_position($nub, this.settings.tip_settings.nub_position, 'top');
+
+ } else if (this.top()) {
+ if (this.rtl) {
+ this.settings.$next_tip.css({
+ top : (this.settings.$target.offset().top - this.settings.$next_tip.outerHeight() - nub_height + topAdjustment),
+ left : this.settings.$target.offset().left + this.settings.$target.outerWidth() - this.settings.$next_tip.outerWidth()});
+ } else {
+ this.settings.$next_tip.css({
+ top : (this.settings.$target.offset().top - this.settings.$next_tip.outerHeight() - nub_height + topAdjustment),
+ left : this.settings.$target.offset().left + leftAdjustment});
+ }
+
+ this.nub_position($nub, this.settings.tip_settings.nub_position, 'bottom');
+
+ } else if (this.right()) {
+
+ this.settings.$next_tip.css({
+ top : this.settings.$target.offset().top + topAdjustment,
+ left : (this.settings.$target.outerWidth() + this.settings.$target.offset().left + nub_width + leftAdjustment)});
+
+ this.nub_position($nub, this.settings.tip_settings.nub_position, 'left');
+
+ } else if (this.left()) {
+
+ this.settings.$next_tip.css({
+ top : this.settings.$target.offset().top + topAdjustment,
+ left : (this.settings.$target.offset().left - this.settings.$next_tip.outerWidth() - nub_width + leftAdjustment)});
+
+ this.nub_position($nub, this.settings.tip_settings.nub_position, 'right');
+
+ }
+
+ if (!this.visible(this.corners(this.settings.$next_tip)) && this.settings.attempts < this.settings.tip_settings.tip_location_pattern.length) {
+
+ $nub.removeClass('bottom')
+ .removeClass('top')
+ .removeClass('right')
+ .removeClass('left');
+
+ this.settings.tip_settings.tip_location = this.settings.tip_settings.tip_location_pattern[this.settings.attempts];
+
+ this.settings.attempts++;
+
+ this.pos_default();
+
+ }
+
+ } else if (this.settings.$li.length) {
+
+ this.pos_modal($nub);
+
+ }
+
+ if (toggle) {
+ this.settings.$next_tip.hide();
+ this.settings.$next_tip.css('visibility', 'visible');
+ }
+
+ },
+
+ pos_phone : function (init) {
+ var tip_height = this.settings.$next_tip.outerHeight(),
+ tip_offset = this.settings.$next_tip.offset(),
+ target_height = this.settings.$target.outerHeight(),
+ $nub = $('.joyride-nub', this.settings.$next_tip),
+ nub_height = Math.ceil($nub.outerHeight() / 2),
+ toggle = init || false;
+
+ $nub.removeClass('bottom')
+ .removeClass('top')
+ .removeClass('right')
+ .removeClass('left');
+
+ if (toggle) {
+ this.settings.$next_tip.css('visibility', 'hidden');
+ this.settings.$next_tip.show();
+ }
+
+ if (!/body/i.test(this.settings.$target.selector)) {
+
+ if (this.top()) {
+
+ this.settings.$next_tip.offset({top : this.settings.$target.offset().top - tip_height - nub_height});
+ $nub.addClass('bottom');
+
+ } else {
+
+ this.settings.$next_tip.offset({top : this.settings.$target.offset().top + target_height + nub_height});
+ $nub.addClass('top');
+
+ }
+
+ } else if (this.settings.$li.length) {
+ this.pos_modal($nub);
+ }
+
+ if (toggle) {
+ this.settings.$next_tip.hide();
+ this.settings.$next_tip.css('visibility', 'visible');
+ }
+ },
+
+ pos_modal : function ($nub) {
+ this.center();
+ $nub.hide();
+
+ this.show_modal();
+ },
+
+ show_modal : function () {
+ if (!this.settings.$next_tip.data('closed')) {
+ var joyridemodalbg = $('.joyride-modal-bg');
+ if (joyridemodalbg.length < 1) {
+ var joyridemodalbg = $(this.settings.template.modal);
+ joyridemodalbg.appendTo('body');
+ }
+
+ if (/pop/i.test(this.settings.tip_animation)) {
+ joyridemodalbg.show();
+ } else {
+ joyridemodalbg.fadeIn(this.settings.tip_animation_fade_speed);
+ }
+ }
+ },
+
+ expose : function () {
+ var expose,
+ exposeCover,
+ el,
+ origCSS,
+ origClasses,
+ randId = 'expose-' + this.random_str(6);
+
+ if (arguments.length > 0 && arguments[0] instanceof $) {
+ el = arguments[0];
+ } else if (this.settings.$target && !/body/i.test(this.settings.$target.selector)) {
+ el = this.settings.$target;
+ } else {
+ return false;
+ }
+
+ if (el.length < 1) {
+ if (window.console) {
+ console.error('element not valid', el);
+ }
+ return false;
+ }
+
+ expose = $(this.settings.template.expose);
+ this.settings.$body.append(expose);
+ expose.css({
+ top : el.offset().top,
+ left : el.offset().left,
+ width : el.outerWidth(true),
+ height : el.outerHeight(true)
+ });
+
+ exposeCover = $(this.settings.template.expose_cover);
+
+ origCSS = {
+ zIndex : el.css('z-index'),
+ position : el.css('position')
+ };
+
+ origClasses = el.attr('class') == null ? '' : el.attr('class');
+
+ el.css('z-index', parseInt(expose.css('z-index')) + 1);
+
+ if (origCSS.position == 'static') {
+ el.css('position', 'relative');
+ }
+
+ el.data('expose-css', origCSS);
+ el.data('orig-class', origClasses);
+ el.attr('class', origClasses + ' ' + this.settings.expose_add_class);
+
+ exposeCover.css({
+ top : el.offset().top,
+ left : el.offset().left,
+ width : el.outerWidth(true),
+ height : el.outerHeight(true)
+ });
+
+ if (this.settings.modal) {
+ this.show_modal();
+ }
+
+ this.settings.$body.append(exposeCover);
+ expose.addClass(randId);
+ exposeCover.addClass(randId);
+ el.data('expose', randId);
+ this.settings.post_expose_callback(this.settings.$li.index(), this.settings.$next_tip, el);
+ this.add_exposed(el);
+ },
+
+ un_expose : function () {
+ var exposeId,
+ el,
+ expose,
+ origCSS,
+ origClasses,
+ clearAll = false;
+
+ if (arguments.length > 0 && arguments[0] instanceof $) {
+ el = arguments[0];
+ } else if (this.settings.$target && !/body/i.test(this.settings.$target.selector)) {
+ el = this.settings.$target;
+ } else {
+ return false;
+ }
+
+ if (el.length < 1) {
+ if (window.console) {
+ console.error('element not valid', el);
+ }
+ return false;
+ }
+
+ exposeId = el.data('expose');
+ expose = $('.' + exposeId);
+
+ if (arguments.length > 1) {
+ clearAll = arguments[1];
+ }
+
+ if (clearAll === true) {
+ $('.joyride-expose-wrapper,.joyride-expose-cover').remove();
+ } else {
+ expose.remove();
+ }
+
+ origCSS = el.data('expose-css');
+
+ if (origCSS.zIndex == 'auto') {
+ el.css('z-index', '');
+ } else {
+ el.css('z-index', origCSS.zIndex);
+ }
+
+ if (origCSS.position != el.css('position')) {
+ if (origCSS.position == 'static') {// this is default, no need to set it.
+ el.css('position', '');
+ } else {
+ el.css('position', origCSS.position);
+ }
+ }
+
+ origClasses = el.data('orig-class');
+ el.attr('class', origClasses);
+ el.removeData('orig-classes');
+
+ el.removeData('expose');
+ el.removeData('expose-z-index');
+ this.remove_exposed(el);
+ },
+
+ add_exposed : function (el) {
+ this.settings.exposed = this.settings.exposed || [];
+ if (el instanceof $ || typeof el === 'object') {
+ this.settings.exposed.push(el[0]);
+ } else if (typeof el == 'string') {
+ this.settings.exposed.push(el);
+ }
+ },
+
+ remove_exposed : function (el) {
+ var search, i;
+ if (el instanceof $) {
+ search = el[0]
+ } else if (typeof el == 'string') {
+ search = el;
+ }
+
+ this.settings.exposed = this.settings.exposed || [];
+ i = this.settings.exposed.length;
+
+ while (i--) {
+ if (this.settings.exposed[i] == search) {
+ this.settings.exposed.splice(i, 1);
+ return;
+ }
+ }
+ },
+
+ center : function () {
+ var $w = $(window);
+
+ this.settings.$next_tip.css({
+ top : ((($w.height() - this.settings.$next_tip.outerHeight()) / 2) + $w.scrollTop()),
+ left : ((($w.width() - this.settings.$next_tip.outerWidth()) / 2) + $w.scrollLeft())
+ });
+
+ return true;
+ },
+
+ bottom : function () {
+ return /bottom/i.test(this.settings.tip_settings.tip_location);
+ },
+
+ top : function () {
+ return /top/i.test(this.settings.tip_settings.tip_location);
+ },
+
+ right : function () {
+ return /right/i.test(this.settings.tip_settings.tip_location);
+ },
+
+ left : function () {
+ return /left/i.test(this.settings.tip_settings.tip_location);
+ },
+
+ corners : function (el) {
+ if (el.length === 0) {
+ return [false, false, false, false];
+ }
+
+ var w = $(window),
+ window_half = w.height() / 2,
+ //using this to calculate since scroll may not have finished yet.
+ tipOffset = Math.ceil(this.settings.$target.offset().top - window_half + this.settings.$next_tip.outerHeight()),
+ right = w.width() + w.scrollLeft(),
+ offsetBottom = w.height() + tipOffset,
+ bottom = w.height() + w.scrollTop(),
+ top = w.scrollTop();
+
+ if (tipOffset < top) {
+ if (tipOffset < 0) {
+ top = 0;
+ } else {
+ top = tipOffset;
+ }
+ }
+
+ if (offsetBottom > bottom) {
+ bottom = offsetBottom;
+ }
+
+ return [
+ el.offset().top < top,
+ right < el.offset().left + el.outerWidth(),
+ bottom < el.offset().top + el.outerHeight(),
+ w.scrollLeft() > el.offset().left
+ ];
+ },
+
+ visible : function (hidden_corners) {
+ var i = hidden_corners.length;
+
+ while (i--) {
+ if (hidden_corners[i]) {
+ return false;
+ }
+ }
+
+ return true;
+ },
+
+ nub_position : function (nub, pos, def) {
+ if (pos === 'auto') {
+ nub.addClass(def);
+ } else {
+ nub.addClass(pos);
+ }
+ },
+
+ startTimer : function () {
+ if (this.settings.$li.length) {
+ this.settings.automate = setTimeout(function () {
+ this.hide();
+ this.show();
+ this.startTimer();
+ }.bind(this), this.settings.timer);
+ } else {
+ clearTimeout(this.settings.automate);
+ }
+ },
+
+ end : function (abort) {
+ if (this.settings.cookie_monster) {
+ $.cookie(this.settings.cookie_name, 'ridden', {expires : this.settings.cookie_expires, domain : this.settings.cookie_domain});
+ }
+
+ if (this.settings.timer > 0) {
+ clearTimeout(this.settings.automate);
+ }
+
+ if (this.settings.modal && this.settings.expose) {
+ this.un_expose();
+ }
+
+ // Unplug keystrokes listener
+ $(this.scope).off('keyup.joyride')
+
+ this.settings.$next_tip.data('closed', true);
+ this.settings.riding = false;
+
+ $('.joyride-modal-bg').hide();
+ this.settings.$current_tip.hide();
+
+ if (typeof abort === 'undefined' || abort === false) {
+ this.settings.post_step_callback(this.settings.$li.index(), this.settings.$current_tip);
+ this.settings.post_ride_callback(this.settings.$li.index(), this.settings.$current_tip);
+ }
+
+ $('.joyride-tip-guide').remove();
+ },
+
+ off : function () {
+ $(this.scope).off('.joyride');
+ $(window).off('.joyride');
+ $('.joyride-close-tip, .joyride-next-tip, .joyride-modal-bg').off('.joyride');
+ $('.joyride-tip-guide, .joyride-modal-bg').remove();
+ clearTimeout(this.settings.automate);
+ },
+
+ reflow : function () {}
+ };
+}(jQuery, window, window.document));
--- /dev/null
+/*
+ * Foundation Responsive Library
+ * http://foundation.zurb.com
+ * Copyright 2015, ZURB
+ * Free to use under the MIT license.
+ * http://www.opensource.org/licenses/mit-license.php
+*/
+
+(function ($, window, document, undefined) {
+ 'use strict';
+
+ var header_helpers = function (class_array) {
+ var head = $('head');
+ head.prepend($.map(class_array, function (class_name) {
+ if (head.has('.' + class_name).length === 0) {
+ return '<meta class="' + class_name + '" />';
+ }
+ }));
+ };
+
+ header_helpers([
+ 'foundation-mq-small',
+ 'foundation-mq-small-only',
+ 'foundation-mq-medium',
+ 'foundation-mq-medium-only',
+ 'foundation-mq-large',
+ 'foundation-mq-large-only',
+ 'foundation-mq-xlarge',
+ 'foundation-mq-xlarge-only',
+ 'foundation-mq-xxlarge',
+ 'foundation-data-attribute-namespace']);
+
+ // Enable FastClick if present
+
+ $(function () {
+ if (typeof FastClick !== 'undefined') {
+ // Don't attach to body if undefined
+ if (typeof document.body !== 'undefined') {
+ FastClick.attach(document.body);
+ }
+ }
+ });
+
+ // private Fast Selector wrapper,
+ // returns jQuery object. Only use where
+ // getElementById is not available.
+ var S = function (selector, context) {
+ if (typeof selector === 'string') {
+ if (context) {
+ var cont;
+ if (context.jquery) {
+ cont = context[0];
+ if (!cont) {
+ return context;
+ }
+ } else {
+ cont = context;
+ }
+ return $(cont.querySelectorAll(selector));
+ }
+
+ return $(document.querySelectorAll(selector));
+ }
+
+ return $(selector, context);
+ };
+
+ // Namespace functions.
+
+ var attr_name = function (init) {
+ var arr = [];
+ if (!init) {
+ arr.push('data');
+ }
+ if (this.namespace.length > 0) {
+ arr.push(this.namespace);
+ }
+ arr.push(this.name);
+
+ return arr.join('-');
+ };
+
+ var add_namespace = function (str) {
+ var parts = str.split('-'),
+ i = parts.length,
+ arr = [];
+
+ while (i--) {
+ if (i !== 0) {
+ arr.push(parts[i]);
+ } else {
+ if (this.namespace.length > 0) {
+ arr.push(this.namespace, parts[i]);
+ } else {
+ arr.push(parts[i]);
+ }
+ }
+ }
+
+ return arr.reverse().join('-');
+ };
+
+ // Event binding and data-options updating.
+
+ var bindings = function (method, options) {
+ var self = this,
+ bind = function(){
+ var $this = S(this),
+ should_bind_events = !$this.data(self.attr_name(true) + '-init');
+ $this.data(self.attr_name(true) + '-init', $.extend({}, self.settings, (options || method), self.data_options($this)));
+
+ if (should_bind_events) {
+ self.events(this);
+ }
+ };
+
+ if (S(this.scope).is('[' + this.attr_name() +']')) {
+ bind.call(this.scope);
+ } else {
+ S('[' + this.attr_name() +']', this.scope).each(bind);
+ }
+ // # Patch to fix #5043 to move this *after* the if/else clause in order for Backbone and similar frameworks to have improved control over event binding and data-options updating.
+ if (typeof method === 'string') {
+ return this[method].call(this, options);
+ }
+
+ };
+
+ var single_image_loaded = function (image, callback) {
+ function loaded () {
+ callback(image[0]);
+ }
+
+ function bindLoad () {
+ this.one('load', loaded);
+
+ if (/MSIE (\d+\.\d+);/.test(navigator.userAgent)) {
+ var src = this.attr( 'src' ),
+ param = src.match( /\?/ ) ? '&' : '?';
+
+ param += 'random=' + (new Date()).getTime();
+ this.attr('src', src + param);
+ }
+ }
+
+ if (!image.attr('src')) {
+ loaded();
+ return;
+ }
+
+ if (image[0].complete || image[0].readyState === 4) {
+ loaded();
+ } else {
+ bindLoad.call(image);
+ }
+ };
+
+ /*! matchMedia() polyfill - Test a CSS media type/query in JS. Authors & copyright (c) 2012: Scott Jehl, Paul Irish, Nicholas Zakas, David Knight. Dual MIT/BSD license */
+
+ window.matchMedia || (window.matchMedia = function() {
+ "use strict";
+
+ // For browsers that support matchMedium api such as IE 9 and webkit
+ var styleMedia = (window.styleMedia || window.media);
+
+ // For those that don't support matchMedium
+ if (!styleMedia) {
+ var style = document.createElement('style'),
+ script = document.getElementsByTagName('script')[0],
+ info = null;
+
+ style.type = 'text/css';
+ style.id = 'matchmediajs-test';
+
+ script.parentNode.insertBefore(style, script);
+
+ // 'style.currentStyle' is used by IE <= 8 and 'window.getComputedStyle' for all other browsers
+ info = ('getComputedStyle' in window) && window.getComputedStyle(style, null) || style.currentStyle;
+
+ styleMedia = {
+ matchMedium: function(media) {
+ var text = '@media ' + media + '{ #matchmediajs-test { width: 1px; } }';
+
+ // 'style.styleSheet' is used by IE <= 8 and 'style.textContent' for all other browsers
+ if (style.styleSheet) {
+ style.styleSheet.cssText = text;
+ } else {
+ style.textContent = text;
+ }
+
+ // Test if media query is true or false
+ return info.width === '1px';
+ }
+ };
+ }
+
+ return function(media) {
+ return {
+ matches: styleMedia.matchMedium(media || 'all'),
+ media: media || 'all'
+ };
+ };
+ }());
+
+ /*
+ * jquery.requestAnimationFrame
+ * https://github.com/gnarf37/jquery-requestAnimationFrame
+ * Requires jQuery 1.8+
+ *
+ * Copyright (c) 2012 Corey Frang
+ * Licensed under the MIT license.
+ */
+
+ (function(jQuery) {
+
+
+ // requestAnimationFrame polyfill adapted from Erik Möller
+ // fixes from Paul Irish and Tino Zijdel
+ // http://paulirish.com/2011/requestanimationframe-for-smart-animating/
+ // http://my.opera.com/emoller/blog/2011/12/20/requestanimationframe-for-smart-er-animating
+
+ var animating,
+ lastTime = 0,
+ vendors = ['webkit', 'moz'],
+ requestAnimationFrame = window.requestAnimationFrame,
+ cancelAnimationFrame = window.cancelAnimationFrame,
+ jqueryFxAvailable = 'undefined' !== typeof jQuery.fx;
+
+ for (; lastTime < vendors.length && !requestAnimationFrame; lastTime++) {
+ requestAnimationFrame = window[ vendors[lastTime] + 'RequestAnimationFrame' ];
+ cancelAnimationFrame = cancelAnimationFrame ||
+ window[ vendors[lastTime] + 'CancelAnimationFrame' ] ||
+ window[ vendors[lastTime] + 'CancelRequestAnimationFrame' ];
+ }
+
+ function raf() {
+ if (animating) {
+ requestAnimationFrame(raf);
+
+ if (jqueryFxAvailable) {
+ jQuery.fx.tick();
+ }
+ }
+ }
+
+ if (requestAnimationFrame) {
+ // use rAF
+ window.requestAnimationFrame = requestAnimationFrame;
+ window.cancelAnimationFrame = cancelAnimationFrame;
+
+ if (jqueryFxAvailable) {
+ jQuery.fx.timer = function (timer) {
+ if (timer() && jQuery.timers.push(timer) && !animating) {
+ animating = true;
+ raf();
+ }
+ };
+
+ jQuery.fx.stop = function () {
+ animating = false;
+ };
+ }
+ } else {
+ // polyfill
+ window.requestAnimationFrame = function (callback) {
+ var currTime = new Date().getTime(),
+ timeToCall = Math.max(0, 16 - (currTime - lastTime)),
+ id = window.setTimeout(function () {
+ callback(currTime + timeToCall);
+ }, timeToCall);
+ lastTime = currTime + timeToCall;
+ return id;
+ };
+
+ window.cancelAnimationFrame = function (id) {
+ clearTimeout(id);
+ };
+
+ }
+
+ }( $ ));
+
+ function removeQuotes (string) {
+ if (typeof string === 'string' || string instanceof String) {
+ string = string.replace(/^['\\/"]+|(;\s?})+|['\\/"]+$/g, '');
+ }
+
+ return string;
+ }
+
+ function MediaQuery(selector) {
+ this.selector = selector;
+ this.query = '';
+ }
+
+ MediaQuery.prototype.toString = function () {
+ return this.query || (this.query = S(this.selector).css('font-family').replace(/^[\/\\'"]+|(;\s?})+|[\/\\'"]+$/g, ''));
+ };
+
+ window.Foundation = {
+ name : 'Foundation',
+
+ version : '5.5.3',
+
+ media_queries : {
+ 'small' : new MediaQuery('.foundation-mq-small'),
+ 'small-only' : new MediaQuery('.foundation-mq-small-only'),
+ 'medium' : new MediaQuery('.foundation-mq-medium'),
+ 'medium-only' : new MediaQuery('.foundation-mq-medium-only'),
+ 'large' : new MediaQuery('.foundation-mq-large'),
+ 'large-only' : new MediaQuery('.foundation-mq-large-only'),
+ 'xlarge' : new MediaQuery('.foundation-mq-xlarge'),
+ 'xlarge-only' : new MediaQuery('.foundation-mq-xlarge-only'),
+ 'xxlarge' : new MediaQuery('.foundation-mq-xxlarge')
+ },
+
+ stylesheet : $('<style></style>').appendTo('head')[0].sheet,
+
+ global : {
+ namespace : undefined
+ },
+
+ init : function (scope, libraries, method, options, response) {
+ var args = [scope, method, options, response],
+ responses = [];
+
+ // check RTL
+ this.rtl = /rtl/i.test(S('html').attr('dir'));
+
+ // set foundation global scope
+ this.scope = scope || this.scope;
+
+ this.set_namespace();
+
+ if (libraries && typeof libraries === 'string' && !/reflow/i.test(libraries)) {
+ if (this.libs.hasOwnProperty(libraries)) {
+ responses.push(this.init_lib(libraries, args));
+ }
+ } else {
+ for (var lib in this.libs) {
+ responses.push(this.init_lib(lib, libraries));
+ }
+ }
+
+ S(window).load(function () {
+ S(window)
+ .trigger('resize.fndtn.clearing')
+ .trigger('resize.fndtn.dropdown')
+ .trigger('resize.fndtn.equalizer')
+ .trigger('resize.fndtn.interchange')
+ .trigger('resize.fndtn.joyride')
+ .trigger('resize.fndtn.magellan')
+ .trigger('resize.fndtn.topbar')
+ .trigger('resize.fndtn.slider');
+ });
+
+ return scope;
+ },
+
+ init_lib : function (lib, args) {
+ if (this.libs.hasOwnProperty(lib)) {
+ this.patch(this.libs[lib]);
+
+ if (args && args.hasOwnProperty(lib)) {
+ if (typeof this.libs[lib].settings !== 'undefined') {
+ $.extend(true, this.libs[lib].settings, args[lib]);
+ } else if (typeof this.libs[lib].defaults !== 'undefined') {
+ $.extend(true, this.libs[lib].defaults, args[lib]);
+ }
+ return this.libs[lib].init.apply(this.libs[lib], [this.scope, args[lib]]);
+ }
+
+ args = args instanceof Array ? args : new Array(args);
+ return this.libs[lib].init.apply(this.libs[lib], args);
+ }
+
+ return function () {};
+ },
+
+ patch : function (lib) {
+ lib.scope = this.scope;
+ lib.namespace = this.global.namespace;
+ lib.rtl = this.rtl;
+ lib['data_options'] = this.utils.data_options;
+ lib['attr_name'] = attr_name;
+ lib['add_namespace'] = add_namespace;
+ lib['bindings'] = bindings;
+ lib['S'] = this.utils.S;
+ },
+
+ inherit : function (scope, methods) {
+ var methods_arr = methods.split(' '),
+ i = methods_arr.length;
+
+ while (i--) {
+ if (this.utils.hasOwnProperty(methods_arr[i])) {
+ scope[methods_arr[i]] = this.utils[methods_arr[i]];
+ }
+ }
+ },
+
+ set_namespace : function () {
+
+ // Description:
+ // Don't bother reading the namespace out of the meta tag
+ // if the namespace has been set globally in javascript
+ //
+ // Example:
+ // Foundation.global.namespace = 'my-namespace';
+ // or make it an empty string:
+ // Foundation.global.namespace = '';
+ //
+ //
+
+ // If the namespace has not been set (is undefined), try to read it out of the meta element.
+ // Otherwise use the globally defined namespace, even if it's empty ('')
+ var namespace = ( this.global.namespace === undefined ) ? $('.foundation-data-attribute-namespace').css('font-family') : this.global.namespace;
+
+ // Finally, if the namsepace is either undefined or false, set it to an empty string.
+ // Otherwise use the namespace value.
+ this.global.namespace = ( namespace === undefined || /false/i.test(namespace) ) ? '' : namespace;
+ },
+
+ libs : {},
+
+ // methods that can be inherited in libraries
+ utils : {
+
+ // Description:
+ // Fast Selector wrapper returns jQuery object. Only use where getElementById
+ // is not available.
+ //
+ // Arguments:
+ // Selector (String): CSS selector describing the element(s) to be
+ // returned as a jQuery object.
+ //
+ // Scope (String): CSS selector describing the area to be searched. Default
+ // is document.
+ //
+ // Returns:
+ // Element (jQuery Object): jQuery object containing elements matching the
+ // selector within the scope.
+ S : S,
+
+ // Description:
+ // Executes a function a max of once every n milliseconds
+ //
+ // Arguments:
+ // Func (Function): Function to be throttled.
+ //
+ // Delay (Integer): Function execution threshold in milliseconds.
+ //
+ // Returns:
+ // Lazy_function (Function): Function with throttling applied.
+ throttle : function (func, delay) {
+ var timer = null;
+
+ return function () {
+ var context = this, args = arguments;
+
+ if (timer == null) {
+ timer = setTimeout(function () {
+ func.apply(context, args);
+ timer = null;
+ }, delay);
+ }
+ };
+ },
+
+ // Description:
+ // Executes a function when it stops being invoked for n seconds
+ // Modified version of _.debounce() http://underscorejs.org
+ //
+ // Arguments:
+ // Func (Function): Function to be debounced.
+ //
+ // Delay (Integer): Function execution threshold in milliseconds.
+ //
+ // Immediate (Bool): Whether the function should be called at the beginning
+ // of the delay instead of the end. Default is false.
+ //
+ // Returns:
+ // Lazy_function (Function): Function with debouncing applied.
+ debounce : function (func, delay, immediate) {
+ var timeout, result;
+ return function () {
+ var context = this, args = arguments;
+ var later = function () {
+ timeout = null;
+ if (!immediate) {
+ result = func.apply(context, args);
+ }
+ };
+ var callNow = immediate && !timeout;
+ clearTimeout(timeout);
+ timeout = setTimeout(later, delay);
+ if (callNow) {
+ result = func.apply(context, args);
+ }
+ return result;
+ };
+ },
+
+ // Description:
+ // Parses data-options attribute
+ //
+ // Arguments:
+ // El (jQuery Object): Element to be parsed.
+ //
+ // Returns:
+ // Options (Javascript Object): Contents of the element's data-options
+ // attribute.
+ data_options : function (el, data_attr_name) {
+ data_attr_name = data_attr_name || 'options';
+ var opts = {}, ii, p, opts_arr,
+ data_options = function (el) {
+ var namespace = Foundation.global.namespace;
+
+ if (namespace.length > 0) {
+ return el.data(namespace + '-' + data_attr_name);
+ }
+
+ return el.data(data_attr_name);
+ };
+
+ var cached_options = data_options(el);
+
+ if (typeof cached_options === 'object') {
+ return cached_options;
+ }
+
+ opts_arr = (cached_options || ':').split(';');
+ ii = opts_arr.length;
+
+ function isNumber (o) {
+ return !isNaN (o - 0) && o !== null && o !== '' && o !== false && o !== true;
+ }
+
+ function trim (str) {
+ if (typeof str === 'string') {
+ return $.trim(str);
+ }
+ return str;
+ }
+
+ while (ii--) {
+ p = opts_arr[ii].split(':');
+ p = [p[0], p.slice(1).join(':')];
+
+ if (/true/i.test(p[1])) {
+ p[1] = true;
+ }
+ if (/false/i.test(p[1])) {
+ p[1] = false;
+ }
+ if (isNumber(p[1])) {
+ if (p[1].indexOf('.') === -1) {
+ p[1] = parseInt(p[1], 10);
+ } else {
+ p[1] = parseFloat(p[1]);
+ }
+ }
+
+ if (p.length === 2 && p[0].length > 0) {
+ opts[trim(p[0])] = trim(p[1]);
+ }
+ }
+
+ return opts;
+ },
+
+ // Description:
+ // Adds JS-recognizable media queries
+ //
+ // Arguments:
+ // Media (String): Key string for the media query to be stored as in
+ // Foundation.media_queries
+ //
+ // Class (String): Class name for the generated <meta> tag
+ register_media : function (media, media_class) {
+ if (Foundation.media_queries[media] === undefined) {
+ $('head').append('<meta class="' + media_class + '"/>');
+ Foundation.media_queries[media] = removeQuotes($('.' + media_class).css('font-family'));
+ }
+ },
+
+ // Description:
+ // Add custom CSS within a JS-defined media query
+ //
+ // Arguments:
+ // Rule (String): CSS rule to be appended to the document.
+ //
+ // Media (String): Optional media query string for the CSS rule to be
+ // nested under.
+ add_custom_rule : function (rule, media) {
+ if (media === undefined && Foundation.stylesheet) {
+ Foundation.stylesheet.insertRule(rule, Foundation.stylesheet.cssRules.length);
+ } else {
+ var query = Foundation.media_queries[media];
+
+ if (query !== undefined) {
+ Foundation.stylesheet.insertRule('@media ' +
+ Foundation.media_queries[media] + '{ ' + rule + ' }', Foundation.stylesheet.cssRules.length);
+ }
+ }
+ },
+
+ // Description:
+ // Performs a callback function when an image is fully loaded
+ //
+ // Arguments:
+ // Image (jQuery Object): Image(s) to check if loaded.
+ //
+ // Callback (Function): Function to execute when image is fully loaded.
+ image_loaded : function (images, callback) {
+ var self = this,
+ unloaded = images.length;
+
+ function pictures_has_height(images) {
+ var pictures_number = images.length;
+
+ for (var i = pictures_number - 1; i >= 0; i--) {
+ if(images.attr('height') === undefined) {
+ return false;
+ };
+ };
+
+ return true;
+ }
+
+ if (unloaded === 0 || pictures_has_height(images)) {
+ callback(images);
+ }
+
+ images.each(function () {
+ single_image_loaded(self.S(this), function () {
+ unloaded -= 1;
+ if (unloaded === 0) {
+ callback(images);
+ }
+ });
+ });
+ },
+
+ // Description:
+ // Returns a random, alphanumeric string
+ //
+ // Arguments:
+ // Length (Integer): Length of string to be generated. Defaults to random
+ // integer.
+ //
+ // Returns:
+ // Rand (String): Pseudo-random, alphanumeric string.
+ random_str : function () {
+ if (!this.fidx) {
+ this.fidx = 0;
+ }
+ this.prefix = this.prefix || [(this.name || 'F'), (+new Date).toString(36)].join('-');
+
+ return this.prefix + (this.fidx++).toString(36);
+ },
+
+ // Description:
+ // Helper for window.matchMedia
+ //
+ // Arguments:
+ // mq (String): Media query
+ //
+ // Returns:
+ // (Boolean): Whether the media query passes or not
+ match : function (mq) {
+ return window.matchMedia(mq).matches;
+ },
+
+ // Description:
+ // Helpers for checking Foundation default media queries with JS
+ //
+ // Returns:
+ // (Boolean): Whether the media query passes or not
+
+ is_small_up : function () {
+ return this.match(Foundation.media_queries.small);
+ },
+
+ is_medium_up : function () {
+ return this.match(Foundation.media_queries.medium);
+ },
+
+ is_large_up : function () {
+ return this.match(Foundation.media_queries.large);
+ },
+
+ is_xlarge_up : function () {
+ return this.match(Foundation.media_queries.xlarge);
+ },
+
+ is_xxlarge_up : function () {
+ return this.match(Foundation.media_queries.xxlarge);
+ },
+
+ is_small_only : function () {
+ return !this.is_medium_up() && !this.is_large_up() && !this.is_xlarge_up() && !this.is_xxlarge_up();
+ },
+
+ is_medium_only : function () {
+ return this.is_medium_up() && !this.is_large_up() && !this.is_xlarge_up() && !this.is_xxlarge_up();
+ },
+
+ is_large_only : function () {
+ return this.is_medium_up() && this.is_large_up() && !this.is_xlarge_up() && !this.is_xxlarge_up();
+ },
+
+ is_xlarge_only : function () {
+ return this.is_medium_up() && this.is_large_up() && this.is_xlarge_up() && !this.is_xxlarge_up();
+ },
+
+ is_xxlarge_only : function () {
+ return this.is_medium_up() && this.is_large_up() && this.is_xlarge_up() && this.is_xxlarge_up();
+ }
+ }
+ };
+
+ $.fn.foundation = function () {
+ var args = Array.prototype.slice.call(arguments, 0);
+
+ return this.each(function () {
+ Foundation.init.apply(Foundation, [this].concat(args));
+ return this;
+ });
+ };
+
+}(jQuery, window, window.document));
--- /dev/null
+;(function ($, window, document, undefined) {
+ 'use strict';
+
+ Foundation.libs['magellan-expedition'] = {
+ name : 'magellan-expedition',
+
+ version : '5.5.3',
+
+ settings : {
+ active_class : 'active',
+ threshold : 0, // pixels from the top of the expedition for it to become fixes
+ destination_threshold : 20, // pixels from the top of destination for it to be considered active
+ throttle_delay : 30, // calculation throttling to increase framerate
+ fixed_top : 0, // top distance in pixels assigend to the fixed element on scroll
+ offset_by_height : true, // whether to offset the destination by the expedition height. Usually you want this to be true, unless your expedition is on the side.
+ duration : 700, // animation duration time
+ easing : 'swing' // animation easing
+ },
+
+ init : function (scope, method, options) {
+ Foundation.inherit(this, 'throttle');
+ this.bindings(method, options);
+ },
+
+ events : function () {
+ var self = this,
+ S = self.S,
+ settings = self.settings;
+
+ // initialize expedition offset
+ self.set_expedition_position();
+
+ S(self.scope)
+ .off('.magellan')
+ .on('click.fndtn.magellan', '[' + self.add_namespace('data-magellan-arrival') + '] a[href*=#]', function (e) {
+ var sameHost = ((this.hostname === location.hostname) || !this.hostname),
+ samePath = self.filterPathname(location.pathname) === self.filterPathname(this.pathname),
+ testHash = this.hash.replace(/(:|\.|\/)/g, '\\$1'),
+ anchor = this;
+
+ if (sameHost && samePath && testHash) {
+ e.preventDefault();
+ var expedition = $(this).closest('[' + self.attr_name() + ']'),
+ settings = expedition.data('magellan-expedition-init'),
+ hash = this.hash.split('#').join(''),
+ target = $('a[name="' + hash + '"]');
+
+ if (target.length === 0) {
+ target = $('#' + hash);
+
+ }
+
+ // Account for expedition height if fixed position
+ var scroll_top = target.offset().top - settings.destination_threshold + 1;
+ if (settings.offset_by_height) {
+ scroll_top = scroll_top - expedition.outerHeight();
+ }
+ $('html, body').stop().animate({
+ 'scrollTop' : scroll_top
+ }, settings.duration, settings.easing, function () {
+ if (history.pushState) {
+ history.pushState(null, null, anchor.pathname + anchor.search + '#' + hash);
+ } else {
+ location.hash = anchor.pathname + anchor.search + '#' + hash;
+ }
+ });
+ }
+ })
+ .on('scroll.fndtn.magellan', self.throttle(this.check_for_arrivals.bind(this), settings.throttle_delay));
+ },
+
+ check_for_arrivals : function () {
+ var self = this;
+ self.update_arrivals();
+ self.update_expedition_positions();
+ },
+
+ set_expedition_position : function () {
+ var self = this;
+ $('[' + this.attr_name() + '=fixed]', self.scope).each(function (idx, el) {
+ var expedition = $(this),
+ settings = expedition.data('magellan-expedition-init'),
+ styles = expedition.attr('styles'), // save styles
+ top_offset, fixed_top;
+
+ expedition.attr('style', '');
+ top_offset = expedition.offset().top + settings.threshold;
+
+ //set fixed-top by attribute
+ fixed_top = parseInt(expedition.data('magellan-fixed-top'));
+ if (!isNaN(fixed_top)) {
+ self.settings.fixed_top = fixed_top;
+ }
+
+ expedition.data(self.data_attr('magellan-top-offset'), top_offset);
+ expedition.attr('style', styles);
+ });
+ },
+
+ update_expedition_positions : function () {
+ var self = this,
+ window_top_offset = $(window).scrollTop();
+
+ $('[' + this.attr_name() + '=fixed]', self.scope).each(function () {
+ var expedition = $(this),
+ settings = expedition.data('magellan-expedition-init'),
+ styles = expedition.attr('style'), // save styles
+ top_offset = expedition.data('magellan-top-offset');
+
+ //scroll to the top distance
+ if (window_top_offset + self.settings.fixed_top >= top_offset) {
+ // Placeholder allows height calculations to be consistent even when
+ // appearing to switch between fixed/non-fixed placement
+ var placeholder = expedition.prev('[' + self.add_namespace('data-magellan-expedition-clone') + ']');
+ if (placeholder.length === 0) {
+ placeholder = expedition.clone();
+ placeholder.removeAttr(self.attr_name());
+ placeholder.attr(self.add_namespace('data-magellan-expedition-clone'), '');
+ expedition.before(placeholder);
+ }
+ expedition.css({position :'fixed', top : settings.fixed_top}).addClass('fixed');
+ } else {
+ expedition.prev('[' + self.add_namespace('data-magellan-expedition-clone') + ']').remove();
+ expedition.attr('style', styles).css('position', '').css('top', '').removeClass('fixed');
+ }
+ });
+ },
+
+ update_arrivals : function () {
+ var self = this,
+ window_top_offset = $(window).scrollTop();
+
+ $('[' + this.attr_name() + ']', self.scope).each(function () {
+ var expedition = $(this),
+ settings = expedition.data(self.attr_name(true) + '-init'),
+ offsets = self.offsets(expedition, window_top_offset),
+ arrivals = expedition.find('[' + self.add_namespace('data-magellan-arrival') + ']'),
+ active_item = false;
+ offsets.each(function (idx, item) {
+ if (item.viewport_offset >= item.top_offset) {
+ var arrivals = expedition.find('[' + self.add_namespace('data-magellan-arrival') + ']');
+ arrivals.not(item.arrival).removeClass(settings.active_class);
+ item.arrival.addClass(settings.active_class);
+ active_item = true;
+ return true;
+ }
+ });
+
+ if (!active_item) {
+ arrivals.removeClass(settings.active_class);
+ }
+ });
+ },
+
+ offsets : function (expedition, window_offset) {
+ var self = this,
+ settings = expedition.data(self.attr_name(true) + '-init'),
+ viewport_offset = window_offset;
+
+ return expedition.find('[' + self.add_namespace('data-magellan-arrival') + ']').map(function (idx, el) {
+ var name = $(this).data(self.data_attr('magellan-arrival')),
+ dest = $('[' + self.add_namespace('data-magellan-destination') + '=' + name + ']');
+ if (dest.length > 0) {
+ var top_offset = dest.offset().top - settings.destination_threshold;
+ if (settings.offset_by_height) {
+ top_offset = top_offset - expedition.outerHeight();
+ }
+ top_offset = Math.floor(top_offset);
+ return {
+ destination : dest,
+ arrival : $(this),
+ top_offset : top_offset,
+ viewport_offset : viewport_offset
+ }
+ }
+ }).sort(function (a, b) {
+ if (a.top_offset < b.top_offset) {
+ return -1;
+ }
+ if (a.top_offset > b.top_offset) {
+ return 1;
+ }
+ return 0;
+ });
+ },
+
+ data_attr : function (str) {
+ if (this.namespace.length > 0) {
+ return this.namespace + '-' + str;
+ }
+
+ return str;
+ },
+
+ off : function () {
+ this.S(this.scope).off('.magellan');
+ this.S(window).off('.magellan');
+ },
+
+ filterPathname : function (pathname) {
+ pathname = pathname || '';
+ return pathname
+ .replace(/^\//,'')
+ .replace(/(?:index|default).[a-zA-Z]{3,4}$/,'')
+ .replace(/\/$/,'');
+ },
+
+ reflow : function () {
+ var self = this;
+ // remove placeholder expeditions used for height calculation purposes
+ $('[' + self.add_namespace('data-magellan-expedition-clone') + ']', self.scope).remove();
+ }
+ };
+}(jQuery, window, window.document));
--- /dev/null
+;(function ($, window, document, undefined) {
+ 'use strict';
+
+ Foundation.libs.offcanvas = {
+ name : 'offcanvas',
+
+ version : '5.5.3',
+
+ settings : {
+ open_method : 'move',
+ close_on_click : false
+ },
+
+ init : function (scope, method, options) {
+ this.bindings(method, options);
+ },
+
+ events : function () {
+ var self = this,
+ S = self.S,
+ move_class = '',
+ right_postfix = '',
+ left_postfix = '',
+ top_postfix = '',
+ bottom_postfix = '';
+
+ if (this.settings.open_method === 'move') {
+ move_class = 'move-';
+ right_postfix = 'right';
+ left_postfix = 'left';
+ top_postfix = 'top';
+ bottom_postfix = 'bottom';
+ } else if (this.settings.open_method === 'overlap_single') {
+ move_class = 'offcanvas-overlap-';
+ right_postfix = 'right';
+ left_postfix = 'left';
+ top_postfix = 'top';
+ bottom_postfix = 'bottom';
+ } else if (this.settings.open_method === 'overlap') {
+ move_class = 'offcanvas-overlap';
+ }
+
+ S(this.scope).off('.offcanvas')
+ .on('click.fndtn.offcanvas', '.left-off-canvas-toggle', function (e) {
+ self.click_toggle_class(e, move_class + right_postfix);
+ if (self.settings.open_method !== 'overlap') {
+ S('.left-submenu').removeClass(move_class + right_postfix);
+ }
+ $('.left-off-canvas-toggle').attr('aria-expanded', 'true');
+ })
+ .on('click.fndtn.offcanvas', '.left-off-canvas-menu a', function (e) {
+ var settings = self.get_settings(e);
+ var parent = S(this).parent();
+
+ if (settings.close_on_click && !parent.hasClass('has-submenu') && !parent.hasClass('back')) {
+ self.hide.call(self, move_class + right_postfix, self.get_wrapper(e));
+ parent.parent().removeClass(move_class + right_postfix);
+ } else if (S(this).parent().hasClass('has-submenu')) {
+ e.preventDefault();
+ S(this).siblings('.left-submenu').toggleClass(move_class + right_postfix);
+ } else if (parent.hasClass('back')) {
+ e.preventDefault();
+ parent.parent().removeClass(move_class + right_postfix);
+ }
+ $('.left-off-canvas-toggle').attr('aria-expanded', 'true');
+ })
+ //end of left canvas
+ .on('click.fndtn.offcanvas', '.right-off-canvas-toggle', function (e) {
+ self.click_toggle_class(e, move_class + left_postfix);
+ if (self.settings.open_method !== 'overlap') {
+ S('.right-submenu').removeClass(move_class + left_postfix);
+ }
+ $('.right-off-canvas-toggle').attr('aria-expanded', 'true');
+ })
+ .on('click.fndtn.offcanvas', '.right-off-canvas-menu a', function (e) {
+ var settings = self.get_settings(e);
+ var parent = S(this).parent();
+
+ if (settings.close_on_click && !parent.hasClass('has-submenu') && !parent.hasClass('back')) {
+ self.hide.call(self, move_class + left_postfix, self.get_wrapper(e));
+ parent.parent().removeClass(move_class + left_postfix);
+ } else if (S(this).parent().hasClass('has-submenu')) {
+ e.preventDefault();
+ S(this).siblings('.right-submenu').toggleClass(move_class + left_postfix);
+ } else if (parent.hasClass('back')) {
+ e.preventDefault();
+ parent.parent().removeClass(move_class + left_postfix);
+ }
+ $('.right-off-canvas-toggle').attr('aria-expanded', 'true');
+ })
+ //end of right canvas
+ .on('click.fndtn.offcanvas', '.top-off-canvas-toggle', function (e) {
+ self.click_toggle_class(e, move_class + bottom_postfix);
+ if (self.settings.open_method !== 'overlap') {
+ S('.top-submenu').removeClass(move_class + bottom_postfix);
+ }
+ $('.top-off-canvas-toggle').attr('aria-expanded', 'true');
+ })
+ .on('click.fndtn.offcanvas', '.top-off-canvas-menu a', function (e) {
+ var settings = self.get_settings(e);
+ var parent = S(this).parent();
+
+ if (settings.close_on_click && !parent.hasClass('has-submenu') && !parent.hasClass('back')) {
+ self.hide.call(self, move_class + bottom_postfix, self.get_wrapper(e));
+ parent.parent().removeClass(move_class + bottom_postfix);
+ } else if (S(this).parent().hasClass('has-submenu')) {
+ e.preventDefault();
+ S(this).siblings('.top-submenu').toggleClass(move_class + bottom_postfix);
+ } else if (parent.hasClass('back')) {
+ e.preventDefault();
+ parent.parent().removeClass(move_class + bottom_postfix);
+ }
+ $('.top-off-canvas-toggle').attr('aria-expanded', 'true');
+ })
+ //end of top canvas
+ .on('click.fndtn.offcanvas', '.bottom-off-canvas-toggle', function (e) {
+ self.click_toggle_class(e, move_class + top_postfix);
+ if (self.settings.open_method !== 'overlap') {
+ S('.bottom-submenu').removeClass(move_class + top_postfix);
+ }
+ $('.bottom-off-canvas-toggle').attr('aria-expanded', 'true');
+ })
+ .on('click.fndtn.offcanvas', '.bottom-off-canvas-menu a', function (e) {
+ var settings = self.get_settings(e);
+ var parent = S(this).parent();
+
+ if (settings.close_on_click && !parent.hasClass('has-submenu') && !parent.hasClass('back')) {
+ self.hide.call(self, move_class + top_postfix, self.get_wrapper(e));
+ parent.parent().removeClass(move_class + top_postfix);
+ } else if (S(this).parent().hasClass('has-submenu')) {
+ e.preventDefault();
+ S(this).siblings('.bottom-submenu').toggleClass(move_class + top_postfix);
+ } else if (parent.hasClass('back')) {
+ e.preventDefault();
+ parent.parent().removeClass(move_class + top_postfix);
+ }
+ $('.bottom-off-canvas-toggle').attr('aria-expanded', 'true');
+ })
+ //end of bottom
+ .on('click.fndtn.offcanvas', '.exit-off-canvas', function (e) {
+ self.click_remove_class(e, move_class + left_postfix);
+ S('.right-submenu').removeClass(move_class + left_postfix);
+ if (right_postfix) {
+ self.click_remove_class(e, move_class + right_postfix);
+ S('.left-submenu').removeClass(move_class + left_postfix);
+ }
+ $('.right-off-canvas-toggle').attr('aria-expanded', 'true');
+ })
+ .on('click.fndtn.offcanvas', '.exit-off-canvas', function (e) {
+ self.click_remove_class(e, move_class + left_postfix);
+ $('.left-off-canvas-toggle').attr('aria-expanded', 'false');
+ if (right_postfix) {
+ self.click_remove_class(e, move_class + right_postfix);
+ $('.right-off-canvas-toggle').attr('aria-expanded', 'false');
+ }
+ })
+ .on('click.fndtn.offcanvas', '.exit-off-canvas', function (e) {
+ self.click_remove_class(e, move_class + top_postfix);
+ S('.bottom-submenu').removeClass(move_class + top_postfix);
+ if (bottom_postfix) {
+ self.click_remove_class(e, move_class + bottom_postfix);
+ S('.top-submenu').removeClass(move_class + top_postfix);
+ }
+ $('.bottom-off-canvas-toggle').attr('aria-expanded', 'true');
+ })
+ .on('click.fndtn.offcanvas', '.exit-off-canvas', function (e) {
+ self.click_remove_class(e, move_class + top_postfix);
+ $('.top-off-canvas-toggle').attr('aria-expanded', 'false');
+ if (bottom_postfix) {
+ self.click_remove_class(e, move_class + bottom_postfix);
+ $('.bottom-off-canvas-toggle').attr('aria-expanded', 'false');
+ }
+ });
+ },
+
+ toggle : function (class_name, $off_canvas) {
+ $off_canvas = $off_canvas || this.get_wrapper();
+ if ($off_canvas.is('.' + class_name)) {
+ this.hide(class_name, $off_canvas);
+ } else {
+ this.show(class_name, $off_canvas);
+ }
+ },
+
+ show : function (class_name, $off_canvas) {
+ $off_canvas = $off_canvas || this.get_wrapper();
+ $off_canvas.trigger('open.fndtn.offcanvas');
+ $off_canvas.addClass(class_name);
+ },
+
+ hide : function (class_name, $off_canvas) {
+ $off_canvas = $off_canvas || this.get_wrapper();
+ $off_canvas.trigger('close.fndtn.offcanvas');
+ $off_canvas.removeClass(class_name);
+ },
+
+ click_toggle_class : function (e, class_name) {
+ e.preventDefault();
+ var $off_canvas = this.get_wrapper(e);
+ this.toggle(class_name, $off_canvas);
+ },
+
+ click_remove_class : function (e, class_name) {
+ e.preventDefault();
+ var $off_canvas = this.get_wrapper(e);
+ this.hide(class_name, $off_canvas);
+ },
+
+ get_settings : function (e) {
+ var offcanvas = this.S(e.target).closest('[' + this.attr_name() + ']');
+ return offcanvas.data(this.attr_name(true) + '-init') || this.settings;
+ },
+
+ get_wrapper : function (e) {
+ var $off_canvas = this.S(e ? e.target : this.scope).closest('.off-canvas-wrap');
+
+ if ($off_canvas.length === 0) {
+ $off_canvas = this.S('.off-canvas-wrap');
+ }
+ return $off_canvas;
+ },
+
+ reflow : function () {}
+ };
+}(jQuery, window, window.document));
--- /dev/null
+;(function ($, window, document, undefined) {
+ 'use strict';
+
+ var noop = function () {};
+
+ var Orbit = function (el, settings) {
+ // Don't reinitialize plugin
+ if (el.hasClass(settings.slides_container_class)) {
+ return this;
+ }
+
+ var self = this,
+ container,
+ slides_container = el,
+ number_container,
+ bullets_container,
+ timer_container,
+ idx = 0,
+ animate,
+ timer,
+ locked = false,
+ adjust_height_after = false;
+
+ self.slides = function () {
+ return slides_container.children(settings.slide_selector);
+ };
+
+ self.slides().first().addClass(settings.active_slide_class);
+
+ self.update_slide_number = function (index) {
+ if (settings.slide_number) {
+ number_container.find('span:first').text(parseInt(index) + 1);
+ number_container.find('span:last').text(self.slides().length);
+ }
+ if (settings.bullets) {
+ bullets_container.children().removeClass(settings.bullets_active_class);
+ $(bullets_container.children().get(index)).addClass(settings.bullets_active_class);
+ }
+ };
+
+ self.update_active_link = function (index) {
+ var link = $('[data-orbit-link="' + self.slides().eq(index).attr('data-orbit-slide') + '"]');
+ link.siblings().removeClass(settings.bullets_active_class);
+ link.addClass(settings.bullets_active_class);
+ };
+
+ self.build_markup = function () {
+ slides_container.wrap('<div class="' + settings.container_class + '"></div>');
+ container = slides_container.parent();
+ slides_container.addClass(settings.slides_container_class);
+
+ if (settings.stack_on_small) {
+ container.addClass(settings.stack_on_small_class);
+ }
+
+ if (settings.navigation_arrows) {
+ container.append($('<a href="#"><span></span></a>').addClass(settings.prev_class));
+ container.append($('<a href="#"><span></span></a>').addClass(settings.next_class));
+ }
+
+ if (settings.timer) {
+ timer_container = $('<div>').addClass(settings.timer_container_class);
+ timer_container.append('<span>');
+ timer_container.append($('<div>').addClass(settings.timer_progress_class));
+ timer_container.addClass(settings.timer_paused_class);
+ container.append(timer_container);
+ }
+
+ if (settings.slide_number) {
+ number_container = $('<div>').addClass(settings.slide_number_class);
+ number_container.append('<span></span> ' + settings.slide_number_text + ' <span></span>');
+ container.append(number_container);
+ }
+
+ if (settings.bullets) {
+ bullets_container = $('<ol>').addClass(settings.bullets_container_class);
+ container.append(bullets_container);
+ bullets_container.wrap('<div class="orbit-bullets-container"></div>');
+ self.slides().each(function (idx, el) {
+ var bullet = $('<li>').attr('data-orbit-slide', idx).on('click', self.link_bullet);;
+ bullets_container.append(bullet);
+ });
+ }
+
+ };
+
+ self._goto = function (next_idx, start_timer) {
+ // if (locked) {return false;}
+ if (next_idx === idx) {return false;}
+ if (typeof timer === 'object') {timer.restart();}
+ var slides = self.slides();
+
+ var dir = 'next';
+ locked = true;
+ if (next_idx < idx) {dir = 'prev';}
+ if (next_idx >= slides.length) {
+ if (!settings.circular) {
+ return false;
+ }
+ next_idx = 0;
+ } else if (next_idx < 0) {
+ if (!settings.circular) {
+ return false;
+ }
+ next_idx = slides.length - 1;
+ }
+
+ var current = $(slides.get(idx));
+ var next = $(slides.get(next_idx));
+
+ current.css('zIndex', 2);
+ current.removeClass(settings.active_slide_class);
+ next.css('zIndex', 4).addClass(settings.active_slide_class);
+
+ slides_container.trigger('before-slide-change.fndtn.orbit');
+ settings.before_slide_change();
+ self.update_active_link(next_idx);
+
+ var callback = function () {
+ var unlock = function () {
+ idx = next_idx;
+ locked = false;
+ if (start_timer === true) {timer = self.create_timer(); timer.start();}
+ self.update_slide_number(idx);
+ slides_container.trigger('after-slide-change.fndtn.orbit', [{slide_number : idx, total_slides : slides.length}]);
+ settings.after_slide_change(idx, slides.length);
+ };
+ if (slides_container.outerHeight() != next.outerHeight() && settings.variable_height) {
+ slides_container.animate({'height': next.outerHeight()}, 250, 'linear', unlock);
+ } else {
+ unlock();
+ }
+ };
+
+ if (slides.length === 1) {callback(); return false;}
+
+ var start_animation = function () {
+ if (dir === 'next') {animate.next(current, next, callback);}
+ if (dir === 'prev') {animate.prev(current, next, callback);}
+ };
+
+ if (next.outerHeight() > slides_container.outerHeight() && settings.variable_height) {
+ slides_container.animate({'height': next.outerHeight()}, 250, 'linear', start_animation);
+ } else {
+ start_animation();
+ }
+ };
+
+ self.next = function (e) {
+ e.stopImmediatePropagation();
+ e.preventDefault();
+ self._goto(idx + 1);
+ };
+
+ self.prev = function (e) {
+ e.stopImmediatePropagation();
+ e.preventDefault();
+ self._goto(idx - 1);
+ };
+
+ self.link_custom = function (e) {
+ e.preventDefault();
+ var link = $(this).attr('data-orbit-link');
+ if ((typeof link === 'string') && (link = $.trim(link)) != '') {
+ var slide = container.find('[data-orbit-slide=' + link + ']');
+ if (slide.index() != -1) {self._goto(slide.index());}
+ }
+ };
+
+ self.link_bullet = function (e) {
+ var index = $(this).attr('data-orbit-slide');
+ if ((typeof index === 'string') && (index = $.trim(index)) != '') {
+ if (isNaN(parseInt(index))) {
+ var slide = container.find('[data-orbit-slide=' + index + ']');
+ if (slide.index() != -1) {self._goto(slide.index() + 1);}
+ } else {
+ self._goto(parseInt(index));
+ }
+ }
+
+ }
+
+ self.timer_callback = function () {
+ self._goto(idx + 1, true);
+ }
+
+ self.compute_dimensions = function () {
+ var current = $(self.slides().get(idx));
+ var h = current.outerHeight();
+ if (!settings.variable_height) {
+ self.slides().each(function(){
+ if ($(this).outerHeight() > h) { h = $(this).outerHeight(); }
+ });
+ }
+ slides_container.height(h);
+ };
+
+ self.create_timer = function () {
+ var t = new Timer(
+ container.find('.' + settings.timer_container_class),
+ settings,
+ self.timer_callback
+ );
+ return t;
+ };
+
+ self.stop_timer = function () {
+ if (typeof timer === 'object') {
+ timer.stop();
+ }
+ };
+
+ self.toggle_timer = function () {
+ var t = container.find('.' + settings.timer_container_class);
+ if (t.hasClass(settings.timer_paused_class)) {
+ if (typeof timer === 'undefined') {timer = self.create_timer();}
+ timer.start();
+ } else {
+ if (typeof timer === 'object') {timer.stop();}
+ }
+ };
+
+ self.init = function () {
+ self.build_markup();
+ if (settings.timer) {
+ timer = self.create_timer();
+ Foundation.utils.image_loaded(this.slides().children('img'), timer.start);
+ }
+ animate = new FadeAnimation(settings, slides_container);
+ if (settings.animation === 'slide') {
+ animate = new SlideAnimation(settings, slides_container);
+ }
+
+ container.on('click', '.' + settings.next_class, self.next);
+ container.on('click', '.' + settings.prev_class, self.prev);
+
+ if (settings.next_on_click) {
+ container.on('click', '.' + settings.slides_container_class + ' [data-orbit-slide]', self.link_bullet);
+ }
+
+ container.on('click', self.toggle_timer);
+ if (settings.swipe) {
+ container.on('touchstart.fndtn.orbit', function (e) {
+ if (!e.touches) {e = e.originalEvent;}
+ var data = {
+ start_page_x : e.touches[0].pageX,
+ start_page_y : e.touches[0].pageY,
+ start_time : (new Date()).getTime(),
+ delta_x : 0,
+ is_scrolling : undefined
+ };
+ container.data('swipe-transition', data);
+ e.stopPropagation();
+ })
+ .on('touchmove.fndtn.orbit', function (e) {
+ if (!e.touches) {
+ e = e.originalEvent;
+ }
+ // Ignore pinch/zoom events
+ if (e.touches.length > 1 || e.scale && e.scale !== 1) {
+ return;
+ }
+
+ var data = container.data('swipe-transition');
+ if (typeof data === 'undefined') {data = {};}
+
+ data.delta_x = e.touches[0].pageX - data.start_page_x;
+
+ if ( typeof data.is_scrolling === 'undefined') {
+ data.is_scrolling = !!( data.is_scrolling || Math.abs(data.delta_x) < Math.abs(e.touches[0].pageY - data.start_page_y) );
+ }
+
+ if (!data.is_scrolling && !data.active) {
+ e.preventDefault();
+ var direction = (data.delta_x < 0) ? (idx + 1) : (idx - 1);
+ data.active = true;
+ self._goto(direction);
+ }
+ })
+ .on('touchend.fndtn.orbit', function (e) {
+ container.data('swipe-transition', {});
+ e.stopPropagation();
+ })
+ }
+ container.on('mouseenter.fndtn.orbit', function (e) {
+ if (settings.timer && settings.pause_on_hover) {
+ self.stop_timer();
+ }
+ })
+ .on('mouseleave.fndtn.orbit', function (e) {
+ if (settings.timer && settings.resume_on_mouseout) {
+ timer.start();
+ }
+ });
+
+ $(document).on('click', '[data-orbit-link]', self.link_custom);
+ $(window).on('load resize', self.compute_dimensions);
+ Foundation.utils.image_loaded(this.slides().children('img'), self.compute_dimensions);
+ Foundation.utils.image_loaded(this.slides().children('img'), function () {
+ container.prev('.' + settings.preloader_class).css('display', 'none');
+ self.update_slide_number(0);
+ self.update_active_link(0);
+ slides_container.trigger('ready.fndtn.orbit');
+ });
+ };
+
+ self.init();
+ };
+
+ var Timer = function (el, settings, callback) {
+ var self = this,
+ duration = settings.timer_speed,
+ progress = el.find('.' + settings.timer_progress_class),
+ start,
+ timeout,
+ left = -1;
+
+ this.update_progress = function (w) {
+ var new_progress = progress.clone();
+ new_progress.attr('style', '');
+ new_progress.css('width', w + '%');
+ progress.replaceWith(new_progress);
+ progress = new_progress;
+ };
+
+ this.restart = function () {
+ clearTimeout(timeout);
+ el.addClass(settings.timer_paused_class);
+ left = -1;
+ self.update_progress(0);
+ };
+
+ this.start = function () {
+ if (!el.hasClass(settings.timer_paused_class)) {return true;}
+ left = (left === -1) ? duration : left;
+ el.removeClass(settings.timer_paused_class);
+ start = new Date().getTime();
+ progress.animate({'width' : '100%'}, left, 'linear');
+ timeout = setTimeout(function () {
+ self.restart();
+ callback();
+ }, left);
+ el.trigger('timer-started.fndtn.orbit')
+ };
+
+ this.stop = function () {
+ if (el.hasClass(settings.timer_paused_class)) {return true;}
+ clearTimeout(timeout);
+ el.addClass(settings.timer_paused_class);
+ var end = new Date().getTime();
+ left = left - (end - start);
+ var w = 100 - ((left / duration) * 100);
+ self.update_progress(w);
+ el.trigger('timer-stopped.fndtn.orbit');
+ };
+ };
+
+ var SlideAnimation = function (settings, container) {
+ var duration = settings.animation_speed;
+ var is_rtl = ($('html[dir=rtl]').length === 1);
+ var margin = is_rtl ? 'marginRight' : 'marginLeft';
+ var animMargin = {};
+ animMargin[margin] = '0%';
+
+ this.next = function (current, next, callback) {
+ current.animate({marginLeft : '-100%'}, duration);
+ next.animate(animMargin, duration, function () {
+ current.css(margin, '100%');
+ callback();
+ });
+ };
+
+ this.prev = function (current, prev, callback) {
+ current.animate({marginLeft : '100%'}, duration);
+ prev.css(margin, '-100%');
+ prev.animate(animMargin, duration, function () {
+ current.css(margin, '100%');
+ callback();
+ });
+ };
+ };
+
+ var FadeAnimation = function (settings, container) {
+ var duration = settings.animation_speed;
+ var is_rtl = ($('html[dir=rtl]').length === 1);
+ var margin = is_rtl ? 'marginRight' : 'marginLeft';
+
+ this.next = function (current, next, callback) {
+ next.css({'margin' : '0%', 'opacity' : '0.01'});
+ next.animate({'opacity' :'1'}, duration, 'linear', function () {
+ current.css('margin', '100%');
+ callback();
+ });
+ };
+
+ this.prev = function (current, prev, callback) {
+ prev.css({'margin' : '0%', 'opacity' : '0.01'});
+ prev.animate({'opacity' : '1'}, duration, 'linear', function () {
+ current.css('margin', '100%');
+ callback();
+ });
+ };
+ };
+
+ Foundation.libs = Foundation.libs || {};
+
+ Foundation.libs.orbit = {
+ name : 'orbit',
+
+ version : '5.5.3',
+
+ settings : {
+ animation : 'slide',
+ timer_speed : 10000,
+ pause_on_hover : true,
+ resume_on_mouseout : false,
+ next_on_click : true,
+ animation_speed : 500,
+ stack_on_small : false,
+ navigation_arrows : true,
+ slide_number : true,
+ slide_number_text : 'of',
+ container_class : 'orbit-container',
+ stack_on_small_class : 'orbit-stack-on-small',
+ next_class : 'orbit-next',
+ prev_class : 'orbit-prev',
+ timer_container_class : 'orbit-timer',
+ timer_paused_class : 'paused',
+ timer_progress_class : 'orbit-progress',
+ slides_container_class : 'orbit-slides-container',
+ preloader_class : 'preloader',
+ slide_selector : '*',
+ bullets_container_class : 'orbit-bullets',
+ bullets_active_class : 'active',
+ slide_number_class : 'orbit-slide-number',
+ caption_class : 'orbit-caption',
+ active_slide_class : 'active',
+ orbit_transition_class : 'orbit-transitioning',
+ bullets : true,
+ circular : true,
+ timer : true,
+ variable_height : false,
+ swipe : true,
+ before_slide_change : noop,
+ after_slide_change : noop
+ },
+
+ init : function (scope, method, options) {
+ var self = this;
+ this.bindings(method, options);
+ },
+
+ events : function (instance) {
+ var orbit_instance = new Orbit(this.S(instance), this.S(instance).data('orbit-init'));
+ this.S(instance).data(this.name + '-instance', orbit_instance);
+ },
+
+ reflow : function () {
+ var self = this;
+
+ if (self.S(self.scope).is('[data-orbit]')) {
+ var $el = self.S(self.scope);
+ var instance = $el.data(self.name + '-instance');
+ instance.compute_dimensions();
+ } else {
+ self.S('[data-orbit]', self.scope).each(function (idx, el) {
+ var $el = self.S(el);
+ var opts = self.data_options($el);
+ var instance = $el.data(self.name + '-instance');
+ instance.compute_dimensions();
+ });
+ }
+ }
+ };
+
+}(jQuery, window, window.document));
--- /dev/null
+;(function ($, window, document, undefined) {
+ 'use strict';
+
+ var openModals = [];
+
+ Foundation.libs.reveal = {
+ name : 'reveal',
+
+ version : '5.5.3',
+
+ locked : false,
+
+ settings : {
+ animation : 'fadeAndPop',
+ animation_speed : 250,
+ close_on_background_click : true,
+ close_on_esc : true,
+ dismiss_modal_class : 'close-reveal-modal',
+ multiple_opened : false,
+ bg_class : 'reveal-modal-bg',
+ root_element : 'body',
+ open : function(){},
+ opened : function(){},
+ close : function(){},
+ closed : function(){},
+ on_ajax_error: $.noop,
+ bg : $('.reveal-modal-bg'),
+ css : {
+ open : {
+ 'opacity' : 0,
+ 'visibility' : 'visible',
+ 'display' : 'block'
+ },
+ close : {
+ 'opacity' : 1,
+ 'visibility' : 'hidden',
+ 'display' : 'none'
+ }
+ }
+ },
+
+ init : function (scope, method, options) {
+ $.extend(true, this.settings, method, options);
+ this.bindings(method, options);
+ },
+
+ events : function (scope) {
+ var self = this,
+ S = self.S;
+
+ S(this.scope)
+ .off('.reveal')
+ .on('click.fndtn.reveal', '[' + this.add_namespace('data-reveal-id') + ']:not([disabled])', function (e) {
+ e.preventDefault();
+
+ if (!self.locked) {
+ var element = S(this),
+ ajax = element.data(self.data_attr('reveal-ajax')),
+ replaceContentSel = element.data(self.data_attr('reveal-replace-content'));
+
+ self.locked = true;
+
+ if (typeof ajax === 'undefined') {
+ self.open.call(self, element);
+ } else {
+ var url = ajax === true ? element.attr('href') : ajax;
+ self.open.call(self, element, {url : url}, { replaceContentSel : replaceContentSel });
+ }
+ }
+ });
+
+ S(document)
+ .on('click.fndtn.reveal', this.close_targets(), function (e) {
+ e.preventDefault();
+ if (!self.locked) {
+ var settings = S('[' + self.attr_name() + '].open').data(self.attr_name(true) + '-init') || self.settings,
+ bg_clicked = S(e.target)[0] === S('.' + settings.bg_class)[0];
+
+ if (bg_clicked) {
+ if (settings.close_on_background_click) {
+ e.stopPropagation();
+ } else {
+ return;
+ }
+ }
+
+ self.locked = true;
+ self.close.call(self, bg_clicked ? S('[' + self.attr_name() + '].open:not(.toback)') : S(this).closest('[' + self.attr_name() + ']'));
+ }
+ });
+
+ if (S('[' + self.attr_name() + ']', this.scope).length > 0) {
+ S(this.scope)
+ // .off('.reveal')
+ .on('open.fndtn.reveal', this.settings.open)
+ .on('opened.fndtn.reveal', this.settings.opened)
+ .on('opened.fndtn.reveal', this.open_video)
+ .on('close.fndtn.reveal', this.settings.close)
+ .on('closed.fndtn.reveal', this.settings.closed)
+ .on('closed.fndtn.reveal', this.close_video);
+ } else {
+ S(this.scope)
+ // .off('.reveal')
+ .on('open.fndtn.reveal', '[' + self.attr_name() + ']', this.settings.open)
+ .on('opened.fndtn.reveal', '[' + self.attr_name() + ']', this.settings.opened)
+ .on('opened.fndtn.reveal', '[' + self.attr_name() + ']', this.open_video)
+ .on('close.fndtn.reveal', '[' + self.attr_name() + ']', this.settings.close)
+ .on('closed.fndtn.reveal', '[' + self.attr_name() + ']', this.settings.closed)
+ .on('closed.fndtn.reveal', '[' + self.attr_name() + ']', this.close_video);
+ }
+
+ return true;
+ },
+
+ // PATCH #3: turning on key up capture only when a reveal window is open
+ key_up_on : function (scope) {
+ var self = this;
+
+ // PATCH #1: fixing multiple keyup event trigger from single key press
+ self.S('body').off('keyup.fndtn.reveal').on('keyup.fndtn.reveal', function ( event ) {
+ var open_modal = self.S('[' + self.attr_name() + '].open'),
+ settings = open_modal.data(self.attr_name(true) + '-init') || self.settings ;
+ // PATCH #2: making sure that the close event can be called only while unlocked,
+ // so that multiple keyup.fndtn.reveal events don't prevent clean closing of the reveal window.
+ if ( settings && event.which === 27 && settings.close_on_esc && !self.locked) { // 27 is the keycode for the Escape key
+ self.close.call(self, open_modal);
+ }
+ });
+
+ return true;
+ },
+
+ // PATCH #3: turning on key up capture only when a reveal window is open
+ key_up_off : function (scope) {
+ this.S('body').off('keyup.fndtn.reveal');
+ return true;
+ },
+
+ open : function (target, ajax_settings) {
+ var self = this,
+ modal;
+
+ if (target) {
+ if (typeof target.selector !== 'undefined') {
+ // Find the named node; only use the first one found, since the rest of the code assumes there's only one node
+ modal = self.S('#' + target.data(self.data_attr('reveal-id'))).first();
+ } else {
+ modal = self.S(this.scope);
+
+ ajax_settings = target;
+ }
+ } else {
+ modal = self.S(this.scope);
+ }
+
+ var settings = modal.data(self.attr_name(true) + '-init');
+ settings = settings || this.settings;
+
+
+ if (modal.hasClass('open') && target !== undefined && target.attr('data-reveal-id') == modal.attr('id')) {
+ return self.close(modal);
+ }
+
+ if (!modal.hasClass('open')) {
+ var open_modal = self.S('[' + self.attr_name() + '].open');
+
+ if (typeof modal.data('css-top') === 'undefined') {
+ modal.data('css-top', parseInt(modal.css('top'), 10))
+ .data('offset', this.cache_offset(modal));
+ }
+
+ modal.attr('tabindex','0').attr('aria-hidden','false');
+
+ this.key_up_on(modal); // PATCH #3: turning on key up capture only when a reveal window is open
+
+ // Prevent namespace event from triggering twice
+ modal.on('open.fndtn.reveal', function(e) {
+ if (e.namespace !== 'fndtn.reveal') return;
+ });
+
+ modal.on('open.fndtn.reveal').trigger('open.fndtn.reveal');
+
+ if (open_modal.length < 1) {
+ this.toggle_bg(modal, true);
+ }
+
+ if (typeof ajax_settings === 'string') {
+ ajax_settings = {
+ url : ajax_settings
+ };
+ }
+
+ var openModal = function() {
+ if(open_modal.length > 0) {
+ if(settings.multiple_opened) {
+ self.to_back(open_modal);
+ } else {
+ self.hide(open_modal, settings.css.close);
+ }
+ }
+
+ // bl: add the open_modal that isn't already in the background to the openModals array
+ if(settings.multiple_opened) {
+ openModals.push(modal);
+ }
+
+ self.show(modal, settings.css.open);
+ };
+
+ if (typeof ajax_settings === 'undefined' || !ajax_settings.url) {
+ openModal();
+ } else {
+ var old_success = typeof ajax_settings.success !== 'undefined' ? ajax_settings.success : null;
+ $.extend(ajax_settings, {
+ success : function (data, textStatus, jqXHR) {
+ if ( $.isFunction(old_success) ) {
+ var result = old_success(data, textStatus, jqXHR);
+ if (typeof result == 'string') {
+ data = result;
+ }
+ }
+
+ if (typeof options !== 'undefined' && typeof options.replaceContentSel !== 'undefined') {
+ modal.find(options.replaceContentSel).html(data);
+ } else {
+ modal.html(data);
+ }
+
+ self.S(modal).foundation('section', 'reflow');
+ self.S(modal).children().foundation();
+
+ openModal();
+ }
+ });
+
+ // check for if user initalized with error callback
+ if (settings.on_ajax_error !== $.noop) {
+ $.extend(ajax_settings, {
+ error : settings.on_ajax_error
+ });
+ }
+
+ $.ajax(ajax_settings);
+ }
+ }
+ self.S(window).trigger('resize');
+ },
+
+ close : function (modal) {
+ var modal = modal && modal.length ? modal : this.S(this.scope),
+ open_modals = this.S('[' + this.attr_name() + '].open'),
+ settings = modal.data(this.attr_name(true) + '-init') || this.settings,
+ self = this;
+
+ if (open_modals.length > 0) {
+
+ modal.removeAttr('tabindex','0').attr('aria-hidden','true');
+
+ this.locked = true;
+ this.key_up_off(modal); // PATCH #3: turning on key up capture only when a reveal window is open
+
+ modal.trigger('close.fndtn.reveal');
+
+ if ((settings.multiple_opened && open_modals.length === 1) || !settings.multiple_opened || modal.length > 1) {
+ self.toggle_bg(modal, false);
+ self.to_front(modal);
+ }
+
+ if (settings.multiple_opened) {
+ var isCurrent = modal.is(':not(.toback)');
+ self.hide(modal, settings.css.close, settings);
+ if(isCurrent) {
+ // remove the last modal since it is now closed
+ openModals.pop();
+ } else {
+ // if this isn't the current modal, then find it in the array and remove it
+ openModals = $.grep(openModals, function(elt) {
+ var isThis = elt[0]===modal[0];
+ if(isThis) {
+ // since it's not currently in the front, put it in the front now that it is hidden
+ // so that if it's re-opened, it won't be .toback
+ self.to_front(modal);
+ }
+ return !isThis;
+ });
+ }
+ // finally, show the next modal in the stack, if there is one
+ if(openModals.length>0) {
+ self.to_front(openModals[openModals.length - 1]);
+ }
+ } else {
+ self.hide(open_modals, settings.css.close, settings);
+ }
+ }
+ },
+
+ close_targets : function () {
+ var base = '.' + this.settings.dismiss_modal_class;
+
+ if (this.settings.close_on_background_click) {
+ return base + ', .' + this.settings.bg_class;
+ }
+
+ return base;
+ },
+
+ toggle_bg : function (modal, state) {
+ if (this.S('.' + this.settings.bg_class).length === 0) {
+ this.settings.bg = $('<div />', {'class': this.settings.bg_class})
+ .appendTo('body').hide();
+ }
+
+ var visible = this.settings.bg.filter(':visible').length > 0;
+ if ( state != visible ) {
+ if ( state == undefined ? visible : !state ) {
+ this.hide(this.settings.bg);
+ } else {
+ this.show(this.settings.bg);
+ }
+ }
+ },
+
+ show : function (el, css) {
+ // is modal
+ if (css) {
+ var settings = el.data(this.attr_name(true) + '-init') || this.settings,
+ root_element = settings.root_element,
+ context = this;
+
+ if (el.parent(root_element).length === 0) {
+ var placeholder = el.wrap('<div style="display: none;" />').parent();
+
+ el.on('closed.fndtn.reveal.wrapped', function () {
+ el.detach().appendTo(placeholder);
+ el.unwrap().unbind('closed.fndtn.reveal.wrapped');
+ });
+
+ el.detach().appendTo(root_element);
+ }
+
+ var animData = getAnimationData(settings.animation);
+ if (!animData.animate) {
+ this.locked = false;
+ }
+ if (animData.pop) {
+ css.top = $(window).scrollTop() - el.data('offset') + 'px';
+ var end_css = {
+ top: $(window).scrollTop() + el.data('css-top') + 'px',
+ opacity: 1
+ };
+
+ return setTimeout(function () {
+ return el
+ .css(css)
+ .animate(end_css, settings.animation_speed, 'linear', function () {
+ context.locked = false;
+ el.trigger('opened.fndtn.reveal');
+ })
+ .addClass('open');
+ }, settings.animation_speed / 2);
+ }
+
+ css.top = $(window).scrollTop() + el.data('css-top') + 'px';
+
+ if (animData.fade) {
+ var end_css = {opacity: 1};
+
+ return setTimeout(function () {
+ return el
+ .css(css)
+ .animate(end_css, settings.animation_speed, 'linear', function () {
+ context.locked = false;
+ el.trigger('opened.fndtn.reveal');
+ })
+ .addClass('open');
+ }, settings.animation_speed / 2);
+ }
+
+ return el.css(css).show().css({opacity : 1}).addClass('open').trigger('opened.fndtn.reveal');
+ }
+
+ var settings = this.settings;
+
+ // should we animate the background?
+ if (getAnimationData(settings.animation).fade) {
+ return el.fadeIn(settings.animation_speed / 2);
+ }
+
+ this.locked = false;
+
+ return el.show();
+ },
+
+ to_back : function(el) {
+ el.addClass('toback');
+ },
+
+ to_front : function(el) {
+ el.removeClass('toback');
+ },
+
+ hide : function (el, css) {
+ // is modal
+ if (css) {
+ var settings = el.data(this.attr_name(true) + '-init'),
+ context = this;
+ settings = settings || this.settings;
+
+ var animData = getAnimationData(settings.animation);
+ if (!animData.animate) {
+ this.locked = false;
+ }
+ if (animData.pop) {
+ var end_css = {
+ top: - $(window).scrollTop() - el.data('offset') + 'px',
+ opacity: 0
+ };
+
+ return setTimeout(function () {
+ return el
+ .animate(end_css, settings.animation_speed, 'linear', function () {
+ context.locked = false;
+ el.css(css).trigger('closed.fndtn.reveal');
+ })
+ .removeClass('open');
+ }, settings.animation_speed / 2);
+ }
+
+ if (animData.fade) {
+ var end_css = {opacity : 0};
+
+ return setTimeout(function () {
+ return el
+ .animate(end_css, settings.animation_speed, 'linear', function () {
+ context.locked = false;
+ el.css(css).trigger('closed.fndtn.reveal');
+ })
+ .removeClass('open');
+ }, settings.animation_speed / 2);
+ }
+
+ return el.hide().css(css).removeClass('open').trigger('closed.fndtn.reveal');
+ }
+
+ var settings = this.settings;
+
+ // should we animate the background?
+ if (getAnimationData(settings.animation).fade) {
+ return el.fadeOut(settings.animation_speed / 2);
+ }
+
+ return el.hide();
+ },
+
+ close_video : function (e) {
+ var video = $('.flex-video', e.target),
+ iframe = $('iframe', video);
+
+ if (iframe.length > 0) {
+ iframe.attr('data-src', iframe[0].src);
+ iframe.attr('src', iframe.attr('src'));
+ video.hide();
+ }
+ },
+
+ open_video : function (e) {
+ var video = $('.flex-video', e.target),
+ iframe = video.find('iframe');
+
+ if (iframe.length > 0) {
+ var data_src = iframe.attr('data-src');
+ if (typeof data_src === 'string') {
+ iframe[0].src = iframe.attr('data-src');
+ } else {
+ var src = iframe[0].src;
+ iframe[0].src = undefined;
+ iframe[0].src = src;
+ }
+ video.show();
+ }
+ },
+
+ data_attr : function (str) {
+ if (this.namespace.length > 0) {
+ return this.namespace + '-' + str;
+ }
+
+ return str;
+ },
+
+ cache_offset : function (modal) {
+ var offset = modal.show().height() + parseInt(modal.css('top'), 10) + modal.scrollY;
+
+ modal.hide();
+
+ return offset;
+ },
+
+ off : function () {
+ $(this.scope).off('.fndtn.reveal');
+ },
+
+ reflow : function () {}
+ };
+
+ /*
+ * getAnimationData('popAndFade') // {animate: true, pop: true, fade: true}
+ * getAnimationData('fade') // {animate: true, pop: false, fade: true}
+ * getAnimationData('pop') // {animate: true, pop: true, fade: false}
+ * getAnimationData('foo') // {animate: false, pop: false, fade: false}
+ * getAnimationData(null) // {animate: false, pop: false, fade: false}
+ */
+ function getAnimationData(str) {
+ var fade = /fade/i.test(str);
+ var pop = /pop/i.test(str);
+ return {
+ animate : fade || pop,
+ pop : pop,
+ fade : fade
+ };
+ }
+}(jQuery, window, window.document));
--- /dev/null
+;(function ($, window, document, undefined) {
+ 'use strict';
+
+ Foundation.libs.slider = {
+ name : 'slider',
+
+ version : '5.5.3',
+
+ settings : {
+ start : 0,
+ end : 100,
+ step : 1,
+ precision : 2,
+ initial : null,
+ display_selector : '',
+ vertical : false,
+ trigger_input_change : false,
+ on_change : function () {}
+ },
+
+ cache : {},
+
+ init : function (scope, method, options) {
+ Foundation.inherit(this, 'throttle');
+ this.bindings(method, options);
+ this.reflow();
+ },
+
+ events : function () {
+ var self = this;
+ $(this.scope)
+ .off('.slider')
+ .on('mousedown.fndtn.slider touchstart.fndtn.slider pointerdown.fndtn.slider',
+ '[' + self.attr_name() + ']:not(.disabled, [disabled]) .range-slider-handle', function (e) {
+ if (!self.cache.active) {
+ e.preventDefault();
+ self.set_active_slider($(e.target));
+ }
+ })
+ .on('mousemove.fndtn.slider touchmove.fndtn.slider pointermove.fndtn.slider', function (e) {
+ if (!!self.cache.active) {
+ e.preventDefault();
+ if ($.data(self.cache.active[0], 'settings').vertical) {
+ var scroll_offset = 0;
+ if (!e.pageY) {
+ scroll_offset = window.scrollY;
+ }
+ self.calculate_position(self.cache.active, self.get_cursor_position(e, 'y') + scroll_offset);
+ } else {
+ self.calculate_position(self.cache.active, self.get_cursor_position(e, 'x'));
+ }
+ }
+ })
+ .on('mouseup.fndtn.slider touchend.fndtn.slider pointerup.fndtn.slider', function (e) {
+ if(!self.cache.active) {
+ // if the user has just clicked into the slider without starting to drag the handle
+ var slider = $(e.target).attr('role') === 'slider' ? $(e.target) : $(e.target).closest('.range-slider').find("[role='slider']");
+
+ if (slider.length && (!slider.parent().hasClass('disabled') && !slider.parent().attr('disabled'))) {
+ self.set_active_slider(slider);
+ if ($.data(self.cache.active[0], 'settings').vertical) {
+ var scroll_offset = 0;
+ if (!e.pageY) {
+ scroll_offset = window.scrollY;
+ }
+ self.calculate_position(self.cache.active, self.get_cursor_position(e, 'y') + scroll_offset);
+ } else {
+ self.calculate_position(self.cache.active, self.get_cursor_position(e, 'x'));
+ }
+ }
+ }
+ self.remove_active_slider();
+ })
+ .on('change.fndtn.slider', function (e) {
+ self.settings.on_change();
+ });
+
+ self.S(window)
+ .on('resize.fndtn.slider', self.throttle(function (e) {
+ self.reflow();
+ }, 300));
+
+ // update slider value as users change input value
+ this.S('[' + this.attr_name() + ']').each(function () {
+ var slider = $(this),
+ handle = slider.children('.range-slider-handle')[0],
+ settings = self.initialize_settings(handle);
+
+ if (settings.display_selector != '') {
+ $(settings.display_selector).each(function(){
+ if ($(this).attr('value')) {
+ $(this).off('change').on('change', function () {
+ slider.foundation("slider", "set_value", $(this).val());
+ });
+ }
+ });
+ }
+ });
+ },
+
+ get_cursor_position : function (e, xy) {
+ var pageXY = 'page' + xy.toUpperCase(),
+ clientXY = 'client' + xy.toUpperCase(),
+ position;
+
+ if (typeof e[pageXY] !== 'undefined') {
+ position = e[pageXY];
+ } else if (typeof e.originalEvent[clientXY] !== 'undefined') {
+ position = e.originalEvent[clientXY];
+ } else if (e.originalEvent.touches && e.originalEvent.touches[0] && typeof e.originalEvent.touches[0][clientXY] !== 'undefined') {
+ position = e.originalEvent.touches[0][clientXY];
+ } else if (e.currentPoint && typeof e.currentPoint[xy] !== 'undefined') {
+ position = e.currentPoint[xy];
+ }
+
+ return position;
+ },
+
+ set_active_slider : function ($handle) {
+ this.cache.active = $handle;
+ },
+
+ remove_active_slider : function () {
+ this.cache.active = null;
+ },
+
+ calculate_position : function ($handle, cursor_x) {
+ var self = this,
+ settings = $.data($handle[0], 'settings'),
+ handle_l = $.data($handle[0], 'handle_l'),
+ handle_o = $.data($handle[0], 'handle_o'),
+ bar_l = $.data($handle[0], 'bar_l'),
+ bar_o = $.data($handle[0], 'bar_o');
+
+ requestAnimationFrame(function () {
+ var pct;
+
+ if (Foundation.rtl && !settings.vertical) {
+ pct = self.limit_to(((bar_o + bar_l - cursor_x) / bar_l), 0, 1);
+ } else {
+ pct = self.limit_to(((cursor_x - bar_o) / bar_l), 0, 1);
+ }
+
+ pct = settings.vertical ? 1 - pct : pct;
+
+ var norm = self.normalized_value(pct, settings.start, settings.end, settings.step, settings.precision);
+
+ self.set_ui($handle, norm);
+ });
+ },
+
+ set_ui : function ($handle, value) {
+ var settings = $.data($handle[0], 'settings'),
+ handle_l = $.data($handle[0], 'handle_l'),
+ bar_l = $.data($handle[0], 'bar_l'),
+ norm_pct = this.normalized_percentage(value, settings.start, settings.end),
+ handle_offset = norm_pct * (bar_l - handle_l) - 1,
+ progress_bar_length = norm_pct * 100,
+ $handle_parent = $handle.parent(),
+ $hidden_inputs = $handle.parent().children('input[type=hidden]');
+
+ if (Foundation.rtl && !settings.vertical) {
+ handle_offset = -handle_offset;
+ }
+
+ handle_offset = settings.vertical ? -handle_offset + bar_l - handle_l + 1 : handle_offset;
+ this.set_translate($handle, handle_offset, settings.vertical);
+
+ if (settings.vertical) {
+ $handle.siblings('.range-slider-active-segment').css('height', progress_bar_length + '%');
+ } else {
+ $handle.siblings('.range-slider-active-segment').css('width', progress_bar_length + '%');
+ }
+
+ $handle_parent.attr(this.attr_name(), value).trigger('change.fndtn.slider');
+
+ $hidden_inputs.val(value);
+ if (settings.trigger_input_change) {
+ $hidden_inputs.trigger('change.fndtn.slider');
+ }
+
+ if (!$handle[0].hasAttribute('aria-valuemin')) {
+ $handle.attr({
+ 'aria-valuemin' : settings.start,
+ 'aria-valuemax' : settings.end
+ });
+ }
+ $handle.attr('aria-valuenow', value);
+
+ if (settings.display_selector != '') {
+ $(settings.display_selector).each(function () {
+ if (this.hasAttribute('value')) {
+ $(this).val(value);
+ } else {
+ $(this).text(value);
+ }
+ });
+ }
+
+ },
+
+ normalized_percentage : function (val, start, end) {
+ return Math.min(1, (val - start) / (end - start));
+ },
+
+ normalized_value : function (val, start, end, step, precision) {
+ var range = end - start,
+ point = val * range,
+ mod = (point - (point % step)) / step,
+ rem = point % step,
+ round = ( rem >= step * 0.5 ? step : 0);
+ return ((mod * step + round) + start).toFixed(precision);
+ },
+
+ set_translate : function (ele, offset, vertical) {
+ if (vertical) {
+ $(ele)
+ .css('-webkit-transform', 'translateY(' + offset + 'px)')
+ .css('-moz-transform', 'translateY(' + offset + 'px)')
+ .css('-ms-transform', 'translateY(' + offset + 'px)')
+ .css('-o-transform', 'translateY(' + offset + 'px)')
+ .css('transform', 'translateY(' + offset + 'px)');
+ } else {
+ $(ele)
+ .css('-webkit-transform', 'translateX(' + offset + 'px)')
+ .css('-moz-transform', 'translateX(' + offset + 'px)')
+ .css('-ms-transform', 'translateX(' + offset + 'px)')
+ .css('-o-transform', 'translateX(' + offset + 'px)')
+ .css('transform', 'translateX(' + offset + 'px)');
+ }
+ },
+
+ limit_to : function (val, min, max) {
+ return Math.min(Math.max(val, min), max);
+ },
+
+ initialize_settings : function (handle) {
+ var settings = $.extend({}, this.settings, this.data_options($(handle).parent())),
+ decimal_places_match_result;
+
+ if (settings.precision === null) {
+ decimal_places_match_result = ('' + settings.step).match(/\.([\d]*)/);
+ settings.precision = decimal_places_match_result && decimal_places_match_result[1] ? decimal_places_match_result[1].length : 0;
+ }
+
+ if (settings.vertical) {
+ $.data(handle, 'bar_o', $(handle).parent().offset().top);
+ $.data(handle, 'bar_l', $(handle).parent().outerHeight());
+ $.data(handle, 'handle_o', $(handle).offset().top);
+ $.data(handle, 'handle_l', $(handle).outerHeight());
+ } else {
+ $.data(handle, 'bar_o', $(handle).parent().offset().left);
+ $.data(handle, 'bar_l', $(handle).parent().outerWidth());
+ $.data(handle, 'handle_o', $(handle).offset().left);
+ $.data(handle, 'handle_l', $(handle).outerWidth());
+ }
+
+ $.data(handle, 'bar', $(handle).parent());
+ return $.data(handle, 'settings', settings);
+ },
+
+ set_initial_position : function ($ele) {
+ var settings = $.data($ele.children('.range-slider-handle')[0], 'settings'),
+ initial = ((typeof settings.initial == 'number' && !isNaN(settings.initial)) ? settings.initial : Math.floor((settings.end - settings.start) * 0.5 / settings.step) * settings.step + settings.start),
+ $handle = $ele.children('.range-slider-handle');
+ this.set_ui($handle, initial);
+ },
+
+ set_value : function (value) {
+ var self = this;
+ $('[' + self.attr_name() + ']', this.scope).each(function () {
+ $(this).attr(self.attr_name(), value);
+ });
+ if (!!$(this.scope).attr(self.attr_name())) {
+ $(this.scope).attr(self.attr_name(), value);
+ }
+ self.reflow();
+ },
+
+ reflow : function () {
+ var self = this;
+ self.S('[' + this.attr_name() + ']').each(function () {
+ var handle = $(this).children('.range-slider-handle')[0],
+ val = $(this).attr(self.attr_name());
+ self.initialize_settings(handle);
+
+ if (val) {
+ self.set_ui($(handle), parseFloat(val));
+ } else {
+ self.set_initial_position($(this));
+ }
+ });
+ }
+ };
+
+}(jQuery, window, window.document));
--- /dev/null
+;(function ($, window, document, undefined) {
+ 'use strict';
+
+ Foundation.libs.tab = {
+ name : 'tab',
+
+ version : '5.5.3',
+
+ settings : {
+ active_class : 'active',
+ callback : function () {},
+ deep_linking : false,
+ scroll_to_content : true,
+ is_hover : false
+ },
+
+ default_tab_hashes : [],
+
+ init : function (scope, method, options) {
+ var self = this,
+ S = this.S;
+
+ // Store the default active tabs which will be referenced when the
+ // location hash is absent, as in the case of navigating the tabs and
+ // returning to the first viewing via the browser Back button.
+ S('[' + this.attr_name() + '] > .active > a', this.scope).each(function () {
+ self.default_tab_hashes.push(this.hash);
+ });
+
+ this.bindings(method, options);
+ this.handle_location_hash_change();
+ },
+
+ events : function () {
+ var self = this,
+ S = this.S;
+
+ var usual_tab_behavior = function (e, target) {
+ var settings = S(target).closest('[' + self.attr_name() + ']').data(self.attr_name(true) + '-init');
+ if (!settings.is_hover || Modernizr.touch) {
+ // if user did not pressed tab key, prevent default action
+ var keyCode = e.keyCode || e.which;
+ if (keyCode !== 9) {
+ e.preventDefault();
+ e.stopPropagation();
+ }
+ self.toggle_active_tab(S(target).parent());
+
+ }
+ };
+
+ S(this.scope)
+ .off('.tab')
+ // Key event: focus/tab key
+ .on('keydown.fndtn.tab', '[' + this.attr_name() + '] > * > a', function(e) {
+ var keyCode = e.keyCode || e.which;
+ // if user pressed tab key
+ if (keyCode === 13 || keyCode === 32) { // enter or space
+ var el = this;
+ usual_tab_behavior(e, el);
+ }
+ })
+ // Click event: tab title
+ .on('click.fndtn.tab', '[' + this.attr_name() + '] > * > a', function(e) {
+ var el = this;
+ usual_tab_behavior(e, el);
+ })
+ // Hover event: tab title
+ .on('mouseenter.fndtn.tab', '[' + this.attr_name() + '] > * > a', function (e) {
+ var settings = S(this).closest('[' + self.attr_name() + ']').data(self.attr_name(true) + '-init');
+ if (settings.is_hover) {
+ self.toggle_active_tab(S(this).parent());
+ }
+ });
+
+ // Location hash change event
+ S(window).on('hashchange.fndtn.tab', function (e) {
+ e.preventDefault();
+ self.handle_location_hash_change();
+ });
+ },
+
+ handle_location_hash_change : function () {
+
+ var self = this,
+ S = this.S;
+
+ S('[' + this.attr_name() + ']', this.scope).each(function () {
+ var settings = S(this).data(self.attr_name(true) + '-init');
+ if (settings.deep_linking) {
+ // Match the location hash to a label
+ var hash;
+ if (settings.scroll_to_content) {
+ hash = self.scope.location.hash;
+ } else {
+ // prefix the hash to prevent anchor scrolling
+ hash = self.scope.location.hash.replace('fndtn-', '');
+ }
+ if (hash != '') {
+ // Check whether the location hash references a tab content div or
+ // another element on the page (inside or outside the tab content div)
+ var hash_element = S(hash);
+ if (hash_element.hasClass('content') && hash_element.parent().hasClass('tabs-content')) {
+ // Tab content div
+ self.toggle_active_tab($('[' + self.attr_name() + '] > * > a[href=' + hash + ']').parent());
+ } else {
+ // Not the tab content div. If inside the tab content, find the
+ // containing tab and toggle it as active.
+ var hash_tab_container_id = hash_element.closest('.content').attr('id');
+ if (hash_tab_container_id != undefined) {
+ self.toggle_active_tab($('[' + self.attr_name() + '] > * > a[href=#' + hash_tab_container_id + ']').parent(), hash);
+ }
+ }
+ } else {
+ // Reference the default tab hashes which were initialized in the init function
+ for (var ind = 0; ind < self.default_tab_hashes.length; ind++) {
+ self.toggle_active_tab($('[' + self.attr_name() + '] > * > a[href=' + self.default_tab_hashes[ind] + ']').parent());
+ }
+ }
+ }
+ });
+ },
+
+ toggle_active_tab : function (tab, location_hash) {
+ var self = this,
+ S = self.S,
+ tabs = tab.closest('[' + this.attr_name() + ']'),
+ tab_link = tab.find('a'),
+ anchor = tab.children('a').first(),
+ target_hash = '#' + anchor.attr('href').split('#')[1],
+ target = S(target_hash),
+ siblings = tab.siblings(),
+ settings = tabs.data(this.attr_name(true) + '-init'),
+ interpret_keyup_action = function (e) {
+ // Light modification of Heydon Pickering's Practical ARIA Examples: http://heydonworks.com/practical_aria_examples/js/a11y.js
+
+ // define current, previous and next (possible) tabs
+
+ var $original = $(this);
+ var $prev = $(this).parents('li').prev().children('[role="tab"]');
+ var $next = $(this).parents('li').next().children('[role="tab"]');
+ var $target;
+
+ // find the direction (prev or next)
+
+ switch (e.keyCode) {
+ case 37:
+ $target = $prev;
+ break;
+ case 39:
+ $target = $next;
+ break;
+ default:
+ $target = false
+ break;
+ }
+
+ if ($target.length) {
+ $original.attr({
+ 'tabindex' : '-1',
+ 'aria-selected' : null
+ });
+ $target.attr({
+ 'tabindex' : '0',
+ 'aria-selected' : true
+ }).focus();
+ }
+
+ // Hide panels
+
+ $('[role="tabpanel"]')
+ .attr('aria-hidden', 'true');
+
+ // Show panel which corresponds to target
+
+ $('#' + $(document.activeElement).attr('href').substring(1))
+ .attr('aria-hidden', null);
+
+ },
+ go_to_hash = function(hash) {
+ // This function allows correct behaviour of the browser's back button when deep linking is enabled. Without it
+ // the user would get continually redirected to the default hash.
+ var default_hash = settings.scroll_to_content ? self.default_tab_hashes[0] : 'fndtn-' + self.default_tab_hashes[0].replace('#', '');
+
+ if (hash !== default_hash || window.location.hash) {
+ window.location.hash = hash;
+ }
+ };
+
+ // allow usage of data-tab-content attribute instead of href
+ if (anchor.data('tab-content')) {
+ target_hash = '#' + anchor.data('tab-content').split('#')[1];
+ target = S(target_hash);
+ }
+
+ if (settings.deep_linking) {
+
+ if (settings.scroll_to_content) {
+
+ // retain current hash to scroll to content
+ go_to_hash(location_hash || target_hash);
+
+ if (location_hash == undefined || location_hash == target_hash) {
+ tab.parent()[0].scrollIntoView();
+ } else {
+ S(target_hash)[0].scrollIntoView();
+ }
+ } else {
+ // prefix the hashes so that the browser doesn't scroll down
+ if (location_hash != undefined) {
+ go_to_hash('fndtn-' + location_hash.replace('#', ''));
+ } else {
+ go_to_hash('fndtn-' + target_hash.replace('#', ''));
+ }
+ }
+ }
+
+ // WARNING: The activation and deactivation of the tab content must
+ // occur after the deep linking in order to properly refresh the browser
+ // window (notably in Chrome).
+ // Clean up multiple attr instances to done once
+ tab.addClass(settings.active_class).triggerHandler('opened');
+ tab_link.attr({'aria-selected' : 'true', tabindex : 0});
+ siblings.removeClass(settings.active_class)
+ siblings.find('a').attr({'aria-selected' : 'false'/*, tabindex : -1*/});
+ target.siblings().removeClass(settings.active_class).attr({'aria-hidden' : 'true'/*, tabindex : -1*/});
+ target.addClass(settings.active_class).attr('aria-hidden', 'false').removeAttr('tabindex');
+ settings.callback(tab);
+ target.triggerHandler('toggled', [target]);
+ tabs.triggerHandler('toggled', [tab]);
+
+ tab_link.off('keydown').on('keydown', interpret_keyup_action );
+ },
+
+ data_attr : function (str) {
+ if (this.namespace.length > 0) {
+ return this.namespace + '-' + str;
+ }
+
+ return str;
+ },
+
+ off : function () {},
+
+ reflow : function () {}
+ };
+}(jQuery, window, window.document));
--- /dev/null
+;(function ($, window, document, undefined) {
+ 'use strict';
+
+ Foundation.libs.tooltip = {
+ name : 'tooltip',
+
+ version : '5.5.3',
+
+ settings : {
+ additional_inheritable_classes : [],
+ tooltip_class : '.tooltip',
+ append_to : 'body',
+ touch_close_text : 'Tap To Close',
+ disable_for_touch : false,
+ hover_delay : 200,
+ fade_in_duration : 150,
+ fade_out_duration : 150,
+ show_on : 'all',
+ tip_template : function (selector, content) {
+ return '<span data-selector="' + selector + '" id="' + selector + '" class="'
+ + Foundation.libs.tooltip.settings.tooltip_class.substring(1)
+ + '" role="tooltip">' + content + '<span class="nub"></span></span>';
+ }
+ },
+
+ cache : {},
+
+ init : function (scope, method, options) {
+ Foundation.inherit(this, 'random_str');
+ this.bindings(method, options);
+ },
+
+ should_show : function (target, tip) {
+ var settings = $.extend({}, this.settings, this.data_options(target));
+
+ if (settings.show_on === 'all') {
+ return true;
+ } else if (this.small() && settings.show_on === 'small') {
+ return true;
+ } else if (this.medium() && settings.show_on === 'medium') {
+ return true;
+ } else if (this.large() && settings.show_on === 'large') {
+ return true;
+ }
+ return false;
+ },
+
+ medium : function () {
+ return matchMedia(Foundation.media_queries['medium']).matches;
+ },
+
+ large : function () {
+ return matchMedia(Foundation.media_queries['large']).matches;
+ },
+
+ events : function (instance) {
+ var self = this,
+ S = self.S;
+
+ self.create(this.S(instance));
+
+ function _startShow(elt, $this, immediate) {
+ if (elt.timer) {
+ return;
+ }
+
+ if (immediate) {
+ elt.timer = null;
+ self.showTip($this);
+ } else {
+ elt.timer = setTimeout(function () {
+ elt.timer = null;
+ self.showTip($this);
+ }.bind(elt), self.settings.hover_delay);
+ }
+ }
+
+ function _startHide(elt, $this) {
+ if (elt.timer) {
+ clearTimeout(elt.timer);
+ elt.timer = null;
+ }
+
+ self.hide($this);
+ }
+
+ $(this.scope)
+ .off('.tooltip')
+ .on('mouseenter.fndtn.tooltip mouseleave.fndtn.tooltip touchstart.fndtn.tooltip MSPointerDown.fndtn.tooltip',
+ '[' + this.attr_name() + ']', function (e) {
+ var $this = S(this),
+ settings = $.extend({}, self.settings, self.data_options($this)),
+ is_touch = false;
+
+ if (Modernizr.touch && /touchstart|MSPointerDown/i.test(e.type) && S(e.target).is('a')) {
+ return false;
+ }
+
+ if (/mouse/i.test(e.type) && self.ie_touch(e)) {
+ return false;
+ }
+
+ if ($this.hasClass('open')) {
+ if (Modernizr.touch && /touchstart|MSPointerDown/i.test(e.type)) {
+ e.preventDefault();
+ }
+ self.hide($this);
+ } else {
+ if (settings.disable_for_touch && Modernizr.touch && /touchstart|MSPointerDown/i.test(e.type)) {
+ return;
+ } else if (!settings.disable_for_touch && Modernizr.touch && /touchstart|MSPointerDown/i.test(e.type)) {
+ e.preventDefault();
+ S(settings.tooltip_class + '.open').hide();
+ is_touch = true;
+ // close other open tooltips on touch
+ if ($('.open[' + self.attr_name() + ']').length > 0) {
+ var prevOpen = S($('.open[' + self.attr_name() + ']')[0]);
+ self.hide(prevOpen);
+ }
+ }
+
+ if (/enter|over/i.test(e.type)) {
+ _startShow(this, $this);
+
+ } else if (e.type === 'mouseout' || e.type === 'mouseleave') {
+ _startHide(this, $this);
+ } else {
+ _startShow(this, $this, true);
+ }
+ }
+ })
+ .on('mouseleave.fndtn.tooltip touchstart.fndtn.tooltip MSPointerDown.fndtn.tooltip', '[' + this.attr_name() + '].open', function (e) {
+ if (/mouse/i.test(e.type) && self.ie_touch(e)) {
+ return false;
+ }
+
+ if ($(this).data('tooltip-open-event-type') == 'touch' && e.type == 'mouseleave') {
+ return;
+ } else if ($(this).data('tooltip-open-event-type') == 'mouse' && /MSPointerDown|touchstart/i.test(e.type)) {
+ self.convert_to_touch($(this));
+ } else {
+ _startHide(this, $(this));
+ }
+ })
+ .on('DOMNodeRemoved DOMAttrModified', '[' + this.attr_name() + ']:not(a)', function (e) {
+ _startHide(this, S(this));
+ });
+ },
+
+ ie_touch : function (e) {
+ // How do I distinguish between IE11 and Windows Phone 8?????
+ return false;
+ },
+
+ showTip : function ($target) {
+ var $tip = this.getTip($target);
+ if (this.should_show($target, $tip)) {
+ return this.show($target);
+ }
+ return;
+ },
+
+ getTip : function ($target) {
+ var selector = this.selector($target),
+ settings = $.extend({}, this.settings, this.data_options($target)),
+ tip = null;
+
+ if (selector) {
+ tip = this.S('span[data-selector="' + selector + '"]' + settings.tooltip_class);
+ }
+
+ return (typeof tip === 'object') ? tip : false;
+ },
+
+ selector : function ($target) {
+ var dataSelector = $target.attr(this.attr_name()) || $target.attr('data-selector');
+
+ if (typeof dataSelector != 'string') {
+ dataSelector = this.random_str(6);
+ $target
+ .attr('data-selector', dataSelector)
+ .attr('aria-describedby', dataSelector);
+ }
+
+ return dataSelector;
+ },
+
+ create : function ($target) {
+ var self = this,
+ settings = $.extend({}, this.settings, this.data_options($target)),
+ tip_template = this.settings.tip_template;
+
+ if (typeof settings.tip_template === 'string' && window.hasOwnProperty(settings.tip_template)) {
+ tip_template = window[settings.tip_template];
+ }
+
+ var $tip = $(tip_template(this.selector($target), $('<div></div>').html($target.attr('title')).html())),
+ classes = this.inheritable_classes($target);
+
+ $tip.addClass(classes).appendTo(settings.append_to);
+
+ if (Modernizr.touch) {
+ $tip.append('<span class="tap-to-close">' + settings.touch_close_text + '</span>');
+ $tip.on('touchstart.fndtn.tooltip MSPointerDown.fndtn.tooltip', function (e) {
+ self.hide($target);
+ });
+ }
+
+ $target.removeAttr('title').attr('title', '');
+ },
+
+ reposition : function (target, tip, classes) {
+ var width, nub, nubHeight, nubWidth, objPos;
+
+ tip.css('visibility', 'hidden').show();
+
+ width = target.data('width');
+ nub = tip.children('.nub');
+ nubHeight = nub.outerHeight();
+ nubWidth = nub.outerWidth();
+
+ if (this.small()) {
+ tip.css({'width' : '100%'});
+ } else {
+ tip.css({'width' : (width) ? width : 'auto'});
+ }
+
+ objPos = function (obj, top, right, bottom, left, width) {
+ return obj.css({
+ 'top' : (top) ? top : 'auto',
+ 'bottom' : (bottom) ? bottom : 'auto',
+ 'left' : (left) ? left : 'auto',
+ 'right' : (right) ? right : 'auto'
+ }).end();
+ };
+
+ var o_top = target.offset().top;
+ var o_left = target.offset().left;
+ var outerHeight = target.outerHeight();
+
+ objPos(tip, (o_top + outerHeight + 10), 'auto', 'auto', o_left);
+
+ if (this.small()) {
+ objPos(tip, (o_top + outerHeight + 10), 'auto', 'auto', 12.5, $(this.scope).width());
+ tip.addClass('tip-override');
+ objPos(nub, -nubHeight, 'auto', 'auto', o_left);
+ } else {
+
+ if (Foundation.rtl) {
+ nub.addClass('rtl');
+ o_left = o_left + target.outerWidth() - tip.outerWidth();
+ }
+
+ objPos(tip, (o_top + outerHeight + 10), 'auto', 'auto', o_left);
+ // reset nub from small styles, if they've been applied
+ if (nub.attr('style')) {
+ nub.removeAttr('style');
+ }
+
+ tip.removeClass('tip-override');
+
+ var tip_outerHeight = tip.outerHeight();
+
+ if (classes && classes.indexOf('tip-top') > -1) {
+ if (Foundation.rtl) {
+ nub.addClass('rtl');
+ }
+ objPos(tip, (o_top - tip_outerHeight), 'auto', 'auto', o_left)
+ .removeClass('tip-override');
+ } else if (classes && classes.indexOf('tip-left') > -1) {
+ objPos(tip, (o_top + (outerHeight / 2) - (tip_outerHeight / 2)), 'auto', 'auto', (o_left - tip.outerWidth() - nubHeight))
+ .removeClass('tip-override');
+ nub.removeClass('rtl');
+ } else if (classes && classes.indexOf('tip-right') > -1) {
+ objPos(tip, (o_top + (outerHeight / 2) - (tip_outerHeight / 2)), 'auto', 'auto', (o_left + target.outerWidth() + nubHeight))
+ .removeClass('tip-override');
+ nub.removeClass('rtl');
+ }
+ }
+
+ tip.css('visibility', 'visible').hide();
+ },
+
+ small : function () {
+ return matchMedia(Foundation.media_queries.small).matches &&
+ !matchMedia(Foundation.media_queries.medium).matches;
+ },
+
+ inheritable_classes : function ($target) {
+ var settings = $.extend({}, this.settings, this.data_options($target)),
+ inheritables = ['tip-top', 'tip-left', 'tip-bottom', 'tip-right', 'radius', 'round'].concat(settings.additional_inheritable_classes),
+ classes = $target.attr('class'),
+ filtered = classes ? $.map(classes.split(' '), function (el, i) {
+ if ($.inArray(el, inheritables) !== -1) {
+ return el;
+ }
+ }).join(' ') : '';
+
+ return $.trim(filtered);
+ },
+
+ convert_to_touch : function ($target) {
+ var self = this,
+ $tip = self.getTip($target),
+ settings = $.extend({}, self.settings, self.data_options($target));
+
+ if ($tip.find('.tap-to-close').length === 0) {
+ $tip.append('<span class="tap-to-close">' + settings.touch_close_text + '</span>');
+ $tip.on('click.fndtn.tooltip.tapclose touchstart.fndtn.tooltip.tapclose MSPointerDown.fndtn.tooltip.tapclose', function (e) {
+ self.hide($target);
+ });
+ }
+
+ $target.data('tooltip-open-event-type', 'touch');
+ },
+
+ show : function ($target) {
+ var $tip = this.getTip($target);
+ if ($target.data('tooltip-open-event-type') == 'touch') {
+ this.convert_to_touch($target);
+ }
+
+ this.reposition($target, $tip, $target.attr('class'));
+ $target.addClass('open');
+ $tip.fadeIn(this.settings.fade_in_duration);
+ },
+
+ hide : function ($target) {
+ var $tip = this.getTip($target);
+
+ $tip.fadeOut(this.settings.fade_out_duration, function () {
+ $tip.find('.tap-to-close').remove();
+ $tip.off('click.fndtn.tooltip.tapclose MSPointerDown.fndtn.tapclose');
+ $target.removeClass('open');
+ });
+ },
+
+ off : function () {
+ var self = this;
+ this.S(this.scope).off('.fndtn.tooltip');
+ this.S(this.settings.tooltip_class).each(function (i) {
+ $('[' + self.attr_name() + ']').eq(i).attr('title', $(this).text());
+ }).remove();
+ },
+
+ reflow : function () {}
+ };
+}(jQuery, window, window.document));
--- /dev/null
+;(function ($, window, document, undefined) {
+ 'use strict';
+
+ Foundation.libs.topbar = {
+ name : 'topbar',
+
+ version : '5.5.3',
+
+ settings : {
+ index : 0,
+ start_offset : 0,
+ sticky_class : 'sticky',
+ custom_back_text : true,
+ back_text : 'Back',
+ mobile_show_parent_link : true,
+ is_hover : true,
+ scrolltop : true, // jump to top when sticky nav menu toggle is clicked
+ sticky_on : 'all',
+ dropdown_autoclose: true
+ },
+
+ init : function (section, method, options) {
+ Foundation.inherit(this, 'add_custom_rule register_media throttle');
+ var self = this;
+
+ self.register_media('topbar', 'foundation-mq-topbar');
+
+ this.bindings(method, options);
+
+ self.S('[' + this.attr_name() + ']', this.scope).each(function () {
+ var topbar = $(this),
+ settings = topbar.data(self.attr_name(true) + '-init'),
+ section = self.S('section, .top-bar-section', this);
+ topbar.data('index', 0);
+ var topbarContainer = topbar.parent();
+ if (topbarContainer.hasClass('fixed') || self.is_sticky(topbar, topbarContainer, settings) ) {
+ self.settings.sticky_class = settings.sticky_class;
+ self.settings.sticky_topbar = topbar;
+ topbar.data('height', topbarContainer.outerHeight());
+ topbar.data('stickyoffset', topbarContainer.offset().top);
+ } else {
+ topbar.data('height', topbar.outerHeight());
+ }
+
+ if (!settings.assembled) {
+ self.assemble(topbar);
+ }
+
+ if (settings.is_hover) {
+ self.S('.has-dropdown', topbar).addClass('not-click');
+ } else {
+ self.S('.has-dropdown', topbar).removeClass('not-click');
+ }
+
+ // Pad body when sticky (scrolled) or fixed.
+ self.add_custom_rule('.f-topbar-fixed { padding-top: ' + topbar.data('height') + 'px }');
+
+ if (topbarContainer.hasClass('fixed')) {
+ self.S('body').addClass('f-topbar-fixed');
+ }
+ });
+
+ },
+
+ is_sticky : function (topbar, topbarContainer, settings) {
+ var sticky = topbarContainer.hasClass(settings.sticky_class);
+ var smallMatch = matchMedia(Foundation.media_queries.small).matches;
+ var medMatch = matchMedia(Foundation.media_queries.medium).matches;
+ var lrgMatch = matchMedia(Foundation.media_queries.large).matches;
+
+ if (sticky && settings.sticky_on === 'all') {
+ return true;
+ }
+ if (sticky && this.small() && settings.sticky_on.indexOf('small') !== -1) {
+ if (smallMatch && !medMatch && !lrgMatch) { return true; }
+ }
+ if (sticky && this.medium() && settings.sticky_on.indexOf('medium') !== -1) {
+ if (smallMatch && medMatch && !lrgMatch) { return true; }
+ }
+ if (sticky && this.large() && settings.sticky_on.indexOf('large') !== -1) {
+ if (smallMatch && medMatch && lrgMatch) { return true; }
+ }
+
+ return false;
+ },
+
+ toggle : function (toggleEl) {
+ var self = this,
+ topbar;
+
+ if (toggleEl) {
+ topbar = self.S(toggleEl).closest('[' + this.attr_name() + ']');
+ } else {
+ topbar = self.S('[' + this.attr_name() + ']');
+ }
+
+ var settings = topbar.data(this.attr_name(true) + '-init');
+
+ var section = self.S('section, .top-bar-section', topbar);
+
+ if (self.breakpoint()) {
+ if (!self.rtl) {
+ section.css({left : '0%'});
+ $('>.name', section).css({left : '100%'});
+ } else {
+ section.css({right : '0%'});
+ $('>.name', section).css({right : '100%'});
+ }
+
+ self.S('li.moved', section).removeClass('moved');
+ topbar.data('index', 0);
+
+ topbar
+ .toggleClass('expanded')
+ .css('height', '');
+ }
+
+ if (settings.scrolltop) {
+ if (!topbar.hasClass('expanded')) {
+ if (topbar.hasClass('fixed')) {
+ topbar.parent().addClass('fixed');
+ topbar.removeClass('fixed');
+ self.S('body').addClass('f-topbar-fixed');
+ }
+ } else if (topbar.parent().hasClass('fixed')) {
+ if (settings.scrolltop) {
+ topbar.parent().removeClass('fixed');
+ topbar.addClass('fixed');
+ self.S('body').removeClass('f-topbar-fixed');
+
+ window.scrollTo(0, 0);
+ } else {
+ topbar.parent().removeClass('expanded');
+ }
+ }
+ } else {
+ if (self.is_sticky(topbar, topbar.parent(), settings)) {
+ topbar.parent().addClass('fixed');
+ }
+
+ if (topbar.parent().hasClass('fixed')) {
+ if (!topbar.hasClass('expanded')) {
+ topbar.removeClass('fixed');
+ topbar.parent().removeClass('expanded');
+ self.update_sticky_positioning();
+ } else {
+ topbar.addClass('fixed');
+ topbar.parent().addClass('expanded');
+ self.S('body').addClass('f-topbar-fixed');
+ }
+ }
+ }
+ },
+
+ timer : null,
+
+ events : function (bar) {
+ var self = this,
+ S = this.S;
+
+ S(this.scope)
+ .off('.topbar')
+ .on('click.fndtn.topbar', '[' + this.attr_name() + '] .toggle-topbar', function (e) {
+ e.preventDefault();
+ self.toggle(this);
+ })
+ .on('click.fndtn.topbar contextmenu.fndtn.topbar', '.top-bar .top-bar-section li a[href^="#"],[' + this.attr_name() + '] .top-bar-section li a[href^="#"]', function (e) {
+ var li = $(this).closest('li'),
+ topbar = li.closest('[' + self.attr_name() + ']'),
+ settings = topbar.data(self.attr_name(true) + '-init');
+
+ if (settings.dropdown_autoclose && settings.is_hover) {
+ var hoverLi = $(this).closest('.hover');
+ hoverLi.removeClass('hover');
+ }
+ if (self.breakpoint() && !li.hasClass('back') && !li.hasClass('has-dropdown')) {
+ self.toggle();
+ }
+
+ })
+ .on('click.fndtn.topbar', '[' + this.attr_name() + '] li.has-dropdown', function (e) {
+ var li = S(this),
+ target = S(e.target),
+ topbar = li.closest('[' + self.attr_name() + ']'),
+ settings = topbar.data(self.attr_name(true) + '-init');
+
+ if (target.data('revealId')) {
+ self.toggle();
+ return;
+ }
+
+ if (self.breakpoint()) {
+ return;
+ }
+
+ if (settings.is_hover && !Modernizr.touch) {
+ return;
+ }
+
+ e.stopImmediatePropagation();
+
+ if (li.hasClass('hover')) {
+ li
+ .removeClass('hover')
+ .find('li')
+ .removeClass('hover');
+
+ li.parents('li.hover')
+ .removeClass('hover');
+ } else {
+ li.addClass('hover');
+
+ $(li).siblings().removeClass('hover');
+
+ if (target[0].nodeName === 'A' && target.parent().hasClass('has-dropdown')) {
+ e.preventDefault();
+ }
+ }
+ })
+ .on('click.fndtn.topbar', '[' + this.attr_name() + '] .has-dropdown>a', function (e) {
+ if (self.breakpoint()) {
+
+ e.preventDefault();
+
+ var $this = S(this),
+ topbar = $this.closest('[' + self.attr_name() + ']'),
+ section = topbar.find('section, .top-bar-section'),
+ dropdownHeight = $this.next('.dropdown').outerHeight(),
+ $selectedLi = $this.closest('li');
+
+ topbar.data('index', topbar.data('index') + 1);
+ $selectedLi.addClass('moved');
+
+ if (!self.rtl) {
+ section.css({left : -(100 * topbar.data('index')) + '%'});
+ section.find('>.name').css({left : 100 * topbar.data('index') + '%'});
+ } else {
+ section.css({right : -(100 * topbar.data('index')) + '%'});
+ section.find('>.name').css({right : 100 * topbar.data('index') + '%'});
+ }
+
+ topbar.css('height', $this.siblings('ul').outerHeight(true) + topbar.data('height'));
+ }
+ });
+
+ S(window).off('.topbar').on('resize.fndtn.topbar', self.throttle(function () {
+ self.resize.call(self);
+ }, 50)).trigger('resize.fndtn.topbar').load(function () {
+ // Ensure that the offset is calculated after all of the pages resources have loaded
+ S(this).trigger('resize.fndtn.topbar');
+ });
+
+ S('body').off('.topbar').on('click.fndtn.topbar', function (e) {
+ var parent = S(e.target).closest('li').closest('li.hover');
+
+ if (parent.length > 0) {
+ return;
+ }
+
+ S('[' + self.attr_name() + '] li.hover').removeClass('hover');
+ });
+
+ // Go up a level on Click
+ S(this.scope).on('click.fndtn.topbar', '[' + this.attr_name() + '] .has-dropdown .back', function (e) {
+ e.preventDefault();
+
+ var $this = S(this),
+ topbar = $this.closest('[' + self.attr_name() + ']'),
+ section = topbar.find('section, .top-bar-section'),
+ settings = topbar.data(self.attr_name(true) + '-init'),
+ $movedLi = $this.closest('li.moved'),
+ $previousLevelUl = $movedLi.parent();
+
+ topbar.data('index', topbar.data('index') - 1);
+
+ if (!self.rtl) {
+ section.css({left : -(100 * topbar.data('index')) + '%'});
+ section.find('>.name').css({left : 100 * topbar.data('index') + '%'});
+ } else {
+ section.css({right : -(100 * topbar.data('index')) + '%'});
+ section.find('>.name').css({right : 100 * topbar.data('index') + '%'});
+ }
+
+ if (topbar.data('index') === 0) {
+ topbar.css('height', '');
+ } else {
+ topbar.css('height', $previousLevelUl.outerHeight(true) + topbar.data('height'));
+ }
+
+ setTimeout(function () {
+ $movedLi.removeClass('moved');
+ }, 300);
+ });
+
+ // Show dropdown menus when their items are focused
+ S(this.scope).find('.dropdown a')
+ .focus(function () {
+ $(this).parents('.has-dropdown').addClass('hover');
+ })
+ .blur(function () {
+ $(this).parents('.has-dropdown').removeClass('hover');
+ });
+ },
+
+ resize : function () {
+ var self = this;
+ self.S('[' + this.attr_name() + ']').each(function () {
+ var topbar = self.S(this),
+ settings = topbar.data(self.attr_name(true) + '-init');
+
+ var stickyContainer = topbar.parent('.' + self.settings.sticky_class);
+ var stickyOffset;
+
+ if (!self.breakpoint()) {
+ var doToggle = topbar.hasClass('expanded');
+ topbar
+ .css('height', '')
+ .removeClass('expanded')
+ .find('li')
+ .removeClass('hover');
+
+ if (doToggle) {
+ self.toggle(topbar);
+ }
+ }
+
+ if (self.is_sticky(topbar, stickyContainer, settings)) {
+ if (stickyContainer.hasClass('fixed')) {
+ // Remove the fixed to allow for correct calculation of the offset.
+ stickyContainer.removeClass('fixed');
+
+ stickyOffset = stickyContainer.offset().top;
+ if (self.S(document.body).hasClass('f-topbar-fixed')) {
+ stickyOffset -= topbar.data('height');
+ }
+
+ topbar.data('stickyoffset', stickyOffset);
+ stickyContainer.addClass('fixed');
+ } else {
+ stickyOffset = stickyContainer.offset().top;
+ topbar.data('stickyoffset', stickyOffset);
+ }
+ }
+
+ });
+ },
+
+ breakpoint : function () {
+ return !matchMedia(Foundation.media_queries['topbar']).matches;
+ },
+
+ small : function () {
+ return matchMedia(Foundation.media_queries['small']).matches;
+ },
+
+ medium : function () {
+ return matchMedia(Foundation.media_queries['medium']).matches;
+ },
+
+ large : function () {
+ return matchMedia(Foundation.media_queries['large']).matches;
+ },
+
+ assemble : function (topbar) {
+ var self = this,
+ settings = topbar.data(this.attr_name(true) + '-init'),
+ section = self.S('section, .top-bar-section', topbar);
+
+ // Pull element out of the DOM for manipulation
+ section.detach();
+
+ self.S('.has-dropdown>a', section).each(function () {
+ var $link = self.S(this),
+ $dropdown = $link.siblings('.dropdown'),
+ url = $link.attr('href'),
+ $titleLi;
+
+ if (!$dropdown.find('.title.back').length) {
+
+ if (settings.mobile_show_parent_link == true && url) {
+ $titleLi = $('<li class="title back js-generated"><h5><a href="javascript:void(0)"></a></h5></li><li class="parent-link hide-for-medium-up"><a class="parent-link js-generated" href="' + url + '">' + $link.html() +'</a></li>');
+ } else {
+ $titleLi = $('<li class="title back js-generated"><h5><a href="javascript:void(0)"></a></h5>');
+ }
+
+ // Copy link to subnav
+ if (settings.custom_back_text == true) {
+ $('h5>a', $titleLi).html(settings.back_text);
+ } else {
+ $('h5>a', $titleLi).html('« ' + $link.html());
+ }
+ $dropdown.prepend($titleLi);
+ }
+ });
+
+ // Put element back in the DOM
+ section.appendTo(topbar);
+
+ // check for sticky
+ this.sticky();
+
+ this.assembled(topbar);
+ },
+
+ assembled : function (topbar) {
+ topbar.data(this.attr_name(true), $.extend({}, topbar.data(this.attr_name(true)), {assembled : true}));
+ },
+
+ height : function (ul) {
+ var total = 0,
+ self = this;
+
+ $('> li', ul).each(function () {
+ total += self.S(this).outerHeight(true);
+ });
+
+ return total;
+ },
+
+ sticky : function () {
+ var self = this;
+
+ this.S(window).on('scroll', function () {
+ self.update_sticky_positioning();
+ });
+ },
+
+ update_sticky_positioning : function () {
+ var klass = '.' + this.settings.sticky_class,
+ $window = this.S(window),
+ self = this;
+
+ if (self.settings.sticky_topbar && self.is_sticky(this.settings.sticky_topbar,this.settings.sticky_topbar.parent(), this.settings)) {
+ var distance = this.settings.sticky_topbar.data('stickyoffset') + this.settings.start_offset;
+ if (!self.S(klass).hasClass('expanded')) {
+ if ($window.scrollTop() > (distance)) {
+ if (!self.S(klass).hasClass('fixed')) {
+ self.S(klass).addClass('fixed');
+ self.S('body').addClass('f-topbar-fixed');
+ }
+ } else if ($window.scrollTop() <= distance) {
+ if (self.S(klass).hasClass('fixed')) {
+ self.S(klass).removeClass('fixed');
+ self.S('body').removeClass('f-topbar-fixed');
+ }
+ }
+ }
+ }
+ },
+
+ off : function () {
+ this.S(this.scope).off('.fndtn.topbar');
+ this.S(window).off('.fndtn.topbar');
+ },
+
+ reflow : function () {}
+ };
+}(jQuery, window, window.document));
--- /dev/null
+!function(){"use strict";/**
+ * @preserve FastClick: polyfill to remove click delays on browsers with touch UIs.
+ *
+ * @codingstandard ftlabs-jsv2
+ * @copyright The Financial Times Limited [All Rights Reserved]
+ * @license MIT License (see LICENSE.txt)
+ */
+function a(b,d){function e(a,b){return function(){return a.apply(b,arguments)}}var f;if(d=d||{},this.trackingClick=!1,this.trackingClickStart=0,this.targetElement=null,this.touchStartX=0,this.touchStartY=0,this.lastTouchIdentifier=0,this.touchBoundary=d.touchBoundary||10,this.layer=b,this.tapDelay=d.tapDelay||200,this.tapTimeout=d.tapTimeout||700,!a.notNeeded(b)){for(var g=["onMouse","onClick","onTouchStart","onTouchMove","onTouchEnd","onTouchCancel"],h=this,i=0,j=g.length;j>i;i++)h[g[i]]=e(h[g[i]],h);c&&(b.addEventListener("mouseover",this.onMouse,!0),b.addEventListener("mousedown",this.onMouse,!0),b.addEventListener("mouseup",this.onMouse,!0)),b.addEventListener("click",this.onClick,!0),b.addEventListener("touchstart",this.onTouchStart,!1),b.addEventListener("touchmove",this.onTouchMove,!1),b.addEventListener("touchend",this.onTouchEnd,!1),b.addEventListener("touchcancel",this.onTouchCancel,!1),Event.prototype.stopImmediatePropagation||(b.removeEventListener=function(a,c,d){var e=Node.prototype.removeEventListener;"click"===a?e.call(b,a,c.hijacked||c,d):e.call(b,a,c,d)},b.addEventListener=function(a,c,d){var e=Node.prototype.addEventListener;"click"===a?e.call(b,a,c.hijacked||(c.hijacked=function(a){a.propagationStopped||c(a)}),d):e.call(b,a,c,d)}),"function"==typeof b.onclick&&(f=b.onclick,b.addEventListener("click",function(a){f(a)},!1),b.onclick=null)}}var b=navigator.userAgent.indexOf("Windows Phone")>=0,c=navigator.userAgent.indexOf("Android")>0&&!b,d=/iP(ad|hone|od)/.test(navigator.userAgent)&&!b,e=d&&/OS 4_\d(_\d)?/.test(navigator.userAgent),f=d&&/OS [6-7]_\d/.test(navigator.userAgent),g=navigator.userAgent.indexOf("BB10")>0;a.prototype.needsClick=function(a){switch(a.nodeName.toLowerCase()){case"button":case"select":case"textarea":if(a.disabled)return!0;break;case"input":if(d&&"file"===a.type||a.disabled)return!0;break;case"label":case"iframe":case"video":return!0}return/\bneedsclick\b/.test(a.className)},a.prototype.needsFocus=function(a){switch(a.nodeName.toLowerCase()){case"textarea":return!0;case"select":return!c;case"input":switch(a.type){case"button":case"checkbox":case"file":case"image":case"radio":case"submit":return!1}return!a.disabled&&!a.readOnly;default:return/\bneedsfocus\b/.test(a.className)}},a.prototype.sendClick=function(a,b){var c,d;document.activeElement&&document.activeElement!==a&&document.activeElement.blur(),d=b.changedTouches[0],c=document.createEvent("MouseEvents"),c.initMouseEvent(this.determineEventType(a),!0,!0,window,1,d.screenX,d.screenY,d.clientX,d.clientY,!1,!1,!1,!1,0,null),c.forwardedTouchEvent=!0,a.dispatchEvent(c)},a.prototype.determineEventType=function(a){return c&&"select"===a.tagName.toLowerCase()?"mousedown":"click"},a.prototype.focus=function(a){var b;d&&a.setSelectionRange&&0!==a.type.indexOf("date")&&"time"!==a.type&&"month"!==a.type?(b=a.value.length,a.setSelectionRange(b,b)):a.focus()},a.prototype.updateScrollParent=function(a){var b,c;if(b=a.fastClickScrollParent,!b||!b.contains(a)){c=a;do{if(c.scrollHeight>c.offsetHeight){b=c,a.fastClickScrollParent=c;break}c=c.parentElement}while(c)}b&&(b.fastClickLastScrollTop=b.scrollTop)},a.prototype.getTargetElementFromEventTarget=function(a){return a.nodeType===Node.TEXT_NODE?a.parentNode:a},a.prototype.onTouchStart=function(a){var b,c,f;if(a.targetTouches.length>1)return!0;if(b=this.getTargetElementFromEventTarget(a.target),c=a.targetTouches[0],d){if(f=window.getSelection(),f.rangeCount&&!f.isCollapsed)return!0;if(!e){if(c.identifier&&c.identifier===this.lastTouchIdentifier)return a.preventDefault(),!1;this.lastTouchIdentifier=c.identifier,this.updateScrollParent(b)}}return this.trackingClick=!0,this.trackingClickStart=a.timeStamp,this.targetElement=b,this.touchStartX=c.pageX,this.touchStartY=c.pageY,a.timeStamp-this.lastClickTime<this.tapDelay&&a.preventDefault(),!0},a.prototype.touchHasMoved=function(a){var b=a.changedTouches[0],c=this.touchBoundary;return Math.abs(b.pageX-this.touchStartX)>c||Math.abs(b.pageY-this.touchStartY)>c?!0:!1},a.prototype.onTouchMove=function(a){return this.trackingClick?((this.targetElement!==this.getTargetElementFromEventTarget(a.target)||this.touchHasMoved(a))&&(this.trackingClick=!1,this.targetElement=null),!0):!0},a.prototype.findControl=function(a){return void 0!==a.control?a.control:a.htmlFor?document.getElementById(a.htmlFor):a.querySelector("button, input:not([type=hidden]), keygen, meter, output, progress, select, textarea")},a.prototype.onTouchEnd=function(a){var b,g,h,i,j,k=this.targetElement;if(!this.trackingClick)return!0;if(a.timeStamp-this.lastClickTime<this.tapDelay)return this.cancelNextClick=!0,!0;if(a.timeStamp-this.trackingClickStart>this.tapTimeout)return!0;if(this.cancelNextClick=!1,this.lastClickTime=a.timeStamp,g=this.trackingClickStart,this.trackingClick=!1,this.trackingClickStart=0,f&&(j=a.changedTouches[0],k=document.elementFromPoint(j.pageX-window.pageXOffset,j.pageY-window.pageYOffset)||k,k.fastClickScrollParent=this.targetElement.fastClickScrollParent),h=k.tagName.toLowerCase(),"label"===h){if(b=this.findControl(k)){if(this.focus(k),c)return!1;k=b}}else if(this.needsFocus(k))return a.timeStamp-g>100||d&&window.top!==window&&"input"===h?(this.targetElement=null,!1):(this.focus(k),this.sendClick(k,a),d&&"select"===h||(this.targetElement=null,a.preventDefault()),!1);return d&&!e&&(i=k.fastClickScrollParent,i&&i.fastClickLastScrollTop!==i.scrollTop)?!0:(this.needsClick(k)||(a.preventDefault(),this.sendClick(k,a)),!1)},a.prototype.onTouchCancel=function(){this.trackingClick=!1,this.targetElement=null},a.prototype.onMouse=function(a){return this.targetElement?a.forwardedTouchEvent?!0:a.cancelable&&(!this.needsClick(this.targetElement)||this.cancelNextClick)?(a.stopImmediatePropagation?a.stopImmediatePropagation():a.propagationStopped=!0,a.stopPropagation(),a.preventDefault(),!1):!0:!0},a.prototype.onClick=function(a){var b;return this.trackingClick?(this.targetElement=null,this.trackingClick=!1,!0):"submit"===a.target.type&&0===a.detail?!0:(b=this.onMouse(a),b||(this.targetElement=null),b)},a.prototype.destroy=function(){var a=this.layer;c&&(a.removeEventListener("mouseover",this.onMouse,!0),a.removeEventListener("mousedown",this.onMouse,!0),a.removeEventListener("mouseup",this.onMouse,!0)),a.removeEventListener("click",this.onClick,!0),a.removeEventListener("touchstart",this.onTouchStart,!1),a.removeEventListener("touchmove",this.onTouchMove,!1),a.removeEventListener("touchend",this.onTouchEnd,!1),a.removeEventListener("touchcancel",this.onTouchCancel,!1)},a.notNeeded=function(a){var b,d,e,f;if("undefined"==typeof window.ontouchstart)return!0;if(d=+(/Chrome\/([0-9]+)/.exec(navigator.userAgent)||[,0])[1]){if(!c)return!0;if(b=document.querySelector("meta[name=viewport]")){if(-1!==b.content.indexOf("user-scalable=no"))return!0;if(d>31&&document.documentElement.scrollWidth<=window.outerWidth)return!0}}if(g&&(e=navigator.userAgent.match(/Version\/([0-9]*)\.([0-9]*)/),e[1]>=10&&e[2]>=3&&(b=document.querySelector("meta[name=viewport]")))){if(-1!==b.content.indexOf("user-scalable=no"))return!0;if(document.documentElement.scrollWidth<=window.outerWidth)return!0}return"none"===a.style.msTouchAction||"manipulation"===a.style.touchAction?!0:(f=+(/Firefox\/([0-9]+)/.exec(navigator.userAgent)||[,0])[1],f>=27&&(b=document.querySelector("meta[name=viewport]"),b&&(-1!==b.content.indexOf("user-scalable=no")||document.documentElement.scrollWidth<=window.outerWidth))?!0:"none"===a.style.touchAction||"manipulation"===a.style.touchAction?!0:!1)},a.attach=function(b,c){return new a(b,c)},"function"==typeof define&&"object"==typeof define.amd&&define.amd?define(function(){return a}):"undefined"!=typeof module&&module.exports?(module.exports=a.attach,module.exports.FastClick=a):window.FastClick=a}();
\ No newline at end of file
--- /dev/null
+/*!
+ * jQuery Cookie Plugin v1.4.1
+ * https://github.com/carhartl/jquery-cookie
+ *
+ * Copyright 2013 Klaus Hartl
+ * Released under the MIT license
+ */
+!function(a){"function"==typeof define&&define.amd?define(["jquery"],a):a("object"==typeof exports?require("jquery"):jQuery)}(function(a){function b(a){return h.raw?a:encodeURIComponent(a)}function c(a){return h.raw?a:decodeURIComponent(a)}function d(a){return b(h.json?JSON.stringify(a):String(a))}function e(a){0===a.indexOf('"')&&(a=a.slice(1,-1).replace(/\\"/g,'"').replace(/\\\\/g,"\\"));try{return a=decodeURIComponent(a.replace(g," ")),h.json?JSON.parse(a):a}catch(b){}}function f(b,c){var d=h.raw?b:e(b);return a.isFunction(c)?c(d):d}var g=/\+/g,h=a.cookie=function(e,g,i){if(void 0!==g&&!a.isFunction(g)){if(i=a.extend({},h.defaults,i),"number"==typeof i.expires){var j=i.expires,k=i.expires=new Date;k.setTime(+k+864e5*j)}return document.cookie=[b(e),"=",d(g),i.expires?"; expires="+i.expires.toUTCString():"",i.path?"; path="+i.path:"",i.domain?"; domain="+i.domain:"",i.secure?"; secure":""].join("")}for(var l=e?void 0:{},m=document.cookie?document.cookie.split("; "):[],n=0,o=m.length;o>n;n++){var p=m[n].split("="),q=c(p.shift()),r=p.join("=");if(e&&e===q){l=f(r,g);break}e||void 0===(r=f(r))||(l[q]=r)}return l};h.defaults={},a.removeCookie=function(b,c){return void 0===a.cookie(b)?!1:(a.cookie(b,"",a.extend({},c,{expires:-1})),!a.cookie(b))}});
\ No newline at end of file
--- /dev/null
+/*!
+ * jQuery JavaScript Library v2.1.4
+ * http://jquery.com/
+ *
+ * Includes Sizzle.js
+ * http://sizzlejs.com/
+ *
+ * Copyright 2005, 2014 jQuery Foundation, Inc. and other contributors
+ * Released under the MIT license
+ * http://jquery.org/license
+ *
+ * Date: 2015-04-28T16:01Z
+ */
+!function(a,b){"object"==typeof module&&"object"==typeof module.exports?module.exports=a.document?b(a,!0):function(a){if(!a.document)throw new Error("jQuery requires a window with a document");return b(a)}:b(a)}("undefined"!=typeof window?window:this,function(a,b){function c(a){var b="length"in a&&a.length,c=_.type(a);return"function"===c||_.isWindow(a)?!1:1===a.nodeType&&b?!0:"array"===c||0===b||"number"==typeof b&&b>0&&b-1 in a}function d(a,b,c){if(_.isFunction(b))return _.grep(a,function(a,d){return!!b.call(a,d,a)!==c});if(b.nodeType)return _.grep(a,function(a){return a===b!==c});if("string"==typeof b){if(ha.test(b))return _.filter(b,a,c);b=_.filter(b,a)}return _.grep(a,function(a){return U.call(b,a)>=0!==c})}function e(a,b){for(;(a=a[b])&&1!==a.nodeType;);return a}function f(a){var b=oa[a]={};return _.each(a.match(na)||[],function(a,c){b[c]=!0}),b}function g(){Z.removeEventListener("DOMContentLoaded",g,!1),a.removeEventListener("load",g,!1),_.ready()}function h(){Object.defineProperty(this.cache={},0,{get:function(){return{}}}),this.expando=_.expando+h.uid++}function i(a,b,c){var d;if(void 0===c&&1===a.nodeType)if(d="data-"+b.replace(ua,"-$1").toLowerCase(),c=a.getAttribute(d),"string"==typeof c){try{c="true"===c?!0:"false"===c?!1:"null"===c?null:+c+""===c?+c:ta.test(c)?_.parseJSON(c):c}catch(e){}sa.set(a,b,c)}else c=void 0;return c}function j(){return!0}function k(){return!1}function l(){try{return Z.activeElement}catch(a){}}function m(a,b){return _.nodeName(a,"table")&&_.nodeName(11!==b.nodeType?b:b.firstChild,"tr")?a.getElementsByTagName("tbody")[0]||a.appendChild(a.ownerDocument.createElement("tbody")):a}function n(a){return a.type=(null!==a.getAttribute("type"))+"/"+a.type,a}function o(a){var b=Ka.exec(a.type);return b?a.type=b[1]:a.removeAttribute("type"),a}function p(a,b){for(var c=0,d=a.length;d>c;c++)ra.set(a[c],"globalEval",!b||ra.get(b[c],"globalEval"))}function q(a,b){var c,d,e,f,g,h,i,j;if(1===b.nodeType){if(ra.hasData(a)&&(f=ra.access(a),g=ra.set(b,f),j=f.events)){delete g.handle,g.events={};for(e in j)for(c=0,d=j[e].length;d>c;c++)_.event.add(b,e,j[e][c])}sa.hasData(a)&&(h=sa.access(a),i=_.extend({},h),sa.set(b,i))}}function r(a,b){var c=a.getElementsByTagName?a.getElementsByTagName(b||"*"):a.querySelectorAll?a.querySelectorAll(b||"*"):[];return void 0===b||b&&_.nodeName(a,b)?_.merge([a],c):c}function s(a,b){var c=b.nodeName.toLowerCase();"input"===c&&ya.test(a.type)?b.checked=a.checked:("input"===c||"textarea"===c)&&(b.defaultValue=a.defaultValue)}function t(b,c){var d,e=_(c.createElement(b)).appendTo(c.body),f=a.getDefaultComputedStyle&&(d=a.getDefaultComputedStyle(e[0]))?d.display:_.css(e[0],"display");return e.detach(),f}function u(a){var b=Z,c=Oa[a];return c||(c=t(a,b),"none"!==c&&c||(Na=(Na||_("<iframe frameborder='0' width='0' height='0'/>")).appendTo(b.documentElement),b=Na[0].contentDocument,b.write(),b.close(),c=t(a,b),Na.detach()),Oa[a]=c),c}function v(a,b,c){var d,e,f,g,h=a.style;return c=c||Ra(a),c&&(g=c.getPropertyValue(b)||c[b]),c&&(""!==g||_.contains(a.ownerDocument,a)||(g=_.style(a,b)),Qa.test(g)&&Pa.test(b)&&(d=h.width,e=h.minWidth,f=h.maxWidth,h.minWidth=h.maxWidth=h.width=g,g=c.width,h.width=d,h.minWidth=e,h.maxWidth=f)),void 0!==g?g+"":g}function w(a,b){return{get:function(){return a()?void delete this.get:(this.get=b).apply(this,arguments)}}}function x(a,b){if(b in a)return b;for(var c=b[0].toUpperCase()+b.slice(1),d=b,e=Xa.length;e--;)if(b=Xa[e]+c,b in a)return b;return d}function y(a,b,c){var d=Ta.exec(b);return d?Math.max(0,d[1]-(c||0))+(d[2]||"px"):b}function z(a,b,c,d,e){for(var f=c===(d?"border":"content")?4:"width"===b?1:0,g=0;4>f;f+=2)"margin"===c&&(g+=_.css(a,c+wa[f],!0,e)),d?("content"===c&&(g-=_.css(a,"padding"+wa[f],!0,e)),"margin"!==c&&(g-=_.css(a,"border"+wa[f]+"Width",!0,e))):(g+=_.css(a,"padding"+wa[f],!0,e),"padding"!==c&&(g+=_.css(a,"border"+wa[f]+"Width",!0,e)));return g}function A(a,b,c){var d=!0,e="width"===b?a.offsetWidth:a.offsetHeight,f=Ra(a),g="border-box"===_.css(a,"boxSizing",!1,f);if(0>=e||null==e){if(e=v(a,b,f),(0>e||null==e)&&(e=a.style[b]),Qa.test(e))return e;d=g&&(Y.boxSizingReliable()||e===a.style[b]),e=parseFloat(e)||0}return e+z(a,b,c||(g?"border":"content"),d,f)+"px"}function B(a,b){for(var c,d,e,f=[],g=0,h=a.length;h>g;g++)d=a[g],d.style&&(f[g]=ra.get(d,"olddisplay"),c=d.style.display,b?(f[g]||"none"!==c||(d.style.display=""),""===d.style.display&&xa(d)&&(f[g]=ra.access(d,"olddisplay",u(d.nodeName)))):(e=xa(d),"none"===c&&e||ra.set(d,"olddisplay",e?c:_.css(d,"display"))));for(g=0;h>g;g++)d=a[g],d.style&&(b&&"none"!==d.style.display&&""!==d.style.display||(d.style.display=b?f[g]||"":"none"));return a}function C(a,b,c,d,e){return new C.prototype.init(a,b,c,d,e)}function D(){return setTimeout(function(){Ya=void 0}),Ya=_.now()}function E(a,b){var c,d=0,e={height:a};for(b=b?1:0;4>d;d+=2-b)c=wa[d],e["margin"+c]=e["padding"+c]=a;return b&&(e.opacity=e.width=a),e}function F(a,b,c){for(var d,e=(cb[b]||[]).concat(cb["*"]),f=0,g=e.length;g>f;f++)if(d=e[f].call(c,b,a))return d}function G(a,b,c){var d,e,f,g,h,i,j,k,l=this,m={},n=a.style,o=a.nodeType&&xa(a),p=ra.get(a,"fxshow");c.queue||(h=_._queueHooks(a,"fx"),null==h.unqueued&&(h.unqueued=0,i=h.empty.fire,h.empty.fire=function(){h.unqueued||i()}),h.unqueued++,l.always(function(){l.always(function(){h.unqueued--,_.queue(a,"fx").length||h.empty.fire()})})),1===a.nodeType&&("height"in b||"width"in b)&&(c.overflow=[n.overflow,n.overflowX,n.overflowY],j=_.css(a,"display"),k="none"===j?ra.get(a,"olddisplay")||u(a.nodeName):j,"inline"===k&&"none"===_.css(a,"float")&&(n.display="inline-block")),c.overflow&&(n.overflow="hidden",l.always(function(){n.overflow=c.overflow[0],n.overflowX=c.overflow[1],n.overflowY=c.overflow[2]}));for(d in b)if(e=b[d],$a.exec(e)){if(delete b[d],f=f||"toggle"===e,e===(o?"hide":"show")){if("show"!==e||!p||void 0===p[d])continue;o=!0}m[d]=p&&p[d]||_.style(a,d)}else j=void 0;if(_.isEmptyObject(m))"inline"===("none"===j?u(a.nodeName):j)&&(n.display=j);else{p?"hidden"in p&&(o=p.hidden):p=ra.access(a,"fxshow",{}),f&&(p.hidden=!o),o?_(a).show():l.done(function(){_(a).hide()}),l.done(function(){var b;ra.remove(a,"fxshow");for(b in m)_.style(a,b,m[b])});for(d in m)g=F(o?p[d]:0,d,l),d in p||(p[d]=g.start,o&&(g.end=g.start,g.start="width"===d||"height"===d?1:0))}}function H(a,b){var c,d,e,f,g;for(c in a)if(d=_.camelCase(c),e=b[d],f=a[c],_.isArray(f)&&(e=f[1],f=a[c]=f[0]),c!==d&&(a[d]=f,delete a[c]),g=_.cssHooks[d],g&&"expand"in g){f=g.expand(f),delete a[d];for(c in f)c in a||(a[c]=f[c],b[c]=e)}else b[d]=e}function I(a,b,c){var d,e,f=0,g=bb.length,h=_.Deferred().always(function(){delete i.elem}),i=function(){if(e)return!1;for(var b=Ya||D(),c=Math.max(0,j.startTime+j.duration-b),d=c/j.duration||0,f=1-d,g=0,i=j.tweens.length;i>g;g++)j.tweens[g].run(f);return h.notifyWith(a,[j,f,c]),1>f&&i?c:(h.resolveWith(a,[j]),!1)},j=h.promise({elem:a,props:_.extend({},b),opts:_.extend(!0,{specialEasing:{}},c),originalProperties:b,originalOptions:c,startTime:Ya||D(),duration:c.duration,tweens:[],createTween:function(b,c){var d=_.Tween(a,j.opts,b,c,j.opts.specialEasing[b]||j.opts.easing);return j.tweens.push(d),d},stop:function(b){var c=0,d=b?j.tweens.length:0;if(e)return this;for(e=!0;d>c;c++)j.tweens[c].run(1);return b?h.resolveWith(a,[j,b]):h.rejectWith(a,[j,b]),this}}),k=j.props;for(H(k,j.opts.specialEasing);g>f;f++)if(d=bb[f].call(j,a,k,j.opts))return d;return _.map(k,F,j),_.isFunction(j.opts.start)&&j.opts.start.call(a,j),_.fx.timer(_.extend(i,{elem:a,anim:j,queue:j.opts.queue})),j.progress(j.opts.progress).done(j.opts.done,j.opts.complete).fail(j.opts.fail).always(j.opts.always)}function J(a){return function(b,c){"string"!=typeof b&&(c=b,b="*");var d,e=0,f=b.toLowerCase().match(na)||[];if(_.isFunction(c))for(;d=f[e++];)"+"===d[0]?(d=d.slice(1)||"*",(a[d]=a[d]||[]).unshift(c)):(a[d]=a[d]||[]).push(c)}}function K(a,b,c,d){function e(h){var i;return f[h]=!0,_.each(a[h]||[],function(a,h){var j=h(b,c,d);return"string"!=typeof j||g||f[j]?g?!(i=j):void 0:(b.dataTypes.unshift(j),e(j),!1)}),i}var f={},g=a===tb;return e(b.dataTypes[0])||!f["*"]&&e("*")}function L(a,b){var c,d,e=_.ajaxSettings.flatOptions||{};for(c in b)void 0!==b[c]&&((e[c]?a:d||(d={}))[c]=b[c]);return d&&_.extend(!0,a,d),a}function M(a,b,c){for(var d,e,f,g,h=a.contents,i=a.dataTypes;"*"===i[0];)i.shift(),void 0===d&&(d=a.mimeType||b.getResponseHeader("Content-Type"));if(d)for(e in h)if(h[e]&&h[e].test(d)){i.unshift(e);break}if(i[0]in c)f=i[0];else{for(e in c){if(!i[0]||a.converters[e+" "+i[0]]){f=e;break}g||(g=e)}f=f||g}return f?(f!==i[0]&&i.unshift(f),c[f]):void 0}function N(a,b,c,d){var e,f,g,h,i,j={},k=a.dataTypes.slice();if(k[1])for(g in a.converters)j[g.toLowerCase()]=a.converters[g];for(f=k.shift();f;)if(a.responseFields[f]&&(c[a.responseFields[f]]=b),!i&&d&&a.dataFilter&&(b=a.dataFilter(b,a.dataType)),i=f,f=k.shift())if("*"===f)f=i;else if("*"!==i&&i!==f){if(g=j[i+" "+f]||j["* "+f],!g)for(e in j)if(h=e.split(" "),h[1]===f&&(g=j[i+" "+h[0]]||j["* "+h[0]])){g===!0?g=j[e]:j[e]!==!0&&(f=h[0],k.unshift(h[1]));break}if(g!==!0)if(g&&a["throws"])b=g(b);else try{b=g(b)}catch(l){return{state:"parsererror",error:g?l:"No conversion from "+i+" to "+f}}}return{state:"success",data:b}}function O(a,b,c,d){var e;if(_.isArray(b))_.each(b,function(b,e){c||yb.test(a)?d(a,e):O(a+"["+("object"==typeof e?b:"")+"]",e,c,d)});else if(c||"object"!==_.type(b))d(a,b);else for(e in b)O(a+"["+e+"]",b[e],c,d)}function P(a){return _.isWindow(a)?a:9===a.nodeType&&a.defaultView}var Q=[],R=Q.slice,S=Q.concat,T=Q.push,U=Q.indexOf,V={},W=V.toString,X=V.hasOwnProperty,Y={},Z=a.document,$="2.1.4",_=function(a,b){return new _.fn.init(a,b)},aa=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,ba=/^-ms-/,ca=/-([\da-z])/gi,da=function(a,b){return b.toUpperCase()};_.fn=_.prototype={jquery:$,constructor:_,selector:"",length:0,toArray:function(){return R.call(this)},get:function(a){return null!=a?0>a?this[a+this.length]:this[a]:R.call(this)},pushStack:function(a){var b=_.merge(this.constructor(),a);return b.prevObject=this,b.context=this.context,b},each:function(a,b){return _.each(this,a,b)},map:function(a){return this.pushStack(_.map(this,function(b,c){return a.call(b,c,b)}))},slice:function(){return this.pushStack(R.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(a){var b=this.length,c=+a+(0>a?b:0);return this.pushStack(c>=0&&b>c?[this[c]]:[])},end:function(){return this.prevObject||this.constructor(null)},push:T,sort:Q.sort,splice:Q.splice},_.extend=_.fn.extend=function(){var a,b,c,d,e,f,g=arguments[0]||{},h=1,i=arguments.length,j=!1;for("boolean"==typeof g&&(j=g,g=arguments[h]||{},h++),"object"==typeof g||_.isFunction(g)||(g={}),h===i&&(g=this,h--);i>h;h++)if(null!=(a=arguments[h]))for(b in a)c=g[b],d=a[b],g!==d&&(j&&d&&(_.isPlainObject(d)||(e=_.isArray(d)))?(e?(e=!1,f=c&&_.isArray(c)?c:[]):f=c&&_.isPlainObject(c)?c:{},g[b]=_.extend(j,f,d)):void 0!==d&&(g[b]=d));return g},_.extend({expando:"jQuery"+($+Math.random()).replace(/\D/g,""),isReady:!0,error:function(a){throw new Error(a)},noop:function(){},isFunction:function(a){return"function"===_.type(a)},isArray:Array.isArray,isWindow:function(a){return null!=a&&a===a.window},isNumeric:function(a){return!_.isArray(a)&&a-parseFloat(a)+1>=0},isPlainObject:function(a){return"object"!==_.type(a)||a.nodeType||_.isWindow(a)?!1:a.constructor&&!X.call(a.constructor.prototype,"isPrototypeOf")?!1:!0},isEmptyObject:function(a){var b;for(b in a)return!1;return!0},type:function(a){return null==a?a+"":"object"==typeof a||"function"==typeof a?V[W.call(a)]||"object":typeof a},globalEval:function(a){var b,c=eval;a=_.trim(a),a&&(1===a.indexOf("use strict")?(b=Z.createElement("script"),b.text=a,Z.head.appendChild(b).parentNode.removeChild(b)):c(a))},camelCase:function(a){return a.replace(ba,"ms-").replace(ca,da)},nodeName:function(a,b){return a.nodeName&&a.nodeName.toLowerCase()===b.toLowerCase()},each:function(a,b,d){var e,f=0,g=a.length,h=c(a);if(d){if(h)for(;g>f&&(e=b.apply(a[f],d),e!==!1);f++);else for(f in a)if(e=b.apply(a[f],d),e===!1)break}else if(h)for(;g>f&&(e=b.call(a[f],f,a[f]),e!==!1);f++);else for(f in a)if(e=b.call(a[f],f,a[f]),e===!1)break;return a},trim:function(a){return null==a?"":(a+"").replace(aa,"")},makeArray:function(a,b){var d=b||[];return null!=a&&(c(Object(a))?_.merge(d,"string"==typeof a?[a]:a):T.call(d,a)),d},inArray:function(a,b,c){return null==b?-1:U.call(b,a,c)},merge:function(a,b){for(var c=+b.length,d=0,e=a.length;c>d;d++)a[e++]=b[d];return a.length=e,a},grep:function(a,b,c){for(var d,e=[],f=0,g=a.length,h=!c;g>f;f++)d=!b(a[f],f),d!==h&&e.push(a[f]);return e},map:function(a,b,d){var e,f=0,g=a.length,h=c(a),i=[];if(h)for(;g>f;f++)e=b(a[f],f,d),null!=e&&i.push(e);else for(f in a)e=b(a[f],f,d),null!=e&&i.push(e);return S.apply([],i)},guid:1,proxy:function(a,b){var c,d,e;return"string"==typeof b&&(c=a[b],b=a,a=c),_.isFunction(a)?(d=R.call(arguments,2),e=function(){return a.apply(b||this,d.concat(R.call(arguments)))},e.guid=a.guid=a.guid||_.guid++,e):void 0},now:Date.now,support:Y}),_.each("Boolean Number String Function Array Date RegExp Object Error".split(" "),function(a,b){V["[object "+b+"]"]=b.toLowerCase()});var ea=/*!
+ * Sizzle CSS Selector Engine v2.2.0-pre
+ * http://sizzlejs.com/
+ *
+ * Copyright 2008, 2014 jQuery Foundation, Inc. and other contributors
+ * Released under the MIT license
+ * http://jquery.org/license
+ *
+ * Date: 2014-12-16
+ */
+function(a){function b(a,b,c,d){var e,f,g,h,i,j,l,n,o,p;if((b?b.ownerDocument||b:O)!==G&&F(b),b=b||G,c=c||[],h=b.nodeType,"string"!=typeof a||!a||1!==h&&9!==h&&11!==h)return c;if(!d&&I){if(11!==h&&(e=sa.exec(a)))if(g=e[1]){if(9===h){if(f=b.getElementById(g),!f||!f.parentNode)return c;if(f.id===g)return c.push(f),c}else if(b.ownerDocument&&(f=b.ownerDocument.getElementById(g))&&M(b,f)&&f.id===g)return c.push(f),c}else{if(e[2])return $.apply(c,b.getElementsByTagName(a)),c;if((g=e[3])&&v.getElementsByClassName)return $.apply(c,b.getElementsByClassName(g)),c}if(v.qsa&&(!J||!J.test(a))){if(n=l=N,o=b,p=1!==h&&a,1===h&&"object"!==b.nodeName.toLowerCase()){for(j=z(a),(l=b.getAttribute("id"))?n=l.replace(ua,"\\$&"):b.setAttribute("id",n),n="[id='"+n+"'] ",i=j.length;i--;)j[i]=n+m(j[i]);o=ta.test(a)&&k(b.parentNode)||b,p=j.join(",")}if(p)try{return $.apply(c,o.querySelectorAll(p)),c}catch(q){}finally{l||b.removeAttribute("id")}}}return B(a.replace(ia,"$1"),b,c,d)}function c(){function a(c,d){return b.push(c+" ")>w.cacheLength&&delete a[b.shift()],a[c+" "]=d}var b=[];return a}function d(a){return a[N]=!0,a}function e(a){var b=G.createElement("div");try{return!!a(b)}catch(c){return!1}finally{b.parentNode&&b.parentNode.removeChild(b),b=null}}function f(a,b){for(var c=a.split("|"),d=a.length;d--;)w.attrHandle[c[d]]=b}function g(a,b){var c=b&&a,d=c&&1===a.nodeType&&1===b.nodeType&&(~b.sourceIndex||V)-(~a.sourceIndex||V);if(d)return d;if(c)for(;c=c.nextSibling;)if(c===b)return-1;return a?1:-1}function h(a){return function(b){var c=b.nodeName.toLowerCase();return"input"===c&&b.type===a}}function i(a){return function(b){var c=b.nodeName.toLowerCase();return("input"===c||"button"===c)&&b.type===a}}function j(a){return d(function(b){return b=+b,d(function(c,d){for(var e,f=a([],c.length,b),g=f.length;g--;)c[e=f[g]]&&(c[e]=!(d[e]=c[e]))})})}function k(a){return a&&"undefined"!=typeof a.getElementsByTagName&&a}function l(){}function m(a){for(var b=0,c=a.length,d="";c>b;b++)d+=a[b].value;return d}function n(a,b,c){var d=b.dir,e=c&&"parentNode"===d,f=Q++;return b.first?function(b,c,f){for(;b=b[d];)if(1===b.nodeType||e)return a(b,c,f)}:function(b,c,g){var h,i,j=[P,f];if(g){for(;b=b[d];)if((1===b.nodeType||e)&&a(b,c,g))return!0}else for(;b=b[d];)if(1===b.nodeType||e){if(i=b[N]||(b[N]={}),(h=i[d])&&h[0]===P&&h[1]===f)return j[2]=h[2];if(i[d]=j,j[2]=a(b,c,g))return!0}}}function o(a){return a.length>1?function(b,c,d){for(var e=a.length;e--;)if(!a[e](b,c,d))return!1;return!0}:a[0]}function p(a,c,d){for(var e=0,f=c.length;f>e;e++)b(a,c[e],d);return d}function q(a,b,c,d,e){for(var f,g=[],h=0,i=a.length,j=null!=b;i>h;h++)(f=a[h])&&(!c||c(f,d,e))&&(g.push(f),j&&b.push(h));return g}function r(a,b,c,e,f,g){return e&&!e[N]&&(e=r(e)),f&&!f[N]&&(f=r(f,g)),d(function(d,g,h,i){var j,k,l,m=[],n=[],o=g.length,r=d||p(b||"*",h.nodeType?[h]:h,[]),s=!a||!d&&b?r:q(r,m,a,h,i),t=c?f||(d?a:o||e)?[]:g:s;if(c&&c(s,t,h,i),e)for(j=q(t,n),e(j,[],h,i),k=j.length;k--;)(l=j[k])&&(t[n[k]]=!(s[n[k]]=l));if(d){if(f||a){if(f){for(j=[],k=t.length;k--;)(l=t[k])&&j.push(s[k]=l);f(null,t=[],j,i)}for(k=t.length;k--;)(l=t[k])&&(j=f?aa(d,l):m[k])>-1&&(d[j]=!(g[j]=l))}}else t=q(t===g?t.splice(o,t.length):t),f?f(null,g,t,i):$.apply(g,t)})}function s(a){for(var b,c,d,e=a.length,f=w.relative[a[0].type],g=f||w.relative[" "],h=f?1:0,i=n(function(a){return a===b},g,!0),j=n(function(a){return aa(b,a)>-1},g,!0),k=[function(a,c,d){var e=!f&&(d||c!==C)||((b=c).nodeType?i(a,c,d):j(a,c,d));return b=null,e}];e>h;h++)if(c=w.relative[a[h].type])k=[n(o(k),c)];else{if(c=w.filter[a[h].type].apply(null,a[h].matches),c[N]){for(d=++h;e>d&&!w.relative[a[d].type];d++);return r(h>1&&o(k),h>1&&m(a.slice(0,h-1).concat({value:" "===a[h-2].type?"*":""})).replace(ia,"$1"),c,d>h&&s(a.slice(h,d)),e>d&&s(a=a.slice(d)),e>d&&m(a))}k.push(c)}return o(k)}function t(a,c){var e=c.length>0,f=a.length>0,g=function(d,g,h,i,j){var k,l,m,n=0,o="0",p=d&&[],r=[],s=C,t=d||f&&w.find.TAG("*",j),u=P+=null==s?1:Math.random()||.1,v=t.length;for(j&&(C=g!==G&&g);o!==v&&null!=(k=t[o]);o++){if(f&&k){for(l=0;m=a[l++];)if(m(k,g,h)){i.push(k);break}j&&(P=u)}e&&((k=!m&&k)&&n--,d&&p.push(k))}if(n+=o,e&&o!==n){for(l=0;m=c[l++];)m(p,r,g,h);if(d){if(n>0)for(;o--;)p[o]||r[o]||(r[o]=Y.call(i));r=q(r)}$.apply(i,r),j&&!d&&r.length>0&&n+c.length>1&&b.uniqueSort(i)}return j&&(P=u,C=s),p};return e?d(g):g}var u,v,w,x,y,z,A,B,C,D,E,F,G,H,I,J,K,L,M,N="sizzle"+1*new Date,O=a.document,P=0,Q=0,R=c(),S=c(),T=c(),U=function(a,b){return a===b&&(E=!0),0},V=1<<31,W={}.hasOwnProperty,X=[],Y=X.pop,Z=X.push,$=X.push,_=X.slice,aa=function(a,b){for(var c=0,d=a.length;d>c;c++)if(a[c]===b)return c;return-1},ba="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",ca="[\\x20\\t\\r\\n\\f]",da="(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+",ea=da.replace("w","w#"),fa="\\["+ca+"*("+da+")(?:"+ca+"*([*^$|!~]?=)"+ca+"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+ea+"))|)"+ca+"*\\]",ga=":("+da+")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|"+fa+")*)|.*)\\)|)",ha=new RegExp(ca+"+","g"),ia=new RegExp("^"+ca+"+|((?:^|[^\\\\])(?:\\\\.)*)"+ca+"+$","g"),ja=new RegExp("^"+ca+"*,"+ca+"*"),ka=new RegExp("^"+ca+"*([>+~]|"+ca+")"+ca+"*"),la=new RegExp("="+ca+"*([^\\]'\"]*?)"+ca+"*\\]","g"),ma=new RegExp(ga),na=new RegExp("^"+ea+"$"),oa={ID:new RegExp("^#("+da+")"),CLASS:new RegExp("^\\.("+da+")"),TAG:new RegExp("^("+da.replace("w","w*")+")"),ATTR:new RegExp("^"+fa),PSEUDO:new RegExp("^"+ga),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+ca+"*(even|odd|(([+-]|)(\\d*)n|)"+ca+"*(?:([+-]|)"+ca+"*(\\d+)|))"+ca+"*\\)|)","i"),bool:new RegExp("^(?:"+ba+")$","i"),needsContext:new RegExp("^"+ca+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+ca+"*((?:-\\d)?\\d*)"+ca+"*\\)|)(?=[^-]|$)","i")},pa=/^(?:input|select|textarea|button)$/i,qa=/^h\d$/i,ra=/^[^{]+\{\s*\[native \w/,sa=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ta=/[+~]/,ua=/'|\\/g,va=new RegExp("\\\\([\\da-f]{1,6}"+ca+"?|("+ca+")|.)","ig"),wa=function(a,b,c){var d="0x"+b-65536;return d!==d||c?b:0>d?String.fromCharCode(d+65536):String.fromCharCode(d>>10|55296,1023&d|56320)},xa=function(){F()};try{$.apply(X=_.call(O.childNodes),O.childNodes),X[O.childNodes.length].nodeType}catch(ya){$={apply:X.length?function(a,b){Z.apply(a,_.call(b))}:function(a,b){for(var c=a.length,d=0;a[c++]=b[d++];);a.length=c-1}}}v=b.support={},y=b.isXML=function(a){var b=a&&(a.ownerDocument||a).documentElement;return b?"HTML"!==b.nodeName:!1},F=b.setDocument=function(a){var b,c,d=a?a.ownerDocument||a:O;return d!==G&&9===d.nodeType&&d.documentElement?(G=d,H=d.documentElement,c=d.defaultView,c&&c!==c.top&&(c.addEventListener?c.addEventListener("unload",xa,!1):c.attachEvent&&c.attachEvent("onunload",xa)),I=!y(d),v.attributes=e(function(a){return a.className="i",!a.getAttribute("className")}),v.getElementsByTagName=e(function(a){return a.appendChild(d.createComment("")),!a.getElementsByTagName("*").length}),v.getElementsByClassName=ra.test(d.getElementsByClassName),v.getById=e(function(a){return H.appendChild(a).id=N,!d.getElementsByName||!d.getElementsByName(N).length}),v.getById?(w.find.ID=function(a,b){if("undefined"!=typeof b.getElementById&&I){var c=b.getElementById(a);return c&&c.parentNode?[c]:[]}},w.filter.ID=function(a){var b=a.replace(va,wa);return function(a){return a.getAttribute("id")===b}}):(delete w.find.ID,w.filter.ID=function(a){var b=a.replace(va,wa);return function(a){var c="undefined"!=typeof a.getAttributeNode&&a.getAttributeNode("id");return c&&c.value===b}}),w.find.TAG=v.getElementsByTagName?function(a,b){return"undefined"!=typeof b.getElementsByTagName?b.getElementsByTagName(a):v.qsa?b.querySelectorAll(a):void 0}:function(a,b){var c,d=[],e=0,f=b.getElementsByTagName(a);if("*"===a){for(;c=f[e++];)1===c.nodeType&&d.push(c);return d}return f},w.find.CLASS=v.getElementsByClassName&&function(a,b){return I?b.getElementsByClassName(a):void 0},K=[],J=[],(v.qsa=ra.test(d.querySelectorAll))&&(e(function(a){H.appendChild(a).innerHTML="<a id='"+N+"'></a><select id='"+N+"-\f]' msallowcapture=''><option selected=''></option></select>",a.querySelectorAll("[msallowcapture^='']").length&&J.push("[*^$]="+ca+"*(?:''|\"\")"),a.querySelectorAll("[selected]").length||J.push("\\["+ca+"*(?:value|"+ba+")"),a.querySelectorAll("[id~="+N+"-]").length||J.push("~="),a.querySelectorAll(":checked").length||J.push(":checked"),a.querySelectorAll("a#"+N+"+*").length||J.push(".#.+[+~]")}),e(function(a){var b=d.createElement("input");b.setAttribute("type","hidden"),a.appendChild(b).setAttribute("name","D"),a.querySelectorAll("[name=d]").length&&J.push("name"+ca+"*[*^$|!~]?="),a.querySelectorAll(":enabled").length||J.push(":enabled",":disabled"),a.querySelectorAll("*,:x"),J.push(",.*:")})),(v.matchesSelector=ra.test(L=H.matches||H.webkitMatchesSelector||H.mozMatchesSelector||H.oMatchesSelector||H.msMatchesSelector))&&e(function(a){v.disconnectedMatch=L.call(a,"div"),L.call(a,"[s!='']:x"),K.push("!=",ga)}),J=J.length&&new RegExp(J.join("|")),K=K.length&&new RegExp(K.join("|")),b=ra.test(H.compareDocumentPosition),M=b||ra.test(H.contains)?function(a,b){var c=9===a.nodeType?a.documentElement:a,d=b&&b.parentNode;return a===d||!(!d||1!==d.nodeType||!(c.contains?c.contains(d):a.compareDocumentPosition&&16&a.compareDocumentPosition(d)))}:function(a,b){if(b)for(;b=b.parentNode;)if(b===a)return!0;return!1},U=b?function(a,b){if(a===b)return E=!0,0;var c=!a.compareDocumentPosition-!b.compareDocumentPosition;return c?c:(c=(a.ownerDocument||a)===(b.ownerDocument||b)?a.compareDocumentPosition(b):1,1&c||!v.sortDetached&&b.compareDocumentPosition(a)===c?a===d||a.ownerDocument===O&&M(O,a)?-1:b===d||b.ownerDocument===O&&M(O,b)?1:D?aa(D,a)-aa(D,b):0:4&c?-1:1)}:function(a,b){if(a===b)return E=!0,0;var c,e=0,f=a.parentNode,h=b.parentNode,i=[a],j=[b];if(!f||!h)return a===d?-1:b===d?1:f?-1:h?1:D?aa(D,a)-aa(D,b):0;if(f===h)return g(a,b);for(c=a;c=c.parentNode;)i.unshift(c);for(c=b;c=c.parentNode;)j.unshift(c);for(;i[e]===j[e];)e++;return e?g(i[e],j[e]):i[e]===O?-1:j[e]===O?1:0},d):G},b.matches=function(a,c){return b(a,null,null,c)},b.matchesSelector=function(a,c){if((a.ownerDocument||a)!==G&&F(a),c=c.replace(la,"='$1']"),v.matchesSelector&&I&&(!K||!K.test(c))&&(!J||!J.test(c)))try{var d=L.call(a,c);if(d||v.disconnectedMatch||a.document&&11!==a.document.nodeType)return d}catch(e){}return b(c,G,null,[a]).length>0},b.contains=function(a,b){return(a.ownerDocument||a)!==G&&F(a),M(a,b)},b.attr=function(a,b){(a.ownerDocument||a)!==G&&F(a);var c=w.attrHandle[b.toLowerCase()],d=c&&W.call(w.attrHandle,b.toLowerCase())?c(a,b,!I):void 0;return void 0!==d?d:v.attributes||!I?a.getAttribute(b):(d=a.getAttributeNode(b))&&d.specified?d.value:null},b.error=function(a){throw new Error("Syntax error, unrecognized expression: "+a)},b.uniqueSort=function(a){var b,c=[],d=0,e=0;if(E=!v.detectDuplicates,D=!v.sortStable&&a.slice(0),a.sort(U),E){for(;b=a[e++];)b===a[e]&&(d=c.push(e));for(;d--;)a.splice(c[d],1)}return D=null,a},x=b.getText=function(a){var b,c="",d=0,e=a.nodeType;if(e){if(1===e||9===e||11===e){if("string"==typeof a.textContent)return a.textContent;for(a=a.firstChild;a;a=a.nextSibling)c+=x(a)}else if(3===e||4===e)return a.nodeValue}else for(;b=a[d++];)c+=x(b);return c},w=b.selectors={cacheLength:50,createPseudo:d,match:oa,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(a){return a[1]=a[1].replace(va,wa),a[3]=(a[3]||a[4]||a[5]||"").replace(va,wa),"~="===a[2]&&(a[3]=" "+a[3]+" "),a.slice(0,4)},CHILD:function(a){return a[1]=a[1].toLowerCase(),"nth"===a[1].slice(0,3)?(a[3]||b.error(a[0]),a[4]=+(a[4]?a[5]+(a[6]||1):2*("even"===a[3]||"odd"===a[3])),a[5]=+(a[7]+a[8]||"odd"===a[3])):a[3]&&b.error(a[0]),a},PSEUDO:function(a){var b,c=!a[6]&&a[2];return oa.CHILD.test(a[0])?null:(a[3]?a[2]=a[4]||a[5]||"":c&&ma.test(c)&&(b=z(c,!0))&&(b=c.indexOf(")",c.length-b)-c.length)&&(a[0]=a[0].slice(0,b),a[2]=c.slice(0,b)),a.slice(0,3))}},filter:{TAG:function(a){var b=a.replace(va,wa).toLowerCase();return"*"===a?function(){return!0}:function(a){return a.nodeName&&a.nodeName.toLowerCase()===b}},CLASS:function(a){var b=R[a+" "];return b||(b=new RegExp("(^|"+ca+")"+a+"("+ca+"|$)"))&&R(a,function(a){return b.test("string"==typeof a.className&&a.className||"undefined"!=typeof a.getAttribute&&a.getAttribute("class")||"")})},ATTR:function(a,c,d){return function(e){var f=b.attr(e,a);return null==f?"!="===c:c?(f+="","="===c?f===d:"!="===c?f!==d:"^="===c?d&&0===f.indexOf(d):"*="===c?d&&f.indexOf(d)>-1:"$="===c?d&&f.slice(-d.length)===d:"~="===c?(" "+f.replace(ha," ")+" ").indexOf(d)>-1:"|="===c?f===d||f.slice(0,d.length+1)===d+"-":!1):!0}},CHILD:function(a,b,c,d,e){var f="nth"!==a.slice(0,3),g="last"!==a.slice(-4),h="of-type"===b;return 1===d&&0===e?function(a){return!!a.parentNode}:function(b,c,i){var j,k,l,m,n,o,p=f!==g?"nextSibling":"previousSibling",q=b.parentNode,r=h&&b.nodeName.toLowerCase(),s=!i&&!h;if(q){if(f){for(;p;){for(l=b;l=l[p];)if(h?l.nodeName.toLowerCase()===r:1===l.nodeType)return!1;o=p="only"===a&&!o&&"nextSibling"}return!0}if(o=[g?q.firstChild:q.lastChild],g&&s){for(k=q[N]||(q[N]={}),j=k[a]||[],n=j[0]===P&&j[1],m=j[0]===P&&j[2],l=n&&q.childNodes[n];l=++n&&l&&l[p]||(m=n=0)||o.pop();)if(1===l.nodeType&&++m&&l===b){k[a]=[P,n,m];break}}else if(s&&(j=(b[N]||(b[N]={}))[a])&&j[0]===P)m=j[1];else for(;(l=++n&&l&&l[p]||(m=n=0)||o.pop())&&((h?l.nodeName.toLowerCase()!==r:1!==l.nodeType)||!++m||(s&&((l[N]||(l[N]={}))[a]=[P,m]),l!==b)););return m-=e,m===d||m%d===0&&m/d>=0}}},PSEUDO:function(a,c){var e,f=w.pseudos[a]||w.setFilters[a.toLowerCase()]||b.error("unsupported pseudo: "+a);return f[N]?f(c):f.length>1?(e=[a,a,"",c],w.setFilters.hasOwnProperty(a.toLowerCase())?d(function(a,b){for(var d,e=f(a,c),g=e.length;g--;)d=aa(a,e[g]),a[d]=!(b[d]=e[g])}):function(a){return f(a,0,e)}):f}},pseudos:{not:d(function(a){var b=[],c=[],e=A(a.replace(ia,"$1"));return e[N]?d(function(a,b,c,d){for(var f,g=e(a,null,d,[]),h=a.length;h--;)(f=g[h])&&(a[h]=!(b[h]=f))}):function(a,d,f){return b[0]=a,e(b,null,f,c),b[0]=null,!c.pop()}}),has:d(function(a){return function(c){return b(a,c).length>0}}),contains:d(function(a){return a=a.replace(va,wa),function(b){return(b.textContent||b.innerText||x(b)).indexOf(a)>-1}}),lang:d(function(a){return na.test(a||"")||b.error("unsupported lang: "+a),a=a.replace(va,wa).toLowerCase(),function(b){var c;do if(c=I?b.lang:b.getAttribute("xml:lang")||b.getAttribute("lang"))return c=c.toLowerCase(),c===a||0===c.indexOf(a+"-");while((b=b.parentNode)&&1===b.nodeType);return!1}}),target:function(b){var c=a.location&&a.location.hash;return c&&c.slice(1)===b.id},root:function(a){return a===H},focus:function(a){return a===G.activeElement&&(!G.hasFocus||G.hasFocus())&&!!(a.type||a.href||~a.tabIndex)},enabled:function(a){return a.disabled===!1},disabled:function(a){return a.disabled===!0},checked:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&!!a.checked||"option"===b&&!!a.selected},selected:function(a){return a.parentNode&&a.parentNode.selectedIndex,a.selected===!0},empty:function(a){for(a=a.firstChild;a;a=a.nextSibling)if(a.nodeType<6)return!1;return!0},parent:function(a){return!w.pseudos.empty(a)},header:function(a){return qa.test(a.nodeName)},input:function(a){return pa.test(a.nodeName)},button:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&"button"===a.type||"button"===b},text:function(a){var b;return"input"===a.nodeName.toLowerCase()&&"text"===a.type&&(null==(b=a.getAttribute("type"))||"text"===b.toLowerCase())},first:j(function(){return[0]}),last:j(function(a,b){return[b-1]}),eq:j(function(a,b,c){return[0>c?c+b:c]}),even:j(function(a,b){for(var c=0;b>c;c+=2)a.push(c);return a}),odd:j(function(a,b){for(var c=1;b>c;c+=2)a.push(c);return a}),lt:j(function(a,b,c){for(var d=0>c?c+b:c;--d>=0;)a.push(d);return a}),gt:j(function(a,b,c){for(var d=0>c?c+b:c;++d<b;)a.push(d);return a})}},w.pseudos.nth=w.pseudos.eq;for(u in{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})w.pseudos[u]=h(u);for(u in{submit:!0,reset:!0})w.pseudos[u]=i(u);return l.prototype=w.filters=w.pseudos,w.setFilters=new l,z=b.tokenize=function(a,c){var d,e,f,g,h,i,j,k=S[a+" "];if(k)return c?0:k.slice(0);for(h=a,i=[],j=w.preFilter;h;){(!d||(e=ja.exec(h)))&&(e&&(h=h.slice(e[0].length)||h),i.push(f=[])),d=!1,(e=ka.exec(h))&&(d=e.shift(),f.push({value:d,type:e[0].replace(ia," ")}),h=h.slice(d.length));for(g in w.filter)!(e=oa[g].exec(h))||j[g]&&!(e=j[g](e))||(d=e.shift(),f.push({value:d,type:g,matches:e}),h=h.slice(d.length));if(!d)break}return c?h.length:h?b.error(a):S(a,i).slice(0)},A=b.compile=function(a,b){var c,d=[],e=[],f=T[a+" "];if(!f){for(b||(b=z(a)),c=b.length;c--;)f=s(b[c]),f[N]?d.push(f):e.push(f);f=T(a,t(e,d)),f.selector=a}return f},B=b.select=function(a,b,c,d){var e,f,g,h,i,j="function"==typeof a&&a,l=!d&&z(a=j.selector||a);if(c=c||[],1===l.length){if(f=l[0]=l[0].slice(0),f.length>2&&"ID"===(g=f[0]).type&&v.getById&&9===b.nodeType&&I&&w.relative[f[1].type]){if(b=(w.find.ID(g.matches[0].replace(va,wa),b)||[])[0],!b)return c;j&&(b=b.parentNode),a=a.slice(f.shift().value.length)}for(e=oa.needsContext.test(a)?0:f.length;e--&&(g=f[e],!w.relative[h=g.type]);)if((i=w.find[h])&&(d=i(g.matches[0].replace(va,wa),ta.test(f[0].type)&&k(b.parentNode)||b))){if(f.splice(e,1),a=d.length&&m(f),!a)return $.apply(c,d),c;break}}return(j||A(a,l))(d,b,!I,c,ta.test(a)&&k(b.parentNode)||b),c},v.sortStable=N.split("").sort(U).join("")===N,v.detectDuplicates=!!E,F(),v.sortDetached=e(function(a){return 1&a.compareDocumentPosition(G.createElement("div"))}),e(function(a){return a.innerHTML="<a href='#'></a>","#"===a.firstChild.getAttribute("href")})||f("type|href|height|width",function(a,b,c){return c?void 0:a.getAttribute(b,"type"===b.toLowerCase()?1:2)}),v.attributes&&e(function(a){return a.innerHTML="<input/>",a.firstChild.setAttribute("value",""),""===a.firstChild.getAttribute("value")})||f("value",function(a,b,c){return c||"input"!==a.nodeName.toLowerCase()?void 0:a.defaultValue}),e(function(a){return null==a.getAttribute("disabled")})||f(ba,function(a,b,c){var d;return c?void 0:a[b]===!0?b.toLowerCase():(d=a.getAttributeNode(b))&&d.specified?d.value:null}),b}(a);_.find=ea,_.expr=ea.selectors,_.expr[":"]=_.expr.pseudos,_.unique=ea.uniqueSort,_.text=ea.getText,_.isXMLDoc=ea.isXML,_.contains=ea.contains;var fa=_.expr.match.needsContext,ga=/^<(\w+)\s*\/?>(?:<\/\1>|)$/,ha=/^.[^:#\[\.,]*$/;_.filter=function(a,b,c){var d=b[0];return c&&(a=":not("+a+")"),1===b.length&&1===d.nodeType?_.find.matchesSelector(d,a)?[d]:[]:_.find.matches(a,_.grep(b,function(a){return 1===a.nodeType}))},_.fn.extend({find:function(a){var b,c=this.length,d=[],e=this;if("string"!=typeof a)return this.pushStack(_(a).filter(function(){for(b=0;c>b;b++)if(_.contains(e[b],this))return!0}));for(b=0;c>b;b++)_.find(a,e[b],d);return d=this.pushStack(c>1?_.unique(d):d),d.selector=this.selector?this.selector+" "+a:a,d},filter:function(a){return this.pushStack(d(this,a||[],!1))},not:function(a){return this.pushStack(d(this,a||[],!0))},is:function(a){return!!d(this,"string"==typeof a&&fa.test(a)?_(a):a||[],!1).length}});var ia,ja=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/,ka=_.fn.init=function(a,b){var c,d;if(!a)return this;if("string"==typeof a){if(c="<"===a[0]&&">"===a[a.length-1]&&a.length>=3?[null,a,null]:ja.exec(a),!c||!c[1]&&b)return!b||b.jquery?(b||ia).find(a):this.constructor(b).find(a);if(c[1]){if(b=b instanceof _?b[0]:b,_.merge(this,_.parseHTML(c[1],b&&b.nodeType?b.ownerDocument||b:Z,!0)),ga.test(c[1])&&_.isPlainObject(b))for(c in b)_.isFunction(this[c])?this[c](b[c]):this.attr(c,b[c]);return this}return d=Z.getElementById(c[2]),d&&d.parentNode&&(this.length=1,this[0]=d),this.context=Z,this.selector=a,this}return a.nodeType?(this.context=this[0]=a,this.length=1,this):_.isFunction(a)?"undefined"!=typeof ia.ready?ia.ready(a):a(_):(void 0!==a.selector&&(this.selector=a.selector,this.context=a.context),_.makeArray(a,this))};ka.prototype=_.fn,ia=_(Z);var la=/^(?:parents|prev(?:Until|All))/,ma={children:!0,contents:!0,next:!0,prev:!0};_.extend({dir:function(a,b,c){for(var d=[],e=void 0!==c;(a=a[b])&&9!==a.nodeType;)if(1===a.nodeType){if(e&&_(a).is(c))break;d.push(a)}return d},sibling:function(a,b){for(var c=[];a;a=a.nextSibling)1===a.nodeType&&a!==b&&c.push(a);return c}}),_.fn.extend({has:function(a){var b=_(a,this),c=b.length;return this.filter(function(){for(var a=0;c>a;a++)if(_.contains(this,b[a]))return!0})},closest:function(a,b){for(var c,d=0,e=this.length,f=[],g=fa.test(a)||"string"!=typeof a?_(a,b||this.context):0;e>d;d++)for(c=this[d];c&&c!==b;c=c.parentNode)if(c.nodeType<11&&(g?g.index(c)>-1:1===c.nodeType&&_.find.matchesSelector(c,a))){f.push(c);break}return this.pushStack(f.length>1?_.unique(f):f)},index:function(a){return a?"string"==typeof a?U.call(_(a),this[0]):U.call(this,a.jquery?a[0]:a):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(a,b){return this.pushStack(_.unique(_.merge(this.get(),_(a,b))))},addBack:function(a){return this.add(null==a?this.prevObject:this.prevObject.filter(a))}}),_.each({parent:function(a){var b=a.parentNode;return b&&11!==b.nodeType?b:null},parents:function(a){return _.dir(a,"parentNode")},parentsUntil:function(a,b,c){return _.dir(a,"parentNode",c)},next:function(a){return e(a,"nextSibling")},prev:function(a){return e(a,"previousSibling")},nextAll:function(a){return _.dir(a,"nextSibling")},prevAll:function(a){return _.dir(a,"previousSibling")},nextUntil:function(a,b,c){return _.dir(a,"nextSibling",c)},prevUntil:function(a,b,c){return _.dir(a,"previousSibling",c)},siblings:function(a){return _.sibling((a.parentNode||{}).firstChild,a)},children:function(a){return _.sibling(a.firstChild)},contents:function(a){return a.contentDocument||_.merge([],a.childNodes)}},function(a,b){_.fn[a]=function(c,d){var e=_.map(this,b,c);return"Until"!==a.slice(-5)&&(d=c),d&&"string"==typeof d&&(e=_.filter(d,e)),this.length>1&&(ma[a]||_.unique(e),la.test(a)&&e.reverse()),this.pushStack(e)}});var na=/\S+/g,oa={};_.Callbacks=function(a){a="string"==typeof a?oa[a]||f(a):_.extend({},a);var b,c,d,e,g,h,i=[],j=!a.once&&[],k=function(f){for(b=a.memory&&f,c=!0,h=e||0,e=0,g=i.length,d=!0;i&&g>h;h++)if(i[h].apply(f[0],f[1])===!1&&a.stopOnFalse){b=!1;break}d=!1,i&&(j?j.length&&k(j.shift()):b?i=[]:l.disable())},l={add:function(){if(i){var c=i.length;!function f(b){_.each(b,function(b,c){var d=_.type(c);"function"===d?a.unique&&l.has(c)||i.push(c):c&&c.length&&"string"!==d&&f(c)})}(arguments),d?g=i.length:b&&(e=c,k(b))}return this},remove:function(){return i&&_.each(arguments,function(a,b){for(var c;(c=_.inArray(b,i,c))>-1;)i.splice(c,1),d&&(g>=c&&g--,h>=c&&h--)}),this},has:function(a){return a?_.inArray(a,i)>-1:!(!i||!i.length)},empty:function(){return i=[],g=0,this},disable:function(){return i=j=b=void 0,this},disabled:function(){return!i},lock:function(){return j=void 0,b||l.disable(),this},locked:function(){return!j},fireWith:function(a,b){return!i||c&&!j||(b=b||[],b=[a,b.slice?b.slice():b],d?j.push(b):k(b)),this},fire:function(){return l.fireWith(this,arguments),this},fired:function(){return!!c}};return l},_.extend({Deferred:function(a){var b=[["resolve","done",_.Callbacks("once memory"),"resolved"],["reject","fail",_.Callbacks("once memory"),"rejected"],["notify","progress",_.Callbacks("memory")]],c="pending",d={state:function(){return c},always:function(){return e.done(arguments).fail(arguments),this},then:function(){var a=arguments;return _.Deferred(function(c){_.each(b,function(b,f){var g=_.isFunction(a[b])&&a[b];e[f[1]](function(){var a=g&&g.apply(this,arguments);a&&_.isFunction(a.promise)?a.promise().done(c.resolve).fail(c.reject).progress(c.notify):c[f[0]+"With"](this===d?c.promise():this,g?[a]:arguments)})}),a=null}).promise()},promise:function(a){return null!=a?_.extend(a,d):d}},e={};return d.pipe=d.then,_.each(b,function(a,f){var g=f[2],h=f[3];d[f[1]]=g.add,h&&g.add(function(){c=h},b[1^a][2].disable,b[2][2].lock),e[f[0]]=function(){return e[f[0]+"With"](this===e?d:this,arguments),this},e[f[0]+"With"]=g.fireWith}),d.promise(e),a&&a.call(e,e),e},when:function(a){var b,c,d,e=0,f=R.call(arguments),g=f.length,h=1!==g||a&&_.isFunction(a.promise)?g:0,i=1===h?a:_.Deferred(),j=function(a,c,d){return function(e){c[a]=this,d[a]=arguments.length>1?R.call(arguments):e,d===b?i.notifyWith(c,d):--h||i.resolveWith(c,d)}};if(g>1)for(b=new Array(g),c=new Array(g),d=new Array(g);g>e;e++)f[e]&&_.isFunction(f[e].promise)?f[e].promise().done(j(e,d,f)).fail(i.reject).progress(j(e,c,b)):--h;return h||i.resolveWith(d,f),i.promise()}});var pa;_.fn.ready=function(a){return _.ready.promise().done(a),this},_.extend({isReady:!1,readyWait:1,holdReady:function(a){a?_.readyWait++:_.ready(!0)},ready:function(a){(a===!0?--_.readyWait:_.isReady)||(_.isReady=!0,a!==!0&&--_.readyWait>0||(pa.resolveWith(Z,[_]),_.fn.triggerHandler&&(_(Z).triggerHandler("ready"),_(Z).off("ready"))))}}),_.ready.promise=function(b){return pa||(pa=_.Deferred(),"complete"===Z.readyState?setTimeout(_.ready):(Z.addEventListener("DOMContentLoaded",g,!1),a.addEventListener("load",g,!1))),pa.promise(b)},_.ready.promise();var qa=_.access=function(a,b,c,d,e,f,g){var h=0,i=a.length,j=null==c;if("object"===_.type(c)){e=!0;for(h in c)_.access(a,b,h,c[h],!0,f,g)}else if(void 0!==d&&(e=!0,_.isFunction(d)||(g=!0),j&&(g?(b.call(a,d),b=null):(j=b,b=function(a,b,c){return j.call(_(a),c)})),b))for(;i>h;h++)b(a[h],c,g?d:d.call(a[h],h,b(a[h],c)));return e?a:j?b.call(a):i?b(a[0],c):f};_.acceptData=function(a){return 1===a.nodeType||9===a.nodeType||!+a.nodeType},h.uid=1,h.accepts=_.acceptData,h.prototype={key:function(a){if(!h.accepts(a))return 0;var b={},c=a[this.expando];if(!c){c=h.uid++;try{b[this.expando]={value:c},Object.defineProperties(a,b)}catch(d){b[this.expando]=c,_.extend(a,b)}}return this.cache[c]||(this.cache[c]={}),c},set:function(a,b,c){var d,e=this.key(a),f=this.cache[e];if("string"==typeof b)f[b]=c;else if(_.isEmptyObject(f))_.extend(this.cache[e],b);else for(d in b)f[d]=b[d];return f},get:function(a,b){var c=this.cache[this.key(a)];return void 0===b?c:c[b]},access:function(a,b,c){var d;return void 0===b||b&&"string"==typeof b&&void 0===c?(d=this.get(a,b),void 0!==d?d:this.get(a,_.camelCase(b))):(this.set(a,b,c),void 0!==c?c:b)},remove:function(a,b){var c,d,e,f=this.key(a),g=this.cache[f];if(void 0===b)this.cache[f]={};else{_.isArray(b)?d=b.concat(b.map(_.camelCase)):(e=_.camelCase(b),b in g?d=[b,e]:(d=e,d=d in g?[d]:d.match(na)||[])),c=d.length;for(;c--;)delete g[d[c]]}},hasData:function(a){return!_.isEmptyObject(this.cache[a[this.expando]]||{})},discard:function(a){a[this.expando]&&delete this.cache[a[this.expando]]}};var ra=new h,sa=new h,ta=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,ua=/([A-Z])/g;_.extend({hasData:function(a){return sa.hasData(a)||ra.hasData(a)},data:function(a,b,c){return sa.access(a,b,c)},removeData:function(a,b){sa.remove(a,b)},_data:function(a,b,c){return ra.access(a,b,c)},_removeData:function(a,b){ra.remove(a,b)}}),_.fn.extend({data:function(a,b){var c,d,e,f=this[0],g=f&&f.attributes;if(void 0===a){if(this.length&&(e=sa.get(f),1===f.nodeType&&!ra.get(f,"hasDataAttrs"))){for(c=g.length;c--;)g[c]&&(d=g[c].name,0===d.indexOf("data-")&&(d=_.camelCase(d.slice(5)),i(f,d,e[d])));ra.set(f,"hasDataAttrs",!0)}return e}return"object"==typeof a?this.each(function(){sa.set(this,a)}):qa(this,function(b){var c,d=_.camelCase(a);if(f&&void 0===b){if(c=sa.get(f,a),void 0!==c)return c;if(c=sa.get(f,d),void 0!==c)return c;if(c=i(f,d,void 0),void 0!==c)return c}else this.each(function(){var c=sa.get(this,d);sa.set(this,d,b),-1!==a.indexOf("-")&&void 0!==c&&sa.set(this,a,b)})},null,b,arguments.length>1,null,!0)},removeData:function(a){return this.each(function(){sa.remove(this,a)})}}),_.extend({queue:function(a,b,c){var d;return a?(b=(b||"fx")+"queue",d=ra.get(a,b),c&&(!d||_.isArray(c)?d=ra.access(a,b,_.makeArray(c)):d.push(c)),d||[]):void 0},dequeue:function(a,b){b=b||"fx";var c=_.queue(a,b),d=c.length,e=c.shift(),f=_._queueHooks(a,b),g=function(){_.dequeue(a,b)};"inprogress"===e&&(e=c.shift(),d--),e&&("fx"===b&&c.unshift("inprogress"),delete f.stop,e.call(a,g,f)),!d&&f&&f.empty.fire()},_queueHooks:function(a,b){var c=b+"queueHooks";return ra.get(a,c)||ra.access(a,c,{empty:_.Callbacks("once memory").add(function(){ra.remove(a,[b+"queue",c])})})}}),_.fn.extend({queue:function(a,b){var c=2;return"string"!=typeof a&&(b=a,a="fx",c--),arguments.length<c?_.queue(this[0],a):void 0===b?this:this.each(function(){var c=_.queue(this,a,b);_._queueHooks(this,a),"fx"===a&&"inprogress"!==c[0]&&_.dequeue(this,a)})},dequeue:function(a){return this.each(function(){_.dequeue(this,a)})},clearQueue:function(a){return this.queue(a||"fx",[])},promise:function(a,b){var c,d=1,e=_.Deferred(),f=this,g=this.length,h=function(){--d||e.resolveWith(f,[f])};for("string"!=typeof a&&(b=a,a=void 0),a=a||"fx";g--;)c=ra.get(f[g],a+"queueHooks"),c&&c.empty&&(d++,c.empty.add(h));return h(),e.promise(b)}});var va=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,wa=["Top","Right","Bottom","Left"],xa=function(a,b){return a=b||a,"none"===_.css(a,"display")||!_.contains(a.ownerDocument,a)},ya=/^(?:checkbox|radio)$/i;!function(){var a=Z.createDocumentFragment(),b=a.appendChild(Z.createElement("div")),c=Z.createElement("input");c.setAttribute("type","radio"),c.setAttribute("checked","checked"),c.setAttribute("name","t"),b.appendChild(c),Y.checkClone=b.cloneNode(!0).cloneNode(!0).lastChild.checked,b.innerHTML="<textarea>x</textarea>",Y.noCloneChecked=!!b.cloneNode(!0).lastChild.defaultValue}();var za="undefined";Y.focusinBubbles="onfocusin"in a;var Aa=/^key/,Ba=/^(?:mouse|pointer|contextmenu)|click/,Ca=/^(?:focusinfocus|focusoutblur)$/,Da=/^([^.]*)(?:\.(.+)|)$/;_.event={global:{},add:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,n,o,p,q=ra.get(a);if(q)for(c.handler&&(f=c,c=f.handler,e=f.selector),c.guid||(c.guid=_.guid++),(i=q.events)||(i=q.events={}),(g=q.handle)||(g=q.handle=function(b){return typeof _!==za&&_.event.triggered!==b.type?_.event.dispatch.apply(a,arguments):void 0}),b=(b||"").match(na)||[""],j=b.length;j--;)h=Da.exec(b[j])||[],n=p=h[1],o=(h[2]||"").split(".").sort(),n&&(l=_.event.special[n]||{},n=(e?l.delegateType:l.bindType)||n,l=_.event.special[n]||{},k=_.extend({type:n,origType:p,data:d,handler:c,guid:c.guid,selector:e,needsContext:e&&_.expr.match.needsContext.test(e),namespace:o.join(".")},f),(m=i[n])||(m=i[n]=[],m.delegateCount=0,l.setup&&l.setup.call(a,d,o,g)!==!1||a.addEventListener&&a.addEventListener(n,g,!1)),l.add&&(l.add.call(a,k),k.handler.guid||(k.handler.guid=c.guid)),e?m.splice(m.delegateCount++,0,k):m.push(k),_.event.global[n]=!0)},remove:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,n,o,p,q=ra.hasData(a)&&ra.get(a);if(q&&(i=q.events)){for(b=(b||"").match(na)||[""],j=b.length;j--;)if(h=Da.exec(b[j])||[],n=p=h[1],o=(h[2]||"").split(".").sort(),n){for(l=_.event.special[n]||{},n=(d?l.delegateType:l.bindType)||n,m=i[n]||[],h=h[2]&&new RegExp("(^|\\.)"+o.join("\\.(?:.*\\.|)")+"(\\.|$)"),g=f=m.length;f--;)k=m[f],!e&&p!==k.origType||c&&c.guid!==k.guid||h&&!h.test(k.namespace)||d&&d!==k.selector&&("**"!==d||!k.selector)||(m.splice(f,1),k.selector&&m.delegateCount--,l.remove&&l.remove.call(a,k));g&&!m.length&&(l.teardown&&l.teardown.call(a,o,q.handle)!==!1||_.removeEvent(a,n,q.handle),delete i[n])}else for(n in i)_.event.remove(a,n+b[j],c,d,!0);_.isEmptyObject(i)&&(delete q.handle,ra.remove(a,"events"))}},trigger:function(b,c,d,e){var f,g,h,i,j,k,l,m=[d||Z],n=X.call(b,"type")?b.type:b,o=X.call(b,"namespace")?b.namespace.split("."):[];if(g=h=d=d||Z,3!==d.nodeType&&8!==d.nodeType&&!Ca.test(n+_.event.triggered)&&(n.indexOf(".")>=0&&(o=n.split("."),n=o.shift(),o.sort()),j=n.indexOf(":")<0&&"on"+n,b=b[_.expando]?b:new _.Event(n,"object"==typeof b&&b),b.isTrigger=e?2:3,b.namespace=o.join("."),b.namespace_re=b.namespace?new RegExp("(^|\\.)"+o.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,b.result=void 0,b.target||(b.target=d),
+c=null==c?[b]:_.makeArray(c,[b]),l=_.event.special[n]||{},e||!l.trigger||l.trigger.apply(d,c)!==!1)){if(!e&&!l.noBubble&&!_.isWindow(d)){for(i=l.delegateType||n,Ca.test(i+n)||(g=g.parentNode);g;g=g.parentNode)m.push(g),h=g;h===(d.ownerDocument||Z)&&m.push(h.defaultView||h.parentWindow||a)}for(f=0;(g=m[f++])&&!b.isPropagationStopped();)b.type=f>1?i:l.bindType||n,k=(ra.get(g,"events")||{})[b.type]&&ra.get(g,"handle"),k&&k.apply(g,c),k=j&&g[j],k&&k.apply&&_.acceptData(g)&&(b.result=k.apply(g,c),b.result===!1&&b.preventDefault());return b.type=n,e||b.isDefaultPrevented()||l._default&&l._default.apply(m.pop(),c)!==!1||!_.acceptData(d)||j&&_.isFunction(d[n])&&!_.isWindow(d)&&(h=d[j],h&&(d[j]=null),_.event.triggered=n,d[n](),_.event.triggered=void 0,h&&(d[j]=h)),b.result}},dispatch:function(a){a=_.event.fix(a);var b,c,d,e,f,g=[],h=R.call(arguments),i=(ra.get(this,"events")||{})[a.type]||[],j=_.event.special[a.type]||{};if(h[0]=a,a.delegateTarget=this,!j.preDispatch||j.preDispatch.call(this,a)!==!1){for(g=_.event.handlers.call(this,a,i),b=0;(e=g[b++])&&!a.isPropagationStopped();)for(a.currentTarget=e.elem,c=0;(f=e.handlers[c++])&&!a.isImmediatePropagationStopped();)(!a.namespace_re||a.namespace_re.test(f.namespace))&&(a.handleObj=f,a.data=f.data,d=((_.event.special[f.origType]||{}).handle||f.handler).apply(e.elem,h),void 0!==d&&(a.result=d)===!1&&(a.preventDefault(),a.stopPropagation()));return j.postDispatch&&j.postDispatch.call(this,a),a.result}},handlers:function(a,b){var c,d,e,f,g=[],h=b.delegateCount,i=a.target;if(h&&i.nodeType&&(!a.button||"click"!==a.type))for(;i!==this;i=i.parentNode||this)if(i.disabled!==!0||"click"!==a.type){for(d=[],c=0;h>c;c++)f=b[c],e=f.selector+" ",void 0===d[e]&&(d[e]=f.needsContext?_(e,this).index(i)>=0:_.find(e,this,null,[i]).length),d[e]&&d.push(f);d.length&&g.push({elem:i,handlers:d})}return h<b.length&&g.push({elem:this,handlers:b.slice(h)}),g},props:"altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "),fixHooks:{},keyHooks:{props:"char charCode key keyCode".split(" "),filter:function(a,b){return null==a.which&&(a.which=null!=b.charCode?b.charCode:b.keyCode),a}},mouseHooks:{props:"button buttons clientX clientY offsetX offsetY pageX pageY screenX screenY toElement".split(" "),filter:function(a,b){var c,d,e,f=b.button;return null==a.pageX&&null!=b.clientX&&(c=a.target.ownerDocument||Z,d=c.documentElement,e=c.body,a.pageX=b.clientX+(d&&d.scrollLeft||e&&e.scrollLeft||0)-(d&&d.clientLeft||e&&e.clientLeft||0),a.pageY=b.clientY+(d&&d.scrollTop||e&&e.scrollTop||0)-(d&&d.clientTop||e&&e.clientTop||0)),a.which||void 0===f||(a.which=1&f?1:2&f?3:4&f?2:0),a}},fix:function(a){if(a[_.expando])return a;var b,c,d,e=a.type,f=a,g=this.fixHooks[e];for(g||(this.fixHooks[e]=g=Ba.test(e)?this.mouseHooks:Aa.test(e)?this.keyHooks:{}),d=g.props?this.props.concat(g.props):this.props,a=new _.Event(f),b=d.length;b--;)c=d[b],a[c]=f[c];return a.target||(a.target=Z),3===a.target.nodeType&&(a.target=a.target.parentNode),g.filter?g.filter(a,f):a},special:{load:{noBubble:!0},focus:{trigger:function(){return this!==l()&&this.focus?(this.focus(),!1):void 0},delegateType:"focusin"},blur:{trigger:function(){return this===l()&&this.blur?(this.blur(),!1):void 0},delegateType:"focusout"},click:{trigger:function(){return"checkbox"===this.type&&this.click&&_.nodeName(this,"input")?(this.click(),!1):void 0},_default:function(a){return _.nodeName(a.target,"a")}},beforeunload:{postDispatch:function(a){void 0!==a.result&&a.originalEvent&&(a.originalEvent.returnValue=a.result)}}},simulate:function(a,b,c,d){var e=_.extend(new _.Event,c,{type:a,isSimulated:!0,originalEvent:{}});d?_.event.trigger(e,null,b):_.event.dispatch.call(b,e),e.isDefaultPrevented()&&c.preventDefault()}},_.removeEvent=function(a,b,c){a.removeEventListener&&a.removeEventListener(b,c,!1)},_.Event=function(a,b){return this instanceof _.Event?(a&&a.type?(this.originalEvent=a,this.type=a.type,this.isDefaultPrevented=a.defaultPrevented||void 0===a.defaultPrevented&&a.returnValue===!1?j:k):this.type=a,b&&_.extend(this,b),this.timeStamp=a&&a.timeStamp||_.now(),void(this[_.expando]=!0)):new _.Event(a,b)},_.Event.prototype={isDefaultPrevented:k,isPropagationStopped:k,isImmediatePropagationStopped:k,preventDefault:function(){var a=this.originalEvent;this.isDefaultPrevented=j,a&&a.preventDefault&&a.preventDefault()},stopPropagation:function(){var a=this.originalEvent;this.isPropagationStopped=j,a&&a.stopPropagation&&a.stopPropagation()},stopImmediatePropagation:function(){var a=this.originalEvent;this.isImmediatePropagationStopped=j,a&&a.stopImmediatePropagation&&a.stopImmediatePropagation(),this.stopPropagation()}},_.each({mouseenter:"mouseover",mouseleave:"mouseout",pointerenter:"pointerover",pointerleave:"pointerout"},function(a,b){_.event.special[a]={delegateType:b,bindType:b,handle:function(a){var c,d=this,e=a.relatedTarget,f=a.handleObj;return(!e||e!==d&&!_.contains(d,e))&&(a.type=f.origType,c=f.handler.apply(this,arguments),a.type=b),c}}}),Y.focusinBubbles||_.each({focus:"focusin",blur:"focusout"},function(a,b){var c=function(a){_.event.simulate(b,a.target,_.event.fix(a),!0)};_.event.special[b]={setup:function(){var d=this.ownerDocument||this,e=ra.access(d,b);e||d.addEventListener(a,c,!0),ra.access(d,b,(e||0)+1)},teardown:function(){var d=this.ownerDocument||this,e=ra.access(d,b)-1;e?ra.access(d,b,e):(d.removeEventListener(a,c,!0),ra.remove(d,b))}}}),_.fn.extend({on:function(a,b,c,d,e){var f,g;if("object"==typeof a){"string"!=typeof b&&(c=c||b,b=void 0);for(g in a)this.on(g,b,c,a[g],e);return this}if(null==c&&null==d?(d=b,c=b=void 0):null==d&&("string"==typeof b?(d=c,c=void 0):(d=c,c=b,b=void 0)),d===!1)d=k;else if(!d)return this;return 1===e&&(f=d,d=function(a){return _().off(a),f.apply(this,arguments)},d.guid=f.guid||(f.guid=_.guid++)),this.each(function(){_.event.add(this,a,d,c,b)})},one:function(a,b,c,d){return this.on(a,b,c,d,1)},off:function(a,b,c){var d,e;if(a&&a.preventDefault&&a.handleObj)return d=a.handleObj,_(a.delegateTarget).off(d.namespace?d.origType+"."+d.namespace:d.origType,d.selector,d.handler),this;if("object"==typeof a){for(e in a)this.off(e,b,a[e]);return this}return(b===!1||"function"==typeof b)&&(c=b,b=void 0),c===!1&&(c=k),this.each(function(){_.event.remove(this,a,c,b)})},trigger:function(a,b){return this.each(function(){_.event.trigger(a,b,this)})},triggerHandler:function(a,b){var c=this[0];return c?_.event.trigger(a,b,c,!0):void 0}});var Ea=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,Fa=/<([\w:]+)/,Ga=/<|&#?\w+;/,Ha=/<(?:script|style|link)/i,Ia=/checked\s*(?:[^=]|=\s*.checked.)/i,Ja=/^$|\/(?:java|ecma)script/i,Ka=/^true\/(.*)/,La=/^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g,Ma={option:[1,"<select multiple='multiple'>","</select>"],thead:[1,"<table>","</table>"],col:[2,"<table><colgroup>","</colgroup></table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],_default:[0,"",""]};Ma.optgroup=Ma.option,Ma.tbody=Ma.tfoot=Ma.colgroup=Ma.caption=Ma.thead,Ma.th=Ma.td,_.extend({clone:function(a,b,c){var d,e,f,g,h=a.cloneNode(!0),i=_.contains(a.ownerDocument,a);if(!(Y.noCloneChecked||1!==a.nodeType&&11!==a.nodeType||_.isXMLDoc(a)))for(g=r(h),f=r(a),d=0,e=f.length;e>d;d++)s(f[d],g[d]);if(b)if(c)for(f=f||r(a),g=g||r(h),d=0,e=f.length;e>d;d++)q(f[d],g[d]);else q(a,h);return g=r(h,"script"),g.length>0&&p(g,!i&&r(a,"script")),h},buildFragment:function(a,b,c,d){for(var e,f,g,h,i,j,k=b.createDocumentFragment(),l=[],m=0,n=a.length;n>m;m++)if(e=a[m],e||0===e)if("object"===_.type(e))_.merge(l,e.nodeType?[e]:e);else if(Ga.test(e)){for(f=f||k.appendChild(b.createElement("div")),g=(Fa.exec(e)||["",""])[1].toLowerCase(),h=Ma[g]||Ma._default,f.innerHTML=h[1]+e.replace(Ea,"<$1></$2>")+h[2],j=h[0];j--;)f=f.lastChild;_.merge(l,f.childNodes),f=k.firstChild,f.textContent=""}else l.push(b.createTextNode(e));for(k.textContent="",m=0;e=l[m++];)if((!d||-1===_.inArray(e,d))&&(i=_.contains(e.ownerDocument,e),f=r(k.appendChild(e),"script"),i&&p(f),c))for(j=0;e=f[j++];)Ja.test(e.type||"")&&c.push(e);return k},cleanData:function(a){for(var b,c,d,e,f=_.event.special,g=0;void 0!==(c=a[g]);g++){if(_.acceptData(c)&&(e=c[ra.expando],e&&(b=ra.cache[e]))){if(b.events)for(d in b.events)f[d]?_.event.remove(c,d):_.removeEvent(c,d,b.handle);ra.cache[e]&&delete ra.cache[e]}delete sa.cache[c[sa.expando]]}}}),_.fn.extend({text:function(a){return qa(this,function(a){return void 0===a?_.text(this):this.empty().each(function(){(1===this.nodeType||11===this.nodeType||9===this.nodeType)&&(this.textContent=a)})},null,a,arguments.length)},append:function(){return this.domManip(arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=m(this,a);b.appendChild(a)}})},prepend:function(){return this.domManip(arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=m(this,a);b.insertBefore(a,b.firstChild)}})},before:function(){return this.domManip(arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this)})},after:function(){return this.domManip(arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this.nextSibling)})},remove:function(a,b){for(var c,d=a?_.filter(a,this):this,e=0;null!=(c=d[e]);e++)b||1!==c.nodeType||_.cleanData(r(c)),c.parentNode&&(b&&_.contains(c.ownerDocument,c)&&p(r(c,"script")),c.parentNode.removeChild(c));return this},empty:function(){for(var a,b=0;null!=(a=this[b]);b++)1===a.nodeType&&(_.cleanData(r(a,!1)),a.textContent="");return this},clone:function(a,b){return a=null==a?!1:a,b=null==b?a:b,this.map(function(){return _.clone(this,a,b)})},html:function(a){return qa(this,function(a){var b=this[0]||{},c=0,d=this.length;if(void 0===a&&1===b.nodeType)return b.innerHTML;if("string"==typeof a&&!Ha.test(a)&&!Ma[(Fa.exec(a)||["",""])[1].toLowerCase()]){a=a.replace(Ea,"<$1></$2>");try{for(;d>c;c++)b=this[c]||{},1===b.nodeType&&(_.cleanData(r(b,!1)),b.innerHTML=a);b=0}catch(e){}}b&&this.empty().append(a)},null,a,arguments.length)},replaceWith:function(){var a=arguments[0];return this.domManip(arguments,function(b){a=this.parentNode,_.cleanData(r(this)),a&&a.replaceChild(b,this)}),a&&(a.length||a.nodeType)?this:this.remove()},detach:function(a){return this.remove(a,!0)},domManip:function(a,b){a=S.apply([],a);var c,d,e,f,g,h,i=0,j=this.length,k=this,l=j-1,m=a[0],p=_.isFunction(m);if(p||j>1&&"string"==typeof m&&!Y.checkClone&&Ia.test(m))return this.each(function(c){var d=k.eq(c);p&&(a[0]=m.call(this,c,d.html())),d.domManip(a,b)});if(j&&(c=_.buildFragment(a,this[0].ownerDocument,!1,this),d=c.firstChild,1===c.childNodes.length&&(c=d),d)){for(e=_.map(r(c,"script"),n),f=e.length;j>i;i++)g=c,i!==l&&(g=_.clone(g,!0,!0),f&&_.merge(e,r(g,"script"))),b.call(this[i],g,i);if(f)for(h=e[e.length-1].ownerDocument,_.map(e,o),i=0;f>i;i++)g=e[i],Ja.test(g.type||"")&&!ra.access(g,"globalEval")&&_.contains(h,g)&&(g.src?_._evalUrl&&_._evalUrl(g.src):_.globalEval(g.textContent.replace(La,"")))}return this}}),_.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){_.fn[a]=function(a){for(var c,d=[],e=_(a),f=e.length-1,g=0;f>=g;g++)c=g===f?this:this.clone(!0),_(e[g])[b](c),T.apply(d,c.get());return this.pushStack(d)}});var Na,Oa={},Pa=/^margin/,Qa=new RegExp("^("+va+")(?!px)[a-z%]+$","i"),Ra=function(b){return b.ownerDocument.defaultView.opener?b.ownerDocument.defaultView.getComputedStyle(b,null):a.getComputedStyle(b,null)};!function(){function b(){g.style.cssText="-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;display:block;margin-top:1%;top:1%;border:1px;padding:1px;width:4px;position:absolute",g.innerHTML="",e.appendChild(f);var b=a.getComputedStyle(g,null);c="1%"!==b.top,d="4px"===b.width,e.removeChild(f)}var c,d,e=Z.documentElement,f=Z.createElement("div"),g=Z.createElement("div");g.style&&(g.style.backgroundClip="content-box",g.cloneNode(!0).style.backgroundClip="",Y.clearCloneStyle="content-box"===g.style.backgroundClip,f.style.cssText="border:0;width:0;height:0;top:0;left:-9999px;margin-top:1px;position:absolute",f.appendChild(g),a.getComputedStyle&&_.extend(Y,{pixelPosition:function(){return b(),c},boxSizingReliable:function(){return null==d&&b(),d},reliableMarginRight:function(){var b,c=g.appendChild(Z.createElement("div"));return c.style.cssText=g.style.cssText="-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;display:block;margin:0;border:0;padding:0",c.style.marginRight=c.style.width="0",g.style.width="1px",e.appendChild(f),b=!parseFloat(a.getComputedStyle(c,null).marginRight),e.removeChild(f),g.removeChild(c),b}}))}(),_.swap=function(a,b,c,d){var e,f,g={};for(f in b)g[f]=a.style[f],a.style[f]=b[f];e=c.apply(a,d||[]);for(f in b)a.style[f]=g[f];return e};var Sa=/^(none|table(?!-c[ea]).+)/,Ta=new RegExp("^("+va+")(.*)$","i"),Ua=new RegExp("^([+-])=("+va+")","i"),Va={position:"absolute",visibility:"hidden",display:"block"},Wa={letterSpacing:"0",fontWeight:"400"},Xa=["Webkit","O","Moz","ms"];_.extend({cssHooks:{opacity:{get:function(a,b){if(b){var c=v(a,"opacity");return""===c?"1":c}}}},cssNumber:{columnCount:!0,fillOpacity:!0,flexGrow:!0,flexShrink:!0,fontWeight:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{"float":"cssFloat"},style:function(a,b,c,d){if(a&&3!==a.nodeType&&8!==a.nodeType&&a.style){var e,f,g,h=_.camelCase(b),i=a.style;return b=_.cssProps[h]||(_.cssProps[h]=x(i,h)),g=_.cssHooks[b]||_.cssHooks[h],void 0===c?g&&"get"in g&&void 0!==(e=g.get(a,!1,d))?e:i[b]:(f=typeof c,"string"===f&&(e=Ua.exec(c))&&(c=(e[1]+1)*e[2]+parseFloat(_.css(a,b)),f="number"),null!=c&&c===c&&("number"!==f||_.cssNumber[h]||(c+="px"),Y.clearCloneStyle||""!==c||0!==b.indexOf("background")||(i[b]="inherit"),g&&"set"in g&&void 0===(c=g.set(a,c,d))||(i[b]=c)),void 0)}},css:function(a,b,c,d){var e,f,g,h=_.camelCase(b);return b=_.cssProps[h]||(_.cssProps[h]=x(a.style,h)),g=_.cssHooks[b]||_.cssHooks[h],g&&"get"in g&&(e=g.get(a,!0,c)),void 0===e&&(e=v(a,b,d)),"normal"===e&&b in Wa&&(e=Wa[b]),""===c||c?(f=parseFloat(e),c===!0||_.isNumeric(f)?f||0:e):e}}),_.each(["height","width"],function(a,b){_.cssHooks[b]={get:function(a,c,d){return c?Sa.test(_.css(a,"display"))&&0===a.offsetWidth?_.swap(a,Va,function(){return A(a,b,d)}):A(a,b,d):void 0},set:function(a,c,d){var e=d&&Ra(a);return y(a,c,d?z(a,b,d,"border-box"===_.css(a,"boxSizing",!1,e),e):0)}}}),_.cssHooks.marginRight=w(Y.reliableMarginRight,function(a,b){return b?_.swap(a,{display:"inline-block"},v,[a,"marginRight"]):void 0}),_.each({margin:"",padding:"",border:"Width"},function(a,b){_.cssHooks[a+b]={expand:function(c){for(var d=0,e={},f="string"==typeof c?c.split(" "):[c];4>d;d++)e[a+wa[d]+b]=f[d]||f[d-2]||f[0];return e}},Pa.test(a)||(_.cssHooks[a+b].set=y)}),_.fn.extend({css:function(a,b){return qa(this,function(a,b,c){var d,e,f={},g=0;if(_.isArray(b)){for(d=Ra(a),e=b.length;e>g;g++)f[b[g]]=_.css(a,b[g],!1,d);return f}return void 0!==c?_.style(a,b,c):_.css(a,b)},a,b,arguments.length>1)},show:function(){return B(this,!0)},hide:function(){return B(this)},toggle:function(a){return"boolean"==typeof a?a?this.show():this.hide():this.each(function(){xa(this)?_(this).show():_(this).hide()})}}),_.Tween=C,C.prototype={constructor:C,init:function(a,b,c,d,e,f){this.elem=a,this.prop=c,this.easing=e||"swing",this.options=b,this.start=this.now=this.cur(),this.end=d,this.unit=f||(_.cssNumber[c]?"":"px")},cur:function(){var a=C.propHooks[this.prop];return a&&a.get?a.get(this):C.propHooks._default.get(this)},run:function(a){var b,c=C.propHooks[this.prop];return this.options.duration?this.pos=b=_.easing[this.easing](a,this.options.duration*a,0,1,this.options.duration):this.pos=b=a,this.now=(this.end-this.start)*b+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),c&&c.set?c.set(this):C.propHooks._default.set(this),this}},C.prototype.init.prototype=C.prototype,C.propHooks={_default:{get:function(a){var b;return null==a.elem[a.prop]||a.elem.style&&null!=a.elem.style[a.prop]?(b=_.css(a.elem,a.prop,""),b&&"auto"!==b?b:0):a.elem[a.prop]},set:function(a){_.fx.step[a.prop]?_.fx.step[a.prop](a):a.elem.style&&(null!=a.elem.style[_.cssProps[a.prop]]||_.cssHooks[a.prop])?_.style(a.elem,a.prop,a.now+a.unit):a.elem[a.prop]=a.now}}},C.propHooks.scrollTop=C.propHooks.scrollLeft={set:function(a){a.elem.nodeType&&a.elem.parentNode&&(a.elem[a.prop]=a.now)}},_.easing={linear:function(a){return a},swing:function(a){return.5-Math.cos(a*Math.PI)/2}},_.fx=C.prototype.init,_.fx.step={};var Ya,Za,$a=/^(?:toggle|show|hide)$/,_a=new RegExp("^(?:([+-])=|)("+va+")([a-z%]*)$","i"),ab=/queueHooks$/,bb=[G],cb={"*":[function(a,b){var c=this.createTween(a,b),d=c.cur(),e=_a.exec(b),f=e&&e[3]||(_.cssNumber[a]?"":"px"),g=(_.cssNumber[a]||"px"!==f&&+d)&&_a.exec(_.css(c.elem,a)),h=1,i=20;if(g&&g[3]!==f){f=f||g[3],e=e||[],g=+d||1;do h=h||".5",g/=h,_.style(c.elem,a,g+f);while(h!==(h=c.cur()/d)&&1!==h&&--i)}return e&&(g=c.start=+g||+d||0,c.unit=f,c.end=e[1]?g+(e[1]+1)*e[2]:+e[2]),c}]};_.Animation=_.extend(I,{tweener:function(a,b){_.isFunction(a)?(b=a,a=["*"]):a=a.split(" ");for(var c,d=0,e=a.length;e>d;d++)c=a[d],cb[c]=cb[c]||[],cb[c].unshift(b)},prefilter:function(a,b){b?bb.unshift(a):bb.push(a)}}),_.speed=function(a,b,c){var d=a&&"object"==typeof a?_.extend({},a):{complete:c||!c&&b||_.isFunction(a)&&a,duration:a,easing:c&&b||b&&!_.isFunction(b)&&b};return d.duration=_.fx.off?0:"number"==typeof d.duration?d.duration:d.duration in _.fx.speeds?_.fx.speeds[d.duration]:_.fx.speeds._default,(null==d.queue||d.queue===!0)&&(d.queue="fx"),d.old=d.complete,d.complete=function(){_.isFunction(d.old)&&d.old.call(this),d.queue&&_.dequeue(this,d.queue)},d},_.fn.extend({fadeTo:function(a,b,c,d){return this.filter(xa).css("opacity",0).show().end().animate({opacity:b},a,c,d)},animate:function(a,b,c,d){var e=_.isEmptyObject(a),f=_.speed(b,c,d),g=function(){var b=I(this,_.extend({},a),f);(e||ra.get(this,"finish"))&&b.stop(!0)};return g.finish=g,e||f.queue===!1?this.each(g):this.queue(f.queue,g)},stop:function(a,b,c){var d=function(a){var b=a.stop;delete a.stop,b(c)};return"string"!=typeof a&&(c=b,b=a,a=void 0),b&&a!==!1&&this.queue(a||"fx",[]),this.each(function(){var b=!0,e=null!=a&&a+"queueHooks",f=_.timers,g=ra.get(this);if(e)g[e]&&g[e].stop&&d(g[e]);else for(e in g)g[e]&&g[e].stop&&ab.test(e)&&d(g[e]);for(e=f.length;e--;)f[e].elem!==this||null!=a&&f[e].queue!==a||(f[e].anim.stop(c),b=!1,f.splice(e,1));(b||!c)&&_.dequeue(this,a)})},finish:function(a){return a!==!1&&(a=a||"fx"),this.each(function(){var b,c=ra.get(this),d=c[a+"queue"],e=c[a+"queueHooks"],f=_.timers,g=d?d.length:0;for(c.finish=!0,_.queue(this,a,[]),e&&e.stop&&e.stop.call(this,!0),b=f.length;b--;)f[b].elem===this&&f[b].queue===a&&(f[b].anim.stop(!0),f.splice(b,1));for(b=0;g>b;b++)d[b]&&d[b].finish&&d[b].finish.call(this);delete c.finish})}}),_.each(["toggle","show","hide"],function(a,b){var c=_.fn[b];_.fn[b]=function(a,d,e){return null==a||"boolean"==typeof a?c.apply(this,arguments):this.animate(E(b,!0),a,d,e)}}),_.each({slideDown:E("show"),slideUp:E("hide"),slideToggle:E("toggle"),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(a,b){_.fn[a]=function(a,c,d){return this.animate(b,a,c,d)}}),_.timers=[],_.fx.tick=function(){var a,b=0,c=_.timers;for(Ya=_.now();b<c.length;b++)a=c[b],a()||c[b]!==a||c.splice(b--,1);c.length||_.fx.stop(),Ya=void 0},_.fx.timer=function(a){_.timers.push(a),a()?_.fx.start():_.timers.pop()},_.fx.interval=13,_.fx.start=function(){Za||(Za=setInterval(_.fx.tick,_.fx.interval))},_.fx.stop=function(){clearInterval(Za),Za=null},_.fx.speeds={slow:600,fast:200,_default:400},_.fn.delay=function(a,b){return a=_.fx?_.fx.speeds[a]||a:a,b=b||"fx",this.queue(b,function(b,c){var d=setTimeout(b,a);c.stop=function(){clearTimeout(d)}})},function(){var a=Z.createElement("input"),b=Z.createElement("select"),c=b.appendChild(Z.createElement("option"));a.type="checkbox",Y.checkOn=""!==a.value,Y.optSelected=c.selected,b.disabled=!0,Y.optDisabled=!c.disabled,a=Z.createElement("input"),a.value="t",a.type="radio",Y.radioValue="t"===a.value}();var db,eb,fb=_.expr.attrHandle;_.fn.extend({attr:function(a,b){return qa(this,_.attr,a,b,arguments.length>1)},removeAttr:function(a){return this.each(function(){_.removeAttr(this,a)})}}),_.extend({attr:function(a,b,c){var d,e,f=a.nodeType;if(a&&3!==f&&8!==f&&2!==f)return typeof a.getAttribute===za?_.prop(a,b,c):(1===f&&_.isXMLDoc(a)||(b=b.toLowerCase(),d=_.attrHooks[b]||(_.expr.match.bool.test(b)?eb:db)),void 0===c?d&&"get"in d&&null!==(e=d.get(a,b))?e:(e=_.find.attr(a,b),null==e?void 0:e):null!==c?d&&"set"in d&&void 0!==(e=d.set(a,c,b))?e:(a.setAttribute(b,c+""),c):void _.removeAttr(a,b))},removeAttr:function(a,b){var c,d,e=0,f=b&&b.match(na);if(f&&1===a.nodeType)for(;c=f[e++];)d=_.propFix[c]||c,_.expr.match.bool.test(c)&&(a[d]=!1),a.removeAttribute(c)},attrHooks:{type:{set:function(a,b){if(!Y.radioValue&&"radio"===b&&_.nodeName(a,"input")){var c=a.value;return a.setAttribute("type",b),c&&(a.value=c),b}}}}}),eb={set:function(a,b,c){return b===!1?_.removeAttr(a,c):a.setAttribute(c,c),c}},_.each(_.expr.match.bool.source.match(/\w+/g),function(a,b){var c=fb[b]||_.find.attr;fb[b]=function(a,b,d){var e,f;return d||(f=fb[b],fb[b]=e,e=null!=c(a,b,d)?b.toLowerCase():null,fb[b]=f),e}});var gb=/^(?:input|select|textarea|button)$/i;_.fn.extend({prop:function(a,b){return qa(this,_.prop,a,b,arguments.length>1)},removeProp:function(a){return this.each(function(){delete this[_.propFix[a]||a]})}}),_.extend({propFix:{"for":"htmlFor","class":"className"},prop:function(a,b,c){var d,e,f,g=a.nodeType;if(a&&3!==g&&8!==g&&2!==g)return f=1!==g||!_.isXMLDoc(a),f&&(b=_.propFix[b]||b,e=_.propHooks[b]),void 0!==c?e&&"set"in e&&void 0!==(d=e.set(a,c,b))?d:a[b]=c:e&&"get"in e&&null!==(d=e.get(a,b))?d:a[b]},propHooks:{tabIndex:{get:function(a){return a.hasAttribute("tabindex")||gb.test(a.nodeName)||a.href?a.tabIndex:-1}}}}),Y.optSelected||(_.propHooks.selected={get:function(a){var b=a.parentNode;return b&&b.parentNode&&b.parentNode.selectedIndex,null}}),_.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){_.propFix[this.toLowerCase()]=this});var hb=/[\t\r\n\f]/g;_.fn.extend({addClass:function(a){var b,c,d,e,f,g,h="string"==typeof a&&a,i=0,j=this.length;if(_.isFunction(a))return this.each(function(b){_(this).addClass(a.call(this,b,this.className))});if(h)for(b=(a||"").match(na)||[];j>i;i++)if(c=this[i],d=1===c.nodeType&&(c.className?(" "+c.className+" ").replace(hb," "):" ")){for(f=0;e=b[f++];)d.indexOf(" "+e+" ")<0&&(d+=e+" ");g=_.trim(d),c.className!==g&&(c.className=g)}return this},removeClass:function(a){var b,c,d,e,f,g,h=0===arguments.length||"string"==typeof a&&a,i=0,j=this.length;if(_.isFunction(a))return this.each(function(b){_(this).removeClass(a.call(this,b,this.className))});if(h)for(b=(a||"").match(na)||[];j>i;i++)if(c=this[i],d=1===c.nodeType&&(c.className?(" "+c.className+" ").replace(hb," "):"")){for(f=0;e=b[f++];)for(;d.indexOf(" "+e+" ")>=0;)d=d.replace(" "+e+" "," ");g=a?_.trim(d):"",c.className!==g&&(c.className=g)}return this},toggleClass:function(a,b){var c=typeof a;return"boolean"==typeof b&&"string"===c?b?this.addClass(a):this.removeClass(a):_.isFunction(a)?this.each(function(c){_(this).toggleClass(a.call(this,c,this.className,b),b)}):this.each(function(){if("string"===c)for(var b,d=0,e=_(this),f=a.match(na)||[];b=f[d++];)e.hasClass(b)?e.removeClass(b):e.addClass(b);else(c===za||"boolean"===c)&&(this.className&&ra.set(this,"__className__",this.className),this.className=this.className||a===!1?"":ra.get(this,"__className__")||"")})},hasClass:function(a){for(var b=" "+a+" ",c=0,d=this.length;d>c;c++)if(1===this[c].nodeType&&(" "+this[c].className+" ").replace(hb," ").indexOf(b)>=0)return!0;return!1}});var ib=/\r/g;_.fn.extend({val:function(a){var b,c,d,e=this[0];{if(arguments.length)return d=_.isFunction(a),this.each(function(c){var e;1===this.nodeType&&(e=d?a.call(this,c,_(this).val()):a,null==e?e="":"number"==typeof e?e+="":_.isArray(e)&&(e=_.map(e,function(a){return null==a?"":a+""})),b=_.valHooks[this.type]||_.valHooks[this.nodeName.toLowerCase()],b&&"set"in b&&void 0!==b.set(this,e,"value")||(this.value=e))});if(e)return b=_.valHooks[e.type]||_.valHooks[e.nodeName.toLowerCase()],b&&"get"in b&&void 0!==(c=b.get(e,"value"))?c:(c=e.value,"string"==typeof c?c.replace(ib,""):null==c?"":c)}}}),_.extend({valHooks:{option:{get:function(a){var b=_.find.attr(a,"value");return null!=b?b:_.trim(_.text(a))}},select:{get:function(a){for(var b,c,d=a.options,e=a.selectedIndex,f="select-one"===a.type||0>e,g=f?null:[],h=f?e+1:d.length,i=0>e?h:f?e:0;h>i;i++)if(c=d[i],(c.selected||i===e)&&(Y.optDisabled?!c.disabled:null===c.getAttribute("disabled"))&&(!c.parentNode.disabled||!_.nodeName(c.parentNode,"optgroup"))){if(b=_(c).val(),f)return b;g.push(b)}return g},set:function(a,b){for(var c,d,e=a.options,f=_.makeArray(b),g=e.length;g--;)d=e[g],(d.selected=_.inArray(d.value,f)>=0)&&(c=!0);return c||(a.selectedIndex=-1),f}}}}),_.each(["radio","checkbox"],function(){_.valHooks[this]={set:function(a,b){return _.isArray(b)?a.checked=_.inArray(_(a).val(),b)>=0:void 0}},Y.checkOn||(_.valHooks[this].get=function(a){return null===a.getAttribute("value")?"on":a.value})}),_.each("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error contextmenu".split(" "),function(a,b){_.fn[b]=function(a,c){return arguments.length>0?this.on(b,null,a,c):this.trigger(b)}}),_.fn.extend({hover:function(a,b){return this.mouseenter(a).mouseleave(b||a)},bind:function(a,b,c){return this.on(a,null,b,c)},unbind:function(a,b){return this.off(a,null,b)},delegate:function(a,b,c,d){return this.on(b,a,c,d)},undelegate:function(a,b,c){return 1===arguments.length?this.off(a,"**"):this.off(b,a||"**",c)}});var jb=_.now(),kb=/\?/;_.parseJSON=function(a){return JSON.parse(a+"")},_.parseXML=function(a){var b,c;if(!a||"string"!=typeof a)return null;try{c=new DOMParser,b=c.parseFromString(a,"text/xml")}catch(d){b=void 0}return(!b||b.getElementsByTagName("parsererror").length)&&_.error("Invalid XML: "+a),b};var lb=/#.*$/,mb=/([?&])_=[^&]*/,nb=/^(.*?):[ \t]*([^\r\n]*)$/gm,ob=/^(?:about|app|app-storage|.+-extension|file|res|widget):$/,pb=/^(?:GET|HEAD)$/,qb=/^\/\//,rb=/^([\w.+-]+:)(?:\/\/(?:[^\/?#]*@|)([^\/?#:]*)(?::(\d+)|)|)/,sb={},tb={},ub="*/".concat("*"),vb=a.location.href,wb=rb.exec(vb.toLowerCase())||[];_.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:vb,type:"GET",isLocal:ob.test(wb[1]),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":ub,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":_.parseJSON,"text xml":_.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(a,b){return b?L(L(a,_.ajaxSettings),b):L(_.ajaxSettings,a)},ajaxPrefilter:J(sb),ajaxTransport:J(tb),ajax:function(a,b){function c(a,b,c,g){var i,k,r,s,u,w=b;2!==t&&(t=2,h&&clearTimeout(h),d=void 0,f=g||"",v.readyState=a>0?4:0,i=a>=200&&300>a||304===a,c&&(s=M(l,v,c)),s=N(l,s,v,i),i?(l.ifModified&&(u=v.getResponseHeader("Last-Modified"),u&&(_.lastModified[e]=u),u=v.getResponseHeader("etag"),u&&(_.etag[e]=u)),204===a||"HEAD"===l.type?w="nocontent":304===a?w="notmodified":(w=s.state,k=s.data,r=s.error,i=!r)):(r=w,(a||!w)&&(w="error",0>a&&(a=0))),v.status=a,v.statusText=(b||w)+"",i?o.resolveWith(m,[k,w,v]):o.rejectWith(m,[v,w,r]),v.statusCode(q),q=void 0,j&&n.trigger(i?"ajaxSuccess":"ajaxError",[v,l,i?k:r]),p.fireWith(m,[v,w]),j&&(n.trigger("ajaxComplete",[v,l]),--_.active||_.event.trigger("ajaxStop")))}"object"==typeof a&&(b=a,a=void 0),b=b||{};var d,e,f,g,h,i,j,k,l=_.ajaxSetup({},b),m=l.context||l,n=l.context&&(m.nodeType||m.jquery)?_(m):_.event,o=_.Deferred(),p=_.Callbacks("once memory"),q=l.statusCode||{},r={},s={},t=0,u="canceled",v={readyState:0,getResponseHeader:function(a){var b;if(2===t){if(!g)for(g={};b=nb.exec(f);)g[b[1].toLowerCase()]=b[2];b=g[a.toLowerCase()]}return null==b?null:b},getAllResponseHeaders:function(){return 2===t?f:null},setRequestHeader:function(a,b){var c=a.toLowerCase();return t||(a=s[c]=s[c]||a,r[a]=b),this},overrideMimeType:function(a){return t||(l.mimeType=a),this},statusCode:function(a){var b;if(a)if(2>t)for(b in a)q[b]=[q[b],a[b]];else v.always(a[v.status]);return this},abort:function(a){var b=a||u;return d&&d.abort(b),c(0,b),this}};if(o.promise(v).complete=p.add,v.success=v.done,v.error=v.fail,l.url=((a||l.url||vb)+"").replace(lb,"").replace(qb,wb[1]+"//"),l.type=b.method||b.type||l.method||l.type,l.dataTypes=_.trim(l.dataType||"*").toLowerCase().match(na)||[""],null==l.crossDomain&&(i=rb.exec(l.url.toLowerCase()),l.crossDomain=!(!i||i[1]===wb[1]&&i[2]===wb[2]&&(i[3]||("http:"===i[1]?"80":"443"))===(wb[3]||("http:"===wb[1]?"80":"443")))),l.data&&l.processData&&"string"!=typeof l.data&&(l.data=_.param(l.data,l.traditional)),K(sb,l,b,v),2===t)return v;j=_.event&&l.global,j&&0===_.active++&&_.event.trigger("ajaxStart"),l.type=l.type.toUpperCase(),l.hasContent=!pb.test(l.type),e=l.url,l.hasContent||(l.data&&(e=l.url+=(kb.test(e)?"&":"?")+l.data,delete l.data),l.cache===!1&&(l.url=mb.test(e)?e.replace(mb,"$1_="+jb++):e+(kb.test(e)?"&":"?")+"_="+jb++)),l.ifModified&&(_.lastModified[e]&&v.setRequestHeader("If-Modified-Since",_.lastModified[e]),_.etag[e]&&v.setRequestHeader("If-None-Match",_.etag[e])),(l.data&&l.hasContent&&l.contentType!==!1||b.contentType)&&v.setRequestHeader("Content-Type",l.contentType),v.setRequestHeader("Accept",l.dataTypes[0]&&l.accepts[l.dataTypes[0]]?l.accepts[l.dataTypes[0]]+("*"!==l.dataTypes[0]?", "+ub+"; q=0.01":""):l.accepts["*"]);for(k in l.headers)v.setRequestHeader(k,l.headers[k]);if(l.beforeSend&&(l.beforeSend.call(m,v,l)===!1||2===t))return v.abort();u="abort";for(k in{success:1,error:1,complete:1})v[k](l[k]);if(d=K(tb,l,b,v)){v.readyState=1,j&&n.trigger("ajaxSend",[v,l]),l.async&&l.timeout>0&&(h=setTimeout(function(){v.abort("timeout")},l.timeout));try{t=1,d.send(r,c)}catch(w){if(!(2>t))throw w;c(-1,w)}}else c(-1,"No Transport");return v},getJSON:function(a,b,c){return _.get(a,b,c,"json")},getScript:function(a,b){return _.get(a,void 0,b,"script")}}),_.each(["get","post"],function(a,b){_[b]=function(a,c,d,e){return _.isFunction(c)&&(e=e||d,d=c,c=void 0),_.ajax({url:a,type:b,dataType:e,data:c,success:d})}}),_._evalUrl=function(a){return _.ajax({url:a,type:"GET",dataType:"script",async:!1,global:!1,"throws":!0})},_.fn.extend({wrapAll:function(a){var b;return _.isFunction(a)?this.each(function(b){_(this).wrapAll(a.call(this,b))}):(this[0]&&(b=_(a,this[0].ownerDocument).eq(0).clone(!0),this[0].parentNode&&b.insertBefore(this[0]),b.map(function(){for(var a=this;a.firstElementChild;)a=a.firstElementChild;return a}).append(this)),this)},wrapInner:function(a){return _.isFunction(a)?this.each(function(b){_(this).wrapInner(a.call(this,b))}):this.each(function(){var b=_(this),c=b.contents();c.length?c.wrapAll(a):b.append(a)})},wrap:function(a){var b=_.isFunction(a);return this.each(function(c){_(this).wrapAll(b?a.call(this,c):a)})},unwrap:function(){return this.parent().each(function(){_.nodeName(this,"body")||_(this).replaceWith(this.childNodes)}).end()}}),_.expr.filters.hidden=function(a){return a.offsetWidth<=0&&a.offsetHeight<=0},_.expr.filters.visible=function(a){return!_.expr.filters.hidden(a)};var xb=/%20/g,yb=/\[\]$/,zb=/\r?\n/g,Ab=/^(?:submit|button|image|reset|file)$/i,Bb=/^(?:input|select|textarea|keygen)/i;_.param=function(a,b){var c,d=[],e=function(a,b){b=_.isFunction(b)?b():null==b?"":b,
+d[d.length]=encodeURIComponent(a)+"="+encodeURIComponent(b)};if(void 0===b&&(b=_.ajaxSettings&&_.ajaxSettings.traditional),_.isArray(a)||a.jquery&&!_.isPlainObject(a))_.each(a,function(){e(this.name,this.value)});else for(c in a)O(c,a[c],b,e);return d.join("&").replace(xb,"+")},_.fn.extend({serialize:function(){return _.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var a=_.prop(this,"elements");return a?_.makeArray(a):this}).filter(function(){var a=this.type;return this.name&&!_(this).is(":disabled")&&Bb.test(this.nodeName)&&!Ab.test(a)&&(this.checked||!ya.test(a))}).map(function(a,b){var c=_(this).val();return null==c?null:_.isArray(c)?_.map(c,function(a){return{name:b.name,value:a.replace(zb,"\r\n")}}):{name:b.name,value:c.replace(zb,"\r\n")}}).get()}}),_.ajaxSettings.xhr=function(){try{return new XMLHttpRequest}catch(a){}};var Cb=0,Db={},Eb={0:200,1223:204},Fb=_.ajaxSettings.xhr();a.attachEvent&&a.attachEvent("onunload",function(){for(var a in Db)Db[a]()}),Y.cors=!!Fb&&"withCredentials"in Fb,Y.ajax=Fb=!!Fb,_.ajaxTransport(function(a){var b;return Y.cors||Fb&&!a.crossDomain?{send:function(c,d){var e,f=a.xhr(),g=++Cb;if(f.open(a.type,a.url,a.async,a.username,a.password),a.xhrFields)for(e in a.xhrFields)f[e]=a.xhrFields[e];a.mimeType&&f.overrideMimeType&&f.overrideMimeType(a.mimeType),a.crossDomain||c["X-Requested-With"]||(c["X-Requested-With"]="XMLHttpRequest");for(e in c)f.setRequestHeader(e,c[e]);b=function(a){return function(){b&&(delete Db[g],b=f.onload=f.onerror=null,"abort"===a?f.abort():"error"===a?d(f.status,f.statusText):d(Eb[f.status]||f.status,f.statusText,"string"==typeof f.responseText?{text:f.responseText}:void 0,f.getAllResponseHeaders()))}},f.onload=b(),f.onerror=b("error"),b=Db[g]=b("abort");try{f.send(a.hasContent&&a.data||null)}catch(h){if(b)throw h}},abort:function(){b&&b()}}:void 0}),_.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/(?:java|ecma)script/},converters:{"text script":function(a){return _.globalEval(a),a}}}),_.ajaxPrefilter("script",function(a){void 0===a.cache&&(a.cache=!1),a.crossDomain&&(a.type="GET")}),_.ajaxTransport("script",function(a){if(a.crossDomain){var b,c;return{send:function(d,e){b=_("<script>").prop({async:!0,charset:a.scriptCharset,src:a.url}).on("load error",c=function(a){b.remove(),c=null,a&&e("error"===a.type?404:200,a.type)}),Z.head.appendChild(b[0])},abort:function(){c&&c()}}}});var Gb=[],Hb=/(=)\?(?=&|$)|\?\?/;_.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var a=Gb.pop()||_.expando+"_"+jb++;return this[a]=!0,a}}),_.ajaxPrefilter("json jsonp",function(b,c,d){var e,f,g,h=b.jsonp!==!1&&(Hb.test(b.url)?"url":"string"==typeof b.data&&!(b.contentType||"").indexOf("application/x-www-form-urlencoded")&&Hb.test(b.data)&&"data");return h||"jsonp"===b.dataTypes[0]?(e=b.jsonpCallback=_.isFunction(b.jsonpCallback)?b.jsonpCallback():b.jsonpCallback,h?b[h]=b[h].replace(Hb,"$1"+e):b.jsonp!==!1&&(b.url+=(kb.test(b.url)?"&":"?")+b.jsonp+"="+e),b.converters["script json"]=function(){return g||_.error(e+" was not called"),g[0]},b.dataTypes[0]="json",f=a[e],a[e]=function(){g=arguments},d.always(function(){a[e]=f,b[e]&&(b.jsonpCallback=c.jsonpCallback,Gb.push(e)),g&&_.isFunction(f)&&f(g[0]),g=f=void 0}),"script"):void 0}),_.parseHTML=function(a,b,c){if(!a||"string"!=typeof a)return null;"boolean"==typeof b&&(c=b,b=!1),b=b||Z;var d=ga.exec(a),e=!c&&[];return d?[b.createElement(d[1])]:(d=_.buildFragment([a],b,e),e&&e.length&&_(e).remove(),_.merge([],d.childNodes))};var Ib=_.fn.load;_.fn.load=function(a,b,c){if("string"!=typeof a&&Ib)return Ib.apply(this,arguments);var d,e,f,g=this,h=a.indexOf(" ");return h>=0&&(d=_.trim(a.slice(h)),a=a.slice(0,h)),_.isFunction(b)?(c=b,b=void 0):b&&"object"==typeof b&&(e="POST"),g.length>0&&_.ajax({url:a,type:e,dataType:"html",data:b}).done(function(a){f=arguments,g.html(d?_("<div>").append(_.parseHTML(a)).find(d):a)}).complete(c&&function(a,b){g.each(c,f||[a.responseText,b,a])}),this},_.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(a,b){_.fn[b]=function(a){return this.on(b,a)}}),_.expr.filters.animated=function(a){return _.grep(_.timers,function(b){return a===b.elem}).length};var Jb=a.document.documentElement;_.offset={setOffset:function(a,b,c){var d,e,f,g,h,i,j,k=_.css(a,"position"),l=_(a),m={};"static"===k&&(a.style.position="relative"),h=l.offset(),f=_.css(a,"top"),i=_.css(a,"left"),j=("absolute"===k||"fixed"===k)&&(f+i).indexOf("auto")>-1,j?(d=l.position(),g=d.top,e=d.left):(g=parseFloat(f)||0,e=parseFloat(i)||0),_.isFunction(b)&&(b=b.call(a,c,h)),null!=b.top&&(m.top=b.top-h.top+g),null!=b.left&&(m.left=b.left-h.left+e),"using"in b?b.using.call(a,m):l.css(m)}},_.fn.extend({offset:function(a){if(arguments.length)return void 0===a?this:this.each(function(b){_.offset.setOffset(this,a,b)});var b,c,d=this[0],e={top:0,left:0},f=d&&d.ownerDocument;if(f)return b=f.documentElement,_.contains(b,d)?(typeof d.getBoundingClientRect!==za&&(e=d.getBoundingClientRect()),c=P(f),{top:e.top+c.pageYOffset-b.clientTop,left:e.left+c.pageXOffset-b.clientLeft}):e},position:function(){if(this[0]){var a,b,c=this[0],d={top:0,left:0};return"fixed"===_.css(c,"position")?b=c.getBoundingClientRect():(a=this.offsetParent(),b=this.offset(),_.nodeName(a[0],"html")||(d=a.offset()),d.top+=_.css(a[0],"borderTopWidth",!0),d.left+=_.css(a[0],"borderLeftWidth",!0)),{top:b.top-d.top-_.css(c,"marginTop",!0),left:b.left-d.left-_.css(c,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){for(var a=this.offsetParent||Jb;a&&!_.nodeName(a,"html")&&"static"===_.css(a,"position");)a=a.offsetParent;return a||Jb})}}),_.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(b,c){var d="pageYOffset"===c;_.fn[b]=function(e){return qa(this,function(b,e,f){var g=P(b);return void 0===f?g?g[c]:b[e]:void(g?g.scrollTo(d?a.pageXOffset:f,d?f:a.pageYOffset):b[e]=f)},b,e,arguments.length,null)}}),_.each(["top","left"],function(a,b){_.cssHooks[b]=w(Y.pixelPosition,function(a,c){return c?(c=v(a,b),Qa.test(c)?_(a).position()[b]+"px":c):void 0})}),_.each({Height:"height",Width:"width"},function(a,b){_.each({padding:"inner"+a,content:b,"":"outer"+a},function(c,d){_.fn[d]=function(d,e){var f=arguments.length&&(c||"boolean"!=typeof d),g=c||(d===!0||e===!0?"margin":"border");return qa(this,function(b,c,d){var e;return _.isWindow(b)?b.document.documentElement["client"+a]:9===b.nodeType?(e=b.documentElement,Math.max(b.body["scroll"+a],e["scroll"+a],b.body["offset"+a],e["offset"+a],e["client"+a])):void 0===d?_.css(b,c,g):_.style(b,c,d,g)},b,f?d:void 0,f,null)}})}),_.fn.size=function(){return this.length},_.fn.andSelf=_.fn.addBack,"function"==typeof define&&define.amd&&define("jquery",[],function(){return _});var Kb=a.jQuery,Lb=a.$;return _.noConflict=function(b){return a.$===_&&(a.$=Lb),b&&a.jQuery===_&&(a.jQuery=Kb),_},typeof b===za&&(a.jQuery=a.$=_),_});
\ No newline at end of file
--- /dev/null
+/*!
+ * Modernizr v2.8.3
+ * www.modernizr.com
+ *
+ * Copyright (c) Faruk Ates, Paul Irish, Alex Sexton
+ * Available under the BSD and MIT licenses: www.modernizr.com/license/
+ */
+window.Modernizr=function(a,b,c){function d(a){t.cssText=a}function e(a,b){return d(x.join(a+";")+(b||""))}function f(a,b){return typeof a===b}function g(a,b){return!!~(""+a).indexOf(b)}function h(a,b){for(var d in a){var e=a[d];if(!g(e,"-")&&t[e]!==c)return"pfx"==b?e:!0}return!1}function i(a,b,d){for(var e in a){var g=b[a[e]];if(g!==c)return d===!1?a[e]:f(g,"function")?g.bind(d||b):g}return!1}function j(a,b,c){var d=a.charAt(0).toUpperCase()+a.slice(1),e=(a+" "+z.join(d+" ")+d).split(" ");return f(b,"string")||f(b,"undefined")?h(e,b):(e=(a+" "+A.join(d+" ")+d).split(" "),i(e,b,c))}function k(){o.input=function(c){for(var d=0,e=c.length;e>d;d++)E[c[d]]=!!(c[d]in u);return E.list&&(E.list=!(!b.createElement("datalist")||!a.HTMLDataListElement)),E}("autocomplete autofocus list placeholder max min multiple pattern required step".split(" ")),o.inputtypes=function(a){for(var d,e,f,g=0,h=a.length;h>g;g++)u.setAttribute("type",e=a[g]),d="text"!==u.type,d&&(u.value=v,u.style.cssText="position:absolute;visibility:hidden;",/^range$/.test(e)&&u.style.WebkitAppearance!==c?(q.appendChild(u),f=b.defaultView,d=f.getComputedStyle&&"textfield"!==f.getComputedStyle(u,null).WebkitAppearance&&0!==u.offsetHeight,q.removeChild(u)):/^(search|tel)$/.test(e)||(d=/^(url|email)$/.test(e)?u.checkValidity&&u.checkValidity()===!1:u.value!=v)),D[a[g]]=!!d;return D}("search tel url email datetime date month week time datetime-local number range color".split(" "))}var l,m,n="2.8.3",o={},p=!0,q=b.documentElement,r="modernizr",s=b.createElement(r),t=s.style,u=b.createElement("input"),v=":)",w={}.toString,x=" -webkit- -moz- -o- -ms- ".split(" "),y="Webkit Moz O ms",z=y.split(" "),A=y.toLowerCase().split(" "),B={svg:"http://www.w3.org/2000/svg"},C={},D={},E={},F=[],G=F.slice,H=function(a,c,d,e){var f,g,h,i,j=b.createElement("div"),k=b.body,l=k||b.createElement("body");if(parseInt(d,10))for(;d--;)h=b.createElement("div"),h.id=e?e[d]:r+(d+1),j.appendChild(h);return f=["­",'<style id="s',r,'">',a,"</style>"].join(""),j.id=r,(k?j:l).innerHTML+=f,l.appendChild(j),k||(l.style.background="",l.style.overflow="hidden",i=q.style.overflow,q.style.overflow="hidden",q.appendChild(l)),g=c(j,a),k?j.parentNode.removeChild(j):(l.parentNode.removeChild(l),q.style.overflow=i),!!g},I=function(b){var c=a.matchMedia||a.msMatchMedia;if(c)return c(b)&&c(b).matches||!1;var d;return H("@media "+b+" { #"+r+" { position: absolute; } }",function(b){d="absolute"==(a.getComputedStyle?getComputedStyle(b,null):b.currentStyle).position}),d},J=function(){function a(a,e){e=e||b.createElement(d[a]||"div"),a="on"+a;var g=a in e;return g||(e.setAttribute||(e=b.createElement("div")),e.setAttribute&&e.removeAttribute&&(e.setAttribute(a,""),g=f(e[a],"function"),f(e[a],"undefined")||(e[a]=c),e.removeAttribute(a))),e=null,g}var d={select:"input",change:"input",submit:"form",reset:"form",error:"img",load:"img",abort:"img"};return a}(),K={}.hasOwnProperty;m=f(K,"undefined")||f(K.call,"undefined")?function(a,b){return b in a&&f(a.constructor.prototype[b],"undefined")}:function(a,b){return K.call(a,b)},Function.prototype.bind||(Function.prototype.bind=function(a){var b=this;if("function"!=typeof b)throw new TypeError;var c=G.call(arguments,1),d=function(){if(this instanceof d){var e=function(){};e.prototype=b.prototype;var f=new e,g=b.apply(f,c.concat(G.call(arguments)));return Object(g)===g?g:f}return b.apply(a,c.concat(G.call(arguments)))};return d}),C.flexbox=function(){return j("flexWrap")},C.flexboxlegacy=function(){return j("boxDirection")},C.canvas=function(){var a=b.createElement("canvas");return!(!a.getContext||!a.getContext("2d"))},C.canvastext=function(){return!(!o.canvas||!f(b.createElement("canvas").getContext("2d").fillText,"function"))},C.webgl=function(){return!!a.WebGLRenderingContext},C.touch=function(){var c;return"ontouchstart"in a||a.DocumentTouch&&b instanceof DocumentTouch?c=!0:H(["@media (",x.join("touch-enabled),("),r,")","{#modernizr{top:9px;position:absolute}}"].join(""),function(a){c=9===a.offsetTop}),c},C.geolocation=function(){return"geolocation"in navigator},C.postmessage=function(){return!!a.postMessage},C.websqldatabase=function(){return!!a.openDatabase},C.indexedDB=function(){return!!j("indexedDB",a)},C.hashchange=function(){return J("hashchange",a)&&(b.documentMode===c||b.documentMode>7)},C.history=function(){return!(!a.history||!history.pushState)},C.draganddrop=function(){var a=b.createElement("div");return"draggable"in a||"ondragstart"in a&&"ondrop"in a},C.websockets=function(){return"WebSocket"in a||"MozWebSocket"in a},C.rgba=function(){return d("background-color:rgba(150,255,150,.5)"),g(t.backgroundColor,"rgba")},C.hsla=function(){return d("background-color:hsla(120,40%,100%,.5)"),g(t.backgroundColor,"rgba")||g(t.backgroundColor,"hsla")},C.multiplebgs=function(){return d("background:url(https://),url(https://),red url(https://)"),/(url\s*\(.*?){3}/.test(t.background)},C.backgroundsize=function(){return j("backgroundSize")},C.borderimage=function(){return j("borderImage")},C.borderradius=function(){return j("borderRadius")},C.boxshadow=function(){return j("boxShadow")},C.textshadow=function(){return""===b.createElement("div").style.textShadow},C.opacity=function(){return e("opacity:.55"),/^0.55$/.test(t.opacity)},C.cssanimations=function(){return j("animationName")},C.csscolumns=function(){return j("columnCount")},C.cssgradients=function(){var a="background-image:",b="gradient(linear,left top,right bottom,from(#9f9),to(white));",c="linear-gradient(left top,#9f9, white);";return d((a+"-webkit- ".split(" ").join(b+a)+x.join(c+a)).slice(0,-a.length)),g(t.backgroundImage,"gradient")},C.cssreflections=function(){return j("boxReflect")},C.csstransforms=function(){return!!j("transform")},C.csstransforms3d=function(){var a=!!j("perspective");return a&&"webkitPerspective"in q.style&&H("@media (transform-3d),(-webkit-transform-3d){#modernizr{left:9px;position:absolute;height:3px;}}",function(b,c){a=9===b.offsetLeft&&3===b.offsetHeight}),a},C.csstransitions=function(){return j("transition")},C.fontface=function(){var a;return H('@font-face {font-family:"font";src:url("https://")}',function(c,d){var e=b.getElementById("smodernizr"),f=e.sheet||e.styleSheet,g=f?f.cssRules&&f.cssRules[0]?f.cssRules[0].cssText:f.cssText||"":"";a=/src/i.test(g)&&0===g.indexOf(d.split(" ")[0])}),a},C.generatedcontent=function(){var a;return H(["#",r,"{font:0/0 a}#",r,':after{content:"',v,'";visibility:hidden;font:3px/1 a}'].join(""),function(b){a=b.offsetHeight>=3}),a},C.video=function(){var a=b.createElement("video"),c=!1;try{(c=!!a.canPlayType)&&(c=new Boolean(c),c.ogg=a.canPlayType('video/ogg; codecs="theora"').replace(/^no$/,""),c.h264=a.canPlayType('video/mp4; codecs="avc1.42E01E"').replace(/^no$/,""),c.webm=a.canPlayType('video/webm; codecs="vp8, vorbis"').replace(/^no$/,""))}catch(d){}return c},C.audio=function(){var a=b.createElement("audio"),c=!1;try{(c=!!a.canPlayType)&&(c=new Boolean(c),c.ogg=a.canPlayType('audio/ogg; codecs="vorbis"').replace(/^no$/,""),c.mp3=a.canPlayType("audio/mpeg;").replace(/^no$/,""),c.wav=a.canPlayType('audio/wav; codecs="1"').replace(/^no$/,""),c.m4a=(a.canPlayType("audio/x-m4a;")||a.canPlayType("audio/aac;")).replace(/^no$/,""))}catch(d){}return c},C.localstorage=function(){try{return localStorage.setItem(r,r),localStorage.removeItem(r),!0}catch(a){return!1}},C.sessionstorage=function(){try{return sessionStorage.setItem(r,r),sessionStorage.removeItem(r),!0}catch(a){return!1}},C.webworkers=function(){return!!a.Worker},C.applicationcache=function(){return!!a.applicationCache},C.svg=function(){return!!b.createElementNS&&!!b.createElementNS(B.svg,"svg").createSVGRect},C.inlinesvg=function(){var a=b.createElement("div");return a.innerHTML="<svg/>",(a.firstChild&&a.firstChild.namespaceURI)==B.svg},C.smil=function(){return!!b.createElementNS&&/SVGAnimate/.test(w.call(b.createElementNS(B.svg,"animate")))},C.svgclippaths=function(){return!!b.createElementNS&&/SVGClipPath/.test(w.call(b.createElementNS(B.svg,"clipPath")))};for(var L in C)m(C,L)&&(l=L.toLowerCase(),o[l]=C[L](),F.push((o[l]?"":"no-")+l));return o.input||k(),o.addTest=function(a,b){if("object"==typeof a)for(var d in a)m(a,d)&&o.addTest(d,a[d]);else{if(a=a.toLowerCase(),o[a]!==c)return o;b="function"==typeof b?b():b,"undefined"!=typeof p&&p&&(q.className+=" "+(b?"":"no-")+a),o[a]=b}return o},d(""),s=u=null,function(a,b){function c(a,b){var c=a.createElement("p"),d=a.getElementsByTagName("head")[0]||a.documentElement;return c.innerHTML="x<style>"+b+"</style>",d.insertBefore(c.lastChild,d.firstChild)}function d(){var a=s.elements;return"string"==typeof a?a.split(" "):a}function e(a){var b=r[a[p]];return b||(b={},q++,a[p]=q,r[q]=b),b}function f(a,c,d){if(c||(c=b),k)return c.createElement(a);d||(d=e(c));var f;return f=d.cache[a]?d.cache[a].cloneNode():o.test(a)?(d.cache[a]=d.createElem(a)).cloneNode():d.createElem(a),!f.canHaveChildren||n.test(a)||f.tagUrn?f:d.frag.appendChild(f)}function g(a,c){if(a||(a=b),k)return a.createDocumentFragment();c=c||e(a);for(var f=c.frag.cloneNode(),g=0,h=d(),i=h.length;i>g;g++)f.createElement(h[g]);return f}function h(a,b){b.cache||(b.cache={},b.createElem=a.createElement,b.createFrag=a.createDocumentFragment,b.frag=b.createFrag()),a.createElement=function(c){return s.shivMethods?f(c,a,b):b.createElem(c)},a.createDocumentFragment=Function("h,f","return function(){var n=f.cloneNode(),c=n.createElement;h.shivMethods&&("+d().join().replace(/[\w\-]+/g,function(a){return b.createElem(a),b.frag.createElement(a),'c("'+a+'")'})+");return n}")(s,b.frag)}function i(a){a||(a=b);var d=e(a);return!s.shivCSS||j||d.hasCSS||(d.hasCSS=!!c(a,"article,aside,dialog,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}mark{background:#FF0;color:#000}template{display:none}")),k||h(a,d),a}var j,k,l="3.7.0",m=a.html5||{},n=/^<|^(?:button|map|select|textarea|object|iframe|option|optgroup)$/i,o=/^(?:a|b|code|div|fieldset|h1|h2|h3|h4|h5|h6|i|label|li|ol|p|q|span|strong|style|table|tbody|td|th|tr|ul)$/i,p="_html5shiv",q=0,r={};!function(){try{var a=b.createElement("a");a.innerHTML="<xyz></xyz>",j="hidden"in a,k=1==a.childNodes.length||function(){b.createElement("a");var a=b.createDocumentFragment();return"undefined"==typeof a.cloneNode||"undefined"==typeof a.createDocumentFragment||"undefined"==typeof a.createElement}()}catch(c){j=!0,k=!0}}();var s={elements:m.elements||"abbr article aside audio bdi canvas data datalist details dialog figcaption figure footer header hgroup main mark meter nav output progress section summary template time video",version:l,shivCSS:m.shivCSS!==!1,supportsUnknownElements:k,shivMethods:m.shivMethods!==!1,type:"default",shivDocument:i,createElement:f,createDocumentFragment:g};a.html5=s,i(b)}(this,b),o._version=n,o._prefixes=x,o._domPrefixes=A,o._cssomPrefixes=z,o.mq=I,o.hasEvent=J,o.testProp=function(a){return h([a])},o.testAllProps=j,o.testStyles=H,o.prefixed=function(a,b,c){return b?j(a,b,c):j(a,"pfx")},q.className=q.className.replace(/(^|\s)no-js(\s|$)/,"$1$2")+(p?" js "+F.join(" "):""),o}(this,this.document);
\ No newline at end of file
--- /dev/null
+/*! http://mths.be/placeholder v2.0.9 by @mathias */
+!function(a){"function"==typeof define&&define.amd?define(["jquery"],a):a(jQuery)}(function(a){function b(b){var c={},d=/^jQuery\d+$/;return a.each(b.attributes,function(a,b){b.specified&&!d.test(b.name)&&(c[b.name]=b.value)}),c}function c(b,c){var d=this,f=a(d);if(d.value==f.attr("placeholder")&&f.hasClass("placeholder"))if(f.data("placeholder-password")){if(f=f.hide().nextAll('input[type="password"]:first').show().attr("id",f.removeAttr("id").data("placeholder-id")),b===!0)return f[0].value=c;f.focus()}else d.value="",f.removeClass("placeholder"),d==e()&&d.select()}function d(){var d,e=this,f=a(e),g=this.id;if(""===e.value){if("password"===e.type){if(!f.data("placeholder-textinput")){try{d=f.clone().attr({type:"text"})}catch(h){d=a("<input>").attr(a.extend(b(this),{type:"text"}))}d.removeAttr("name").data({"placeholder-password":f,"placeholder-id":g}).bind("focus.placeholder",c),f.data({"placeholder-textinput":d,"placeholder-id":g}).before(d)}f=f.removeAttr("id").hide().prevAll('input[type="text"]:first').attr("id",g).show()}f.addClass("placeholder"),f[0].value=f.attr("placeholder")}else f.removeClass("placeholder")}function e(){try{return document.activeElement}catch(a){}}var f,g,h="[object OperaMini]"==Object.prototype.toString.call(window.operamini),i="placeholder"in document.createElement("input")&&!h,j="placeholder"in document.createElement("textarea")&&!h,k=a.valHooks,l=a.propHooks;i&&j?(g=a.fn.placeholder=function(){return this},g.input=g.textarea=!0):(g=a.fn.placeholder=function(){var a=this;return a.filter((i?"textarea":":input")+"[placeholder]").not(".placeholder").bind({"focus.placeholder":c,"blur.placeholder":d}).data("placeholder-enabled",!0).trigger("blur.placeholder"),a},g.input=i,g.textarea=j,f={get:function(b){var c=a(b),d=c.data("placeholder-password");return d?d[0].value:c.data("placeholder-enabled")&&c.hasClass("placeholder")?"":b.value},set:function(b,f){var g=a(b),h=g.data("placeholder-password");return h?h[0].value=f:g.data("placeholder-enabled")?(""===f?(b.value=f,b!=e()&&d.call(b)):g.hasClass("placeholder")?c.call(b,!0,f)||(b.value=f):b.value=f,g):b.value=f}},i||(k.input=f,l.value=f),j||(k.textarea=f,l.value=f),a(function(){a(document).delegate("form","submit.placeholder",function(){var b=a(".placeholder",this).each(c);setTimeout(function(){b.each(d)},10)})}),a(window).bind("beforeunload.placeholder",function(){a(".placeholder").each(function(){this.value=""})}))});
\ No newline at end of file
--- /dev/null
+/*! http://mths.be/placeholder v2.0.9 by @mathias */
+(function(factory) {
+ if (typeof define === 'function' && define.amd) {
+ // AMD
+ define(['jquery'], factory);
+ } else {
+ // Browser globals
+ factory(jQuery);
+ }
+}(function($) {
+
+ // Opera Mini v7 doesn’t support placeholder although its DOM seems to indicate so
+ var isOperaMini = Object.prototype.toString.call(window.operamini) == '[object OperaMini]';
+ var isInputSupported = 'placeholder' in document.createElement('input') && !isOperaMini;
+ var isTextareaSupported = 'placeholder' in document.createElement('textarea') && !isOperaMini;
+ var valHooks = $.valHooks;
+ var propHooks = $.propHooks;
+ var hooks;
+ var placeholder;
+
+ if (isInputSupported && isTextareaSupported) {
+
+ placeholder = $.fn.placeholder = function() {
+ return this;
+ };
+
+ placeholder.input = placeholder.textarea = true;
+
+ } else {
+
+ placeholder = $.fn.placeholder = function() {
+ var $this = this;
+ $this
+ .filter((isInputSupported ? 'textarea' : ':input') + '[placeholder]')
+ .not('.placeholder')
+ .bind({
+ 'focus.placeholder': clearPlaceholder,
+ 'blur.placeholder': setPlaceholder
+ })
+ .data('placeholder-enabled', true)
+ .trigger('blur.placeholder');
+ return $this;
+ };
+
+ placeholder.input = isInputSupported;
+ placeholder.textarea = isTextareaSupported;
+
+ hooks = {
+ 'get': function(element) {
+ var $element = $(element);
+
+ var $passwordInput = $element.data('placeholder-password');
+ if ($passwordInput) {
+ return $passwordInput[0].value;
+ }
+
+ return $element.data('placeholder-enabled') && $element.hasClass('placeholder') ? '' : element.value;
+ },
+ 'set': function(element, value) {
+ var $element = $(element);
+
+ var $passwordInput = $element.data('placeholder-password');
+ if ($passwordInput) {
+ return $passwordInput[0].value = value;
+ }
+
+ if (!$element.data('placeholder-enabled')) {
+ return element.value = value;
+ }
+ if (value === '') {
+ element.value = value;
+ // Issue #56: Setting the placeholder causes problems if the element continues to have focus.
+ if (element != safeActiveElement()) {
+ // We can't use `triggerHandler` here because of dummy text/password inputs :(
+ setPlaceholder.call(element);
+ }
+ } else if ($element.hasClass('placeholder')) {
+ clearPlaceholder.call(element, true, value) || (element.value = value);
+ } else {
+ element.value = value;
+ }
+ // `set` can not return `undefined`; see http://jsapi.info/jquery/1.7.1/val#L2363
+ return $element;
+ }
+ };
+
+ if (!isInputSupported) {
+ valHooks.input = hooks;
+ propHooks.value = hooks;
+ }
+ if (!isTextareaSupported) {
+ valHooks.textarea = hooks;
+ propHooks.value = hooks;
+ }
+
+ $(function() {
+ // Look for forms
+ $(document).delegate('form', 'submit.placeholder', function() {
+ // Clear the placeholder values so they don't get submitted
+ var $inputs = $('.placeholder', this).each(clearPlaceholder);
+ setTimeout(function() {
+ $inputs.each(setPlaceholder);
+ }, 10);
+ });
+ });
+
+ // Clear placeholder values upon page reload
+ $(window).bind('beforeunload.placeholder', function() {
+ $('.placeholder').each(function() {
+ this.value = '';
+ });
+ });
+
+ }
+
+ function args(elem) {
+ // Return an object of element attributes
+ var newAttrs = {};
+ var rinlinejQuery = /^jQuery\d+$/;
+ $.each(elem.attributes, function(i, attr) {
+ if (attr.specified && !rinlinejQuery.test(attr.name)) {
+ newAttrs[attr.name] = attr.value;
+ }
+ });
+ return newAttrs;
+ }
+
+ function clearPlaceholder(event, value) {
+ var input = this;
+ var $input = $(input);
+ if (input.value == $input.attr('placeholder') && $input.hasClass('placeholder')) {
+ if ($input.data('placeholder-password')) {
+ $input = $input.hide().nextAll('input[type="password"]:first').show().attr('id', $input.removeAttr('id').data('placeholder-id'));
+ // If `clearPlaceholder` was called from `$.valHooks.input.set`
+ if (event === true) {
+ return $input[0].value = value;
+ }
+ $input.focus();
+ } else {
+ input.value = '';
+ $input.removeClass('placeholder');
+ input == safeActiveElement() && input.select();
+ }
+ }
+ }
+
+ function setPlaceholder() {
+ var $replacement;
+ var input = this;
+ var $input = $(input);
+ var id = this.id;
+ if (input.value === '') {
+ if (input.type === 'password') {
+ if (!$input.data('placeholder-textinput')) {
+ try {
+ $replacement = $input.clone().attr({ 'type': 'text' });
+ } catch(e) {
+ $replacement = $('<input>').attr($.extend(args(this), { 'type': 'text' }));
+ }
+ $replacement
+ .removeAttr('name')
+ .data({
+ 'placeholder-password': $input,
+ 'placeholder-id': id
+ })
+ .bind('focus.placeholder', clearPlaceholder);
+ $input
+ .data({
+ 'placeholder-textinput': $replacement,
+ 'placeholder-id': id
+ })
+ .before($replacement);
+ }
+ $input = $input.removeAttr('id').hide().prevAll('input[type="text"]:first').attr('id', id).show();
+ // Note: `$input[0] != input` now!
+ }
+ $input.addClass('placeholder');
+ $input[0].value = $input.attr('placeholder');
+ } else {
+ $input.removeClass('placeholder');
+ }
+ }
+
+ function safeActiveElement() {
+ // Avoid IE9 `document.activeElement` of death
+ // https://github.com/mathiasbynens/jquery-placeholder/pull/99
+ try {
+ return document.activeElement;
+ } catch (exception) {}
+ }
+
+}));
--- /dev/null
+/*!
+ * jQuery Cookie Plugin v1.4.1
+ * https://github.com/carhartl/jquery-cookie
+ *
+ * Copyright 2013 Klaus Hartl
+ * Released under the MIT license
+ */
+(function (factory) {
+ if (typeof define === 'function' && define.amd) {
+ // AMD
+ define(['jquery'], factory);
+ } else if (typeof exports === 'object') {
+ // CommonJS
+ factory(require('jquery'));
+ } else {
+ // Browser globals
+ factory(jQuery);
+ }
+}(function ($) {
+
+ var pluses = /\+/g;
+
+ function encode(s) {
+ return config.raw ? s : encodeURIComponent(s);
+ }
+
+ function decode(s) {
+ return config.raw ? s : decodeURIComponent(s);
+ }
+
+ function stringifyCookieValue(value) {
+ return encode(config.json ? JSON.stringify(value) : String(value));
+ }
+
+ function parseCookieValue(s) {
+ if (s.indexOf('"') === 0) {
+ // This is a quoted cookie as according to RFC2068, unescape...
+ s = s.slice(1, -1).replace(/\\"/g, '"').replace(/\\\\/g, '\\');
+ }
+
+ try {
+ // Replace server-side written pluses with spaces.
+ // If we can't decode the cookie, ignore it, it's unusable.
+ // If we can't parse the cookie, ignore it, it's unusable.
+ s = decodeURIComponent(s.replace(pluses, ' '));
+ return config.json ? JSON.parse(s) : s;
+ } catch(e) {}
+ }
+
+ function read(s, converter) {
+ var value = config.raw ? s : parseCookieValue(s);
+ return $.isFunction(converter) ? converter(value) : value;
+ }
+
+ var config = $.cookie = function (key, value, options) {
+
+ // Write
+
+ if (value !== undefined && !$.isFunction(value)) {
+ options = $.extend({}, config.defaults, options);
+
+ if (typeof options.expires === 'number') {
+ var days = options.expires, t = options.expires = new Date();
+ t.setTime(+t + days * 864e+5);
+ }
+
+ return (document.cookie = [
+ encode(key), '=', stringifyCookieValue(value),
+ options.expires ? '; expires=' + options.expires.toUTCString() : '', // use expires attribute, max-age is not supported by IE
+ options.path ? '; path=' + options.path : '',
+ options.domain ? '; domain=' + options.domain : '',
+ options.secure ? '; secure' : ''
+ ].join(''));
+ }
+
+ // Read
+
+ var result = key ? undefined : {};
+
+ // To prevent the for loop in the first place assign an empty array
+ // in case there are no cookies at all. Also prevents odd result when
+ // calling $.cookie().
+ var cookies = document.cookie ? document.cookie.split('; ') : [];
+
+ for (var i = 0, l = cookies.length; i < l; i++) {
+ var parts = cookies[i].split('=');
+ var name = decode(parts.shift());
+ var cookie = parts.join('=');
+
+ if (key && key === name) {
+ // If second argument (value) is a function it's a converter...
+ result = read(cookie, value);
+ break;
+ }
+
+ // Prevent storing a cookie that we couldn't decode.
+ if (!key && (cookie = read(cookie)) !== undefined) {
+ result[name] = cookie;
+ }
+ }
+
+ return result;
+ };
+
+ config.defaults = {};
+
+ $.removeCookie = function (key, options) {
+ if ($.cookie(key) === undefined) {
+ return false;
+ }
+
+ // Must not alter options, thus extending a fresh object...
+ $.cookie(key, '', $.extend({}, options, { expires: -1 }));
+ return !$.cookie(key);
+ };
+
+}));
--- /dev/null
+/* global Symbol */
+// Defining this global in .eslintrc.json would create a danger of using the global
+// unguarded in another place, it seems safer to define global only for this module
+
+define( [
+ "./var/arr",
+ "./var/document",
+ "./var/getProto",
+ "./var/slice",
+ "./var/concat",
+ "./var/push",
+ "./var/indexOf",
+ "./var/class2type",
+ "./var/toString",
+ "./var/hasOwn",
+ "./var/fnToString",
+ "./var/ObjectFunctionString",
+ "./var/support",
+ "./core/DOMEval"
+], function( arr, document, getProto, slice, concat, push, indexOf,
+ class2type, toString, hasOwn, fnToString, ObjectFunctionString,
+ support, DOMEval ) {
+
+"use strict";
+
+var
+ version = "3.1.1",
+
+ // Define a local copy of jQuery
+ jQuery = function( selector, context ) {
+
+ // The jQuery object is actually just the init constructor 'enhanced'
+ // Need init if jQuery is called (just allow error to be thrown if not included)
+ return new jQuery.fn.init( selector, context );
+ },
+
+ // Support: Android <=4.0 only
+ // Make sure we trim BOM and NBSP
+ rtrim = /^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,
+
+ // Matches dashed string for camelizing
+ rmsPrefix = /^-ms-/,
+ rdashAlpha = /-([a-z])/g,
+
+ // Used by jQuery.camelCase as callback to replace()
+ fcamelCase = function( all, letter ) {
+ return letter.toUpperCase();
+ };
+
+jQuery.fn = jQuery.prototype = {
+
+ // The current version of jQuery being used
+ jquery: version,
+
+ constructor: jQuery,
+
+ // The default length of a jQuery object is 0
+ length: 0,
+
+ toArray: function() {
+ return slice.call( this );
+ },
+
+ // Get the Nth element in the matched element set OR
+ // Get the whole matched element set as a clean array
+ get: function( num ) {
+
+ // Return all the elements in a clean array
+ if ( num == null ) {
+ return slice.call( this );
+ }
+
+ // Return just the one element from the set
+ return num < 0 ? this[ num + this.length ] : this[ num ];
+ },
+
+ // Take an array of elements and push it onto the stack
+ // (returning the new matched element set)
+ pushStack: function( elems ) {
+
+ // Build a new jQuery matched element set
+ var ret = jQuery.merge( this.constructor(), elems );
+
+ // Add the old object onto the stack (as a reference)
+ ret.prevObject = this;
+
+ // Return the newly-formed element set
+ return ret;
+ },
+
+ // Execute a callback for every element in the matched set.
+ each: function( callback ) {
+ return jQuery.each( this, callback );
+ },
+
+ map: function( callback ) {
+ return this.pushStack( jQuery.map( this, function( elem, i ) {
+ return callback.call( elem, i, elem );
+ } ) );
+ },
+
+ slice: function() {
+ return this.pushStack( slice.apply( this, arguments ) );
+ },
+
+ first: function() {
+ return this.eq( 0 );
+ },
+
+ last: function() {
+ return this.eq( -1 );
+ },
+
+ eq: function( i ) {
+ var len = this.length,
+ j = +i + ( i < 0 ? len : 0 );
+ return this.pushStack( j >= 0 && j < len ? [ this[ j ] ] : [] );
+ },
+
+ end: function() {
+ return this.prevObject || this.constructor();
+ },
+
+ // For internal use only.
+ // Behaves like an Array's method, not like a jQuery method.
+ push: push,
+ sort: arr.sort,
+ splice: arr.splice
+};
+
+jQuery.extend = jQuery.fn.extend = function() {
+ var options, name, src, copy, copyIsArray, clone,
+ target = arguments[ 0 ] || {},
+ i = 1,
+ length = arguments.length,
+ deep = false;
+
+ // Handle a deep copy situation
+ if ( typeof target === "boolean" ) {
+ deep = target;
+
+ // Skip the boolean and the target
+ target = arguments[ i ] || {};
+ i++;
+ }
+
+ // Handle case when target is a string or something (possible in deep copy)
+ if ( typeof target !== "object" && !jQuery.isFunction( target ) ) {
+ target = {};
+ }
+
+ // Extend jQuery itself if only one argument is passed
+ if ( i === length ) {
+ target = this;
+ i--;
+ }
+
+ for ( ; i < length; i++ ) {
+
+ // Only deal with non-null/undefined values
+ if ( ( options = arguments[ i ] ) != null ) {
+
+ // Extend the base object
+ for ( name in options ) {
+ src = target[ name ];
+ copy = options[ name ];
+
+ // Prevent never-ending loop
+ if ( target === copy ) {
+ continue;
+ }
+
+ // Recurse if we're merging plain objects or arrays
+ if ( deep && copy && ( jQuery.isPlainObject( copy ) ||
+ ( copyIsArray = jQuery.isArray( copy ) ) ) ) {
+
+ if ( copyIsArray ) {
+ copyIsArray = false;
+ clone = src && jQuery.isArray( src ) ? src : [];
+
+ } else {
+ clone = src && jQuery.isPlainObject( src ) ? src : {};
+ }
+
+ // Never move original objects, clone them
+ target[ name ] = jQuery.extend( deep, clone, copy );
+
+ // Don't bring in undefined values
+ } else if ( copy !== undefined ) {
+ target[ name ] = copy;
+ }
+ }
+ }
+ }
+
+ // Return the modified object
+ return target;
+};
+
+jQuery.extend( {
+
+ // Unique for each copy of jQuery on the page
+ expando: "jQuery" + ( version + Math.random() ).replace( /\D/g, "" ),
+
+ // Assume jQuery is ready without the ready module
+ isReady: true,
+
+ error: function( msg ) {
+ throw new Error( msg );
+ },
+
+ noop: function() {},
+
+ isFunction: function( obj ) {
+ return jQuery.type( obj ) === "function";
+ },
+
+ isArray: Array.isArray,
+
+ isWindow: function( obj ) {
+ return obj != null && obj === obj.window;
+ },
+
+ isNumeric: function( obj ) {
+
+ // As of jQuery 3.0, isNumeric is limited to
+ // strings and numbers (primitives or objects)
+ // that can be coerced to finite numbers (gh-2662)
+ var type = jQuery.type( obj );
+ return ( type === "number" || type === "string" ) &&
+
+ // parseFloat NaNs numeric-cast false positives ("")
+ // ...but misinterprets leading-number strings, particularly hex literals ("0x...")
+ // subtraction forces infinities to NaN
+ !isNaN( obj - parseFloat( obj ) );
+ },
+
+ isPlainObject: function( obj ) {
+ var proto, Ctor;
+
+ // Detect obvious negatives
+ // Use toString instead of jQuery.type to catch host objects
+ if ( !obj || toString.call( obj ) !== "[object Object]" ) {
+ return false;
+ }
+
+ proto = getProto( obj );
+
+ // Objects with no prototype (e.g., `Object.create( null )`) are plain
+ if ( !proto ) {
+ return true;
+ }
+
+ // Objects with prototype are plain iff they were constructed by a global Object function
+ Ctor = hasOwn.call( proto, "constructor" ) && proto.constructor;
+ return typeof Ctor === "function" && fnToString.call( Ctor ) === ObjectFunctionString;
+ },
+
+ isEmptyObject: function( obj ) {
+
+ /* eslint-disable no-unused-vars */
+ // See https://github.com/eslint/eslint/issues/6125
+ var name;
+
+ for ( name in obj ) {
+ return false;
+ }
+ return true;
+ },
+
+ type: function( obj ) {
+ if ( obj == null ) {
+ return obj + "";
+ }
+
+ // Support: Android <=2.3 only (functionish RegExp)
+ return typeof obj === "object" || typeof obj === "function" ?
+ class2type[ toString.call( obj ) ] || "object" :
+ typeof obj;
+ },
+
+ // Evaluates a script in a global context
+ globalEval: function( code ) {
+ DOMEval( code );
+ },
+
+ // Convert dashed to camelCase; used by the css and data modules
+ // Support: IE <=9 - 11, Edge 12 - 13
+ // Microsoft forgot to hump their vendor prefix (#9572)
+ camelCase: function( string ) {
+ return string.replace( rmsPrefix, "ms-" ).replace( rdashAlpha, fcamelCase );
+ },
+
+ nodeName: function( elem, name ) {
+ return elem.nodeName && elem.nodeName.toLowerCase() === name.toLowerCase();
+ },
+
+ each: function( obj, callback ) {
+ var length, i = 0;
+
+ if ( isArrayLike( obj ) ) {
+ length = obj.length;
+ for ( ; i < length; i++ ) {
+ if ( callback.call( obj[ i ], i, obj[ i ] ) === false ) {
+ break;
+ }
+ }
+ } else {
+ for ( i in obj ) {
+ if ( callback.call( obj[ i ], i, obj[ i ] ) === false ) {
+ break;
+ }
+ }
+ }
+
+ return obj;
+ },
+
+ // Support: Android <=4.0 only
+ trim: function( text ) {
+ return text == null ?
+ "" :
+ ( text + "" ).replace( rtrim, "" );
+ },
+
+ // results is for internal usage only
+ makeArray: function( arr, results ) {
+ var ret = results || [];
+
+ if ( arr != null ) {
+ if ( isArrayLike( Object( arr ) ) ) {
+ jQuery.merge( ret,
+ typeof arr === "string" ?
+ [ arr ] : arr
+ );
+ } else {
+ push.call( ret, arr );
+ }
+ }
+
+ return ret;
+ },
+
+ inArray: function( elem, arr, i ) {
+ return arr == null ? -1 : indexOf.call( arr, elem, i );
+ },
+
+ // Support: Android <=4.0 only, PhantomJS 1 only
+ // push.apply(_, arraylike) throws on ancient WebKit
+ merge: function( first, second ) {
+ var len = +second.length,
+ j = 0,
+ i = first.length;
+
+ for ( ; j < len; j++ ) {
+ first[ i++ ] = second[ j ];
+ }
+
+ first.length = i;
+
+ return first;
+ },
+
+ grep: function( elems, callback, invert ) {
+ var callbackInverse,
+ matches = [],
+ i = 0,
+ length = elems.length,
+ callbackExpect = !invert;
+
+ // Go through the array, only saving the items
+ // that pass the validator function
+ for ( ; i < length; i++ ) {
+ callbackInverse = !callback( elems[ i ], i );
+ if ( callbackInverse !== callbackExpect ) {
+ matches.push( elems[ i ] );
+ }
+ }
+
+ return matches;
+ },
+
+ // arg is for internal usage only
+ map: function( elems, callback, arg ) {
+ var length, value,
+ i = 0,
+ ret = [];
+
+ // Go through the array, translating each of the items to their new values
+ if ( isArrayLike( elems ) ) {
+ length = elems.length;
+ for ( ; i < length; i++ ) {
+ value = callback( elems[ i ], i, arg );
+
+ if ( value != null ) {
+ ret.push( value );
+ }
+ }
+
+ // Go through every key on the object,
+ } else {
+ for ( i in elems ) {
+ value = callback( elems[ i ], i, arg );
+
+ if ( value != null ) {
+ ret.push( value );
+ }
+ }
+ }
+
+ // Flatten any nested arrays
+ return concat.apply( [], ret );
+ },
+
+ // A global GUID counter for objects
+ guid: 1,
+
+ // Bind a function to a context, optionally partially applying any
+ // arguments.
+ proxy: function( fn, context ) {
+ var tmp, args, proxy;
+
+ if ( typeof context === "string" ) {
+ tmp = fn[ context ];
+ context = fn;
+ fn = tmp;
+ }
+
+ // Quick check to determine if target is callable, in the spec
+ // this throws a TypeError, but we will just return undefined.
+ if ( !jQuery.isFunction( fn ) ) {
+ return undefined;
+ }
+
+ // Simulated bind
+ args = slice.call( arguments, 2 );
+ proxy = function() {
+ return fn.apply( context || this, args.concat( slice.call( arguments ) ) );
+ };
+
+ // Set the guid of unique handler to the same of original handler, so it can be removed
+ proxy.guid = fn.guid = fn.guid || jQuery.guid++;
+
+ return proxy;
+ },
+
+ now: Date.now,
+
+ // jQuery.support is not used in Core but other projects attach their
+ // properties to it so it needs to exist.
+ support: support
+} );
+
+if ( typeof Symbol === "function" ) {
+ jQuery.fn[ Symbol.iterator ] = arr[ Symbol.iterator ];
+}
+
+// Populate the class2type map
+jQuery.each( "Boolean Number String Function Array Date RegExp Object Error Symbol".split( " " ),
+function( i, name ) {
+ class2type[ "[object " + name + "]" ] = name.toLowerCase();
+} );
+
+function isArrayLike( obj ) {
+
+ // Support: real iOS 8.2 only (not reproducible in simulator)
+ // `in` check used to prevent JIT error (gh-2145)
+ // hasOwn isn't used here due to false negatives
+ // regarding Nodelist length in IE
+ var length = !!obj && "length" in obj && obj.length,
+ type = jQuery.type( obj );
+
+ if ( type === "function" || jQuery.isWindow( obj ) ) {
+ return false;
+ }
+
+ return type === "array" || length === 0 ||
+ typeof length === "number" && length > 0 && ( length - 1 ) in obj;
+}
+
+return jQuery;
+} );
--- /dev/null
+/*!
+ * jQuery JavaScript Library v3.1.1
+ * https://jquery.com/
+ *
+ * Includes Sizzle.js
+ * https://sizzlejs.com/
+ *
+ * Copyright jQuery Foundation and other contributors
+ * Released under the MIT license
+ * https://jquery.org/license
+ *
+ * Date: 2016-09-22T22:30Z
+ */
+( function( global, factory ) {
+
+ "use strict";
+
+ if ( typeof module === "object" && typeof module.exports === "object" ) {
+
+ // For CommonJS and CommonJS-like environments where a proper `window`
+ // is present, execute the factory and get jQuery.
+ // For environments that do not have a `window` with a `document`
+ // (such as Node.js), expose a factory as module.exports.
+ // This accentuates the need for the creation of a real `window`.
+ // e.g. var jQuery = require("jquery")(window);
+ // See ticket #14549 for more info.
+ module.exports = global.document ?
+ factory( global, true ) :
+ function( w ) {
+ if ( !w.document ) {
+ throw new Error( "jQuery requires a window with a document" );
+ }
+ return factory( w );
+ };
+ } else {
+ factory( global );
+ }
+
+// Pass this if window is not defined yet
+} )( typeof window !== "undefined" ? window : this, function( window, noGlobal ) {
+
+// Edge <= 12 - 13+, Firefox <=18 - 45+, IE 10 - 11, Safari 5.1 - 9+, iOS 6 - 9.1
+// throw exceptions when non-strict code (e.g., ASP.NET 4.5) accesses strict mode
+// arguments.callee.caller (trac-13335). But as of jQuery 3.0 (2016), strict mode should be common
+// enough that all such attempts are guarded in a try block.
+"use strict";
+
+var arr = [];
+
+var document = window.document;
+
+var getProto = Object.getPrototypeOf;
+
+var slice = arr.slice;
+
+var concat = arr.concat;
+
+var push = arr.push;
+
+var indexOf = arr.indexOf;
+
+var class2type = {};
+
+var toString = class2type.toString;
+
+var hasOwn = class2type.hasOwnProperty;
+
+var fnToString = hasOwn.toString;
+
+var ObjectFunctionString = fnToString.call( Object );
+
+var support = {};
+
+
+
+ function DOMEval( code, doc ) {
+ doc = doc || document;
+
+ var script = doc.createElement( "script" );
+
+ script.text = code;
+ doc.head.appendChild( script ).parentNode.removeChild( script );
+ }
+/* global Symbol */
+// Defining this global in .eslintrc.json would create a danger of using the global
+// unguarded in another place, it seems safer to define global only for this module
+
+
+
+var
+ version = "3.1.1",
+
+ // Define a local copy of jQuery
+ jQuery = function( selector, context ) {
+
+ // The jQuery object is actually just the init constructor 'enhanced'
+ // Need init if jQuery is called (just allow error to be thrown if not included)
+ return new jQuery.fn.init( selector, context );
+ },
+
+ // Support: Android <=4.0 only
+ // Make sure we trim BOM and NBSP
+ rtrim = /^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,
+
+ // Matches dashed string for camelizing
+ rmsPrefix = /^-ms-/,
+ rdashAlpha = /-([a-z])/g,
+
+ // Used by jQuery.camelCase as callback to replace()
+ fcamelCase = function( all, letter ) {
+ return letter.toUpperCase();
+ };
+
+jQuery.fn = jQuery.prototype = {
+
+ // The current version of jQuery being used
+ jquery: version,
+
+ constructor: jQuery,
+
+ // The default length of a jQuery object is 0
+ length: 0,
+
+ toArray: function() {
+ return slice.call( this );
+ },
+
+ // Get the Nth element in the matched element set OR
+ // Get the whole matched element set as a clean array
+ get: function( num ) {
+
+ // Return all the elements in a clean array
+ if ( num == null ) {
+ return slice.call( this );
+ }
+
+ // Return just the one element from the set
+ return num < 0 ? this[ num + this.length ] : this[ num ];
+ },
+
+ // Take an array of elements and push it onto the stack
+ // (returning the new matched element set)
+ pushStack: function( elems ) {
+
+ // Build a new jQuery matched element set
+ var ret = jQuery.merge( this.constructor(), elems );
+
+ // Add the old object onto the stack (as a reference)
+ ret.prevObject = this;
+
+ // Return the newly-formed element set
+ return ret;
+ },
+
+ // Execute a callback for every element in the matched set.
+ each: function( callback ) {
+ return jQuery.each( this, callback );
+ },
+
+ map: function( callback ) {
+ return this.pushStack( jQuery.map( this, function( elem, i ) {
+ return callback.call( elem, i, elem );
+ } ) );
+ },
+
+ slice: function() {
+ return this.pushStack( slice.apply( this, arguments ) );
+ },
+
+ first: function() {
+ return this.eq( 0 );
+ },
+
+ last: function() {
+ return this.eq( -1 );
+ },
+
+ eq: function( i ) {
+ var len = this.length,
+ j = +i + ( i < 0 ? len : 0 );
+ return this.pushStack( j >= 0 && j < len ? [ this[ j ] ] : [] );
+ },
+
+ end: function() {
+ return this.prevObject || this.constructor();
+ },
+
+ // For internal use only.
+ // Behaves like an Array's method, not like a jQuery method.
+ push: push,
+ sort: arr.sort,
+ splice: arr.splice
+};
+
+jQuery.extend = jQuery.fn.extend = function() {
+ var options, name, src, copy, copyIsArray, clone,
+ target = arguments[ 0 ] || {},
+ i = 1,
+ length = arguments.length,
+ deep = false;
+
+ // Handle a deep copy situation
+ if ( typeof target === "boolean" ) {
+ deep = target;
+
+ // Skip the boolean and the target
+ target = arguments[ i ] || {};
+ i++;
+ }
+
+ // Handle case when target is a string or something (possible in deep copy)
+ if ( typeof target !== "object" && !jQuery.isFunction( target ) ) {
+ target = {};
+ }
+
+ // Extend jQuery itself if only one argument is passed
+ if ( i === length ) {
+ target = this;
+ i--;
+ }
+
+ for ( ; i < length; i++ ) {
+
+ // Only deal with non-null/undefined values
+ if ( ( options = arguments[ i ] ) != null ) {
+
+ // Extend the base object
+ for ( name in options ) {
+ src = target[ name ];
+ copy = options[ name ];
+
+ // Prevent never-ending loop
+ if ( target === copy ) {
+ continue;
+ }
+
+ // Recurse if we're merging plain objects or arrays
+ if ( deep && copy && ( jQuery.isPlainObject( copy ) ||
+ ( copyIsArray = jQuery.isArray( copy ) ) ) ) {
+
+ if ( copyIsArray ) {
+ copyIsArray = false;
+ clone = src && jQuery.isArray( src ) ? src : [];
+
+ } else {
+ clone = src && jQuery.isPlainObject( src ) ? src : {};
+ }
+
+ // Never move original objects, clone them
+ target[ name ] = jQuery.extend( deep, clone, copy );
+
+ // Don't bring in undefined values
+ } else if ( copy !== undefined ) {
+ target[ name ] = copy;
+ }
+ }
+ }
+ }
+
+ // Return the modified object
+ return target;
+};
+
+jQuery.extend( {
+
+ // Unique for each copy of jQuery on the page
+ expando: "jQuery" + ( version + Math.random() ).replace( /\D/g, "" ),
+
+ // Assume jQuery is ready without the ready module
+ isReady: true,
+
+ error: function( msg ) {
+ throw new Error( msg );
+ },
+
+ noop: function() {},
+
+ isFunction: function( obj ) {
+ return jQuery.type( obj ) === "function";
+ },
+
+ isArray: Array.isArray,
+
+ isWindow: function( obj ) {
+ return obj != null && obj === obj.window;
+ },
+
+ isNumeric: function( obj ) {
+
+ // As of jQuery 3.0, isNumeric is limited to
+ // strings and numbers (primitives or objects)
+ // that can be coerced to finite numbers (gh-2662)
+ var type = jQuery.type( obj );
+ return ( type === "number" || type === "string" ) &&
+
+ // parseFloat NaNs numeric-cast false positives ("")
+ // ...but misinterprets leading-number strings, particularly hex literals ("0x...")
+ // subtraction forces infinities to NaN
+ !isNaN( obj - parseFloat( obj ) );
+ },
+
+ isPlainObject: function( obj ) {
+ var proto, Ctor;
+
+ // Detect obvious negatives
+ // Use toString instead of jQuery.type to catch host objects
+ if ( !obj || toString.call( obj ) !== "[object Object]" ) {
+ return false;
+ }
+
+ proto = getProto( obj );
+
+ // Objects with no prototype (e.g., `Object.create( null )`) are plain
+ if ( !proto ) {
+ return true;
+ }
+
+ // Objects with prototype are plain iff they were constructed by a global Object function
+ Ctor = hasOwn.call( proto, "constructor" ) && proto.constructor;
+ return typeof Ctor === "function" && fnToString.call( Ctor ) === ObjectFunctionString;
+ },
+
+ isEmptyObject: function( obj ) {
+
+ /* eslint-disable no-unused-vars */
+ // See https://github.com/eslint/eslint/issues/6125
+ var name;
+
+ for ( name in obj ) {
+ return false;
+ }
+ return true;
+ },
+
+ type: function( obj ) {
+ if ( obj == null ) {
+ return obj + "";
+ }
+
+ // Support: Android <=2.3 only (functionish RegExp)
+ return typeof obj === "object" || typeof obj === "function" ?
+ class2type[ toString.call( obj ) ] || "object" :
+ typeof obj;
+ },
+
+ // Evaluates a script in a global context
+ globalEval: function( code ) {
+ DOMEval( code );
+ },
+
+ // Convert dashed to camelCase; used by the css and data modules
+ // Support: IE <=9 - 11, Edge 12 - 13
+ // Microsoft forgot to hump their vendor prefix (#9572)
+ camelCase: function( string ) {
+ return string.replace( rmsPrefix, "ms-" ).replace( rdashAlpha, fcamelCase );
+ },
+
+ nodeName: function( elem, name ) {
+ return elem.nodeName && elem.nodeName.toLowerCase() === name.toLowerCase();
+ },
+
+ each: function( obj, callback ) {
+ var length, i = 0;
+
+ if ( isArrayLike( obj ) ) {
+ length = obj.length;
+ for ( ; i < length; i++ ) {
+ if ( callback.call( obj[ i ], i, obj[ i ] ) === false ) {
+ break;
+ }
+ }
+ } else {
+ for ( i in obj ) {
+ if ( callback.call( obj[ i ], i, obj[ i ] ) === false ) {
+ break;
+ }
+ }
+ }
+
+ return obj;
+ },
+
+ // Support: Android <=4.0 only
+ trim: function( text ) {
+ return text == null ?
+ "" :
+ ( text + "" ).replace( rtrim, "" );
+ },
+
+ // results is for internal usage only
+ makeArray: function( arr, results ) {
+ var ret = results || [];
+
+ if ( arr != null ) {
+ if ( isArrayLike( Object( arr ) ) ) {
+ jQuery.merge( ret,
+ typeof arr === "string" ?
+ [ arr ] : arr
+ );
+ } else {
+ push.call( ret, arr );
+ }
+ }
+
+ return ret;
+ },
+
+ inArray: function( elem, arr, i ) {
+ return arr == null ? -1 : indexOf.call( arr, elem, i );
+ },
+
+ // Support: Android <=4.0 only, PhantomJS 1 only
+ // push.apply(_, arraylike) throws on ancient WebKit
+ merge: function( first, second ) {
+ var len = +second.length,
+ j = 0,
+ i = first.length;
+
+ for ( ; j < len; j++ ) {
+ first[ i++ ] = second[ j ];
+ }
+
+ first.length = i;
+
+ return first;
+ },
+
+ grep: function( elems, callback, invert ) {
+ var callbackInverse,
+ matches = [],
+ i = 0,
+ length = elems.length,
+ callbackExpect = !invert;
+
+ // Go through the array, only saving the items
+ // that pass the validator function
+ for ( ; i < length; i++ ) {
+ callbackInverse = !callback( elems[ i ], i );
+ if ( callbackInverse !== callbackExpect ) {
+ matches.push( elems[ i ] );
+ }
+ }
+
+ return matches;
+ },
+
+ // arg is for internal usage only
+ map: function( elems, callback, arg ) {
+ var length, value,
+ i = 0,
+ ret = [];
+
+ // Go through the array, translating each of the items to their new values
+ if ( isArrayLike( elems ) ) {
+ length = elems.length;
+ for ( ; i < length; i++ ) {
+ value = callback( elems[ i ], i, arg );
+
+ if ( value != null ) {
+ ret.push( value );
+ }
+ }
+
+ // Go through every key on the object,
+ } else {
+ for ( i in elems ) {
+ value = callback( elems[ i ], i, arg );
+
+ if ( value != null ) {
+ ret.push( value );
+ }
+ }
+ }
+
+ // Flatten any nested arrays
+ return concat.apply( [], ret );
+ },
+
+ // A global GUID counter for objects
+ guid: 1,
+
+ // Bind a function to a context, optionally partially applying any
+ // arguments.
+ proxy: function( fn, context ) {
+ var tmp, args, proxy;
+
+ if ( typeof context === "string" ) {
+ tmp = fn[ context ];
+ context = fn;
+ fn = tmp;
+ }
+
+ // Quick check to determine if target is callable, in the spec
+ // this throws a TypeError, but we will just return undefined.
+ if ( !jQuery.isFunction( fn ) ) {
+ return undefined;
+ }
+
+ // Simulated bind
+ args = slice.call( arguments, 2 );
+ proxy = function() {
+ return fn.apply( context || this, args.concat( slice.call( arguments ) ) );
+ };
+
+ // Set the guid of unique handler to the same of original handler, so it can be removed
+ proxy.guid = fn.guid = fn.guid || jQuery.guid++;
+
+ return proxy;
+ },
+
+ now: Date.now,
+
+ // jQuery.support is not used in Core but other projects attach their
+ // properties to it so it needs to exist.
+ support: support
+} );
+
+if ( typeof Symbol === "function" ) {
+ jQuery.fn[ Symbol.iterator ] = arr[ Symbol.iterator ];
+}
+
+// Populate the class2type map
+jQuery.each( "Boolean Number String Function Array Date RegExp Object Error Symbol".split( " " ),
+function( i, name ) {
+ class2type[ "[object " + name + "]" ] = name.toLowerCase();
+} );
+
+function isArrayLike( obj ) {
+
+ // Support: real iOS 8.2 only (not reproducible in simulator)
+ // `in` check used to prevent JIT error (gh-2145)
+ // hasOwn isn't used here due to false negatives
+ // regarding Nodelist length in IE
+ var length = !!obj && "length" in obj && obj.length,
+ type = jQuery.type( obj );
+
+ if ( type === "function" || jQuery.isWindow( obj ) ) {
+ return false;
+ }
+
+ return type === "array" || length === 0 ||
+ typeof length === "number" && length > 0 && ( length - 1 ) in obj;
+}
+var Sizzle =
+/*!
+ * Sizzle CSS Selector Engine v2.3.3
+ * https://sizzlejs.com/
+ *
+ * Copyright jQuery Foundation and other contributors
+ * Released under the MIT license
+ * http://jquery.org/license
+ *
+ * Date: 2016-08-08
+ */
+(function( window ) {
+
+var i,
+ support,
+ Expr,
+ getText,
+ isXML,
+ tokenize,
+ compile,
+ select,
+ outermostContext,
+ sortInput,
+ hasDuplicate,
+
+ // Local document vars
+ setDocument,
+ document,
+ docElem,
+ documentIsHTML,
+ rbuggyQSA,
+ rbuggyMatches,
+ matches,
+ contains,
+
+ // Instance-specific data
+ expando = "sizzle" + 1 * new Date(),
+ preferredDoc = window.document,
+ dirruns = 0,
+ done = 0,
+ classCache = createCache(),
+ tokenCache = createCache(),
+ compilerCache = createCache(),
+ sortOrder = function( a, b ) {
+ if ( a === b ) {
+ hasDuplicate = true;
+ }
+ return 0;
+ },
+
+ // Instance methods
+ hasOwn = ({}).hasOwnProperty,
+ arr = [],
+ pop = arr.pop,
+ push_native = arr.push,
+ push = arr.push,
+ slice = arr.slice,
+ // Use a stripped-down indexOf as it's faster than native
+ // https://jsperf.com/thor-indexof-vs-for/5
+ indexOf = function( list, elem ) {
+ var i = 0,
+ len = list.length;
+ for ( ; i < len; i++ ) {
+ if ( list[i] === elem ) {
+ return i;
+ }
+ }
+ return -1;
+ },
+
+ booleans = "checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",
+
+ // Regular expressions
+
+ // http://www.w3.org/TR/css3-selectors/#whitespace
+ whitespace = "[\\x20\\t\\r\\n\\f]",
+
+ // http://www.w3.org/TR/CSS21/syndata.html#value-def-identifier
+ identifier = "(?:\\\\.|[\\w-]|[^\0-\\xa0])+",
+
+ // Attribute selectors: http://www.w3.org/TR/selectors/#attribute-selectors
+ attributes = "\\[" + whitespace + "*(" + identifier + ")(?:" + whitespace +
+ // Operator (capture 2)
+ "*([*^$|!~]?=)" + whitespace +
+ // "Attribute values must be CSS identifiers [capture 5] or strings [capture 3 or capture 4]"
+ "*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|(" + identifier + "))|)" + whitespace +
+ "*\\]",
+
+ pseudos = ":(" + identifier + ")(?:\\((" +
+ // To reduce the number of selectors needing tokenize in the preFilter, prefer arguments:
+ // 1. quoted (capture 3; capture 4 or capture 5)
+ "('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|" +
+ // 2. simple (capture 6)
+ "((?:\\\\.|[^\\\\()[\\]]|" + attributes + ")*)|" +
+ // 3. anything else (capture 2)
+ ".*" +
+ ")\\)|)",
+
+ // Leading and non-escaped trailing whitespace, capturing some non-whitespace characters preceding the latter
+ rwhitespace = new RegExp( whitespace + "+", "g" ),
+ rtrim = new RegExp( "^" + whitespace + "+|((?:^|[^\\\\])(?:\\\\.)*)" + whitespace + "+$", "g" ),
+
+ rcomma = new RegExp( "^" + whitespace + "*," + whitespace + "*" ),
+ rcombinators = new RegExp( "^" + whitespace + "*([>+~]|" + whitespace + ")" + whitespace + "*" ),
+
+ rattributeQuotes = new RegExp( "=" + whitespace + "*([^\\]'\"]*?)" + whitespace + "*\\]", "g" ),
+
+ rpseudo = new RegExp( pseudos ),
+ ridentifier = new RegExp( "^" + identifier + "$" ),
+
+ matchExpr = {
+ "ID": new RegExp( "^#(" + identifier + ")" ),
+ "CLASS": new RegExp( "^\\.(" + identifier + ")" ),
+ "TAG": new RegExp( "^(" + identifier + "|[*])" ),
+ "ATTR": new RegExp( "^" + attributes ),
+ "PSEUDO": new RegExp( "^" + pseudos ),
+ "CHILD": new RegExp( "^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\(" + whitespace +
+ "*(even|odd|(([+-]|)(\\d*)n|)" + whitespace + "*(?:([+-]|)" + whitespace +
+ "*(\\d+)|))" + whitespace + "*\\)|)", "i" ),
+ "bool": new RegExp( "^(?:" + booleans + ")$", "i" ),
+ // For use in libraries implementing .is()
+ // We use this for POS matching in `select`
+ "needsContext": new RegExp( "^" + whitespace + "*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\(" +
+ whitespace + "*((?:-\\d)?\\d*)" + whitespace + "*\\)|)(?=[^-]|$)", "i" )
+ },
+
+ rinputs = /^(?:input|select|textarea|button)$/i,
+ rheader = /^h\d$/i,
+
+ rnative = /^[^{]+\{\s*\[native \w/,
+
+ // Easily-parseable/retrievable ID or TAG or CLASS selectors
+ rquickExpr = /^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,
+
+ rsibling = /[+~]/,
+
+ // CSS escapes
+ // http://www.w3.org/TR/CSS21/syndata.html#escaped-characters
+ runescape = new RegExp( "\\\\([\\da-f]{1,6}" + whitespace + "?|(" + whitespace + ")|.)", "ig" ),
+ funescape = function( _, escaped, escapedWhitespace ) {
+ var high = "0x" + escaped - 0x10000;
+ // NaN means non-codepoint
+ // Support: Firefox<24
+ // Workaround erroneous numeric interpretation of +"0x"
+ return high !== high || escapedWhitespace ?
+ escaped :
+ high < 0 ?
+ // BMP codepoint
+ String.fromCharCode( high + 0x10000 ) :
+ // Supplemental Plane codepoint (surrogate pair)
+ String.fromCharCode( high >> 10 | 0xD800, high & 0x3FF | 0xDC00 );
+ },
+
+ // CSS string/identifier serialization
+ // https://drafts.csswg.org/cssom/#common-serializing-idioms
+ rcssescape = /([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,
+ fcssescape = function( ch, asCodePoint ) {
+ if ( asCodePoint ) {
+
+ // U+0000 NULL becomes U+FFFD REPLACEMENT CHARACTER
+ if ( ch === "\0" ) {
+ return "\uFFFD";
+ }
+
+ // Control characters and (dependent upon position) numbers get escaped as code points
+ return ch.slice( 0, -1 ) + "\\" + ch.charCodeAt( ch.length - 1 ).toString( 16 ) + " ";
+ }
+
+ // Other potentially-special ASCII characters get backslash-escaped
+ return "\\" + ch;
+ },
+
+ // Used for iframes
+ // See setDocument()
+ // Removing the function wrapper causes a "Permission Denied"
+ // error in IE
+ unloadHandler = function() {
+ setDocument();
+ },
+
+ disabledAncestor = addCombinator(
+ function( elem ) {
+ return elem.disabled === true && ("form" in elem || "label" in elem);
+ },
+ { dir: "parentNode", next: "legend" }
+ );
+
+// Optimize for push.apply( _, NodeList )
+try {
+ push.apply(
+ (arr = slice.call( preferredDoc.childNodes )),
+ preferredDoc.childNodes
+ );
+ // Support: Android<4.0
+ // Detect silently failing push.apply
+ arr[ preferredDoc.childNodes.length ].nodeType;
+} catch ( e ) {
+ push = { apply: arr.length ?
+
+ // Leverage slice if possible
+ function( target, els ) {
+ push_native.apply( target, slice.call(els) );
+ } :
+
+ // Support: IE<9
+ // Otherwise append directly
+ function( target, els ) {
+ var j = target.length,
+ i = 0;
+ // Can't trust NodeList.length
+ while ( (target[j++] = els[i++]) ) {}
+ target.length = j - 1;
+ }
+ };
+}
+
+function Sizzle( selector, context, results, seed ) {
+ var m, i, elem, nid, match, groups, newSelector,
+ newContext = context && context.ownerDocument,
+
+ // nodeType defaults to 9, since context defaults to document
+ nodeType = context ? context.nodeType : 9;
+
+ results = results || [];
+
+ // Return early from calls with invalid selector or context
+ if ( typeof selector !== "string" || !selector ||
+ nodeType !== 1 && nodeType !== 9 && nodeType !== 11 ) {
+
+ return results;
+ }
+
+ // Try to shortcut find operations (as opposed to filters) in HTML documents
+ if ( !seed ) {
+
+ if ( ( context ? context.ownerDocument || context : preferredDoc ) !== document ) {
+ setDocument( context );
+ }
+ context = context || document;
+
+ if ( documentIsHTML ) {
+
+ // If the selector is sufficiently simple, try using a "get*By*" DOM method
+ // (excepting DocumentFragment context, where the methods don't exist)
+ if ( nodeType !== 11 && (match = rquickExpr.exec( selector )) ) {
+
+ // ID selector
+ if ( (m = match[1]) ) {
+
+ // Document context
+ if ( nodeType === 9 ) {
+ if ( (elem = context.getElementById( m )) ) {
+
+ // Support: IE, Opera, Webkit
+ // TODO: identify versions
+ // getElementById can match elements by name instead of ID
+ if ( elem.id === m ) {
+ results.push( elem );
+ return results;
+ }
+ } else {
+ return results;
+ }
+
+ // Element context
+ } else {
+
+ // Support: IE, Opera, Webkit
+ // TODO: identify versions
+ // getElementById can match elements by name instead of ID
+ if ( newContext && (elem = newContext.getElementById( m )) &&
+ contains( context, elem ) &&
+ elem.id === m ) {
+
+ results.push( elem );
+ return results;
+ }
+ }
+
+ // Type selector
+ } else if ( match[2] ) {
+ push.apply( results, context.getElementsByTagName( selector ) );
+ return results;
+
+ // Class selector
+ } else if ( (m = match[3]) && support.getElementsByClassName &&
+ context.getElementsByClassName ) {
+
+ push.apply( results, context.getElementsByClassName( m ) );
+ return results;
+ }
+ }
+
+ // Take advantage of querySelectorAll
+ if ( support.qsa &&
+ !compilerCache[ selector + " " ] &&
+ (!rbuggyQSA || !rbuggyQSA.test( selector )) ) {
+
+ if ( nodeType !== 1 ) {
+ newContext = context;
+ newSelector = selector;
+
+ // qSA looks outside Element context, which is not what we want
+ // Thanks to Andrew Dupont for this workaround technique
+ // Support: IE <=8
+ // Exclude object elements
+ } else if ( context.nodeName.toLowerCase() !== "object" ) {
+
+ // Capture the context ID, setting it first if necessary
+ if ( (nid = context.getAttribute( "id" )) ) {
+ nid = nid.replace( rcssescape, fcssescape );
+ } else {
+ context.setAttribute( "id", (nid = expando) );
+ }
+
+ // Prefix every selector in the list
+ groups = tokenize( selector );
+ i = groups.length;
+ while ( i-- ) {
+ groups[i] = "#" + nid + " " + toSelector( groups[i] );
+ }
+ newSelector = groups.join( "," );
+
+ // Expand context for sibling selectors
+ newContext = rsibling.test( selector ) && testContext( context.parentNode ) ||
+ context;
+ }
+
+ if ( newSelector ) {
+ try {
+ push.apply( results,
+ newContext.querySelectorAll( newSelector )
+ );
+ return results;
+ } catch ( qsaError ) {
+ } finally {
+ if ( nid === expando ) {
+ context.removeAttribute( "id" );
+ }
+ }
+ }
+ }
+ }
+ }
+
+ // All others
+ return select( selector.replace( rtrim, "$1" ), context, results, seed );
+}
+
+/**
+ * Create key-value caches of limited size
+ * @returns {function(string, object)} Returns the Object data after storing it on itself with
+ * property name the (space-suffixed) string and (if the cache is larger than Expr.cacheLength)
+ * deleting the oldest entry
+ */
+function createCache() {
+ var keys = [];
+
+ function cache( key, value ) {
+ // Use (key + " ") to avoid collision with native prototype properties (see Issue #157)
+ if ( keys.push( key + " " ) > Expr.cacheLength ) {
+ // Only keep the most recent entries
+ delete cache[ keys.shift() ];
+ }
+ return (cache[ key + " " ] = value);
+ }
+ return cache;
+}
+
+/**
+ * Mark a function for special use by Sizzle
+ * @param {Function} fn The function to mark
+ */
+function markFunction( fn ) {
+ fn[ expando ] = true;
+ return fn;
+}
+
+/**
+ * Support testing using an element
+ * @param {Function} fn Passed the created element and returns a boolean result
+ */
+function assert( fn ) {
+ var el = document.createElement("fieldset");
+
+ try {
+ return !!fn( el );
+ } catch (e) {
+ return false;
+ } finally {
+ // Remove from its parent by default
+ if ( el.parentNode ) {
+ el.parentNode.removeChild( el );
+ }
+ // release memory in IE
+ el = null;
+ }
+}
+
+/**
+ * Adds the same handler for all of the specified attrs
+ * @param {String} attrs Pipe-separated list of attributes
+ * @param {Function} handler The method that will be applied
+ */
+function addHandle( attrs, handler ) {
+ var arr = attrs.split("|"),
+ i = arr.length;
+
+ while ( i-- ) {
+ Expr.attrHandle[ arr[i] ] = handler;
+ }
+}
+
+/**
+ * Checks document order of two siblings
+ * @param {Element} a
+ * @param {Element} b
+ * @returns {Number} Returns less than 0 if a precedes b, greater than 0 if a follows b
+ */
+function siblingCheck( a, b ) {
+ var cur = b && a,
+ diff = cur && a.nodeType === 1 && b.nodeType === 1 &&
+ a.sourceIndex - b.sourceIndex;
+
+ // Use IE sourceIndex if available on both nodes
+ if ( diff ) {
+ return diff;
+ }
+
+ // Check if b follows a
+ if ( cur ) {
+ while ( (cur = cur.nextSibling) ) {
+ if ( cur === b ) {
+ return -1;
+ }
+ }
+ }
+
+ return a ? 1 : -1;
+}
+
+/**
+ * Returns a function to use in pseudos for input types
+ * @param {String} type
+ */
+function createInputPseudo( type ) {
+ return function( elem ) {
+ var name = elem.nodeName.toLowerCase();
+ return name === "input" && elem.type === type;
+ };
+}
+
+/**
+ * Returns a function to use in pseudos for buttons
+ * @param {String} type
+ */
+function createButtonPseudo( type ) {
+ return function( elem ) {
+ var name = elem.nodeName.toLowerCase();
+ return (name === "input" || name === "button") && elem.type === type;
+ };
+}
+
+/**
+ * Returns a function to use in pseudos for :enabled/:disabled
+ * @param {Boolean} disabled true for :disabled; false for :enabled
+ */
+function createDisabledPseudo( disabled ) {
+
+ // Known :disabled false positives: fieldset[disabled] > legend:nth-of-type(n+2) :can-disable
+ return function( elem ) {
+
+ // Only certain elements can match :enabled or :disabled
+ // https://html.spec.whatwg.org/multipage/scripting.html#selector-enabled
+ // https://html.spec.whatwg.org/multipage/scripting.html#selector-disabled
+ if ( "form" in elem ) {
+
+ // Check for inherited disabledness on relevant non-disabled elements:
+ // * listed form-associated elements in a disabled fieldset
+ // https://html.spec.whatwg.org/multipage/forms.html#category-listed
+ // https://html.spec.whatwg.org/multipage/forms.html#concept-fe-disabled
+ // * option elements in a disabled optgroup
+ // https://html.spec.whatwg.org/multipage/forms.html#concept-option-disabled
+ // All such elements have a "form" property.
+ if ( elem.parentNode && elem.disabled === false ) {
+
+ // Option elements defer to a parent optgroup if present
+ if ( "label" in elem ) {
+ if ( "label" in elem.parentNode ) {
+ return elem.parentNode.disabled === disabled;
+ } else {
+ return elem.disabled === disabled;
+ }
+ }
+
+ // Support: IE 6 - 11
+ // Use the isDisabled shortcut property to check for disabled fieldset ancestors
+ return elem.isDisabled === disabled ||
+
+ // Where there is no isDisabled, check manually
+ /* jshint -W018 */
+ elem.isDisabled !== !disabled &&
+ disabledAncestor( elem ) === disabled;
+ }
+
+ return elem.disabled === disabled;
+
+ // Try to winnow out elements that can't be disabled before trusting the disabled property.
+ // Some victims get caught in our net (label, legend, menu, track), but it shouldn't
+ // even exist on them, let alone have a boolean value.
+ } else if ( "label" in elem ) {
+ return elem.disabled === disabled;
+ }
+
+ // Remaining elements are neither :enabled nor :disabled
+ return false;
+ };
+}
+
+/**
+ * Returns a function to use in pseudos for positionals
+ * @param {Function} fn
+ */
+function createPositionalPseudo( fn ) {
+ return markFunction(function( argument ) {
+ argument = +argument;
+ return markFunction(function( seed, matches ) {
+ var j,
+ matchIndexes = fn( [], seed.length, argument ),
+ i = matchIndexes.length;
+
+ // Match elements found at the specified indexes
+ while ( i-- ) {
+ if ( seed[ (j = matchIndexes[i]) ] ) {
+ seed[j] = !(matches[j] = seed[j]);
+ }
+ }
+ });
+ });
+}
+
+/**
+ * Checks a node for validity as a Sizzle context
+ * @param {Element|Object=} context
+ * @returns {Element|Object|Boolean} The input node if acceptable, otherwise a falsy value
+ */
+function testContext( context ) {
+ return context && typeof context.getElementsByTagName !== "undefined" && context;
+}
+
+// Expose support vars for convenience
+support = Sizzle.support = {};
+
+/**
+ * Detects XML nodes
+ * @param {Element|Object} elem An element or a document
+ * @returns {Boolean} True iff elem is a non-HTML XML node
+ */
+isXML = Sizzle.isXML = function( elem ) {
+ // documentElement is verified for cases where it doesn't yet exist
+ // (such as loading iframes in IE - #4833)
+ var documentElement = elem && (elem.ownerDocument || elem).documentElement;
+ return documentElement ? documentElement.nodeName !== "HTML" : false;
+};
+
+/**
+ * Sets document-related variables once based on the current document
+ * @param {Element|Object} [doc] An element or document object to use to set the document
+ * @returns {Object} Returns the current document
+ */
+setDocument = Sizzle.setDocument = function( node ) {
+ var hasCompare, subWindow,
+ doc = node ? node.ownerDocument || node : preferredDoc;
+
+ // Return early if doc is invalid or already selected
+ if ( doc === document || doc.nodeType !== 9 || !doc.documentElement ) {
+ return document;
+ }
+
+ // Update global variables
+ document = doc;
+ docElem = document.documentElement;
+ documentIsHTML = !isXML( document );
+
+ // Support: IE 9-11, Edge
+ // Accessing iframe documents after unload throws "permission denied" errors (jQuery #13936)
+ if ( preferredDoc !== document &&
+ (subWindow = document.defaultView) && subWindow.top !== subWindow ) {
+
+ // Support: IE 11, Edge
+ if ( subWindow.addEventListener ) {
+ subWindow.addEventListener( "unload", unloadHandler, false );
+
+ // Support: IE 9 - 10 only
+ } else if ( subWindow.attachEvent ) {
+ subWindow.attachEvent( "onunload", unloadHandler );
+ }
+ }
+
+ /* Attributes
+ ---------------------------------------------------------------------- */
+
+ // Support: IE<8
+ // Verify that getAttribute really returns attributes and not properties
+ // (excepting IE8 booleans)
+ support.attributes = assert(function( el ) {
+ el.className = "i";
+ return !el.getAttribute("className");
+ });
+
+ /* getElement(s)By*
+ ---------------------------------------------------------------------- */
+
+ // Check if getElementsByTagName("*") returns only elements
+ support.getElementsByTagName = assert(function( el ) {
+ el.appendChild( document.createComment("") );
+ return !el.getElementsByTagName("*").length;
+ });
+
+ // Support: IE<9
+ support.getElementsByClassName = rnative.test( document.getElementsByClassName );
+
+ // Support: IE<10
+ // Check if getElementById returns elements by name
+ // The broken getElementById methods don't pick up programmatically-set names,
+ // so use a roundabout getElementsByName test
+ support.getById = assert(function( el ) {
+ docElem.appendChild( el ).id = expando;
+ return !document.getElementsByName || !document.getElementsByName( expando ).length;
+ });
+
+ // ID filter and find
+ if ( support.getById ) {
+ Expr.filter["ID"] = function( id ) {
+ var attrId = id.replace( runescape, funescape );
+ return function( elem ) {
+ return elem.getAttribute("id") === attrId;
+ };
+ };
+ Expr.find["ID"] = function( id, context ) {
+ if ( typeof context.getElementById !== "undefined" && documentIsHTML ) {
+ var elem = context.getElementById( id );
+ return elem ? [ elem ] : [];
+ }
+ };
+ } else {
+ Expr.filter["ID"] = function( id ) {
+ var attrId = id.replace( runescape, funescape );
+ return function( elem ) {
+ var node = typeof elem.getAttributeNode !== "undefined" &&
+ elem.getAttributeNode("id");
+ return node && node.value === attrId;
+ };
+ };
+
+ // Support: IE 6 - 7 only
+ // getElementById is not reliable as a find shortcut
+ Expr.find["ID"] = function( id, context ) {
+ if ( typeof context.getElementById !== "undefined" && documentIsHTML ) {
+ var node, i, elems,
+ elem = context.getElementById( id );
+
+ if ( elem ) {
+
+ // Verify the id attribute
+ node = elem.getAttributeNode("id");
+ if ( node && node.value === id ) {
+ return [ elem ];
+ }
+
+ // Fall back on getElementsByName
+ elems = context.getElementsByName( id );
+ i = 0;
+ while ( (elem = elems[i++]) ) {
+ node = elem.getAttributeNode("id");
+ if ( node && node.value === id ) {
+ return [ elem ];
+ }
+ }
+ }
+
+ return [];
+ }
+ };
+ }
+
+ // Tag
+ Expr.find["TAG"] = support.getElementsByTagName ?
+ function( tag, context ) {
+ if ( typeof context.getElementsByTagName !== "undefined" ) {
+ return context.getElementsByTagName( tag );
+
+ // DocumentFragment nodes don't have gEBTN
+ } else if ( support.qsa ) {
+ return context.querySelectorAll( tag );
+ }
+ } :
+
+ function( tag, context ) {
+ var elem,
+ tmp = [],
+ i = 0,
+ // By happy coincidence, a (broken) gEBTN appears on DocumentFragment nodes too
+ results = context.getElementsByTagName( tag );
+
+ // Filter out possible comments
+ if ( tag === "*" ) {
+ while ( (elem = results[i++]) ) {
+ if ( elem.nodeType === 1 ) {
+ tmp.push( elem );
+ }
+ }
+
+ return tmp;
+ }
+ return results;
+ };
+
+ // Class
+ Expr.find["CLASS"] = support.getElementsByClassName && function( className, context ) {
+ if ( typeof context.getElementsByClassName !== "undefined" && documentIsHTML ) {
+ return context.getElementsByClassName( className );
+ }
+ };
+
+ /* QSA/matchesSelector
+ ---------------------------------------------------------------------- */
+
+ // QSA and matchesSelector support
+
+ // matchesSelector(:active) reports false when true (IE9/Opera 11.5)
+ rbuggyMatches = [];
+
+ // qSa(:focus) reports false when true (Chrome 21)
+ // We allow this because of a bug in IE8/9 that throws an error
+ // whenever `document.activeElement` is accessed on an iframe
+ // So, we allow :focus to pass through QSA all the time to avoid the IE error
+ // See https://bugs.jquery.com/ticket/13378
+ rbuggyQSA = [];
+
+ if ( (support.qsa = rnative.test( document.querySelectorAll )) ) {
+ // Build QSA regex
+ // Regex strategy adopted from Diego Perini
+ assert(function( el ) {
+ // Select is set to empty string on purpose
+ // This is to test IE's treatment of not explicitly
+ // setting a boolean content attribute,
+ // since its presence should be enough
+ // https://bugs.jquery.com/ticket/12359
+ docElem.appendChild( el ).innerHTML = "<a id='" + expando + "'></a>" +
+ "<select id='" + expando + "-\r\\' msallowcapture=''>" +
+ "<option selected=''></option></select>";
+
+ // Support: IE8, Opera 11-12.16
+ // Nothing should be selected when empty strings follow ^= or $= or *=
+ // The test attribute must be unknown in Opera but "safe" for WinRT
+ // https://msdn.microsoft.com/en-us/library/ie/hh465388.aspx#attribute_section
+ if ( el.querySelectorAll("[msallowcapture^='']").length ) {
+ rbuggyQSA.push( "[*^$]=" + whitespace + "*(?:''|\"\")" );
+ }
+
+ // Support: IE8
+ // Boolean attributes and "value" are not treated correctly
+ if ( !el.querySelectorAll("[selected]").length ) {
+ rbuggyQSA.push( "\\[" + whitespace + "*(?:value|" + booleans + ")" );
+ }
+
+ // Support: Chrome<29, Android<4.4, Safari<7.0+, iOS<7.0+, PhantomJS<1.9.8+
+ if ( !el.querySelectorAll( "[id~=" + expando + "-]" ).length ) {
+ rbuggyQSA.push("~=");
+ }
+
+ // Webkit/Opera - :checked should return selected option elements
+ // http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked
+ // IE8 throws error here and will not see later tests
+ if ( !el.querySelectorAll(":checked").length ) {
+ rbuggyQSA.push(":checked");
+ }
+
+ // Support: Safari 8+, iOS 8+
+ // https://bugs.webkit.org/show_bug.cgi?id=136851
+ // In-page `selector#id sibling-combinator selector` fails
+ if ( !el.querySelectorAll( "a#" + expando + "+*" ).length ) {
+ rbuggyQSA.push(".#.+[+~]");
+ }
+ });
+
+ assert(function( el ) {
+ el.innerHTML = "<a href='' disabled='disabled'></a>" +
+ "<select disabled='disabled'><option/></select>";
+
+ // Support: Windows 8 Native Apps
+ // The type and name attributes are restricted during .innerHTML assignment
+ var input = document.createElement("input");
+ input.setAttribute( "type", "hidden" );
+ el.appendChild( input ).setAttribute( "name", "D" );
+
+ // Support: IE8
+ // Enforce case-sensitivity of name attribute
+ if ( el.querySelectorAll("[name=d]").length ) {
+ rbuggyQSA.push( "name" + whitespace + "*[*^$|!~]?=" );
+ }
+
+ // FF 3.5 - :enabled/:disabled and hidden elements (hidden elements are still enabled)
+ // IE8 throws error here and will not see later tests
+ if ( el.querySelectorAll(":enabled").length !== 2 ) {
+ rbuggyQSA.push( ":enabled", ":disabled" );
+ }
+
+ // Support: IE9-11+
+ // IE's :disabled selector does not pick up the children of disabled fieldsets
+ docElem.appendChild( el ).disabled = true;
+ if ( el.querySelectorAll(":disabled").length !== 2 ) {
+ rbuggyQSA.push( ":enabled", ":disabled" );
+ }
+
+ // Opera 10-11 does not throw on post-comma invalid pseudos
+ el.querySelectorAll("*,:x");
+ rbuggyQSA.push(",.*:");
+ });
+ }
+
+ if ( (support.matchesSelector = rnative.test( (matches = docElem.matches ||
+ docElem.webkitMatchesSelector ||
+ docElem.mozMatchesSelector ||
+ docElem.oMatchesSelector ||
+ docElem.msMatchesSelector) )) ) {
+
+ assert(function( el ) {
+ // Check to see if it's possible to do matchesSelector
+ // on a disconnected node (IE 9)
+ support.disconnectedMatch = matches.call( el, "*" );
+
+ // This should fail with an exception
+ // Gecko does not error, returns false instead
+ matches.call( el, "[s!='']:x" );
+ rbuggyMatches.push( "!=", pseudos );
+ });
+ }
+
+ rbuggyQSA = rbuggyQSA.length && new RegExp( rbuggyQSA.join("|") );
+ rbuggyMatches = rbuggyMatches.length && new RegExp( rbuggyMatches.join("|") );
+
+ /* Contains
+ ---------------------------------------------------------------------- */
+ hasCompare = rnative.test( docElem.compareDocumentPosition );
+
+ // Element contains another
+ // Purposefully self-exclusive
+ // As in, an element does not contain itself
+ contains = hasCompare || rnative.test( docElem.contains ) ?
+ function( a, b ) {
+ var adown = a.nodeType === 9 ? a.documentElement : a,
+ bup = b && b.parentNode;
+ return a === bup || !!( bup && bup.nodeType === 1 && (
+ adown.contains ?
+ adown.contains( bup ) :
+ a.compareDocumentPosition && a.compareDocumentPosition( bup ) & 16
+ ));
+ } :
+ function( a, b ) {
+ if ( b ) {
+ while ( (b = b.parentNode) ) {
+ if ( b === a ) {
+ return true;
+ }
+ }
+ }
+ return false;
+ };
+
+ /* Sorting
+ ---------------------------------------------------------------------- */
+
+ // Document order sorting
+ sortOrder = hasCompare ?
+ function( a, b ) {
+
+ // Flag for duplicate removal
+ if ( a === b ) {
+ hasDuplicate = true;
+ return 0;
+ }
+
+ // Sort on method existence if only one input has compareDocumentPosition
+ var compare = !a.compareDocumentPosition - !b.compareDocumentPosition;
+ if ( compare ) {
+ return compare;
+ }
+
+ // Calculate position if both inputs belong to the same document
+ compare = ( a.ownerDocument || a ) === ( b.ownerDocument || b ) ?
+ a.compareDocumentPosition( b ) :
+
+ // Otherwise we know they are disconnected
+ 1;
+
+ // Disconnected nodes
+ if ( compare & 1 ||
+ (!support.sortDetached && b.compareDocumentPosition( a ) === compare) ) {
+
+ // Choose the first element that is related to our preferred document
+ if ( a === document || a.ownerDocument === preferredDoc && contains(preferredDoc, a) ) {
+ return -1;
+ }
+ if ( b === document || b.ownerDocument === preferredDoc && contains(preferredDoc, b) ) {
+ return 1;
+ }
+
+ // Maintain original order
+ return sortInput ?
+ ( indexOf( sortInput, a ) - indexOf( sortInput, b ) ) :
+ 0;
+ }
+
+ return compare & 4 ? -1 : 1;
+ } :
+ function( a, b ) {
+ // Exit early if the nodes are identical
+ if ( a === b ) {
+ hasDuplicate = true;
+ return 0;
+ }
+
+ var cur,
+ i = 0,
+ aup = a.parentNode,
+ bup = b.parentNode,
+ ap = [ a ],
+ bp = [ b ];
+
+ // Parentless nodes are either documents or disconnected
+ if ( !aup || !bup ) {
+ return a === document ? -1 :
+ b === document ? 1 :
+ aup ? -1 :
+ bup ? 1 :
+ sortInput ?
+ ( indexOf( sortInput, a ) - indexOf( sortInput, b ) ) :
+ 0;
+
+ // If the nodes are siblings, we can do a quick check
+ } else if ( aup === bup ) {
+ return siblingCheck( a, b );
+ }
+
+ // Otherwise we need full lists of their ancestors for comparison
+ cur = a;
+ while ( (cur = cur.parentNode) ) {
+ ap.unshift( cur );
+ }
+ cur = b;
+ while ( (cur = cur.parentNode) ) {
+ bp.unshift( cur );
+ }
+
+ // Walk down the tree looking for a discrepancy
+ while ( ap[i] === bp[i] ) {
+ i++;
+ }
+
+ return i ?
+ // Do a sibling check if the nodes have a common ancestor
+ siblingCheck( ap[i], bp[i] ) :
+
+ // Otherwise nodes in our document sort first
+ ap[i] === preferredDoc ? -1 :
+ bp[i] === preferredDoc ? 1 :
+ 0;
+ };
+
+ return document;
+};
+
+Sizzle.matches = function( expr, elements ) {
+ return Sizzle( expr, null, null, elements );
+};
+
+Sizzle.matchesSelector = function( elem, expr ) {
+ // Set document vars if needed
+ if ( ( elem.ownerDocument || elem ) !== document ) {
+ setDocument( elem );
+ }
+
+ // Make sure that attribute selectors are quoted
+ expr = expr.replace( rattributeQuotes, "='$1']" );
+
+ if ( support.matchesSelector && documentIsHTML &&
+ !compilerCache[ expr + " " ] &&
+ ( !rbuggyMatches || !rbuggyMatches.test( expr ) ) &&
+ ( !rbuggyQSA || !rbuggyQSA.test( expr ) ) ) {
+
+ try {
+ var ret = matches.call( elem, expr );
+
+ // IE 9's matchesSelector returns false on disconnected nodes
+ if ( ret || support.disconnectedMatch ||
+ // As well, disconnected nodes are said to be in a document
+ // fragment in IE 9
+ elem.document && elem.document.nodeType !== 11 ) {
+ return ret;
+ }
+ } catch (e) {}
+ }
+
+ return Sizzle( expr, document, null, [ elem ] ).length > 0;
+};
+
+Sizzle.contains = function( context, elem ) {
+ // Set document vars if needed
+ if ( ( context.ownerDocument || context ) !== document ) {
+ setDocument( context );
+ }
+ return contains( context, elem );
+};
+
+Sizzle.attr = function( elem, name ) {
+ // Set document vars if needed
+ if ( ( elem.ownerDocument || elem ) !== document ) {
+ setDocument( elem );
+ }
+
+ var fn = Expr.attrHandle[ name.toLowerCase() ],
+ // Don't get fooled by Object.prototype properties (jQuery #13807)
+ val = fn && hasOwn.call( Expr.attrHandle, name.toLowerCase() ) ?
+ fn( elem, name, !documentIsHTML ) :
+ undefined;
+
+ return val !== undefined ?
+ val :
+ support.attributes || !documentIsHTML ?
+ elem.getAttribute( name ) :
+ (val = elem.getAttributeNode(name)) && val.specified ?
+ val.value :
+ null;
+};
+
+Sizzle.escape = function( sel ) {
+ return (sel + "").replace( rcssescape, fcssescape );
+};
+
+Sizzle.error = function( msg ) {
+ throw new Error( "Syntax error, unrecognized expression: " + msg );
+};
+
+/**
+ * Document sorting and removing duplicates
+ * @param {ArrayLike} results
+ */
+Sizzle.uniqueSort = function( results ) {
+ var elem,
+ duplicates = [],
+ j = 0,
+ i = 0;
+
+ // Unless we *know* we can detect duplicates, assume their presence
+ hasDuplicate = !support.detectDuplicates;
+ sortInput = !support.sortStable && results.slice( 0 );
+ results.sort( sortOrder );
+
+ if ( hasDuplicate ) {
+ while ( (elem = results[i++]) ) {
+ if ( elem === results[ i ] ) {
+ j = duplicates.push( i );
+ }
+ }
+ while ( j-- ) {
+ results.splice( duplicates[ j ], 1 );
+ }
+ }
+
+ // Clear input after sorting to release objects
+ // See https://github.com/jquery/sizzle/pull/225
+ sortInput = null;
+
+ return results;
+};
+
+/**
+ * Utility function for retrieving the text value of an array of DOM nodes
+ * @param {Array|Element} elem
+ */
+getText = Sizzle.getText = function( elem ) {
+ var node,
+ ret = "",
+ i = 0,
+ nodeType = elem.nodeType;
+
+ if ( !nodeType ) {
+ // If no nodeType, this is expected to be an array
+ while ( (node = elem[i++]) ) {
+ // Do not traverse comment nodes
+ ret += getText( node );
+ }
+ } else if ( nodeType === 1 || nodeType === 9 || nodeType === 11 ) {
+ // Use textContent for elements
+ // innerText usage removed for consistency of new lines (jQuery #11153)
+ if ( typeof elem.textContent === "string" ) {
+ return elem.textContent;
+ } else {
+ // Traverse its children
+ for ( elem = elem.firstChild; elem; elem = elem.nextSibling ) {
+ ret += getText( elem );
+ }
+ }
+ } else if ( nodeType === 3 || nodeType === 4 ) {
+ return elem.nodeValue;
+ }
+ // Do not include comment or processing instruction nodes
+
+ return ret;
+};
+
+Expr = Sizzle.selectors = {
+
+ // Can be adjusted by the user
+ cacheLength: 50,
+
+ createPseudo: markFunction,
+
+ match: matchExpr,
+
+ attrHandle: {},
+
+ find: {},
+
+ relative: {
+ ">": { dir: "parentNode", first: true },
+ " ": { dir: "parentNode" },
+ "+": { dir: "previousSibling", first: true },
+ "~": { dir: "previousSibling" }
+ },
+
+ preFilter: {
+ "ATTR": function( match ) {
+ match[1] = match[1].replace( runescape, funescape );
+
+ // Move the given value to match[3] whether quoted or unquoted
+ match[3] = ( match[3] || match[4] || match[5] || "" ).replace( runescape, funescape );
+
+ if ( match[2] === "~=" ) {
+ match[3] = " " + match[3] + " ";
+ }
+
+ return match.slice( 0, 4 );
+ },
+
+ "CHILD": function( match ) {
+ /* matches from matchExpr["CHILD"]
+ 1 type (only|nth|...)
+ 2 what (child|of-type)
+ 3 argument (even|odd|\d*|\d*n([+-]\d+)?|...)
+ 4 xn-component of xn+y argument ([+-]?\d*n|)
+ 5 sign of xn-component
+ 6 x of xn-component
+ 7 sign of y-component
+ 8 y of y-component
+ */
+ match[1] = match[1].toLowerCase();
+
+ if ( match[1].slice( 0, 3 ) === "nth" ) {
+ // nth-* requires argument
+ if ( !match[3] ) {
+ Sizzle.error( match[0] );
+ }
+
+ // numeric x and y parameters for Expr.filter.CHILD
+ // remember that false/true cast respectively to 0/1
+ match[4] = +( match[4] ? match[5] + (match[6] || 1) : 2 * ( match[3] === "even" || match[3] === "odd" ) );
+ match[5] = +( ( match[7] + match[8] ) || match[3] === "odd" );
+
+ // other types prohibit arguments
+ } else if ( match[3] ) {
+ Sizzle.error( match[0] );
+ }
+
+ return match;
+ },
+
+ "PSEUDO": function( match ) {
+ var excess,
+ unquoted = !match[6] && match[2];
+
+ if ( matchExpr["CHILD"].test( match[0] ) ) {
+ return null;
+ }
+
+ // Accept quoted arguments as-is
+ if ( match[3] ) {
+ match[2] = match[4] || match[5] || "";
+
+ // Strip excess characters from unquoted arguments
+ } else if ( unquoted && rpseudo.test( unquoted ) &&
+ // Get excess from tokenize (recursively)
+ (excess = tokenize( unquoted, true )) &&
+ // advance to the next closing parenthesis
+ (excess = unquoted.indexOf( ")", unquoted.length - excess ) - unquoted.length) ) {
+
+ // excess is a negative index
+ match[0] = match[0].slice( 0, excess );
+ match[2] = unquoted.slice( 0, excess );
+ }
+
+ // Return only captures needed by the pseudo filter method (type and argument)
+ return match.slice( 0, 3 );
+ }
+ },
+
+ filter: {
+
+ "TAG": function( nodeNameSelector ) {
+ var nodeName = nodeNameSelector.replace( runescape, funescape ).toLowerCase();
+ return nodeNameSelector === "*" ?
+ function() { return true; } :
+ function( elem ) {
+ return elem.nodeName && elem.nodeName.toLowerCase() === nodeName;
+ };
+ },
+
+ "CLASS": function( className ) {
+ var pattern = classCache[ className + " " ];
+
+ return pattern ||
+ (pattern = new RegExp( "(^|" + whitespace + ")" + className + "(" + whitespace + "|$)" )) &&
+ classCache( className, function( elem ) {
+ return pattern.test( typeof elem.className === "string" && elem.className || typeof elem.getAttribute !== "undefined" && elem.getAttribute("class") || "" );
+ });
+ },
+
+ "ATTR": function( name, operator, check ) {
+ return function( elem ) {
+ var result = Sizzle.attr( elem, name );
+
+ if ( result == null ) {
+ return operator === "!=";
+ }
+ if ( !operator ) {
+ return true;
+ }
+
+ result += "";
+
+ return operator === "=" ? result === check :
+ operator === "!=" ? result !== check :
+ operator === "^=" ? check && result.indexOf( check ) === 0 :
+ operator === "*=" ? check && result.indexOf( check ) > -1 :
+ operator === "$=" ? check && result.slice( -check.length ) === check :
+ operator === "~=" ? ( " " + result.replace( rwhitespace, " " ) + " " ).indexOf( check ) > -1 :
+ operator === "|=" ? result === check || result.slice( 0, check.length + 1 ) === check + "-" :
+ false;
+ };
+ },
+
+ "CHILD": function( type, what, argument, first, last ) {
+ var simple = type.slice( 0, 3 ) !== "nth",
+ forward = type.slice( -4 ) !== "last",
+ ofType = what === "of-type";
+
+ return first === 1 && last === 0 ?
+
+ // Shortcut for :nth-*(n)
+ function( elem ) {
+ return !!elem.parentNode;
+ } :
+
+ function( elem, context, xml ) {
+ var cache, uniqueCache, outerCache, node, nodeIndex, start,
+ dir = simple !== forward ? "nextSibling" : "previousSibling",
+ parent = elem.parentNode,
+ name = ofType && elem.nodeName.toLowerCase(),
+ useCache = !xml && !ofType,
+ diff = false;
+
+ if ( parent ) {
+
+ // :(first|last|only)-(child|of-type)
+ if ( simple ) {
+ while ( dir ) {
+ node = elem;
+ while ( (node = node[ dir ]) ) {
+ if ( ofType ?
+ node.nodeName.toLowerCase() === name :
+ node.nodeType === 1 ) {
+
+ return false;
+ }
+ }
+ // Reverse direction for :only-* (if we haven't yet done so)
+ start = dir = type === "only" && !start && "nextSibling";
+ }
+ return true;
+ }
+
+ start = [ forward ? parent.firstChild : parent.lastChild ];
+
+ // non-xml :nth-child(...) stores cache data on `parent`
+ if ( forward && useCache ) {
+
+ // Seek `elem` from a previously-cached index
+
+ // ...in a gzip-friendly way
+ node = parent;
+ outerCache = node[ expando ] || (node[ expando ] = {});
+
+ // Support: IE <9 only
+ // Defend against cloned attroperties (jQuery gh-1709)
+ uniqueCache = outerCache[ node.uniqueID ] ||
+ (outerCache[ node.uniqueID ] = {});
+
+ cache = uniqueCache[ type ] || [];
+ nodeIndex = cache[ 0 ] === dirruns && cache[ 1 ];
+ diff = nodeIndex && cache[ 2 ];
+ node = nodeIndex && parent.childNodes[ nodeIndex ];
+
+ while ( (node = ++nodeIndex && node && node[ dir ] ||
+
+ // Fallback to seeking `elem` from the start
+ (diff = nodeIndex = 0) || start.pop()) ) {
+
+ // When found, cache indexes on `parent` and break
+ if ( node.nodeType === 1 && ++diff && node === elem ) {
+ uniqueCache[ type ] = [ dirruns, nodeIndex, diff ];
+ break;
+ }
+ }
+
+ } else {
+ // Use previously-cached element index if available
+ if ( useCache ) {
+ // ...in a gzip-friendly way
+ node = elem;
+ outerCache = node[ expando ] || (node[ expando ] = {});
+
+ // Support: IE <9 only
+ // Defend against cloned attroperties (jQuery gh-1709)
+ uniqueCache = outerCache[ node.uniqueID ] ||
+ (outerCache[ node.uniqueID ] = {});
+
+ cache = uniqueCache[ type ] || [];
+ nodeIndex = cache[ 0 ] === dirruns && cache[ 1 ];
+ diff = nodeIndex;
+ }
+
+ // xml :nth-child(...)
+ // or :nth-last-child(...) or :nth(-last)?-of-type(...)
+ if ( diff === false ) {
+ // Use the same loop as above to seek `elem` from the start
+ while ( (node = ++nodeIndex && node && node[ dir ] ||
+ (diff = nodeIndex = 0) || start.pop()) ) {
+
+ if ( ( ofType ?
+ node.nodeName.toLowerCase() === name :
+ node.nodeType === 1 ) &&
+ ++diff ) {
+
+ // Cache the index of each encountered element
+ if ( useCache ) {
+ outerCache = node[ expando ] || (node[ expando ] = {});
+
+ // Support: IE <9 only
+ // Defend against cloned attroperties (jQuery gh-1709)
+ uniqueCache = outerCache[ node.uniqueID ] ||
+ (outerCache[ node.uniqueID ] = {});
+
+ uniqueCache[ type ] = [ dirruns, diff ];
+ }
+
+ if ( node === elem ) {
+ break;
+ }
+ }
+ }
+ }
+ }
+
+ // Incorporate the offset, then check against cycle size
+ diff -= last;
+ return diff === first || ( diff % first === 0 && diff / first >= 0 );
+ }
+ };
+ },
+
+ "PSEUDO": function( pseudo, argument ) {
+ // pseudo-class names are case-insensitive
+ // http://www.w3.org/TR/selectors/#pseudo-classes
+ // Prioritize by case sensitivity in case custom pseudos are added with uppercase letters
+ // Remember that setFilters inherits from pseudos
+ var args,
+ fn = Expr.pseudos[ pseudo ] || Expr.setFilters[ pseudo.toLowerCase() ] ||
+ Sizzle.error( "unsupported pseudo: " + pseudo );
+
+ // The user may use createPseudo to indicate that
+ // arguments are needed to create the filter function
+ // just as Sizzle does
+ if ( fn[ expando ] ) {
+ return fn( argument );
+ }
+
+ // But maintain support for old signatures
+ if ( fn.length > 1 ) {
+ args = [ pseudo, pseudo, "", argument ];
+ return Expr.setFilters.hasOwnProperty( pseudo.toLowerCase() ) ?
+ markFunction(function( seed, matches ) {
+ var idx,
+ matched = fn( seed, argument ),
+ i = matched.length;
+ while ( i-- ) {
+ idx = indexOf( seed, matched[i] );
+ seed[ idx ] = !( matches[ idx ] = matched[i] );
+ }
+ }) :
+ function( elem ) {
+ return fn( elem, 0, args );
+ };
+ }
+
+ return fn;
+ }
+ },
+
+ pseudos: {
+ // Potentially complex pseudos
+ "not": markFunction(function( selector ) {
+ // Trim the selector passed to compile
+ // to avoid treating leading and trailing
+ // spaces as combinators
+ var input = [],
+ results = [],
+ matcher = compile( selector.replace( rtrim, "$1" ) );
+
+ return matcher[ expando ] ?
+ markFunction(function( seed, matches, context, xml ) {
+ var elem,
+ unmatched = matcher( seed, null, xml, [] ),
+ i = seed.length;
+
+ // Match elements unmatched by `matcher`
+ while ( i-- ) {
+ if ( (elem = unmatched[i]) ) {
+ seed[i] = !(matches[i] = elem);
+ }
+ }
+ }) :
+ function( elem, context, xml ) {
+ input[0] = elem;
+ matcher( input, null, xml, results );
+ // Don't keep the element (issue #299)
+ input[0] = null;
+ return !results.pop();
+ };
+ }),
+
+ "has": markFunction(function( selector ) {
+ return function( elem ) {
+ return Sizzle( selector, elem ).length > 0;
+ };
+ }),
+
+ "contains": markFunction(function( text ) {
+ text = text.replace( runescape, funescape );
+ return function( elem ) {
+ return ( elem.textContent || elem.innerText || getText( elem ) ).indexOf( text ) > -1;
+ };
+ }),
+
+ // "Whether an element is represented by a :lang() selector
+ // is based solely on the element's language value
+ // being equal to the identifier C,
+ // or beginning with the identifier C immediately followed by "-".
+ // The matching of C against the element's language value is performed case-insensitively.
+ // The identifier C does not have to be a valid language name."
+ // http://www.w3.org/TR/selectors/#lang-pseudo
+ "lang": markFunction( function( lang ) {
+ // lang value must be a valid identifier
+ if ( !ridentifier.test(lang || "") ) {
+ Sizzle.error( "unsupported lang: " + lang );
+ }
+ lang = lang.replace( runescape, funescape ).toLowerCase();
+ return function( elem ) {
+ var elemLang;
+ do {
+ if ( (elemLang = documentIsHTML ?
+ elem.lang :
+ elem.getAttribute("xml:lang") || elem.getAttribute("lang")) ) {
+
+ elemLang = elemLang.toLowerCase();
+ return elemLang === lang || elemLang.indexOf( lang + "-" ) === 0;
+ }
+ } while ( (elem = elem.parentNode) && elem.nodeType === 1 );
+ return false;
+ };
+ }),
+
+ // Miscellaneous
+ "target": function( elem ) {
+ var hash = window.location && window.location.hash;
+ return hash && hash.slice( 1 ) === elem.id;
+ },
+
+ "root": function( elem ) {
+ return elem === docElem;
+ },
+
+ "focus": function( elem ) {
+ return elem === document.activeElement && (!document.hasFocus || document.hasFocus()) && !!(elem.type || elem.href || ~elem.tabIndex);
+ },
+
+ // Boolean properties
+ "enabled": createDisabledPseudo( false ),
+ "disabled": createDisabledPseudo( true ),
+
+ "checked": function( elem ) {
+ // In CSS3, :checked should return both checked and selected elements
+ // http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked
+ var nodeName = elem.nodeName.toLowerCase();
+ return (nodeName === "input" && !!elem.checked) || (nodeName === "option" && !!elem.selected);
+ },
+
+ "selected": function( elem ) {
+ // Accessing this property makes selected-by-default
+ // options in Safari work properly
+ if ( elem.parentNode ) {
+ elem.parentNode.selectedIndex;
+ }
+
+ return elem.selected === true;
+ },
+
+ // Contents
+ "empty": function( elem ) {
+ // http://www.w3.org/TR/selectors/#empty-pseudo
+ // :empty is negated by element (1) or content nodes (text: 3; cdata: 4; entity ref: 5),
+ // but not by others (comment: 8; processing instruction: 7; etc.)
+ // nodeType < 6 works because attributes (2) do not appear as children
+ for ( elem = elem.firstChild; elem; elem = elem.nextSibling ) {
+ if ( elem.nodeType < 6 ) {
+ return false;
+ }
+ }
+ return true;
+ },
+
+ "parent": function( elem ) {
+ return !Expr.pseudos["empty"]( elem );
+ },
+
+ // Element/input types
+ "header": function( elem ) {
+ return rheader.test( elem.nodeName );
+ },
+
+ "input": function( elem ) {
+ return rinputs.test( elem.nodeName );
+ },
+
+ "button": function( elem ) {
+ var name = elem.nodeName.toLowerCase();
+ return name === "input" && elem.type === "button" || name === "button";
+ },
+
+ "text": function( elem ) {
+ var attr;
+ return elem.nodeName.toLowerCase() === "input" &&
+ elem.type === "text" &&
+
+ // Support: IE<8
+ // New HTML5 attribute values (e.g., "search") appear with elem.type === "text"
+ ( (attr = elem.getAttribute("type")) == null || attr.toLowerCase() === "text" );
+ },
+
+ // Position-in-collection
+ "first": createPositionalPseudo(function() {
+ return [ 0 ];
+ }),
+
+ "last": createPositionalPseudo(function( matchIndexes, length ) {
+ return [ length - 1 ];
+ }),
+
+ "eq": createPositionalPseudo(function( matchIndexes, length, argument ) {
+ return [ argument < 0 ? argument + length : argument ];
+ }),
+
+ "even": createPositionalPseudo(function( matchIndexes, length ) {
+ var i = 0;
+ for ( ; i < length; i += 2 ) {
+ matchIndexes.push( i );
+ }
+ return matchIndexes;
+ }),
+
+ "odd": createPositionalPseudo(function( matchIndexes, length ) {
+ var i = 1;
+ for ( ; i < length; i += 2 ) {
+ matchIndexes.push( i );
+ }
+ return matchIndexes;
+ }),
+
+ "lt": createPositionalPseudo(function( matchIndexes, length, argument ) {
+ var i = argument < 0 ? argument + length : argument;
+ for ( ; --i >= 0; ) {
+ matchIndexes.push( i );
+ }
+ return matchIndexes;
+ }),
+
+ "gt": createPositionalPseudo(function( matchIndexes, length, argument ) {
+ var i = argument < 0 ? argument + length : argument;
+ for ( ; ++i < length; ) {
+ matchIndexes.push( i );
+ }
+ return matchIndexes;
+ })
+ }
+};
+
+Expr.pseudos["nth"] = Expr.pseudos["eq"];
+
+// Add button/input type pseudos
+for ( i in { radio: true, checkbox: true, file: true, password: true, image: true } ) {
+ Expr.pseudos[ i ] = createInputPseudo( i );
+}
+for ( i in { submit: true, reset: true } ) {
+ Expr.pseudos[ i ] = createButtonPseudo( i );
+}
+
+// Easy API for creating new setFilters
+function setFilters() {}
+setFilters.prototype = Expr.filters = Expr.pseudos;
+Expr.setFilters = new setFilters();
+
+tokenize = Sizzle.tokenize = function( selector, parseOnly ) {
+ var matched, match, tokens, type,
+ soFar, groups, preFilters,
+ cached = tokenCache[ selector + " " ];
+
+ if ( cached ) {
+ return parseOnly ? 0 : cached.slice( 0 );
+ }
+
+ soFar = selector;
+ groups = [];
+ preFilters = Expr.preFilter;
+
+ while ( soFar ) {
+
+ // Comma and first run
+ if ( !matched || (match = rcomma.exec( soFar )) ) {
+ if ( match ) {
+ // Don't consume trailing commas as valid
+ soFar = soFar.slice( match[0].length ) || soFar;
+ }
+ groups.push( (tokens = []) );
+ }
+
+ matched = false;
+
+ // Combinators
+ if ( (match = rcombinators.exec( soFar )) ) {
+ matched = match.shift();
+ tokens.push({
+ value: matched,
+ // Cast descendant combinators to space
+ type: match[0].replace( rtrim, " " )
+ });
+ soFar = soFar.slice( matched.length );
+ }
+
+ // Filters
+ for ( type in Expr.filter ) {
+ if ( (match = matchExpr[ type ].exec( soFar )) && (!preFilters[ type ] ||
+ (match = preFilters[ type ]( match ))) ) {
+ matched = match.shift();
+ tokens.push({
+ value: matched,
+ type: type,
+ matches: match
+ });
+ soFar = soFar.slice( matched.length );
+ }
+ }
+
+ if ( !matched ) {
+ break;
+ }
+ }
+
+ // Return the length of the invalid excess
+ // if we're just parsing
+ // Otherwise, throw an error or return tokens
+ return parseOnly ?
+ soFar.length :
+ soFar ?
+ Sizzle.error( selector ) :
+ // Cache the tokens
+ tokenCache( selector, groups ).slice( 0 );
+};
+
+function toSelector( tokens ) {
+ var i = 0,
+ len = tokens.length,
+ selector = "";
+ for ( ; i < len; i++ ) {
+ selector += tokens[i].value;
+ }
+ return selector;
+}
+
+function addCombinator( matcher, combinator, base ) {
+ var dir = combinator.dir,
+ skip = combinator.next,
+ key = skip || dir,
+ checkNonElements = base && key === "parentNode",
+ doneName = done++;
+
+ return combinator.first ?
+ // Check against closest ancestor/preceding element
+ function( elem, context, xml ) {
+ while ( (elem = elem[ dir ]) ) {
+ if ( elem.nodeType === 1 || checkNonElements ) {
+ return matcher( elem, context, xml );
+ }
+ }
+ return false;
+ } :
+
+ // Check against all ancestor/preceding elements
+ function( elem, context, xml ) {
+ var oldCache, uniqueCache, outerCache,
+ newCache = [ dirruns, doneName ];
+
+ // We can't set arbitrary data on XML nodes, so they don't benefit from combinator caching
+ if ( xml ) {
+ while ( (elem = elem[ dir ]) ) {
+ if ( elem.nodeType === 1 || checkNonElements ) {
+ if ( matcher( elem, context, xml ) ) {
+ return true;
+ }
+ }
+ }
+ } else {
+ while ( (elem = elem[ dir ]) ) {
+ if ( elem.nodeType === 1 || checkNonElements ) {
+ outerCache = elem[ expando ] || (elem[ expando ] = {});
+
+ // Support: IE <9 only
+ // Defend against cloned attroperties (jQuery gh-1709)
+ uniqueCache = outerCache[ elem.uniqueID ] || (outerCache[ elem.uniqueID ] = {});
+
+ if ( skip && skip === elem.nodeName.toLowerCase() ) {
+ elem = elem[ dir ] || elem;
+ } else if ( (oldCache = uniqueCache[ key ]) &&
+ oldCache[ 0 ] === dirruns && oldCache[ 1 ] === doneName ) {
+
+ // Assign to newCache so results back-propagate to previous elements
+ return (newCache[ 2 ] = oldCache[ 2 ]);
+ } else {
+ // Reuse newcache so results back-propagate to previous elements
+ uniqueCache[ key ] = newCache;
+
+ // A match means we're done; a fail means we have to keep checking
+ if ( (newCache[ 2 ] = matcher( elem, context, xml )) ) {
+ return true;
+ }
+ }
+ }
+ }
+ }
+ return false;
+ };
+}
+
+function elementMatcher( matchers ) {
+ return matchers.length > 1 ?
+ function( elem, context, xml ) {
+ var i = matchers.length;
+ while ( i-- ) {
+ if ( !matchers[i]( elem, context, xml ) ) {
+ return false;
+ }
+ }
+ return true;
+ } :
+ matchers[0];
+}
+
+function multipleContexts( selector, contexts, results ) {
+ var i = 0,
+ len = contexts.length;
+ for ( ; i < len; i++ ) {
+ Sizzle( selector, contexts[i], results );
+ }
+ return results;
+}
+
+function condense( unmatched, map, filter, context, xml ) {
+ var elem,
+ newUnmatched = [],
+ i = 0,
+ len = unmatched.length,
+ mapped = map != null;
+
+ for ( ; i < len; i++ ) {
+ if ( (elem = unmatched[i]) ) {
+ if ( !filter || filter( elem, context, xml ) ) {
+ newUnmatched.push( elem );
+ if ( mapped ) {
+ map.push( i );
+ }
+ }
+ }
+ }
+
+ return newUnmatched;
+}
+
+function setMatcher( preFilter, selector, matcher, postFilter, postFinder, postSelector ) {
+ if ( postFilter && !postFilter[ expando ] ) {
+ postFilter = setMatcher( postFilter );
+ }
+ if ( postFinder && !postFinder[ expando ] ) {
+ postFinder = setMatcher( postFinder, postSelector );
+ }
+ return markFunction(function( seed, results, context, xml ) {
+ var temp, i, elem,
+ preMap = [],
+ postMap = [],
+ preexisting = results.length,
+
+ // Get initial elements from seed or context
+ elems = seed || multipleContexts( selector || "*", context.nodeType ? [ context ] : context, [] ),
+
+ // Prefilter to get matcher input, preserving a map for seed-results synchronization
+ matcherIn = preFilter && ( seed || !selector ) ?
+ condense( elems, preMap, preFilter, context, xml ) :
+ elems,
+
+ matcherOut = matcher ?
+ // If we have a postFinder, or filtered seed, or non-seed postFilter or preexisting results,
+ postFinder || ( seed ? preFilter : preexisting || postFilter ) ?
+
+ // ...intermediate processing is necessary
+ [] :
+
+ // ...otherwise use results directly
+ results :
+ matcherIn;
+
+ // Find primary matches
+ if ( matcher ) {
+ matcher( matcherIn, matcherOut, context, xml );
+ }
+
+ // Apply postFilter
+ if ( postFilter ) {
+ temp = condense( matcherOut, postMap );
+ postFilter( temp, [], context, xml );
+
+ // Un-match failing elements by moving them back to matcherIn
+ i = temp.length;
+ while ( i-- ) {
+ if ( (elem = temp[i]) ) {
+ matcherOut[ postMap[i] ] = !(matcherIn[ postMap[i] ] = elem);
+ }
+ }
+ }
+
+ if ( seed ) {
+ if ( postFinder || preFilter ) {
+ if ( postFinder ) {
+ // Get the final matcherOut by condensing this intermediate into postFinder contexts
+ temp = [];
+ i = matcherOut.length;
+ while ( i-- ) {
+ if ( (elem = matcherOut[i]) ) {
+ // Restore matcherIn since elem is not yet a final match
+ temp.push( (matcherIn[i] = elem) );
+ }
+ }
+ postFinder( null, (matcherOut = []), temp, xml );
+ }
+
+ // Move matched elements from seed to results to keep them synchronized
+ i = matcherOut.length;
+ while ( i-- ) {
+ if ( (elem = matcherOut[i]) &&
+ (temp = postFinder ? indexOf( seed, elem ) : preMap[i]) > -1 ) {
+
+ seed[temp] = !(results[temp] = elem);
+ }
+ }
+ }
+
+ // Add elements to results, through postFinder if defined
+ } else {
+ matcherOut = condense(
+ matcherOut === results ?
+ matcherOut.splice( preexisting, matcherOut.length ) :
+ matcherOut
+ );
+ if ( postFinder ) {
+ postFinder( null, results, matcherOut, xml );
+ } else {
+ push.apply( results, matcherOut );
+ }
+ }
+ });
+}
+
+function matcherFromTokens( tokens ) {
+ var checkContext, matcher, j,
+ len = tokens.length,
+ leadingRelative = Expr.relative[ tokens[0].type ],
+ implicitRelative = leadingRelative || Expr.relative[" "],
+ i = leadingRelative ? 1 : 0,
+
+ // The foundational matcher ensures that elements are reachable from top-level context(s)
+ matchContext = addCombinator( function( elem ) {
+ return elem === checkContext;
+ }, implicitRelative, true ),
+ matchAnyContext = addCombinator( function( elem ) {
+ return indexOf( checkContext, elem ) > -1;
+ }, implicitRelative, true ),
+ matchers = [ function( elem, context, xml ) {
+ var ret = ( !leadingRelative && ( xml || context !== outermostContext ) ) || (
+ (checkContext = context).nodeType ?
+ matchContext( elem, context, xml ) :
+ matchAnyContext( elem, context, xml ) );
+ // Avoid hanging onto element (issue #299)
+ checkContext = null;
+ return ret;
+ } ];
+
+ for ( ; i < len; i++ ) {
+ if ( (matcher = Expr.relative[ tokens[i].type ]) ) {
+ matchers = [ addCombinator(elementMatcher( matchers ), matcher) ];
+ } else {
+ matcher = Expr.filter[ tokens[i].type ].apply( null, tokens[i].matches );
+
+ // Return special upon seeing a positional matcher
+ if ( matcher[ expando ] ) {
+ // Find the next relative operator (if any) for proper handling
+ j = ++i;
+ for ( ; j < len; j++ ) {
+ if ( Expr.relative[ tokens[j].type ] ) {
+ break;
+ }
+ }
+ return setMatcher(
+ i > 1 && elementMatcher( matchers ),
+ i > 1 && toSelector(
+ // If the preceding token was a descendant combinator, insert an implicit any-element `*`
+ tokens.slice( 0, i - 1 ).concat({ value: tokens[ i - 2 ].type === " " ? "*" : "" })
+ ).replace( rtrim, "$1" ),
+ matcher,
+ i < j && matcherFromTokens( tokens.slice( i, j ) ),
+ j < len && matcherFromTokens( (tokens = tokens.slice( j )) ),
+ j < len && toSelector( tokens )
+ );
+ }
+ matchers.push( matcher );
+ }
+ }
+
+ return elementMatcher( matchers );
+}
+
+function matcherFromGroupMatchers( elementMatchers, setMatchers ) {
+ var bySet = setMatchers.length > 0,
+ byElement = elementMatchers.length > 0,
+ superMatcher = function( seed, context, xml, results, outermost ) {
+ var elem, j, matcher,
+ matchedCount = 0,
+ i = "0",
+ unmatched = seed && [],
+ setMatched = [],
+ contextBackup = outermostContext,
+ // We must always have either seed elements or outermost context
+ elems = seed || byElement && Expr.find["TAG"]( "*", outermost ),
+ // Use integer dirruns iff this is the outermost matcher
+ dirrunsUnique = (dirruns += contextBackup == null ? 1 : Math.random() || 0.1),
+ len = elems.length;
+
+ if ( outermost ) {
+ outermostContext = context === document || context || outermost;
+ }
+
+ // Add elements passing elementMatchers directly to results
+ // Support: IE<9, Safari
+ // Tolerate NodeList properties (IE: "length"; Safari: <number>) matching elements by id
+ for ( ; i !== len && (elem = elems[i]) != null; i++ ) {
+ if ( byElement && elem ) {
+ j = 0;
+ if ( !context && elem.ownerDocument !== document ) {
+ setDocument( elem );
+ xml = !documentIsHTML;
+ }
+ while ( (matcher = elementMatchers[j++]) ) {
+ if ( matcher( elem, context || document, xml) ) {
+ results.push( elem );
+ break;
+ }
+ }
+ if ( outermost ) {
+ dirruns = dirrunsUnique;
+ }
+ }
+
+ // Track unmatched elements for set filters
+ if ( bySet ) {
+ // They will have gone through all possible matchers
+ if ( (elem = !matcher && elem) ) {
+ matchedCount--;
+ }
+
+ // Lengthen the array for every element, matched or not
+ if ( seed ) {
+ unmatched.push( elem );
+ }
+ }
+ }
+
+ // `i` is now the count of elements visited above, and adding it to `matchedCount`
+ // makes the latter nonnegative.
+ matchedCount += i;
+
+ // Apply set filters to unmatched elements
+ // NOTE: This can be skipped if there are no unmatched elements (i.e., `matchedCount`
+ // equals `i`), unless we didn't visit _any_ elements in the above loop because we have
+ // no element matchers and no seed.
+ // Incrementing an initially-string "0" `i` allows `i` to remain a string only in that
+ // case, which will result in a "00" `matchedCount` that differs from `i` but is also
+ // numerically zero.
+ if ( bySet && i !== matchedCount ) {
+ j = 0;
+ while ( (matcher = setMatchers[j++]) ) {
+ matcher( unmatched, setMatched, context, xml );
+ }
+
+ if ( seed ) {
+ // Reintegrate element matches to eliminate the need for sorting
+ if ( matchedCount > 0 ) {
+ while ( i-- ) {
+ if ( !(unmatched[i] || setMatched[i]) ) {
+ setMatched[i] = pop.call( results );
+ }
+ }
+ }
+
+ // Discard index placeholder values to get only actual matches
+ setMatched = condense( setMatched );
+ }
+
+ // Add matches to results
+ push.apply( results, setMatched );
+
+ // Seedless set matches succeeding multiple successful matchers stipulate sorting
+ if ( outermost && !seed && setMatched.length > 0 &&
+ ( matchedCount + setMatchers.length ) > 1 ) {
+
+ Sizzle.uniqueSort( results );
+ }
+ }
+
+ // Override manipulation of globals by nested matchers
+ if ( outermost ) {
+ dirruns = dirrunsUnique;
+ outermostContext = contextBackup;
+ }
+
+ return unmatched;
+ };
+
+ return bySet ?
+ markFunction( superMatcher ) :
+ superMatcher;
+}
+
+compile = Sizzle.compile = function( selector, match /* Internal Use Only */ ) {
+ var i,
+ setMatchers = [],
+ elementMatchers = [],
+ cached = compilerCache[ selector + " " ];
+
+ if ( !cached ) {
+ // Generate a function of recursive functions that can be used to check each element
+ if ( !match ) {
+ match = tokenize( selector );
+ }
+ i = match.length;
+ while ( i-- ) {
+ cached = matcherFromTokens( match[i] );
+ if ( cached[ expando ] ) {
+ setMatchers.push( cached );
+ } else {
+ elementMatchers.push( cached );
+ }
+ }
+
+ // Cache the compiled function
+ cached = compilerCache( selector, matcherFromGroupMatchers( elementMatchers, setMatchers ) );
+
+ // Save selector and tokenization
+ cached.selector = selector;
+ }
+ return cached;
+};
+
+/**
+ * A low-level selection function that works with Sizzle's compiled
+ * selector functions
+ * @param {String|Function} selector A selector or a pre-compiled
+ * selector function built with Sizzle.compile
+ * @param {Element} context
+ * @param {Array} [results]
+ * @param {Array} [seed] A set of elements to match against
+ */
+select = Sizzle.select = function( selector, context, results, seed ) {
+ var i, tokens, token, type, find,
+ compiled = typeof selector === "function" && selector,
+ match = !seed && tokenize( (selector = compiled.selector || selector) );
+
+ results = results || [];
+
+ // Try to minimize operations if there is only one selector in the list and no seed
+ // (the latter of which guarantees us context)
+ if ( match.length === 1 ) {
+
+ // Reduce context if the leading compound selector is an ID
+ tokens = match[0] = match[0].slice( 0 );
+ if ( tokens.length > 2 && (token = tokens[0]).type === "ID" &&
+ context.nodeType === 9 && documentIsHTML && Expr.relative[ tokens[1].type ] ) {
+
+ context = ( Expr.find["ID"]( token.matches[0].replace(runescape, funescape), context ) || [] )[0];
+ if ( !context ) {
+ return results;
+
+ // Precompiled matchers will still verify ancestry, so step up a level
+ } else if ( compiled ) {
+ context = context.parentNode;
+ }
+
+ selector = selector.slice( tokens.shift().value.length );
+ }
+
+ // Fetch a seed set for right-to-left matching
+ i = matchExpr["needsContext"].test( selector ) ? 0 : tokens.length;
+ while ( i-- ) {
+ token = tokens[i];
+
+ // Abort if we hit a combinator
+ if ( Expr.relative[ (type = token.type) ] ) {
+ break;
+ }
+ if ( (find = Expr.find[ type ]) ) {
+ // Search, expanding context for leading sibling combinators
+ if ( (seed = find(
+ token.matches[0].replace( runescape, funescape ),
+ rsibling.test( tokens[0].type ) && testContext( context.parentNode ) || context
+ )) ) {
+
+ // If seed is empty or no tokens remain, we can return early
+ tokens.splice( i, 1 );
+ selector = seed.length && toSelector( tokens );
+ if ( !selector ) {
+ push.apply( results, seed );
+ return results;
+ }
+
+ break;
+ }
+ }
+ }
+ }
+
+ // Compile and execute a filtering function if one is not provided
+ // Provide `match` to avoid retokenization if we modified the selector above
+ ( compiled || compile( selector, match ) )(
+ seed,
+ context,
+ !documentIsHTML,
+ results,
+ !context || rsibling.test( selector ) && testContext( context.parentNode ) || context
+ );
+ return results;
+};
+
+// One-time assignments
+
+// Sort stability
+support.sortStable = expando.split("").sort( sortOrder ).join("") === expando;
+
+// Support: Chrome 14-35+
+// Always assume duplicates if they aren't passed to the comparison function
+support.detectDuplicates = !!hasDuplicate;
+
+// Initialize against the default document
+setDocument();
+
+// Support: Webkit<537.32 - Safari 6.0.3/Chrome 25 (fixed in Chrome 27)
+// Detached nodes confoundingly follow *each other*
+support.sortDetached = assert(function( el ) {
+ // Should return 1, but returns 4 (following)
+ return el.compareDocumentPosition( document.createElement("fieldset") ) & 1;
+});
+
+// Support: IE<8
+// Prevent attribute/property "interpolation"
+// https://msdn.microsoft.com/en-us/library/ms536429%28VS.85%29.aspx
+if ( !assert(function( el ) {
+ el.innerHTML = "<a href='#'></a>";
+ return el.firstChild.getAttribute("href") === "#" ;
+}) ) {
+ addHandle( "type|href|height|width", function( elem, name, isXML ) {
+ if ( !isXML ) {
+ return elem.getAttribute( name, name.toLowerCase() === "type" ? 1 : 2 );
+ }
+ });
+}
+
+// Support: IE<9
+// Use defaultValue in place of getAttribute("value")
+if ( !support.attributes || !assert(function( el ) {
+ el.innerHTML = "<input/>";
+ el.firstChild.setAttribute( "value", "" );
+ return el.firstChild.getAttribute( "value" ) === "";
+}) ) {
+ addHandle( "value", function( elem, name, isXML ) {
+ if ( !isXML && elem.nodeName.toLowerCase() === "input" ) {
+ return elem.defaultValue;
+ }
+ });
+}
+
+// Support: IE<9
+// Use getAttributeNode to fetch booleans when getAttribute lies
+if ( !assert(function( el ) {
+ return el.getAttribute("disabled") == null;
+}) ) {
+ addHandle( booleans, function( elem, name, isXML ) {
+ var val;
+ if ( !isXML ) {
+ return elem[ name ] === true ? name.toLowerCase() :
+ (val = elem.getAttributeNode( name )) && val.specified ?
+ val.value :
+ null;
+ }
+ });
+}
+
+return Sizzle;
+
+})( window );
+
+
+
+jQuery.find = Sizzle;
+jQuery.expr = Sizzle.selectors;
+
+// Deprecated
+jQuery.expr[ ":" ] = jQuery.expr.pseudos;
+jQuery.uniqueSort = jQuery.unique = Sizzle.uniqueSort;
+jQuery.text = Sizzle.getText;
+jQuery.isXMLDoc = Sizzle.isXML;
+jQuery.contains = Sizzle.contains;
+jQuery.escapeSelector = Sizzle.escape;
+
+
+
+
+var dir = function( elem, dir, until ) {
+ var matched = [],
+ truncate = until !== undefined;
+
+ while ( ( elem = elem[ dir ] ) && elem.nodeType !== 9 ) {
+ if ( elem.nodeType === 1 ) {
+ if ( truncate && jQuery( elem ).is( until ) ) {
+ break;
+ }
+ matched.push( elem );
+ }
+ }
+ return matched;
+};
+
+
+var siblings = function( n, elem ) {
+ var matched = [];
+
+ for ( ; n; n = n.nextSibling ) {
+ if ( n.nodeType === 1 && n !== elem ) {
+ matched.push( n );
+ }
+ }
+
+ return matched;
+};
+
+
+var rneedsContext = jQuery.expr.match.needsContext;
+
+var rsingleTag = ( /^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i );
+
+
+
+var risSimple = /^.[^:#\[\.,]*$/;
+
+// Implement the identical functionality for filter and not
+function winnow( elements, qualifier, not ) {
+ if ( jQuery.isFunction( qualifier ) ) {
+ return jQuery.grep( elements, function( elem, i ) {
+ return !!qualifier.call( elem, i, elem ) !== not;
+ } );
+ }
+
+ // Single element
+ if ( qualifier.nodeType ) {
+ return jQuery.grep( elements, function( elem ) {
+ return ( elem === qualifier ) !== not;
+ } );
+ }
+
+ // Arraylike of elements (jQuery, arguments, Array)
+ if ( typeof qualifier !== "string" ) {
+ return jQuery.grep( elements, function( elem ) {
+ return ( indexOf.call( qualifier, elem ) > -1 ) !== not;
+ } );
+ }
+
+ // Simple selector that can be filtered directly, removing non-Elements
+ if ( risSimple.test( qualifier ) ) {
+ return jQuery.filter( qualifier, elements, not );
+ }
+
+ // Complex selector, compare the two sets, removing non-Elements
+ qualifier = jQuery.filter( qualifier, elements );
+ return jQuery.grep( elements, function( elem ) {
+ return ( indexOf.call( qualifier, elem ) > -1 ) !== not && elem.nodeType === 1;
+ } );
+}
+
+jQuery.filter = function( expr, elems, not ) {
+ var elem = elems[ 0 ];
+
+ if ( not ) {
+ expr = ":not(" + expr + ")";
+ }
+
+ if ( elems.length === 1 && elem.nodeType === 1 ) {
+ return jQuery.find.matchesSelector( elem, expr ) ? [ elem ] : [];
+ }
+
+ return jQuery.find.matches( expr, jQuery.grep( elems, function( elem ) {
+ return elem.nodeType === 1;
+ } ) );
+};
+
+jQuery.fn.extend( {
+ find: function( selector ) {
+ var i, ret,
+ len = this.length,
+ self = this;
+
+ if ( typeof selector !== "string" ) {
+ return this.pushStack( jQuery( selector ).filter( function() {
+ for ( i = 0; i < len; i++ ) {
+ if ( jQuery.contains( self[ i ], this ) ) {
+ return true;
+ }
+ }
+ } ) );
+ }
+
+ ret = this.pushStack( [] );
+
+ for ( i = 0; i < len; i++ ) {
+ jQuery.find( selector, self[ i ], ret );
+ }
+
+ return len > 1 ? jQuery.uniqueSort( ret ) : ret;
+ },
+ filter: function( selector ) {
+ return this.pushStack( winnow( this, selector || [], false ) );
+ },
+ not: function( selector ) {
+ return this.pushStack( winnow( this, selector || [], true ) );
+ },
+ is: function( selector ) {
+ return !!winnow(
+ this,
+
+ // If this is a positional/relative selector, check membership in the returned set
+ // so $("p:first").is("p:last") won't return true for a doc with two "p".
+ typeof selector === "string" && rneedsContext.test( selector ) ?
+ jQuery( selector ) :
+ selector || [],
+ false
+ ).length;
+ }
+} );
+
+
+// Initialize a jQuery object
+
+
+// A central reference to the root jQuery(document)
+var rootjQuery,
+
+ // A simple way to check for HTML strings
+ // Prioritize #id over <tag> to avoid XSS via location.hash (#9521)
+ // Strict HTML recognition (#11290: must start with <)
+ // Shortcut simple #id case for speed
+ rquickExpr = /^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/,
+
+ init = jQuery.fn.init = function( selector, context, root ) {
+ var match, elem;
+
+ // HANDLE: $(""), $(null), $(undefined), $(false)
+ if ( !selector ) {
+ return this;
+ }
+
+ // Method init() accepts an alternate rootjQuery
+ // so migrate can support jQuery.sub (gh-2101)
+ root = root || rootjQuery;
+
+ // Handle HTML strings
+ if ( typeof selector === "string" ) {
+ if ( selector[ 0 ] === "<" &&
+ selector[ selector.length - 1 ] === ">" &&
+ selector.length >= 3 ) {
+
+ // Assume that strings that start and end with <> are HTML and skip the regex check
+ match = [ null, selector, null ];
+
+ } else {
+ match = rquickExpr.exec( selector );
+ }
+
+ // Match html or make sure no context is specified for #id
+ if ( match && ( match[ 1 ] || !context ) ) {
+
+ // HANDLE: $(html) -> $(array)
+ if ( match[ 1 ] ) {
+ context = context instanceof jQuery ? context[ 0 ] : context;
+
+ // Option to run scripts is true for back-compat
+ // Intentionally let the error be thrown if parseHTML is not present
+ jQuery.merge( this, jQuery.parseHTML(
+ match[ 1 ],
+ context && context.nodeType ? context.ownerDocument || context : document,
+ true
+ ) );
+
+ // HANDLE: $(html, props)
+ if ( rsingleTag.test( match[ 1 ] ) && jQuery.isPlainObject( context ) ) {
+ for ( match in context ) {
+
+ // Properties of context are called as methods if possible
+ if ( jQuery.isFunction( this[ match ] ) ) {
+ this[ match ]( context[ match ] );
+
+ // ...and otherwise set as attributes
+ } else {
+ this.attr( match, context[ match ] );
+ }
+ }
+ }
+
+ return this;
+
+ // HANDLE: $(#id)
+ } else {
+ elem = document.getElementById( match[ 2 ] );
+
+ if ( elem ) {
+
+ // Inject the element directly into the jQuery object
+ this[ 0 ] = elem;
+ this.length = 1;
+ }
+ return this;
+ }
+
+ // HANDLE: $(expr, $(...))
+ } else if ( !context || context.jquery ) {
+ return ( context || root ).find( selector );
+
+ // HANDLE: $(expr, context)
+ // (which is just equivalent to: $(context).find(expr)
+ } else {
+ return this.constructor( context ).find( selector );
+ }
+
+ // HANDLE: $(DOMElement)
+ } else if ( selector.nodeType ) {
+ this[ 0 ] = selector;
+ this.length = 1;
+ return this;
+
+ // HANDLE: $(function)
+ // Shortcut for document ready
+ } else if ( jQuery.isFunction( selector ) ) {
+ return root.ready !== undefined ?
+ root.ready( selector ) :
+
+ // Execute immediately if ready is not present
+ selector( jQuery );
+ }
+
+ return jQuery.makeArray( selector, this );
+ };
+
+// Give the init function the jQuery prototype for later instantiation
+init.prototype = jQuery.fn;
+
+// Initialize central reference
+rootjQuery = jQuery( document );
+
+
+var rparentsprev = /^(?:parents|prev(?:Until|All))/,
+
+ // Methods guaranteed to produce a unique set when starting from a unique set
+ guaranteedUnique = {
+ children: true,
+ contents: true,
+ next: true,
+ prev: true
+ };
+
+jQuery.fn.extend( {
+ has: function( target ) {
+ var targets = jQuery( target, this ),
+ l = targets.length;
+
+ return this.filter( function() {
+ var i = 0;
+ for ( ; i < l; i++ ) {
+ if ( jQuery.contains( this, targets[ i ] ) ) {
+ return true;
+ }
+ }
+ } );
+ },
+
+ closest: function( selectors, context ) {
+ var cur,
+ i = 0,
+ l = this.length,
+ matched = [],
+ targets = typeof selectors !== "string" && jQuery( selectors );
+
+ // Positional selectors never match, since there's no _selection_ context
+ if ( !rneedsContext.test( selectors ) ) {
+ for ( ; i < l; i++ ) {
+ for ( cur = this[ i ]; cur && cur !== context; cur = cur.parentNode ) {
+
+ // Always skip document fragments
+ if ( cur.nodeType < 11 && ( targets ?
+ targets.index( cur ) > -1 :
+
+ // Don't pass non-elements to Sizzle
+ cur.nodeType === 1 &&
+ jQuery.find.matchesSelector( cur, selectors ) ) ) {
+
+ matched.push( cur );
+ break;
+ }
+ }
+ }
+ }
+
+ return this.pushStack( matched.length > 1 ? jQuery.uniqueSort( matched ) : matched );
+ },
+
+ // Determine the position of an element within the set
+ index: function( elem ) {
+
+ // No argument, return index in parent
+ if ( !elem ) {
+ return ( this[ 0 ] && this[ 0 ].parentNode ) ? this.first().prevAll().length : -1;
+ }
+
+ // Index in selector
+ if ( typeof elem === "string" ) {
+ return indexOf.call( jQuery( elem ), this[ 0 ] );
+ }
+
+ // Locate the position of the desired element
+ return indexOf.call( this,
+
+ // If it receives a jQuery object, the first element is used
+ elem.jquery ? elem[ 0 ] : elem
+ );
+ },
+
+ add: function( selector, context ) {
+ return this.pushStack(
+ jQuery.uniqueSort(
+ jQuery.merge( this.get(), jQuery( selector, context ) )
+ )
+ );
+ },
+
+ addBack: function( selector ) {
+ return this.add( selector == null ?
+ this.prevObject : this.prevObject.filter( selector )
+ );
+ }
+} );
+
+function sibling( cur, dir ) {
+ while ( ( cur = cur[ dir ] ) && cur.nodeType !== 1 ) {}
+ return cur;
+}
+
+jQuery.each( {
+ parent: function( elem ) {
+ var parent = elem.parentNode;
+ return parent && parent.nodeType !== 11 ? parent : null;
+ },
+ parents: function( elem ) {
+ return dir( elem, "parentNode" );
+ },
+ parentsUntil: function( elem, i, until ) {
+ return dir( elem, "parentNode", until );
+ },
+ next: function( elem ) {
+ return sibling( elem, "nextSibling" );
+ },
+ prev: function( elem ) {
+ return sibling( elem, "previousSibling" );
+ },
+ nextAll: function( elem ) {
+ return dir( elem, "nextSibling" );
+ },
+ prevAll: function( elem ) {
+ return dir( elem, "previousSibling" );
+ },
+ nextUntil: function( elem, i, until ) {
+ return dir( elem, "nextSibling", until );
+ },
+ prevUntil: function( elem, i, until ) {
+ return dir( elem, "previousSibling", until );
+ },
+ siblings: function( elem ) {
+ return siblings( ( elem.parentNode || {} ).firstChild, elem );
+ },
+ children: function( elem ) {
+ return siblings( elem.firstChild );
+ },
+ contents: function( elem ) {
+ return elem.contentDocument || jQuery.merge( [], elem.childNodes );
+ }
+}, function( name, fn ) {
+ jQuery.fn[ name ] = function( until, selector ) {
+ var matched = jQuery.map( this, fn, until );
+
+ if ( name.slice( -5 ) !== "Until" ) {
+ selector = until;
+ }
+
+ if ( selector && typeof selector === "string" ) {
+ matched = jQuery.filter( selector, matched );
+ }
+
+ if ( this.length > 1 ) {
+
+ // Remove duplicates
+ if ( !guaranteedUnique[ name ] ) {
+ jQuery.uniqueSort( matched );
+ }
+
+ // Reverse order for parents* and prev-derivatives
+ if ( rparentsprev.test( name ) ) {
+ matched.reverse();
+ }
+ }
+
+ return this.pushStack( matched );
+ };
+} );
+var rnothtmlwhite = ( /[^\x20\t\r\n\f]+/g );
+
+
+
+// Convert String-formatted options into Object-formatted ones
+function createOptions( options ) {
+ var object = {};
+ jQuery.each( options.match( rnothtmlwhite ) || [], function( _, flag ) {
+ object[ flag ] = true;
+ } );
+ return object;
+}
+
+/*
+ * Create a callback list using the following parameters:
+ *
+ * options: an optional list of space-separated options that will change how
+ * the callback list behaves or a more traditional option object
+ *
+ * By default a callback list will act like an event callback list and can be
+ * "fired" multiple times.
+ *
+ * Possible options:
+ *
+ * once: will ensure the callback list can only be fired once (like a Deferred)
+ *
+ * memory: will keep track of previous values and will call any callback added
+ * after the list has been fired right away with the latest "memorized"
+ * values (like a Deferred)
+ *
+ * unique: will ensure a callback can only be added once (no duplicate in the list)
+ *
+ * stopOnFalse: interrupt callings when a callback returns false
+ *
+ */
+jQuery.Callbacks = function( options ) {
+
+ // Convert options from String-formatted to Object-formatted if needed
+ // (we check in cache first)
+ options = typeof options === "string" ?
+ createOptions( options ) :
+ jQuery.extend( {}, options );
+
+ var // Flag to know if list is currently firing
+ firing,
+
+ // Last fire value for non-forgettable lists
+ memory,
+
+ // Flag to know if list was already fired
+ fired,
+
+ // Flag to prevent firing
+ locked,
+
+ // Actual callback list
+ list = [],
+
+ // Queue of execution data for repeatable lists
+ queue = [],
+
+ // Index of currently firing callback (modified by add/remove as needed)
+ firingIndex = -1,
+
+ // Fire callbacks
+ fire = function() {
+
+ // Enforce single-firing
+ locked = options.once;
+
+ // Execute callbacks for all pending executions,
+ // respecting firingIndex overrides and runtime changes
+ fired = firing = true;
+ for ( ; queue.length; firingIndex = -1 ) {
+ memory = queue.shift();
+ while ( ++firingIndex < list.length ) {
+
+ // Run callback and check for early termination
+ if ( list[ firingIndex ].apply( memory[ 0 ], memory[ 1 ] ) === false &&
+ options.stopOnFalse ) {
+
+ // Jump to end and forget the data so .add doesn't re-fire
+ firingIndex = list.length;
+ memory = false;
+ }
+ }
+ }
+
+ // Forget the data if we're done with it
+ if ( !options.memory ) {
+ memory = false;
+ }
+
+ firing = false;
+
+ // Clean up if we're done firing for good
+ if ( locked ) {
+
+ // Keep an empty list if we have data for future add calls
+ if ( memory ) {
+ list = [];
+
+ // Otherwise, this object is spent
+ } else {
+ list = "";
+ }
+ }
+ },
+
+ // Actual Callbacks object
+ self = {
+
+ // Add a callback or a collection of callbacks to the list
+ add: function() {
+ if ( list ) {
+
+ // If we have memory from a past run, we should fire after adding
+ if ( memory && !firing ) {
+ firingIndex = list.length - 1;
+ queue.push( memory );
+ }
+
+ ( function add( args ) {
+ jQuery.each( args, function( _, arg ) {
+ if ( jQuery.isFunction( arg ) ) {
+ if ( !options.unique || !self.has( arg ) ) {
+ list.push( arg );
+ }
+ } else if ( arg && arg.length && jQuery.type( arg ) !== "string" ) {
+
+ // Inspect recursively
+ add( arg );
+ }
+ } );
+ } )( arguments );
+
+ if ( memory && !firing ) {
+ fire();
+ }
+ }
+ return this;
+ },
+
+ // Remove a callback from the list
+ remove: function() {
+ jQuery.each( arguments, function( _, arg ) {
+ var index;
+ while ( ( index = jQuery.inArray( arg, list, index ) ) > -1 ) {
+ list.splice( index, 1 );
+
+ // Handle firing indexes
+ if ( index <= firingIndex ) {
+ firingIndex--;
+ }
+ }
+ } );
+ return this;
+ },
+
+ // Check if a given callback is in the list.
+ // If no argument is given, return whether or not list has callbacks attached.
+ has: function( fn ) {
+ return fn ?
+ jQuery.inArray( fn, list ) > -1 :
+ list.length > 0;
+ },
+
+ // Remove all callbacks from the list
+ empty: function() {
+ if ( list ) {
+ list = [];
+ }
+ return this;
+ },
+
+ // Disable .fire and .add
+ // Abort any current/pending executions
+ // Clear all callbacks and values
+ disable: function() {
+ locked = queue = [];
+ list = memory = "";
+ return this;
+ },
+ disabled: function() {
+ return !list;
+ },
+
+ // Disable .fire
+ // Also disable .add unless we have memory (since it would have no effect)
+ // Abort any pending executions
+ lock: function() {
+ locked = queue = [];
+ if ( !memory && !firing ) {
+ list = memory = "";
+ }
+ return this;
+ },
+ locked: function() {
+ return !!locked;
+ },
+
+ // Call all callbacks with the given context and arguments
+ fireWith: function( context, args ) {
+ if ( !locked ) {
+ args = args || [];
+ args = [ context, args.slice ? args.slice() : args ];
+ queue.push( args );
+ if ( !firing ) {
+ fire();
+ }
+ }
+ return this;
+ },
+
+ // Call all the callbacks with the given arguments
+ fire: function() {
+ self.fireWith( this, arguments );
+ return this;
+ },
+
+ // To know if the callbacks have already been called at least once
+ fired: function() {
+ return !!fired;
+ }
+ };
+
+ return self;
+};
+
+
+function Identity( v ) {
+ return v;
+}
+function Thrower( ex ) {
+ throw ex;
+}
+
+function adoptValue( value, resolve, reject ) {
+ var method;
+
+ try {
+
+ // Check for promise aspect first to privilege synchronous behavior
+ if ( value && jQuery.isFunction( ( method = value.promise ) ) ) {
+ method.call( value ).done( resolve ).fail( reject );
+
+ // Other thenables
+ } else if ( value && jQuery.isFunction( ( method = value.then ) ) ) {
+ method.call( value, resolve, reject );
+
+ // Other non-thenables
+ } else {
+
+ // Support: Android 4.0 only
+ // Strict mode functions invoked without .call/.apply get global-object context
+ resolve.call( undefined, value );
+ }
+
+ // For Promises/A+, convert exceptions into rejections
+ // Since jQuery.when doesn't unwrap thenables, we can skip the extra checks appearing in
+ // Deferred#then to conditionally suppress rejection.
+ } catch ( value ) {
+
+ // Support: Android 4.0 only
+ // Strict mode functions invoked without .call/.apply get global-object context
+ reject.call( undefined, value );
+ }
+}
+
+jQuery.extend( {
+
+ Deferred: function( func ) {
+ var tuples = [
+
+ // action, add listener, callbacks,
+ // ... .then handlers, argument index, [final state]
+ [ "notify", "progress", jQuery.Callbacks( "memory" ),
+ jQuery.Callbacks( "memory" ), 2 ],
+ [ "resolve", "done", jQuery.Callbacks( "once memory" ),
+ jQuery.Callbacks( "once memory" ), 0, "resolved" ],
+ [ "reject", "fail", jQuery.Callbacks( "once memory" ),
+ jQuery.Callbacks( "once memory" ), 1, "rejected" ]
+ ],
+ state = "pending",
+ promise = {
+ state: function() {
+ return state;
+ },
+ always: function() {
+ deferred.done( arguments ).fail( arguments );
+ return this;
+ },
+ "catch": function( fn ) {
+ return promise.then( null, fn );
+ },
+
+ // Keep pipe for back-compat
+ pipe: function( /* fnDone, fnFail, fnProgress */ ) {
+ var fns = arguments;
+
+ return jQuery.Deferred( function( newDefer ) {
+ jQuery.each( tuples, function( i, tuple ) {
+
+ // Map tuples (progress, done, fail) to arguments (done, fail, progress)
+ var fn = jQuery.isFunction( fns[ tuple[ 4 ] ] ) && fns[ tuple[ 4 ] ];
+
+ // deferred.progress(function() { bind to newDefer or newDefer.notify })
+ // deferred.done(function() { bind to newDefer or newDefer.resolve })
+ // deferred.fail(function() { bind to newDefer or newDefer.reject })
+ deferred[ tuple[ 1 ] ]( function() {
+ var returned = fn && fn.apply( this, arguments );
+ if ( returned && jQuery.isFunction( returned.promise ) ) {
+ returned.promise()
+ .progress( newDefer.notify )
+ .done( newDefer.resolve )
+ .fail( newDefer.reject );
+ } else {
+ newDefer[ tuple[ 0 ] + "With" ](
+ this,
+ fn ? [ returned ] : arguments
+ );
+ }
+ } );
+ } );
+ fns = null;
+ } ).promise();
+ },
+ then: function( onFulfilled, onRejected, onProgress ) {
+ var maxDepth = 0;
+ function resolve( depth, deferred, handler, special ) {
+ return function() {
+ var that = this,
+ args = arguments,
+ mightThrow = function() {
+ var returned, then;
+
+ // Support: Promises/A+ section 2.3.3.3.3
+ // https://promisesaplus.com/#point-59
+ // Ignore double-resolution attempts
+ if ( depth < maxDepth ) {
+ return;
+ }
+
+ returned = handler.apply( that, args );
+
+ // Support: Promises/A+ section 2.3.1
+ // https://promisesaplus.com/#point-48
+ if ( returned === deferred.promise() ) {
+ throw new TypeError( "Thenable self-resolution" );
+ }
+
+ // Support: Promises/A+ sections 2.3.3.1, 3.5
+ // https://promisesaplus.com/#point-54
+ // https://promisesaplus.com/#point-75
+ // Retrieve `then` only once
+ then = returned &&
+
+ // Support: Promises/A+ section 2.3.4
+ // https://promisesaplus.com/#point-64
+ // Only check objects and functions for thenability
+ ( typeof returned === "object" ||
+ typeof returned === "function" ) &&
+ returned.then;
+
+ // Handle a returned thenable
+ if ( jQuery.isFunction( then ) ) {
+
+ // Special processors (notify) just wait for resolution
+ if ( special ) {
+ then.call(
+ returned,
+ resolve( maxDepth, deferred, Identity, special ),
+ resolve( maxDepth, deferred, Thrower, special )
+ );
+
+ // Normal processors (resolve) also hook into progress
+ } else {
+
+ // ...and disregard older resolution values
+ maxDepth++;
+
+ then.call(
+ returned,
+ resolve( maxDepth, deferred, Identity, special ),
+ resolve( maxDepth, deferred, Thrower, special ),
+ resolve( maxDepth, deferred, Identity,
+ deferred.notifyWith )
+ );
+ }
+
+ // Handle all other returned values
+ } else {
+
+ // Only substitute handlers pass on context
+ // and multiple values (non-spec behavior)
+ if ( handler !== Identity ) {
+ that = undefined;
+ args = [ returned ];
+ }
+
+ // Process the value(s)
+ // Default process is resolve
+ ( special || deferred.resolveWith )( that, args );
+ }
+ },
+
+ // Only normal processors (resolve) catch and reject exceptions
+ process = special ?
+ mightThrow :
+ function() {
+ try {
+ mightThrow();
+ } catch ( e ) {
+
+ if ( jQuery.Deferred.exceptionHook ) {
+ jQuery.Deferred.exceptionHook( e,
+ process.stackTrace );
+ }
+
+ // Support: Promises/A+ section 2.3.3.3.4.1
+ // https://promisesaplus.com/#point-61
+ // Ignore post-resolution exceptions
+ if ( depth + 1 >= maxDepth ) {
+
+ // Only substitute handlers pass on context
+ // and multiple values (non-spec behavior)
+ if ( handler !== Thrower ) {
+ that = undefined;
+ args = [ e ];
+ }
+
+ deferred.rejectWith( that, args );
+ }
+ }
+ };
+
+ // Support: Promises/A+ section 2.3.3.3.1
+ // https://promisesaplus.com/#point-57
+ // Re-resolve promises immediately to dodge false rejection from
+ // subsequent errors
+ if ( depth ) {
+ process();
+ } else {
+
+ // Call an optional hook to record the stack, in case of exception
+ // since it's otherwise lost when execution goes async
+ if ( jQuery.Deferred.getStackHook ) {
+ process.stackTrace = jQuery.Deferred.getStackHook();
+ }
+ window.setTimeout( process );
+ }
+ };
+ }
+
+ return jQuery.Deferred( function( newDefer ) {
+
+ // progress_handlers.add( ... )
+ tuples[ 0 ][ 3 ].add(
+ resolve(
+ 0,
+ newDefer,
+ jQuery.isFunction( onProgress ) ?
+ onProgress :
+ Identity,
+ newDefer.notifyWith
+ )
+ );
+
+ // fulfilled_handlers.add( ... )
+ tuples[ 1 ][ 3 ].add(
+ resolve(
+ 0,
+ newDefer,
+ jQuery.isFunction( onFulfilled ) ?
+ onFulfilled :
+ Identity
+ )
+ );
+
+ // rejected_handlers.add( ... )
+ tuples[ 2 ][ 3 ].add(
+ resolve(
+ 0,
+ newDefer,
+ jQuery.isFunction( onRejected ) ?
+ onRejected :
+ Thrower
+ )
+ );
+ } ).promise();
+ },
+
+ // Get a promise for this deferred
+ // If obj is provided, the promise aspect is added to the object
+ promise: function( obj ) {
+ return obj != null ? jQuery.extend( obj, promise ) : promise;
+ }
+ },
+ deferred = {};
+
+ // Add list-specific methods
+ jQuery.each( tuples, function( i, tuple ) {
+ var list = tuple[ 2 ],
+ stateString = tuple[ 5 ];
+
+ // promise.progress = list.add
+ // promise.done = list.add
+ // promise.fail = list.add
+ promise[ tuple[ 1 ] ] = list.add;
+
+ // Handle state
+ if ( stateString ) {
+ list.add(
+ function() {
+
+ // state = "resolved" (i.e., fulfilled)
+ // state = "rejected"
+ state = stateString;
+ },
+
+ // rejected_callbacks.disable
+ // fulfilled_callbacks.disable
+ tuples[ 3 - i ][ 2 ].disable,
+
+ // progress_callbacks.lock
+ tuples[ 0 ][ 2 ].lock
+ );
+ }
+
+ // progress_handlers.fire
+ // fulfilled_handlers.fire
+ // rejected_handlers.fire
+ list.add( tuple[ 3 ].fire );
+
+ // deferred.notify = function() { deferred.notifyWith(...) }
+ // deferred.resolve = function() { deferred.resolveWith(...) }
+ // deferred.reject = function() { deferred.rejectWith(...) }
+ deferred[ tuple[ 0 ] ] = function() {
+ deferred[ tuple[ 0 ] + "With" ]( this === deferred ? undefined : this, arguments );
+ return this;
+ };
+
+ // deferred.notifyWith = list.fireWith
+ // deferred.resolveWith = list.fireWith
+ // deferred.rejectWith = list.fireWith
+ deferred[ tuple[ 0 ] + "With" ] = list.fireWith;
+ } );
+
+ // Make the deferred a promise
+ promise.promise( deferred );
+
+ // Call given func if any
+ if ( func ) {
+ func.call( deferred, deferred );
+ }
+
+ // All done!
+ return deferred;
+ },
+
+ // Deferred helper
+ when: function( singleValue ) {
+ var
+
+ // count of uncompleted subordinates
+ remaining = arguments.length,
+
+ // count of unprocessed arguments
+ i = remaining,
+
+ // subordinate fulfillment data
+ resolveContexts = Array( i ),
+ resolveValues = slice.call( arguments ),
+
+ // the master Deferred
+ master = jQuery.Deferred(),
+
+ // subordinate callback factory
+ updateFunc = function( i ) {
+ return function( value ) {
+ resolveContexts[ i ] = this;
+ resolveValues[ i ] = arguments.length > 1 ? slice.call( arguments ) : value;
+ if ( !( --remaining ) ) {
+ master.resolveWith( resolveContexts, resolveValues );
+ }
+ };
+ };
+
+ // Single- and empty arguments are adopted like Promise.resolve
+ if ( remaining <= 1 ) {
+ adoptValue( singleValue, master.done( updateFunc( i ) ).resolve, master.reject );
+
+ // Use .then() to unwrap secondary thenables (cf. gh-3000)
+ if ( master.state() === "pending" ||
+ jQuery.isFunction( resolveValues[ i ] && resolveValues[ i ].then ) ) {
+
+ return master.then();
+ }
+ }
+
+ // Multiple arguments are aggregated like Promise.all array elements
+ while ( i-- ) {
+ adoptValue( resolveValues[ i ], updateFunc( i ), master.reject );
+ }
+
+ return master.promise();
+ }
+} );
+
+
+// These usually indicate a programmer mistake during development,
+// warn about them ASAP rather than swallowing them by default.
+var rerrorNames = /^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;
+
+jQuery.Deferred.exceptionHook = function( error, stack ) {
+
+ // Support: IE 8 - 9 only
+ // Console exists when dev tools are open, which can happen at any time
+ if ( window.console && window.console.warn && error && rerrorNames.test( error.name ) ) {
+ window.console.warn( "jQuery.Deferred exception: " + error.message, error.stack, stack );
+ }
+};
+
+
+
+
+jQuery.readyException = function( error ) {
+ window.setTimeout( function() {
+ throw error;
+ } );
+};
+
+
+
+
+// The deferred used on DOM ready
+var readyList = jQuery.Deferred();
+
+jQuery.fn.ready = function( fn ) {
+
+ readyList
+ .then( fn )
+
+ // Wrap jQuery.readyException in a function so that the lookup
+ // happens at the time of error handling instead of callback
+ // registration.
+ .catch( function( error ) {
+ jQuery.readyException( error );
+ } );
+
+ return this;
+};
+
+jQuery.extend( {
+
+ // Is the DOM ready to be used? Set to true once it occurs.
+ isReady: false,
+
+ // A counter to track how many items to wait for before
+ // the ready event fires. See #6781
+ readyWait: 1,
+
+ // Hold (or release) the ready event
+ holdReady: function( hold ) {
+ if ( hold ) {
+ jQuery.readyWait++;
+ } else {
+ jQuery.ready( true );
+ }
+ },
+
+ // Handle when the DOM is ready
+ ready: function( wait ) {
+
+ // Abort if there are pending holds or we're already ready
+ if ( wait === true ? --jQuery.readyWait : jQuery.isReady ) {
+ return;
+ }
+
+ // Remember that the DOM is ready
+ jQuery.isReady = true;
+
+ // If a normal DOM Ready event fired, decrement, and wait if need be
+ if ( wait !== true && --jQuery.readyWait > 0 ) {
+ return;
+ }
+
+ // If there are functions bound, to execute
+ readyList.resolveWith( document, [ jQuery ] );
+ }
+} );
+
+jQuery.ready.then = readyList.then;
+
+// The ready event handler and self cleanup method
+function completed() {
+ document.removeEventListener( "DOMContentLoaded", completed );
+ window.removeEventListener( "load", completed );
+ jQuery.ready();
+}
+
+// Catch cases where $(document).ready() is called
+// after the browser event has already occurred.
+// Support: IE <=9 - 10 only
+// Older IE sometimes signals "interactive" too soon
+if ( document.readyState === "complete" ||
+ ( document.readyState !== "loading" && !document.documentElement.doScroll ) ) {
+
+ // Handle it asynchronously to allow scripts the opportunity to delay ready
+ window.setTimeout( jQuery.ready );
+
+} else {
+
+ // Use the handy event callback
+ document.addEventListener( "DOMContentLoaded", completed );
+
+ // A fallback to window.onload, that will always work
+ window.addEventListener( "load", completed );
+}
+
+
+
+
+// Multifunctional method to get and set values of a collection
+// The value/s can optionally be executed if it's a function
+var access = function( elems, fn, key, value, chainable, emptyGet, raw ) {
+ var i = 0,
+ len = elems.length,
+ bulk = key == null;
+
+ // Sets many values
+ if ( jQuery.type( key ) === "object" ) {
+ chainable = true;
+ for ( i in key ) {
+ access( elems, fn, i, key[ i ], true, emptyGet, raw );
+ }
+
+ // Sets one value
+ } else if ( value !== undefined ) {
+ chainable = true;
+
+ if ( !jQuery.isFunction( value ) ) {
+ raw = true;
+ }
+
+ if ( bulk ) {
+
+ // Bulk operations run against the entire set
+ if ( raw ) {
+ fn.call( elems, value );
+ fn = null;
+
+ // ...except when executing function values
+ } else {
+ bulk = fn;
+ fn = function( elem, key, value ) {
+ return bulk.call( jQuery( elem ), value );
+ };
+ }
+ }
+
+ if ( fn ) {
+ for ( ; i < len; i++ ) {
+ fn(
+ elems[ i ], key, raw ?
+ value :
+ value.call( elems[ i ], i, fn( elems[ i ], key ) )
+ );
+ }
+ }
+ }
+
+ if ( chainable ) {
+ return elems;
+ }
+
+ // Gets
+ if ( bulk ) {
+ return fn.call( elems );
+ }
+
+ return len ? fn( elems[ 0 ], key ) : emptyGet;
+};
+var acceptData = function( owner ) {
+
+ // Accepts only:
+ // - Node
+ // - Node.ELEMENT_NODE
+ // - Node.DOCUMENT_NODE
+ // - Object
+ // - Any
+ return owner.nodeType === 1 || owner.nodeType === 9 || !( +owner.nodeType );
+};
+
+
+
+
+function Data() {
+ this.expando = jQuery.expando + Data.uid++;
+}
+
+Data.uid = 1;
+
+Data.prototype = {
+
+ cache: function( owner ) {
+
+ // Check if the owner object already has a cache
+ var value = owner[ this.expando ];
+
+ // If not, create one
+ if ( !value ) {
+ value = {};
+
+ // We can accept data for non-element nodes in modern browsers,
+ // but we should not, see #8335.
+ // Always return an empty object.
+ if ( acceptData( owner ) ) {
+
+ // If it is a node unlikely to be stringify-ed or looped over
+ // use plain assignment
+ if ( owner.nodeType ) {
+ owner[ this.expando ] = value;
+
+ // Otherwise secure it in a non-enumerable property
+ // configurable must be true to allow the property to be
+ // deleted when data is removed
+ } else {
+ Object.defineProperty( owner, this.expando, {
+ value: value,
+ configurable: true
+ } );
+ }
+ }
+ }
+
+ return value;
+ },
+ set: function( owner, data, value ) {
+ var prop,
+ cache = this.cache( owner );
+
+ // Handle: [ owner, key, value ] args
+ // Always use camelCase key (gh-2257)
+ if ( typeof data === "string" ) {
+ cache[ jQuery.camelCase( data ) ] = value;
+
+ // Handle: [ owner, { properties } ] args
+ } else {
+
+ // Copy the properties one-by-one to the cache object
+ for ( prop in data ) {
+ cache[ jQuery.camelCase( prop ) ] = data[ prop ];
+ }
+ }
+ return cache;
+ },
+ get: function( owner, key ) {
+ return key === undefined ?
+ this.cache( owner ) :
+
+ // Always use camelCase key (gh-2257)
+ owner[ this.expando ] && owner[ this.expando ][ jQuery.camelCase( key ) ];
+ },
+ access: function( owner, key, value ) {
+
+ // In cases where either:
+ //
+ // 1. No key was specified
+ // 2. A string key was specified, but no value provided
+ //
+ // Take the "read" path and allow the get method to determine
+ // which value to return, respectively either:
+ //
+ // 1. The entire cache object
+ // 2. The data stored at the key
+ //
+ if ( key === undefined ||
+ ( ( key && typeof key === "string" ) && value === undefined ) ) {
+
+ return this.get( owner, key );
+ }
+
+ // When the key is not a string, or both a key and value
+ // are specified, set or extend (existing objects) with either:
+ //
+ // 1. An object of properties
+ // 2. A key and value
+ //
+ this.set( owner, key, value );
+
+ // Since the "set" path can have two possible entry points
+ // return the expected data based on which path was taken[*]
+ return value !== undefined ? value : key;
+ },
+ remove: function( owner, key ) {
+ var i,
+ cache = owner[ this.expando ];
+
+ if ( cache === undefined ) {
+ return;
+ }
+
+ if ( key !== undefined ) {
+
+ // Support array or space separated string of keys
+ if ( jQuery.isArray( key ) ) {
+
+ // If key is an array of keys...
+ // We always set camelCase keys, so remove that.
+ key = key.map( jQuery.camelCase );
+ } else {
+ key = jQuery.camelCase( key );
+
+ // If a key with the spaces exists, use it.
+ // Otherwise, create an array by matching non-whitespace
+ key = key in cache ?
+ [ key ] :
+ ( key.match( rnothtmlwhite ) || [] );
+ }
+
+ i = key.length;
+
+ while ( i-- ) {
+ delete cache[ key[ i ] ];
+ }
+ }
+
+ // Remove the expando if there's no more data
+ if ( key === undefined || jQuery.isEmptyObject( cache ) ) {
+
+ // Support: Chrome <=35 - 45
+ // Webkit & Blink performance suffers when deleting properties
+ // from DOM nodes, so set to undefined instead
+ // https://bugs.chromium.org/p/chromium/issues/detail?id=378607 (bug restricted)
+ if ( owner.nodeType ) {
+ owner[ this.expando ] = undefined;
+ } else {
+ delete owner[ this.expando ];
+ }
+ }
+ },
+ hasData: function( owner ) {
+ var cache = owner[ this.expando ];
+ return cache !== undefined && !jQuery.isEmptyObject( cache );
+ }
+};
+var dataPriv = new Data();
+
+var dataUser = new Data();
+
+
+
+// Implementation Summary
+//
+// 1. Enforce API surface and semantic compatibility with 1.9.x branch
+// 2. Improve the module's maintainability by reducing the storage
+// paths to a single mechanism.
+// 3. Use the same single mechanism to support "private" and "user" data.
+// 4. _Never_ expose "private" data to user code (TODO: Drop _data, _removeData)
+// 5. Avoid exposing implementation details on user objects (eg. expando properties)
+// 6. Provide a clear path for implementation upgrade to WeakMap in 2014
+
+var rbrace = /^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,
+ rmultiDash = /[A-Z]/g;
+
+function getData( data ) {
+ if ( data === "true" ) {
+ return true;
+ }
+
+ if ( data === "false" ) {
+ return false;
+ }
+
+ if ( data === "null" ) {
+ return null;
+ }
+
+ // Only convert to a number if it doesn't change the string
+ if ( data === +data + "" ) {
+ return +data;
+ }
+
+ if ( rbrace.test( data ) ) {
+ return JSON.parse( data );
+ }
+
+ return data;
+}
+
+function dataAttr( elem, key, data ) {
+ var name;
+
+ // If nothing was found internally, try to fetch any
+ // data from the HTML5 data-* attribute
+ if ( data === undefined && elem.nodeType === 1 ) {
+ name = "data-" + key.replace( rmultiDash, "-$&" ).toLowerCase();
+ data = elem.getAttribute( name );
+
+ if ( typeof data === "string" ) {
+ try {
+ data = getData( data );
+ } catch ( e ) {}
+
+ // Make sure we set the data so it isn't changed later
+ dataUser.set( elem, key, data );
+ } else {
+ data = undefined;
+ }
+ }
+ return data;
+}
+
+jQuery.extend( {
+ hasData: function( elem ) {
+ return dataUser.hasData( elem ) || dataPriv.hasData( elem );
+ },
+
+ data: function( elem, name, data ) {
+ return dataUser.access( elem, name, data );
+ },
+
+ removeData: function( elem, name ) {
+ dataUser.remove( elem, name );
+ },
+
+ // TODO: Now that all calls to _data and _removeData have been replaced
+ // with direct calls to dataPriv methods, these can be deprecated.
+ _data: function( elem, name, data ) {
+ return dataPriv.access( elem, name, data );
+ },
+
+ _removeData: function( elem, name ) {
+ dataPriv.remove( elem, name );
+ }
+} );
+
+jQuery.fn.extend( {
+ data: function( key, value ) {
+ var i, name, data,
+ elem = this[ 0 ],
+ attrs = elem && elem.attributes;
+
+ // Gets all values
+ if ( key === undefined ) {
+ if ( this.length ) {
+ data = dataUser.get( elem );
+
+ if ( elem.nodeType === 1 && !dataPriv.get( elem, "hasDataAttrs" ) ) {
+ i = attrs.length;
+ while ( i-- ) {
+
+ // Support: IE 11 only
+ // The attrs elements can be null (#14894)
+ if ( attrs[ i ] ) {
+ name = attrs[ i ].name;
+ if ( name.indexOf( "data-" ) === 0 ) {
+ name = jQuery.camelCase( name.slice( 5 ) );
+ dataAttr( elem, name, data[ name ] );
+ }
+ }
+ }
+ dataPriv.set( elem, "hasDataAttrs", true );
+ }
+ }
+
+ return data;
+ }
+
+ // Sets multiple values
+ if ( typeof key === "object" ) {
+ return this.each( function() {
+ dataUser.set( this, key );
+ } );
+ }
+
+ return access( this, function( value ) {
+ var data;
+
+ // The calling jQuery object (element matches) is not empty
+ // (and therefore has an element appears at this[ 0 ]) and the
+ // `value` parameter was not undefined. An empty jQuery object
+ // will result in `undefined` for elem = this[ 0 ] which will
+ // throw an exception if an attempt to read a data cache is made.
+ if ( elem && value === undefined ) {
+
+ // Attempt to get data from the cache
+ // The key will always be camelCased in Data
+ data = dataUser.get( elem, key );
+ if ( data !== undefined ) {
+ return data;
+ }
+
+ // Attempt to "discover" the data in
+ // HTML5 custom data-* attrs
+ data = dataAttr( elem, key );
+ if ( data !== undefined ) {
+ return data;
+ }
+
+ // We tried really hard, but the data doesn't exist.
+ return;
+ }
+
+ // Set the data...
+ this.each( function() {
+
+ // We always store the camelCased key
+ dataUser.set( this, key, value );
+ } );
+ }, null, value, arguments.length > 1, null, true );
+ },
+
+ removeData: function( key ) {
+ return this.each( function() {
+ dataUser.remove( this, key );
+ } );
+ }
+} );
+
+
+jQuery.extend( {
+ queue: function( elem, type, data ) {
+ var queue;
+
+ if ( elem ) {
+ type = ( type || "fx" ) + "queue";
+ queue = dataPriv.get( elem, type );
+
+ // Speed up dequeue by getting out quickly if this is just a lookup
+ if ( data ) {
+ if ( !queue || jQuery.isArray( data ) ) {
+ queue = dataPriv.access( elem, type, jQuery.makeArray( data ) );
+ } else {
+ queue.push( data );
+ }
+ }
+ return queue || [];
+ }
+ },
+
+ dequeue: function( elem, type ) {
+ type = type || "fx";
+
+ var queue = jQuery.queue( elem, type ),
+ startLength = queue.length,
+ fn = queue.shift(),
+ hooks = jQuery._queueHooks( elem, type ),
+ next = function() {
+ jQuery.dequeue( elem, type );
+ };
+
+ // If the fx queue is dequeued, always remove the progress sentinel
+ if ( fn === "inprogress" ) {
+ fn = queue.shift();
+ startLength--;
+ }
+
+ if ( fn ) {
+
+ // Add a progress sentinel to prevent the fx queue from being
+ // automatically dequeued
+ if ( type === "fx" ) {
+ queue.unshift( "inprogress" );
+ }
+
+ // Clear up the last queue stop function
+ delete hooks.stop;
+ fn.call( elem, next, hooks );
+ }
+
+ if ( !startLength && hooks ) {
+ hooks.empty.fire();
+ }
+ },
+
+ // Not public - generate a queueHooks object, or return the current one
+ _queueHooks: function( elem, type ) {
+ var key = type + "queueHooks";
+ return dataPriv.get( elem, key ) || dataPriv.access( elem, key, {
+ empty: jQuery.Callbacks( "once memory" ).add( function() {
+ dataPriv.remove( elem, [ type + "queue", key ] );
+ } )
+ } );
+ }
+} );
+
+jQuery.fn.extend( {
+ queue: function( type, data ) {
+ var setter = 2;
+
+ if ( typeof type !== "string" ) {
+ data = type;
+ type = "fx";
+ setter--;
+ }
+
+ if ( arguments.length < setter ) {
+ return jQuery.queue( this[ 0 ], type );
+ }
+
+ return data === undefined ?
+ this :
+ this.each( function() {
+ var queue = jQuery.queue( this, type, data );
+
+ // Ensure a hooks for this queue
+ jQuery._queueHooks( this, type );
+
+ if ( type === "fx" && queue[ 0 ] !== "inprogress" ) {
+ jQuery.dequeue( this, type );
+ }
+ } );
+ },
+ dequeue: function( type ) {
+ return this.each( function() {
+ jQuery.dequeue( this, type );
+ } );
+ },
+ clearQueue: function( type ) {
+ return this.queue( type || "fx", [] );
+ },
+
+ // Get a promise resolved when queues of a certain type
+ // are emptied (fx is the type by default)
+ promise: function( type, obj ) {
+ var tmp,
+ count = 1,
+ defer = jQuery.Deferred(),
+ elements = this,
+ i = this.length,
+ resolve = function() {
+ if ( !( --count ) ) {
+ defer.resolveWith( elements, [ elements ] );
+ }
+ };
+
+ if ( typeof type !== "string" ) {
+ obj = type;
+ type = undefined;
+ }
+ type = type || "fx";
+
+ while ( i-- ) {
+ tmp = dataPriv.get( elements[ i ], type + "queueHooks" );
+ if ( tmp && tmp.empty ) {
+ count++;
+ tmp.empty.add( resolve );
+ }
+ }
+ resolve();
+ return defer.promise( obj );
+ }
+} );
+var pnum = ( /[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/ ).source;
+
+var rcssNum = new RegExp( "^(?:([+-])=|)(" + pnum + ")([a-z%]*)$", "i" );
+
+
+var cssExpand = [ "Top", "Right", "Bottom", "Left" ];
+
+var isHiddenWithinTree = function( elem, el ) {
+
+ // isHiddenWithinTree might be called from jQuery#filter function;
+ // in that case, element will be second argument
+ elem = el || elem;
+
+ // Inline style trumps all
+ return elem.style.display === "none" ||
+ elem.style.display === "" &&
+
+ // Otherwise, check computed style
+ // Support: Firefox <=43 - 45
+ // Disconnected elements can have computed display: none, so first confirm that elem is
+ // in the document.
+ jQuery.contains( elem.ownerDocument, elem ) &&
+
+ jQuery.css( elem, "display" ) === "none";
+ };
+
+var swap = function( elem, options, callback, args ) {
+ var ret, name,
+ old = {};
+
+ // Remember the old values, and insert the new ones
+ for ( name in options ) {
+ old[ name ] = elem.style[ name ];
+ elem.style[ name ] = options[ name ];
+ }
+
+ ret = callback.apply( elem, args || [] );
+
+ // Revert the old values
+ for ( name in options ) {
+ elem.style[ name ] = old[ name ];
+ }
+
+ return ret;
+};
+
+
+
+
+function adjustCSS( elem, prop, valueParts, tween ) {
+ var adjusted,
+ scale = 1,
+ maxIterations = 20,
+ currentValue = tween ?
+ function() {
+ return tween.cur();
+ } :
+ function() {
+ return jQuery.css( elem, prop, "" );
+ },
+ initial = currentValue(),
+ unit = valueParts && valueParts[ 3 ] || ( jQuery.cssNumber[ prop ] ? "" : "px" ),
+
+ // Starting value computation is required for potential unit mismatches
+ initialInUnit = ( jQuery.cssNumber[ prop ] || unit !== "px" && +initial ) &&
+ rcssNum.exec( jQuery.css( elem, prop ) );
+
+ if ( initialInUnit && initialInUnit[ 3 ] !== unit ) {
+
+ // Trust units reported by jQuery.css
+ unit = unit || initialInUnit[ 3 ];
+
+ // Make sure we update the tween properties later on
+ valueParts = valueParts || [];
+
+ // Iteratively approximate from a nonzero starting point
+ initialInUnit = +initial || 1;
+
+ do {
+
+ // If previous iteration zeroed out, double until we get *something*.
+ // Use string for doubling so we don't accidentally see scale as unchanged below
+ scale = scale || ".5";
+
+ // Adjust and apply
+ initialInUnit = initialInUnit / scale;
+ jQuery.style( elem, prop, initialInUnit + unit );
+
+ // Update scale, tolerating zero or NaN from tween.cur()
+ // Break the loop if scale is unchanged or perfect, or if we've just had enough.
+ } while (
+ scale !== ( scale = currentValue() / initial ) && scale !== 1 && --maxIterations
+ );
+ }
+
+ if ( valueParts ) {
+ initialInUnit = +initialInUnit || +initial || 0;
+
+ // Apply relative offset (+=/-=) if specified
+ adjusted = valueParts[ 1 ] ?
+ initialInUnit + ( valueParts[ 1 ] + 1 ) * valueParts[ 2 ] :
+ +valueParts[ 2 ];
+ if ( tween ) {
+ tween.unit = unit;
+ tween.start = initialInUnit;
+ tween.end = adjusted;
+ }
+ }
+ return adjusted;
+}
+
+
+var defaultDisplayMap = {};
+
+function getDefaultDisplay( elem ) {
+ var temp,
+ doc = elem.ownerDocument,
+ nodeName = elem.nodeName,
+ display = defaultDisplayMap[ nodeName ];
+
+ if ( display ) {
+ return display;
+ }
+
+ temp = doc.body.appendChild( doc.createElement( nodeName ) );
+ display = jQuery.css( temp, "display" );
+
+ temp.parentNode.removeChild( temp );
+
+ if ( display === "none" ) {
+ display = "block";
+ }
+ defaultDisplayMap[ nodeName ] = display;
+
+ return display;
+}
+
+function showHide( elements, show ) {
+ var display, elem,
+ values = [],
+ index = 0,
+ length = elements.length;
+
+ // Determine new display value for elements that need to change
+ for ( ; index < length; index++ ) {
+ elem = elements[ index ];
+ if ( !elem.style ) {
+ continue;
+ }
+
+ display = elem.style.display;
+ if ( show ) {
+
+ // Since we force visibility upon cascade-hidden elements, an immediate (and slow)
+ // check is required in this first loop unless we have a nonempty display value (either
+ // inline or about-to-be-restored)
+ if ( display === "none" ) {
+ values[ index ] = dataPriv.get( elem, "display" ) || null;
+ if ( !values[ index ] ) {
+ elem.style.display = "";
+ }
+ }
+ if ( elem.style.display === "" && isHiddenWithinTree( elem ) ) {
+ values[ index ] = getDefaultDisplay( elem );
+ }
+ } else {
+ if ( display !== "none" ) {
+ values[ index ] = "none";
+
+ // Remember what we're overwriting
+ dataPriv.set( elem, "display", display );
+ }
+ }
+ }
+
+ // Set the display of the elements in a second loop to avoid constant reflow
+ for ( index = 0; index < length; index++ ) {
+ if ( values[ index ] != null ) {
+ elements[ index ].style.display = values[ index ];
+ }
+ }
+
+ return elements;
+}
+
+jQuery.fn.extend( {
+ show: function() {
+ return showHide( this, true );
+ },
+ hide: function() {
+ return showHide( this );
+ },
+ toggle: function( state ) {
+ if ( typeof state === "boolean" ) {
+ return state ? this.show() : this.hide();
+ }
+
+ return this.each( function() {
+ if ( isHiddenWithinTree( this ) ) {
+ jQuery( this ).show();
+ } else {
+ jQuery( this ).hide();
+ }
+ } );
+ }
+} );
+var rcheckableType = ( /^(?:checkbox|radio)$/i );
+
+var rtagName = ( /<([a-z][^\/\0>\x20\t\r\n\f]+)/i );
+
+var rscriptType = ( /^$|\/(?:java|ecma)script/i );
+
+
+
+// We have to close these tags to support XHTML (#13200)
+var wrapMap = {
+
+ // Support: IE <=9 only
+ option: [ 1, "<select multiple='multiple'>", "</select>" ],
+
+ // XHTML parsers do not magically insert elements in the
+ // same way that tag soup parsers do. So we cannot shorten
+ // this by omitting <tbody> or other required elements.
+ thead: [ 1, "<table>", "</table>" ],
+ col: [ 2, "<table><colgroup>", "</colgroup></table>" ],
+ tr: [ 2, "<table><tbody>", "</tbody></table>" ],
+ td: [ 3, "<table><tbody><tr>", "</tr></tbody></table>" ],
+
+ _default: [ 0, "", "" ]
+};
+
+// Support: IE <=9 only
+wrapMap.optgroup = wrapMap.option;
+
+wrapMap.tbody = wrapMap.tfoot = wrapMap.colgroup = wrapMap.caption = wrapMap.thead;
+wrapMap.th = wrapMap.td;
+
+
+function getAll( context, tag ) {
+
+ // Support: IE <=9 - 11 only
+ // Use typeof to avoid zero-argument method invocation on host objects (#15151)
+ var ret;
+
+ if ( typeof context.getElementsByTagName !== "undefined" ) {
+ ret = context.getElementsByTagName( tag || "*" );
+
+ } else if ( typeof context.querySelectorAll !== "undefined" ) {
+ ret = context.querySelectorAll( tag || "*" );
+
+ } else {
+ ret = [];
+ }
+
+ if ( tag === undefined || tag && jQuery.nodeName( context, tag ) ) {
+ return jQuery.merge( [ context ], ret );
+ }
+
+ return ret;
+}
+
+
+// Mark scripts as having already been evaluated
+function setGlobalEval( elems, refElements ) {
+ var i = 0,
+ l = elems.length;
+
+ for ( ; i < l; i++ ) {
+ dataPriv.set(
+ elems[ i ],
+ "globalEval",
+ !refElements || dataPriv.get( refElements[ i ], "globalEval" )
+ );
+ }
+}
+
+
+var rhtml = /<|&#?\w+;/;
+
+function buildFragment( elems, context, scripts, selection, ignored ) {
+ var elem, tmp, tag, wrap, contains, j,
+ fragment = context.createDocumentFragment(),
+ nodes = [],
+ i = 0,
+ l = elems.length;
+
+ for ( ; i < l; i++ ) {
+ elem = elems[ i ];
+
+ if ( elem || elem === 0 ) {
+
+ // Add nodes directly
+ if ( jQuery.type( elem ) === "object" ) {
+
+ // Support: Android <=4.0 only, PhantomJS 1 only
+ // push.apply(_, arraylike) throws on ancient WebKit
+ jQuery.merge( nodes, elem.nodeType ? [ elem ] : elem );
+
+ // Convert non-html into a text node
+ } else if ( !rhtml.test( elem ) ) {
+ nodes.push( context.createTextNode( elem ) );
+
+ // Convert html into DOM nodes
+ } else {
+ tmp = tmp || fragment.appendChild( context.createElement( "div" ) );
+
+ // Deserialize a standard representation
+ tag = ( rtagName.exec( elem ) || [ "", "" ] )[ 1 ].toLowerCase();
+ wrap = wrapMap[ tag ] || wrapMap._default;
+ tmp.innerHTML = wrap[ 1 ] + jQuery.htmlPrefilter( elem ) + wrap[ 2 ];
+
+ // Descend through wrappers to the right content
+ j = wrap[ 0 ];
+ while ( j-- ) {
+ tmp = tmp.lastChild;
+ }
+
+ // Support: Android <=4.0 only, PhantomJS 1 only
+ // push.apply(_, arraylike) throws on ancient WebKit
+ jQuery.merge( nodes, tmp.childNodes );
+
+ // Remember the top-level container
+ tmp = fragment.firstChild;
+
+ // Ensure the created nodes are orphaned (#12392)
+ tmp.textContent = "";
+ }
+ }
+ }
+
+ // Remove wrapper from fragment
+ fragment.textContent = "";
+
+ i = 0;
+ while ( ( elem = nodes[ i++ ] ) ) {
+
+ // Skip elements already in the context collection (trac-4087)
+ if ( selection && jQuery.inArray( elem, selection ) > -1 ) {
+ if ( ignored ) {
+ ignored.push( elem );
+ }
+ continue;
+ }
+
+ contains = jQuery.contains( elem.ownerDocument, elem );
+
+ // Append to fragment
+ tmp = getAll( fragment.appendChild( elem ), "script" );
+
+ // Preserve script evaluation history
+ if ( contains ) {
+ setGlobalEval( tmp );
+ }
+
+ // Capture executables
+ if ( scripts ) {
+ j = 0;
+ while ( ( elem = tmp[ j++ ] ) ) {
+ if ( rscriptType.test( elem.type || "" ) ) {
+ scripts.push( elem );
+ }
+ }
+ }
+ }
+
+ return fragment;
+}
+
+
+( function() {
+ var fragment = document.createDocumentFragment(),
+ div = fragment.appendChild( document.createElement( "div" ) ),
+ input = document.createElement( "input" );
+
+ // Support: Android 4.0 - 4.3 only
+ // Check state lost if the name is set (#11217)
+ // Support: Windows Web Apps (WWA)
+ // `name` and `type` must use .setAttribute for WWA (#14901)
+ input.setAttribute( "type", "radio" );
+ input.setAttribute( "checked", "checked" );
+ input.setAttribute( "name", "t" );
+
+ div.appendChild( input );
+
+ // Support: Android <=4.1 only
+ // Older WebKit doesn't clone checked state correctly in fragments
+ support.checkClone = div.cloneNode( true ).cloneNode( true ).lastChild.checked;
+
+ // Support: IE <=11 only
+ // Make sure textarea (and checkbox) defaultValue is properly cloned
+ div.innerHTML = "<textarea>x</textarea>";
+ support.noCloneChecked = !!div.cloneNode( true ).lastChild.defaultValue;
+} )();
+var documentElement = document.documentElement;
+
+
+
+var
+ rkeyEvent = /^key/,
+ rmouseEvent = /^(?:mouse|pointer|contextmenu|drag|drop)|click/,
+ rtypenamespace = /^([^.]*)(?:\.(.+)|)/;
+
+function returnTrue() {
+ return true;
+}
+
+function returnFalse() {
+ return false;
+}
+
+// Support: IE <=9 only
+// See #13393 for more info
+function safeActiveElement() {
+ try {
+ return document.activeElement;
+ } catch ( err ) { }
+}
+
+function on( elem, types, selector, data, fn, one ) {
+ var origFn, type;
+
+ // Types can be a map of types/handlers
+ if ( typeof types === "object" ) {
+
+ // ( types-Object, selector, data )
+ if ( typeof selector !== "string" ) {
+
+ // ( types-Object, data )
+ data = data || selector;
+ selector = undefined;
+ }
+ for ( type in types ) {
+ on( elem, type, selector, data, types[ type ], one );
+ }
+ return elem;
+ }
+
+ if ( data == null && fn == null ) {
+
+ // ( types, fn )
+ fn = selector;
+ data = selector = undefined;
+ } else if ( fn == null ) {
+ if ( typeof selector === "string" ) {
+
+ // ( types, selector, fn )
+ fn = data;
+ data = undefined;
+ } else {
+
+ // ( types, data, fn )
+ fn = data;
+ data = selector;
+ selector = undefined;
+ }
+ }
+ if ( fn === false ) {
+ fn = returnFalse;
+ } else if ( !fn ) {
+ return elem;
+ }
+
+ if ( one === 1 ) {
+ origFn = fn;
+ fn = function( event ) {
+
+ // Can use an empty set, since event contains the info
+ jQuery().off( event );
+ return origFn.apply( this, arguments );
+ };
+
+ // Use same guid so caller can remove using origFn
+ fn.guid = origFn.guid || ( origFn.guid = jQuery.guid++ );
+ }
+ return elem.each( function() {
+ jQuery.event.add( this, types, fn, data, selector );
+ } );
+}
+
+/*
+ * Helper functions for managing events -- not part of the public interface.
+ * Props to Dean Edwards' addEvent library for many of the ideas.
+ */
+jQuery.event = {
+
+ global: {},
+
+ add: function( elem, types, handler, data, selector ) {
+
+ var handleObjIn, eventHandle, tmp,
+ events, t, handleObj,
+ special, handlers, type, namespaces, origType,
+ elemData = dataPriv.get( elem );
+
+ // Don't attach events to noData or text/comment nodes (but allow plain objects)
+ if ( !elemData ) {
+ return;
+ }
+
+ // Caller can pass in an object of custom data in lieu of the handler
+ if ( handler.handler ) {
+ handleObjIn = handler;
+ handler = handleObjIn.handler;
+ selector = handleObjIn.selector;
+ }
+
+ // Ensure that invalid selectors throw exceptions at attach time
+ // Evaluate against documentElement in case elem is a non-element node (e.g., document)
+ if ( selector ) {
+ jQuery.find.matchesSelector( documentElement, selector );
+ }
+
+ // Make sure that the handler has a unique ID, used to find/remove it later
+ if ( !handler.guid ) {
+ handler.guid = jQuery.guid++;
+ }
+
+ // Init the element's event structure and main handler, if this is the first
+ if ( !( events = elemData.events ) ) {
+ events = elemData.events = {};
+ }
+ if ( !( eventHandle = elemData.handle ) ) {
+ eventHandle = elemData.handle = function( e ) {
+
+ // Discard the second event of a jQuery.event.trigger() and
+ // when an event is called after a page has unloaded
+ return typeof jQuery !== "undefined" && jQuery.event.triggered !== e.type ?
+ jQuery.event.dispatch.apply( elem, arguments ) : undefined;
+ };
+ }
+
+ // Handle multiple events separated by a space
+ types = ( types || "" ).match( rnothtmlwhite ) || [ "" ];
+ t = types.length;
+ while ( t-- ) {
+ tmp = rtypenamespace.exec( types[ t ] ) || [];
+ type = origType = tmp[ 1 ];
+ namespaces = ( tmp[ 2 ] || "" ).split( "." ).sort();
+
+ // There *must* be a type, no attaching namespace-only handlers
+ if ( !type ) {
+ continue;
+ }
+
+ // If event changes its type, use the special event handlers for the changed type
+ special = jQuery.event.special[ type ] || {};
+
+ // If selector defined, determine special event api type, otherwise given type
+ type = ( selector ? special.delegateType : special.bindType ) || type;
+
+ // Update special based on newly reset type
+ special = jQuery.event.special[ type ] || {};
+
+ // handleObj is passed to all event handlers
+ handleObj = jQuery.extend( {
+ type: type,
+ origType: origType,
+ data: data,
+ handler: handler,
+ guid: handler.guid,
+ selector: selector,
+ needsContext: selector && jQuery.expr.match.needsContext.test( selector ),
+ namespace: namespaces.join( "." )
+ }, handleObjIn );
+
+ // Init the event handler queue if we're the first
+ if ( !( handlers = events[ type ] ) ) {
+ handlers = events[ type ] = [];
+ handlers.delegateCount = 0;
+
+ // Only use addEventListener if the special events handler returns false
+ if ( !special.setup ||
+ special.setup.call( elem, data, namespaces, eventHandle ) === false ) {
+
+ if ( elem.addEventListener ) {
+ elem.addEventListener( type, eventHandle );
+ }
+ }
+ }
+
+ if ( special.add ) {
+ special.add.call( elem, handleObj );
+
+ if ( !handleObj.handler.guid ) {
+ handleObj.handler.guid = handler.guid;
+ }
+ }
+
+ // Add to the element's handler list, delegates in front
+ if ( selector ) {
+ handlers.splice( handlers.delegateCount++, 0, handleObj );
+ } else {
+ handlers.push( handleObj );
+ }
+
+ // Keep track of which events have ever been used, for event optimization
+ jQuery.event.global[ type ] = true;
+ }
+
+ },
+
+ // Detach an event or set of events from an element
+ remove: function( elem, types, handler, selector, mappedTypes ) {
+
+ var j, origCount, tmp,
+ events, t, handleObj,
+ special, handlers, type, namespaces, origType,
+ elemData = dataPriv.hasData( elem ) && dataPriv.get( elem );
+
+ if ( !elemData || !( events = elemData.events ) ) {
+ return;
+ }
+
+ // Once for each type.namespace in types; type may be omitted
+ types = ( types || "" ).match( rnothtmlwhite ) || [ "" ];
+ t = types.length;
+ while ( t-- ) {
+ tmp = rtypenamespace.exec( types[ t ] ) || [];
+ type = origType = tmp[ 1 ];
+ namespaces = ( tmp[ 2 ] || "" ).split( "." ).sort();
+
+ // Unbind all events (on this namespace, if provided) for the element
+ if ( !type ) {
+ for ( type in events ) {
+ jQuery.event.remove( elem, type + types[ t ], handler, selector, true );
+ }
+ continue;
+ }
+
+ special = jQuery.event.special[ type ] || {};
+ type = ( selector ? special.delegateType : special.bindType ) || type;
+ handlers = events[ type ] || [];
+ tmp = tmp[ 2 ] &&
+ new RegExp( "(^|\\.)" + namespaces.join( "\\.(?:.*\\.|)" ) + "(\\.|$)" );
+
+ // Remove matching events
+ origCount = j = handlers.length;
+ while ( j-- ) {
+ handleObj = handlers[ j ];
+
+ if ( ( mappedTypes || origType === handleObj.origType ) &&
+ ( !handler || handler.guid === handleObj.guid ) &&
+ ( !tmp || tmp.test( handleObj.namespace ) ) &&
+ ( !selector || selector === handleObj.selector ||
+ selector === "**" && handleObj.selector ) ) {
+ handlers.splice( j, 1 );
+
+ if ( handleObj.selector ) {
+ handlers.delegateCount--;
+ }
+ if ( special.remove ) {
+ special.remove.call( elem, handleObj );
+ }
+ }
+ }
+
+ // Remove generic event handler if we removed something and no more handlers exist
+ // (avoids potential for endless recursion during removal of special event handlers)
+ if ( origCount && !handlers.length ) {
+ if ( !special.teardown ||
+ special.teardown.call( elem, namespaces, elemData.handle ) === false ) {
+
+ jQuery.removeEvent( elem, type, elemData.handle );
+ }
+
+ delete events[ type ];
+ }
+ }
+
+ // Remove data and the expando if it's no longer used
+ if ( jQuery.isEmptyObject( events ) ) {
+ dataPriv.remove( elem, "handle events" );
+ }
+ },
+
+ dispatch: function( nativeEvent ) {
+
+ // Make a writable jQuery.Event from the native event object
+ var event = jQuery.event.fix( nativeEvent );
+
+ var i, j, ret, matched, handleObj, handlerQueue,
+ args = new Array( arguments.length ),
+ handlers = ( dataPriv.get( this, "events" ) || {} )[ event.type ] || [],
+ special = jQuery.event.special[ event.type ] || {};
+
+ // Use the fix-ed jQuery.Event rather than the (read-only) native event
+ args[ 0 ] = event;
+
+ for ( i = 1; i < arguments.length; i++ ) {
+ args[ i ] = arguments[ i ];
+ }
+
+ event.delegateTarget = this;
+
+ // Call the preDispatch hook for the mapped type, and let it bail if desired
+ if ( special.preDispatch && special.preDispatch.call( this, event ) === false ) {
+ return;
+ }
+
+ // Determine handlers
+ handlerQueue = jQuery.event.handlers.call( this, event, handlers );
+
+ // Run delegates first; they may want to stop propagation beneath us
+ i = 0;
+ while ( ( matched = handlerQueue[ i++ ] ) && !event.isPropagationStopped() ) {
+ event.currentTarget = matched.elem;
+
+ j = 0;
+ while ( ( handleObj = matched.handlers[ j++ ] ) &&
+ !event.isImmediatePropagationStopped() ) {
+
+ // Triggered event must either 1) have no namespace, or 2) have namespace(s)
+ // a subset or equal to those in the bound event (both can have no namespace).
+ if ( !event.rnamespace || event.rnamespace.test( handleObj.namespace ) ) {
+
+ event.handleObj = handleObj;
+ event.data = handleObj.data;
+
+ ret = ( ( jQuery.event.special[ handleObj.origType ] || {} ).handle ||
+ handleObj.handler ).apply( matched.elem, args );
+
+ if ( ret !== undefined ) {
+ if ( ( event.result = ret ) === false ) {
+ event.preventDefault();
+ event.stopPropagation();
+ }
+ }
+ }
+ }
+ }
+
+ // Call the postDispatch hook for the mapped type
+ if ( special.postDispatch ) {
+ special.postDispatch.call( this, event );
+ }
+
+ return event.result;
+ },
+
+ handlers: function( event, handlers ) {
+ var i, handleObj, sel, matchedHandlers, matchedSelectors,
+ handlerQueue = [],
+ delegateCount = handlers.delegateCount,
+ cur = event.target;
+
+ // Find delegate handlers
+ if ( delegateCount &&
+
+ // Support: IE <=9
+ // Black-hole SVG <use> instance trees (trac-13180)
+ cur.nodeType &&
+
+ // Support: Firefox <=42
+ // Suppress spec-violating clicks indicating a non-primary pointer button (trac-3861)
+ // https://www.w3.org/TR/DOM-Level-3-Events/#event-type-click
+ // Support: IE 11 only
+ // ...but not arrow key "clicks" of radio inputs, which can have `button` -1 (gh-2343)
+ !( event.type === "click" && event.button >= 1 ) ) {
+
+ for ( ; cur !== this; cur = cur.parentNode || this ) {
+
+ // Don't check non-elements (#13208)
+ // Don't process clicks on disabled elements (#6911, #8165, #11382, #11764)
+ if ( cur.nodeType === 1 && !( event.type === "click" && cur.disabled === true ) ) {
+ matchedHandlers = [];
+ matchedSelectors = {};
+ for ( i = 0; i < delegateCount; i++ ) {
+ handleObj = handlers[ i ];
+
+ // Don't conflict with Object.prototype properties (#13203)
+ sel = handleObj.selector + " ";
+
+ if ( matchedSelectors[ sel ] === undefined ) {
+ matchedSelectors[ sel ] = handleObj.needsContext ?
+ jQuery( sel, this ).index( cur ) > -1 :
+ jQuery.find( sel, this, null, [ cur ] ).length;
+ }
+ if ( matchedSelectors[ sel ] ) {
+ matchedHandlers.push( handleObj );
+ }
+ }
+ if ( matchedHandlers.length ) {
+ handlerQueue.push( { elem: cur, handlers: matchedHandlers } );
+ }
+ }
+ }
+ }
+
+ // Add the remaining (directly-bound) handlers
+ cur = this;
+ if ( delegateCount < handlers.length ) {
+ handlerQueue.push( { elem: cur, handlers: handlers.slice( delegateCount ) } );
+ }
+
+ return handlerQueue;
+ },
+
+ addProp: function( name, hook ) {
+ Object.defineProperty( jQuery.Event.prototype, name, {
+ enumerable: true,
+ configurable: true,
+
+ get: jQuery.isFunction( hook ) ?
+ function() {
+ if ( this.originalEvent ) {
+ return hook( this.originalEvent );
+ }
+ } :
+ function() {
+ if ( this.originalEvent ) {
+ return this.originalEvent[ name ];
+ }
+ },
+
+ set: function( value ) {
+ Object.defineProperty( this, name, {
+ enumerable: true,
+ configurable: true,
+ writable: true,
+ value: value
+ } );
+ }
+ } );
+ },
+
+ fix: function( originalEvent ) {
+ return originalEvent[ jQuery.expando ] ?
+ originalEvent :
+ new jQuery.Event( originalEvent );
+ },
+
+ special: {
+ load: {
+
+ // Prevent triggered image.load events from bubbling to window.load
+ noBubble: true
+ },
+ focus: {
+
+ // Fire native event if possible so blur/focus sequence is correct
+ trigger: function() {
+ if ( this !== safeActiveElement() && this.focus ) {
+ this.focus();
+ return false;
+ }
+ },
+ delegateType: "focusin"
+ },
+ blur: {
+ trigger: function() {
+ if ( this === safeActiveElement() && this.blur ) {
+ this.blur();
+ return false;
+ }
+ },
+ delegateType: "focusout"
+ },
+ click: {
+
+ // For checkbox, fire native event so checked state will be right
+ trigger: function() {
+ if ( this.type === "checkbox" && this.click && jQuery.nodeName( this, "input" ) ) {
+ this.click();
+ return false;
+ }
+ },
+
+ // For cross-browser consistency, don't fire native .click() on links
+ _default: function( event ) {
+ return jQuery.nodeName( event.target, "a" );
+ }
+ },
+
+ beforeunload: {
+ postDispatch: function( event ) {
+
+ // Support: Firefox 20+
+ // Firefox doesn't alert if the returnValue field is not set.
+ if ( event.result !== undefined && event.originalEvent ) {
+ event.originalEvent.returnValue = event.result;
+ }
+ }
+ }
+ }
+};
+
+jQuery.removeEvent = function( elem, type, handle ) {
+
+ // This "if" is needed for plain objects
+ if ( elem.removeEventListener ) {
+ elem.removeEventListener( type, handle );
+ }
+};
+
+jQuery.Event = function( src, props ) {
+
+ // Allow instantiation without the 'new' keyword
+ if ( !( this instanceof jQuery.Event ) ) {
+ return new jQuery.Event( src, props );
+ }
+
+ // Event object
+ if ( src && src.type ) {
+ this.originalEvent = src;
+ this.type = src.type;
+
+ // Events bubbling up the document may have been marked as prevented
+ // by a handler lower down the tree; reflect the correct value.
+ this.isDefaultPrevented = src.defaultPrevented ||
+ src.defaultPrevented === undefined &&
+
+ // Support: Android <=2.3 only
+ src.returnValue === false ?
+ returnTrue :
+ returnFalse;
+
+ // Create target properties
+ // Support: Safari <=6 - 7 only
+ // Target should not be a text node (#504, #13143)
+ this.target = ( src.target && src.target.nodeType === 3 ) ?
+ src.target.parentNode :
+ src.target;
+
+ this.currentTarget = src.currentTarget;
+ this.relatedTarget = src.relatedTarget;
+
+ // Event type
+ } else {
+ this.type = src;
+ }
+
+ // Put explicitly provided properties onto the event object
+ if ( props ) {
+ jQuery.extend( this, props );
+ }
+
+ // Create a timestamp if incoming event doesn't have one
+ this.timeStamp = src && src.timeStamp || jQuery.now();
+
+ // Mark it as fixed
+ this[ jQuery.expando ] = true;
+};
+
+// jQuery.Event is based on DOM3 Events as specified by the ECMAScript Language Binding
+// https://www.w3.org/TR/2003/WD-DOM-Level-3-Events-20030331/ecma-script-binding.html
+jQuery.Event.prototype = {
+ constructor: jQuery.Event,
+ isDefaultPrevented: returnFalse,
+ isPropagationStopped: returnFalse,
+ isImmediatePropagationStopped: returnFalse,
+ isSimulated: false,
+
+ preventDefault: function() {
+ var e = this.originalEvent;
+
+ this.isDefaultPrevented = returnTrue;
+
+ if ( e && !this.isSimulated ) {
+ e.preventDefault();
+ }
+ },
+ stopPropagation: function() {
+ var e = this.originalEvent;
+
+ this.isPropagationStopped = returnTrue;
+
+ if ( e && !this.isSimulated ) {
+ e.stopPropagation();
+ }
+ },
+ stopImmediatePropagation: function() {
+ var e = this.originalEvent;
+
+ this.isImmediatePropagationStopped = returnTrue;
+
+ if ( e && !this.isSimulated ) {
+ e.stopImmediatePropagation();
+ }
+
+ this.stopPropagation();
+ }
+};
+
+// Includes all common event props including KeyEvent and MouseEvent specific props
+jQuery.each( {
+ altKey: true,
+ bubbles: true,
+ cancelable: true,
+ changedTouches: true,
+ ctrlKey: true,
+ detail: true,
+ eventPhase: true,
+ metaKey: true,
+ pageX: true,
+ pageY: true,
+ shiftKey: true,
+ view: true,
+ "char": true,
+ charCode: true,
+ key: true,
+ keyCode: true,
+ button: true,
+ buttons: true,
+ clientX: true,
+ clientY: true,
+ offsetX: true,
+ offsetY: true,
+ pointerId: true,
+ pointerType: true,
+ screenX: true,
+ screenY: true,
+ targetTouches: true,
+ toElement: true,
+ touches: true,
+
+ which: function( event ) {
+ var button = event.button;
+
+ // Add which for key events
+ if ( event.which == null && rkeyEvent.test( event.type ) ) {
+ return event.charCode != null ? event.charCode : event.keyCode;
+ }
+
+ // Add which for click: 1 === left; 2 === middle; 3 === right
+ if ( !event.which && button !== undefined && rmouseEvent.test( event.type ) ) {
+ if ( button & 1 ) {
+ return 1;
+ }
+
+ if ( button & 2 ) {
+ return 3;
+ }
+
+ if ( button & 4 ) {
+ return 2;
+ }
+
+ return 0;
+ }
+
+ return event.which;
+ }
+}, jQuery.event.addProp );
+
+// Create mouseenter/leave events using mouseover/out and event-time checks
+// so that event delegation works in jQuery.
+// Do the same for pointerenter/pointerleave and pointerover/pointerout
+//
+// Support: Safari 7 only
+// Safari sends mouseenter too often; see:
+// https://bugs.chromium.org/p/chromium/issues/detail?id=470258
+// for the description of the bug (it existed in older Chrome versions as well).
+jQuery.each( {
+ mouseenter: "mouseover",
+ mouseleave: "mouseout",
+ pointerenter: "pointerover",
+ pointerleave: "pointerout"
+}, function( orig, fix ) {
+ jQuery.event.special[ orig ] = {
+ delegateType: fix,
+ bindType: fix,
+
+ handle: function( event ) {
+ var ret,
+ target = this,
+ related = event.relatedTarget,
+ handleObj = event.handleObj;
+
+ // For mouseenter/leave call the handler if related is outside the target.
+ // NB: No relatedTarget if the mouse left/entered the browser window
+ if ( !related || ( related !== target && !jQuery.contains( target, related ) ) ) {
+ event.type = handleObj.origType;
+ ret = handleObj.handler.apply( this, arguments );
+ event.type = fix;
+ }
+ return ret;
+ }
+ };
+} );
+
+jQuery.fn.extend( {
+
+ on: function( types, selector, data, fn ) {
+ return on( this, types, selector, data, fn );
+ },
+ one: function( types, selector, data, fn ) {
+ return on( this, types, selector, data, fn, 1 );
+ },
+ off: function( types, selector, fn ) {
+ var handleObj, type;
+ if ( types && types.preventDefault && types.handleObj ) {
+
+ // ( event ) dispatched jQuery.Event
+ handleObj = types.handleObj;
+ jQuery( types.delegateTarget ).off(
+ handleObj.namespace ?
+ handleObj.origType + "." + handleObj.namespace :
+ handleObj.origType,
+ handleObj.selector,
+ handleObj.handler
+ );
+ return this;
+ }
+ if ( typeof types === "object" ) {
+
+ // ( types-object [, selector] )
+ for ( type in types ) {
+ this.off( type, selector, types[ type ] );
+ }
+ return this;
+ }
+ if ( selector === false || typeof selector === "function" ) {
+
+ // ( types [, fn] )
+ fn = selector;
+ selector = undefined;
+ }
+ if ( fn === false ) {
+ fn = returnFalse;
+ }
+ return this.each( function() {
+ jQuery.event.remove( this, types, fn, selector );
+ } );
+ }
+} );
+
+
+var
+
+ /* eslint-disable max-len */
+
+ // See https://github.com/eslint/eslint/issues/3229
+ rxhtmlTag = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([a-z][^\/\0>\x20\t\r\n\f]*)[^>]*)\/>/gi,
+
+ /* eslint-enable */
+
+ // Support: IE <=10 - 11, Edge 12 - 13
+ // In IE/Edge using regex groups here causes severe slowdowns.
+ // See https://connect.microsoft.com/IE/feedback/details/1736512/
+ rnoInnerhtml = /<script|<style|<link/i,
+
+ // checked="checked" or checked
+ rchecked = /checked\s*(?:[^=]|=\s*.checked.)/i,
+ rscriptTypeMasked = /^true\/(.*)/,
+ rcleanScript = /^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g;
+
+function manipulationTarget( elem, content ) {
+ if ( jQuery.nodeName( elem, "table" ) &&
+ jQuery.nodeName( content.nodeType !== 11 ? content : content.firstChild, "tr" ) ) {
+
+ return elem.getElementsByTagName( "tbody" )[ 0 ] || elem;
+ }
+
+ return elem;
+}
+
+// Replace/restore the type attribute of script elements for safe DOM manipulation
+function disableScript( elem ) {
+ elem.type = ( elem.getAttribute( "type" ) !== null ) + "/" + elem.type;
+ return elem;
+}
+function restoreScript( elem ) {
+ var match = rscriptTypeMasked.exec( elem.type );
+
+ if ( match ) {
+ elem.type = match[ 1 ];
+ } else {
+ elem.removeAttribute( "type" );
+ }
+
+ return elem;
+}
+
+function cloneCopyEvent( src, dest ) {
+ var i, l, type, pdataOld, pdataCur, udataOld, udataCur, events;
+
+ if ( dest.nodeType !== 1 ) {
+ return;
+ }
+
+ // 1. Copy private data: events, handlers, etc.
+ if ( dataPriv.hasData( src ) ) {
+ pdataOld = dataPriv.access( src );
+ pdataCur = dataPriv.set( dest, pdataOld );
+ events = pdataOld.events;
+
+ if ( events ) {
+ delete pdataCur.handle;
+ pdataCur.events = {};
+
+ for ( type in events ) {
+ for ( i = 0, l = events[ type ].length; i < l; i++ ) {
+ jQuery.event.add( dest, type, events[ type ][ i ] );
+ }
+ }
+ }
+ }
+
+ // 2. Copy user data
+ if ( dataUser.hasData( src ) ) {
+ udataOld = dataUser.access( src );
+ udataCur = jQuery.extend( {}, udataOld );
+
+ dataUser.set( dest, udataCur );
+ }
+}
+
+// Fix IE bugs, see support tests
+function fixInput( src, dest ) {
+ var nodeName = dest.nodeName.toLowerCase();
+
+ // Fails to persist the checked state of a cloned checkbox or radio button.
+ if ( nodeName === "input" && rcheckableType.test( src.type ) ) {
+ dest.checked = src.checked;
+
+ // Fails to return the selected option to the default selected state when cloning options
+ } else if ( nodeName === "input" || nodeName === "textarea" ) {
+ dest.defaultValue = src.defaultValue;
+ }
+}
+
+function domManip( collection, args, callback, ignored ) {
+
+ // Flatten any nested arrays
+ args = concat.apply( [], args );
+
+ var fragment, first, scripts, hasScripts, node, doc,
+ i = 0,
+ l = collection.length,
+ iNoClone = l - 1,
+ value = args[ 0 ],
+ isFunction = jQuery.isFunction( value );
+
+ // We can't cloneNode fragments that contain checked, in WebKit
+ if ( isFunction ||
+ ( l > 1 && typeof value === "string" &&
+ !support.checkClone && rchecked.test( value ) ) ) {
+ return collection.each( function( index ) {
+ var self = collection.eq( index );
+ if ( isFunction ) {
+ args[ 0 ] = value.call( this, index, self.html() );
+ }
+ domManip( self, args, callback, ignored );
+ } );
+ }
+
+ if ( l ) {
+ fragment = buildFragment( args, collection[ 0 ].ownerDocument, false, collection, ignored );
+ first = fragment.firstChild;
+
+ if ( fragment.childNodes.length === 1 ) {
+ fragment = first;
+ }
+
+ // Require either new content or an interest in ignored elements to invoke the callback
+ if ( first || ignored ) {
+ scripts = jQuery.map( getAll( fragment, "script" ), disableScript );
+ hasScripts = scripts.length;
+
+ // Use the original fragment for the last item
+ // instead of the first because it can end up
+ // being emptied incorrectly in certain situations (#8070).
+ for ( ; i < l; i++ ) {
+ node = fragment;
+
+ if ( i !== iNoClone ) {
+ node = jQuery.clone( node, true, true );
+
+ // Keep references to cloned scripts for later restoration
+ if ( hasScripts ) {
+
+ // Support: Android <=4.0 only, PhantomJS 1 only
+ // push.apply(_, arraylike) throws on ancient WebKit
+ jQuery.merge( scripts, getAll( node, "script" ) );
+ }
+ }
+
+ callback.call( collection[ i ], node, i );
+ }
+
+ if ( hasScripts ) {
+ doc = scripts[ scripts.length - 1 ].ownerDocument;
+
+ // Reenable scripts
+ jQuery.map( scripts, restoreScript );
+
+ // Evaluate executable scripts on first document insertion
+ for ( i = 0; i < hasScripts; i++ ) {
+ node = scripts[ i ];
+ if ( rscriptType.test( node.type || "" ) &&
+ !dataPriv.access( node, "globalEval" ) &&
+ jQuery.contains( doc, node ) ) {
+
+ if ( node.src ) {
+
+ // Optional AJAX dependency, but won't run scripts if not present
+ if ( jQuery._evalUrl ) {
+ jQuery._evalUrl( node.src );
+ }
+ } else {
+ DOMEval( node.textContent.replace( rcleanScript, "" ), doc );
+ }
+ }
+ }
+ }
+ }
+ }
+
+ return collection;
+}
+
+function remove( elem, selector, keepData ) {
+ var node,
+ nodes = selector ? jQuery.filter( selector, elem ) : elem,
+ i = 0;
+
+ for ( ; ( node = nodes[ i ] ) != null; i++ ) {
+ if ( !keepData && node.nodeType === 1 ) {
+ jQuery.cleanData( getAll( node ) );
+ }
+
+ if ( node.parentNode ) {
+ if ( keepData && jQuery.contains( node.ownerDocument, node ) ) {
+ setGlobalEval( getAll( node, "script" ) );
+ }
+ node.parentNode.removeChild( node );
+ }
+ }
+
+ return elem;
+}
+
+jQuery.extend( {
+ htmlPrefilter: function( html ) {
+ return html.replace( rxhtmlTag, "<$1></$2>" );
+ },
+
+ clone: function( elem, dataAndEvents, deepDataAndEvents ) {
+ var i, l, srcElements, destElements,
+ clone = elem.cloneNode( true ),
+ inPage = jQuery.contains( elem.ownerDocument, elem );
+
+ // Fix IE cloning issues
+ if ( !support.noCloneChecked && ( elem.nodeType === 1 || elem.nodeType === 11 ) &&
+ !jQuery.isXMLDoc( elem ) ) {
+
+ // We eschew Sizzle here for performance reasons: https://jsperf.com/getall-vs-sizzle/2
+ destElements = getAll( clone );
+ srcElements = getAll( elem );
+
+ for ( i = 0, l = srcElements.length; i < l; i++ ) {
+ fixInput( srcElements[ i ], destElements[ i ] );
+ }
+ }
+
+ // Copy the events from the original to the clone
+ if ( dataAndEvents ) {
+ if ( deepDataAndEvents ) {
+ srcElements = srcElements || getAll( elem );
+ destElements = destElements || getAll( clone );
+
+ for ( i = 0, l = srcElements.length; i < l; i++ ) {
+ cloneCopyEvent( srcElements[ i ], destElements[ i ] );
+ }
+ } else {
+ cloneCopyEvent( elem, clone );
+ }
+ }
+
+ // Preserve script evaluation history
+ destElements = getAll( clone, "script" );
+ if ( destElements.length > 0 ) {
+ setGlobalEval( destElements, !inPage && getAll( elem, "script" ) );
+ }
+
+ // Return the cloned set
+ return clone;
+ },
+
+ cleanData: function( elems ) {
+ var data, elem, type,
+ special = jQuery.event.special,
+ i = 0;
+
+ for ( ; ( elem = elems[ i ] ) !== undefined; i++ ) {
+ if ( acceptData( elem ) ) {
+ if ( ( data = elem[ dataPriv.expando ] ) ) {
+ if ( data.events ) {
+ for ( type in data.events ) {
+ if ( special[ type ] ) {
+ jQuery.event.remove( elem, type );
+
+ // This is a shortcut to avoid jQuery.event.remove's overhead
+ } else {
+ jQuery.removeEvent( elem, type, data.handle );
+ }
+ }
+ }
+
+ // Support: Chrome <=35 - 45+
+ // Assign undefined instead of using delete, see Data#remove
+ elem[ dataPriv.expando ] = undefined;
+ }
+ if ( elem[ dataUser.expando ] ) {
+
+ // Support: Chrome <=35 - 45+
+ // Assign undefined instead of using delete, see Data#remove
+ elem[ dataUser.expando ] = undefined;
+ }
+ }
+ }
+ }
+} );
+
+jQuery.fn.extend( {
+ detach: function( selector ) {
+ return remove( this, selector, true );
+ },
+
+ remove: function( selector ) {
+ return remove( this, selector );
+ },
+
+ text: function( value ) {
+ return access( this, function( value ) {
+ return value === undefined ?
+ jQuery.text( this ) :
+ this.empty().each( function() {
+ if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {
+ this.textContent = value;
+ }
+ } );
+ }, null, value, arguments.length );
+ },
+
+ append: function() {
+ return domManip( this, arguments, function( elem ) {
+ if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {
+ var target = manipulationTarget( this, elem );
+ target.appendChild( elem );
+ }
+ } );
+ },
+
+ prepend: function() {
+ return domManip( this, arguments, function( elem ) {
+ if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {
+ var target = manipulationTarget( this, elem );
+ target.insertBefore( elem, target.firstChild );
+ }
+ } );
+ },
+
+ before: function() {
+ return domManip( this, arguments, function( elem ) {
+ if ( this.parentNode ) {
+ this.parentNode.insertBefore( elem, this );
+ }
+ } );
+ },
+
+ after: function() {
+ return domManip( this, arguments, function( elem ) {
+ if ( this.parentNode ) {
+ this.parentNode.insertBefore( elem, this.nextSibling );
+ }
+ } );
+ },
+
+ empty: function() {
+ var elem,
+ i = 0;
+
+ for ( ; ( elem = this[ i ] ) != null; i++ ) {
+ if ( elem.nodeType === 1 ) {
+
+ // Prevent memory leaks
+ jQuery.cleanData( getAll( elem, false ) );
+
+ // Remove any remaining nodes
+ elem.textContent = "";
+ }
+ }
+
+ return this;
+ },
+
+ clone: function( dataAndEvents, deepDataAndEvents ) {
+ dataAndEvents = dataAndEvents == null ? false : dataAndEvents;
+ deepDataAndEvents = deepDataAndEvents == null ? dataAndEvents : deepDataAndEvents;
+
+ return this.map( function() {
+ return jQuery.clone( this, dataAndEvents, deepDataAndEvents );
+ } );
+ },
+
+ html: function( value ) {
+ return access( this, function( value ) {
+ var elem = this[ 0 ] || {},
+ i = 0,
+ l = this.length;
+
+ if ( value === undefined && elem.nodeType === 1 ) {
+ return elem.innerHTML;
+ }
+
+ // See if we can take a shortcut and just use innerHTML
+ if ( typeof value === "string" && !rnoInnerhtml.test( value ) &&
+ !wrapMap[ ( rtagName.exec( value ) || [ "", "" ] )[ 1 ].toLowerCase() ] ) {
+
+ value = jQuery.htmlPrefilter( value );
+
+ try {
+ for ( ; i < l; i++ ) {
+ elem = this[ i ] || {};
+
+ // Remove element nodes and prevent memory leaks
+ if ( elem.nodeType === 1 ) {
+ jQuery.cleanData( getAll( elem, false ) );
+ elem.innerHTML = value;
+ }
+ }
+
+ elem = 0;
+
+ // If using innerHTML throws an exception, use the fallback method
+ } catch ( e ) {}
+ }
+
+ if ( elem ) {
+ this.empty().append( value );
+ }
+ }, null, value, arguments.length );
+ },
+
+ replaceWith: function() {
+ var ignored = [];
+
+ // Make the changes, replacing each non-ignored context element with the new content
+ return domManip( this, arguments, function( elem ) {
+ var parent = this.parentNode;
+
+ if ( jQuery.inArray( this, ignored ) < 0 ) {
+ jQuery.cleanData( getAll( this ) );
+ if ( parent ) {
+ parent.replaceChild( elem, this );
+ }
+ }
+
+ // Force callback invocation
+ }, ignored );
+ }
+} );
+
+jQuery.each( {
+ appendTo: "append",
+ prependTo: "prepend",
+ insertBefore: "before",
+ insertAfter: "after",
+ replaceAll: "replaceWith"
+}, function( name, original ) {
+ jQuery.fn[ name ] = function( selector ) {
+ var elems,
+ ret = [],
+ insert = jQuery( selector ),
+ last = insert.length - 1,
+ i = 0;
+
+ for ( ; i <= last; i++ ) {
+ elems = i === last ? this : this.clone( true );
+ jQuery( insert[ i ] )[ original ]( elems );
+
+ // Support: Android <=4.0 only, PhantomJS 1 only
+ // .get() because push.apply(_, arraylike) throws on ancient WebKit
+ push.apply( ret, elems.get() );
+ }
+
+ return this.pushStack( ret );
+ };
+} );
+var rmargin = ( /^margin/ );
+
+var rnumnonpx = new RegExp( "^(" + pnum + ")(?!px)[a-z%]+$", "i" );
+
+var getStyles = function( elem ) {
+
+ // Support: IE <=11 only, Firefox <=30 (#15098, #14150)
+ // IE throws on elements created in popups
+ // FF meanwhile throws on frame elements through "defaultView.getComputedStyle"
+ var view = elem.ownerDocument.defaultView;
+
+ if ( !view || !view.opener ) {
+ view = window;
+ }
+
+ return view.getComputedStyle( elem );
+ };
+
+
+
+( function() {
+
+ // Executing both pixelPosition & boxSizingReliable tests require only one layout
+ // so they're executed at the same time to save the second computation.
+ function computeStyleTests() {
+
+ // This is a singleton, we need to execute it only once
+ if ( !div ) {
+ return;
+ }
+
+ div.style.cssText =
+ "box-sizing:border-box;" +
+ "position:relative;display:block;" +
+ "margin:auto;border:1px;padding:1px;" +
+ "top:1%;width:50%";
+ div.innerHTML = "";
+ documentElement.appendChild( container );
+
+ var divStyle = window.getComputedStyle( div );
+ pixelPositionVal = divStyle.top !== "1%";
+
+ // Support: Android 4.0 - 4.3 only, Firefox <=3 - 44
+ reliableMarginLeftVal = divStyle.marginLeft === "2px";
+ boxSizingReliableVal = divStyle.width === "4px";
+
+ // Support: Android 4.0 - 4.3 only
+ // Some styles come back with percentage values, even though they shouldn't
+ div.style.marginRight = "50%";
+ pixelMarginRightVal = divStyle.marginRight === "4px";
+
+ documentElement.removeChild( container );
+
+ // Nullify the div so it wouldn't be stored in the memory and
+ // it will also be a sign that checks already performed
+ div = null;
+ }
+
+ var pixelPositionVal, boxSizingReliableVal, pixelMarginRightVal, reliableMarginLeftVal,
+ container = document.createElement( "div" ),
+ div = document.createElement( "div" );
+
+ // Finish early in limited (non-browser) environments
+ if ( !div.style ) {
+ return;
+ }
+
+ // Support: IE <=9 - 11 only
+ // Style of cloned element affects source element cloned (#8908)
+ div.style.backgroundClip = "content-box";
+ div.cloneNode( true ).style.backgroundClip = "";
+ support.clearCloneStyle = div.style.backgroundClip === "content-box";
+
+ container.style.cssText = "border:0;width:8px;height:0;top:0;left:-9999px;" +
+ "padding:0;margin-top:1px;position:absolute";
+ container.appendChild( div );
+
+ jQuery.extend( support, {
+ pixelPosition: function() {
+ computeStyleTests();
+ return pixelPositionVal;
+ },
+ boxSizingReliable: function() {
+ computeStyleTests();
+ return boxSizingReliableVal;
+ },
+ pixelMarginRight: function() {
+ computeStyleTests();
+ return pixelMarginRightVal;
+ },
+ reliableMarginLeft: function() {
+ computeStyleTests();
+ return reliableMarginLeftVal;
+ }
+ } );
+} )();
+
+
+function curCSS( elem, name, computed ) {
+ var width, minWidth, maxWidth, ret,
+ style = elem.style;
+
+ computed = computed || getStyles( elem );
+
+ // Support: IE <=9 only
+ // getPropertyValue is only needed for .css('filter') (#12537)
+ if ( computed ) {
+ ret = computed.getPropertyValue( name ) || computed[ name ];
+
+ if ( ret === "" && !jQuery.contains( elem.ownerDocument, elem ) ) {
+ ret = jQuery.style( elem, name );
+ }
+
+ // A tribute to the "awesome hack by Dean Edwards"
+ // Android Browser returns percentage for some values,
+ // but width seems to be reliably pixels.
+ // This is against the CSSOM draft spec:
+ // https://drafts.csswg.org/cssom/#resolved-values
+ if ( !support.pixelMarginRight() && rnumnonpx.test( ret ) && rmargin.test( name ) ) {
+
+ // Remember the original values
+ width = style.width;
+ minWidth = style.minWidth;
+ maxWidth = style.maxWidth;
+
+ // Put in the new values to get a computed value out
+ style.minWidth = style.maxWidth = style.width = ret;
+ ret = computed.width;
+
+ // Revert the changed values
+ style.width = width;
+ style.minWidth = minWidth;
+ style.maxWidth = maxWidth;
+ }
+ }
+
+ return ret !== undefined ?
+
+ // Support: IE <=9 - 11 only
+ // IE returns zIndex value as an integer.
+ ret + "" :
+ ret;
+}
+
+
+function addGetHookIf( conditionFn, hookFn ) {
+
+ // Define the hook, we'll check on the first run if it's really needed.
+ return {
+ get: function() {
+ if ( conditionFn() ) {
+
+ // Hook not needed (or it's not possible to use it due
+ // to missing dependency), remove it.
+ delete this.get;
+ return;
+ }
+
+ // Hook needed; redefine it so that the support test is not executed again.
+ return ( this.get = hookFn ).apply( this, arguments );
+ }
+ };
+}
+
+
+var
+
+ // Swappable if display is none or starts with table
+ // except "table", "table-cell", or "table-caption"
+ // See here for display values: https://developer.mozilla.org/en-US/docs/CSS/display
+ rdisplayswap = /^(none|table(?!-c[ea]).+)/,
+ cssShow = { position: "absolute", visibility: "hidden", display: "block" },
+ cssNormalTransform = {
+ letterSpacing: "0",
+ fontWeight: "400"
+ },
+
+ cssPrefixes = [ "Webkit", "Moz", "ms" ],
+ emptyStyle = document.createElement( "div" ).style;
+
+// Return a css property mapped to a potentially vendor prefixed property
+function vendorPropName( name ) {
+
+ // Shortcut for names that are not vendor prefixed
+ if ( name in emptyStyle ) {
+ return name;
+ }
+
+ // Check for vendor prefixed names
+ var capName = name[ 0 ].toUpperCase() + name.slice( 1 ),
+ i = cssPrefixes.length;
+
+ while ( i-- ) {
+ name = cssPrefixes[ i ] + capName;
+ if ( name in emptyStyle ) {
+ return name;
+ }
+ }
+}
+
+function setPositiveNumber( elem, value, subtract ) {
+
+ // Any relative (+/-) values have already been
+ // normalized at this point
+ var matches = rcssNum.exec( value );
+ return matches ?
+
+ // Guard against undefined "subtract", e.g., when used as in cssHooks
+ Math.max( 0, matches[ 2 ] - ( subtract || 0 ) ) + ( matches[ 3 ] || "px" ) :
+ value;
+}
+
+function augmentWidthOrHeight( elem, name, extra, isBorderBox, styles ) {
+ var i,
+ val = 0;
+
+ // If we already have the right measurement, avoid augmentation
+ if ( extra === ( isBorderBox ? "border" : "content" ) ) {
+ i = 4;
+
+ // Otherwise initialize for horizontal or vertical properties
+ } else {
+ i = name === "width" ? 1 : 0;
+ }
+
+ for ( ; i < 4; i += 2 ) {
+
+ // Both box models exclude margin, so add it if we want it
+ if ( extra === "margin" ) {
+ val += jQuery.css( elem, extra + cssExpand[ i ], true, styles );
+ }
+
+ if ( isBorderBox ) {
+
+ // border-box includes padding, so remove it if we want content
+ if ( extra === "content" ) {
+ val -= jQuery.css( elem, "padding" + cssExpand[ i ], true, styles );
+ }
+
+ // At this point, extra isn't border nor margin, so remove border
+ if ( extra !== "margin" ) {
+ val -= jQuery.css( elem, "border" + cssExpand[ i ] + "Width", true, styles );
+ }
+ } else {
+
+ // At this point, extra isn't content, so add padding
+ val += jQuery.css( elem, "padding" + cssExpand[ i ], true, styles );
+
+ // At this point, extra isn't content nor padding, so add border
+ if ( extra !== "padding" ) {
+ val += jQuery.css( elem, "border" + cssExpand[ i ] + "Width", true, styles );
+ }
+ }
+ }
+
+ return val;
+}
+
+function getWidthOrHeight( elem, name, extra ) {
+
+ // Start with offset property, which is equivalent to the border-box value
+ var val,
+ valueIsBorderBox = true,
+ styles = getStyles( elem ),
+ isBorderBox = jQuery.css( elem, "boxSizing", false, styles ) === "border-box";
+
+ // Support: IE <=11 only
+ // Running getBoundingClientRect on a disconnected node
+ // in IE throws an error.
+ if ( elem.getClientRects().length ) {
+ val = elem.getBoundingClientRect()[ name ];
+ }
+
+ // Some non-html elements return undefined for offsetWidth, so check for null/undefined
+ // svg - https://bugzilla.mozilla.org/show_bug.cgi?id=649285
+ // MathML - https://bugzilla.mozilla.org/show_bug.cgi?id=491668
+ if ( val <= 0 || val == null ) {
+
+ // Fall back to computed then uncomputed css if necessary
+ val = curCSS( elem, name, styles );
+ if ( val < 0 || val == null ) {
+ val = elem.style[ name ];
+ }
+
+ // Computed unit is not pixels. Stop here and return.
+ if ( rnumnonpx.test( val ) ) {
+ return val;
+ }
+
+ // Check for style in case a browser which returns unreliable values
+ // for getComputedStyle silently falls back to the reliable elem.style
+ valueIsBorderBox = isBorderBox &&
+ ( support.boxSizingReliable() || val === elem.style[ name ] );
+
+ // Normalize "", auto, and prepare for extra
+ val = parseFloat( val ) || 0;
+ }
+
+ // Use the active box-sizing model to add/subtract irrelevant styles
+ return ( val +
+ augmentWidthOrHeight(
+ elem,
+ name,
+ extra || ( isBorderBox ? "border" : "content" ),
+ valueIsBorderBox,
+ styles
+ )
+ ) + "px";
+}
+
+jQuery.extend( {
+
+ // Add in style property hooks for overriding the default
+ // behavior of getting and setting a style property
+ cssHooks: {
+ opacity: {
+ get: function( elem, computed ) {
+ if ( computed ) {
+
+ // We should always get a number back from opacity
+ var ret = curCSS( elem, "opacity" );
+ return ret === "" ? "1" : ret;
+ }
+ }
+ }
+ },
+
+ // Don't automatically add "px" to these possibly-unitless properties
+ cssNumber: {
+ "animationIterationCount": true,
+ "columnCount": true,
+ "fillOpacity": true,
+ "flexGrow": true,
+ "flexShrink": true,
+ "fontWeight": true,
+ "lineHeight": true,
+ "opacity": true,
+ "order": true,
+ "orphans": true,
+ "widows": true,
+ "zIndex": true,
+ "zoom": true
+ },
+
+ // Add in properties whose names you wish to fix before
+ // setting or getting the value
+ cssProps: {
+ "float": "cssFloat"
+ },
+
+ // Get and set the style property on a DOM Node
+ style: function( elem, name, value, extra ) {
+
+ // Don't set styles on text and comment nodes
+ if ( !elem || elem.nodeType === 3 || elem.nodeType === 8 || !elem.style ) {
+ return;
+ }
+
+ // Make sure that we're working with the right name
+ var ret, type, hooks,
+ origName = jQuery.camelCase( name ),
+ style = elem.style;
+
+ name = jQuery.cssProps[ origName ] ||
+ ( jQuery.cssProps[ origName ] = vendorPropName( origName ) || origName );
+
+ // Gets hook for the prefixed version, then unprefixed version
+ hooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ];
+
+ // Check if we're setting a value
+ if ( value !== undefined ) {
+ type = typeof value;
+
+ // Convert "+=" or "-=" to relative numbers (#7345)
+ if ( type === "string" && ( ret = rcssNum.exec( value ) ) && ret[ 1 ] ) {
+ value = adjustCSS( elem, name, ret );
+
+ // Fixes bug #9237
+ type = "number";
+ }
+
+ // Make sure that null and NaN values aren't set (#7116)
+ if ( value == null || value !== value ) {
+ return;
+ }
+
+ // If a number was passed in, add the unit (except for certain CSS properties)
+ if ( type === "number" ) {
+ value += ret && ret[ 3 ] || ( jQuery.cssNumber[ origName ] ? "" : "px" );
+ }
+
+ // background-* props affect original clone's values
+ if ( !support.clearCloneStyle && value === "" && name.indexOf( "background" ) === 0 ) {
+ style[ name ] = "inherit";
+ }
+
+ // If a hook was provided, use that value, otherwise just set the specified value
+ if ( !hooks || !( "set" in hooks ) ||
+ ( value = hooks.set( elem, value, extra ) ) !== undefined ) {
+
+ style[ name ] = value;
+ }
+
+ } else {
+
+ // If a hook was provided get the non-computed value from there
+ if ( hooks && "get" in hooks &&
+ ( ret = hooks.get( elem, false, extra ) ) !== undefined ) {
+
+ return ret;
+ }
+
+ // Otherwise just get the value from the style object
+ return style[ name ];
+ }
+ },
+
+ css: function( elem, name, extra, styles ) {
+ var val, num, hooks,
+ origName = jQuery.camelCase( name );
+
+ // Make sure that we're working with the right name
+ name = jQuery.cssProps[ origName ] ||
+ ( jQuery.cssProps[ origName ] = vendorPropName( origName ) || origName );
+
+ // Try prefixed name followed by the unprefixed name
+ hooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ];
+
+ // If a hook was provided get the computed value from there
+ if ( hooks && "get" in hooks ) {
+ val = hooks.get( elem, true, extra );
+ }
+
+ // Otherwise, if a way to get the computed value exists, use that
+ if ( val === undefined ) {
+ val = curCSS( elem, name, styles );
+ }
+
+ // Convert "normal" to computed value
+ if ( val === "normal" && name in cssNormalTransform ) {
+ val = cssNormalTransform[ name ];
+ }
+
+ // Make numeric if forced or a qualifier was provided and val looks numeric
+ if ( extra === "" || extra ) {
+ num = parseFloat( val );
+ return extra === true || isFinite( num ) ? num || 0 : val;
+ }
+ return val;
+ }
+} );
+
+jQuery.each( [ "height", "width" ], function( i, name ) {
+ jQuery.cssHooks[ name ] = {
+ get: function( elem, computed, extra ) {
+ if ( computed ) {
+
+ // Certain elements can have dimension info if we invisibly show them
+ // but it must have a current display style that would benefit
+ return rdisplayswap.test( jQuery.css( elem, "display" ) ) &&
+
+ // Support: Safari 8+
+ // Table columns in Safari have non-zero offsetWidth & zero
+ // getBoundingClientRect().width unless display is changed.
+ // Support: IE <=11 only
+ // Running getBoundingClientRect on a disconnected node
+ // in IE throws an error.
+ ( !elem.getClientRects().length || !elem.getBoundingClientRect().width ) ?
+ swap( elem, cssShow, function() {
+ return getWidthOrHeight( elem, name, extra );
+ } ) :
+ getWidthOrHeight( elem, name, extra );
+ }
+ },
+
+ set: function( elem, value, extra ) {
+ var matches,
+ styles = extra && getStyles( elem ),
+ subtract = extra && augmentWidthOrHeight(
+ elem,
+ name,
+ extra,
+ jQuery.css( elem, "boxSizing", false, styles ) === "border-box",
+ styles
+ );
+
+ // Convert to pixels if value adjustment is needed
+ if ( subtract && ( matches = rcssNum.exec( value ) ) &&
+ ( matches[ 3 ] || "px" ) !== "px" ) {
+
+ elem.style[ name ] = value;
+ value = jQuery.css( elem, name );
+ }
+
+ return setPositiveNumber( elem, value, subtract );
+ }
+ };
+} );
+
+jQuery.cssHooks.marginLeft = addGetHookIf( support.reliableMarginLeft,
+ function( elem, computed ) {
+ if ( computed ) {
+ return ( parseFloat( curCSS( elem, "marginLeft" ) ) ||
+ elem.getBoundingClientRect().left -
+ swap( elem, { marginLeft: 0 }, function() {
+ return elem.getBoundingClientRect().left;
+ } )
+ ) + "px";
+ }
+ }
+);
+
+// These hooks are used by animate to expand properties
+jQuery.each( {
+ margin: "",
+ padding: "",
+ border: "Width"
+}, function( prefix, suffix ) {
+ jQuery.cssHooks[ prefix + suffix ] = {
+ expand: function( value ) {
+ var i = 0,
+ expanded = {},
+
+ // Assumes a single number if not a string
+ parts = typeof value === "string" ? value.split( " " ) : [ value ];
+
+ for ( ; i < 4; i++ ) {
+ expanded[ prefix + cssExpand[ i ] + suffix ] =
+ parts[ i ] || parts[ i - 2 ] || parts[ 0 ];
+ }
+
+ return expanded;
+ }
+ };
+
+ if ( !rmargin.test( prefix ) ) {
+ jQuery.cssHooks[ prefix + suffix ].set = setPositiveNumber;
+ }
+} );
+
+jQuery.fn.extend( {
+ css: function( name, value ) {
+ return access( this, function( elem, name, value ) {
+ var styles, len,
+ map = {},
+ i = 0;
+
+ if ( jQuery.isArray( name ) ) {
+ styles = getStyles( elem );
+ len = name.length;
+
+ for ( ; i < len; i++ ) {
+ map[ name[ i ] ] = jQuery.css( elem, name[ i ], false, styles );
+ }
+
+ return map;
+ }
+
+ return value !== undefined ?
+ jQuery.style( elem, name, value ) :
+ jQuery.css( elem, name );
+ }, name, value, arguments.length > 1 );
+ }
+} );
+
+
+function Tween( elem, options, prop, end, easing ) {
+ return new Tween.prototype.init( elem, options, prop, end, easing );
+}
+jQuery.Tween = Tween;
+
+Tween.prototype = {
+ constructor: Tween,
+ init: function( elem, options, prop, end, easing, unit ) {
+ this.elem = elem;
+ this.prop = prop;
+ this.easing = easing || jQuery.easing._default;
+ this.options = options;
+ this.start = this.now = this.cur();
+ this.end = end;
+ this.unit = unit || ( jQuery.cssNumber[ prop ] ? "" : "px" );
+ },
+ cur: function() {
+ var hooks = Tween.propHooks[ this.prop ];
+
+ return hooks && hooks.get ?
+ hooks.get( this ) :
+ Tween.propHooks._default.get( this );
+ },
+ run: function( percent ) {
+ var eased,
+ hooks = Tween.propHooks[ this.prop ];
+
+ if ( this.options.duration ) {
+ this.pos = eased = jQuery.easing[ this.easing ](
+ percent, this.options.duration * percent, 0, 1, this.options.duration
+ );
+ } else {
+ this.pos = eased = percent;
+ }
+ this.now = ( this.end - this.start ) * eased + this.start;
+
+ if ( this.options.step ) {
+ this.options.step.call( this.elem, this.now, this );
+ }
+
+ if ( hooks && hooks.set ) {
+ hooks.set( this );
+ } else {
+ Tween.propHooks._default.set( this );
+ }
+ return this;
+ }
+};
+
+Tween.prototype.init.prototype = Tween.prototype;
+
+Tween.propHooks = {
+ _default: {
+ get: function( tween ) {
+ var result;
+
+ // Use a property on the element directly when it is not a DOM element,
+ // or when there is no matching style property that exists.
+ if ( tween.elem.nodeType !== 1 ||
+ tween.elem[ tween.prop ] != null && tween.elem.style[ tween.prop ] == null ) {
+ return tween.elem[ tween.prop ];
+ }
+
+ // Passing an empty string as a 3rd parameter to .css will automatically
+ // attempt a parseFloat and fallback to a string if the parse fails.
+ // Simple values such as "10px" are parsed to Float;
+ // complex values such as "rotate(1rad)" are returned as-is.
+ result = jQuery.css( tween.elem, tween.prop, "" );
+
+ // Empty strings, null, undefined and "auto" are converted to 0.
+ return !result || result === "auto" ? 0 : result;
+ },
+ set: function( tween ) {
+
+ // Use step hook for back compat.
+ // Use cssHook if its there.
+ // Use .style if available and use plain properties where available.
+ if ( jQuery.fx.step[ tween.prop ] ) {
+ jQuery.fx.step[ tween.prop ]( tween );
+ } else if ( tween.elem.nodeType === 1 &&
+ ( tween.elem.style[ jQuery.cssProps[ tween.prop ] ] != null ||
+ jQuery.cssHooks[ tween.prop ] ) ) {
+ jQuery.style( tween.elem, tween.prop, tween.now + tween.unit );
+ } else {
+ tween.elem[ tween.prop ] = tween.now;
+ }
+ }
+ }
+};
+
+// Support: IE <=9 only
+// Panic based approach to setting things on disconnected nodes
+Tween.propHooks.scrollTop = Tween.propHooks.scrollLeft = {
+ set: function( tween ) {
+ if ( tween.elem.nodeType && tween.elem.parentNode ) {
+ tween.elem[ tween.prop ] = tween.now;
+ }
+ }
+};
+
+jQuery.easing = {
+ linear: function( p ) {
+ return p;
+ },
+ swing: function( p ) {
+ return 0.5 - Math.cos( p * Math.PI ) / 2;
+ },
+ _default: "swing"
+};
+
+jQuery.fx = Tween.prototype.init;
+
+// Back compat <1.8 extension point
+jQuery.fx.step = {};
+
+
+
+
+var
+ fxNow, timerId,
+ rfxtypes = /^(?:toggle|show|hide)$/,
+ rrun = /queueHooks$/;
+
+function raf() {
+ if ( timerId ) {
+ window.requestAnimationFrame( raf );
+ jQuery.fx.tick();
+ }
+}
+
+// Animations created synchronously will run synchronously
+function createFxNow() {
+ window.setTimeout( function() {
+ fxNow = undefined;
+ } );
+ return ( fxNow = jQuery.now() );
+}
+
+// Generate parameters to create a standard animation
+function genFx( type, includeWidth ) {
+ var which,
+ i = 0,
+ attrs = { height: type };
+
+ // If we include width, step value is 1 to do all cssExpand values,
+ // otherwise step value is 2 to skip over Left and Right
+ includeWidth = includeWidth ? 1 : 0;
+ for ( ; i < 4; i += 2 - includeWidth ) {
+ which = cssExpand[ i ];
+ attrs[ "margin" + which ] = attrs[ "padding" + which ] = type;
+ }
+
+ if ( includeWidth ) {
+ attrs.opacity = attrs.width = type;
+ }
+
+ return attrs;
+}
+
+function createTween( value, prop, animation ) {
+ var tween,
+ collection = ( Animation.tweeners[ prop ] || [] ).concat( Animation.tweeners[ "*" ] ),
+ index = 0,
+ length = collection.length;
+ for ( ; index < length; index++ ) {
+ if ( ( tween = collection[ index ].call( animation, prop, value ) ) ) {
+
+ // We're done with this property
+ return tween;
+ }
+ }
+}
+
+function defaultPrefilter( elem, props, opts ) {
+ var prop, value, toggle, hooks, oldfire, propTween, restoreDisplay, display,
+ isBox = "width" in props || "height" in props,
+ anim = this,
+ orig = {},
+ style = elem.style,
+ hidden = elem.nodeType && isHiddenWithinTree( elem ),
+ dataShow = dataPriv.get( elem, "fxshow" );
+
+ // Queue-skipping animations hijack the fx hooks
+ if ( !opts.queue ) {
+ hooks = jQuery._queueHooks( elem, "fx" );
+ if ( hooks.unqueued == null ) {
+ hooks.unqueued = 0;
+ oldfire = hooks.empty.fire;
+ hooks.empty.fire = function() {
+ if ( !hooks.unqueued ) {
+ oldfire();
+ }
+ };
+ }
+ hooks.unqueued++;
+
+ anim.always( function() {
+
+ // Ensure the complete handler is called before this completes
+ anim.always( function() {
+ hooks.unqueued--;
+ if ( !jQuery.queue( elem, "fx" ).length ) {
+ hooks.empty.fire();
+ }
+ } );
+ } );
+ }
+
+ // Detect show/hide animations
+ for ( prop in props ) {
+ value = props[ prop ];
+ if ( rfxtypes.test( value ) ) {
+ delete props[ prop ];
+ toggle = toggle || value === "toggle";
+ if ( value === ( hidden ? "hide" : "show" ) ) {
+
+ // Pretend to be hidden if this is a "show" and
+ // there is still data from a stopped show/hide
+ if ( value === "show" && dataShow && dataShow[ prop ] !== undefined ) {
+ hidden = true;
+
+ // Ignore all other no-op show/hide data
+ } else {
+ continue;
+ }
+ }
+ orig[ prop ] = dataShow && dataShow[ prop ] || jQuery.style( elem, prop );
+ }
+ }
+
+ // Bail out if this is a no-op like .hide().hide()
+ propTween = !jQuery.isEmptyObject( props );
+ if ( !propTween && jQuery.isEmptyObject( orig ) ) {
+ return;
+ }
+
+ // Restrict "overflow" and "display" styles during box animations
+ if ( isBox && elem.nodeType === 1 ) {
+
+ // Support: IE <=9 - 11, Edge 12 - 13
+ // Record all 3 overflow attributes because IE does not infer the shorthand
+ // from identically-valued overflowX and overflowY
+ opts.overflow = [ style.overflow, style.overflowX, style.overflowY ];
+
+ // Identify a display type, preferring old show/hide data over the CSS cascade
+ restoreDisplay = dataShow && dataShow.display;
+ if ( restoreDisplay == null ) {
+ restoreDisplay = dataPriv.get( elem, "display" );
+ }
+ display = jQuery.css( elem, "display" );
+ if ( display === "none" ) {
+ if ( restoreDisplay ) {
+ display = restoreDisplay;
+ } else {
+
+ // Get nonempty value(s) by temporarily forcing visibility
+ showHide( [ elem ], true );
+ restoreDisplay = elem.style.display || restoreDisplay;
+ display = jQuery.css( elem, "display" );
+ showHide( [ elem ] );
+ }
+ }
+
+ // Animate inline elements as inline-block
+ if ( display === "inline" || display === "inline-block" && restoreDisplay != null ) {
+ if ( jQuery.css( elem, "float" ) === "none" ) {
+
+ // Restore the original display value at the end of pure show/hide animations
+ if ( !propTween ) {
+ anim.done( function() {
+ style.display = restoreDisplay;
+ } );
+ if ( restoreDisplay == null ) {
+ display = style.display;
+ restoreDisplay = display === "none" ? "" : display;
+ }
+ }
+ style.display = "inline-block";
+ }
+ }
+ }
+
+ if ( opts.overflow ) {
+ style.overflow = "hidden";
+ anim.always( function() {
+ style.overflow = opts.overflow[ 0 ];
+ style.overflowX = opts.overflow[ 1 ];
+ style.overflowY = opts.overflow[ 2 ];
+ } );
+ }
+
+ // Implement show/hide animations
+ propTween = false;
+ for ( prop in orig ) {
+
+ // General show/hide setup for this element animation
+ if ( !propTween ) {
+ if ( dataShow ) {
+ if ( "hidden" in dataShow ) {
+ hidden = dataShow.hidden;
+ }
+ } else {
+ dataShow = dataPriv.access( elem, "fxshow", { display: restoreDisplay } );
+ }
+
+ // Store hidden/visible for toggle so `.stop().toggle()` "reverses"
+ if ( toggle ) {
+ dataShow.hidden = !hidden;
+ }
+
+ // Show elements before animating them
+ if ( hidden ) {
+ showHide( [ elem ], true );
+ }
+
+ /* eslint-disable no-loop-func */
+
+ anim.done( function() {
+
+ /* eslint-enable no-loop-func */
+
+ // The final step of a "hide" animation is actually hiding the element
+ if ( !hidden ) {
+ showHide( [ elem ] );
+ }
+ dataPriv.remove( elem, "fxshow" );
+ for ( prop in orig ) {
+ jQuery.style( elem, prop, orig[ prop ] );
+ }
+ } );
+ }
+
+ // Per-property setup
+ propTween = createTween( hidden ? dataShow[ prop ] : 0, prop, anim );
+ if ( !( prop in dataShow ) ) {
+ dataShow[ prop ] = propTween.start;
+ if ( hidden ) {
+ propTween.end = propTween.start;
+ propTween.start = 0;
+ }
+ }
+ }
+}
+
+function propFilter( props, specialEasing ) {
+ var index, name, easing, value, hooks;
+
+ // camelCase, specialEasing and expand cssHook pass
+ for ( index in props ) {
+ name = jQuery.camelCase( index );
+ easing = specialEasing[ name ];
+ value = props[ index ];
+ if ( jQuery.isArray( value ) ) {
+ easing = value[ 1 ];
+ value = props[ index ] = value[ 0 ];
+ }
+
+ if ( index !== name ) {
+ props[ name ] = value;
+ delete props[ index ];
+ }
+
+ hooks = jQuery.cssHooks[ name ];
+ if ( hooks && "expand" in hooks ) {
+ value = hooks.expand( value );
+ delete props[ name ];
+
+ // Not quite $.extend, this won't overwrite existing keys.
+ // Reusing 'index' because we have the correct "name"
+ for ( index in value ) {
+ if ( !( index in props ) ) {
+ props[ index ] = value[ index ];
+ specialEasing[ index ] = easing;
+ }
+ }
+ } else {
+ specialEasing[ name ] = easing;
+ }
+ }
+}
+
+function Animation( elem, properties, options ) {
+ var result,
+ stopped,
+ index = 0,
+ length = Animation.prefilters.length,
+ deferred = jQuery.Deferred().always( function() {
+
+ // Don't match elem in the :animated selector
+ delete tick.elem;
+ } ),
+ tick = function() {
+ if ( stopped ) {
+ return false;
+ }
+ var currentTime = fxNow || createFxNow(),
+ remaining = Math.max( 0, animation.startTime + animation.duration - currentTime ),
+
+ // Support: Android 2.3 only
+ // Archaic crash bug won't allow us to use `1 - ( 0.5 || 0 )` (#12497)
+ temp = remaining / animation.duration || 0,
+ percent = 1 - temp,
+ index = 0,
+ length = animation.tweens.length;
+
+ for ( ; index < length; index++ ) {
+ animation.tweens[ index ].run( percent );
+ }
+
+ deferred.notifyWith( elem, [ animation, percent, remaining ] );
+
+ if ( percent < 1 && length ) {
+ return remaining;
+ } else {
+ deferred.resolveWith( elem, [ animation ] );
+ return false;
+ }
+ },
+ animation = deferred.promise( {
+ elem: elem,
+ props: jQuery.extend( {}, properties ),
+ opts: jQuery.extend( true, {
+ specialEasing: {},
+ easing: jQuery.easing._default
+ }, options ),
+ originalProperties: properties,
+ originalOptions: options,
+ startTime: fxNow || createFxNow(),
+ duration: options.duration,
+ tweens: [],
+ createTween: function( prop, end ) {
+ var tween = jQuery.Tween( elem, animation.opts, prop, end,
+ animation.opts.specialEasing[ prop ] || animation.opts.easing );
+ animation.tweens.push( tween );
+ return tween;
+ },
+ stop: function( gotoEnd ) {
+ var index = 0,
+
+ // If we are going to the end, we want to run all the tweens
+ // otherwise we skip this part
+ length = gotoEnd ? animation.tweens.length : 0;
+ if ( stopped ) {
+ return this;
+ }
+ stopped = true;
+ for ( ; index < length; index++ ) {
+ animation.tweens[ index ].run( 1 );
+ }
+
+ // Resolve when we played the last frame; otherwise, reject
+ if ( gotoEnd ) {
+ deferred.notifyWith( elem, [ animation, 1, 0 ] );
+ deferred.resolveWith( elem, [ animation, gotoEnd ] );
+ } else {
+ deferred.rejectWith( elem, [ animation, gotoEnd ] );
+ }
+ return this;
+ }
+ } ),
+ props = animation.props;
+
+ propFilter( props, animation.opts.specialEasing );
+
+ for ( ; index < length; index++ ) {
+ result = Animation.prefilters[ index ].call( animation, elem, props, animation.opts );
+ if ( result ) {
+ if ( jQuery.isFunction( result.stop ) ) {
+ jQuery._queueHooks( animation.elem, animation.opts.queue ).stop =
+ jQuery.proxy( result.stop, result );
+ }
+ return result;
+ }
+ }
+
+ jQuery.map( props, createTween, animation );
+
+ if ( jQuery.isFunction( animation.opts.start ) ) {
+ animation.opts.start.call( elem, animation );
+ }
+
+ jQuery.fx.timer(
+ jQuery.extend( tick, {
+ elem: elem,
+ anim: animation,
+ queue: animation.opts.queue
+ } )
+ );
+
+ // attach callbacks from options
+ return animation.progress( animation.opts.progress )
+ .done( animation.opts.done, animation.opts.complete )
+ .fail( animation.opts.fail )
+ .always( animation.opts.always );
+}
+
+jQuery.Animation = jQuery.extend( Animation, {
+
+ tweeners: {
+ "*": [ function( prop, value ) {
+ var tween = this.createTween( prop, value );
+ adjustCSS( tween.elem, prop, rcssNum.exec( value ), tween );
+ return tween;
+ } ]
+ },
+
+ tweener: function( props, callback ) {
+ if ( jQuery.isFunction( props ) ) {
+ callback = props;
+ props = [ "*" ];
+ } else {
+ props = props.match( rnothtmlwhite );
+ }
+
+ var prop,
+ index = 0,
+ length = props.length;
+
+ for ( ; index < length; index++ ) {
+ prop = props[ index ];
+ Animation.tweeners[ prop ] = Animation.tweeners[ prop ] || [];
+ Animation.tweeners[ prop ].unshift( callback );
+ }
+ },
+
+ prefilters: [ defaultPrefilter ],
+
+ prefilter: function( callback, prepend ) {
+ if ( prepend ) {
+ Animation.prefilters.unshift( callback );
+ } else {
+ Animation.prefilters.push( callback );
+ }
+ }
+} );
+
+jQuery.speed = function( speed, easing, fn ) {
+ var opt = speed && typeof speed === "object" ? jQuery.extend( {}, speed ) : {
+ complete: fn || !fn && easing ||
+ jQuery.isFunction( speed ) && speed,
+ duration: speed,
+ easing: fn && easing || easing && !jQuery.isFunction( easing ) && easing
+ };
+
+ // Go to the end state if fx are off or if document is hidden
+ if ( jQuery.fx.off || document.hidden ) {
+ opt.duration = 0;
+
+ } else {
+ if ( typeof opt.duration !== "number" ) {
+ if ( opt.duration in jQuery.fx.speeds ) {
+ opt.duration = jQuery.fx.speeds[ opt.duration ];
+
+ } else {
+ opt.duration = jQuery.fx.speeds._default;
+ }
+ }
+ }
+
+ // Normalize opt.queue - true/undefined/null -> "fx"
+ if ( opt.queue == null || opt.queue === true ) {
+ opt.queue = "fx";
+ }
+
+ // Queueing
+ opt.old = opt.complete;
+
+ opt.complete = function() {
+ if ( jQuery.isFunction( opt.old ) ) {
+ opt.old.call( this );
+ }
+
+ if ( opt.queue ) {
+ jQuery.dequeue( this, opt.queue );
+ }
+ };
+
+ return opt;
+};
+
+jQuery.fn.extend( {
+ fadeTo: function( speed, to, easing, callback ) {
+
+ // Show any hidden elements after setting opacity to 0
+ return this.filter( isHiddenWithinTree ).css( "opacity", 0 ).show()
+
+ // Animate to the value specified
+ .end().animate( { opacity: to }, speed, easing, callback );
+ },
+ animate: function( prop, speed, easing, callback ) {
+ var empty = jQuery.isEmptyObject( prop ),
+ optall = jQuery.speed( speed, easing, callback ),
+ doAnimation = function() {
+
+ // Operate on a copy of prop so per-property easing won't be lost
+ var anim = Animation( this, jQuery.extend( {}, prop ), optall );
+
+ // Empty animations, or finishing resolves immediately
+ if ( empty || dataPriv.get( this, "finish" ) ) {
+ anim.stop( true );
+ }
+ };
+ doAnimation.finish = doAnimation;
+
+ return empty || optall.queue === false ?
+ this.each( doAnimation ) :
+ this.queue( optall.queue, doAnimation );
+ },
+ stop: function( type, clearQueue, gotoEnd ) {
+ var stopQueue = function( hooks ) {
+ var stop = hooks.stop;
+ delete hooks.stop;
+ stop( gotoEnd );
+ };
+
+ if ( typeof type !== "string" ) {
+ gotoEnd = clearQueue;
+ clearQueue = type;
+ type = undefined;
+ }
+ if ( clearQueue && type !== false ) {
+ this.queue( type || "fx", [] );
+ }
+
+ return this.each( function() {
+ var dequeue = true,
+ index = type != null && type + "queueHooks",
+ timers = jQuery.timers,
+ data = dataPriv.get( this );
+
+ if ( index ) {
+ if ( data[ index ] && data[ index ].stop ) {
+ stopQueue( data[ index ] );
+ }
+ } else {
+ for ( index in data ) {
+ if ( data[ index ] && data[ index ].stop && rrun.test( index ) ) {
+ stopQueue( data[ index ] );
+ }
+ }
+ }
+
+ for ( index = timers.length; index--; ) {
+ if ( timers[ index ].elem === this &&
+ ( type == null || timers[ index ].queue === type ) ) {
+
+ timers[ index ].anim.stop( gotoEnd );
+ dequeue = false;
+ timers.splice( index, 1 );
+ }
+ }
+
+ // Start the next in the queue if the last step wasn't forced.
+ // Timers currently will call their complete callbacks, which
+ // will dequeue but only if they were gotoEnd.
+ if ( dequeue || !gotoEnd ) {
+ jQuery.dequeue( this, type );
+ }
+ } );
+ },
+ finish: function( type ) {
+ if ( type !== false ) {
+ type = type || "fx";
+ }
+ return this.each( function() {
+ var index,
+ data = dataPriv.get( this ),
+ queue = data[ type + "queue" ],
+ hooks = data[ type + "queueHooks" ],
+ timers = jQuery.timers,
+ length = queue ? queue.length : 0;
+
+ // Enable finishing flag on private data
+ data.finish = true;
+
+ // Empty the queue first
+ jQuery.queue( this, type, [] );
+
+ if ( hooks && hooks.stop ) {
+ hooks.stop.call( this, true );
+ }
+
+ // Look for any active animations, and finish them
+ for ( index = timers.length; index--; ) {
+ if ( timers[ index ].elem === this && timers[ index ].queue === type ) {
+ timers[ index ].anim.stop( true );
+ timers.splice( index, 1 );
+ }
+ }
+
+ // Look for any animations in the old queue and finish them
+ for ( index = 0; index < length; index++ ) {
+ if ( queue[ index ] && queue[ index ].finish ) {
+ queue[ index ].finish.call( this );
+ }
+ }
+
+ // Turn off finishing flag
+ delete data.finish;
+ } );
+ }
+} );
+
+jQuery.each( [ "toggle", "show", "hide" ], function( i, name ) {
+ var cssFn = jQuery.fn[ name ];
+ jQuery.fn[ name ] = function( speed, easing, callback ) {
+ return speed == null || typeof speed === "boolean" ?
+ cssFn.apply( this, arguments ) :
+ this.animate( genFx( name, true ), speed, easing, callback );
+ };
+} );
+
+// Generate shortcuts for custom animations
+jQuery.each( {
+ slideDown: genFx( "show" ),
+ slideUp: genFx( "hide" ),
+ slideToggle: genFx( "toggle" ),
+ fadeIn: { opacity: "show" },
+ fadeOut: { opacity: "hide" },
+ fadeToggle: { opacity: "toggle" }
+}, function( name, props ) {
+ jQuery.fn[ name ] = function( speed, easing, callback ) {
+ return this.animate( props, speed, easing, callback );
+ };
+} );
+
+jQuery.timers = [];
+jQuery.fx.tick = function() {
+ var timer,
+ i = 0,
+ timers = jQuery.timers;
+
+ fxNow = jQuery.now();
+
+ for ( ; i < timers.length; i++ ) {
+ timer = timers[ i ];
+
+ // Checks the timer has not already been removed
+ if ( !timer() && timers[ i ] === timer ) {
+ timers.splice( i--, 1 );
+ }
+ }
+
+ if ( !timers.length ) {
+ jQuery.fx.stop();
+ }
+ fxNow = undefined;
+};
+
+jQuery.fx.timer = function( timer ) {
+ jQuery.timers.push( timer );
+ if ( timer() ) {
+ jQuery.fx.start();
+ } else {
+ jQuery.timers.pop();
+ }
+};
+
+jQuery.fx.interval = 13;
+jQuery.fx.start = function() {
+ if ( !timerId ) {
+ timerId = window.requestAnimationFrame ?
+ window.requestAnimationFrame( raf ) :
+ window.setInterval( jQuery.fx.tick, jQuery.fx.interval );
+ }
+};
+
+jQuery.fx.stop = function() {
+ if ( window.cancelAnimationFrame ) {
+ window.cancelAnimationFrame( timerId );
+ } else {
+ window.clearInterval( timerId );
+ }
+
+ timerId = null;
+};
+
+jQuery.fx.speeds = {
+ slow: 600,
+ fast: 200,
+
+ // Default speed
+ _default: 400
+};
+
+
+// Based off of the plugin by Clint Helfers, with permission.
+// https://web.archive.org/web/20100324014747/http://blindsignals.com/index.php/2009/07/jquery-delay/
+jQuery.fn.delay = function( time, type ) {
+ time = jQuery.fx ? jQuery.fx.speeds[ time ] || time : time;
+ type = type || "fx";
+
+ return this.queue( type, function( next, hooks ) {
+ var timeout = window.setTimeout( next, time );
+ hooks.stop = function() {
+ window.clearTimeout( timeout );
+ };
+ } );
+};
+
+
+( function() {
+ var input = document.createElement( "input" ),
+ select = document.createElement( "select" ),
+ opt = select.appendChild( document.createElement( "option" ) );
+
+ input.type = "checkbox";
+
+ // Support: Android <=4.3 only
+ // Default value for a checkbox should be "on"
+ support.checkOn = input.value !== "";
+
+ // Support: IE <=11 only
+ // Must access selectedIndex to make default options select
+ support.optSelected = opt.selected;
+
+ // Support: IE <=11 only
+ // An input loses its value after becoming a radio
+ input = document.createElement( "input" );
+ input.value = "t";
+ input.type = "radio";
+ support.radioValue = input.value === "t";
+} )();
+
+
+var boolHook,
+ attrHandle = jQuery.expr.attrHandle;
+
+jQuery.fn.extend( {
+ attr: function( name, value ) {
+ return access( this, jQuery.attr, name, value, arguments.length > 1 );
+ },
+
+ removeAttr: function( name ) {
+ return this.each( function() {
+ jQuery.removeAttr( this, name );
+ } );
+ }
+} );
+
+jQuery.extend( {
+ attr: function( elem, name, value ) {
+ var ret, hooks,
+ nType = elem.nodeType;
+
+ // Don't get/set attributes on text, comment and attribute nodes
+ if ( nType === 3 || nType === 8 || nType === 2 ) {
+ return;
+ }
+
+ // Fallback to prop when attributes are not supported
+ if ( typeof elem.getAttribute === "undefined" ) {
+ return jQuery.prop( elem, name, value );
+ }
+
+ // Attribute hooks are determined by the lowercase version
+ // Grab necessary hook if one is defined
+ if ( nType !== 1 || !jQuery.isXMLDoc( elem ) ) {
+ hooks = jQuery.attrHooks[ name.toLowerCase() ] ||
+ ( jQuery.expr.match.bool.test( name ) ? boolHook : undefined );
+ }
+
+ if ( value !== undefined ) {
+ if ( value === null ) {
+ jQuery.removeAttr( elem, name );
+ return;
+ }
+
+ if ( hooks && "set" in hooks &&
+ ( ret = hooks.set( elem, value, name ) ) !== undefined ) {
+ return ret;
+ }
+
+ elem.setAttribute( name, value + "" );
+ return value;
+ }
+
+ if ( hooks && "get" in hooks && ( ret = hooks.get( elem, name ) ) !== null ) {
+ return ret;
+ }
+
+ ret = jQuery.find.attr( elem, name );
+
+ // Non-existent attributes return null, we normalize to undefined
+ return ret == null ? undefined : ret;
+ },
+
+ attrHooks: {
+ type: {
+ set: function( elem, value ) {
+ if ( !support.radioValue && value === "radio" &&
+ jQuery.nodeName( elem, "input" ) ) {
+ var val = elem.value;
+ elem.setAttribute( "type", value );
+ if ( val ) {
+ elem.value = val;
+ }
+ return value;
+ }
+ }
+ }
+ },
+
+ removeAttr: function( elem, value ) {
+ var name,
+ i = 0,
+
+ // Attribute names can contain non-HTML whitespace characters
+ // https://html.spec.whatwg.org/multipage/syntax.html#attributes-2
+ attrNames = value && value.match( rnothtmlwhite );
+
+ if ( attrNames && elem.nodeType === 1 ) {
+ while ( ( name = attrNames[ i++ ] ) ) {
+ elem.removeAttribute( name );
+ }
+ }
+ }
+} );
+
+// Hooks for boolean attributes
+boolHook = {
+ set: function( elem, value, name ) {
+ if ( value === false ) {
+
+ // Remove boolean attributes when set to false
+ jQuery.removeAttr( elem, name );
+ } else {
+ elem.setAttribute( name, name );
+ }
+ return name;
+ }
+};
+
+jQuery.each( jQuery.expr.match.bool.source.match( /\w+/g ), function( i, name ) {
+ var getter = attrHandle[ name ] || jQuery.find.attr;
+
+ attrHandle[ name ] = function( elem, name, isXML ) {
+ var ret, handle,
+ lowercaseName = name.toLowerCase();
+
+ if ( !isXML ) {
+
+ // Avoid an infinite loop by temporarily removing this function from the getter
+ handle = attrHandle[ lowercaseName ];
+ attrHandle[ lowercaseName ] = ret;
+ ret = getter( elem, name, isXML ) != null ?
+ lowercaseName :
+ null;
+ attrHandle[ lowercaseName ] = handle;
+ }
+ return ret;
+ };
+} );
+
+
+
+
+var rfocusable = /^(?:input|select|textarea|button)$/i,
+ rclickable = /^(?:a|area)$/i;
+
+jQuery.fn.extend( {
+ prop: function( name, value ) {
+ return access( this, jQuery.prop, name, value, arguments.length > 1 );
+ },
+
+ removeProp: function( name ) {
+ return this.each( function() {
+ delete this[ jQuery.propFix[ name ] || name ];
+ } );
+ }
+} );
+
+jQuery.extend( {
+ prop: function( elem, name, value ) {
+ var ret, hooks,
+ nType = elem.nodeType;
+
+ // Don't get/set properties on text, comment and attribute nodes
+ if ( nType === 3 || nType === 8 || nType === 2 ) {
+ return;
+ }
+
+ if ( nType !== 1 || !jQuery.isXMLDoc( elem ) ) {
+
+ // Fix name and attach hooks
+ name = jQuery.propFix[ name ] || name;
+ hooks = jQuery.propHooks[ name ];
+ }
+
+ if ( value !== undefined ) {
+ if ( hooks && "set" in hooks &&
+ ( ret = hooks.set( elem, value, name ) ) !== undefined ) {
+ return ret;
+ }
+
+ return ( elem[ name ] = value );
+ }
+
+ if ( hooks && "get" in hooks && ( ret = hooks.get( elem, name ) ) !== null ) {
+ return ret;
+ }
+
+ return elem[ name ];
+ },
+
+ propHooks: {
+ tabIndex: {
+ get: function( elem ) {
+
+ // Support: IE <=9 - 11 only
+ // elem.tabIndex doesn't always return the
+ // correct value when it hasn't been explicitly set
+ // https://web.archive.org/web/20141116233347/http://fluidproject.org/blog/2008/01/09/getting-setting-and-removing-tabindex-values-with-javascript/
+ // Use proper attribute retrieval(#12072)
+ var tabindex = jQuery.find.attr( elem, "tabindex" );
+
+ if ( tabindex ) {
+ return parseInt( tabindex, 10 );
+ }
+
+ if (
+ rfocusable.test( elem.nodeName ) ||
+ rclickable.test( elem.nodeName ) &&
+ elem.href
+ ) {
+ return 0;
+ }
+
+ return -1;
+ }
+ }
+ },
+
+ propFix: {
+ "for": "htmlFor",
+ "class": "className"
+ }
+} );
+
+// Support: IE <=11 only
+// Accessing the selectedIndex property
+// forces the browser to respect setting selected
+// on the option
+// The getter ensures a default option is selected
+// when in an optgroup
+// eslint rule "no-unused-expressions" is disabled for this code
+// since it considers such accessions noop
+if ( !support.optSelected ) {
+ jQuery.propHooks.selected = {
+ get: function( elem ) {
+
+ /* eslint no-unused-expressions: "off" */
+
+ var parent = elem.parentNode;
+ if ( parent && parent.parentNode ) {
+ parent.parentNode.selectedIndex;
+ }
+ return null;
+ },
+ set: function( elem ) {
+
+ /* eslint no-unused-expressions: "off" */
+
+ var parent = elem.parentNode;
+ if ( parent ) {
+ parent.selectedIndex;
+
+ if ( parent.parentNode ) {
+ parent.parentNode.selectedIndex;
+ }
+ }
+ }
+ };
+}
+
+jQuery.each( [
+ "tabIndex",
+ "readOnly",
+ "maxLength",
+ "cellSpacing",
+ "cellPadding",
+ "rowSpan",
+ "colSpan",
+ "useMap",
+ "frameBorder",
+ "contentEditable"
+], function() {
+ jQuery.propFix[ this.toLowerCase() ] = this;
+} );
+
+
+
+
+ // Strip and collapse whitespace according to HTML spec
+ // https://html.spec.whatwg.org/multipage/infrastructure.html#strip-and-collapse-whitespace
+ function stripAndCollapse( value ) {
+ var tokens = value.match( rnothtmlwhite ) || [];
+ return tokens.join( " " );
+ }
+
+
+function getClass( elem ) {
+ return elem.getAttribute && elem.getAttribute( "class" ) || "";
+}
+
+jQuery.fn.extend( {
+ addClass: function( value ) {
+ var classes, elem, cur, curValue, clazz, j, finalValue,
+ i = 0;
+
+ if ( jQuery.isFunction( value ) ) {
+ return this.each( function( j ) {
+ jQuery( this ).addClass( value.call( this, j, getClass( this ) ) );
+ } );
+ }
+
+ if ( typeof value === "string" && value ) {
+ classes = value.match( rnothtmlwhite ) || [];
+
+ while ( ( elem = this[ i++ ] ) ) {
+ curValue = getClass( elem );
+ cur = elem.nodeType === 1 && ( " " + stripAndCollapse( curValue ) + " " );
+
+ if ( cur ) {
+ j = 0;
+ while ( ( clazz = classes[ j++ ] ) ) {
+ if ( cur.indexOf( " " + clazz + " " ) < 0 ) {
+ cur += clazz + " ";
+ }
+ }
+
+ // Only assign if different to avoid unneeded rendering.
+ finalValue = stripAndCollapse( cur );
+ if ( curValue !== finalValue ) {
+ elem.setAttribute( "class", finalValue );
+ }
+ }
+ }
+ }
+
+ return this;
+ },
+
+ removeClass: function( value ) {
+ var classes, elem, cur, curValue, clazz, j, finalValue,
+ i = 0;
+
+ if ( jQuery.isFunction( value ) ) {
+ return this.each( function( j ) {
+ jQuery( this ).removeClass( value.call( this, j, getClass( this ) ) );
+ } );
+ }
+
+ if ( !arguments.length ) {
+ return this.attr( "class", "" );
+ }
+
+ if ( typeof value === "string" && value ) {
+ classes = value.match( rnothtmlwhite ) || [];
+
+ while ( ( elem = this[ i++ ] ) ) {
+ curValue = getClass( elem );
+
+ // This expression is here for better compressibility (see addClass)
+ cur = elem.nodeType === 1 && ( " " + stripAndCollapse( curValue ) + " " );
+
+ if ( cur ) {
+ j = 0;
+ while ( ( clazz = classes[ j++ ] ) ) {
+
+ // Remove *all* instances
+ while ( cur.indexOf( " " + clazz + " " ) > -1 ) {
+ cur = cur.replace( " " + clazz + " ", " " );
+ }
+ }
+
+ // Only assign if different to avoid unneeded rendering.
+ finalValue = stripAndCollapse( cur );
+ if ( curValue !== finalValue ) {
+ elem.setAttribute( "class", finalValue );
+ }
+ }
+ }
+ }
+
+ return this;
+ },
+
+ toggleClass: function( value, stateVal ) {
+ var type = typeof value;
+
+ if ( typeof stateVal === "boolean" && type === "string" ) {
+ return stateVal ? this.addClass( value ) : this.removeClass( value );
+ }
+
+ if ( jQuery.isFunction( value ) ) {
+ return this.each( function( i ) {
+ jQuery( this ).toggleClass(
+ value.call( this, i, getClass( this ), stateVal ),
+ stateVal
+ );
+ } );
+ }
+
+ return this.each( function() {
+ var className, i, self, classNames;
+
+ if ( type === "string" ) {
+
+ // Toggle individual class names
+ i = 0;
+ self = jQuery( this );
+ classNames = value.match( rnothtmlwhite ) || [];
+
+ while ( ( className = classNames[ i++ ] ) ) {
+
+ // Check each className given, space separated list
+ if ( self.hasClass( className ) ) {
+ self.removeClass( className );
+ } else {
+ self.addClass( className );
+ }
+ }
+
+ // Toggle whole class name
+ } else if ( value === undefined || type === "boolean" ) {
+ className = getClass( this );
+ if ( className ) {
+
+ // Store className if set
+ dataPriv.set( this, "__className__", className );
+ }
+
+ // If the element has a class name or if we're passed `false`,
+ // then remove the whole classname (if there was one, the above saved it).
+ // Otherwise bring back whatever was previously saved (if anything),
+ // falling back to the empty string if nothing was stored.
+ if ( this.setAttribute ) {
+ this.setAttribute( "class",
+ className || value === false ?
+ "" :
+ dataPriv.get( this, "__className__" ) || ""
+ );
+ }
+ }
+ } );
+ },
+
+ hasClass: function( selector ) {
+ var className, elem,
+ i = 0;
+
+ className = " " + selector + " ";
+ while ( ( elem = this[ i++ ] ) ) {
+ if ( elem.nodeType === 1 &&
+ ( " " + stripAndCollapse( getClass( elem ) ) + " " ).indexOf( className ) > -1 ) {
+ return true;
+ }
+ }
+
+ return false;
+ }
+} );
+
+
+
+
+var rreturn = /\r/g;
+
+jQuery.fn.extend( {
+ val: function( value ) {
+ var hooks, ret, isFunction,
+ elem = this[ 0 ];
+
+ if ( !arguments.length ) {
+ if ( elem ) {
+ hooks = jQuery.valHooks[ elem.type ] ||
+ jQuery.valHooks[ elem.nodeName.toLowerCase() ];
+
+ if ( hooks &&
+ "get" in hooks &&
+ ( ret = hooks.get( elem, "value" ) ) !== undefined
+ ) {
+ return ret;
+ }
+
+ ret = elem.value;
+
+ // Handle most common string cases
+ if ( typeof ret === "string" ) {
+ return ret.replace( rreturn, "" );
+ }
+
+ // Handle cases where value is null/undef or number
+ return ret == null ? "" : ret;
+ }
+
+ return;
+ }
+
+ isFunction = jQuery.isFunction( value );
+
+ return this.each( function( i ) {
+ var val;
+
+ if ( this.nodeType !== 1 ) {
+ return;
+ }
+
+ if ( isFunction ) {
+ val = value.call( this, i, jQuery( this ).val() );
+ } else {
+ val = value;
+ }
+
+ // Treat null/undefined as ""; convert numbers to string
+ if ( val == null ) {
+ val = "";
+
+ } else if ( typeof val === "number" ) {
+ val += "";
+
+ } else if ( jQuery.isArray( val ) ) {
+ val = jQuery.map( val, function( value ) {
+ return value == null ? "" : value + "";
+ } );
+ }
+
+ hooks = jQuery.valHooks[ this.type ] || jQuery.valHooks[ this.nodeName.toLowerCase() ];
+
+ // If set returns undefined, fall back to normal setting
+ if ( !hooks || !( "set" in hooks ) || hooks.set( this, val, "value" ) === undefined ) {
+ this.value = val;
+ }
+ } );
+ }
+} );
+
+jQuery.extend( {
+ valHooks: {
+ option: {
+ get: function( elem ) {
+
+ var val = jQuery.find.attr( elem, "value" );
+ return val != null ?
+ val :
+
+ // Support: IE <=10 - 11 only
+ // option.text throws exceptions (#14686, #14858)
+ // Strip and collapse whitespace
+ // https://html.spec.whatwg.org/#strip-and-collapse-whitespace
+ stripAndCollapse( jQuery.text( elem ) );
+ }
+ },
+ select: {
+ get: function( elem ) {
+ var value, option, i,
+ options = elem.options,
+ index = elem.selectedIndex,
+ one = elem.type === "select-one",
+ values = one ? null : [],
+ max = one ? index + 1 : options.length;
+
+ if ( index < 0 ) {
+ i = max;
+
+ } else {
+ i = one ? index : 0;
+ }
+
+ // Loop through all the selected options
+ for ( ; i < max; i++ ) {
+ option = options[ i ];
+
+ // Support: IE <=9 only
+ // IE8-9 doesn't update selected after form reset (#2551)
+ if ( ( option.selected || i === index ) &&
+
+ // Don't return options that are disabled or in a disabled optgroup
+ !option.disabled &&
+ ( !option.parentNode.disabled ||
+ !jQuery.nodeName( option.parentNode, "optgroup" ) ) ) {
+
+ // Get the specific value for the option
+ value = jQuery( option ).val();
+
+ // We don't need an array for one selects
+ if ( one ) {
+ return value;
+ }
+
+ // Multi-Selects return an array
+ values.push( value );
+ }
+ }
+
+ return values;
+ },
+
+ set: function( elem, value ) {
+ var optionSet, option,
+ options = elem.options,
+ values = jQuery.makeArray( value ),
+ i = options.length;
+
+ while ( i-- ) {
+ option = options[ i ];
+
+ /* eslint-disable no-cond-assign */
+
+ if ( option.selected =
+ jQuery.inArray( jQuery.valHooks.option.get( option ), values ) > -1
+ ) {
+ optionSet = true;
+ }
+
+ /* eslint-enable no-cond-assign */
+ }
+
+ // Force browsers to behave consistently when non-matching value is set
+ if ( !optionSet ) {
+ elem.selectedIndex = -1;
+ }
+ return values;
+ }
+ }
+ }
+} );
+
+// Radios and checkboxes getter/setter
+jQuery.each( [ "radio", "checkbox" ], function() {
+ jQuery.valHooks[ this ] = {
+ set: function( elem, value ) {
+ if ( jQuery.isArray( value ) ) {
+ return ( elem.checked = jQuery.inArray( jQuery( elem ).val(), value ) > -1 );
+ }
+ }
+ };
+ if ( !support.checkOn ) {
+ jQuery.valHooks[ this ].get = function( elem ) {
+ return elem.getAttribute( "value" ) === null ? "on" : elem.value;
+ };
+ }
+} );
+
+
+
+
+// Return jQuery for attributes-only inclusion
+
+
+var rfocusMorph = /^(?:focusinfocus|focusoutblur)$/;
+
+jQuery.extend( jQuery.event, {
+
+ trigger: function( event, data, elem, onlyHandlers ) {
+
+ var i, cur, tmp, bubbleType, ontype, handle, special,
+ eventPath = [ elem || document ],
+ type = hasOwn.call( event, "type" ) ? event.type : event,
+ namespaces = hasOwn.call( event, "namespace" ) ? event.namespace.split( "." ) : [];
+
+ cur = tmp = elem = elem || document;
+
+ // Don't do events on text and comment nodes
+ if ( elem.nodeType === 3 || elem.nodeType === 8 ) {
+ return;
+ }
+
+ // focus/blur morphs to focusin/out; ensure we're not firing them right now
+ if ( rfocusMorph.test( type + jQuery.event.triggered ) ) {
+ return;
+ }
+
+ if ( type.indexOf( "." ) > -1 ) {
+
+ // Namespaced trigger; create a regexp to match event type in handle()
+ namespaces = type.split( "." );
+ type = namespaces.shift();
+ namespaces.sort();
+ }
+ ontype = type.indexOf( ":" ) < 0 && "on" + type;
+
+ // Caller can pass in a jQuery.Event object, Object, or just an event type string
+ event = event[ jQuery.expando ] ?
+ event :
+ new jQuery.Event( type, typeof event === "object" && event );
+
+ // Trigger bitmask: & 1 for native handlers; & 2 for jQuery (always true)
+ event.isTrigger = onlyHandlers ? 2 : 3;
+ event.namespace = namespaces.join( "." );
+ event.rnamespace = event.namespace ?
+ new RegExp( "(^|\\.)" + namespaces.join( "\\.(?:.*\\.|)" ) + "(\\.|$)" ) :
+ null;
+
+ // Clean up the event in case it is being reused
+ event.result = undefined;
+ if ( !event.target ) {
+ event.target = elem;
+ }
+
+ // Clone any incoming data and prepend the event, creating the handler arg list
+ data = data == null ?
+ [ event ] :
+ jQuery.makeArray( data, [ event ] );
+
+ // Allow special events to draw outside the lines
+ special = jQuery.event.special[ type ] || {};
+ if ( !onlyHandlers && special.trigger && special.trigger.apply( elem, data ) === false ) {
+ return;
+ }
+
+ // Determine event propagation path in advance, per W3C events spec (#9951)
+ // Bubble up to document, then to window; watch for a global ownerDocument var (#9724)
+ if ( !onlyHandlers && !special.noBubble && !jQuery.isWindow( elem ) ) {
+
+ bubbleType = special.delegateType || type;
+ if ( !rfocusMorph.test( bubbleType + type ) ) {
+ cur = cur.parentNode;
+ }
+ for ( ; cur; cur = cur.parentNode ) {
+ eventPath.push( cur );
+ tmp = cur;
+ }
+
+ // Only add window if we got to document (e.g., not plain obj or detached DOM)
+ if ( tmp === ( elem.ownerDocument || document ) ) {
+ eventPath.push( tmp.defaultView || tmp.parentWindow || window );
+ }
+ }
+
+ // Fire handlers on the event path
+ i = 0;
+ while ( ( cur = eventPath[ i++ ] ) && !event.isPropagationStopped() ) {
+
+ event.type = i > 1 ?
+ bubbleType :
+ special.bindType || type;
+
+ // jQuery handler
+ handle = ( dataPriv.get( cur, "events" ) || {} )[ event.type ] &&
+ dataPriv.get( cur, "handle" );
+ if ( handle ) {
+ handle.apply( cur, data );
+ }
+
+ // Native handler
+ handle = ontype && cur[ ontype ];
+ if ( handle && handle.apply && acceptData( cur ) ) {
+ event.result = handle.apply( cur, data );
+ if ( event.result === false ) {
+ event.preventDefault();
+ }
+ }
+ }
+ event.type = type;
+
+ // If nobody prevented the default action, do it now
+ if ( !onlyHandlers && !event.isDefaultPrevented() ) {
+
+ if ( ( !special._default ||
+ special._default.apply( eventPath.pop(), data ) === false ) &&
+ acceptData( elem ) ) {
+
+ // Call a native DOM method on the target with the same name as the event.
+ // Don't do default actions on window, that's where global variables be (#6170)
+ if ( ontype && jQuery.isFunction( elem[ type ] ) && !jQuery.isWindow( elem ) ) {
+
+ // Don't re-trigger an onFOO event when we call its FOO() method
+ tmp = elem[ ontype ];
+
+ if ( tmp ) {
+ elem[ ontype ] = null;
+ }
+
+ // Prevent re-triggering of the same event, since we already bubbled it above
+ jQuery.event.triggered = type;
+ elem[ type ]();
+ jQuery.event.triggered = undefined;
+
+ if ( tmp ) {
+ elem[ ontype ] = tmp;
+ }
+ }
+ }
+ }
+
+ return event.result;
+ },
+
+ // Piggyback on a donor event to simulate a different one
+ // Used only for `focus(in | out)` events
+ simulate: function( type, elem, event ) {
+ var e = jQuery.extend(
+ new jQuery.Event(),
+ event,
+ {
+ type: type,
+ isSimulated: true
+ }
+ );
+
+ jQuery.event.trigger( e, null, elem );
+ }
+
+} );
+
+jQuery.fn.extend( {
+
+ trigger: function( type, data ) {
+ return this.each( function() {
+ jQuery.event.trigger( type, data, this );
+ } );
+ },
+ triggerHandler: function( type, data ) {
+ var elem = this[ 0 ];
+ if ( elem ) {
+ return jQuery.event.trigger( type, data, elem, true );
+ }
+ }
+} );
+
+
+jQuery.each( ( "blur focus focusin focusout resize scroll click dblclick " +
+ "mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave " +
+ "change select submit keydown keypress keyup contextmenu" ).split( " " ),
+ function( i, name ) {
+
+ // Handle event binding
+ jQuery.fn[ name ] = function( data, fn ) {
+ return arguments.length > 0 ?
+ this.on( name, null, data, fn ) :
+ this.trigger( name );
+ };
+} );
+
+jQuery.fn.extend( {
+ hover: function( fnOver, fnOut ) {
+ return this.mouseenter( fnOver ).mouseleave( fnOut || fnOver );
+ }
+} );
+
+
+
+
+support.focusin = "onfocusin" in window;
+
+
+// Support: Firefox <=44
+// Firefox doesn't have focus(in | out) events
+// Related ticket - https://bugzilla.mozilla.org/show_bug.cgi?id=687787
+//
+// Support: Chrome <=48 - 49, Safari <=9.0 - 9.1
+// focus(in | out) events fire after focus & blur events,
+// which is spec violation - http://www.w3.org/TR/DOM-Level-3-Events/#events-focusevent-event-order
+// Related ticket - https://bugs.chromium.org/p/chromium/issues/detail?id=449857
+if ( !support.focusin ) {
+ jQuery.each( { focus: "focusin", blur: "focusout" }, function( orig, fix ) {
+
+ // Attach a single capturing handler on the document while someone wants focusin/focusout
+ var handler = function( event ) {
+ jQuery.event.simulate( fix, event.target, jQuery.event.fix( event ) );
+ };
+
+ jQuery.event.special[ fix ] = {
+ setup: function() {
+ var doc = this.ownerDocument || this,
+ attaches = dataPriv.access( doc, fix );
+
+ if ( !attaches ) {
+ doc.addEventListener( orig, handler, true );
+ }
+ dataPriv.access( doc, fix, ( attaches || 0 ) + 1 );
+ },
+ teardown: function() {
+ var doc = this.ownerDocument || this,
+ attaches = dataPriv.access( doc, fix ) - 1;
+
+ if ( !attaches ) {
+ doc.removeEventListener( orig, handler, true );
+ dataPriv.remove( doc, fix );
+
+ } else {
+ dataPriv.access( doc, fix, attaches );
+ }
+ }
+ };
+ } );
+}
+var location = window.location;
+
+var nonce = jQuery.now();
+
+var rquery = ( /\?/ );
+
+
+
+// Cross-browser xml parsing
+jQuery.parseXML = function( data ) {
+ var xml;
+ if ( !data || typeof data !== "string" ) {
+ return null;
+ }
+
+ // Support: IE 9 - 11 only
+ // IE throws on parseFromString with invalid input.
+ try {
+ xml = ( new window.DOMParser() ).parseFromString( data, "text/xml" );
+ } catch ( e ) {
+ xml = undefined;
+ }
+
+ if ( !xml || xml.getElementsByTagName( "parsererror" ).length ) {
+ jQuery.error( "Invalid XML: " + data );
+ }
+ return xml;
+};
+
+
+var
+ rbracket = /\[\]$/,
+ rCRLF = /\r?\n/g,
+ rsubmitterTypes = /^(?:submit|button|image|reset|file)$/i,
+ rsubmittable = /^(?:input|select|textarea|keygen)/i;
+
+function buildParams( prefix, obj, traditional, add ) {
+ var name;
+
+ if ( jQuery.isArray( obj ) ) {
+
+ // Serialize array item.
+ jQuery.each( obj, function( i, v ) {
+ if ( traditional || rbracket.test( prefix ) ) {
+
+ // Treat each array item as a scalar.
+ add( prefix, v );
+
+ } else {
+
+ // Item is non-scalar (array or object), encode its numeric index.
+ buildParams(
+ prefix + "[" + ( typeof v === "object" && v != null ? i : "" ) + "]",
+ v,
+ traditional,
+ add
+ );
+ }
+ } );
+
+ } else if ( !traditional && jQuery.type( obj ) === "object" ) {
+
+ // Serialize object item.
+ for ( name in obj ) {
+ buildParams( prefix + "[" + name + "]", obj[ name ], traditional, add );
+ }
+
+ } else {
+
+ // Serialize scalar item.
+ add( prefix, obj );
+ }
+}
+
+// Serialize an array of form elements or a set of
+// key/values into a query string
+jQuery.param = function( a, traditional ) {
+ var prefix,
+ s = [],
+ add = function( key, valueOrFunction ) {
+
+ // If value is a function, invoke it and use its return value
+ var value = jQuery.isFunction( valueOrFunction ) ?
+ valueOrFunction() :
+ valueOrFunction;
+
+ s[ s.length ] = encodeURIComponent( key ) + "=" +
+ encodeURIComponent( value == null ? "" : value );
+ };
+
+ // If an array was passed in, assume that it is an array of form elements.
+ if ( jQuery.isArray( a ) || ( a.jquery && !jQuery.isPlainObject( a ) ) ) {
+
+ // Serialize the form elements
+ jQuery.each( a, function() {
+ add( this.name, this.value );
+ } );
+
+ } else {
+
+ // If traditional, encode the "old" way (the way 1.3.2 or older
+ // did it), otherwise encode params recursively.
+ for ( prefix in a ) {
+ buildParams( prefix, a[ prefix ], traditional, add );
+ }
+ }
+
+ // Return the resulting serialization
+ return s.join( "&" );
+};
+
+jQuery.fn.extend( {
+ serialize: function() {
+ return jQuery.param( this.serializeArray() );
+ },
+ serializeArray: function() {
+ return this.map( function() {
+
+ // Can add propHook for "elements" to filter or add form elements
+ var elements = jQuery.prop( this, "elements" );
+ return elements ? jQuery.makeArray( elements ) : this;
+ } )
+ .filter( function() {
+ var type = this.type;
+
+ // Use .is( ":disabled" ) so that fieldset[disabled] works
+ return this.name && !jQuery( this ).is( ":disabled" ) &&
+ rsubmittable.test( this.nodeName ) && !rsubmitterTypes.test( type ) &&
+ ( this.checked || !rcheckableType.test( type ) );
+ } )
+ .map( function( i, elem ) {
+ var val = jQuery( this ).val();
+
+ if ( val == null ) {
+ return null;
+ }
+
+ if ( jQuery.isArray( val ) ) {
+ return jQuery.map( val, function( val ) {
+ return { name: elem.name, value: val.replace( rCRLF, "\r\n" ) };
+ } );
+ }
+
+ return { name: elem.name, value: val.replace( rCRLF, "\r\n" ) };
+ } ).get();
+ }
+} );
+
+
+var
+ r20 = /%20/g,
+ rhash = /#.*$/,
+ rantiCache = /([?&])_=[^&]*/,
+ rheaders = /^(.*?):[ \t]*([^\r\n]*)$/mg,
+
+ // #7653, #8125, #8152: local protocol detection
+ rlocalProtocol = /^(?:about|app|app-storage|.+-extension|file|res|widget):$/,
+ rnoContent = /^(?:GET|HEAD)$/,
+ rprotocol = /^\/\//,
+
+ /* Prefilters
+ * 1) They are useful to introduce custom dataTypes (see ajax/jsonp.js for an example)
+ * 2) These are called:
+ * - BEFORE asking for a transport
+ * - AFTER param serialization (s.data is a string if s.processData is true)
+ * 3) key is the dataType
+ * 4) the catchall symbol "*" can be used
+ * 5) execution will start with transport dataType and THEN continue down to "*" if needed
+ */
+ prefilters = {},
+
+ /* Transports bindings
+ * 1) key is the dataType
+ * 2) the catchall symbol "*" can be used
+ * 3) selection will start with transport dataType and THEN go to "*" if needed
+ */
+ transports = {},
+
+ // Avoid comment-prolog char sequence (#10098); must appease lint and evade compression
+ allTypes = "*/".concat( "*" ),
+
+ // Anchor tag for parsing the document origin
+ originAnchor = document.createElement( "a" );
+ originAnchor.href = location.href;
+
+// Base "constructor" for jQuery.ajaxPrefilter and jQuery.ajaxTransport
+function addToPrefiltersOrTransports( structure ) {
+
+ // dataTypeExpression is optional and defaults to "*"
+ return function( dataTypeExpression, func ) {
+
+ if ( typeof dataTypeExpression !== "string" ) {
+ func = dataTypeExpression;
+ dataTypeExpression = "*";
+ }
+
+ var dataType,
+ i = 0,
+ dataTypes = dataTypeExpression.toLowerCase().match( rnothtmlwhite ) || [];
+
+ if ( jQuery.isFunction( func ) ) {
+
+ // For each dataType in the dataTypeExpression
+ while ( ( dataType = dataTypes[ i++ ] ) ) {
+
+ // Prepend if requested
+ if ( dataType[ 0 ] === "+" ) {
+ dataType = dataType.slice( 1 ) || "*";
+ ( structure[ dataType ] = structure[ dataType ] || [] ).unshift( func );
+
+ // Otherwise append
+ } else {
+ ( structure[ dataType ] = structure[ dataType ] || [] ).push( func );
+ }
+ }
+ }
+ };
+}
+
+// Base inspection function for prefilters and transports
+function inspectPrefiltersOrTransports( structure, options, originalOptions, jqXHR ) {
+
+ var inspected = {},
+ seekingTransport = ( structure === transports );
+
+ function inspect( dataType ) {
+ var selected;
+ inspected[ dataType ] = true;
+ jQuery.each( structure[ dataType ] || [], function( _, prefilterOrFactory ) {
+ var dataTypeOrTransport = prefilterOrFactory( options, originalOptions, jqXHR );
+ if ( typeof dataTypeOrTransport === "string" &&
+ !seekingTransport && !inspected[ dataTypeOrTransport ] ) {
+
+ options.dataTypes.unshift( dataTypeOrTransport );
+ inspect( dataTypeOrTransport );
+ return false;
+ } else if ( seekingTransport ) {
+ return !( selected = dataTypeOrTransport );
+ }
+ } );
+ return selected;
+ }
+
+ return inspect( options.dataTypes[ 0 ] ) || !inspected[ "*" ] && inspect( "*" );
+}
+
+// A special extend for ajax options
+// that takes "flat" options (not to be deep extended)
+// Fixes #9887
+function ajaxExtend( target, src ) {
+ var key, deep,
+ flatOptions = jQuery.ajaxSettings.flatOptions || {};
+
+ for ( key in src ) {
+ if ( src[ key ] !== undefined ) {
+ ( flatOptions[ key ] ? target : ( deep || ( deep = {} ) ) )[ key ] = src[ key ];
+ }
+ }
+ if ( deep ) {
+ jQuery.extend( true, target, deep );
+ }
+
+ return target;
+}
+
+/* Handles responses to an ajax request:
+ * - finds the right dataType (mediates between content-type and expected dataType)
+ * - returns the corresponding response
+ */
+function ajaxHandleResponses( s, jqXHR, responses ) {
+
+ var ct, type, finalDataType, firstDataType,
+ contents = s.contents,
+ dataTypes = s.dataTypes;
+
+ // Remove auto dataType and get content-type in the process
+ while ( dataTypes[ 0 ] === "*" ) {
+ dataTypes.shift();
+ if ( ct === undefined ) {
+ ct = s.mimeType || jqXHR.getResponseHeader( "Content-Type" );
+ }
+ }
+
+ // Check if we're dealing with a known content-type
+ if ( ct ) {
+ for ( type in contents ) {
+ if ( contents[ type ] && contents[ type ].test( ct ) ) {
+ dataTypes.unshift( type );
+ break;
+ }
+ }
+ }
+
+ // Check to see if we have a response for the expected dataType
+ if ( dataTypes[ 0 ] in responses ) {
+ finalDataType = dataTypes[ 0 ];
+ } else {
+
+ // Try convertible dataTypes
+ for ( type in responses ) {
+ if ( !dataTypes[ 0 ] || s.converters[ type + " " + dataTypes[ 0 ] ] ) {
+ finalDataType = type;
+ break;
+ }
+ if ( !firstDataType ) {
+ firstDataType = type;
+ }
+ }
+
+ // Or just use first one
+ finalDataType = finalDataType || firstDataType;
+ }
+
+ // If we found a dataType
+ // We add the dataType to the list if needed
+ // and return the corresponding response
+ if ( finalDataType ) {
+ if ( finalDataType !== dataTypes[ 0 ] ) {
+ dataTypes.unshift( finalDataType );
+ }
+ return responses[ finalDataType ];
+ }
+}
+
+/* Chain conversions given the request and the original response
+ * Also sets the responseXXX fields on the jqXHR instance
+ */
+function ajaxConvert( s, response, jqXHR, isSuccess ) {
+ var conv2, current, conv, tmp, prev,
+ converters = {},
+
+ // Work with a copy of dataTypes in case we need to modify it for conversion
+ dataTypes = s.dataTypes.slice();
+
+ // Create converters map with lowercased keys
+ if ( dataTypes[ 1 ] ) {
+ for ( conv in s.converters ) {
+ converters[ conv.toLowerCase() ] = s.converters[ conv ];
+ }
+ }
+
+ current = dataTypes.shift();
+
+ // Convert to each sequential dataType
+ while ( current ) {
+
+ if ( s.responseFields[ current ] ) {
+ jqXHR[ s.responseFields[ current ] ] = response;
+ }
+
+ // Apply the dataFilter if provided
+ if ( !prev && isSuccess && s.dataFilter ) {
+ response = s.dataFilter( response, s.dataType );
+ }
+
+ prev = current;
+ current = dataTypes.shift();
+
+ if ( current ) {
+
+ // There's only work to do if current dataType is non-auto
+ if ( current === "*" ) {
+
+ current = prev;
+
+ // Convert response if prev dataType is non-auto and differs from current
+ } else if ( prev !== "*" && prev !== current ) {
+
+ // Seek a direct converter
+ conv = converters[ prev + " " + current ] || converters[ "* " + current ];
+
+ // If none found, seek a pair
+ if ( !conv ) {
+ for ( conv2 in converters ) {
+
+ // If conv2 outputs current
+ tmp = conv2.split( " " );
+ if ( tmp[ 1 ] === current ) {
+
+ // If prev can be converted to accepted input
+ conv = converters[ prev + " " + tmp[ 0 ] ] ||
+ converters[ "* " + tmp[ 0 ] ];
+ if ( conv ) {
+
+ // Condense equivalence converters
+ if ( conv === true ) {
+ conv = converters[ conv2 ];
+
+ // Otherwise, insert the intermediate dataType
+ } else if ( converters[ conv2 ] !== true ) {
+ current = tmp[ 0 ];
+ dataTypes.unshift( tmp[ 1 ] );
+ }
+ break;
+ }
+ }
+ }
+ }
+
+ // Apply converter (if not an equivalence)
+ if ( conv !== true ) {
+
+ // Unless errors are allowed to bubble, catch and return them
+ if ( conv && s.throws ) {
+ response = conv( response );
+ } else {
+ try {
+ response = conv( response );
+ } catch ( e ) {
+ return {
+ state: "parsererror",
+ error: conv ? e : "No conversion from " + prev + " to " + current
+ };
+ }
+ }
+ }
+ }
+ }
+ }
+
+ return { state: "success", data: response };
+}
+
+jQuery.extend( {
+
+ // Counter for holding the number of active queries
+ active: 0,
+
+ // Last-Modified header cache for next request
+ lastModified: {},
+ etag: {},
+
+ ajaxSettings: {
+ url: location.href,
+ type: "GET",
+ isLocal: rlocalProtocol.test( location.protocol ),
+ global: true,
+ processData: true,
+ async: true,
+ contentType: "application/x-www-form-urlencoded; charset=UTF-8",
+
+ /*
+ timeout: 0,
+ data: null,
+ dataType: null,
+ username: null,
+ password: null,
+ cache: null,
+ throws: false,
+ traditional: false,
+ headers: {},
+ */
+
+ accepts: {
+ "*": allTypes,
+ text: "text/plain",
+ html: "text/html",
+ xml: "application/xml, text/xml",
+ json: "application/json, text/javascript"
+ },
+
+ contents: {
+ xml: /\bxml\b/,
+ html: /\bhtml/,
+ json: /\bjson\b/
+ },
+
+ responseFields: {
+ xml: "responseXML",
+ text: "responseText",
+ json: "responseJSON"
+ },
+
+ // Data converters
+ // Keys separate source (or catchall "*") and destination types with a single space
+ converters: {
+
+ // Convert anything to text
+ "* text": String,
+
+ // Text to html (true = no transformation)
+ "text html": true,
+
+ // Evaluate text as a json expression
+ "text json": JSON.parse,
+
+ // Parse text as xml
+ "text xml": jQuery.parseXML
+ },
+
+ // For options that shouldn't be deep extended:
+ // you can add your own custom options here if
+ // and when you create one that shouldn't be
+ // deep extended (see ajaxExtend)
+ flatOptions: {
+ url: true,
+ context: true
+ }
+ },
+
+ // Creates a full fledged settings object into target
+ // with both ajaxSettings and settings fields.
+ // If target is omitted, writes into ajaxSettings.
+ ajaxSetup: function( target, settings ) {
+ return settings ?
+
+ // Building a settings object
+ ajaxExtend( ajaxExtend( target, jQuery.ajaxSettings ), settings ) :
+
+ // Extending ajaxSettings
+ ajaxExtend( jQuery.ajaxSettings, target );
+ },
+
+ ajaxPrefilter: addToPrefiltersOrTransports( prefilters ),
+ ajaxTransport: addToPrefiltersOrTransports( transports ),
+
+ // Main method
+ ajax: function( url, options ) {
+
+ // If url is an object, simulate pre-1.5 signature
+ if ( typeof url === "object" ) {
+ options = url;
+ url = undefined;
+ }
+
+ // Force options to be an object
+ options = options || {};
+
+ var transport,
+
+ // URL without anti-cache param
+ cacheURL,
+
+ // Response headers
+ responseHeadersString,
+ responseHeaders,
+
+ // timeout handle
+ timeoutTimer,
+
+ // Url cleanup var
+ urlAnchor,
+
+ // Request state (becomes false upon send and true upon completion)
+ completed,
+
+ // To know if global events are to be dispatched
+ fireGlobals,
+
+ // Loop variable
+ i,
+
+ // uncached part of the url
+ uncached,
+
+ // Create the final options object
+ s = jQuery.ajaxSetup( {}, options ),
+
+ // Callbacks context
+ callbackContext = s.context || s,
+
+ // Context for global events is callbackContext if it is a DOM node or jQuery collection
+ globalEventContext = s.context &&
+ ( callbackContext.nodeType || callbackContext.jquery ) ?
+ jQuery( callbackContext ) :
+ jQuery.event,
+
+ // Deferreds
+ deferred = jQuery.Deferred(),
+ completeDeferred = jQuery.Callbacks( "once memory" ),
+
+ // Status-dependent callbacks
+ statusCode = s.statusCode || {},
+
+ // Headers (they are sent all at once)
+ requestHeaders = {},
+ requestHeadersNames = {},
+
+ // Default abort message
+ strAbort = "canceled",
+
+ // Fake xhr
+ jqXHR = {
+ readyState: 0,
+
+ // Builds headers hashtable if needed
+ getResponseHeader: function( key ) {
+ var match;
+ if ( completed ) {
+ if ( !responseHeaders ) {
+ responseHeaders = {};
+ while ( ( match = rheaders.exec( responseHeadersString ) ) ) {
+ responseHeaders[ match[ 1 ].toLowerCase() ] = match[ 2 ];
+ }
+ }
+ match = responseHeaders[ key.toLowerCase() ];
+ }
+ return match == null ? null : match;
+ },
+
+ // Raw string
+ getAllResponseHeaders: function() {
+ return completed ? responseHeadersString : null;
+ },
+
+ // Caches the header
+ setRequestHeader: function( name, value ) {
+ if ( completed == null ) {
+ name = requestHeadersNames[ name.toLowerCase() ] =
+ requestHeadersNames[ name.toLowerCase() ] || name;
+ requestHeaders[ name ] = value;
+ }
+ return this;
+ },
+
+ // Overrides response content-type header
+ overrideMimeType: function( type ) {
+ if ( completed == null ) {
+ s.mimeType = type;
+ }
+ return this;
+ },
+
+ // Status-dependent callbacks
+ statusCode: function( map ) {
+ var code;
+ if ( map ) {
+ if ( completed ) {
+
+ // Execute the appropriate callbacks
+ jqXHR.always( map[ jqXHR.status ] );
+ } else {
+
+ // Lazy-add the new callbacks in a way that preserves old ones
+ for ( code in map ) {
+ statusCode[ code ] = [ statusCode[ code ], map[ code ] ];
+ }
+ }
+ }
+ return this;
+ },
+
+ // Cancel the request
+ abort: function( statusText ) {
+ var finalText = statusText || strAbort;
+ if ( transport ) {
+ transport.abort( finalText );
+ }
+ done( 0, finalText );
+ return this;
+ }
+ };
+
+ // Attach deferreds
+ deferred.promise( jqXHR );
+
+ // Add protocol if not provided (prefilters might expect it)
+ // Handle falsy url in the settings object (#10093: consistency with old signature)
+ // We also use the url parameter if available
+ s.url = ( ( url || s.url || location.href ) + "" )
+ .replace( rprotocol, location.protocol + "//" );
+
+ // Alias method option to type as per ticket #12004
+ s.type = options.method || options.type || s.method || s.type;
+
+ // Extract dataTypes list
+ s.dataTypes = ( s.dataType || "*" ).toLowerCase().match( rnothtmlwhite ) || [ "" ];
+
+ // A cross-domain request is in order when the origin doesn't match the current origin.
+ if ( s.crossDomain == null ) {
+ urlAnchor = document.createElement( "a" );
+
+ // Support: IE <=8 - 11, Edge 12 - 13
+ // IE throws exception on accessing the href property if url is malformed,
+ // e.g. http://example.com:80x/
+ try {
+ urlAnchor.href = s.url;
+
+ // Support: IE <=8 - 11 only
+ // Anchor's host property isn't correctly set when s.url is relative
+ urlAnchor.href = urlAnchor.href;
+ s.crossDomain = originAnchor.protocol + "//" + originAnchor.host !==
+ urlAnchor.protocol + "//" + urlAnchor.host;
+ } catch ( e ) {
+
+ // If there is an error parsing the URL, assume it is crossDomain,
+ // it can be rejected by the transport if it is invalid
+ s.crossDomain = true;
+ }
+ }
+
+ // Convert data if not already a string
+ if ( s.data && s.processData && typeof s.data !== "string" ) {
+ s.data = jQuery.param( s.data, s.traditional );
+ }
+
+ // Apply prefilters
+ inspectPrefiltersOrTransports( prefilters, s, options, jqXHR );
+
+ // If request was aborted inside a prefilter, stop there
+ if ( completed ) {
+ return jqXHR;
+ }
+
+ // We can fire global events as of now if asked to
+ // Don't fire events if jQuery.event is undefined in an AMD-usage scenario (#15118)
+ fireGlobals = jQuery.event && s.global;
+
+ // Watch for a new set of requests
+ if ( fireGlobals && jQuery.active++ === 0 ) {
+ jQuery.event.trigger( "ajaxStart" );
+ }
+
+ // Uppercase the type
+ s.type = s.type.toUpperCase();
+
+ // Determine if request has content
+ s.hasContent = !rnoContent.test( s.type );
+
+ // Save the URL in case we're toying with the If-Modified-Since
+ // and/or If-None-Match header later on
+ // Remove hash to simplify url manipulation
+ cacheURL = s.url.replace( rhash, "" );
+
+ // More options handling for requests with no content
+ if ( !s.hasContent ) {
+
+ // Remember the hash so we can put it back
+ uncached = s.url.slice( cacheURL.length );
+
+ // If data is available, append data to url
+ if ( s.data ) {
+ cacheURL += ( rquery.test( cacheURL ) ? "&" : "?" ) + s.data;
+
+ // #9682: remove data so that it's not used in an eventual retry
+ delete s.data;
+ }
+
+ // Add or update anti-cache param if needed
+ if ( s.cache === false ) {
+ cacheURL = cacheURL.replace( rantiCache, "$1" );
+ uncached = ( rquery.test( cacheURL ) ? "&" : "?" ) + "_=" + ( nonce++ ) + uncached;
+ }
+
+ // Put hash and anti-cache on the URL that will be requested (gh-1732)
+ s.url = cacheURL + uncached;
+
+ // Change '%20' to '+' if this is encoded form body content (gh-2658)
+ } else if ( s.data && s.processData &&
+ ( s.contentType || "" ).indexOf( "application/x-www-form-urlencoded" ) === 0 ) {
+ s.data = s.data.replace( r20, "+" );
+ }
+
+ // Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode.
+ if ( s.ifModified ) {
+ if ( jQuery.lastModified[ cacheURL ] ) {
+ jqXHR.setRequestHeader( "If-Modified-Since", jQuery.lastModified[ cacheURL ] );
+ }
+ if ( jQuery.etag[ cacheURL ] ) {
+ jqXHR.setRequestHeader( "If-None-Match", jQuery.etag[ cacheURL ] );
+ }
+ }
+
+ // Set the correct header, if data is being sent
+ if ( s.data && s.hasContent && s.contentType !== false || options.contentType ) {
+ jqXHR.setRequestHeader( "Content-Type", s.contentType );
+ }
+
+ // Set the Accepts header for the server, depending on the dataType
+ jqXHR.setRequestHeader(
+ "Accept",
+ s.dataTypes[ 0 ] && s.accepts[ s.dataTypes[ 0 ] ] ?
+ s.accepts[ s.dataTypes[ 0 ] ] +
+ ( s.dataTypes[ 0 ] !== "*" ? ", " + allTypes + "; q=0.01" : "" ) :
+ s.accepts[ "*" ]
+ );
+
+ // Check for headers option
+ for ( i in s.headers ) {
+ jqXHR.setRequestHeader( i, s.headers[ i ] );
+ }
+
+ // Allow custom headers/mimetypes and early abort
+ if ( s.beforeSend &&
+ ( s.beforeSend.call( callbackContext, jqXHR, s ) === false || completed ) ) {
+
+ // Abort if not done already and return
+ return jqXHR.abort();
+ }
+
+ // Aborting is no longer a cancellation
+ strAbort = "abort";
+
+ // Install callbacks on deferreds
+ completeDeferred.add( s.complete );
+ jqXHR.done( s.success );
+ jqXHR.fail( s.error );
+
+ // Get transport
+ transport = inspectPrefiltersOrTransports( transports, s, options, jqXHR );
+
+ // If no transport, we auto-abort
+ if ( !transport ) {
+ done( -1, "No Transport" );
+ } else {
+ jqXHR.readyState = 1;
+
+ // Send global event
+ if ( fireGlobals ) {
+ globalEventContext.trigger( "ajaxSend", [ jqXHR, s ] );
+ }
+
+ // If request was aborted inside ajaxSend, stop there
+ if ( completed ) {
+ return jqXHR;
+ }
+
+ // Timeout
+ if ( s.async && s.timeout > 0 ) {
+ timeoutTimer = window.setTimeout( function() {
+ jqXHR.abort( "timeout" );
+ }, s.timeout );
+ }
+
+ try {
+ completed = false;
+ transport.send( requestHeaders, done );
+ } catch ( e ) {
+
+ // Rethrow post-completion exceptions
+ if ( completed ) {
+ throw e;
+ }
+
+ // Propagate others as results
+ done( -1, e );
+ }
+ }
+
+ // Callback for when everything is done
+ function done( status, nativeStatusText, responses, headers ) {
+ var isSuccess, success, error, response, modified,
+ statusText = nativeStatusText;
+
+ // Ignore repeat invocations
+ if ( completed ) {
+ return;
+ }
+
+ completed = true;
+
+ // Clear timeout if it exists
+ if ( timeoutTimer ) {
+ window.clearTimeout( timeoutTimer );
+ }
+
+ // Dereference transport for early garbage collection
+ // (no matter how long the jqXHR object will be used)
+ transport = undefined;
+
+ // Cache response headers
+ responseHeadersString = headers || "";
+
+ // Set readyState
+ jqXHR.readyState = status > 0 ? 4 : 0;
+
+ // Determine if successful
+ isSuccess = status >= 200 && status < 300 || status === 304;
+
+ // Get response data
+ if ( responses ) {
+ response = ajaxHandleResponses( s, jqXHR, responses );
+ }
+
+ // Convert no matter what (that way responseXXX fields are always set)
+ response = ajaxConvert( s, response, jqXHR, isSuccess );
+
+ // If successful, handle type chaining
+ if ( isSuccess ) {
+
+ // Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode.
+ if ( s.ifModified ) {
+ modified = jqXHR.getResponseHeader( "Last-Modified" );
+ if ( modified ) {
+ jQuery.lastModified[ cacheURL ] = modified;
+ }
+ modified = jqXHR.getResponseHeader( "etag" );
+ if ( modified ) {
+ jQuery.etag[ cacheURL ] = modified;
+ }
+ }
+
+ // if no content
+ if ( status === 204 || s.type === "HEAD" ) {
+ statusText = "nocontent";
+
+ // if not modified
+ } else if ( status === 304 ) {
+ statusText = "notmodified";
+
+ // If we have data, let's convert it
+ } else {
+ statusText = response.state;
+ success = response.data;
+ error = response.error;
+ isSuccess = !error;
+ }
+ } else {
+
+ // Extract error from statusText and normalize for non-aborts
+ error = statusText;
+ if ( status || !statusText ) {
+ statusText = "error";
+ if ( status < 0 ) {
+ status = 0;
+ }
+ }
+ }
+
+ // Set data for the fake xhr object
+ jqXHR.status = status;
+ jqXHR.statusText = ( nativeStatusText || statusText ) + "";
+
+ // Success/Error
+ if ( isSuccess ) {
+ deferred.resolveWith( callbackContext, [ success, statusText, jqXHR ] );
+ } else {
+ deferred.rejectWith( callbackContext, [ jqXHR, statusText, error ] );
+ }
+
+ // Status-dependent callbacks
+ jqXHR.statusCode( statusCode );
+ statusCode = undefined;
+
+ if ( fireGlobals ) {
+ globalEventContext.trigger( isSuccess ? "ajaxSuccess" : "ajaxError",
+ [ jqXHR, s, isSuccess ? success : error ] );
+ }
+
+ // Complete
+ completeDeferred.fireWith( callbackContext, [ jqXHR, statusText ] );
+
+ if ( fireGlobals ) {
+ globalEventContext.trigger( "ajaxComplete", [ jqXHR, s ] );
+
+ // Handle the global AJAX counter
+ if ( !( --jQuery.active ) ) {
+ jQuery.event.trigger( "ajaxStop" );
+ }
+ }
+ }
+
+ return jqXHR;
+ },
+
+ getJSON: function( url, data, callback ) {
+ return jQuery.get( url, data, callback, "json" );
+ },
+
+ getScript: function( url, callback ) {
+ return jQuery.get( url, undefined, callback, "script" );
+ }
+} );
+
+jQuery.each( [ "get", "post" ], function( i, method ) {
+ jQuery[ method ] = function( url, data, callback, type ) {
+
+ // Shift arguments if data argument was omitted
+ if ( jQuery.isFunction( data ) ) {
+ type = type || callback;
+ callback = data;
+ data = undefined;
+ }
+
+ // The url can be an options object (which then must have .url)
+ return jQuery.ajax( jQuery.extend( {
+ url: url,
+ type: method,
+ dataType: type,
+ data: data,
+ success: callback
+ }, jQuery.isPlainObject( url ) && url ) );
+ };
+} );
+
+
+jQuery._evalUrl = function( url ) {
+ return jQuery.ajax( {
+ url: url,
+
+ // Make this explicit, since user can override this through ajaxSetup (#11264)
+ type: "GET",
+ dataType: "script",
+ cache: true,
+ async: false,
+ global: false,
+ "throws": true
+ } );
+};
+
+
+jQuery.fn.extend( {
+ wrapAll: function( html ) {
+ var wrap;
+
+ if ( this[ 0 ] ) {
+ if ( jQuery.isFunction( html ) ) {
+ html = html.call( this[ 0 ] );
+ }
+
+ // The elements to wrap the target around
+ wrap = jQuery( html, this[ 0 ].ownerDocument ).eq( 0 ).clone( true );
+
+ if ( this[ 0 ].parentNode ) {
+ wrap.insertBefore( this[ 0 ] );
+ }
+
+ wrap.map( function() {
+ var elem = this;
+
+ while ( elem.firstElementChild ) {
+ elem = elem.firstElementChild;
+ }
+
+ return elem;
+ } ).append( this );
+ }
+
+ return this;
+ },
+
+ wrapInner: function( html ) {
+ if ( jQuery.isFunction( html ) ) {
+ return this.each( function( i ) {
+ jQuery( this ).wrapInner( html.call( this, i ) );
+ } );
+ }
+
+ return this.each( function() {
+ var self = jQuery( this ),
+ contents = self.contents();
+
+ if ( contents.length ) {
+ contents.wrapAll( html );
+
+ } else {
+ self.append( html );
+ }
+ } );
+ },
+
+ wrap: function( html ) {
+ var isFunction = jQuery.isFunction( html );
+
+ return this.each( function( i ) {
+ jQuery( this ).wrapAll( isFunction ? html.call( this, i ) : html );
+ } );
+ },
+
+ unwrap: function( selector ) {
+ this.parent( selector ).not( "body" ).each( function() {
+ jQuery( this ).replaceWith( this.childNodes );
+ } );
+ return this;
+ }
+} );
+
+
+jQuery.expr.pseudos.hidden = function( elem ) {
+ return !jQuery.expr.pseudos.visible( elem );
+};
+jQuery.expr.pseudos.visible = function( elem ) {
+ return !!( elem.offsetWidth || elem.offsetHeight || elem.getClientRects().length );
+};
+
+
+
+
+jQuery.ajaxSettings.xhr = function() {
+ try {
+ return new window.XMLHttpRequest();
+ } catch ( e ) {}
+};
+
+var xhrSuccessStatus = {
+
+ // File protocol always yields status code 0, assume 200
+ 0: 200,
+
+ // Support: IE <=9 only
+ // #1450: sometimes IE returns 1223 when it should be 204
+ 1223: 204
+ },
+ xhrSupported = jQuery.ajaxSettings.xhr();
+
+support.cors = !!xhrSupported && ( "withCredentials" in xhrSupported );
+support.ajax = xhrSupported = !!xhrSupported;
+
+jQuery.ajaxTransport( function( options ) {
+ var callback, errorCallback;
+
+ // Cross domain only allowed if supported through XMLHttpRequest
+ if ( support.cors || xhrSupported && !options.crossDomain ) {
+ return {
+ send: function( headers, complete ) {
+ var i,
+ xhr = options.xhr();
+
+ xhr.open(
+ options.type,
+ options.url,
+ options.async,
+ options.username,
+ options.password
+ );
+
+ // Apply custom fields if provided
+ if ( options.xhrFields ) {
+ for ( i in options.xhrFields ) {
+ xhr[ i ] = options.xhrFields[ i ];
+ }
+ }
+
+ // Override mime type if needed
+ if ( options.mimeType && xhr.overrideMimeType ) {
+ xhr.overrideMimeType( options.mimeType );
+ }
+
+ // X-Requested-With header
+ // For cross-domain requests, seeing as conditions for a preflight are
+ // akin to a jigsaw puzzle, we simply never set it to be sure.
+ // (it can always be set on a per-request basis or even using ajaxSetup)
+ // For same-domain requests, won't change header if already provided.
+ if ( !options.crossDomain && !headers[ "X-Requested-With" ] ) {
+ headers[ "X-Requested-With" ] = "XMLHttpRequest";
+ }
+
+ // Set headers
+ for ( i in headers ) {
+ xhr.setRequestHeader( i, headers[ i ] );
+ }
+
+ // Callback
+ callback = function( type ) {
+ return function() {
+ if ( callback ) {
+ callback = errorCallback = xhr.onload =
+ xhr.onerror = xhr.onabort = xhr.onreadystatechange = null;
+
+ if ( type === "abort" ) {
+ xhr.abort();
+ } else if ( type === "error" ) {
+
+ // Support: IE <=9 only
+ // On a manual native abort, IE9 throws
+ // errors on any property access that is not readyState
+ if ( typeof xhr.status !== "number" ) {
+ complete( 0, "error" );
+ } else {
+ complete(
+
+ // File: protocol always yields status 0; see #8605, #14207
+ xhr.status,
+ xhr.statusText
+ );
+ }
+ } else {
+ complete(
+ xhrSuccessStatus[ xhr.status ] || xhr.status,
+ xhr.statusText,
+
+ // Support: IE <=9 only
+ // IE9 has no XHR2 but throws on binary (trac-11426)
+ // For XHR2 non-text, let the caller handle it (gh-2498)
+ ( xhr.responseType || "text" ) !== "text" ||
+ typeof xhr.responseText !== "string" ?
+ { binary: xhr.response } :
+ { text: xhr.responseText },
+ xhr.getAllResponseHeaders()
+ );
+ }
+ }
+ };
+ };
+
+ // Listen to events
+ xhr.onload = callback();
+ errorCallback = xhr.onerror = callback( "error" );
+
+ // Support: IE 9 only
+ // Use onreadystatechange to replace onabort
+ // to handle uncaught aborts
+ if ( xhr.onabort !== undefined ) {
+ xhr.onabort = errorCallback;
+ } else {
+ xhr.onreadystatechange = function() {
+
+ // Check readyState before timeout as it changes
+ if ( xhr.readyState === 4 ) {
+
+ // Allow onerror to be called first,
+ // but that will not handle a native abort
+ // Also, save errorCallback to a variable
+ // as xhr.onerror cannot be accessed
+ window.setTimeout( function() {
+ if ( callback ) {
+ errorCallback();
+ }
+ } );
+ }
+ };
+ }
+
+ // Create the abort callback
+ callback = callback( "abort" );
+
+ try {
+
+ // Do send the request (this may raise an exception)
+ xhr.send( options.hasContent && options.data || null );
+ } catch ( e ) {
+
+ // #14683: Only rethrow if this hasn't been notified as an error yet
+ if ( callback ) {
+ throw e;
+ }
+ }
+ },
+
+ abort: function() {
+ if ( callback ) {
+ callback();
+ }
+ }
+ };
+ }
+} );
+
+
+
+
+// Prevent auto-execution of scripts when no explicit dataType was provided (See gh-2432)
+jQuery.ajaxPrefilter( function( s ) {
+ if ( s.crossDomain ) {
+ s.contents.script = false;
+ }
+} );
+
+// Install script dataType
+jQuery.ajaxSetup( {
+ accepts: {
+ script: "text/javascript, application/javascript, " +
+ "application/ecmascript, application/x-ecmascript"
+ },
+ contents: {
+ script: /\b(?:java|ecma)script\b/
+ },
+ converters: {
+ "text script": function( text ) {
+ jQuery.globalEval( text );
+ return text;
+ }
+ }
+} );
+
+// Handle cache's special case and crossDomain
+jQuery.ajaxPrefilter( "script", function( s ) {
+ if ( s.cache === undefined ) {
+ s.cache = false;
+ }
+ if ( s.crossDomain ) {
+ s.type = "GET";
+ }
+} );
+
+// Bind script tag hack transport
+jQuery.ajaxTransport( "script", function( s ) {
+
+ // This transport only deals with cross domain requests
+ if ( s.crossDomain ) {
+ var script, callback;
+ return {
+ send: function( _, complete ) {
+ script = jQuery( "<script>" ).prop( {
+ charset: s.scriptCharset,
+ src: s.url
+ } ).on(
+ "load error",
+ callback = function( evt ) {
+ script.remove();
+ callback = null;
+ if ( evt ) {
+ complete( evt.type === "error" ? 404 : 200, evt.type );
+ }
+ }
+ );
+
+ // Use native DOM manipulation to avoid our domManip AJAX trickery
+ document.head.appendChild( script[ 0 ] );
+ },
+ abort: function() {
+ if ( callback ) {
+ callback();
+ }
+ }
+ };
+ }
+} );
+
+
+
+
+var oldCallbacks = [],
+ rjsonp = /(=)\?(?=&|$)|\?\?/;
+
+// Default jsonp settings
+jQuery.ajaxSetup( {
+ jsonp: "callback",
+ jsonpCallback: function() {
+ var callback = oldCallbacks.pop() || ( jQuery.expando + "_" + ( nonce++ ) );
+ this[ callback ] = true;
+ return callback;
+ }
+} );
+
+// Detect, normalize options and install callbacks for jsonp requests
+jQuery.ajaxPrefilter( "json jsonp", function( s, originalSettings, jqXHR ) {
+
+ var callbackName, overwritten, responseContainer,
+ jsonProp = s.jsonp !== false && ( rjsonp.test( s.url ) ?
+ "url" :
+ typeof s.data === "string" &&
+ ( s.contentType || "" )
+ .indexOf( "application/x-www-form-urlencoded" ) === 0 &&
+ rjsonp.test( s.data ) && "data"
+ );
+
+ // Handle iff the expected data type is "jsonp" or we have a parameter to set
+ if ( jsonProp || s.dataTypes[ 0 ] === "jsonp" ) {
+
+ // Get callback name, remembering preexisting value associated with it
+ callbackName = s.jsonpCallback = jQuery.isFunction( s.jsonpCallback ) ?
+ s.jsonpCallback() :
+ s.jsonpCallback;
+
+ // Insert callback into url or form data
+ if ( jsonProp ) {
+ s[ jsonProp ] = s[ jsonProp ].replace( rjsonp, "$1" + callbackName );
+ } else if ( s.jsonp !== false ) {
+ s.url += ( rquery.test( s.url ) ? "&" : "?" ) + s.jsonp + "=" + callbackName;
+ }
+
+ // Use data converter to retrieve json after script execution
+ s.converters[ "script json" ] = function() {
+ if ( !responseContainer ) {
+ jQuery.error( callbackName + " was not called" );
+ }
+ return responseContainer[ 0 ];
+ };
+
+ // Force json dataType
+ s.dataTypes[ 0 ] = "json";
+
+ // Install callback
+ overwritten = window[ callbackName ];
+ window[ callbackName ] = function() {
+ responseContainer = arguments;
+ };
+
+ // Clean-up function (fires after converters)
+ jqXHR.always( function() {
+
+ // If previous value didn't exist - remove it
+ if ( overwritten === undefined ) {
+ jQuery( window ).removeProp( callbackName );
+
+ // Otherwise restore preexisting value
+ } else {
+ window[ callbackName ] = overwritten;
+ }
+
+ // Save back as free
+ if ( s[ callbackName ] ) {
+
+ // Make sure that re-using the options doesn't screw things around
+ s.jsonpCallback = originalSettings.jsonpCallback;
+
+ // Save the callback name for future use
+ oldCallbacks.push( callbackName );
+ }
+
+ // Call if it was a function and we have a response
+ if ( responseContainer && jQuery.isFunction( overwritten ) ) {
+ overwritten( responseContainer[ 0 ] );
+ }
+
+ responseContainer = overwritten = undefined;
+ } );
+
+ // Delegate to script
+ return "script";
+ }
+} );
+
+
+
+
+// Support: Safari 8 only
+// In Safari 8 documents created via document.implementation.createHTMLDocument
+// collapse sibling forms: the second one becomes a child of the first one.
+// Because of that, this security measure has to be disabled in Safari 8.
+// https://bugs.webkit.org/show_bug.cgi?id=137337
+support.createHTMLDocument = ( function() {
+ var body = document.implementation.createHTMLDocument( "" ).body;
+ body.innerHTML = "<form></form><form></form>";
+ return body.childNodes.length === 2;
+} )();
+
+
+// Argument "data" should be string of html
+// context (optional): If specified, the fragment will be created in this context,
+// defaults to document
+// keepScripts (optional): If true, will include scripts passed in the html string
+jQuery.parseHTML = function( data, context, keepScripts ) {
+ if ( typeof data !== "string" ) {
+ return [];
+ }
+ if ( typeof context === "boolean" ) {
+ keepScripts = context;
+ context = false;
+ }
+
+ var base, parsed, scripts;
+
+ if ( !context ) {
+
+ // Stop scripts or inline event handlers from being executed immediately
+ // by using document.implementation
+ if ( support.createHTMLDocument ) {
+ context = document.implementation.createHTMLDocument( "" );
+
+ // Set the base href for the created document
+ // so any parsed elements with URLs
+ // are based on the document's URL (gh-2965)
+ base = context.createElement( "base" );
+ base.href = document.location.href;
+ context.head.appendChild( base );
+ } else {
+ context = document;
+ }
+ }
+
+ parsed = rsingleTag.exec( data );
+ scripts = !keepScripts && [];
+
+ // Single tag
+ if ( parsed ) {
+ return [ context.createElement( parsed[ 1 ] ) ];
+ }
+
+ parsed = buildFragment( [ data ], context, scripts );
+
+ if ( scripts && scripts.length ) {
+ jQuery( scripts ).remove();
+ }
+
+ return jQuery.merge( [], parsed.childNodes );
+};
+
+
+/**
+ * Load a url into a page
+ */
+jQuery.fn.load = function( url, params, callback ) {
+ var selector, type, response,
+ self = this,
+ off = url.indexOf( " " );
+
+ if ( off > -1 ) {
+ selector = stripAndCollapse( url.slice( off ) );
+ url = url.slice( 0, off );
+ }
+
+ // If it's a function
+ if ( jQuery.isFunction( params ) ) {
+
+ // We assume that it's the callback
+ callback = params;
+ params = undefined;
+
+ // Otherwise, build a param string
+ } else if ( params && typeof params === "object" ) {
+ type = "POST";
+ }
+
+ // If we have elements to modify, make the request
+ if ( self.length > 0 ) {
+ jQuery.ajax( {
+ url: url,
+
+ // If "type" variable is undefined, then "GET" method will be used.
+ // Make value of this field explicit since
+ // user can override it through ajaxSetup method
+ type: type || "GET",
+ dataType: "html",
+ data: params
+ } ).done( function( responseText ) {
+
+ // Save response for use in complete callback
+ response = arguments;
+
+ self.html( selector ?
+
+ // If a selector was specified, locate the right elements in a dummy div
+ // Exclude scripts to avoid IE 'Permission Denied' errors
+ jQuery( "<div>" ).append( jQuery.parseHTML( responseText ) ).find( selector ) :
+
+ // Otherwise use the full result
+ responseText );
+
+ // If the request succeeds, this function gets "data", "status", "jqXHR"
+ // but they are ignored because response was set above.
+ // If it fails, this function gets "jqXHR", "status", "error"
+ } ).always( callback && function( jqXHR, status ) {
+ self.each( function() {
+ callback.apply( this, response || [ jqXHR.responseText, status, jqXHR ] );
+ } );
+ } );
+ }
+
+ return this;
+};
+
+
+
+
+// Attach a bunch of functions for handling common AJAX events
+jQuery.each( [
+ "ajaxStart",
+ "ajaxStop",
+ "ajaxComplete",
+ "ajaxError",
+ "ajaxSuccess",
+ "ajaxSend"
+], function( i, type ) {
+ jQuery.fn[ type ] = function( fn ) {
+ return this.on( type, fn );
+ };
+} );
+
+
+
+
+jQuery.expr.pseudos.animated = function( elem ) {
+ return jQuery.grep( jQuery.timers, function( fn ) {
+ return elem === fn.elem;
+ } ).length;
+};
+
+
+
+
+/**
+ * Gets a window from an element
+ */
+function getWindow( elem ) {
+ return jQuery.isWindow( elem ) ? elem : elem.nodeType === 9 && elem.defaultView;
+}
+
+jQuery.offset = {
+ setOffset: function( elem, options, i ) {
+ var curPosition, curLeft, curCSSTop, curTop, curOffset, curCSSLeft, calculatePosition,
+ position = jQuery.css( elem, "position" ),
+ curElem = jQuery( elem ),
+ props = {};
+
+ // Set position first, in-case top/left are set even on static elem
+ if ( position === "static" ) {
+ elem.style.position = "relative";
+ }
+
+ curOffset = curElem.offset();
+ curCSSTop = jQuery.css( elem, "top" );
+ curCSSLeft = jQuery.css( elem, "left" );
+ calculatePosition = ( position === "absolute" || position === "fixed" ) &&
+ ( curCSSTop + curCSSLeft ).indexOf( "auto" ) > -1;
+
+ // Need to be able to calculate position if either
+ // top or left is auto and position is either absolute or fixed
+ if ( calculatePosition ) {
+ curPosition = curElem.position();
+ curTop = curPosition.top;
+ curLeft = curPosition.left;
+
+ } else {
+ curTop = parseFloat( curCSSTop ) || 0;
+ curLeft = parseFloat( curCSSLeft ) || 0;
+ }
+
+ if ( jQuery.isFunction( options ) ) {
+
+ // Use jQuery.extend here to allow modification of coordinates argument (gh-1848)
+ options = options.call( elem, i, jQuery.extend( {}, curOffset ) );
+ }
+
+ if ( options.top != null ) {
+ props.top = ( options.top - curOffset.top ) + curTop;
+ }
+ if ( options.left != null ) {
+ props.left = ( options.left - curOffset.left ) + curLeft;
+ }
+
+ if ( "using" in options ) {
+ options.using.call( elem, props );
+
+ } else {
+ curElem.css( props );
+ }
+ }
+};
+
+jQuery.fn.extend( {
+ offset: function( options ) {
+
+ // Preserve chaining for setter
+ if ( arguments.length ) {
+ return options === undefined ?
+ this :
+ this.each( function( i ) {
+ jQuery.offset.setOffset( this, options, i );
+ } );
+ }
+
+ var docElem, win, rect, doc,
+ elem = this[ 0 ];
+
+ if ( !elem ) {
+ return;
+ }
+
+ // Support: IE <=11 only
+ // Running getBoundingClientRect on a
+ // disconnected node in IE throws an error
+ if ( !elem.getClientRects().length ) {
+ return { top: 0, left: 0 };
+ }
+
+ rect = elem.getBoundingClientRect();
+
+ // Make sure element is not hidden (display: none)
+ if ( rect.width || rect.height ) {
+ doc = elem.ownerDocument;
+ win = getWindow( doc );
+ docElem = doc.documentElement;
+
+ return {
+ top: rect.top + win.pageYOffset - docElem.clientTop,
+ left: rect.left + win.pageXOffset - docElem.clientLeft
+ };
+ }
+
+ // Return zeros for disconnected and hidden elements (gh-2310)
+ return rect;
+ },
+
+ position: function() {
+ if ( !this[ 0 ] ) {
+ return;
+ }
+
+ var offsetParent, offset,
+ elem = this[ 0 ],
+ parentOffset = { top: 0, left: 0 };
+
+ // Fixed elements are offset from window (parentOffset = {top:0, left: 0},
+ // because it is its only offset parent
+ if ( jQuery.css( elem, "position" ) === "fixed" ) {
+
+ // Assume getBoundingClientRect is there when computed position is fixed
+ offset = elem.getBoundingClientRect();
+
+ } else {
+
+ // Get *real* offsetParent
+ offsetParent = this.offsetParent();
+
+ // Get correct offsets
+ offset = this.offset();
+ if ( !jQuery.nodeName( offsetParent[ 0 ], "html" ) ) {
+ parentOffset = offsetParent.offset();
+ }
+
+ // Add offsetParent borders
+ parentOffset = {
+ top: parentOffset.top + jQuery.css( offsetParent[ 0 ], "borderTopWidth", true ),
+ left: parentOffset.left + jQuery.css( offsetParent[ 0 ], "borderLeftWidth", true )
+ };
+ }
+
+ // Subtract parent offsets and element margins
+ return {
+ top: offset.top - parentOffset.top - jQuery.css( elem, "marginTop", true ),
+ left: offset.left - parentOffset.left - jQuery.css( elem, "marginLeft", true )
+ };
+ },
+
+ // This method will return documentElement in the following cases:
+ // 1) For the element inside the iframe without offsetParent, this method will return
+ // documentElement of the parent window
+ // 2) For the hidden or detached element
+ // 3) For body or html element, i.e. in case of the html node - it will return itself
+ //
+ // but those exceptions were never presented as a real life use-cases
+ // and might be considered as more preferable results.
+ //
+ // This logic, however, is not guaranteed and can change at any point in the future
+ offsetParent: function() {
+ return this.map( function() {
+ var offsetParent = this.offsetParent;
+
+ while ( offsetParent && jQuery.css( offsetParent, "position" ) === "static" ) {
+ offsetParent = offsetParent.offsetParent;
+ }
+
+ return offsetParent || documentElement;
+ } );
+ }
+} );
+
+// Create scrollLeft and scrollTop methods
+jQuery.each( { scrollLeft: "pageXOffset", scrollTop: "pageYOffset" }, function( method, prop ) {
+ var top = "pageYOffset" === prop;
+
+ jQuery.fn[ method ] = function( val ) {
+ return access( this, function( elem, method, val ) {
+ var win = getWindow( elem );
+
+ if ( val === undefined ) {
+ return win ? win[ prop ] : elem[ method ];
+ }
+
+ if ( win ) {
+ win.scrollTo(
+ !top ? val : win.pageXOffset,
+ top ? val : win.pageYOffset
+ );
+
+ } else {
+ elem[ method ] = val;
+ }
+ }, method, val, arguments.length );
+ };
+} );
+
+// Support: Safari <=7 - 9.1, Chrome <=37 - 49
+// Add the top/left cssHooks using jQuery.fn.position
+// Webkit bug: https://bugs.webkit.org/show_bug.cgi?id=29084
+// Blink bug: https://bugs.chromium.org/p/chromium/issues/detail?id=589347
+// getComputedStyle returns percent when specified for top/left/bottom/right;
+// rather than make the css module depend on the offset module, just check for it here
+jQuery.each( [ "top", "left" ], function( i, prop ) {
+ jQuery.cssHooks[ prop ] = addGetHookIf( support.pixelPosition,
+ function( elem, computed ) {
+ if ( computed ) {
+ computed = curCSS( elem, prop );
+
+ // If curCSS returns percentage, fallback to offset
+ return rnumnonpx.test( computed ) ?
+ jQuery( elem ).position()[ prop ] + "px" :
+ computed;
+ }
+ }
+ );
+} );
+
+
+// Create innerHeight, innerWidth, height, width, outerHeight and outerWidth methods
+jQuery.each( { Height: "height", Width: "width" }, function( name, type ) {
+ jQuery.each( { padding: "inner" + name, content: type, "": "outer" + name },
+ function( defaultExtra, funcName ) {
+
+ // Margin is only for outerHeight, outerWidth
+ jQuery.fn[ funcName ] = function( margin, value ) {
+ var chainable = arguments.length && ( defaultExtra || typeof margin !== "boolean" ),
+ extra = defaultExtra || ( margin === true || value === true ? "margin" : "border" );
+
+ return access( this, function( elem, type, value ) {
+ var doc;
+
+ if ( jQuery.isWindow( elem ) ) {
+
+ // $( window ).outerWidth/Height return w/h including scrollbars (gh-1729)
+ return funcName.indexOf( "outer" ) === 0 ?
+ elem[ "inner" + name ] :
+ elem.document.documentElement[ "client" + name ];
+ }
+
+ // Get document width or height
+ if ( elem.nodeType === 9 ) {
+ doc = elem.documentElement;
+
+ // Either scroll[Width/Height] or offset[Width/Height] or client[Width/Height],
+ // whichever is greatest
+ return Math.max(
+ elem.body[ "scroll" + name ], doc[ "scroll" + name ],
+ elem.body[ "offset" + name ], doc[ "offset" + name ],
+ doc[ "client" + name ]
+ );
+ }
+
+ return value === undefined ?
+
+ // Get width or height on the element, requesting but not forcing parseFloat
+ jQuery.css( elem, type, extra ) :
+
+ // Set width or height on the element
+ jQuery.style( elem, type, value, extra );
+ }, type, chainable ? margin : undefined, chainable );
+ };
+ } );
+} );
+
+
+jQuery.fn.extend( {
+
+ bind: function( types, data, fn ) {
+ return this.on( types, null, data, fn );
+ },
+ unbind: function( types, fn ) {
+ return this.off( types, null, fn );
+ },
+
+ delegate: function( selector, types, data, fn ) {
+ return this.on( types, selector, data, fn );
+ },
+ undelegate: function( selector, types, fn ) {
+
+ // ( namespace ) or ( selector, types [, fn] )
+ return arguments.length === 1 ?
+ this.off( selector, "**" ) :
+ this.off( types, selector || "**", fn );
+ }
+} );
+
+jQuery.parseJSON = JSON.parse;
+
+
+
+
+// Register as a named AMD module, since jQuery can be concatenated with other
+// files that may use define, but not via a proper concatenation script that
+// understands anonymous AMD modules. A named AMD is safest and most robust
+// way to register. Lowercase jquery is used because AMD module names are
+// derived from file names, and jQuery is normally delivered in a lowercase
+// file name. Do this after creating the global so that if an AMD module wants
+// to call noConflict to hide this version of jQuery, it will work.
+
+// Note that for maximum portability, libraries that are not jQuery should
+// declare themselves as anonymous modules, and avoid setting a global if an
+// AMD loader is present. jQuery is a special case. For more information, see
+// https://github.com/jrburke/requirejs/wiki/Updating-existing-libraries#wiki-anon
+
+if ( typeof define === "function" && define.amd ) {
+ define( "jquery", [], function() {
+ return jQuery;
+ } );
+}
+
+
+
+
+var
+
+ // Map over jQuery in case of overwrite
+ _jQuery = window.jQuery,
+
+ // Map over the $ in case of overwrite
+ _$ = window.$;
+
+jQuery.noConflict = function( deep ) {
+ if ( window.$ === jQuery ) {
+ window.$ = _$;
+ }
+
+ if ( deep && window.jQuery === jQuery ) {
+ window.jQuery = _jQuery;
+ }
+
+ return jQuery;
+};
+
+// Expose jQuery and $ identifiers, even in AMD
+// (#7102#comment:10, https://github.com/jquery/jquery/pull/557)
+// and CommonJS for browser emulators (#13566)
+if ( !noGlobal ) {
+ window.jQuery = window.$ = jQuery;
+}
+
+
+
+
+
+return jQuery;
+} );
--- /dev/null
+/*! jQuery v3.1.1 | (c) jQuery Foundation | jquery.org/license */
+!function(a,b){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=a.document?b(a,!0):function(a){if(!a.document)throw new Error("jQuery requires a window with a document");return b(a)}:b(a)}("undefined"!=typeof window?window:this,function(a,b){"use strict";var c=[],d=a.document,e=Object.getPrototypeOf,f=c.slice,g=c.concat,h=c.push,i=c.indexOf,j={},k=j.toString,l=j.hasOwnProperty,m=l.toString,n=m.call(Object),o={};function p(a,b){b=b||d;var c=b.createElement("script");c.text=a,b.head.appendChild(c).parentNode.removeChild(c)}var q="3.1.1",r=function(a,b){return new r.fn.init(a,b)},s=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,t=/^-ms-/,u=/-([a-z])/g,v=function(a,b){return b.toUpperCase()};r.fn=r.prototype={jquery:q,constructor:r,length:0,toArray:function(){return f.call(this)},get:function(a){return null==a?f.call(this):a<0?this[a+this.length]:this[a]},pushStack:function(a){var b=r.merge(this.constructor(),a);return b.prevObject=this,b},each:function(a){return r.each(this,a)},map:function(a){return this.pushStack(r.map(this,function(b,c){return a.call(b,c,b)}))},slice:function(){return this.pushStack(f.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(a){var b=this.length,c=+a+(a<0?b:0);return this.pushStack(c>=0&&c<b?[this[c]]:[])},end:function(){return this.prevObject||this.constructor()},push:h,sort:c.sort,splice:c.splice},r.extend=r.fn.extend=function(){var a,b,c,d,e,f,g=arguments[0]||{},h=1,i=arguments.length,j=!1;for("boolean"==typeof g&&(j=g,g=arguments[h]||{},h++),"object"==typeof g||r.isFunction(g)||(g={}),h===i&&(g=this,h--);h<i;h++)if(null!=(a=arguments[h]))for(b in a)c=g[b],d=a[b],g!==d&&(j&&d&&(r.isPlainObject(d)||(e=r.isArray(d)))?(e?(e=!1,f=c&&r.isArray(c)?c:[]):f=c&&r.isPlainObject(c)?c:{},g[b]=r.extend(j,f,d)):void 0!==d&&(g[b]=d));return g},r.extend({expando:"jQuery"+(q+Math.random()).replace(/\D/g,""),isReady:!0,error:function(a){throw new Error(a)},noop:function(){},isFunction:function(a){return"function"===r.type(a)},isArray:Array.isArray,isWindow:function(a){return null!=a&&a===a.window},isNumeric:function(a){var b=r.type(a);return("number"===b||"string"===b)&&!isNaN(a-parseFloat(a))},isPlainObject:function(a){var b,c;return!(!a||"[object Object]"!==k.call(a))&&(!(b=e(a))||(c=l.call(b,"constructor")&&b.constructor,"function"==typeof c&&m.call(c)===n))},isEmptyObject:function(a){var b;for(b in a)return!1;return!0},type:function(a){return null==a?a+"":"object"==typeof a||"function"==typeof a?j[k.call(a)]||"object":typeof a},globalEval:function(a){p(a)},camelCase:function(a){return a.replace(t,"ms-").replace(u,v)},nodeName:function(a,b){return a.nodeName&&a.nodeName.toLowerCase()===b.toLowerCase()},each:function(a,b){var c,d=0;if(w(a)){for(c=a.length;d<c;d++)if(b.call(a[d],d,a[d])===!1)break}else for(d in a)if(b.call(a[d],d,a[d])===!1)break;return a},trim:function(a){return null==a?"":(a+"").replace(s,"")},makeArray:function(a,b){var c=b||[];return null!=a&&(w(Object(a))?r.merge(c,"string"==typeof a?[a]:a):h.call(c,a)),c},inArray:function(a,b,c){return null==b?-1:i.call(b,a,c)},merge:function(a,b){for(var c=+b.length,d=0,e=a.length;d<c;d++)a[e++]=b[d];return a.length=e,a},grep:function(a,b,c){for(var d,e=[],f=0,g=a.length,h=!c;f<g;f++)d=!b(a[f],f),d!==h&&e.push(a[f]);return e},map:function(a,b,c){var d,e,f=0,h=[];if(w(a))for(d=a.length;f<d;f++)e=b(a[f],f,c),null!=e&&h.push(e);else for(f in a)e=b(a[f],f,c),null!=e&&h.push(e);return g.apply([],h)},guid:1,proxy:function(a,b){var c,d,e;if("string"==typeof b&&(c=a[b],b=a,a=c),r.isFunction(a))return d=f.call(arguments,2),e=function(){return a.apply(b||this,d.concat(f.call(arguments)))},e.guid=a.guid=a.guid||r.guid++,e},now:Date.now,support:o}),"function"==typeof Symbol&&(r.fn[Symbol.iterator]=c[Symbol.iterator]),r.each("Boolean Number String Function Array Date RegExp Object Error Symbol".split(" "),function(a,b){j["[object "+b+"]"]=b.toLowerCase()});function w(a){var b=!!a&&"length"in a&&a.length,c=r.type(a);return"function"!==c&&!r.isWindow(a)&&("array"===c||0===b||"number"==typeof b&&b>0&&b-1 in a)}var x=function(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u="sizzle"+1*new Date,v=a.document,w=0,x=0,y=ha(),z=ha(),A=ha(),B=function(a,b){return a===b&&(l=!0),0},C={}.hasOwnProperty,D=[],E=D.pop,F=D.push,G=D.push,H=D.slice,I=function(a,b){for(var c=0,d=a.length;c<d;c++)if(a[c]===b)return c;return-1},J="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",K="[\\x20\\t\\r\\n\\f]",L="(?:\\\\.|[\\w-]|[^\0-\\xa0])+",M="\\["+K+"*("+L+")(?:"+K+"*([*^$|!~]?=)"+K+"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+L+"))|)"+K+"*\\]",N=":("+L+")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|"+M+")*)|.*)\\)|)",O=new RegExp(K+"+","g"),P=new RegExp("^"+K+"+|((?:^|[^\\\\])(?:\\\\.)*)"+K+"+$","g"),Q=new RegExp("^"+K+"*,"+K+"*"),R=new RegExp("^"+K+"*([>+~]|"+K+")"+K+"*"),S=new RegExp("="+K+"*([^\\]'\"]*?)"+K+"*\\]","g"),T=new RegExp(N),U=new RegExp("^"+L+"$"),V={ID:new RegExp("^#("+L+")"),CLASS:new RegExp("^\\.("+L+")"),TAG:new RegExp("^("+L+"|[*])"),ATTR:new RegExp("^"+M),PSEUDO:new RegExp("^"+N),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+K+"*(even|odd|(([+-]|)(\\d*)n|)"+K+"*(?:([+-]|)"+K+"*(\\d+)|))"+K+"*\\)|)","i"),bool:new RegExp("^(?:"+J+")$","i"),needsContext:new RegExp("^"+K+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+K+"*((?:-\\d)?\\d*)"+K+"*\\)|)(?=[^-]|$)","i")},W=/^(?:input|select|textarea|button)$/i,X=/^h\d$/i,Y=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,$=/[+~]/,_=new RegExp("\\\\([\\da-f]{1,6}"+K+"?|("+K+")|.)","ig"),aa=function(a,b,c){var d="0x"+b-65536;return d!==d||c?b:d<0?String.fromCharCode(d+65536):String.fromCharCode(d>>10|55296,1023&d|56320)},ba=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ca=function(a,b){return b?"\0"===a?"\ufffd":a.slice(0,-1)+"\\"+a.charCodeAt(a.length-1).toString(16)+" ":"\\"+a},da=function(){m()},ea=ta(function(a){return a.disabled===!0&&("form"in a||"label"in a)},{dir:"parentNode",next:"legend"});try{G.apply(D=H.call(v.childNodes),v.childNodes),D[v.childNodes.length].nodeType}catch(fa){G={apply:D.length?function(a,b){F.apply(a,H.call(b))}:function(a,b){var c=a.length,d=0;while(a[c++]=b[d++]);a.length=c-1}}}function ga(a,b,d,e){var f,h,j,k,l,o,r,s=b&&b.ownerDocument,w=b?b.nodeType:9;if(d=d||[],"string"!=typeof a||!a||1!==w&&9!==w&&11!==w)return d;if(!e&&((b?b.ownerDocument||b:v)!==n&&m(b),b=b||n,p)){if(11!==w&&(l=Z.exec(a)))if(f=l[1]){if(9===w){if(!(j=b.getElementById(f)))return d;if(j.id===f)return d.push(j),d}else if(s&&(j=s.getElementById(f))&&t(b,j)&&j.id===f)return d.push(j),d}else{if(l[2])return G.apply(d,b.getElementsByTagName(a)),d;if((f=l[3])&&c.getElementsByClassName&&b.getElementsByClassName)return G.apply(d,b.getElementsByClassName(f)),d}if(c.qsa&&!A[a+" "]&&(!q||!q.test(a))){if(1!==w)s=b,r=a;else if("object"!==b.nodeName.toLowerCase()){(k=b.getAttribute("id"))?k=k.replace(ba,ca):b.setAttribute("id",k=u),o=g(a),h=o.length;while(h--)o[h]="#"+k+" "+sa(o[h]);r=o.join(","),s=$.test(a)&&qa(b.parentNode)||b}if(r)try{return G.apply(d,s.querySelectorAll(r)),d}catch(x){}finally{k===u&&b.removeAttribute("id")}}}return i(a.replace(P,"$1"),b,d,e)}function ha(){var a=[];function b(c,e){return a.push(c+" ")>d.cacheLength&&delete b[a.shift()],b[c+" "]=e}return b}function ia(a){return a[u]=!0,a}function ja(a){var b=n.createElement("fieldset");try{return!!a(b)}catch(c){return!1}finally{b.parentNode&&b.parentNode.removeChild(b),b=null}}function ka(a,b){var c=a.split("|"),e=c.length;while(e--)d.attrHandle[c[e]]=b}function la(a,b){var c=b&&a,d=c&&1===a.nodeType&&1===b.nodeType&&a.sourceIndex-b.sourceIndex;if(d)return d;if(c)while(c=c.nextSibling)if(c===b)return-1;return a?1:-1}function ma(a){return function(b){var c=b.nodeName.toLowerCase();return"input"===c&&b.type===a}}function na(a){return function(b){var c=b.nodeName.toLowerCase();return("input"===c||"button"===c)&&b.type===a}}function oa(a){return function(b){return"form"in b?b.parentNode&&b.disabled===!1?"label"in b?"label"in b.parentNode?b.parentNode.disabled===a:b.disabled===a:b.isDisabled===a||b.isDisabled!==!a&&ea(b)===a:b.disabled===a:"label"in b&&b.disabled===a}}function pa(a){return ia(function(b){return b=+b,ia(function(c,d){var e,f=a([],c.length,b),g=f.length;while(g--)c[e=f[g]]&&(c[e]=!(d[e]=c[e]))})})}function qa(a){return a&&"undefined"!=typeof a.getElementsByTagName&&a}c=ga.support={},f=ga.isXML=function(a){var b=a&&(a.ownerDocument||a).documentElement;return!!b&&"HTML"!==b.nodeName},m=ga.setDocument=function(a){var b,e,g=a?a.ownerDocument||a:v;return g!==n&&9===g.nodeType&&g.documentElement?(n=g,o=n.documentElement,p=!f(n),v!==n&&(e=n.defaultView)&&e.top!==e&&(e.addEventListener?e.addEventListener("unload",da,!1):e.attachEvent&&e.attachEvent("onunload",da)),c.attributes=ja(function(a){return a.className="i",!a.getAttribute("className")}),c.getElementsByTagName=ja(function(a){return a.appendChild(n.createComment("")),!a.getElementsByTagName("*").length}),c.getElementsByClassName=Y.test(n.getElementsByClassName),c.getById=ja(function(a){return o.appendChild(a).id=u,!n.getElementsByName||!n.getElementsByName(u).length}),c.getById?(d.filter.ID=function(a){var b=a.replace(_,aa);return function(a){return a.getAttribute("id")===b}},d.find.ID=function(a,b){if("undefined"!=typeof b.getElementById&&p){var c=b.getElementById(a);return c?[c]:[]}}):(d.filter.ID=function(a){var b=a.replace(_,aa);return function(a){var c="undefined"!=typeof a.getAttributeNode&&a.getAttributeNode("id");return c&&c.value===b}},d.find.ID=function(a,b){if("undefined"!=typeof b.getElementById&&p){var c,d,e,f=b.getElementById(a);if(f){if(c=f.getAttributeNode("id"),c&&c.value===a)return[f];e=b.getElementsByName(a),d=0;while(f=e[d++])if(c=f.getAttributeNode("id"),c&&c.value===a)return[f]}return[]}}),d.find.TAG=c.getElementsByTagName?function(a,b){return"undefined"!=typeof b.getElementsByTagName?b.getElementsByTagName(a):c.qsa?b.querySelectorAll(a):void 0}:function(a,b){var c,d=[],e=0,f=b.getElementsByTagName(a);if("*"===a){while(c=f[e++])1===c.nodeType&&d.push(c);return d}return f},d.find.CLASS=c.getElementsByClassName&&function(a,b){if("undefined"!=typeof b.getElementsByClassName&&p)return b.getElementsByClassName(a)},r=[],q=[],(c.qsa=Y.test(n.querySelectorAll))&&(ja(function(a){o.appendChild(a).innerHTML="<a id='"+u+"'></a><select id='"+u+"-\r\\' msallowcapture=''><option selected=''></option></select>",a.querySelectorAll("[msallowcapture^='']").length&&q.push("[*^$]="+K+"*(?:''|\"\")"),a.querySelectorAll("[selected]").length||q.push("\\["+K+"*(?:value|"+J+")"),a.querySelectorAll("[id~="+u+"-]").length||q.push("~="),a.querySelectorAll(":checked").length||q.push(":checked"),a.querySelectorAll("a#"+u+"+*").length||q.push(".#.+[+~]")}),ja(function(a){a.innerHTML="<a href='' disabled='disabled'></a><select disabled='disabled'><option/></select>";var b=n.createElement("input");b.setAttribute("type","hidden"),a.appendChild(b).setAttribute("name","D"),a.querySelectorAll("[name=d]").length&&q.push("name"+K+"*[*^$|!~]?="),2!==a.querySelectorAll(":enabled").length&&q.push(":enabled",":disabled"),o.appendChild(a).disabled=!0,2!==a.querySelectorAll(":disabled").length&&q.push(":enabled",":disabled"),a.querySelectorAll("*,:x"),q.push(",.*:")})),(c.matchesSelector=Y.test(s=o.matches||o.webkitMatchesSelector||o.mozMatchesSelector||o.oMatchesSelector||o.msMatchesSelector))&&ja(function(a){c.disconnectedMatch=s.call(a,"*"),s.call(a,"[s!='']:x"),r.push("!=",N)}),q=q.length&&new RegExp(q.join("|")),r=r.length&&new RegExp(r.join("|")),b=Y.test(o.compareDocumentPosition),t=b||Y.test(o.contains)?function(a,b){var c=9===a.nodeType?a.documentElement:a,d=b&&b.parentNode;return a===d||!(!d||1!==d.nodeType||!(c.contains?c.contains(d):a.compareDocumentPosition&&16&a.compareDocumentPosition(d)))}:function(a,b){if(b)while(b=b.parentNode)if(b===a)return!0;return!1},B=b?function(a,b){if(a===b)return l=!0,0;var d=!a.compareDocumentPosition-!b.compareDocumentPosition;return d?d:(d=(a.ownerDocument||a)===(b.ownerDocument||b)?a.compareDocumentPosition(b):1,1&d||!c.sortDetached&&b.compareDocumentPosition(a)===d?a===n||a.ownerDocument===v&&t(v,a)?-1:b===n||b.ownerDocument===v&&t(v,b)?1:k?I(k,a)-I(k,b):0:4&d?-1:1)}:function(a,b){if(a===b)return l=!0,0;var c,d=0,e=a.parentNode,f=b.parentNode,g=[a],h=[b];if(!e||!f)return a===n?-1:b===n?1:e?-1:f?1:k?I(k,a)-I(k,b):0;if(e===f)return la(a,b);c=a;while(c=c.parentNode)g.unshift(c);c=b;while(c=c.parentNode)h.unshift(c);while(g[d]===h[d])d++;return d?la(g[d],h[d]):g[d]===v?-1:h[d]===v?1:0},n):n},ga.matches=function(a,b){return ga(a,null,null,b)},ga.matchesSelector=function(a,b){if((a.ownerDocument||a)!==n&&m(a),b=b.replace(S,"='$1']"),c.matchesSelector&&p&&!A[b+" "]&&(!r||!r.test(b))&&(!q||!q.test(b)))try{var d=s.call(a,b);if(d||c.disconnectedMatch||a.document&&11!==a.document.nodeType)return d}catch(e){}return ga(b,n,null,[a]).length>0},ga.contains=function(a,b){return(a.ownerDocument||a)!==n&&m(a),t(a,b)},ga.attr=function(a,b){(a.ownerDocument||a)!==n&&m(a);var e=d.attrHandle[b.toLowerCase()],f=e&&C.call(d.attrHandle,b.toLowerCase())?e(a,b,!p):void 0;return void 0!==f?f:c.attributes||!p?a.getAttribute(b):(f=a.getAttributeNode(b))&&f.specified?f.value:null},ga.escape=function(a){return(a+"").replace(ba,ca)},ga.error=function(a){throw new Error("Syntax error, unrecognized expression: "+a)},ga.uniqueSort=function(a){var b,d=[],e=0,f=0;if(l=!c.detectDuplicates,k=!c.sortStable&&a.slice(0),a.sort(B),l){while(b=a[f++])b===a[f]&&(e=d.push(f));while(e--)a.splice(d[e],1)}return k=null,a},e=ga.getText=function(a){var b,c="",d=0,f=a.nodeType;if(f){if(1===f||9===f||11===f){if("string"==typeof a.textContent)return a.textContent;for(a=a.firstChild;a;a=a.nextSibling)c+=e(a)}else if(3===f||4===f)return a.nodeValue}else while(b=a[d++])c+=e(b);return c},d=ga.selectors={cacheLength:50,createPseudo:ia,match:V,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(a){return a[1]=a[1].replace(_,aa),a[3]=(a[3]||a[4]||a[5]||"").replace(_,aa),"~="===a[2]&&(a[3]=" "+a[3]+" "),a.slice(0,4)},CHILD:function(a){return a[1]=a[1].toLowerCase(),"nth"===a[1].slice(0,3)?(a[3]||ga.error(a[0]),a[4]=+(a[4]?a[5]+(a[6]||1):2*("even"===a[3]||"odd"===a[3])),a[5]=+(a[7]+a[8]||"odd"===a[3])):a[3]&&ga.error(a[0]),a},PSEUDO:function(a){var b,c=!a[6]&&a[2];return V.CHILD.test(a[0])?null:(a[3]?a[2]=a[4]||a[5]||"":c&&T.test(c)&&(b=g(c,!0))&&(b=c.indexOf(")",c.length-b)-c.length)&&(a[0]=a[0].slice(0,b),a[2]=c.slice(0,b)),a.slice(0,3))}},filter:{TAG:function(a){var b=a.replace(_,aa).toLowerCase();return"*"===a?function(){return!0}:function(a){return a.nodeName&&a.nodeName.toLowerCase()===b}},CLASS:function(a){var b=y[a+" "];return b||(b=new RegExp("(^|"+K+")"+a+"("+K+"|$)"))&&y(a,function(a){return b.test("string"==typeof a.className&&a.className||"undefined"!=typeof a.getAttribute&&a.getAttribute("class")||"")})},ATTR:function(a,b,c){return function(d){var e=ga.attr(d,a);return null==e?"!="===b:!b||(e+="","="===b?e===c:"!="===b?e!==c:"^="===b?c&&0===e.indexOf(c):"*="===b?c&&e.indexOf(c)>-1:"$="===b?c&&e.slice(-c.length)===c:"~="===b?(" "+e.replace(O," ")+" ").indexOf(c)>-1:"|="===b&&(e===c||e.slice(0,c.length+1)===c+"-"))}},CHILD:function(a,b,c,d,e){var f="nth"!==a.slice(0,3),g="last"!==a.slice(-4),h="of-type"===b;return 1===d&&0===e?function(a){return!!a.parentNode}:function(b,c,i){var j,k,l,m,n,o,p=f!==g?"nextSibling":"previousSibling",q=b.parentNode,r=h&&b.nodeName.toLowerCase(),s=!i&&!h,t=!1;if(q){if(f){while(p){m=b;while(m=m[p])if(h?m.nodeName.toLowerCase()===r:1===m.nodeType)return!1;o=p="only"===a&&!o&&"nextSibling"}return!0}if(o=[g?q.firstChild:q.lastChild],g&&s){m=q,l=m[u]||(m[u]={}),k=l[m.uniqueID]||(l[m.uniqueID]={}),j=k[a]||[],n=j[0]===w&&j[1],t=n&&j[2],m=n&&q.childNodes[n];while(m=++n&&m&&m[p]||(t=n=0)||o.pop())if(1===m.nodeType&&++t&&m===b){k[a]=[w,n,t];break}}else if(s&&(m=b,l=m[u]||(m[u]={}),k=l[m.uniqueID]||(l[m.uniqueID]={}),j=k[a]||[],n=j[0]===w&&j[1],t=n),t===!1)while(m=++n&&m&&m[p]||(t=n=0)||o.pop())if((h?m.nodeName.toLowerCase()===r:1===m.nodeType)&&++t&&(s&&(l=m[u]||(m[u]={}),k=l[m.uniqueID]||(l[m.uniqueID]={}),k[a]=[w,t]),m===b))break;return t-=e,t===d||t%d===0&&t/d>=0}}},PSEUDO:function(a,b){var c,e=d.pseudos[a]||d.setFilters[a.toLowerCase()]||ga.error("unsupported pseudo: "+a);return e[u]?e(b):e.length>1?(c=[a,a,"",b],d.setFilters.hasOwnProperty(a.toLowerCase())?ia(function(a,c){var d,f=e(a,b),g=f.length;while(g--)d=I(a,f[g]),a[d]=!(c[d]=f[g])}):function(a){return e(a,0,c)}):e}},pseudos:{not:ia(function(a){var b=[],c=[],d=h(a.replace(P,"$1"));return d[u]?ia(function(a,b,c,e){var f,g=d(a,null,e,[]),h=a.length;while(h--)(f=g[h])&&(a[h]=!(b[h]=f))}):function(a,e,f){return b[0]=a,d(b,null,f,c),b[0]=null,!c.pop()}}),has:ia(function(a){return function(b){return ga(a,b).length>0}}),contains:ia(function(a){return a=a.replace(_,aa),function(b){return(b.textContent||b.innerText||e(b)).indexOf(a)>-1}}),lang:ia(function(a){return U.test(a||"")||ga.error("unsupported lang: "+a),a=a.replace(_,aa).toLowerCase(),function(b){var c;do if(c=p?b.lang:b.getAttribute("xml:lang")||b.getAttribute("lang"))return c=c.toLowerCase(),c===a||0===c.indexOf(a+"-");while((b=b.parentNode)&&1===b.nodeType);return!1}}),target:function(b){var c=a.location&&a.location.hash;return c&&c.slice(1)===b.id},root:function(a){return a===o},focus:function(a){return a===n.activeElement&&(!n.hasFocus||n.hasFocus())&&!!(a.type||a.href||~a.tabIndex)},enabled:oa(!1),disabled:oa(!0),checked:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&!!a.checked||"option"===b&&!!a.selected},selected:function(a){return a.parentNode&&a.parentNode.selectedIndex,a.selected===!0},empty:function(a){for(a=a.firstChild;a;a=a.nextSibling)if(a.nodeType<6)return!1;return!0},parent:function(a){return!d.pseudos.empty(a)},header:function(a){return X.test(a.nodeName)},input:function(a){return W.test(a.nodeName)},button:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&"button"===a.type||"button"===b},text:function(a){var b;return"input"===a.nodeName.toLowerCase()&&"text"===a.type&&(null==(b=a.getAttribute("type"))||"text"===b.toLowerCase())},first:pa(function(){return[0]}),last:pa(function(a,b){return[b-1]}),eq:pa(function(a,b,c){return[c<0?c+b:c]}),even:pa(function(a,b){for(var c=0;c<b;c+=2)a.push(c);return a}),odd:pa(function(a,b){for(var c=1;c<b;c+=2)a.push(c);return a}),lt:pa(function(a,b,c){for(var d=c<0?c+b:c;--d>=0;)a.push(d);return a}),gt:pa(function(a,b,c){for(var d=c<0?c+b:c;++d<b;)a.push(d);return a})}},d.pseudos.nth=d.pseudos.eq;for(b in{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})d.pseudos[b]=ma(b);for(b in{submit:!0,reset:!0})d.pseudos[b]=na(b);function ra(){}ra.prototype=d.filters=d.pseudos,d.setFilters=new ra,g=ga.tokenize=function(a,b){var c,e,f,g,h,i,j,k=z[a+" "];if(k)return b?0:k.slice(0);h=a,i=[],j=d.preFilter;while(h){c&&!(e=Q.exec(h))||(e&&(h=h.slice(e[0].length)||h),i.push(f=[])),c=!1,(e=R.exec(h))&&(c=e.shift(),f.push({value:c,type:e[0].replace(P," ")}),h=h.slice(c.length));for(g in d.filter)!(e=V[g].exec(h))||j[g]&&!(e=j[g](e))||(c=e.shift(),f.push({value:c,type:g,matches:e}),h=h.slice(c.length));if(!c)break}return b?h.length:h?ga.error(a):z(a,i).slice(0)};function sa(a){for(var b=0,c=a.length,d="";b<c;b++)d+=a[b].value;return d}function ta(a,b,c){var d=b.dir,e=b.next,f=e||d,g=c&&"parentNode"===f,h=x++;return b.first?function(b,c,e){while(b=b[d])if(1===b.nodeType||g)return a(b,c,e);return!1}:function(b,c,i){var j,k,l,m=[w,h];if(i){while(b=b[d])if((1===b.nodeType||g)&&a(b,c,i))return!0}else while(b=b[d])if(1===b.nodeType||g)if(l=b[u]||(b[u]={}),k=l[b.uniqueID]||(l[b.uniqueID]={}),e&&e===b.nodeName.toLowerCase())b=b[d]||b;else{if((j=k[f])&&j[0]===w&&j[1]===h)return m[2]=j[2];if(k[f]=m,m[2]=a(b,c,i))return!0}return!1}}function ua(a){return a.length>1?function(b,c,d){var e=a.length;while(e--)if(!a[e](b,c,d))return!1;return!0}:a[0]}function va(a,b,c){for(var d=0,e=b.length;d<e;d++)ga(a,b[d],c);return c}function wa(a,b,c,d,e){for(var f,g=[],h=0,i=a.length,j=null!=b;h<i;h++)(f=a[h])&&(c&&!c(f,d,e)||(g.push(f),j&&b.push(h)));return g}function xa(a,b,c,d,e,f){return d&&!d[u]&&(d=xa(d)),e&&!e[u]&&(e=xa(e,f)),ia(function(f,g,h,i){var j,k,l,m=[],n=[],o=g.length,p=f||va(b||"*",h.nodeType?[h]:h,[]),q=!a||!f&&b?p:wa(p,m,a,h,i),r=c?e||(f?a:o||d)?[]:g:q;if(c&&c(q,r,h,i),d){j=wa(r,n),d(j,[],h,i),k=j.length;while(k--)(l=j[k])&&(r[n[k]]=!(q[n[k]]=l))}if(f){if(e||a){if(e){j=[],k=r.length;while(k--)(l=r[k])&&j.push(q[k]=l);e(null,r=[],j,i)}k=r.length;while(k--)(l=r[k])&&(j=e?I(f,l):m[k])>-1&&(f[j]=!(g[j]=l))}}else r=wa(r===g?r.splice(o,r.length):r),e?e(null,g,r,i):G.apply(g,r)})}function ya(a){for(var b,c,e,f=a.length,g=d.relative[a[0].type],h=g||d.relative[" "],i=g?1:0,k=ta(function(a){return a===b},h,!0),l=ta(function(a){return I(b,a)>-1},h,!0),m=[function(a,c,d){var e=!g&&(d||c!==j)||((b=c).nodeType?k(a,c,d):l(a,c,d));return b=null,e}];i<f;i++)if(c=d.relative[a[i].type])m=[ta(ua(m),c)];else{if(c=d.filter[a[i].type].apply(null,a[i].matches),c[u]){for(e=++i;e<f;e++)if(d.relative[a[e].type])break;return xa(i>1&&ua(m),i>1&&sa(a.slice(0,i-1).concat({value:" "===a[i-2].type?"*":""})).replace(P,"$1"),c,i<e&&ya(a.slice(i,e)),e<f&&ya(a=a.slice(e)),e<f&&sa(a))}m.push(c)}return ua(m)}function za(a,b){var c=b.length>0,e=a.length>0,f=function(f,g,h,i,k){var l,o,q,r=0,s="0",t=f&&[],u=[],v=j,x=f||e&&d.find.TAG("*",k),y=w+=null==v?1:Math.random()||.1,z=x.length;for(k&&(j=g===n||g||k);s!==z&&null!=(l=x[s]);s++){if(e&&l){o=0,g||l.ownerDocument===n||(m(l),h=!p);while(q=a[o++])if(q(l,g||n,h)){i.push(l);break}k&&(w=y)}c&&((l=!q&&l)&&r--,f&&t.push(l))}if(r+=s,c&&s!==r){o=0;while(q=b[o++])q(t,u,g,h);if(f){if(r>0)while(s--)t[s]||u[s]||(u[s]=E.call(i));u=wa(u)}G.apply(i,u),k&&!f&&u.length>0&&r+b.length>1&&ga.uniqueSort(i)}return k&&(w=y,j=v),t};return c?ia(f):f}return h=ga.compile=function(a,b){var c,d=[],e=[],f=A[a+" "];if(!f){b||(b=g(a)),c=b.length;while(c--)f=ya(b[c]),f[u]?d.push(f):e.push(f);f=A(a,za(e,d)),f.selector=a}return f},i=ga.select=function(a,b,c,e){var f,i,j,k,l,m="function"==typeof a&&a,n=!e&&g(a=m.selector||a);if(c=c||[],1===n.length){if(i=n[0]=n[0].slice(0),i.length>2&&"ID"===(j=i[0]).type&&9===b.nodeType&&p&&d.relative[i[1].type]){if(b=(d.find.ID(j.matches[0].replace(_,aa),b)||[])[0],!b)return c;m&&(b=b.parentNode),a=a.slice(i.shift().value.length)}f=V.needsContext.test(a)?0:i.length;while(f--){if(j=i[f],d.relative[k=j.type])break;if((l=d.find[k])&&(e=l(j.matches[0].replace(_,aa),$.test(i[0].type)&&qa(b.parentNode)||b))){if(i.splice(f,1),a=e.length&&sa(i),!a)return G.apply(c,e),c;break}}}return(m||h(a,n))(e,b,!p,c,!b||$.test(a)&&qa(b.parentNode)||b),c},c.sortStable=u.split("").sort(B).join("")===u,c.detectDuplicates=!!l,m(),c.sortDetached=ja(function(a){return 1&a.compareDocumentPosition(n.createElement("fieldset"))}),ja(function(a){return a.innerHTML="<a href='#'></a>","#"===a.firstChild.getAttribute("href")})||ka("type|href|height|width",function(a,b,c){if(!c)return a.getAttribute(b,"type"===b.toLowerCase()?1:2)}),c.attributes&&ja(function(a){return a.innerHTML="<input/>",a.firstChild.setAttribute("value",""),""===a.firstChild.getAttribute("value")})||ka("value",function(a,b,c){if(!c&&"input"===a.nodeName.toLowerCase())return a.defaultValue}),ja(function(a){return null==a.getAttribute("disabled")})||ka(J,function(a,b,c){var d;if(!c)return a[b]===!0?b.toLowerCase():(d=a.getAttributeNode(b))&&d.specified?d.value:null}),ga}(a);r.find=x,r.expr=x.selectors,r.expr[":"]=r.expr.pseudos,r.uniqueSort=r.unique=x.uniqueSort,r.text=x.getText,r.isXMLDoc=x.isXML,r.contains=x.contains,r.escapeSelector=x.escape;var y=function(a,b,c){var d=[],e=void 0!==c;while((a=a[b])&&9!==a.nodeType)if(1===a.nodeType){if(e&&r(a).is(c))break;d.push(a)}return d},z=function(a,b){for(var c=[];a;a=a.nextSibling)1===a.nodeType&&a!==b&&c.push(a);return c},A=r.expr.match.needsContext,B=/^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i,C=/^.[^:#\[\.,]*$/;function D(a,b,c){return r.isFunction(b)?r.grep(a,function(a,d){return!!b.call(a,d,a)!==c}):b.nodeType?r.grep(a,function(a){return a===b!==c}):"string"!=typeof b?r.grep(a,function(a){return i.call(b,a)>-1!==c}):C.test(b)?r.filter(b,a,c):(b=r.filter(b,a),r.grep(a,function(a){return i.call(b,a)>-1!==c&&1===a.nodeType}))}r.filter=function(a,b,c){var d=b[0];return c&&(a=":not("+a+")"),1===b.length&&1===d.nodeType?r.find.matchesSelector(d,a)?[d]:[]:r.find.matches(a,r.grep(b,function(a){return 1===a.nodeType}))},r.fn.extend({find:function(a){var b,c,d=this.length,e=this;if("string"!=typeof a)return this.pushStack(r(a).filter(function(){for(b=0;b<d;b++)if(r.contains(e[b],this))return!0}));for(c=this.pushStack([]),b=0;b<d;b++)r.find(a,e[b],c);return d>1?r.uniqueSort(c):c},filter:function(a){return this.pushStack(D(this,a||[],!1))},not:function(a){return this.pushStack(D(this,a||[],!0))},is:function(a){return!!D(this,"string"==typeof a&&A.test(a)?r(a):a||[],!1).length}});var E,F=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/,G=r.fn.init=function(a,b,c){var e,f;if(!a)return this;if(c=c||E,"string"==typeof a){if(e="<"===a[0]&&">"===a[a.length-1]&&a.length>=3?[null,a,null]:F.exec(a),!e||!e[1]&&b)return!b||b.jquery?(b||c).find(a):this.constructor(b).find(a);if(e[1]){if(b=b instanceof r?b[0]:b,r.merge(this,r.parseHTML(e[1],b&&b.nodeType?b.ownerDocument||b:d,!0)),B.test(e[1])&&r.isPlainObject(b))for(e in b)r.isFunction(this[e])?this[e](b[e]):this.attr(e,b[e]);return this}return f=d.getElementById(e[2]),f&&(this[0]=f,this.length=1),this}return a.nodeType?(this[0]=a,this.length=1,this):r.isFunction(a)?void 0!==c.ready?c.ready(a):a(r):r.makeArray(a,this)};G.prototype=r.fn,E=r(d);var H=/^(?:parents|prev(?:Until|All))/,I={children:!0,contents:!0,next:!0,prev:!0};r.fn.extend({has:function(a){var b=r(a,this),c=b.length;return this.filter(function(){for(var a=0;a<c;a++)if(r.contains(this,b[a]))return!0})},closest:function(a,b){var c,d=0,e=this.length,f=[],g="string"!=typeof a&&r(a);if(!A.test(a))for(;d<e;d++)for(c=this[d];c&&c!==b;c=c.parentNode)if(c.nodeType<11&&(g?g.index(c)>-1:1===c.nodeType&&r.find.matchesSelector(c,a))){f.push(c);break}return this.pushStack(f.length>1?r.uniqueSort(f):f)},index:function(a){return a?"string"==typeof a?i.call(r(a),this[0]):i.call(this,a.jquery?a[0]:a):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(a,b){return this.pushStack(r.uniqueSort(r.merge(this.get(),r(a,b))))},addBack:function(a){return this.add(null==a?this.prevObject:this.prevObject.filter(a))}});function J(a,b){while((a=a[b])&&1!==a.nodeType);return a}r.each({parent:function(a){var b=a.parentNode;return b&&11!==b.nodeType?b:null},parents:function(a){return y(a,"parentNode")},parentsUntil:function(a,b,c){return y(a,"parentNode",c)},next:function(a){return J(a,"nextSibling")},prev:function(a){return J(a,"previousSibling")},nextAll:function(a){return y(a,"nextSibling")},prevAll:function(a){return y(a,"previousSibling")},nextUntil:function(a,b,c){return y(a,"nextSibling",c)},prevUntil:function(a,b,c){return y(a,"previousSibling",c)},siblings:function(a){return z((a.parentNode||{}).firstChild,a)},children:function(a){return z(a.firstChild)},contents:function(a){return a.contentDocument||r.merge([],a.childNodes)}},function(a,b){r.fn[a]=function(c,d){var e=r.map(this,b,c);return"Until"!==a.slice(-5)&&(d=c),d&&"string"==typeof d&&(e=r.filter(d,e)),this.length>1&&(I[a]||r.uniqueSort(e),H.test(a)&&e.reverse()),this.pushStack(e)}});var K=/[^\x20\t\r\n\f]+/g;function L(a){var b={};return r.each(a.match(K)||[],function(a,c){b[c]=!0}),b}r.Callbacks=function(a){a="string"==typeof a?L(a):r.extend({},a);var b,c,d,e,f=[],g=[],h=-1,i=function(){for(e=a.once,d=b=!0;g.length;h=-1){c=g.shift();while(++h<f.length)f[h].apply(c[0],c[1])===!1&&a.stopOnFalse&&(h=f.length,c=!1)}a.memory||(c=!1),b=!1,e&&(f=c?[]:"")},j={add:function(){return f&&(c&&!b&&(h=f.length-1,g.push(c)),function d(b){r.each(b,function(b,c){r.isFunction(c)?a.unique&&j.has(c)||f.push(c):c&&c.length&&"string"!==r.type(c)&&d(c)})}(arguments),c&&!b&&i()),this},remove:function(){return r.each(arguments,function(a,b){var c;while((c=r.inArray(b,f,c))>-1)f.splice(c,1),c<=h&&h--}),this},has:function(a){return a?r.inArray(a,f)>-1:f.length>0},empty:function(){return f&&(f=[]),this},disable:function(){return e=g=[],f=c="",this},disabled:function(){return!f},lock:function(){return e=g=[],c||b||(f=c=""),this},locked:function(){return!!e},fireWith:function(a,c){return e||(c=c||[],c=[a,c.slice?c.slice():c],g.push(c),b||i()),this},fire:function(){return j.fireWith(this,arguments),this},fired:function(){return!!d}};return j};function M(a){return a}function N(a){throw a}function O(a,b,c){var d;try{a&&r.isFunction(d=a.promise)?d.call(a).done(b).fail(c):a&&r.isFunction(d=a.then)?d.call(a,b,c):b.call(void 0,a)}catch(a){c.call(void 0,a)}}r.extend({Deferred:function(b){var c=[["notify","progress",r.Callbacks("memory"),r.Callbacks("memory"),2],["resolve","done",r.Callbacks("once memory"),r.Callbacks("once memory"),0,"resolved"],["reject","fail",r.Callbacks("once memory"),r.Callbacks("once memory"),1,"rejected"]],d="pending",e={state:function(){return d},always:function(){return f.done(arguments).fail(arguments),this},"catch":function(a){return e.then(null,a)},pipe:function(){var a=arguments;return r.Deferred(function(b){r.each(c,function(c,d){var e=r.isFunction(a[d[4]])&&a[d[4]];f[d[1]](function(){var a=e&&e.apply(this,arguments);a&&r.isFunction(a.promise)?a.promise().progress(b.notify).done(b.resolve).fail(b.reject):b[d[0]+"With"](this,e?[a]:arguments)})}),a=null}).promise()},then:function(b,d,e){var f=0;function g(b,c,d,e){return function(){var h=this,i=arguments,j=function(){var a,j;if(!(b<f)){if(a=d.apply(h,i),a===c.promise())throw new TypeError("Thenable self-resolution");j=a&&("object"==typeof a||"function"==typeof a)&&a.then,r.isFunction(j)?e?j.call(a,g(f,c,M,e),g(f,c,N,e)):(f++,j.call(a,g(f,c,M,e),g(f,c,N,e),g(f,c,M,c.notifyWith))):(d!==M&&(h=void 0,i=[a]),(e||c.resolveWith)(h,i))}},k=e?j:function(){try{j()}catch(a){r.Deferred.exceptionHook&&r.Deferred.exceptionHook(a,k.stackTrace),b+1>=f&&(d!==N&&(h=void 0,i=[a]),c.rejectWith(h,i))}};b?k():(r.Deferred.getStackHook&&(k.stackTrace=r.Deferred.getStackHook()),a.setTimeout(k))}}return r.Deferred(function(a){c[0][3].add(g(0,a,r.isFunction(e)?e:M,a.notifyWith)),c[1][3].add(g(0,a,r.isFunction(b)?b:M)),c[2][3].add(g(0,a,r.isFunction(d)?d:N))}).promise()},promise:function(a){return null!=a?r.extend(a,e):e}},f={};return r.each(c,function(a,b){var g=b[2],h=b[5];e[b[1]]=g.add,h&&g.add(function(){d=h},c[3-a][2].disable,c[0][2].lock),g.add(b[3].fire),f[b[0]]=function(){return f[b[0]+"With"](this===f?void 0:this,arguments),this},f[b[0]+"With"]=g.fireWith}),e.promise(f),b&&b.call(f,f),f},when:function(a){var b=arguments.length,c=b,d=Array(c),e=f.call(arguments),g=r.Deferred(),h=function(a){return function(c){d[a]=this,e[a]=arguments.length>1?f.call(arguments):c,--b||g.resolveWith(d,e)}};if(b<=1&&(O(a,g.done(h(c)).resolve,g.reject),"pending"===g.state()||r.isFunction(e[c]&&e[c].then)))return g.then();while(c--)O(e[c],h(c),g.reject);return g.promise()}});var P=/^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;r.Deferred.exceptionHook=function(b,c){a.console&&a.console.warn&&b&&P.test(b.name)&&a.console.warn("jQuery.Deferred exception: "+b.message,b.stack,c)},r.readyException=function(b){a.setTimeout(function(){throw b})};var Q=r.Deferred();r.fn.ready=function(a){return Q.then(a)["catch"](function(a){r.readyException(a)}),this},r.extend({isReady:!1,readyWait:1,holdReady:function(a){a?r.readyWait++:r.ready(!0)},ready:function(a){(a===!0?--r.readyWait:r.isReady)||(r.isReady=!0,a!==!0&&--r.readyWait>0||Q.resolveWith(d,[r]))}}),r.ready.then=Q.then;function R(){d.removeEventListener("DOMContentLoaded",R),
+a.removeEventListener("load",R),r.ready()}"complete"===d.readyState||"loading"!==d.readyState&&!d.documentElement.doScroll?a.setTimeout(r.ready):(d.addEventListener("DOMContentLoaded",R),a.addEventListener("load",R));var S=function(a,b,c,d,e,f,g){var h=0,i=a.length,j=null==c;if("object"===r.type(c)){e=!0;for(h in c)S(a,b,h,c[h],!0,f,g)}else if(void 0!==d&&(e=!0,r.isFunction(d)||(g=!0),j&&(g?(b.call(a,d),b=null):(j=b,b=function(a,b,c){return j.call(r(a),c)})),b))for(;h<i;h++)b(a[h],c,g?d:d.call(a[h],h,b(a[h],c)));return e?a:j?b.call(a):i?b(a[0],c):f},T=function(a){return 1===a.nodeType||9===a.nodeType||!+a.nodeType};function U(){this.expando=r.expando+U.uid++}U.uid=1,U.prototype={cache:function(a){var b=a[this.expando];return b||(b={},T(a)&&(a.nodeType?a[this.expando]=b:Object.defineProperty(a,this.expando,{value:b,configurable:!0}))),b},set:function(a,b,c){var d,e=this.cache(a);if("string"==typeof b)e[r.camelCase(b)]=c;else for(d in b)e[r.camelCase(d)]=b[d];return e},get:function(a,b){return void 0===b?this.cache(a):a[this.expando]&&a[this.expando][r.camelCase(b)]},access:function(a,b,c){return void 0===b||b&&"string"==typeof b&&void 0===c?this.get(a,b):(this.set(a,b,c),void 0!==c?c:b)},remove:function(a,b){var c,d=a[this.expando];if(void 0!==d){if(void 0!==b){r.isArray(b)?b=b.map(r.camelCase):(b=r.camelCase(b),b=b in d?[b]:b.match(K)||[]),c=b.length;while(c--)delete d[b[c]]}(void 0===b||r.isEmptyObject(d))&&(a.nodeType?a[this.expando]=void 0:delete a[this.expando])}},hasData:function(a){var b=a[this.expando];return void 0!==b&&!r.isEmptyObject(b)}};var V=new U,W=new U,X=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,Y=/[A-Z]/g;function Z(a){return"true"===a||"false"!==a&&("null"===a?null:a===+a+""?+a:X.test(a)?JSON.parse(a):a)}function $(a,b,c){var d;if(void 0===c&&1===a.nodeType)if(d="data-"+b.replace(Y,"-$&").toLowerCase(),c=a.getAttribute(d),"string"==typeof c){try{c=Z(c)}catch(e){}W.set(a,b,c)}else c=void 0;return c}r.extend({hasData:function(a){return W.hasData(a)||V.hasData(a)},data:function(a,b,c){return W.access(a,b,c)},removeData:function(a,b){W.remove(a,b)},_data:function(a,b,c){return V.access(a,b,c)},_removeData:function(a,b){V.remove(a,b)}}),r.fn.extend({data:function(a,b){var c,d,e,f=this[0],g=f&&f.attributes;if(void 0===a){if(this.length&&(e=W.get(f),1===f.nodeType&&!V.get(f,"hasDataAttrs"))){c=g.length;while(c--)g[c]&&(d=g[c].name,0===d.indexOf("data-")&&(d=r.camelCase(d.slice(5)),$(f,d,e[d])));V.set(f,"hasDataAttrs",!0)}return e}return"object"==typeof a?this.each(function(){W.set(this,a)}):S(this,function(b){var c;if(f&&void 0===b){if(c=W.get(f,a),void 0!==c)return c;if(c=$(f,a),void 0!==c)return c}else this.each(function(){W.set(this,a,b)})},null,b,arguments.length>1,null,!0)},removeData:function(a){return this.each(function(){W.remove(this,a)})}}),r.extend({queue:function(a,b,c){var d;if(a)return b=(b||"fx")+"queue",d=V.get(a,b),c&&(!d||r.isArray(c)?d=V.access(a,b,r.makeArray(c)):d.push(c)),d||[]},dequeue:function(a,b){b=b||"fx";var c=r.queue(a,b),d=c.length,e=c.shift(),f=r._queueHooks(a,b),g=function(){r.dequeue(a,b)};"inprogress"===e&&(e=c.shift(),d--),e&&("fx"===b&&c.unshift("inprogress"),delete f.stop,e.call(a,g,f)),!d&&f&&f.empty.fire()},_queueHooks:function(a,b){var c=b+"queueHooks";return V.get(a,c)||V.access(a,c,{empty:r.Callbacks("once memory").add(function(){V.remove(a,[b+"queue",c])})})}}),r.fn.extend({queue:function(a,b){var c=2;return"string"!=typeof a&&(b=a,a="fx",c--),arguments.length<c?r.queue(this[0],a):void 0===b?this:this.each(function(){var c=r.queue(this,a,b);r._queueHooks(this,a),"fx"===a&&"inprogress"!==c[0]&&r.dequeue(this,a)})},dequeue:function(a){return this.each(function(){r.dequeue(this,a)})},clearQueue:function(a){return this.queue(a||"fx",[])},promise:function(a,b){var c,d=1,e=r.Deferred(),f=this,g=this.length,h=function(){--d||e.resolveWith(f,[f])};"string"!=typeof a&&(b=a,a=void 0),a=a||"fx";while(g--)c=V.get(f[g],a+"queueHooks"),c&&c.empty&&(d++,c.empty.add(h));return h(),e.promise(b)}});var _=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,aa=new RegExp("^(?:([+-])=|)("+_+")([a-z%]*)$","i"),ba=["Top","Right","Bottom","Left"],ca=function(a,b){return a=b||a,"none"===a.style.display||""===a.style.display&&r.contains(a.ownerDocument,a)&&"none"===r.css(a,"display")},da=function(a,b,c,d){var e,f,g={};for(f in b)g[f]=a.style[f],a.style[f]=b[f];e=c.apply(a,d||[]);for(f in b)a.style[f]=g[f];return e};function ea(a,b,c,d){var e,f=1,g=20,h=d?function(){return d.cur()}:function(){return r.css(a,b,"")},i=h(),j=c&&c[3]||(r.cssNumber[b]?"":"px"),k=(r.cssNumber[b]||"px"!==j&&+i)&&aa.exec(r.css(a,b));if(k&&k[3]!==j){j=j||k[3],c=c||[],k=+i||1;do f=f||".5",k/=f,r.style(a,b,k+j);while(f!==(f=h()/i)&&1!==f&&--g)}return c&&(k=+k||+i||0,e=c[1]?k+(c[1]+1)*c[2]:+c[2],d&&(d.unit=j,d.start=k,d.end=e)),e}var fa={};function ga(a){var b,c=a.ownerDocument,d=a.nodeName,e=fa[d];return e?e:(b=c.body.appendChild(c.createElement(d)),e=r.css(b,"display"),b.parentNode.removeChild(b),"none"===e&&(e="block"),fa[d]=e,e)}function ha(a,b){for(var c,d,e=[],f=0,g=a.length;f<g;f++)d=a[f],d.style&&(c=d.style.display,b?("none"===c&&(e[f]=V.get(d,"display")||null,e[f]||(d.style.display="")),""===d.style.display&&ca(d)&&(e[f]=ga(d))):"none"!==c&&(e[f]="none",V.set(d,"display",c)));for(f=0;f<g;f++)null!=e[f]&&(a[f].style.display=e[f]);return a}r.fn.extend({show:function(){return ha(this,!0)},hide:function(){return ha(this)},toggle:function(a){return"boolean"==typeof a?a?this.show():this.hide():this.each(function(){ca(this)?r(this).show():r(this).hide()})}});var ia=/^(?:checkbox|radio)$/i,ja=/<([a-z][^\/\0>\x20\t\r\n\f]+)/i,ka=/^$|\/(?:java|ecma)script/i,la={option:[1,"<select multiple='multiple'>","</select>"],thead:[1,"<table>","</table>"],col:[2,"<table><colgroup>","</colgroup></table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],_default:[0,"",""]};la.optgroup=la.option,la.tbody=la.tfoot=la.colgroup=la.caption=la.thead,la.th=la.td;function ma(a,b){var c;return c="undefined"!=typeof a.getElementsByTagName?a.getElementsByTagName(b||"*"):"undefined"!=typeof a.querySelectorAll?a.querySelectorAll(b||"*"):[],void 0===b||b&&r.nodeName(a,b)?r.merge([a],c):c}function na(a,b){for(var c=0,d=a.length;c<d;c++)V.set(a[c],"globalEval",!b||V.get(b[c],"globalEval"))}var oa=/<|&#?\w+;/;function pa(a,b,c,d,e){for(var f,g,h,i,j,k,l=b.createDocumentFragment(),m=[],n=0,o=a.length;n<o;n++)if(f=a[n],f||0===f)if("object"===r.type(f))r.merge(m,f.nodeType?[f]:f);else if(oa.test(f)){g=g||l.appendChild(b.createElement("div")),h=(ja.exec(f)||["",""])[1].toLowerCase(),i=la[h]||la._default,g.innerHTML=i[1]+r.htmlPrefilter(f)+i[2],k=i[0];while(k--)g=g.lastChild;r.merge(m,g.childNodes),g=l.firstChild,g.textContent=""}else m.push(b.createTextNode(f));l.textContent="",n=0;while(f=m[n++])if(d&&r.inArray(f,d)>-1)e&&e.push(f);else if(j=r.contains(f.ownerDocument,f),g=ma(l.appendChild(f),"script"),j&&na(g),c){k=0;while(f=g[k++])ka.test(f.type||"")&&c.push(f)}return l}!function(){var a=d.createDocumentFragment(),b=a.appendChild(d.createElement("div")),c=d.createElement("input");c.setAttribute("type","radio"),c.setAttribute("checked","checked"),c.setAttribute("name","t"),b.appendChild(c),o.checkClone=b.cloneNode(!0).cloneNode(!0).lastChild.checked,b.innerHTML="<textarea>x</textarea>",o.noCloneChecked=!!b.cloneNode(!0).lastChild.defaultValue}();var qa=d.documentElement,ra=/^key/,sa=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,ta=/^([^.]*)(?:\.(.+)|)/;function ua(){return!0}function va(){return!1}function wa(){try{return d.activeElement}catch(a){}}function xa(a,b,c,d,e,f){var g,h;if("object"==typeof b){"string"!=typeof c&&(d=d||c,c=void 0);for(h in b)xa(a,h,c,d,b[h],f);return a}if(null==d&&null==e?(e=c,d=c=void 0):null==e&&("string"==typeof c?(e=d,d=void 0):(e=d,d=c,c=void 0)),e===!1)e=va;else if(!e)return a;return 1===f&&(g=e,e=function(a){return r().off(a),g.apply(this,arguments)},e.guid=g.guid||(g.guid=r.guid++)),a.each(function(){r.event.add(this,b,e,d,c)})}r.event={global:{},add:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,n,o,p,q=V.get(a);if(q){c.handler&&(f=c,c=f.handler,e=f.selector),e&&r.find.matchesSelector(qa,e),c.guid||(c.guid=r.guid++),(i=q.events)||(i=q.events={}),(g=q.handle)||(g=q.handle=function(b){return"undefined"!=typeof r&&r.event.triggered!==b.type?r.event.dispatch.apply(a,arguments):void 0}),b=(b||"").match(K)||[""],j=b.length;while(j--)h=ta.exec(b[j])||[],n=p=h[1],o=(h[2]||"").split(".").sort(),n&&(l=r.event.special[n]||{},n=(e?l.delegateType:l.bindType)||n,l=r.event.special[n]||{},k=r.extend({type:n,origType:p,data:d,handler:c,guid:c.guid,selector:e,needsContext:e&&r.expr.match.needsContext.test(e),namespace:o.join(".")},f),(m=i[n])||(m=i[n]=[],m.delegateCount=0,l.setup&&l.setup.call(a,d,o,g)!==!1||a.addEventListener&&a.addEventListener(n,g)),l.add&&(l.add.call(a,k),k.handler.guid||(k.handler.guid=c.guid)),e?m.splice(m.delegateCount++,0,k):m.push(k),r.event.global[n]=!0)}},remove:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,n,o,p,q=V.hasData(a)&&V.get(a);if(q&&(i=q.events)){b=(b||"").match(K)||[""],j=b.length;while(j--)if(h=ta.exec(b[j])||[],n=p=h[1],o=(h[2]||"").split(".").sort(),n){l=r.event.special[n]||{},n=(d?l.delegateType:l.bindType)||n,m=i[n]||[],h=h[2]&&new RegExp("(^|\\.)"+o.join("\\.(?:.*\\.|)")+"(\\.|$)"),g=f=m.length;while(f--)k=m[f],!e&&p!==k.origType||c&&c.guid!==k.guid||h&&!h.test(k.namespace)||d&&d!==k.selector&&("**"!==d||!k.selector)||(m.splice(f,1),k.selector&&m.delegateCount--,l.remove&&l.remove.call(a,k));g&&!m.length&&(l.teardown&&l.teardown.call(a,o,q.handle)!==!1||r.removeEvent(a,n,q.handle),delete i[n])}else for(n in i)r.event.remove(a,n+b[j],c,d,!0);r.isEmptyObject(i)&&V.remove(a,"handle events")}},dispatch:function(a){var b=r.event.fix(a),c,d,e,f,g,h,i=new Array(arguments.length),j=(V.get(this,"events")||{})[b.type]||[],k=r.event.special[b.type]||{};for(i[0]=b,c=1;c<arguments.length;c++)i[c]=arguments[c];if(b.delegateTarget=this,!k.preDispatch||k.preDispatch.call(this,b)!==!1){h=r.event.handlers.call(this,b,j),c=0;while((f=h[c++])&&!b.isPropagationStopped()){b.currentTarget=f.elem,d=0;while((g=f.handlers[d++])&&!b.isImmediatePropagationStopped())b.rnamespace&&!b.rnamespace.test(g.namespace)||(b.handleObj=g,b.data=g.data,e=((r.event.special[g.origType]||{}).handle||g.handler).apply(f.elem,i),void 0!==e&&(b.result=e)===!1&&(b.preventDefault(),b.stopPropagation()))}return k.postDispatch&&k.postDispatch.call(this,b),b.result}},handlers:function(a,b){var c,d,e,f,g,h=[],i=b.delegateCount,j=a.target;if(i&&j.nodeType&&!("click"===a.type&&a.button>=1))for(;j!==this;j=j.parentNode||this)if(1===j.nodeType&&("click"!==a.type||j.disabled!==!0)){for(f=[],g={},c=0;c<i;c++)d=b[c],e=d.selector+" ",void 0===g[e]&&(g[e]=d.needsContext?r(e,this).index(j)>-1:r.find(e,this,null,[j]).length),g[e]&&f.push(d);f.length&&h.push({elem:j,handlers:f})}return j=this,i<b.length&&h.push({elem:j,handlers:b.slice(i)}),h},addProp:function(a,b){Object.defineProperty(r.Event.prototype,a,{enumerable:!0,configurable:!0,get:r.isFunction(b)?function(){if(this.originalEvent)return b(this.originalEvent)}:function(){if(this.originalEvent)return this.originalEvent[a]},set:function(b){Object.defineProperty(this,a,{enumerable:!0,configurable:!0,writable:!0,value:b})}})},fix:function(a){return a[r.expando]?a:new r.Event(a)},special:{load:{noBubble:!0},focus:{trigger:function(){if(this!==wa()&&this.focus)return this.focus(),!1},delegateType:"focusin"},blur:{trigger:function(){if(this===wa()&&this.blur)return this.blur(),!1},delegateType:"focusout"},click:{trigger:function(){if("checkbox"===this.type&&this.click&&r.nodeName(this,"input"))return this.click(),!1},_default:function(a){return r.nodeName(a.target,"a")}},beforeunload:{postDispatch:function(a){void 0!==a.result&&a.originalEvent&&(a.originalEvent.returnValue=a.result)}}}},r.removeEvent=function(a,b,c){a.removeEventListener&&a.removeEventListener(b,c)},r.Event=function(a,b){return this instanceof r.Event?(a&&a.type?(this.originalEvent=a,this.type=a.type,this.isDefaultPrevented=a.defaultPrevented||void 0===a.defaultPrevented&&a.returnValue===!1?ua:va,this.target=a.target&&3===a.target.nodeType?a.target.parentNode:a.target,this.currentTarget=a.currentTarget,this.relatedTarget=a.relatedTarget):this.type=a,b&&r.extend(this,b),this.timeStamp=a&&a.timeStamp||r.now(),void(this[r.expando]=!0)):new r.Event(a,b)},r.Event.prototype={constructor:r.Event,isDefaultPrevented:va,isPropagationStopped:va,isImmediatePropagationStopped:va,isSimulated:!1,preventDefault:function(){var a=this.originalEvent;this.isDefaultPrevented=ua,a&&!this.isSimulated&&a.preventDefault()},stopPropagation:function(){var a=this.originalEvent;this.isPropagationStopped=ua,a&&!this.isSimulated&&a.stopPropagation()},stopImmediatePropagation:function(){var a=this.originalEvent;this.isImmediatePropagationStopped=ua,a&&!this.isSimulated&&a.stopImmediatePropagation(),this.stopPropagation()}},r.each({altKey:!0,bubbles:!0,cancelable:!0,changedTouches:!0,ctrlKey:!0,detail:!0,eventPhase:!0,metaKey:!0,pageX:!0,pageY:!0,shiftKey:!0,view:!0,"char":!0,charCode:!0,key:!0,keyCode:!0,button:!0,buttons:!0,clientX:!0,clientY:!0,offsetX:!0,offsetY:!0,pointerId:!0,pointerType:!0,screenX:!0,screenY:!0,targetTouches:!0,toElement:!0,touches:!0,which:function(a){var b=a.button;return null==a.which&&ra.test(a.type)?null!=a.charCode?a.charCode:a.keyCode:!a.which&&void 0!==b&&sa.test(a.type)?1&b?1:2&b?3:4&b?2:0:a.which}},r.event.addProp),r.each({mouseenter:"mouseover",mouseleave:"mouseout",pointerenter:"pointerover",pointerleave:"pointerout"},function(a,b){r.event.special[a]={delegateType:b,bindType:b,handle:function(a){var c,d=this,e=a.relatedTarget,f=a.handleObj;return e&&(e===d||r.contains(d,e))||(a.type=f.origType,c=f.handler.apply(this,arguments),a.type=b),c}}}),r.fn.extend({on:function(a,b,c,d){return xa(this,a,b,c,d)},one:function(a,b,c,d){return xa(this,a,b,c,d,1)},off:function(a,b,c){var d,e;if(a&&a.preventDefault&&a.handleObj)return d=a.handleObj,r(a.delegateTarget).off(d.namespace?d.origType+"."+d.namespace:d.origType,d.selector,d.handler),this;if("object"==typeof a){for(e in a)this.off(e,b,a[e]);return this}return b!==!1&&"function"!=typeof b||(c=b,b=void 0),c===!1&&(c=va),this.each(function(){r.event.remove(this,a,c,b)})}});var ya=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([a-z][^\/\0>\x20\t\r\n\f]*)[^>]*)\/>/gi,za=/<script|<style|<link/i,Aa=/checked\s*(?:[^=]|=\s*.checked.)/i,Ba=/^true\/(.*)/,Ca=/^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g;function Da(a,b){return r.nodeName(a,"table")&&r.nodeName(11!==b.nodeType?b:b.firstChild,"tr")?a.getElementsByTagName("tbody")[0]||a:a}function Ea(a){return a.type=(null!==a.getAttribute("type"))+"/"+a.type,a}function Fa(a){var b=Ba.exec(a.type);return b?a.type=b[1]:a.removeAttribute("type"),a}function Ga(a,b){var c,d,e,f,g,h,i,j;if(1===b.nodeType){if(V.hasData(a)&&(f=V.access(a),g=V.set(b,f),j=f.events)){delete g.handle,g.events={};for(e in j)for(c=0,d=j[e].length;c<d;c++)r.event.add(b,e,j[e][c])}W.hasData(a)&&(h=W.access(a),i=r.extend({},h),W.set(b,i))}}function Ha(a,b){var c=b.nodeName.toLowerCase();"input"===c&&ia.test(a.type)?b.checked=a.checked:"input"!==c&&"textarea"!==c||(b.defaultValue=a.defaultValue)}function Ia(a,b,c,d){b=g.apply([],b);var e,f,h,i,j,k,l=0,m=a.length,n=m-1,q=b[0],s=r.isFunction(q);if(s||m>1&&"string"==typeof q&&!o.checkClone&&Aa.test(q))return a.each(function(e){var f=a.eq(e);s&&(b[0]=q.call(this,e,f.html())),Ia(f,b,c,d)});if(m&&(e=pa(b,a[0].ownerDocument,!1,a,d),f=e.firstChild,1===e.childNodes.length&&(e=f),f||d)){for(h=r.map(ma(e,"script"),Ea),i=h.length;l<m;l++)j=e,l!==n&&(j=r.clone(j,!0,!0),i&&r.merge(h,ma(j,"script"))),c.call(a[l],j,l);if(i)for(k=h[h.length-1].ownerDocument,r.map(h,Fa),l=0;l<i;l++)j=h[l],ka.test(j.type||"")&&!V.access(j,"globalEval")&&r.contains(k,j)&&(j.src?r._evalUrl&&r._evalUrl(j.src):p(j.textContent.replace(Ca,""),k))}return a}function Ja(a,b,c){for(var d,e=b?r.filter(b,a):a,f=0;null!=(d=e[f]);f++)c||1!==d.nodeType||r.cleanData(ma(d)),d.parentNode&&(c&&r.contains(d.ownerDocument,d)&&na(ma(d,"script")),d.parentNode.removeChild(d));return a}r.extend({htmlPrefilter:function(a){return a.replace(ya,"<$1></$2>")},clone:function(a,b,c){var d,e,f,g,h=a.cloneNode(!0),i=r.contains(a.ownerDocument,a);if(!(o.noCloneChecked||1!==a.nodeType&&11!==a.nodeType||r.isXMLDoc(a)))for(g=ma(h),f=ma(a),d=0,e=f.length;d<e;d++)Ha(f[d],g[d]);if(b)if(c)for(f=f||ma(a),g=g||ma(h),d=0,e=f.length;d<e;d++)Ga(f[d],g[d]);else Ga(a,h);return g=ma(h,"script"),g.length>0&&na(g,!i&&ma(a,"script")),h},cleanData:function(a){for(var b,c,d,e=r.event.special,f=0;void 0!==(c=a[f]);f++)if(T(c)){if(b=c[V.expando]){if(b.events)for(d in b.events)e[d]?r.event.remove(c,d):r.removeEvent(c,d,b.handle);c[V.expando]=void 0}c[W.expando]&&(c[W.expando]=void 0)}}}),r.fn.extend({detach:function(a){return Ja(this,a,!0)},remove:function(a){return Ja(this,a)},text:function(a){return S(this,function(a){return void 0===a?r.text(this):this.empty().each(function(){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||(this.textContent=a)})},null,a,arguments.length)},append:function(){return Ia(this,arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=Da(this,a);b.appendChild(a)}})},prepend:function(){return Ia(this,arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=Da(this,a);b.insertBefore(a,b.firstChild)}})},before:function(){return Ia(this,arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this)})},after:function(){return Ia(this,arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this.nextSibling)})},empty:function(){for(var a,b=0;null!=(a=this[b]);b++)1===a.nodeType&&(r.cleanData(ma(a,!1)),a.textContent="");return this},clone:function(a,b){return a=null!=a&&a,b=null==b?a:b,this.map(function(){return r.clone(this,a,b)})},html:function(a){return S(this,function(a){var b=this[0]||{},c=0,d=this.length;if(void 0===a&&1===b.nodeType)return b.innerHTML;if("string"==typeof a&&!za.test(a)&&!la[(ja.exec(a)||["",""])[1].toLowerCase()]){a=r.htmlPrefilter(a);try{for(;c<d;c++)b=this[c]||{},1===b.nodeType&&(r.cleanData(ma(b,!1)),b.innerHTML=a);b=0}catch(e){}}b&&this.empty().append(a)},null,a,arguments.length)},replaceWith:function(){var a=[];return Ia(this,arguments,function(b){var c=this.parentNode;r.inArray(this,a)<0&&(r.cleanData(ma(this)),c&&c.replaceChild(b,this))},a)}}),r.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){r.fn[a]=function(a){for(var c,d=[],e=r(a),f=e.length-1,g=0;g<=f;g++)c=g===f?this:this.clone(!0),r(e[g])[b](c),h.apply(d,c.get());return this.pushStack(d)}});var Ka=/^margin/,La=new RegExp("^("+_+")(?!px)[a-z%]+$","i"),Ma=function(b){var c=b.ownerDocument.defaultView;return c&&c.opener||(c=a),c.getComputedStyle(b)};!function(){function b(){if(i){i.style.cssText="box-sizing:border-box;position:relative;display:block;margin:auto;border:1px;padding:1px;top:1%;width:50%",i.innerHTML="",qa.appendChild(h);var b=a.getComputedStyle(i);c="1%"!==b.top,g="2px"===b.marginLeft,e="4px"===b.width,i.style.marginRight="50%",f="4px"===b.marginRight,qa.removeChild(h),i=null}}var c,e,f,g,h=d.createElement("div"),i=d.createElement("div");i.style&&(i.style.backgroundClip="content-box",i.cloneNode(!0).style.backgroundClip="",o.clearCloneStyle="content-box"===i.style.backgroundClip,h.style.cssText="border:0;width:8px;height:0;top:0;left:-9999px;padding:0;margin-top:1px;position:absolute",h.appendChild(i),r.extend(o,{pixelPosition:function(){return b(),c},boxSizingReliable:function(){return b(),e},pixelMarginRight:function(){return b(),f},reliableMarginLeft:function(){return b(),g}}))}();function Na(a,b,c){var d,e,f,g,h=a.style;return c=c||Ma(a),c&&(g=c.getPropertyValue(b)||c[b],""!==g||r.contains(a.ownerDocument,a)||(g=r.style(a,b)),!o.pixelMarginRight()&&La.test(g)&&Ka.test(b)&&(d=h.width,e=h.minWidth,f=h.maxWidth,h.minWidth=h.maxWidth=h.width=g,g=c.width,h.width=d,h.minWidth=e,h.maxWidth=f)),void 0!==g?g+"":g}function Oa(a,b){return{get:function(){return a()?void delete this.get:(this.get=b).apply(this,arguments)}}}var Pa=/^(none|table(?!-c[ea]).+)/,Qa={position:"absolute",visibility:"hidden",display:"block"},Ra={letterSpacing:"0",fontWeight:"400"},Sa=["Webkit","Moz","ms"],Ta=d.createElement("div").style;function Ua(a){if(a in Ta)return a;var b=a[0].toUpperCase()+a.slice(1),c=Sa.length;while(c--)if(a=Sa[c]+b,a in Ta)return a}function Va(a,b,c){var d=aa.exec(b);return d?Math.max(0,d[2]-(c||0))+(d[3]||"px"):b}function Wa(a,b,c,d,e){var f,g=0;for(f=c===(d?"border":"content")?4:"width"===b?1:0;f<4;f+=2)"margin"===c&&(g+=r.css(a,c+ba[f],!0,e)),d?("content"===c&&(g-=r.css(a,"padding"+ba[f],!0,e)),"margin"!==c&&(g-=r.css(a,"border"+ba[f]+"Width",!0,e))):(g+=r.css(a,"padding"+ba[f],!0,e),"padding"!==c&&(g+=r.css(a,"border"+ba[f]+"Width",!0,e)));return g}function Xa(a,b,c){var d,e=!0,f=Ma(a),g="border-box"===r.css(a,"boxSizing",!1,f);if(a.getClientRects().length&&(d=a.getBoundingClientRect()[b]),d<=0||null==d){if(d=Na(a,b,f),(d<0||null==d)&&(d=a.style[b]),La.test(d))return d;e=g&&(o.boxSizingReliable()||d===a.style[b]),d=parseFloat(d)||0}return d+Wa(a,b,c||(g?"border":"content"),e,f)+"px"}r.extend({cssHooks:{opacity:{get:function(a,b){if(b){var c=Na(a,"opacity");return""===c?"1":c}}}},cssNumber:{animationIterationCount:!0,columnCount:!0,fillOpacity:!0,flexGrow:!0,flexShrink:!0,fontWeight:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{"float":"cssFloat"},style:function(a,b,c,d){if(a&&3!==a.nodeType&&8!==a.nodeType&&a.style){var e,f,g,h=r.camelCase(b),i=a.style;return b=r.cssProps[h]||(r.cssProps[h]=Ua(h)||h),g=r.cssHooks[b]||r.cssHooks[h],void 0===c?g&&"get"in g&&void 0!==(e=g.get(a,!1,d))?e:i[b]:(f=typeof c,"string"===f&&(e=aa.exec(c))&&e[1]&&(c=ea(a,b,e),f="number"),null!=c&&c===c&&("number"===f&&(c+=e&&e[3]||(r.cssNumber[h]?"":"px")),o.clearCloneStyle||""!==c||0!==b.indexOf("background")||(i[b]="inherit"),g&&"set"in g&&void 0===(c=g.set(a,c,d))||(i[b]=c)),void 0)}},css:function(a,b,c,d){var e,f,g,h=r.camelCase(b);return b=r.cssProps[h]||(r.cssProps[h]=Ua(h)||h),g=r.cssHooks[b]||r.cssHooks[h],g&&"get"in g&&(e=g.get(a,!0,c)),void 0===e&&(e=Na(a,b,d)),"normal"===e&&b in Ra&&(e=Ra[b]),""===c||c?(f=parseFloat(e),c===!0||isFinite(f)?f||0:e):e}}),r.each(["height","width"],function(a,b){r.cssHooks[b]={get:function(a,c,d){if(c)return!Pa.test(r.css(a,"display"))||a.getClientRects().length&&a.getBoundingClientRect().width?Xa(a,b,d):da(a,Qa,function(){return Xa(a,b,d)})},set:function(a,c,d){var e,f=d&&Ma(a),g=d&&Wa(a,b,d,"border-box"===r.css(a,"boxSizing",!1,f),f);return g&&(e=aa.exec(c))&&"px"!==(e[3]||"px")&&(a.style[b]=c,c=r.css(a,b)),Va(a,c,g)}}}),r.cssHooks.marginLeft=Oa(o.reliableMarginLeft,function(a,b){if(b)return(parseFloat(Na(a,"marginLeft"))||a.getBoundingClientRect().left-da(a,{marginLeft:0},function(){return a.getBoundingClientRect().left}))+"px"}),r.each({margin:"",padding:"",border:"Width"},function(a,b){r.cssHooks[a+b]={expand:function(c){for(var d=0,e={},f="string"==typeof c?c.split(" "):[c];d<4;d++)e[a+ba[d]+b]=f[d]||f[d-2]||f[0];return e}},Ka.test(a)||(r.cssHooks[a+b].set=Va)}),r.fn.extend({css:function(a,b){return S(this,function(a,b,c){var d,e,f={},g=0;if(r.isArray(b)){for(d=Ma(a),e=b.length;g<e;g++)f[b[g]]=r.css(a,b[g],!1,d);return f}return void 0!==c?r.style(a,b,c):r.css(a,b)},a,b,arguments.length>1)}});function Ya(a,b,c,d,e){return new Ya.prototype.init(a,b,c,d,e)}r.Tween=Ya,Ya.prototype={constructor:Ya,init:function(a,b,c,d,e,f){this.elem=a,this.prop=c,this.easing=e||r.easing._default,this.options=b,this.start=this.now=this.cur(),this.end=d,this.unit=f||(r.cssNumber[c]?"":"px")},cur:function(){var a=Ya.propHooks[this.prop];return a&&a.get?a.get(this):Ya.propHooks._default.get(this)},run:function(a){var b,c=Ya.propHooks[this.prop];return this.options.duration?this.pos=b=r.easing[this.easing](a,this.options.duration*a,0,1,this.options.duration):this.pos=b=a,this.now=(this.end-this.start)*b+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),c&&c.set?c.set(this):Ya.propHooks._default.set(this),this}},Ya.prototype.init.prototype=Ya.prototype,Ya.propHooks={_default:{get:function(a){var b;return 1!==a.elem.nodeType||null!=a.elem[a.prop]&&null==a.elem.style[a.prop]?a.elem[a.prop]:(b=r.css(a.elem,a.prop,""),b&&"auto"!==b?b:0)},set:function(a){r.fx.step[a.prop]?r.fx.step[a.prop](a):1!==a.elem.nodeType||null==a.elem.style[r.cssProps[a.prop]]&&!r.cssHooks[a.prop]?a.elem[a.prop]=a.now:r.style(a.elem,a.prop,a.now+a.unit)}}},Ya.propHooks.scrollTop=Ya.propHooks.scrollLeft={set:function(a){a.elem.nodeType&&a.elem.parentNode&&(a.elem[a.prop]=a.now)}},r.easing={linear:function(a){return a},swing:function(a){return.5-Math.cos(a*Math.PI)/2},_default:"swing"},r.fx=Ya.prototype.init,r.fx.step={};var Za,$a,_a=/^(?:toggle|show|hide)$/,ab=/queueHooks$/;function bb(){$a&&(a.requestAnimationFrame(bb),r.fx.tick())}function cb(){return a.setTimeout(function(){Za=void 0}),Za=r.now()}function db(a,b){var c,d=0,e={height:a};for(b=b?1:0;d<4;d+=2-b)c=ba[d],e["margin"+c]=e["padding"+c]=a;return b&&(e.opacity=e.width=a),e}function eb(a,b,c){for(var d,e=(hb.tweeners[b]||[]).concat(hb.tweeners["*"]),f=0,g=e.length;f<g;f++)if(d=e[f].call(c,b,a))return d}function fb(a,b,c){var d,e,f,g,h,i,j,k,l="width"in b||"height"in b,m=this,n={},o=a.style,p=a.nodeType&&ca(a),q=V.get(a,"fxshow");c.queue||(g=r._queueHooks(a,"fx"),null==g.unqueued&&(g.unqueued=0,h=g.empty.fire,g.empty.fire=function(){g.unqueued||h()}),g.unqueued++,m.always(function(){m.always(function(){g.unqueued--,r.queue(a,"fx").length||g.empty.fire()})}));for(d in b)if(e=b[d],_a.test(e)){if(delete b[d],f=f||"toggle"===e,e===(p?"hide":"show")){if("show"!==e||!q||void 0===q[d])continue;p=!0}n[d]=q&&q[d]||r.style(a,d)}if(i=!r.isEmptyObject(b),i||!r.isEmptyObject(n)){l&&1===a.nodeType&&(c.overflow=[o.overflow,o.overflowX,o.overflowY],j=q&&q.display,null==j&&(j=V.get(a,"display")),k=r.css(a,"display"),"none"===k&&(j?k=j:(ha([a],!0),j=a.style.display||j,k=r.css(a,"display"),ha([a]))),("inline"===k||"inline-block"===k&&null!=j)&&"none"===r.css(a,"float")&&(i||(m.done(function(){o.display=j}),null==j&&(k=o.display,j="none"===k?"":k)),o.display="inline-block")),c.overflow&&(o.overflow="hidden",m.always(function(){o.overflow=c.overflow[0],o.overflowX=c.overflow[1],o.overflowY=c.overflow[2]})),i=!1;for(d in n)i||(q?"hidden"in q&&(p=q.hidden):q=V.access(a,"fxshow",{display:j}),f&&(q.hidden=!p),p&&ha([a],!0),m.done(function(){p||ha([a]),V.remove(a,"fxshow");for(d in n)r.style(a,d,n[d])})),i=eb(p?q[d]:0,d,m),d in q||(q[d]=i.start,p&&(i.end=i.start,i.start=0))}}function gb(a,b){var c,d,e,f,g;for(c in a)if(d=r.camelCase(c),e=b[d],f=a[c],r.isArray(f)&&(e=f[1],f=a[c]=f[0]),c!==d&&(a[d]=f,delete a[c]),g=r.cssHooks[d],g&&"expand"in g){f=g.expand(f),delete a[d];for(c in f)c in a||(a[c]=f[c],b[c]=e)}else b[d]=e}function hb(a,b,c){var d,e,f=0,g=hb.prefilters.length,h=r.Deferred().always(function(){delete i.elem}),i=function(){if(e)return!1;for(var b=Za||cb(),c=Math.max(0,j.startTime+j.duration-b),d=c/j.duration||0,f=1-d,g=0,i=j.tweens.length;g<i;g++)j.tweens[g].run(f);return h.notifyWith(a,[j,f,c]),f<1&&i?c:(h.resolveWith(a,[j]),!1)},j=h.promise({elem:a,props:r.extend({},b),opts:r.extend(!0,{specialEasing:{},easing:r.easing._default},c),originalProperties:b,originalOptions:c,startTime:Za||cb(),duration:c.duration,tweens:[],createTween:function(b,c){var d=r.Tween(a,j.opts,b,c,j.opts.specialEasing[b]||j.opts.easing);return j.tweens.push(d),d},stop:function(b){var c=0,d=b?j.tweens.length:0;if(e)return this;for(e=!0;c<d;c++)j.tweens[c].run(1);return b?(h.notifyWith(a,[j,1,0]),h.resolveWith(a,[j,b])):h.rejectWith(a,[j,b]),this}}),k=j.props;for(gb(k,j.opts.specialEasing);f<g;f++)if(d=hb.prefilters[f].call(j,a,k,j.opts))return r.isFunction(d.stop)&&(r._queueHooks(j.elem,j.opts.queue).stop=r.proxy(d.stop,d)),d;return r.map(k,eb,j),r.isFunction(j.opts.start)&&j.opts.start.call(a,j),r.fx.timer(r.extend(i,{elem:a,anim:j,queue:j.opts.queue})),j.progress(j.opts.progress).done(j.opts.done,j.opts.complete).fail(j.opts.fail).always(j.opts.always)}r.Animation=r.extend(hb,{tweeners:{"*":[function(a,b){var c=this.createTween(a,b);return ea(c.elem,a,aa.exec(b),c),c}]},tweener:function(a,b){r.isFunction(a)?(b=a,a=["*"]):a=a.match(K);for(var c,d=0,e=a.length;d<e;d++)c=a[d],hb.tweeners[c]=hb.tweeners[c]||[],hb.tweeners[c].unshift(b)},prefilters:[fb],prefilter:function(a,b){b?hb.prefilters.unshift(a):hb.prefilters.push(a)}}),r.speed=function(a,b,c){var e=a&&"object"==typeof a?r.extend({},a):{complete:c||!c&&b||r.isFunction(a)&&a,duration:a,easing:c&&b||b&&!r.isFunction(b)&&b};return r.fx.off||d.hidden?e.duration=0:"number"!=typeof e.duration&&(e.duration in r.fx.speeds?e.duration=r.fx.speeds[e.duration]:e.duration=r.fx.speeds._default),null!=e.queue&&e.queue!==!0||(e.queue="fx"),e.old=e.complete,e.complete=function(){r.isFunction(e.old)&&e.old.call(this),e.queue&&r.dequeue(this,e.queue)},e},r.fn.extend({fadeTo:function(a,b,c,d){return this.filter(ca).css("opacity",0).show().end().animate({opacity:b},a,c,d)},animate:function(a,b,c,d){var e=r.isEmptyObject(a),f=r.speed(b,c,d),g=function(){var b=hb(this,r.extend({},a),f);(e||V.get(this,"finish"))&&b.stop(!0)};return g.finish=g,e||f.queue===!1?this.each(g):this.queue(f.queue,g)},stop:function(a,b,c){var d=function(a){var b=a.stop;delete a.stop,b(c)};return"string"!=typeof a&&(c=b,b=a,a=void 0),b&&a!==!1&&this.queue(a||"fx",[]),this.each(function(){var b=!0,e=null!=a&&a+"queueHooks",f=r.timers,g=V.get(this);if(e)g[e]&&g[e].stop&&d(g[e]);else for(e in g)g[e]&&g[e].stop&&ab.test(e)&&d(g[e]);for(e=f.length;e--;)f[e].elem!==this||null!=a&&f[e].queue!==a||(f[e].anim.stop(c),b=!1,f.splice(e,1));!b&&c||r.dequeue(this,a)})},finish:function(a){return a!==!1&&(a=a||"fx"),this.each(function(){var b,c=V.get(this),d=c[a+"queue"],e=c[a+"queueHooks"],f=r.timers,g=d?d.length:0;for(c.finish=!0,r.queue(this,a,[]),e&&e.stop&&e.stop.call(this,!0),b=f.length;b--;)f[b].elem===this&&f[b].queue===a&&(f[b].anim.stop(!0),f.splice(b,1));for(b=0;b<g;b++)d[b]&&d[b].finish&&d[b].finish.call(this);delete c.finish})}}),r.each(["toggle","show","hide"],function(a,b){var c=r.fn[b];r.fn[b]=function(a,d,e){return null==a||"boolean"==typeof a?c.apply(this,arguments):this.animate(db(b,!0),a,d,e)}}),r.each({slideDown:db("show"),slideUp:db("hide"),slideToggle:db("toggle"),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(a,b){r.fn[a]=function(a,c,d){return this.animate(b,a,c,d)}}),r.timers=[],r.fx.tick=function(){var a,b=0,c=r.timers;for(Za=r.now();b<c.length;b++)a=c[b],a()||c[b]!==a||c.splice(b--,1);c.length||r.fx.stop(),Za=void 0},r.fx.timer=function(a){r.timers.push(a),a()?r.fx.start():r.timers.pop()},r.fx.interval=13,r.fx.start=function(){$a||($a=a.requestAnimationFrame?a.requestAnimationFrame(bb):a.setInterval(r.fx.tick,r.fx.interval))},r.fx.stop=function(){a.cancelAnimationFrame?a.cancelAnimationFrame($a):a.clearInterval($a),$a=null},r.fx.speeds={slow:600,fast:200,_default:400},r.fn.delay=function(b,c){return b=r.fx?r.fx.speeds[b]||b:b,c=c||"fx",this.queue(c,function(c,d){var e=a.setTimeout(c,b);d.stop=function(){a.clearTimeout(e)}})},function(){var a=d.createElement("input"),b=d.createElement("select"),c=b.appendChild(d.createElement("option"));a.type="checkbox",o.checkOn=""!==a.value,o.optSelected=c.selected,a=d.createElement("input"),a.value="t",a.type="radio",o.radioValue="t"===a.value}();var ib,jb=r.expr.attrHandle;r.fn.extend({attr:function(a,b){return S(this,r.attr,a,b,arguments.length>1)},removeAttr:function(a){return this.each(function(){r.removeAttr(this,a)})}}),r.extend({attr:function(a,b,c){var d,e,f=a.nodeType;if(3!==f&&8!==f&&2!==f)return"undefined"==typeof a.getAttribute?r.prop(a,b,c):(1===f&&r.isXMLDoc(a)||(e=r.attrHooks[b.toLowerCase()]||(r.expr.match.bool.test(b)?ib:void 0)),
+void 0!==c?null===c?void r.removeAttr(a,b):e&&"set"in e&&void 0!==(d=e.set(a,c,b))?d:(a.setAttribute(b,c+""),c):e&&"get"in e&&null!==(d=e.get(a,b))?d:(d=r.find.attr(a,b),null==d?void 0:d))},attrHooks:{type:{set:function(a,b){if(!o.radioValue&&"radio"===b&&r.nodeName(a,"input")){var c=a.value;return a.setAttribute("type",b),c&&(a.value=c),b}}}},removeAttr:function(a,b){var c,d=0,e=b&&b.match(K);if(e&&1===a.nodeType)while(c=e[d++])a.removeAttribute(c)}}),ib={set:function(a,b,c){return b===!1?r.removeAttr(a,c):a.setAttribute(c,c),c}},r.each(r.expr.match.bool.source.match(/\w+/g),function(a,b){var c=jb[b]||r.find.attr;jb[b]=function(a,b,d){var e,f,g=b.toLowerCase();return d||(f=jb[g],jb[g]=e,e=null!=c(a,b,d)?g:null,jb[g]=f),e}});var kb=/^(?:input|select|textarea|button)$/i,lb=/^(?:a|area)$/i;r.fn.extend({prop:function(a,b){return S(this,r.prop,a,b,arguments.length>1)},removeProp:function(a){return this.each(function(){delete this[r.propFix[a]||a]})}}),r.extend({prop:function(a,b,c){var d,e,f=a.nodeType;if(3!==f&&8!==f&&2!==f)return 1===f&&r.isXMLDoc(a)||(b=r.propFix[b]||b,e=r.propHooks[b]),void 0!==c?e&&"set"in e&&void 0!==(d=e.set(a,c,b))?d:a[b]=c:e&&"get"in e&&null!==(d=e.get(a,b))?d:a[b]},propHooks:{tabIndex:{get:function(a){var b=r.find.attr(a,"tabindex");return b?parseInt(b,10):kb.test(a.nodeName)||lb.test(a.nodeName)&&a.href?0:-1}}},propFix:{"for":"htmlFor","class":"className"}}),o.optSelected||(r.propHooks.selected={get:function(a){var b=a.parentNode;return b&&b.parentNode&&b.parentNode.selectedIndex,null},set:function(a){var b=a.parentNode;b&&(b.selectedIndex,b.parentNode&&b.parentNode.selectedIndex)}}),r.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){r.propFix[this.toLowerCase()]=this});function mb(a){var b=a.match(K)||[];return b.join(" ")}function nb(a){return a.getAttribute&&a.getAttribute("class")||""}r.fn.extend({addClass:function(a){var b,c,d,e,f,g,h,i=0;if(r.isFunction(a))return this.each(function(b){r(this).addClass(a.call(this,b,nb(this)))});if("string"==typeof a&&a){b=a.match(K)||[];while(c=this[i++])if(e=nb(c),d=1===c.nodeType&&" "+mb(e)+" "){g=0;while(f=b[g++])d.indexOf(" "+f+" ")<0&&(d+=f+" ");h=mb(d),e!==h&&c.setAttribute("class",h)}}return this},removeClass:function(a){var b,c,d,e,f,g,h,i=0;if(r.isFunction(a))return this.each(function(b){r(this).removeClass(a.call(this,b,nb(this)))});if(!arguments.length)return this.attr("class","");if("string"==typeof a&&a){b=a.match(K)||[];while(c=this[i++])if(e=nb(c),d=1===c.nodeType&&" "+mb(e)+" "){g=0;while(f=b[g++])while(d.indexOf(" "+f+" ")>-1)d=d.replace(" "+f+" "," ");h=mb(d),e!==h&&c.setAttribute("class",h)}}return this},toggleClass:function(a,b){var c=typeof a;return"boolean"==typeof b&&"string"===c?b?this.addClass(a):this.removeClass(a):r.isFunction(a)?this.each(function(c){r(this).toggleClass(a.call(this,c,nb(this),b),b)}):this.each(function(){var b,d,e,f;if("string"===c){d=0,e=r(this),f=a.match(K)||[];while(b=f[d++])e.hasClass(b)?e.removeClass(b):e.addClass(b)}else void 0!==a&&"boolean"!==c||(b=nb(this),b&&V.set(this,"__className__",b),this.setAttribute&&this.setAttribute("class",b||a===!1?"":V.get(this,"__className__")||""))})},hasClass:function(a){var b,c,d=0;b=" "+a+" ";while(c=this[d++])if(1===c.nodeType&&(" "+mb(nb(c))+" ").indexOf(b)>-1)return!0;return!1}});var ob=/\r/g;r.fn.extend({val:function(a){var b,c,d,e=this[0];{if(arguments.length)return d=r.isFunction(a),this.each(function(c){var e;1===this.nodeType&&(e=d?a.call(this,c,r(this).val()):a,null==e?e="":"number"==typeof e?e+="":r.isArray(e)&&(e=r.map(e,function(a){return null==a?"":a+""})),b=r.valHooks[this.type]||r.valHooks[this.nodeName.toLowerCase()],b&&"set"in b&&void 0!==b.set(this,e,"value")||(this.value=e))});if(e)return b=r.valHooks[e.type]||r.valHooks[e.nodeName.toLowerCase()],b&&"get"in b&&void 0!==(c=b.get(e,"value"))?c:(c=e.value,"string"==typeof c?c.replace(ob,""):null==c?"":c)}}}),r.extend({valHooks:{option:{get:function(a){var b=r.find.attr(a,"value");return null!=b?b:mb(r.text(a))}},select:{get:function(a){var b,c,d,e=a.options,f=a.selectedIndex,g="select-one"===a.type,h=g?null:[],i=g?f+1:e.length;for(d=f<0?i:g?f:0;d<i;d++)if(c=e[d],(c.selected||d===f)&&!c.disabled&&(!c.parentNode.disabled||!r.nodeName(c.parentNode,"optgroup"))){if(b=r(c).val(),g)return b;h.push(b)}return h},set:function(a,b){var c,d,e=a.options,f=r.makeArray(b),g=e.length;while(g--)d=e[g],(d.selected=r.inArray(r.valHooks.option.get(d),f)>-1)&&(c=!0);return c||(a.selectedIndex=-1),f}}}}),r.each(["radio","checkbox"],function(){r.valHooks[this]={set:function(a,b){if(r.isArray(b))return a.checked=r.inArray(r(a).val(),b)>-1}},o.checkOn||(r.valHooks[this].get=function(a){return null===a.getAttribute("value")?"on":a.value})});var pb=/^(?:focusinfocus|focusoutblur)$/;r.extend(r.event,{trigger:function(b,c,e,f){var g,h,i,j,k,m,n,o=[e||d],p=l.call(b,"type")?b.type:b,q=l.call(b,"namespace")?b.namespace.split("."):[];if(h=i=e=e||d,3!==e.nodeType&&8!==e.nodeType&&!pb.test(p+r.event.triggered)&&(p.indexOf(".")>-1&&(q=p.split("."),p=q.shift(),q.sort()),k=p.indexOf(":")<0&&"on"+p,b=b[r.expando]?b:new r.Event(p,"object"==typeof b&&b),b.isTrigger=f?2:3,b.namespace=q.join("."),b.rnamespace=b.namespace?new RegExp("(^|\\.)"+q.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,b.result=void 0,b.target||(b.target=e),c=null==c?[b]:r.makeArray(c,[b]),n=r.event.special[p]||{},f||!n.trigger||n.trigger.apply(e,c)!==!1)){if(!f&&!n.noBubble&&!r.isWindow(e)){for(j=n.delegateType||p,pb.test(j+p)||(h=h.parentNode);h;h=h.parentNode)o.push(h),i=h;i===(e.ownerDocument||d)&&o.push(i.defaultView||i.parentWindow||a)}g=0;while((h=o[g++])&&!b.isPropagationStopped())b.type=g>1?j:n.bindType||p,m=(V.get(h,"events")||{})[b.type]&&V.get(h,"handle"),m&&m.apply(h,c),m=k&&h[k],m&&m.apply&&T(h)&&(b.result=m.apply(h,c),b.result===!1&&b.preventDefault());return b.type=p,f||b.isDefaultPrevented()||n._default&&n._default.apply(o.pop(),c)!==!1||!T(e)||k&&r.isFunction(e[p])&&!r.isWindow(e)&&(i=e[k],i&&(e[k]=null),r.event.triggered=p,e[p](),r.event.triggered=void 0,i&&(e[k]=i)),b.result}},simulate:function(a,b,c){var d=r.extend(new r.Event,c,{type:a,isSimulated:!0});r.event.trigger(d,null,b)}}),r.fn.extend({trigger:function(a,b){return this.each(function(){r.event.trigger(a,b,this)})},triggerHandler:function(a,b){var c=this[0];if(c)return r.event.trigger(a,b,c,!0)}}),r.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(a,b){r.fn[b]=function(a,c){return arguments.length>0?this.on(b,null,a,c):this.trigger(b)}}),r.fn.extend({hover:function(a,b){return this.mouseenter(a).mouseleave(b||a)}}),o.focusin="onfocusin"in a,o.focusin||r.each({focus:"focusin",blur:"focusout"},function(a,b){var c=function(a){r.event.simulate(b,a.target,r.event.fix(a))};r.event.special[b]={setup:function(){var d=this.ownerDocument||this,e=V.access(d,b);e||d.addEventListener(a,c,!0),V.access(d,b,(e||0)+1)},teardown:function(){var d=this.ownerDocument||this,e=V.access(d,b)-1;e?V.access(d,b,e):(d.removeEventListener(a,c,!0),V.remove(d,b))}}});var qb=a.location,rb=r.now(),sb=/\?/;r.parseXML=function(b){var c;if(!b||"string"!=typeof b)return null;try{c=(new a.DOMParser).parseFromString(b,"text/xml")}catch(d){c=void 0}return c&&!c.getElementsByTagName("parsererror").length||r.error("Invalid XML: "+b),c};var tb=/\[\]$/,ub=/\r?\n/g,vb=/^(?:submit|button|image|reset|file)$/i,wb=/^(?:input|select|textarea|keygen)/i;function xb(a,b,c,d){var e;if(r.isArray(b))r.each(b,function(b,e){c||tb.test(a)?d(a,e):xb(a+"["+("object"==typeof e&&null!=e?b:"")+"]",e,c,d)});else if(c||"object"!==r.type(b))d(a,b);else for(e in b)xb(a+"["+e+"]",b[e],c,d)}r.param=function(a,b){var c,d=[],e=function(a,b){var c=r.isFunction(b)?b():b;d[d.length]=encodeURIComponent(a)+"="+encodeURIComponent(null==c?"":c)};if(r.isArray(a)||a.jquery&&!r.isPlainObject(a))r.each(a,function(){e(this.name,this.value)});else for(c in a)xb(c,a[c],b,e);return d.join("&")},r.fn.extend({serialize:function(){return r.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var a=r.prop(this,"elements");return a?r.makeArray(a):this}).filter(function(){var a=this.type;return this.name&&!r(this).is(":disabled")&&wb.test(this.nodeName)&&!vb.test(a)&&(this.checked||!ia.test(a))}).map(function(a,b){var c=r(this).val();return null==c?null:r.isArray(c)?r.map(c,function(a){return{name:b.name,value:a.replace(ub,"\r\n")}}):{name:b.name,value:c.replace(ub,"\r\n")}}).get()}});var yb=/%20/g,zb=/#.*$/,Ab=/([?&])_=[^&]*/,Bb=/^(.*?):[ \t]*([^\r\n]*)$/gm,Cb=/^(?:about|app|app-storage|.+-extension|file|res|widget):$/,Db=/^(?:GET|HEAD)$/,Eb=/^\/\//,Fb={},Gb={},Hb="*/".concat("*"),Ib=d.createElement("a");Ib.href=qb.href;function Jb(a){return function(b,c){"string"!=typeof b&&(c=b,b="*");var d,e=0,f=b.toLowerCase().match(K)||[];if(r.isFunction(c))while(d=f[e++])"+"===d[0]?(d=d.slice(1)||"*",(a[d]=a[d]||[]).unshift(c)):(a[d]=a[d]||[]).push(c)}}function Kb(a,b,c,d){var e={},f=a===Gb;function g(h){var i;return e[h]=!0,r.each(a[h]||[],function(a,h){var j=h(b,c,d);return"string"!=typeof j||f||e[j]?f?!(i=j):void 0:(b.dataTypes.unshift(j),g(j),!1)}),i}return g(b.dataTypes[0])||!e["*"]&&g("*")}function Lb(a,b){var c,d,e=r.ajaxSettings.flatOptions||{};for(c in b)void 0!==b[c]&&((e[c]?a:d||(d={}))[c]=b[c]);return d&&r.extend(!0,a,d),a}function Mb(a,b,c){var d,e,f,g,h=a.contents,i=a.dataTypes;while("*"===i[0])i.shift(),void 0===d&&(d=a.mimeType||b.getResponseHeader("Content-Type"));if(d)for(e in h)if(h[e]&&h[e].test(d)){i.unshift(e);break}if(i[0]in c)f=i[0];else{for(e in c){if(!i[0]||a.converters[e+" "+i[0]]){f=e;break}g||(g=e)}f=f||g}if(f)return f!==i[0]&&i.unshift(f),c[f]}function Nb(a,b,c,d){var e,f,g,h,i,j={},k=a.dataTypes.slice();if(k[1])for(g in a.converters)j[g.toLowerCase()]=a.converters[g];f=k.shift();while(f)if(a.responseFields[f]&&(c[a.responseFields[f]]=b),!i&&d&&a.dataFilter&&(b=a.dataFilter(b,a.dataType)),i=f,f=k.shift())if("*"===f)f=i;else if("*"!==i&&i!==f){if(g=j[i+" "+f]||j["* "+f],!g)for(e in j)if(h=e.split(" "),h[1]===f&&(g=j[i+" "+h[0]]||j["* "+h[0]])){g===!0?g=j[e]:j[e]!==!0&&(f=h[0],k.unshift(h[1]));break}if(g!==!0)if(g&&a["throws"])b=g(b);else try{b=g(b)}catch(l){return{state:"parsererror",error:g?l:"No conversion from "+i+" to "+f}}}return{state:"success",data:b}}r.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:qb.href,type:"GET",isLocal:Cb.test(qb.protocol),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":Hb,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/\bxml\b/,html:/\bhtml/,json:/\bjson\b/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":JSON.parse,"text xml":r.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(a,b){return b?Lb(Lb(a,r.ajaxSettings),b):Lb(r.ajaxSettings,a)},ajaxPrefilter:Jb(Fb),ajaxTransport:Jb(Gb),ajax:function(b,c){"object"==typeof b&&(c=b,b=void 0),c=c||{};var e,f,g,h,i,j,k,l,m,n,o=r.ajaxSetup({},c),p=o.context||o,q=o.context&&(p.nodeType||p.jquery)?r(p):r.event,s=r.Deferred(),t=r.Callbacks("once memory"),u=o.statusCode||{},v={},w={},x="canceled",y={readyState:0,getResponseHeader:function(a){var b;if(k){if(!h){h={};while(b=Bb.exec(g))h[b[1].toLowerCase()]=b[2]}b=h[a.toLowerCase()]}return null==b?null:b},getAllResponseHeaders:function(){return k?g:null},setRequestHeader:function(a,b){return null==k&&(a=w[a.toLowerCase()]=w[a.toLowerCase()]||a,v[a]=b),this},overrideMimeType:function(a){return null==k&&(o.mimeType=a),this},statusCode:function(a){var b;if(a)if(k)y.always(a[y.status]);else for(b in a)u[b]=[u[b],a[b]];return this},abort:function(a){var b=a||x;return e&&e.abort(b),A(0,b),this}};if(s.promise(y),o.url=((b||o.url||qb.href)+"").replace(Eb,qb.protocol+"//"),o.type=c.method||c.type||o.method||o.type,o.dataTypes=(o.dataType||"*").toLowerCase().match(K)||[""],null==o.crossDomain){j=d.createElement("a");try{j.href=o.url,j.href=j.href,o.crossDomain=Ib.protocol+"//"+Ib.host!=j.protocol+"//"+j.host}catch(z){o.crossDomain=!0}}if(o.data&&o.processData&&"string"!=typeof o.data&&(o.data=r.param(o.data,o.traditional)),Kb(Fb,o,c,y),k)return y;l=r.event&&o.global,l&&0===r.active++&&r.event.trigger("ajaxStart"),o.type=o.type.toUpperCase(),o.hasContent=!Db.test(o.type),f=o.url.replace(zb,""),o.hasContent?o.data&&o.processData&&0===(o.contentType||"").indexOf("application/x-www-form-urlencoded")&&(o.data=o.data.replace(yb,"+")):(n=o.url.slice(f.length),o.data&&(f+=(sb.test(f)?"&":"?")+o.data,delete o.data),o.cache===!1&&(f=f.replace(Ab,"$1"),n=(sb.test(f)?"&":"?")+"_="+rb++ +n),o.url=f+n),o.ifModified&&(r.lastModified[f]&&y.setRequestHeader("If-Modified-Since",r.lastModified[f]),r.etag[f]&&y.setRequestHeader("If-None-Match",r.etag[f])),(o.data&&o.hasContent&&o.contentType!==!1||c.contentType)&&y.setRequestHeader("Content-Type",o.contentType),y.setRequestHeader("Accept",o.dataTypes[0]&&o.accepts[o.dataTypes[0]]?o.accepts[o.dataTypes[0]]+("*"!==o.dataTypes[0]?", "+Hb+"; q=0.01":""):o.accepts["*"]);for(m in o.headers)y.setRequestHeader(m,o.headers[m]);if(o.beforeSend&&(o.beforeSend.call(p,y,o)===!1||k))return y.abort();if(x="abort",t.add(o.complete),y.done(o.success),y.fail(o.error),e=Kb(Gb,o,c,y)){if(y.readyState=1,l&&q.trigger("ajaxSend",[y,o]),k)return y;o.async&&o.timeout>0&&(i=a.setTimeout(function(){y.abort("timeout")},o.timeout));try{k=!1,e.send(v,A)}catch(z){if(k)throw z;A(-1,z)}}else A(-1,"No Transport");function A(b,c,d,h){var j,m,n,v,w,x=c;k||(k=!0,i&&a.clearTimeout(i),e=void 0,g=h||"",y.readyState=b>0?4:0,j=b>=200&&b<300||304===b,d&&(v=Mb(o,y,d)),v=Nb(o,v,y,j),j?(o.ifModified&&(w=y.getResponseHeader("Last-Modified"),w&&(r.lastModified[f]=w),w=y.getResponseHeader("etag"),w&&(r.etag[f]=w)),204===b||"HEAD"===o.type?x="nocontent":304===b?x="notmodified":(x=v.state,m=v.data,n=v.error,j=!n)):(n=x,!b&&x||(x="error",b<0&&(b=0))),y.status=b,y.statusText=(c||x)+"",j?s.resolveWith(p,[m,x,y]):s.rejectWith(p,[y,x,n]),y.statusCode(u),u=void 0,l&&q.trigger(j?"ajaxSuccess":"ajaxError",[y,o,j?m:n]),t.fireWith(p,[y,x]),l&&(q.trigger("ajaxComplete",[y,o]),--r.active||r.event.trigger("ajaxStop")))}return y},getJSON:function(a,b,c){return r.get(a,b,c,"json")},getScript:function(a,b){return r.get(a,void 0,b,"script")}}),r.each(["get","post"],function(a,b){r[b]=function(a,c,d,e){return r.isFunction(c)&&(e=e||d,d=c,c=void 0),r.ajax(r.extend({url:a,type:b,dataType:e,data:c,success:d},r.isPlainObject(a)&&a))}}),r._evalUrl=function(a){return r.ajax({url:a,type:"GET",dataType:"script",cache:!0,async:!1,global:!1,"throws":!0})},r.fn.extend({wrapAll:function(a){var b;return this[0]&&(r.isFunction(a)&&(a=a.call(this[0])),b=r(a,this[0].ownerDocument).eq(0).clone(!0),this[0].parentNode&&b.insertBefore(this[0]),b.map(function(){var a=this;while(a.firstElementChild)a=a.firstElementChild;return a}).append(this)),this},wrapInner:function(a){return r.isFunction(a)?this.each(function(b){r(this).wrapInner(a.call(this,b))}):this.each(function(){var b=r(this),c=b.contents();c.length?c.wrapAll(a):b.append(a)})},wrap:function(a){var b=r.isFunction(a);return this.each(function(c){r(this).wrapAll(b?a.call(this,c):a)})},unwrap:function(a){return this.parent(a).not("body").each(function(){r(this).replaceWith(this.childNodes)}),this}}),r.expr.pseudos.hidden=function(a){return!r.expr.pseudos.visible(a)},r.expr.pseudos.visible=function(a){return!!(a.offsetWidth||a.offsetHeight||a.getClientRects().length)},r.ajaxSettings.xhr=function(){try{return new a.XMLHttpRequest}catch(b){}};var Ob={0:200,1223:204},Pb=r.ajaxSettings.xhr();o.cors=!!Pb&&"withCredentials"in Pb,o.ajax=Pb=!!Pb,r.ajaxTransport(function(b){var c,d;if(o.cors||Pb&&!b.crossDomain)return{send:function(e,f){var g,h=b.xhr();if(h.open(b.type,b.url,b.async,b.username,b.password),b.xhrFields)for(g in b.xhrFields)h[g]=b.xhrFields[g];b.mimeType&&h.overrideMimeType&&h.overrideMimeType(b.mimeType),b.crossDomain||e["X-Requested-With"]||(e["X-Requested-With"]="XMLHttpRequest");for(g in e)h.setRequestHeader(g,e[g]);c=function(a){return function(){c&&(c=d=h.onload=h.onerror=h.onabort=h.onreadystatechange=null,"abort"===a?h.abort():"error"===a?"number"!=typeof h.status?f(0,"error"):f(h.status,h.statusText):f(Ob[h.status]||h.status,h.statusText,"text"!==(h.responseType||"text")||"string"!=typeof h.responseText?{binary:h.response}:{text:h.responseText},h.getAllResponseHeaders()))}},h.onload=c(),d=h.onerror=c("error"),void 0!==h.onabort?h.onabort=d:h.onreadystatechange=function(){4===h.readyState&&a.setTimeout(function(){c&&d()})},c=c("abort");try{h.send(b.hasContent&&b.data||null)}catch(i){if(c)throw i}},abort:function(){c&&c()}}}),r.ajaxPrefilter(function(a){a.crossDomain&&(a.contents.script=!1)}),r.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/\b(?:java|ecma)script\b/},converters:{"text script":function(a){return r.globalEval(a),a}}}),r.ajaxPrefilter("script",function(a){void 0===a.cache&&(a.cache=!1),a.crossDomain&&(a.type="GET")}),r.ajaxTransport("script",function(a){if(a.crossDomain){var b,c;return{send:function(e,f){b=r("<script>").prop({charset:a.scriptCharset,src:a.url}).on("load error",c=function(a){b.remove(),c=null,a&&f("error"===a.type?404:200,a.type)}),d.head.appendChild(b[0])},abort:function(){c&&c()}}}});var Qb=[],Rb=/(=)\?(?=&|$)|\?\?/;r.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var a=Qb.pop()||r.expando+"_"+rb++;return this[a]=!0,a}}),r.ajaxPrefilter("json jsonp",function(b,c,d){var e,f,g,h=b.jsonp!==!1&&(Rb.test(b.url)?"url":"string"==typeof b.data&&0===(b.contentType||"").indexOf("application/x-www-form-urlencoded")&&Rb.test(b.data)&&"data");if(h||"jsonp"===b.dataTypes[0])return e=b.jsonpCallback=r.isFunction(b.jsonpCallback)?b.jsonpCallback():b.jsonpCallback,h?b[h]=b[h].replace(Rb,"$1"+e):b.jsonp!==!1&&(b.url+=(sb.test(b.url)?"&":"?")+b.jsonp+"="+e),b.converters["script json"]=function(){return g||r.error(e+" was not called"),g[0]},b.dataTypes[0]="json",f=a[e],a[e]=function(){g=arguments},d.always(function(){void 0===f?r(a).removeProp(e):a[e]=f,b[e]&&(b.jsonpCallback=c.jsonpCallback,Qb.push(e)),g&&r.isFunction(f)&&f(g[0]),g=f=void 0}),"script"}),o.createHTMLDocument=function(){var a=d.implementation.createHTMLDocument("").body;return a.innerHTML="<form></form><form></form>",2===a.childNodes.length}(),r.parseHTML=function(a,b,c){if("string"!=typeof a)return[];"boolean"==typeof b&&(c=b,b=!1);var e,f,g;return b||(o.createHTMLDocument?(b=d.implementation.createHTMLDocument(""),e=b.createElement("base"),e.href=d.location.href,b.head.appendChild(e)):b=d),f=B.exec(a),g=!c&&[],f?[b.createElement(f[1])]:(f=pa([a],b,g),g&&g.length&&r(g).remove(),r.merge([],f.childNodes))},r.fn.load=function(a,b,c){var d,e,f,g=this,h=a.indexOf(" ");return h>-1&&(d=mb(a.slice(h)),a=a.slice(0,h)),r.isFunction(b)?(c=b,b=void 0):b&&"object"==typeof b&&(e="POST"),g.length>0&&r.ajax({url:a,type:e||"GET",dataType:"html",data:b}).done(function(a){f=arguments,g.html(d?r("<div>").append(r.parseHTML(a)).find(d):a)}).always(c&&function(a,b){g.each(function(){c.apply(this,f||[a.responseText,b,a])})}),this},r.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(a,b){r.fn[b]=function(a){return this.on(b,a)}}),r.expr.pseudos.animated=function(a){return r.grep(r.timers,function(b){return a===b.elem}).length};function Sb(a){return r.isWindow(a)?a:9===a.nodeType&&a.defaultView}r.offset={setOffset:function(a,b,c){var d,e,f,g,h,i,j,k=r.css(a,"position"),l=r(a),m={};"static"===k&&(a.style.position="relative"),h=l.offset(),f=r.css(a,"top"),i=r.css(a,"left"),j=("absolute"===k||"fixed"===k)&&(f+i).indexOf("auto")>-1,j?(d=l.position(),g=d.top,e=d.left):(g=parseFloat(f)||0,e=parseFloat(i)||0),r.isFunction(b)&&(b=b.call(a,c,r.extend({},h))),null!=b.top&&(m.top=b.top-h.top+g),null!=b.left&&(m.left=b.left-h.left+e),"using"in b?b.using.call(a,m):l.css(m)}},r.fn.extend({offset:function(a){if(arguments.length)return void 0===a?this:this.each(function(b){r.offset.setOffset(this,a,b)});var b,c,d,e,f=this[0];if(f)return f.getClientRects().length?(d=f.getBoundingClientRect(),d.width||d.height?(e=f.ownerDocument,c=Sb(e),b=e.documentElement,{top:d.top+c.pageYOffset-b.clientTop,left:d.left+c.pageXOffset-b.clientLeft}):d):{top:0,left:0}},position:function(){if(this[0]){var a,b,c=this[0],d={top:0,left:0};return"fixed"===r.css(c,"position")?b=c.getBoundingClientRect():(a=this.offsetParent(),b=this.offset(),r.nodeName(a[0],"html")||(d=a.offset()),d={top:d.top+r.css(a[0],"borderTopWidth",!0),left:d.left+r.css(a[0],"borderLeftWidth",!0)}),{top:b.top-d.top-r.css(c,"marginTop",!0),left:b.left-d.left-r.css(c,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var a=this.offsetParent;while(a&&"static"===r.css(a,"position"))a=a.offsetParent;return a||qa})}}),r.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(a,b){var c="pageYOffset"===b;r.fn[a]=function(d){return S(this,function(a,d,e){var f=Sb(a);return void 0===e?f?f[b]:a[d]:void(f?f.scrollTo(c?f.pageXOffset:e,c?e:f.pageYOffset):a[d]=e)},a,d,arguments.length)}}),r.each(["top","left"],function(a,b){r.cssHooks[b]=Oa(o.pixelPosition,function(a,c){if(c)return c=Na(a,b),La.test(c)?r(a).position()[b]+"px":c})}),r.each({Height:"height",Width:"width"},function(a,b){r.each({padding:"inner"+a,content:b,"":"outer"+a},function(c,d){r.fn[d]=function(e,f){var g=arguments.length&&(c||"boolean"!=typeof e),h=c||(e===!0||f===!0?"margin":"border");return S(this,function(b,c,e){var f;return r.isWindow(b)?0===d.indexOf("outer")?b["inner"+a]:b.document.documentElement["client"+a]:9===b.nodeType?(f=b.documentElement,Math.max(b.body["scroll"+a],f["scroll"+a],b.body["offset"+a],f["offset"+a],f["client"+a])):void 0===e?r.css(b,c,h):r.style(b,c,e,h)},b,g?e:void 0,g)}})}),r.fn.extend({bind:function(a,b,c){return this.on(a,null,b,c)},unbind:function(a,b){return this.off(a,null,b)},delegate:function(a,b,c,d){return this.on(b,a,c,d)},undelegate:function(a,b,c){return 1===arguments.length?this.off(a,"**"):this.off(b,a||"**",c)}}),r.parseJSON=JSON.parse,"function"==typeof define&&define.amd&&define("jquery",[],function(){return r});var Tb=a.jQuery,Ub=a.$;return r.noConflict=function(b){return a.$===r&&(a.$=Ub),b&&a.jQuery===r&&(a.jQuery=Tb),r},b||(a.jQuery=a.$=r),r});
--- /dev/null
+{"version":3,"sources":["jquery.js"],"names":["global","factory","module","exports","document","w","Error","window","this","noGlobal","arr","getProto","Object","getPrototypeOf","slice","concat","push","indexOf","class2type","toString","hasOwn","hasOwnProperty","fnToString","ObjectFunctionString","call","support","DOMEval","code","doc","script","createElement","text","head","appendChild","parentNode","removeChild","version","jQuery","selector","context","fn","init","rtrim","rmsPrefix","rdashAlpha","fcamelCase","all","letter","toUpperCase","prototype","jquery","constructor","length","toArray","get","num","pushStack","elems","ret","merge","prevObject","each","callback","map","elem","i","apply","arguments","first","eq","last","len","j","end","sort","splice","extend","options","name","src","copy","copyIsArray","clone","target","deep","isFunction","isPlainObject","isArray","undefined","expando","Math","random","replace","isReady","error","msg","noop","obj","type","Array","isWindow","isNumeric","isNaN","parseFloat","proto","Ctor","isEmptyObject","globalEval","camelCase","string","nodeName","toLowerCase","isArrayLike","trim","makeArray","results","inArray","second","grep","invert","callbackInverse","matches","callbackExpect","arg","value","guid","proxy","tmp","args","now","Date","Symbol","iterator","split","Sizzle","Expr","getText","isXML","tokenize","compile","select","outermostContext","sortInput","hasDuplicate","setDocument","docElem","documentIsHTML","rbuggyQSA","rbuggyMatches","contains","preferredDoc","dirruns","done","classCache","createCache","tokenCache","compilerCache","sortOrder","a","b","pop","push_native","list","booleans","whitespace","identifier","attributes","pseudos","rwhitespace","RegExp","rcomma","rcombinators","rattributeQuotes","rpseudo","ridentifier","matchExpr","ID","CLASS","TAG","ATTR","PSEUDO","CHILD","bool","needsContext","rinputs","rheader","rnative","rquickExpr","rsibling","runescape","funescape","_","escaped","escapedWhitespace","high","String","fromCharCode","rcssescape","fcssescape","ch","asCodePoint","charCodeAt","unloadHandler","disabledAncestor","addCombinator","disabled","dir","next","childNodes","nodeType","e","els","seed","m","nid","match","groups","newSelector","newContext","ownerDocument","exec","getElementById","id","getElementsByTagName","getElementsByClassName","qsa","test","getAttribute","setAttribute","toSelector","join","testContext","querySelectorAll","qsaError","removeAttribute","keys","cache","key","cacheLength","shift","markFunction","assert","el","addHandle","attrs","handler","attrHandle","siblingCheck","cur","diff","sourceIndex","nextSibling","createInputPseudo","createButtonPseudo","createDisabledPseudo","isDisabled","createPositionalPseudo","argument","matchIndexes","documentElement","node","hasCompare","subWindow","defaultView","top","addEventListener","attachEvent","className","createComment","getById","getElementsByName","filter","attrId","find","getAttributeNode","tag","innerHTML","input","matchesSelector","webkitMatchesSelector","mozMatchesSelector","oMatchesSelector","msMatchesSelector","disconnectedMatch","compareDocumentPosition","adown","bup","compare","sortDetached","aup","ap","bp","unshift","expr","elements","attr","val","specified","escape","sel","uniqueSort","duplicates","detectDuplicates","sortStable","textContent","firstChild","nodeValue","selectors","createPseudo","relative",">"," ","+","~","preFilter","excess","unquoted","nodeNameSelector","pattern","operator","check","result","what","simple","forward","ofType","xml","uniqueCache","outerCache","nodeIndex","start","parent","useCache","lastChild","uniqueID","pseudo","setFilters","idx","matched","not","matcher","unmatched","has","innerText","lang","elemLang","hash","location","root","focus","activeElement","hasFocus","href","tabIndex","enabled","checked","selected","selectedIndex","empty","header","button","even","odd","lt","gt","radio","checkbox","file","password","image","submit","reset","filters","parseOnly","tokens","soFar","preFilters","cached","combinator","base","skip","checkNonElements","doneName","oldCache","newCache","elementMatcher","matchers","multipleContexts","contexts","condense","newUnmatched","mapped","setMatcher","postFilter","postFinder","postSelector","temp","preMap","postMap","preexisting","matcherIn","matcherOut","matcherFromTokens","checkContext","leadingRelative","implicitRelative","matchContext","matchAnyContext","matcherFromGroupMatchers","elementMatchers","setMatchers","bySet","byElement","superMatcher","outermost","matchedCount","setMatched","contextBackup","dirrunsUnique","token","compiled","defaultValue","unique","isXMLDoc","escapeSelector","until","truncate","is","siblings","n","rneedsContext","rsingleTag","risSimple","winnow","qualifier","self","rootjQuery","parseHTML","ready","rparentsprev","guaranteedUnique","children","contents","prev","targets","l","closest","index","prevAll","add","addBack","sibling","parents","parentsUntil","nextAll","nextUntil","prevUntil","contentDocument","reverse","rnothtmlwhite","createOptions","object","flag","Callbacks","firing","memory","fired","locked","queue","firingIndex","fire","once","stopOnFalse","remove","disable","lock","fireWith","Identity","v","Thrower","ex","adoptValue","resolve","reject","method","promise","fail","then","Deferred","func","tuples","state","always","deferred","catch","pipe","fns","newDefer","tuple","returned","progress","notify","onFulfilled","onRejected","onProgress","maxDepth","depth","special","that","mightThrow","TypeError","notifyWith","resolveWith","process","exceptionHook","stackTrace","rejectWith","getStackHook","setTimeout","stateString","when","singleValue","remaining","resolveContexts","resolveValues","master","updateFunc","rerrorNames","stack","console","warn","message","readyException","readyList","readyWait","holdReady","hold","wait","completed","removeEventListener","readyState","doScroll","access","chainable","emptyGet","raw","bulk","acceptData","owner","Data","uid","defineProperty","configurable","set","data","prop","hasData","dataPriv","dataUser","rbrace","rmultiDash","getData","JSON","parse","dataAttr","removeData","_data","_removeData","dequeue","startLength","hooks","_queueHooks","stop","setter","clearQueue","count","defer","pnum","source","rcssNum","cssExpand","isHiddenWithinTree","style","display","css","swap","old","adjustCSS","valueParts","tween","adjusted","scale","maxIterations","currentValue","initial","unit","cssNumber","initialInUnit","defaultDisplayMap","getDefaultDisplay","body","showHide","show","values","hide","toggle","rcheckableType","rtagName","rscriptType","wrapMap","option","thead","col","tr","td","_default","optgroup","tbody","tfoot","colgroup","caption","th","getAll","setGlobalEval","refElements","rhtml","buildFragment","scripts","selection","ignored","wrap","fragment","createDocumentFragment","nodes","htmlPrefilter","createTextNode","div","checkClone","cloneNode","noCloneChecked","rkeyEvent","rmouseEvent","rtypenamespace","returnTrue","returnFalse","safeActiveElement","err","on","types","one","origFn","event","off","handleObjIn","eventHandle","events","t","handleObj","handlers","namespaces","origType","elemData","handle","triggered","dispatch","delegateType","bindType","namespace","delegateCount","setup","mappedTypes","origCount","teardown","removeEvent","nativeEvent","fix","handlerQueue","delegateTarget","preDispatch","isPropagationStopped","currentTarget","isImmediatePropagationStopped","rnamespace","preventDefault","stopPropagation","postDispatch","matchedHandlers","matchedSelectors","addProp","hook","Event","enumerable","originalEvent","writable","load","noBubble","trigger","blur","click","beforeunload","returnValue","props","isDefaultPrevented","defaultPrevented","relatedTarget","timeStamp","isSimulated","stopImmediatePropagation","altKey","bubbles","cancelable","changedTouches","ctrlKey","detail","eventPhase","metaKey","pageX","pageY","shiftKey","view","char","charCode","keyCode","buttons","clientX","clientY","offsetX","offsetY","pointerId","pointerType","screenX","screenY","targetTouches","toElement","touches","which","mouseenter","mouseleave","pointerenter","pointerleave","orig","related","rxhtmlTag","rnoInnerhtml","rchecked","rscriptTypeMasked","rcleanScript","manipulationTarget","content","disableScript","restoreScript","cloneCopyEvent","dest","pdataOld","pdataCur","udataOld","udataCur","fixInput","domManip","collection","hasScripts","iNoClone","html","_evalUrl","keepData","cleanData","dataAndEvents","deepDataAndEvents","srcElements","destElements","inPage","detach","append","prepend","insertBefore","before","after","replaceWith","replaceChild","appendTo","prependTo","insertAfter","replaceAll","original","insert","rmargin","rnumnonpx","getStyles","opener","getComputedStyle","computeStyleTests","cssText","container","divStyle","pixelPositionVal","reliableMarginLeftVal","marginLeft","boxSizingReliableVal","width","marginRight","pixelMarginRightVal","backgroundClip","clearCloneStyle","pixelPosition","boxSizingReliable","pixelMarginRight","reliableMarginLeft","curCSS","computed","minWidth","maxWidth","getPropertyValue","addGetHookIf","conditionFn","hookFn","rdisplayswap","cssShow","position","visibility","cssNormalTransform","letterSpacing","fontWeight","cssPrefixes","emptyStyle","vendorPropName","capName","setPositiveNumber","subtract","max","augmentWidthOrHeight","extra","isBorderBox","styles","getWidthOrHeight","valueIsBorderBox","getClientRects","getBoundingClientRect","cssHooks","opacity","animationIterationCount","columnCount","fillOpacity","flexGrow","flexShrink","lineHeight","order","orphans","widows","zIndex","zoom","cssProps","float","origName","isFinite","left","margin","padding","border","prefix","suffix","expand","expanded","parts","Tween","easing","propHooks","run","percent","eased","duration","pos","step","fx","scrollTop","scrollLeft","linear","p","swing","cos","PI","fxNow","timerId","rfxtypes","rrun","raf","requestAnimationFrame","tick","createFxNow","genFx","includeWidth","height","createTween","animation","Animation","tweeners","defaultPrefilter","opts","oldfire","propTween","restoreDisplay","isBox","anim","hidden","dataShow","unqueued","overflow","overflowX","overflowY","propFilter","specialEasing","properties","stopped","prefilters","currentTime","startTime","tweens","originalProperties","originalOptions","gotoEnd","timer","complete","*","tweener","prefilter","speed","opt","speeds","fadeTo","to","animate","optall","doAnimation","finish","stopQueue","timers","cssFn","slideDown","slideUp","slideToggle","fadeIn","fadeOut","fadeToggle","interval","setInterval","cancelAnimationFrame","clearInterval","slow","fast","delay","time","timeout","clearTimeout","checkOn","optSelected","radioValue","boolHook","removeAttr","nType","attrHooks","attrNames","getter","lowercaseName","rfocusable","rclickable","removeProp","propFix","tabindex","parseInt","for","class","stripAndCollapse","getClass","addClass","classes","curValue","clazz","finalValue","removeClass","toggleClass","stateVal","classNames","hasClass","rreturn","valHooks","optionSet","rfocusMorph","onlyHandlers","bubbleType","ontype","eventPath","isTrigger","parentWindow","simulate","triggerHandler","hover","fnOver","fnOut","focusin","attaches","nonce","rquery","parseXML","DOMParser","parseFromString","rbracket","rCRLF","rsubmitterTypes","rsubmittable","buildParams","traditional","param","s","valueOrFunction","encodeURIComponent","serialize","serializeArray","r20","rhash","rantiCache","rheaders","rlocalProtocol","rnoContent","rprotocol","transports","allTypes","originAnchor","addToPrefiltersOrTransports","structure","dataTypeExpression","dataType","dataTypes","inspectPrefiltersOrTransports","jqXHR","inspected","seekingTransport","inspect","prefilterOrFactory","dataTypeOrTransport","ajaxExtend","flatOptions","ajaxSettings","ajaxHandleResponses","responses","ct","finalDataType","firstDataType","mimeType","getResponseHeader","converters","ajaxConvert","response","isSuccess","conv2","current","conv","responseFields","dataFilter","active","lastModified","etag","url","isLocal","protocol","processData","async","contentType","accepts","json","* text","text html","text json","text xml","ajaxSetup","settings","ajaxPrefilter","ajaxTransport","ajax","transport","cacheURL","responseHeadersString","responseHeaders","timeoutTimer","urlAnchor","fireGlobals","uncached","callbackContext","globalEventContext","completeDeferred","statusCode","requestHeaders","requestHeadersNames","strAbort","getAllResponseHeaders","setRequestHeader","overrideMimeType","status","abort","statusText","finalText","crossDomain","host","hasContent","ifModified","headers","beforeSend","success","send","nativeStatusText","modified","getJSON","getScript","throws","wrapAll","firstElementChild","wrapInner","unwrap","visible","offsetWidth","offsetHeight","xhr","XMLHttpRequest","xhrSuccessStatus","0","1223","xhrSupported","cors","errorCallback","open","username","xhrFields","onload","onerror","onabort","onreadystatechange","responseType","responseText","binary","text script","charset","scriptCharset","evt","oldCallbacks","rjsonp","jsonp","jsonpCallback","originalSettings","callbackName","overwritten","responseContainer","jsonProp","createHTMLDocument","implementation","keepScripts","parsed","params","animated","getWindow","offset","setOffset","curPosition","curLeft","curCSSTop","curTop","curOffset","curCSSLeft","calculatePosition","curElem","using","win","rect","pageYOffset","clientTop","pageXOffset","clientLeft","offsetParent","parentOffset","scrollTo","Height","Width","","defaultExtra","funcName","bind","unbind","delegate","undelegate","parseJSON","define","amd","_jQuery","_$","$","noConflict"],"mappings":"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","file":"jquery.min.js"}
\ No newline at end of file
--- /dev/null
+/*!
+ * jQuery JavaScript Library v3.1.1 -ajax,-ajax/jsonp,-ajax/load,-ajax/parseXML,-ajax/script,-ajax/var/location,-ajax/var/nonce,-ajax/var/rquery,-ajax/xhr,-manipulation/_evalUrl,-event/ajax,-effects,-effects/animatedSelector,-effects/Tween,-deprecated
+ * https://jquery.com/
+ *
+ * Includes Sizzle.js
+ * https://sizzlejs.com/
+ *
+ * Copyright jQuery Foundation and other contributors
+ * Released under the MIT license
+ * https://jquery.org/license
+ *
+ * Date: 2016-09-22T22:30Z
+ */
+( function( global, factory ) {
+
+ "use strict";
+
+ if ( typeof module === "object" && typeof module.exports === "object" ) {
+
+ // For CommonJS and CommonJS-like environments where a proper `window`
+ // is present, execute the factory and get jQuery.
+ // For environments that do not have a `window` with a `document`
+ // (such as Node.js), expose a factory as module.exports.
+ // This accentuates the need for the creation of a real `window`.
+ // e.g. var jQuery = require("jquery")(window);
+ // See ticket #14549 for more info.
+ module.exports = global.document ?
+ factory( global, true ) :
+ function( w ) {
+ if ( !w.document ) {
+ throw new Error( "jQuery requires a window with a document" );
+ }
+ return factory( w );
+ };
+ } else {
+ factory( global );
+ }
+
+// Pass this if window is not defined yet
+} )( typeof window !== "undefined" ? window : this, function( window, noGlobal ) {
+
+// Edge <= 12 - 13+, Firefox <=18 - 45+, IE 10 - 11, Safari 5.1 - 9+, iOS 6 - 9.1
+// throw exceptions when non-strict code (e.g., ASP.NET 4.5) accesses strict mode
+// arguments.callee.caller (trac-13335). But as of jQuery 3.0 (2016), strict mode should be common
+// enough that all such attempts are guarded in a try block.
+"use strict";
+
+var arr = [];
+
+var document = window.document;
+
+var getProto = Object.getPrototypeOf;
+
+var slice = arr.slice;
+
+var concat = arr.concat;
+
+var push = arr.push;
+
+var indexOf = arr.indexOf;
+
+var class2type = {};
+
+var toString = class2type.toString;
+
+var hasOwn = class2type.hasOwnProperty;
+
+var fnToString = hasOwn.toString;
+
+var ObjectFunctionString = fnToString.call( Object );
+
+var support = {};
+
+
+
+ function DOMEval( code, doc ) {
+ doc = doc || document;
+
+ var script = doc.createElement( "script" );
+
+ script.text = code;
+ doc.head.appendChild( script ).parentNode.removeChild( script );
+ }
+/* global Symbol */
+// Defining this global in .eslintrc.json would create a danger of using the global
+// unguarded in another place, it seems safer to define global only for this module
+
+
+
+var
+ version = "3.1.1 -ajax,-ajax/jsonp,-ajax/load,-ajax/parseXML,-ajax/script,-ajax/var/location,-ajax/var/nonce,-ajax/var/rquery,-ajax/xhr,-manipulation/_evalUrl,-event/ajax,-effects,-effects/animatedSelector,-effects/Tween,-deprecated",
+
+ // Define a local copy of jQuery
+ jQuery = function( selector, context ) {
+
+ // The jQuery object is actually just the init constructor 'enhanced'
+ // Need init if jQuery is called (just allow error to be thrown if not included)
+ return new jQuery.fn.init( selector, context );
+ },
+
+ // Support: Android <=4.0 only
+ // Make sure we trim BOM and NBSP
+ rtrim = /^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,
+
+ // Matches dashed string for camelizing
+ rmsPrefix = /^-ms-/,
+ rdashAlpha = /-([a-z])/g,
+
+ // Used by jQuery.camelCase as callback to replace()
+ fcamelCase = function( all, letter ) {
+ return letter.toUpperCase();
+ };
+
+jQuery.fn = jQuery.prototype = {
+
+ // The current version of jQuery being used
+ jquery: version,
+
+ constructor: jQuery,
+
+ // The default length of a jQuery object is 0
+ length: 0,
+
+ toArray: function() {
+ return slice.call( this );
+ },
+
+ // Get the Nth element in the matched element set OR
+ // Get the whole matched element set as a clean array
+ get: function( num ) {
+
+ // Return all the elements in a clean array
+ if ( num == null ) {
+ return slice.call( this );
+ }
+
+ // Return just the one element from the set
+ return num < 0 ? this[ num + this.length ] : this[ num ];
+ },
+
+ // Take an array of elements and push it onto the stack
+ // (returning the new matched element set)
+ pushStack: function( elems ) {
+
+ // Build a new jQuery matched element set
+ var ret = jQuery.merge( this.constructor(), elems );
+
+ // Add the old object onto the stack (as a reference)
+ ret.prevObject = this;
+
+ // Return the newly-formed element set
+ return ret;
+ },
+
+ // Execute a callback for every element in the matched set.
+ each: function( callback ) {
+ return jQuery.each( this, callback );
+ },
+
+ map: function( callback ) {
+ return this.pushStack( jQuery.map( this, function( elem, i ) {
+ return callback.call( elem, i, elem );
+ } ) );
+ },
+
+ slice: function() {
+ return this.pushStack( slice.apply( this, arguments ) );
+ },
+
+ first: function() {
+ return this.eq( 0 );
+ },
+
+ last: function() {
+ return this.eq( -1 );
+ },
+
+ eq: function( i ) {
+ var len = this.length,
+ j = +i + ( i < 0 ? len : 0 );
+ return this.pushStack( j >= 0 && j < len ? [ this[ j ] ] : [] );
+ },
+
+ end: function() {
+ return this.prevObject || this.constructor();
+ },
+
+ // For internal use only.
+ // Behaves like an Array's method, not like a jQuery method.
+ push: push,
+ sort: arr.sort,
+ splice: arr.splice
+};
+
+jQuery.extend = jQuery.fn.extend = function() {
+ var options, name, src, copy, copyIsArray, clone,
+ target = arguments[ 0 ] || {},
+ i = 1,
+ length = arguments.length,
+ deep = false;
+
+ // Handle a deep copy situation
+ if ( typeof target === "boolean" ) {
+ deep = target;
+
+ // Skip the boolean and the target
+ target = arguments[ i ] || {};
+ i++;
+ }
+
+ // Handle case when target is a string or something (possible in deep copy)
+ if ( typeof target !== "object" && !jQuery.isFunction( target ) ) {
+ target = {};
+ }
+
+ // Extend jQuery itself if only one argument is passed
+ if ( i === length ) {
+ target = this;
+ i--;
+ }
+
+ for ( ; i < length; i++ ) {
+
+ // Only deal with non-null/undefined values
+ if ( ( options = arguments[ i ] ) != null ) {
+
+ // Extend the base object
+ for ( name in options ) {
+ src = target[ name ];
+ copy = options[ name ];
+
+ // Prevent never-ending loop
+ if ( target === copy ) {
+ continue;
+ }
+
+ // Recurse if we're merging plain objects or arrays
+ if ( deep && copy && ( jQuery.isPlainObject( copy ) ||
+ ( copyIsArray = jQuery.isArray( copy ) ) ) ) {
+
+ if ( copyIsArray ) {
+ copyIsArray = false;
+ clone = src && jQuery.isArray( src ) ? src : [];
+
+ } else {
+ clone = src && jQuery.isPlainObject( src ) ? src : {};
+ }
+
+ // Never move original objects, clone them
+ target[ name ] = jQuery.extend( deep, clone, copy );
+
+ // Don't bring in undefined values
+ } else if ( copy !== undefined ) {
+ target[ name ] = copy;
+ }
+ }
+ }
+ }
+
+ // Return the modified object
+ return target;
+};
+
+jQuery.extend( {
+
+ // Unique for each copy of jQuery on the page
+ expando: "jQuery" + ( version + Math.random() ).replace( /\D/g, "" ),
+
+ // Assume jQuery is ready without the ready module
+ isReady: true,
+
+ error: function( msg ) {
+ throw new Error( msg );
+ },
+
+ noop: function() {},
+
+ isFunction: function( obj ) {
+ return jQuery.type( obj ) === "function";
+ },
+
+ isArray: Array.isArray,
+
+ isWindow: function( obj ) {
+ return obj != null && obj === obj.window;
+ },
+
+ isNumeric: function( obj ) {
+
+ // As of jQuery 3.0, isNumeric is limited to
+ // strings and numbers (primitives or objects)
+ // that can be coerced to finite numbers (gh-2662)
+ var type = jQuery.type( obj );
+ return ( type === "number" || type === "string" ) &&
+
+ // parseFloat NaNs numeric-cast false positives ("")
+ // ...but misinterprets leading-number strings, particularly hex literals ("0x...")
+ // subtraction forces infinities to NaN
+ !isNaN( obj - parseFloat( obj ) );
+ },
+
+ isPlainObject: function( obj ) {
+ var proto, Ctor;
+
+ // Detect obvious negatives
+ // Use toString instead of jQuery.type to catch host objects
+ if ( !obj || toString.call( obj ) !== "[object Object]" ) {
+ return false;
+ }
+
+ proto = getProto( obj );
+
+ // Objects with no prototype (e.g., `Object.create( null )`) are plain
+ if ( !proto ) {
+ return true;
+ }
+
+ // Objects with prototype are plain iff they were constructed by a global Object function
+ Ctor = hasOwn.call( proto, "constructor" ) && proto.constructor;
+ return typeof Ctor === "function" && fnToString.call( Ctor ) === ObjectFunctionString;
+ },
+
+ isEmptyObject: function( obj ) {
+
+ /* eslint-disable no-unused-vars */
+ // See https://github.com/eslint/eslint/issues/6125
+ var name;
+
+ for ( name in obj ) {
+ return false;
+ }
+ return true;
+ },
+
+ type: function( obj ) {
+ if ( obj == null ) {
+ return obj + "";
+ }
+
+ // Support: Android <=2.3 only (functionish RegExp)
+ return typeof obj === "object" || typeof obj === "function" ?
+ class2type[ toString.call( obj ) ] || "object" :
+ typeof obj;
+ },
+
+ // Evaluates a script in a global context
+ globalEval: function( code ) {
+ DOMEval( code );
+ },
+
+ // Convert dashed to camelCase; used by the css and data modules
+ // Support: IE <=9 - 11, Edge 12 - 13
+ // Microsoft forgot to hump their vendor prefix (#9572)
+ camelCase: function( string ) {
+ return string.replace( rmsPrefix, "ms-" ).replace( rdashAlpha, fcamelCase );
+ },
+
+ nodeName: function( elem, name ) {
+ return elem.nodeName && elem.nodeName.toLowerCase() === name.toLowerCase();
+ },
+
+ each: function( obj, callback ) {
+ var length, i = 0;
+
+ if ( isArrayLike( obj ) ) {
+ length = obj.length;
+ for ( ; i < length; i++ ) {
+ if ( callback.call( obj[ i ], i, obj[ i ] ) === false ) {
+ break;
+ }
+ }
+ } else {
+ for ( i in obj ) {
+ if ( callback.call( obj[ i ], i, obj[ i ] ) === false ) {
+ break;
+ }
+ }
+ }
+
+ return obj;
+ },
+
+ // Support: Android <=4.0 only
+ trim: function( text ) {
+ return text == null ?
+ "" :
+ ( text + "" ).replace( rtrim, "" );
+ },
+
+ // results is for internal usage only
+ makeArray: function( arr, results ) {
+ var ret = results || [];
+
+ if ( arr != null ) {
+ if ( isArrayLike( Object( arr ) ) ) {
+ jQuery.merge( ret,
+ typeof arr === "string" ?
+ [ arr ] : arr
+ );
+ } else {
+ push.call( ret, arr );
+ }
+ }
+
+ return ret;
+ },
+
+ inArray: function( elem, arr, i ) {
+ return arr == null ? -1 : indexOf.call( arr, elem, i );
+ },
+
+ // Support: Android <=4.0 only, PhantomJS 1 only
+ // push.apply(_, arraylike) throws on ancient WebKit
+ merge: function( first, second ) {
+ var len = +second.length,
+ j = 0,
+ i = first.length;
+
+ for ( ; j < len; j++ ) {
+ first[ i++ ] = second[ j ];
+ }
+
+ first.length = i;
+
+ return first;
+ },
+
+ grep: function( elems, callback, invert ) {
+ var callbackInverse,
+ matches = [],
+ i = 0,
+ length = elems.length,
+ callbackExpect = !invert;
+
+ // Go through the array, only saving the items
+ // that pass the validator function
+ for ( ; i < length; i++ ) {
+ callbackInverse = !callback( elems[ i ], i );
+ if ( callbackInverse !== callbackExpect ) {
+ matches.push( elems[ i ] );
+ }
+ }
+
+ return matches;
+ },
+
+ // arg is for internal usage only
+ map: function( elems, callback, arg ) {
+ var length, value,
+ i = 0,
+ ret = [];
+
+ // Go through the array, translating each of the items to their new values
+ if ( isArrayLike( elems ) ) {
+ length = elems.length;
+ for ( ; i < length; i++ ) {
+ value = callback( elems[ i ], i, arg );
+
+ if ( value != null ) {
+ ret.push( value );
+ }
+ }
+
+ // Go through every key on the object,
+ } else {
+ for ( i in elems ) {
+ value = callback( elems[ i ], i, arg );
+
+ if ( value != null ) {
+ ret.push( value );
+ }
+ }
+ }
+
+ // Flatten any nested arrays
+ return concat.apply( [], ret );
+ },
+
+ // A global GUID counter for objects
+ guid: 1,
+
+ // Bind a function to a context, optionally partially applying any
+ // arguments.
+ proxy: function( fn, context ) {
+ var tmp, args, proxy;
+
+ if ( typeof context === "string" ) {
+ tmp = fn[ context ];
+ context = fn;
+ fn = tmp;
+ }
+
+ // Quick check to determine if target is callable, in the spec
+ // this throws a TypeError, but we will just return undefined.
+ if ( !jQuery.isFunction( fn ) ) {
+ return undefined;
+ }
+
+ // Simulated bind
+ args = slice.call( arguments, 2 );
+ proxy = function() {
+ return fn.apply( context || this, args.concat( slice.call( arguments ) ) );
+ };
+
+ // Set the guid of unique handler to the same of original handler, so it can be removed
+ proxy.guid = fn.guid = fn.guid || jQuery.guid++;
+
+ return proxy;
+ },
+
+ now: Date.now,
+
+ // jQuery.support is not used in Core but other projects attach their
+ // properties to it so it needs to exist.
+ support: support
+} );
+
+if ( typeof Symbol === "function" ) {
+ jQuery.fn[ Symbol.iterator ] = arr[ Symbol.iterator ];
+}
+
+// Populate the class2type map
+jQuery.each( "Boolean Number String Function Array Date RegExp Object Error Symbol".split( " " ),
+function( i, name ) {
+ class2type[ "[object " + name + "]" ] = name.toLowerCase();
+} );
+
+function isArrayLike( obj ) {
+
+ // Support: real iOS 8.2 only (not reproducible in simulator)
+ // `in` check used to prevent JIT error (gh-2145)
+ // hasOwn isn't used here due to false negatives
+ // regarding Nodelist length in IE
+ var length = !!obj && "length" in obj && obj.length,
+ type = jQuery.type( obj );
+
+ if ( type === "function" || jQuery.isWindow( obj ) ) {
+ return false;
+ }
+
+ return type === "array" || length === 0 ||
+ typeof length === "number" && length > 0 && ( length - 1 ) in obj;
+}
+var Sizzle =
+/*!
+ * Sizzle CSS Selector Engine v2.3.3
+ * https://sizzlejs.com/
+ *
+ * Copyright jQuery Foundation and other contributors
+ * Released under the MIT license
+ * http://jquery.org/license
+ *
+ * Date: 2016-08-08
+ */
+(function( window ) {
+
+var i,
+ support,
+ Expr,
+ getText,
+ isXML,
+ tokenize,
+ compile,
+ select,
+ outermostContext,
+ sortInput,
+ hasDuplicate,
+
+ // Local document vars
+ setDocument,
+ document,
+ docElem,
+ documentIsHTML,
+ rbuggyQSA,
+ rbuggyMatches,
+ matches,
+ contains,
+
+ // Instance-specific data
+ expando = "sizzle" + 1 * new Date(),
+ preferredDoc = window.document,
+ dirruns = 0,
+ done = 0,
+ classCache = createCache(),
+ tokenCache = createCache(),
+ compilerCache = createCache(),
+ sortOrder = function( a, b ) {
+ if ( a === b ) {
+ hasDuplicate = true;
+ }
+ return 0;
+ },
+
+ // Instance methods
+ hasOwn = ({}).hasOwnProperty,
+ arr = [],
+ pop = arr.pop,
+ push_native = arr.push,
+ push = arr.push,
+ slice = arr.slice,
+ // Use a stripped-down indexOf as it's faster than native
+ // https://jsperf.com/thor-indexof-vs-for/5
+ indexOf = function( list, elem ) {
+ var i = 0,
+ len = list.length;
+ for ( ; i < len; i++ ) {
+ if ( list[i] === elem ) {
+ return i;
+ }
+ }
+ return -1;
+ },
+
+ booleans = "checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",
+
+ // Regular expressions
+
+ // http://www.w3.org/TR/css3-selectors/#whitespace
+ whitespace = "[\\x20\\t\\r\\n\\f]",
+
+ // http://www.w3.org/TR/CSS21/syndata.html#value-def-identifier
+ identifier = "(?:\\\\.|[\\w-]|[^\0-\\xa0])+",
+
+ // Attribute selectors: http://www.w3.org/TR/selectors/#attribute-selectors
+ attributes = "\\[" + whitespace + "*(" + identifier + ")(?:" + whitespace +
+ // Operator (capture 2)
+ "*([*^$|!~]?=)" + whitespace +
+ // "Attribute values must be CSS identifiers [capture 5] or strings [capture 3 or capture 4]"
+ "*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|(" + identifier + "))|)" + whitespace +
+ "*\\]",
+
+ pseudos = ":(" + identifier + ")(?:\\((" +
+ // To reduce the number of selectors needing tokenize in the preFilter, prefer arguments:
+ // 1. quoted (capture 3; capture 4 or capture 5)
+ "('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|" +
+ // 2. simple (capture 6)
+ "((?:\\\\.|[^\\\\()[\\]]|" + attributes + ")*)|" +
+ // 3. anything else (capture 2)
+ ".*" +
+ ")\\)|)",
+
+ // Leading and non-escaped trailing whitespace, capturing some non-whitespace characters preceding the latter
+ rwhitespace = new RegExp( whitespace + "+", "g" ),
+ rtrim = new RegExp( "^" + whitespace + "+|((?:^|[^\\\\])(?:\\\\.)*)" + whitespace + "+$", "g" ),
+
+ rcomma = new RegExp( "^" + whitespace + "*," + whitespace + "*" ),
+ rcombinators = new RegExp( "^" + whitespace + "*([>+~]|" + whitespace + ")" + whitespace + "*" ),
+
+ rattributeQuotes = new RegExp( "=" + whitespace + "*([^\\]'\"]*?)" + whitespace + "*\\]", "g" ),
+
+ rpseudo = new RegExp( pseudos ),
+ ridentifier = new RegExp( "^" + identifier + "$" ),
+
+ matchExpr = {
+ "ID": new RegExp( "^#(" + identifier + ")" ),
+ "CLASS": new RegExp( "^\\.(" + identifier + ")" ),
+ "TAG": new RegExp( "^(" + identifier + "|[*])" ),
+ "ATTR": new RegExp( "^" + attributes ),
+ "PSEUDO": new RegExp( "^" + pseudos ),
+ "CHILD": new RegExp( "^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\(" + whitespace +
+ "*(even|odd|(([+-]|)(\\d*)n|)" + whitespace + "*(?:([+-]|)" + whitespace +
+ "*(\\d+)|))" + whitespace + "*\\)|)", "i" ),
+ "bool": new RegExp( "^(?:" + booleans + ")$", "i" ),
+ // For use in libraries implementing .is()
+ // We use this for POS matching in `select`
+ "needsContext": new RegExp( "^" + whitespace + "*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\(" +
+ whitespace + "*((?:-\\d)?\\d*)" + whitespace + "*\\)|)(?=[^-]|$)", "i" )
+ },
+
+ rinputs = /^(?:input|select|textarea|button)$/i,
+ rheader = /^h\d$/i,
+
+ rnative = /^[^{]+\{\s*\[native \w/,
+
+ // Easily-parseable/retrievable ID or TAG or CLASS selectors
+ rquickExpr = /^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,
+
+ rsibling = /[+~]/,
+
+ // CSS escapes
+ // http://www.w3.org/TR/CSS21/syndata.html#escaped-characters
+ runescape = new RegExp( "\\\\([\\da-f]{1,6}" + whitespace + "?|(" + whitespace + ")|.)", "ig" ),
+ funescape = function( _, escaped, escapedWhitespace ) {
+ var high = "0x" + escaped - 0x10000;
+ // NaN means non-codepoint
+ // Support: Firefox<24
+ // Workaround erroneous numeric interpretation of +"0x"
+ return high !== high || escapedWhitespace ?
+ escaped :
+ high < 0 ?
+ // BMP codepoint
+ String.fromCharCode( high + 0x10000 ) :
+ // Supplemental Plane codepoint (surrogate pair)
+ String.fromCharCode( high >> 10 | 0xD800, high & 0x3FF | 0xDC00 );
+ },
+
+ // CSS string/identifier serialization
+ // https://drafts.csswg.org/cssom/#common-serializing-idioms
+ rcssescape = /([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,
+ fcssescape = function( ch, asCodePoint ) {
+ if ( asCodePoint ) {
+
+ // U+0000 NULL becomes U+FFFD REPLACEMENT CHARACTER
+ if ( ch === "\0" ) {
+ return "\uFFFD";
+ }
+
+ // Control characters and (dependent upon position) numbers get escaped as code points
+ return ch.slice( 0, -1 ) + "\\" + ch.charCodeAt( ch.length - 1 ).toString( 16 ) + " ";
+ }
+
+ // Other potentially-special ASCII characters get backslash-escaped
+ return "\\" + ch;
+ },
+
+ // Used for iframes
+ // See setDocument()
+ // Removing the function wrapper causes a "Permission Denied"
+ // error in IE
+ unloadHandler = function() {
+ setDocument();
+ },
+
+ disabledAncestor = addCombinator(
+ function( elem ) {
+ return elem.disabled === true && ("form" in elem || "label" in elem);
+ },
+ { dir: "parentNode", next: "legend" }
+ );
+
+// Optimize for push.apply( _, NodeList )
+try {
+ push.apply(
+ (arr = slice.call( preferredDoc.childNodes )),
+ preferredDoc.childNodes
+ );
+ // Support: Android<4.0
+ // Detect silently failing push.apply
+ arr[ preferredDoc.childNodes.length ].nodeType;
+} catch ( e ) {
+ push = { apply: arr.length ?
+
+ // Leverage slice if possible
+ function( target, els ) {
+ push_native.apply( target, slice.call(els) );
+ } :
+
+ // Support: IE<9
+ // Otherwise append directly
+ function( target, els ) {
+ var j = target.length,
+ i = 0;
+ // Can't trust NodeList.length
+ while ( (target[j++] = els[i++]) ) {}
+ target.length = j - 1;
+ }
+ };
+}
+
+function Sizzle( selector, context, results, seed ) {
+ var m, i, elem, nid, match, groups, newSelector,
+ newContext = context && context.ownerDocument,
+
+ // nodeType defaults to 9, since context defaults to document
+ nodeType = context ? context.nodeType : 9;
+
+ results = results || [];
+
+ // Return early from calls with invalid selector or context
+ if ( typeof selector !== "string" || !selector ||
+ nodeType !== 1 && nodeType !== 9 && nodeType !== 11 ) {
+
+ return results;
+ }
+
+ // Try to shortcut find operations (as opposed to filters) in HTML documents
+ if ( !seed ) {
+
+ if ( ( context ? context.ownerDocument || context : preferredDoc ) !== document ) {
+ setDocument( context );
+ }
+ context = context || document;
+
+ if ( documentIsHTML ) {
+
+ // If the selector is sufficiently simple, try using a "get*By*" DOM method
+ // (excepting DocumentFragment context, where the methods don't exist)
+ if ( nodeType !== 11 && (match = rquickExpr.exec( selector )) ) {
+
+ // ID selector
+ if ( (m = match[1]) ) {
+
+ // Document context
+ if ( nodeType === 9 ) {
+ if ( (elem = context.getElementById( m )) ) {
+
+ // Support: IE, Opera, Webkit
+ // TODO: identify versions
+ // getElementById can match elements by name instead of ID
+ if ( elem.id === m ) {
+ results.push( elem );
+ return results;
+ }
+ } else {
+ return results;
+ }
+
+ // Element context
+ } else {
+
+ // Support: IE, Opera, Webkit
+ // TODO: identify versions
+ // getElementById can match elements by name instead of ID
+ if ( newContext && (elem = newContext.getElementById( m )) &&
+ contains( context, elem ) &&
+ elem.id === m ) {
+
+ results.push( elem );
+ return results;
+ }
+ }
+
+ // Type selector
+ } else if ( match[2] ) {
+ push.apply( results, context.getElementsByTagName( selector ) );
+ return results;
+
+ // Class selector
+ } else if ( (m = match[3]) && support.getElementsByClassName &&
+ context.getElementsByClassName ) {
+
+ push.apply( results, context.getElementsByClassName( m ) );
+ return results;
+ }
+ }
+
+ // Take advantage of querySelectorAll
+ if ( support.qsa &&
+ !compilerCache[ selector + " " ] &&
+ (!rbuggyQSA || !rbuggyQSA.test( selector )) ) {
+
+ if ( nodeType !== 1 ) {
+ newContext = context;
+ newSelector = selector;
+
+ // qSA looks outside Element context, which is not what we want
+ // Thanks to Andrew Dupont for this workaround technique
+ // Support: IE <=8
+ // Exclude object elements
+ } else if ( context.nodeName.toLowerCase() !== "object" ) {
+
+ // Capture the context ID, setting it first if necessary
+ if ( (nid = context.getAttribute( "id" )) ) {
+ nid = nid.replace( rcssescape, fcssescape );
+ } else {
+ context.setAttribute( "id", (nid = expando) );
+ }
+
+ // Prefix every selector in the list
+ groups = tokenize( selector );
+ i = groups.length;
+ while ( i-- ) {
+ groups[i] = "#" + nid + " " + toSelector( groups[i] );
+ }
+ newSelector = groups.join( "," );
+
+ // Expand context for sibling selectors
+ newContext = rsibling.test( selector ) && testContext( context.parentNode ) ||
+ context;
+ }
+
+ if ( newSelector ) {
+ try {
+ push.apply( results,
+ newContext.querySelectorAll( newSelector )
+ );
+ return results;
+ } catch ( qsaError ) {
+ } finally {
+ if ( nid === expando ) {
+ context.removeAttribute( "id" );
+ }
+ }
+ }
+ }
+ }
+ }
+
+ // All others
+ return select( selector.replace( rtrim, "$1" ), context, results, seed );
+}
+
+/**
+ * Create key-value caches of limited size
+ * @returns {function(string, object)} Returns the Object data after storing it on itself with
+ * property name the (space-suffixed) string and (if the cache is larger than Expr.cacheLength)
+ * deleting the oldest entry
+ */
+function createCache() {
+ var keys = [];
+
+ function cache( key, value ) {
+ // Use (key + " ") to avoid collision with native prototype properties (see Issue #157)
+ if ( keys.push( key + " " ) > Expr.cacheLength ) {
+ // Only keep the most recent entries
+ delete cache[ keys.shift() ];
+ }
+ return (cache[ key + " " ] = value);
+ }
+ return cache;
+}
+
+/**
+ * Mark a function for special use by Sizzle
+ * @param {Function} fn The function to mark
+ */
+function markFunction( fn ) {
+ fn[ expando ] = true;
+ return fn;
+}
+
+/**
+ * Support testing using an element
+ * @param {Function} fn Passed the created element and returns a boolean result
+ */
+function assert( fn ) {
+ var el = document.createElement("fieldset");
+
+ try {
+ return !!fn( el );
+ } catch (e) {
+ return false;
+ } finally {
+ // Remove from its parent by default
+ if ( el.parentNode ) {
+ el.parentNode.removeChild( el );
+ }
+ // release memory in IE
+ el = null;
+ }
+}
+
+/**
+ * Adds the same handler for all of the specified attrs
+ * @param {String} attrs Pipe-separated list of attributes
+ * @param {Function} handler The method that will be applied
+ */
+function addHandle( attrs, handler ) {
+ var arr = attrs.split("|"),
+ i = arr.length;
+
+ while ( i-- ) {
+ Expr.attrHandle[ arr[i] ] = handler;
+ }
+}
+
+/**
+ * Checks document order of two siblings
+ * @param {Element} a
+ * @param {Element} b
+ * @returns {Number} Returns less than 0 if a precedes b, greater than 0 if a follows b
+ */
+function siblingCheck( a, b ) {
+ var cur = b && a,
+ diff = cur && a.nodeType === 1 && b.nodeType === 1 &&
+ a.sourceIndex - b.sourceIndex;
+
+ // Use IE sourceIndex if available on both nodes
+ if ( diff ) {
+ return diff;
+ }
+
+ // Check if b follows a
+ if ( cur ) {
+ while ( (cur = cur.nextSibling) ) {
+ if ( cur === b ) {
+ return -1;
+ }
+ }
+ }
+
+ return a ? 1 : -1;
+}
+
+/**
+ * Returns a function to use in pseudos for input types
+ * @param {String} type
+ */
+function createInputPseudo( type ) {
+ return function( elem ) {
+ var name = elem.nodeName.toLowerCase();
+ return name === "input" && elem.type === type;
+ };
+}
+
+/**
+ * Returns a function to use in pseudos for buttons
+ * @param {String} type
+ */
+function createButtonPseudo( type ) {
+ return function( elem ) {
+ var name = elem.nodeName.toLowerCase();
+ return (name === "input" || name === "button") && elem.type === type;
+ };
+}
+
+/**
+ * Returns a function to use in pseudos for :enabled/:disabled
+ * @param {Boolean} disabled true for :disabled; false for :enabled
+ */
+function createDisabledPseudo( disabled ) {
+
+ // Known :disabled false positives: fieldset[disabled] > legend:nth-of-type(n+2) :can-disable
+ return function( elem ) {
+
+ // Only certain elements can match :enabled or :disabled
+ // https://html.spec.whatwg.org/multipage/scripting.html#selector-enabled
+ // https://html.spec.whatwg.org/multipage/scripting.html#selector-disabled
+ if ( "form" in elem ) {
+
+ // Check for inherited disabledness on relevant non-disabled elements:
+ // * listed form-associated elements in a disabled fieldset
+ // https://html.spec.whatwg.org/multipage/forms.html#category-listed
+ // https://html.spec.whatwg.org/multipage/forms.html#concept-fe-disabled
+ // * option elements in a disabled optgroup
+ // https://html.spec.whatwg.org/multipage/forms.html#concept-option-disabled
+ // All such elements have a "form" property.
+ if ( elem.parentNode && elem.disabled === false ) {
+
+ // Option elements defer to a parent optgroup if present
+ if ( "label" in elem ) {
+ if ( "label" in elem.parentNode ) {
+ return elem.parentNode.disabled === disabled;
+ } else {
+ return elem.disabled === disabled;
+ }
+ }
+
+ // Support: IE 6 - 11
+ // Use the isDisabled shortcut property to check for disabled fieldset ancestors
+ return elem.isDisabled === disabled ||
+
+ // Where there is no isDisabled, check manually
+ /* jshint -W018 */
+ elem.isDisabled !== !disabled &&
+ disabledAncestor( elem ) === disabled;
+ }
+
+ return elem.disabled === disabled;
+
+ // Try to winnow out elements that can't be disabled before trusting the disabled property.
+ // Some victims get caught in our net (label, legend, menu, track), but it shouldn't
+ // even exist on them, let alone have a boolean value.
+ } else if ( "label" in elem ) {
+ return elem.disabled === disabled;
+ }
+
+ // Remaining elements are neither :enabled nor :disabled
+ return false;
+ };
+}
+
+/**
+ * Returns a function to use in pseudos for positionals
+ * @param {Function} fn
+ */
+function createPositionalPseudo( fn ) {
+ return markFunction(function( argument ) {
+ argument = +argument;
+ return markFunction(function( seed, matches ) {
+ var j,
+ matchIndexes = fn( [], seed.length, argument ),
+ i = matchIndexes.length;
+
+ // Match elements found at the specified indexes
+ while ( i-- ) {
+ if ( seed[ (j = matchIndexes[i]) ] ) {
+ seed[j] = !(matches[j] = seed[j]);
+ }
+ }
+ });
+ });
+}
+
+/**
+ * Checks a node for validity as a Sizzle context
+ * @param {Element|Object=} context
+ * @returns {Element|Object|Boolean} The input node if acceptable, otherwise a falsy value
+ */
+function testContext( context ) {
+ return context && typeof context.getElementsByTagName !== "undefined" && context;
+}
+
+// Expose support vars for convenience
+support = Sizzle.support = {};
+
+/**
+ * Detects XML nodes
+ * @param {Element|Object} elem An element or a document
+ * @returns {Boolean} True iff elem is a non-HTML XML node
+ */
+isXML = Sizzle.isXML = function( elem ) {
+ // documentElement is verified for cases where it doesn't yet exist
+ // (such as loading iframes in IE - #4833)
+ var documentElement = elem && (elem.ownerDocument || elem).documentElement;
+ return documentElement ? documentElement.nodeName !== "HTML" : false;
+};
+
+/**
+ * Sets document-related variables once based on the current document
+ * @param {Element|Object} [doc] An element or document object to use to set the document
+ * @returns {Object} Returns the current document
+ */
+setDocument = Sizzle.setDocument = function( node ) {
+ var hasCompare, subWindow,
+ doc = node ? node.ownerDocument || node : preferredDoc;
+
+ // Return early if doc is invalid or already selected
+ if ( doc === document || doc.nodeType !== 9 || !doc.documentElement ) {
+ return document;
+ }
+
+ // Update global variables
+ document = doc;
+ docElem = document.documentElement;
+ documentIsHTML = !isXML( document );
+
+ // Support: IE 9-11, Edge
+ // Accessing iframe documents after unload throws "permission denied" errors (jQuery #13936)
+ if ( preferredDoc !== document &&
+ (subWindow = document.defaultView) && subWindow.top !== subWindow ) {
+
+ // Support: IE 11, Edge
+ if ( subWindow.addEventListener ) {
+ subWindow.addEventListener( "unload", unloadHandler, false );
+
+ // Support: IE 9 - 10 only
+ } else if ( subWindow.attachEvent ) {
+ subWindow.attachEvent( "onunload", unloadHandler );
+ }
+ }
+
+ /* Attributes
+ ---------------------------------------------------------------------- */
+
+ // Support: IE<8
+ // Verify that getAttribute really returns attributes and not properties
+ // (excepting IE8 booleans)
+ support.attributes = assert(function( el ) {
+ el.className = "i";
+ return !el.getAttribute("className");
+ });
+
+ /* getElement(s)By*
+ ---------------------------------------------------------------------- */
+
+ // Check if getElementsByTagName("*") returns only elements
+ support.getElementsByTagName = assert(function( el ) {
+ el.appendChild( document.createComment("") );
+ return !el.getElementsByTagName("*").length;
+ });
+
+ // Support: IE<9
+ support.getElementsByClassName = rnative.test( document.getElementsByClassName );
+
+ // Support: IE<10
+ // Check if getElementById returns elements by name
+ // The broken getElementById methods don't pick up programmatically-set names,
+ // so use a roundabout getElementsByName test
+ support.getById = assert(function( el ) {
+ docElem.appendChild( el ).id = expando;
+ return !document.getElementsByName || !document.getElementsByName( expando ).length;
+ });
+
+ // ID filter and find
+ if ( support.getById ) {
+ Expr.filter["ID"] = function( id ) {
+ var attrId = id.replace( runescape, funescape );
+ return function( elem ) {
+ return elem.getAttribute("id") === attrId;
+ };
+ };
+ Expr.find["ID"] = function( id, context ) {
+ if ( typeof context.getElementById !== "undefined" && documentIsHTML ) {
+ var elem = context.getElementById( id );
+ return elem ? [ elem ] : [];
+ }
+ };
+ } else {
+ Expr.filter["ID"] = function( id ) {
+ var attrId = id.replace( runescape, funescape );
+ return function( elem ) {
+ var node = typeof elem.getAttributeNode !== "undefined" &&
+ elem.getAttributeNode("id");
+ return node && node.value === attrId;
+ };
+ };
+
+ // Support: IE 6 - 7 only
+ // getElementById is not reliable as a find shortcut
+ Expr.find["ID"] = function( id, context ) {
+ if ( typeof context.getElementById !== "undefined" && documentIsHTML ) {
+ var node, i, elems,
+ elem = context.getElementById( id );
+
+ if ( elem ) {
+
+ // Verify the id attribute
+ node = elem.getAttributeNode("id");
+ if ( node && node.value === id ) {
+ return [ elem ];
+ }
+
+ // Fall back on getElementsByName
+ elems = context.getElementsByName( id );
+ i = 0;
+ while ( (elem = elems[i++]) ) {
+ node = elem.getAttributeNode("id");
+ if ( node && node.value === id ) {
+ return [ elem ];
+ }
+ }
+ }
+
+ return [];
+ }
+ };
+ }
+
+ // Tag
+ Expr.find["TAG"] = support.getElementsByTagName ?
+ function( tag, context ) {
+ if ( typeof context.getElementsByTagName !== "undefined" ) {
+ return context.getElementsByTagName( tag );
+
+ // DocumentFragment nodes don't have gEBTN
+ } else if ( support.qsa ) {
+ return context.querySelectorAll( tag );
+ }
+ } :
+
+ function( tag, context ) {
+ var elem,
+ tmp = [],
+ i = 0,
+ // By happy coincidence, a (broken) gEBTN appears on DocumentFragment nodes too
+ results = context.getElementsByTagName( tag );
+
+ // Filter out possible comments
+ if ( tag === "*" ) {
+ while ( (elem = results[i++]) ) {
+ if ( elem.nodeType === 1 ) {
+ tmp.push( elem );
+ }
+ }
+
+ return tmp;
+ }
+ return results;
+ };
+
+ // Class
+ Expr.find["CLASS"] = support.getElementsByClassName && function( className, context ) {
+ if ( typeof context.getElementsByClassName !== "undefined" && documentIsHTML ) {
+ return context.getElementsByClassName( className );
+ }
+ };
+
+ /* QSA/matchesSelector
+ ---------------------------------------------------------------------- */
+
+ // QSA and matchesSelector support
+
+ // matchesSelector(:active) reports false when true (IE9/Opera 11.5)
+ rbuggyMatches = [];
+
+ // qSa(:focus) reports false when true (Chrome 21)
+ // We allow this because of a bug in IE8/9 that throws an error
+ // whenever `document.activeElement` is accessed on an iframe
+ // So, we allow :focus to pass through QSA all the time to avoid the IE error
+ // See https://bugs.jquery.com/ticket/13378
+ rbuggyQSA = [];
+
+ if ( (support.qsa = rnative.test( document.querySelectorAll )) ) {
+ // Build QSA regex
+ // Regex strategy adopted from Diego Perini
+ assert(function( el ) {
+ // Select is set to empty string on purpose
+ // This is to test IE's treatment of not explicitly
+ // setting a boolean content attribute,
+ // since its presence should be enough
+ // https://bugs.jquery.com/ticket/12359
+ docElem.appendChild( el ).innerHTML = "<a id='" + expando + "'></a>" +
+ "<select id='" + expando + "-\r\\' msallowcapture=''>" +
+ "<option selected=''></option></select>";
+
+ // Support: IE8, Opera 11-12.16
+ // Nothing should be selected when empty strings follow ^= or $= or *=
+ // The test attribute must be unknown in Opera but "safe" for WinRT
+ // https://msdn.microsoft.com/en-us/library/ie/hh465388.aspx#attribute_section
+ if ( el.querySelectorAll("[msallowcapture^='']").length ) {
+ rbuggyQSA.push( "[*^$]=" + whitespace + "*(?:''|\"\")" );
+ }
+
+ // Support: IE8
+ // Boolean attributes and "value" are not treated correctly
+ if ( !el.querySelectorAll("[selected]").length ) {
+ rbuggyQSA.push( "\\[" + whitespace + "*(?:value|" + booleans + ")" );
+ }
+
+ // Support: Chrome<29, Android<4.4, Safari<7.0+, iOS<7.0+, PhantomJS<1.9.8+
+ if ( !el.querySelectorAll( "[id~=" + expando + "-]" ).length ) {
+ rbuggyQSA.push("~=");
+ }
+
+ // Webkit/Opera - :checked should return selected option elements
+ // http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked
+ // IE8 throws error here and will not see later tests
+ if ( !el.querySelectorAll(":checked").length ) {
+ rbuggyQSA.push(":checked");
+ }
+
+ // Support: Safari 8+, iOS 8+
+ // https://bugs.webkit.org/show_bug.cgi?id=136851
+ // In-page `selector#id sibling-combinator selector` fails
+ if ( !el.querySelectorAll( "a#" + expando + "+*" ).length ) {
+ rbuggyQSA.push(".#.+[+~]");
+ }
+ });
+
+ assert(function( el ) {
+ el.innerHTML = "<a href='' disabled='disabled'></a>" +
+ "<select disabled='disabled'><option/></select>";
+
+ // Support: Windows 8 Native Apps
+ // The type and name attributes are restricted during .innerHTML assignment
+ var input = document.createElement("input");
+ input.setAttribute( "type", "hidden" );
+ el.appendChild( input ).setAttribute( "name", "D" );
+
+ // Support: IE8
+ // Enforce case-sensitivity of name attribute
+ if ( el.querySelectorAll("[name=d]").length ) {
+ rbuggyQSA.push( "name" + whitespace + "*[*^$|!~]?=" );
+ }
+
+ // FF 3.5 - :enabled/:disabled and hidden elements (hidden elements are still enabled)
+ // IE8 throws error here and will not see later tests
+ if ( el.querySelectorAll(":enabled").length !== 2 ) {
+ rbuggyQSA.push( ":enabled", ":disabled" );
+ }
+
+ // Support: IE9-11+
+ // IE's :disabled selector does not pick up the children of disabled fieldsets
+ docElem.appendChild( el ).disabled = true;
+ if ( el.querySelectorAll(":disabled").length !== 2 ) {
+ rbuggyQSA.push( ":enabled", ":disabled" );
+ }
+
+ // Opera 10-11 does not throw on post-comma invalid pseudos
+ el.querySelectorAll("*,:x");
+ rbuggyQSA.push(",.*:");
+ });
+ }
+
+ if ( (support.matchesSelector = rnative.test( (matches = docElem.matches ||
+ docElem.webkitMatchesSelector ||
+ docElem.mozMatchesSelector ||
+ docElem.oMatchesSelector ||
+ docElem.msMatchesSelector) )) ) {
+
+ assert(function( el ) {
+ // Check to see if it's possible to do matchesSelector
+ // on a disconnected node (IE 9)
+ support.disconnectedMatch = matches.call( el, "*" );
+
+ // This should fail with an exception
+ // Gecko does not error, returns false instead
+ matches.call( el, "[s!='']:x" );
+ rbuggyMatches.push( "!=", pseudos );
+ });
+ }
+
+ rbuggyQSA = rbuggyQSA.length && new RegExp( rbuggyQSA.join("|") );
+ rbuggyMatches = rbuggyMatches.length && new RegExp( rbuggyMatches.join("|") );
+
+ /* Contains
+ ---------------------------------------------------------------------- */
+ hasCompare = rnative.test( docElem.compareDocumentPosition );
+
+ // Element contains another
+ // Purposefully self-exclusive
+ // As in, an element does not contain itself
+ contains = hasCompare || rnative.test( docElem.contains ) ?
+ function( a, b ) {
+ var adown = a.nodeType === 9 ? a.documentElement : a,
+ bup = b && b.parentNode;
+ return a === bup || !!( bup && bup.nodeType === 1 && (
+ adown.contains ?
+ adown.contains( bup ) :
+ a.compareDocumentPosition && a.compareDocumentPosition( bup ) & 16
+ ));
+ } :
+ function( a, b ) {
+ if ( b ) {
+ while ( (b = b.parentNode) ) {
+ if ( b === a ) {
+ return true;
+ }
+ }
+ }
+ return false;
+ };
+
+ /* Sorting
+ ---------------------------------------------------------------------- */
+
+ // Document order sorting
+ sortOrder = hasCompare ?
+ function( a, b ) {
+
+ // Flag for duplicate removal
+ if ( a === b ) {
+ hasDuplicate = true;
+ return 0;
+ }
+
+ // Sort on method existence if only one input has compareDocumentPosition
+ var compare = !a.compareDocumentPosition - !b.compareDocumentPosition;
+ if ( compare ) {
+ return compare;
+ }
+
+ // Calculate position if both inputs belong to the same document
+ compare = ( a.ownerDocument || a ) === ( b.ownerDocument || b ) ?
+ a.compareDocumentPosition( b ) :
+
+ // Otherwise we know they are disconnected
+ 1;
+
+ // Disconnected nodes
+ if ( compare & 1 ||
+ (!support.sortDetached && b.compareDocumentPosition( a ) === compare) ) {
+
+ // Choose the first element that is related to our preferred document
+ if ( a === document || a.ownerDocument === preferredDoc && contains(preferredDoc, a) ) {
+ return -1;
+ }
+ if ( b === document || b.ownerDocument === preferredDoc && contains(preferredDoc, b) ) {
+ return 1;
+ }
+
+ // Maintain original order
+ return sortInput ?
+ ( indexOf( sortInput, a ) - indexOf( sortInput, b ) ) :
+ 0;
+ }
+
+ return compare & 4 ? -1 : 1;
+ } :
+ function( a, b ) {
+ // Exit early if the nodes are identical
+ if ( a === b ) {
+ hasDuplicate = true;
+ return 0;
+ }
+
+ var cur,
+ i = 0,
+ aup = a.parentNode,
+ bup = b.parentNode,
+ ap = [ a ],
+ bp = [ b ];
+
+ // Parentless nodes are either documents or disconnected
+ if ( !aup || !bup ) {
+ return a === document ? -1 :
+ b === document ? 1 :
+ aup ? -1 :
+ bup ? 1 :
+ sortInput ?
+ ( indexOf( sortInput, a ) - indexOf( sortInput, b ) ) :
+ 0;
+
+ // If the nodes are siblings, we can do a quick check
+ } else if ( aup === bup ) {
+ return siblingCheck( a, b );
+ }
+
+ // Otherwise we need full lists of their ancestors for comparison
+ cur = a;
+ while ( (cur = cur.parentNode) ) {
+ ap.unshift( cur );
+ }
+ cur = b;
+ while ( (cur = cur.parentNode) ) {
+ bp.unshift( cur );
+ }
+
+ // Walk down the tree looking for a discrepancy
+ while ( ap[i] === bp[i] ) {
+ i++;
+ }
+
+ return i ?
+ // Do a sibling check if the nodes have a common ancestor
+ siblingCheck( ap[i], bp[i] ) :
+
+ // Otherwise nodes in our document sort first
+ ap[i] === preferredDoc ? -1 :
+ bp[i] === preferredDoc ? 1 :
+ 0;
+ };
+
+ return document;
+};
+
+Sizzle.matches = function( expr, elements ) {
+ return Sizzle( expr, null, null, elements );
+};
+
+Sizzle.matchesSelector = function( elem, expr ) {
+ // Set document vars if needed
+ if ( ( elem.ownerDocument || elem ) !== document ) {
+ setDocument( elem );
+ }
+
+ // Make sure that attribute selectors are quoted
+ expr = expr.replace( rattributeQuotes, "='$1']" );
+
+ if ( support.matchesSelector && documentIsHTML &&
+ !compilerCache[ expr + " " ] &&
+ ( !rbuggyMatches || !rbuggyMatches.test( expr ) ) &&
+ ( !rbuggyQSA || !rbuggyQSA.test( expr ) ) ) {
+
+ try {
+ var ret = matches.call( elem, expr );
+
+ // IE 9's matchesSelector returns false on disconnected nodes
+ if ( ret || support.disconnectedMatch ||
+ // As well, disconnected nodes are said to be in a document
+ // fragment in IE 9
+ elem.document && elem.document.nodeType !== 11 ) {
+ return ret;
+ }
+ } catch (e) {}
+ }
+
+ return Sizzle( expr, document, null, [ elem ] ).length > 0;
+};
+
+Sizzle.contains = function( context, elem ) {
+ // Set document vars if needed
+ if ( ( context.ownerDocument || context ) !== document ) {
+ setDocument( context );
+ }
+ return contains( context, elem );
+};
+
+Sizzle.attr = function( elem, name ) {
+ // Set document vars if needed
+ if ( ( elem.ownerDocument || elem ) !== document ) {
+ setDocument( elem );
+ }
+
+ var fn = Expr.attrHandle[ name.toLowerCase() ],
+ // Don't get fooled by Object.prototype properties (jQuery #13807)
+ val = fn && hasOwn.call( Expr.attrHandle, name.toLowerCase() ) ?
+ fn( elem, name, !documentIsHTML ) :
+ undefined;
+
+ return val !== undefined ?
+ val :
+ support.attributes || !documentIsHTML ?
+ elem.getAttribute( name ) :
+ (val = elem.getAttributeNode(name)) && val.specified ?
+ val.value :
+ null;
+};
+
+Sizzle.escape = function( sel ) {
+ return (sel + "").replace( rcssescape, fcssescape );
+};
+
+Sizzle.error = function( msg ) {
+ throw new Error( "Syntax error, unrecognized expression: " + msg );
+};
+
+/**
+ * Document sorting and removing duplicates
+ * @param {ArrayLike} results
+ */
+Sizzle.uniqueSort = function( results ) {
+ var elem,
+ duplicates = [],
+ j = 0,
+ i = 0;
+
+ // Unless we *know* we can detect duplicates, assume their presence
+ hasDuplicate = !support.detectDuplicates;
+ sortInput = !support.sortStable && results.slice( 0 );
+ results.sort( sortOrder );
+
+ if ( hasDuplicate ) {
+ while ( (elem = results[i++]) ) {
+ if ( elem === results[ i ] ) {
+ j = duplicates.push( i );
+ }
+ }
+ while ( j-- ) {
+ results.splice( duplicates[ j ], 1 );
+ }
+ }
+
+ // Clear input after sorting to release objects
+ // See https://github.com/jquery/sizzle/pull/225
+ sortInput = null;
+
+ return results;
+};
+
+/**
+ * Utility function for retrieving the text value of an array of DOM nodes
+ * @param {Array|Element} elem
+ */
+getText = Sizzle.getText = function( elem ) {
+ var node,
+ ret = "",
+ i = 0,
+ nodeType = elem.nodeType;
+
+ if ( !nodeType ) {
+ // If no nodeType, this is expected to be an array
+ while ( (node = elem[i++]) ) {
+ // Do not traverse comment nodes
+ ret += getText( node );
+ }
+ } else if ( nodeType === 1 || nodeType === 9 || nodeType === 11 ) {
+ // Use textContent for elements
+ // innerText usage removed for consistency of new lines (jQuery #11153)
+ if ( typeof elem.textContent === "string" ) {
+ return elem.textContent;
+ } else {
+ // Traverse its children
+ for ( elem = elem.firstChild; elem; elem = elem.nextSibling ) {
+ ret += getText( elem );
+ }
+ }
+ } else if ( nodeType === 3 || nodeType === 4 ) {
+ return elem.nodeValue;
+ }
+ // Do not include comment or processing instruction nodes
+
+ return ret;
+};
+
+Expr = Sizzle.selectors = {
+
+ // Can be adjusted by the user
+ cacheLength: 50,
+
+ createPseudo: markFunction,
+
+ match: matchExpr,
+
+ attrHandle: {},
+
+ find: {},
+
+ relative: {
+ ">": { dir: "parentNode", first: true },
+ " ": { dir: "parentNode" },
+ "+": { dir: "previousSibling", first: true },
+ "~": { dir: "previousSibling" }
+ },
+
+ preFilter: {
+ "ATTR": function( match ) {
+ match[1] = match[1].replace( runescape, funescape );
+
+ // Move the given value to match[3] whether quoted or unquoted
+ match[3] = ( match[3] || match[4] || match[5] || "" ).replace( runescape, funescape );
+
+ if ( match[2] === "~=" ) {
+ match[3] = " " + match[3] + " ";
+ }
+
+ return match.slice( 0, 4 );
+ },
+
+ "CHILD": function( match ) {
+ /* matches from matchExpr["CHILD"]
+ 1 type (only|nth|...)
+ 2 what (child|of-type)
+ 3 argument (even|odd|\d*|\d*n([+-]\d+)?|...)
+ 4 xn-component of xn+y argument ([+-]?\d*n|)
+ 5 sign of xn-component
+ 6 x of xn-component
+ 7 sign of y-component
+ 8 y of y-component
+ */
+ match[1] = match[1].toLowerCase();
+
+ if ( match[1].slice( 0, 3 ) === "nth" ) {
+ // nth-* requires argument
+ if ( !match[3] ) {
+ Sizzle.error( match[0] );
+ }
+
+ // numeric x and y parameters for Expr.filter.CHILD
+ // remember that false/true cast respectively to 0/1
+ match[4] = +( match[4] ? match[5] + (match[6] || 1) : 2 * ( match[3] === "even" || match[3] === "odd" ) );
+ match[5] = +( ( match[7] + match[8] ) || match[3] === "odd" );
+
+ // other types prohibit arguments
+ } else if ( match[3] ) {
+ Sizzle.error( match[0] );
+ }
+
+ return match;
+ },
+
+ "PSEUDO": function( match ) {
+ var excess,
+ unquoted = !match[6] && match[2];
+
+ if ( matchExpr["CHILD"].test( match[0] ) ) {
+ return null;
+ }
+
+ // Accept quoted arguments as-is
+ if ( match[3] ) {
+ match[2] = match[4] || match[5] || "";
+
+ // Strip excess characters from unquoted arguments
+ } else if ( unquoted && rpseudo.test( unquoted ) &&
+ // Get excess from tokenize (recursively)
+ (excess = tokenize( unquoted, true )) &&
+ // advance to the next closing parenthesis
+ (excess = unquoted.indexOf( ")", unquoted.length - excess ) - unquoted.length) ) {
+
+ // excess is a negative index
+ match[0] = match[0].slice( 0, excess );
+ match[2] = unquoted.slice( 0, excess );
+ }
+
+ // Return only captures needed by the pseudo filter method (type and argument)
+ return match.slice( 0, 3 );
+ }
+ },
+
+ filter: {
+
+ "TAG": function( nodeNameSelector ) {
+ var nodeName = nodeNameSelector.replace( runescape, funescape ).toLowerCase();
+ return nodeNameSelector === "*" ?
+ function() { return true; } :
+ function( elem ) {
+ return elem.nodeName && elem.nodeName.toLowerCase() === nodeName;
+ };
+ },
+
+ "CLASS": function( className ) {
+ var pattern = classCache[ className + " " ];
+
+ return pattern ||
+ (pattern = new RegExp( "(^|" + whitespace + ")" + className + "(" + whitespace + "|$)" )) &&
+ classCache( className, function( elem ) {
+ return pattern.test( typeof elem.className === "string" && elem.className || typeof elem.getAttribute !== "undefined" && elem.getAttribute("class") || "" );
+ });
+ },
+
+ "ATTR": function( name, operator, check ) {
+ return function( elem ) {
+ var result = Sizzle.attr( elem, name );
+
+ if ( result == null ) {
+ return operator === "!=";
+ }
+ if ( !operator ) {
+ return true;
+ }
+
+ result += "";
+
+ return operator === "=" ? result === check :
+ operator === "!=" ? result !== check :
+ operator === "^=" ? check && result.indexOf( check ) === 0 :
+ operator === "*=" ? check && result.indexOf( check ) > -1 :
+ operator === "$=" ? check && result.slice( -check.length ) === check :
+ operator === "~=" ? ( " " + result.replace( rwhitespace, " " ) + " " ).indexOf( check ) > -1 :
+ operator === "|=" ? result === check || result.slice( 0, check.length + 1 ) === check + "-" :
+ false;
+ };
+ },
+
+ "CHILD": function( type, what, argument, first, last ) {
+ var simple = type.slice( 0, 3 ) !== "nth",
+ forward = type.slice( -4 ) !== "last",
+ ofType = what === "of-type";
+
+ return first === 1 && last === 0 ?
+
+ // Shortcut for :nth-*(n)
+ function( elem ) {
+ return !!elem.parentNode;
+ } :
+
+ function( elem, context, xml ) {
+ var cache, uniqueCache, outerCache, node, nodeIndex, start,
+ dir = simple !== forward ? "nextSibling" : "previousSibling",
+ parent = elem.parentNode,
+ name = ofType && elem.nodeName.toLowerCase(),
+ useCache = !xml && !ofType,
+ diff = false;
+
+ if ( parent ) {
+
+ // :(first|last|only)-(child|of-type)
+ if ( simple ) {
+ while ( dir ) {
+ node = elem;
+ while ( (node = node[ dir ]) ) {
+ if ( ofType ?
+ node.nodeName.toLowerCase() === name :
+ node.nodeType === 1 ) {
+
+ return false;
+ }
+ }
+ // Reverse direction for :only-* (if we haven't yet done so)
+ start = dir = type === "only" && !start && "nextSibling";
+ }
+ return true;
+ }
+
+ start = [ forward ? parent.firstChild : parent.lastChild ];
+
+ // non-xml :nth-child(...) stores cache data on `parent`
+ if ( forward && useCache ) {
+
+ // Seek `elem` from a previously-cached index
+
+ // ...in a gzip-friendly way
+ node = parent;
+ outerCache = node[ expando ] || (node[ expando ] = {});
+
+ // Support: IE <9 only
+ // Defend against cloned attroperties (jQuery gh-1709)
+ uniqueCache = outerCache[ node.uniqueID ] ||
+ (outerCache[ node.uniqueID ] = {});
+
+ cache = uniqueCache[ type ] || [];
+ nodeIndex = cache[ 0 ] === dirruns && cache[ 1 ];
+ diff = nodeIndex && cache[ 2 ];
+ node = nodeIndex && parent.childNodes[ nodeIndex ];
+
+ while ( (node = ++nodeIndex && node && node[ dir ] ||
+
+ // Fallback to seeking `elem` from the start
+ (diff = nodeIndex = 0) || start.pop()) ) {
+
+ // When found, cache indexes on `parent` and break
+ if ( node.nodeType === 1 && ++diff && node === elem ) {
+ uniqueCache[ type ] = [ dirruns, nodeIndex, diff ];
+ break;
+ }
+ }
+
+ } else {
+ // Use previously-cached element index if available
+ if ( useCache ) {
+ // ...in a gzip-friendly way
+ node = elem;
+ outerCache = node[ expando ] || (node[ expando ] = {});
+
+ // Support: IE <9 only
+ // Defend against cloned attroperties (jQuery gh-1709)
+ uniqueCache = outerCache[ node.uniqueID ] ||
+ (outerCache[ node.uniqueID ] = {});
+
+ cache = uniqueCache[ type ] || [];
+ nodeIndex = cache[ 0 ] === dirruns && cache[ 1 ];
+ diff = nodeIndex;
+ }
+
+ // xml :nth-child(...)
+ // or :nth-last-child(...) or :nth(-last)?-of-type(...)
+ if ( diff === false ) {
+ // Use the same loop as above to seek `elem` from the start
+ while ( (node = ++nodeIndex && node && node[ dir ] ||
+ (diff = nodeIndex = 0) || start.pop()) ) {
+
+ if ( ( ofType ?
+ node.nodeName.toLowerCase() === name :
+ node.nodeType === 1 ) &&
+ ++diff ) {
+
+ // Cache the index of each encountered element
+ if ( useCache ) {
+ outerCache = node[ expando ] || (node[ expando ] = {});
+
+ // Support: IE <9 only
+ // Defend against cloned attroperties (jQuery gh-1709)
+ uniqueCache = outerCache[ node.uniqueID ] ||
+ (outerCache[ node.uniqueID ] = {});
+
+ uniqueCache[ type ] = [ dirruns, diff ];
+ }
+
+ if ( node === elem ) {
+ break;
+ }
+ }
+ }
+ }
+ }
+
+ // Incorporate the offset, then check against cycle size
+ diff -= last;
+ return diff === first || ( diff % first === 0 && diff / first >= 0 );
+ }
+ };
+ },
+
+ "PSEUDO": function( pseudo, argument ) {
+ // pseudo-class names are case-insensitive
+ // http://www.w3.org/TR/selectors/#pseudo-classes
+ // Prioritize by case sensitivity in case custom pseudos are added with uppercase letters
+ // Remember that setFilters inherits from pseudos
+ var args,
+ fn = Expr.pseudos[ pseudo ] || Expr.setFilters[ pseudo.toLowerCase() ] ||
+ Sizzle.error( "unsupported pseudo: " + pseudo );
+
+ // The user may use createPseudo to indicate that
+ // arguments are needed to create the filter function
+ // just as Sizzle does
+ if ( fn[ expando ] ) {
+ return fn( argument );
+ }
+
+ // But maintain support for old signatures
+ if ( fn.length > 1 ) {
+ args = [ pseudo, pseudo, "", argument ];
+ return Expr.setFilters.hasOwnProperty( pseudo.toLowerCase() ) ?
+ markFunction(function( seed, matches ) {
+ var idx,
+ matched = fn( seed, argument ),
+ i = matched.length;
+ while ( i-- ) {
+ idx = indexOf( seed, matched[i] );
+ seed[ idx ] = !( matches[ idx ] = matched[i] );
+ }
+ }) :
+ function( elem ) {
+ return fn( elem, 0, args );
+ };
+ }
+
+ return fn;
+ }
+ },
+
+ pseudos: {
+ // Potentially complex pseudos
+ "not": markFunction(function( selector ) {
+ // Trim the selector passed to compile
+ // to avoid treating leading and trailing
+ // spaces as combinators
+ var input = [],
+ results = [],
+ matcher = compile( selector.replace( rtrim, "$1" ) );
+
+ return matcher[ expando ] ?
+ markFunction(function( seed, matches, context, xml ) {
+ var elem,
+ unmatched = matcher( seed, null, xml, [] ),
+ i = seed.length;
+
+ // Match elements unmatched by `matcher`
+ while ( i-- ) {
+ if ( (elem = unmatched[i]) ) {
+ seed[i] = !(matches[i] = elem);
+ }
+ }
+ }) :
+ function( elem, context, xml ) {
+ input[0] = elem;
+ matcher( input, null, xml, results );
+ // Don't keep the element (issue #299)
+ input[0] = null;
+ return !results.pop();
+ };
+ }),
+
+ "has": markFunction(function( selector ) {
+ return function( elem ) {
+ return Sizzle( selector, elem ).length > 0;
+ };
+ }),
+
+ "contains": markFunction(function( text ) {
+ text = text.replace( runescape, funescape );
+ return function( elem ) {
+ return ( elem.textContent || elem.innerText || getText( elem ) ).indexOf( text ) > -1;
+ };
+ }),
+
+ // "Whether an element is represented by a :lang() selector
+ // is based solely on the element's language value
+ // being equal to the identifier C,
+ // or beginning with the identifier C immediately followed by "-".
+ // The matching of C against the element's language value is performed case-insensitively.
+ // The identifier C does not have to be a valid language name."
+ // http://www.w3.org/TR/selectors/#lang-pseudo
+ "lang": markFunction( function( lang ) {
+ // lang value must be a valid identifier
+ if ( !ridentifier.test(lang || "") ) {
+ Sizzle.error( "unsupported lang: " + lang );
+ }
+ lang = lang.replace( runescape, funescape ).toLowerCase();
+ return function( elem ) {
+ var elemLang;
+ do {
+ if ( (elemLang = documentIsHTML ?
+ elem.lang :
+ elem.getAttribute("xml:lang") || elem.getAttribute("lang")) ) {
+
+ elemLang = elemLang.toLowerCase();
+ return elemLang === lang || elemLang.indexOf( lang + "-" ) === 0;
+ }
+ } while ( (elem = elem.parentNode) && elem.nodeType === 1 );
+ return false;
+ };
+ }),
+
+ // Miscellaneous
+ "target": function( elem ) {
+ var hash = window.location && window.location.hash;
+ return hash && hash.slice( 1 ) === elem.id;
+ },
+
+ "root": function( elem ) {
+ return elem === docElem;
+ },
+
+ "focus": function( elem ) {
+ return elem === document.activeElement && (!document.hasFocus || document.hasFocus()) && !!(elem.type || elem.href || ~elem.tabIndex);
+ },
+
+ // Boolean properties
+ "enabled": createDisabledPseudo( false ),
+ "disabled": createDisabledPseudo( true ),
+
+ "checked": function( elem ) {
+ // In CSS3, :checked should return both checked and selected elements
+ // http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked
+ var nodeName = elem.nodeName.toLowerCase();
+ return (nodeName === "input" && !!elem.checked) || (nodeName === "option" && !!elem.selected);
+ },
+
+ "selected": function( elem ) {
+ // Accessing this property makes selected-by-default
+ // options in Safari work properly
+ if ( elem.parentNode ) {
+ elem.parentNode.selectedIndex;
+ }
+
+ return elem.selected === true;
+ },
+
+ // Contents
+ "empty": function( elem ) {
+ // http://www.w3.org/TR/selectors/#empty-pseudo
+ // :empty is negated by element (1) or content nodes (text: 3; cdata: 4; entity ref: 5),
+ // but not by others (comment: 8; processing instruction: 7; etc.)
+ // nodeType < 6 works because attributes (2) do not appear as children
+ for ( elem = elem.firstChild; elem; elem = elem.nextSibling ) {
+ if ( elem.nodeType < 6 ) {
+ return false;
+ }
+ }
+ return true;
+ },
+
+ "parent": function( elem ) {
+ return !Expr.pseudos["empty"]( elem );
+ },
+
+ // Element/input types
+ "header": function( elem ) {
+ return rheader.test( elem.nodeName );
+ },
+
+ "input": function( elem ) {
+ return rinputs.test( elem.nodeName );
+ },
+
+ "button": function( elem ) {
+ var name = elem.nodeName.toLowerCase();
+ return name === "input" && elem.type === "button" || name === "button";
+ },
+
+ "text": function( elem ) {
+ var attr;
+ return elem.nodeName.toLowerCase() === "input" &&
+ elem.type === "text" &&
+
+ // Support: IE<8
+ // New HTML5 attribute values (e.g., "search") appear with elem.type === "text"
+ ( (attr = elem.getAttribute("type")) == null || attr.toLowerCase() === "text" );
+ },
+
+ // Position-in-collection
+ "first": createPositionalPseudo(function() {
+ return [ 0 ];
+ }),
+
+ "last": createPositionalPseudo(function( matchIndexes, length ) {
+ return [ length - 1 ];
+ }),
+
+ "eq": createPositionalPseudo(function( matchIndexes, length, argument ) {
+ return [ argument < 0 ? argument + length : argument ];
+ }),
+
+ "even": createPositionalPseudo(function( matchIndexes, length ) {
+ var i = 0;
+ for ( ; i < length; i += 2 ) {
+ matchIndexes.push( i );
+ }
+ return matchIndexes;
+ }),
+
+ "odd": createPositionalPseudo(function( matchIndexes, length ) {
+ var i = 1;
+ for ( ; i < length; i += 2 ) {
+ matchIndexes.push( i );
+ }
+ return matchIndexes;
+ }),
+
+ "lt": createPositionalPseudo(function( matchIndexes, length, argument ) {
+ var i = argument < 0 ? argument + length : argument;
+ for ( ; --i >= 0; ) {
+ matchIndexes.push( i );
+ }
+ return matchIndexes;
+ }),
+
+ "gt": createPositionalPseudo(function( matchIndexes, length, argument ) {
+ var i = argument < 0 ? argument + length : argument;
+ for ( ; ++i < length; ) {
+ matchIndexes.push( i );
+ }
+ return matchIndexes;
+ })
+ }
+};
+
+Expr.pseudos["nth"] = Expr.pseudos["eq"];
+
+// Add button/input type pseudos
+for ( i in { radio: true, checkbox: true, file: true, password: true, image: true } ) {
+ Expr.pseudos[ i ] = createInputPseudo( i );
+}
+for ( i in { submit: true, reset: true } ) {
+ Expr.pseudos[ i ] = createButtonPseudo( i );
+}
+
+// Easy API for creating new setFilters
+function setFilters() {}
+setFilters.prototype = Expr.filters = Expr.pseudos;
+Expr.setFilters = new setFilters();
+
+tokenize = Sizzle.tokenize = function( selector, parseOnly ) {
+ var matched, match, tokens, type,
+ soFar, groups, preFilters,
+ cached = tokenCache[ selector + " " ];
+
+ if ( cached ) {
+ return parseOnly ? 0 : cached.slice( 0 );
+ }
+
+ soFar = selector;
+ groups = [];
+ preFilters = Expr.preFilter;
+
+ while ( soFar ) {
+
+ // Comma and first run
+ if ( !matched || (match = rcomma.exec( soFar )) ) {
+ if ( match ) {
+ // Don't consume trailing commas as valid
+ soFar = soFar.slice( match[0].length ) || soFar;
+ }
+ groups.push( (tokens = []) );
+ }
+
+ matched = false;
+
+ // Combinators
+ if ( (match = rcombinators.exec( soFar )) ) {
+ matched = match.shift();
+ tokens.push({
+ value: matched,
+ // Cast descendant combinators to space
+ type: match[0].replace( rtrim, " " )
+ });
+ soFar = soFar.slice( matched.length );
+ }
+
+ // Filters
+ for ( type in Expr.filter ) {
+ if ( (match = matchExpr[ type ].exec( soFar )) && (!preFilters[ type ] ||
+ (match = preFilters[ type ]( match ))) ) {
+ matched = match.shift();
+ tokens.push({
+ value: matched,
+ type: type,
+ matches: match
+ });
+ soFar = soFar.slice( matched.length );
+ }
+ }
+
+ if ( !matched ) {
+ break;
+ }
+ }
+
+ // Return the length of the invalid excess
+ // if we're just parsing
+ // Otherwise, throw an error or return tokens
+ return parseOnly ?
+ soFar.length :
+ soFar ?
+ Sizzle.error( selector ) :
+ // Cache the tokens
+ tokenCache( selector, groups ).slice( 0 );
+};
+
+function toSelector( tokens ) {
+ var i = 0,
+ len = tokens.length,
+ selector = "";
+ for ( ; i < len; i++ ) {
+ selector += tokens[i].value;
+ }
+ return selector;
+}
+
+function addCombinator( matcher, combinator, base ) {
+ var dir = combinator.dir,
+ skip = combinator.next,
+ key = skip || dir,
+ checkNonElements = base && key === "parentNode",
+ doneName = done++;
+
+ return combinator.first ?
+ // Check against closest ancestor/preceding element
+ function( elem, context, xml ) {
+ while ( (elem = elem[ dir ]) ) {
+ if ( elem.nodeType === 1 || checkNonElements ) {
+ return matcher( elem, context, xml );
+ }
+ }
+ return false;
+ } :
+
+ // Check against all ancestor/preceding elements
+ function( elem, context, xml ) {
+ var oldCache, uniqueCache, outerCache,
+ newCache = [ dirruns, doneName ];
+
+ // We can't set arbitrary data on XML nodes, so they don't benefit from combinator caching
+ if ( xml ) {
+ while ( (elem = elem[ dir ]) ) {
+ if ( elem.nodeType === 1 || checkNonElements ) {
+ if ( matcher( elem, context, xml ) ) {
+ return true;
+ }
+ }
+ }
+ } else {
+ while ( (elem = elem[ dir ]) ) {
+ if ( elem.nodeType === 1 || checkNonElements ) {
+ outerCache = elem[ expando ] || (elem[ expando ] = {});
+
+ // Support: IE <9 only
+ // Defend against cloned attroperties (jQuery gh-1709)
+ uniqueCache = outerCache[ elem.uniqueID ] || (outerCache[ elem.uniqueID ] = {});
+
+ if ( skip && skip === elem.nodeName.toLowerCase() ) {
+ elem = elem[ dir ] || elem;
+ } else if ( (oldCache = uniqueCache[ key ]) &&
+ oldCache[ 0 ] === dirruns && oldCache[ 1 ] === doneName ) {
+
+ // Assign to newCache so results back-propagate to previous elements
+ return (newCache[ 2 ] = oldCache[ 2 ]);
+ } else {
+ // Reuse newcache so results back-propagate to previous elements
+ uniqueCache[ key ] = newCache;
+
+ // A match means we're done; a fail means we have to keep checking
+ if ( (newCache[ 2 ] = matcher( elem, context, xml )) ) {
+ return true;
+ }
+ }
+ }
+ }
+ }
+ return false;
+ };
+}
+
+function elementMatcher( matchers ) {
+ return matchers.length > 1 ?
+ function( elem, context, xml ) {
+ var i = matchers.length;
+ while ( i-- ) {
+ if ( !matchers[i]( elem, context, xml ) ) {
+ return false;
+ }
+ }
+ return true;
+ } :
+ matchers[0];
+}
+
+function multipleContexts( selector, contexts, results ) {
+ var i = 0,
+ len = contexts.length;
+ for ( ; i < len; i++ ) {
+ Sizzle( selector, contexts[i], results );
+ }
+ return results;
+}
+
+function condense( unmatched, map, filter, context, xml ) {
+ var elem,
+ newUnmatched = [],
+ i = 0,
+ len = unmatched.length,
+ mapped = map != null;
+
+ for ( ; i < len; i++ ) {
+ if ( (elem = unmatched[i]) ) {
+ if ( !filter || filter( elem, context, xml ) ) {
+ newUnmatched.push( elem );
+ if ( mapped ) {
+ map.push( i );
+ }
+ }
+ }
+ }
+
+ return newUnmatched;
+}
+
+function setMatcher( preFilter, selector, matcher, postFilter, postFinder, postSelector ) {
+ if ( postFilter && !postFilter[ expando ] ) {
+ postFilter = setMatcher( postFilter );
+ }
+ if ( postFinder && !postFinder[ expando ] ) {
+ postFinder = setMatcher( postFinder, postSelector );
+ }
+ return markFunction(function( seed, results, context, xml ) {
+ var temp, i, elem,
+ preMap = [],
+ postMap = [],
+ preexisting = results.length,
+
+ // Get initial elements from seed or context
+ elems = seed || multipleContexts( selector || "*", context.nodeType ? [ context ] : context, [] ),
+
+ // Prefilter to get matcher input, preserving a map for seed-results synchronization
+ matcherIn = preFilter && ( seed || !selector ) ?
+ condense( elems, preMap, preFilter, context, xml ) :
+ elems,
+
+ matcherOut = matcher ?
+ // If we have a postFinder, or filtered seed, or non-seed postFilter or preexisting results,
+ postFinder || ( seed ? preFilter : preexisting || postFilter ) ?
+
+ // ...intermediate processing is necessary
+ [] :
+
+ // ...otherwise use results directly
+ results :
+ matcherIn;
+
+ // Find primary matches
+ if ( matcher ) {
+ matcher( matcherIn, matcherOut, context, xml );
+ }
+
+ // Apply postFilter
+ if ( postFilter ) {
+ temp = condense( matcherOut, postMap );
+ postFilter( temp, [], context, xml );
+
+ // Un-match failing elements by moving them back to matcherIn
+ i = temp.length;
+ while ( i-- ) {
+ if ( (elem = temp[i]) ) {
+ matcherOut[ postMap[i] ] = !(matcherIn[ postMap[i] ] = elem);
+ }
+ }
+ }
+
+ if ( seed ) {
+ if ( postFinder || preFilter ) {
+ if ( postFinder ) {
+ // Get the final matcherOut by condensing this intermediate into postFinder contexts
+ temp = [];
+ i = matcherOut.length;
+ while ( i-- ) {
+ if ( (elem = matcherOut[i]) ) {
+ // Restore matcherIn since elem is not yet a final match
+ temp.push( (matcherIn[i] = elem) );
+ }
+ }
+ postFinder( null, (matcherOut = []), temp, xml );
+ }
+
+ // Move matched elements from seed to results to keep them synchronized
+ i = matcherOut.length;
+ while ( i-- ) {
+ if ( (elem = matcherOut[i]) &&
+ (temp = postFinder ? indexOf( seed, elem ) : preMap[i]) > -1 ) {
+
+ seed[temp] = !(results[temp] = elem);
+ }
+ }
+ }
+
+ // Add elements to results, through postFinder if defined
+ } else {
+ matcherOut = condense(
+ matcherOut === results ?
+ matcherOut.splice( preexisting, matcherOut.length ) :
+ matcherOut
+ );
+ if ( postFinder ) {
+ postFinder( null, results, matcherOut, xml );
+ } else {
+ push.apply( results, matcherOut );
+ }
+ }
+ });
+}
+
+function matcherFromTokens( tokens ) {
+ var checkContext, matcher, j,
+ len = tokens.length,
+ leadingRelative = Expr.relative[ tokens[0].type ],
+ implicitRelative = leadingRelative || Expr.relative[" "],
+ i = leadingRelative ? 1 : 0,
+
+ // The foundational matcher ensures that elements are reachable from top-level context(s)
+ matchContext = addCombinator( function( elem ) {
+ return elem === checkContext;
+ }, implicitRelative, true ),
+ matchAnyContext = addCombinator( function( elem ) {
+ return indexOf( checkContext, elem ) > -1;
+ }, implicitRelative, true ),
+ matchers = [ function( elem, context, xml ) {
+ var ret = ( !leadingRelative && ( xml || context !== outermostContext ) ) || (
+ (checkContext = context).nodeType ?
+ matchContext( elem, context, xml ) :
+ matchAnyContext( elem, context, xml ) );
+ // Avoid hanging onto element (issue #299)
+ checkContext = null;
+ return ret;
+ } ];
+
+ for ( ; i < len; i++ ) {
+ if ( (matcher = Expr.relative[ tokens[i].type ]) ) {
+ matchers = [ addCombinator(elementMatcher( matchers ), matcher) ];
+ } else {
+ matcher = Expr.filter[ tokens[i].type ].apply( null, tokens[i].matches );
+
+ // Return special upon seeing a positional matcher
+ if ( matcher[ expando ] ) {
+ // Find the next relative operator (if any) for proper handling
+ j = ++i;
+ for ( ; j < len; j++ ) {
+ if ( Expr.relative[ tokens[j].type ] ) {
+ break;
+ }
+ }
+ return setMatcher(
+ i > 1 && elementMatcher( matchers ),
+ i > 1 && toSelector(
+ // If the preceding token was a descendant combinator, insert an implicit any-element `*`
+ tokens.slice( 0, i - 1 ).concat({ value: tokens[ i - 2 ].type === " " ? "*" : "" })
+ ).replace( rtrim, "$1" ),
+ matcher,
+ i < j && matcherFromTokens( tokens.slice( i, j ) ),
+ j < len && matcherFromTokens( (tokens = tokens.slice( j )) ),
+ j < len && toSelector( tokens )
+ );
+ }
+ matchers.push( matcher );
+ }
+ }
+
+ return elementMatcher( matchers );
+}
+
+function matcherFromGroupMatchers( elementMatchers, setMatchers ) {
+ var bySet = setMatchers.length > 0,
+ byElement = elementMatchers.length > 0,
+ superMatcher = function( seed, context, xml, results, outermost ) {
+ var elem, j, matcher,
+ matchedCount = 0,
+ i = "0",
+ unmatched = seed && [],
+ setMatched = [],
+ contextBackup = outermostContext,
+ // We must always have either seed elements or outermost context
+ elems = seed || byElement && Expr.find["TAG"]( "*", outermost ),
+ // Use integer dirruns iff this is the outermost matcher
+ dirrunsUnique = (dirruns += contextBackup == null ? 1 : Math.random() || 0.1),
+ len = elems.length;
+
+ if ( outermost ) {
+ outermostContext = context === document || context || outermost;
+ }
+
+ // Add elements passing elementMatchers directly to results
+ // Support: IE<9, Safari
+ // Tolerate NodeList properties (IE: "length"; Safari: <number>) matching elements by id
+ for ( ; i !== len && (elem = elems[i]) != null; i++ ) {
+ if ( byElement && elem ) {
+ j = 0;
+ if ( !context && elem.ownerDocument !== document ) {
+ setDocument( elem );
+ xml = !documentIsHTML;
+ }
+ while ( (matcher = elementMatchers[j++]) ) {
+ if ( matcher( elem, context || document, xml) ) {
+ results.push( elem );
+ break;
+ }
+ }
+ if ( outermost ) {
+ dirruns = dirrunsUnique;
+ }
+ }
+
+ // Track unmatched elements for set filters
+ if ( bySet ) {
+ // They will have gone through all possible matchers
+ if ( (elem = !matcher && elem) ) {
+ matchedCount--;
+ }
+
+ // Lengthen the array for every element, matched or not
+ if ( seed ) {
+ unmatched.push( elem );
+ }
+ }
+ }
+
+ // `i` is now the count of elements visited above, and adding it to `matchedCount`
+ // makes the latter nonnegative.
+ matchedCount += i;
+
+ // Apply set filters to unmatched elements
+ // NOTE: This can be skipped if there are no unmatched elements (i.e., `matchedCount`
+ // equals `i`), unless we didn't visit _any_ elements in the above loop because we have
+ // no element matchers and no seed.
+ // Incrementing an initially-string "0" `i` allows `i` to remain a string only in that
+ // case, which will result in a "00" `matchedCount` that differs from `i` but is also
+ // numerically zero.
+ if ( bySet && i !== matchedCount ) {
+ j = 0;
+ while ( (matcher = setMatchers[j++]) ) {
+ matcher( unmatched, setMatched, context, xml );
+ }
+
+ if ( seed ) {
+ // Reintegrate element matches to eliminate the need for sorting
+ if ( matchedCount > 0 ) {
+ while ( i-- ) {
+ if ( !(unmatched[i] || setMatched[i]) ) {
+ setMatched[i] = pop.call( results );
+ }
+ }
+ }
+
+ // Discard index placeholder values to get only actual matches
+ setMatched = condense( setMatched );
+ }
+
+ // Add matches to results
+ push.apply( results, setMatched );
+
+ // Seedless set matches succeeding multiple successful matchers stipulate sorting
+ if ( outermost && !seed && setMatched.length > 0 &&
+ ( matchedCount + setMatchers.length ) > 1 ) {
+
+ Sizzle.uniqueSort( results );
+ }
+ }
+
+ // Override manipulation of globals by nested matchers
+ if ( outermost ) {
+ dirruns = dirrunsUnique;
+ outermostContext = contextBackup;
+ }
+
+ return unmatched;
+ };
+
+ return bySet ?
+ markFunction( superMatcher ) :
+ superMatcher;
+}
+
+compile = Sizzle.compile = function( selector, match /* Internal Use Only */ ) {
+ var i,
+ setMatchers = [],
+ elementMatchers = [],
+ cached = compilerCache[ selector + " " ];
+
+ if ( !cached ) {
+ // Generate a function of recursive functions that can be used to check each element
+ if ( !match ) {
+ match = tokenize( selector );
+ }
+ i = match.length;
+ while ( i-- ) {
+ cached = matcherFromTokens( match[i] );
+ if ( cached[ expando ] ) {
+ setMatchers.push( cached );
+ } else {
+ elementMatchers.push( cached );
+ }
+ }
+
+ // Cache the compiled function
+ cached = compilerCache( selector, matcherFromGroupMatchers( elementMatchers, setMatchers ) );
+
+ // Save selector and tokenization
+ cached.selector = selector;
+ }
+ return cached;
+};
+
+/**
+ * A low-level selection function that works with Sizzle's compiled
+ * selector functions
+ * @param {String|Function} selector A selector or a pre-compiled
+ * selector function built with Sizzle.compile
+ * @param {Element} context
+ * @param {Array} [results]
+ * @param {Array} [seed] A set of elements to match against
+ */
+select = Sizzle.select = function( selector, context, results, seed ) {
+ var i, tokens, token, type, find,
+ compiled = typeof selector === "function" && selector,
+ match = !seed && tokenize( (selector = compiled.selector || selector) );
+
+ results = results || [];
+
+ // Try to minimize operations if there is only one selector in the list and no seed
+ // (the latter of which guarantees us context)
+ if ( match.length === 1 ) {
+
+ // Reduce context if the leading compound selector is an ID
+ tokens = match[0] = match[0].slice( 0 );
+ if ( tokens.length > 2 && (token = tokens[0]).type === "ID" &&
+ context.nodeType === 9 && documentIsHTML && Expr.relative[ tokens[1].type ] ) {
+
+ context = ( Expr.find["ID"]( token.matches[0].replace(runescape, funescape), context ) || [] )[0];
+ if ( !context ) {
+ return results;
+
+ // Precompiled matchers will still verify ancestry, so step up a level
+ } else if ( compiled ) {
+ context = context.parentNode;
+ }
+
+ selector = selector.slice( tokens.shift().value.length );
+ }
+
+ // Fetch a seed set for right-to-left matching
+ i = matchExpr["needsContext"].test( selector ) ? 0 : tokens.length;
+ while ( i-- ) {
+ token = tokens[i];
+
+ // Abort if we hit a combinator
+ if ( Expr.relative[ (type = token.type) ] ) {
+ break;
+ }
+ if ( (find = Expr.find[ type ]) ) {
+ // Search, expanding context for leading sibling combinators
+ if ( (seed = find(
+ token.matches[0].replace( runescape, funescape ),
+ rsibling.test( tokens[0].type ) && testContext( context.parentNode ) || context
+ )) ) {
+
+ // If seed is empty or no tokens remain, we can return early
+ tokens.splice( i, 1 );
+ selector = seed.length && toSelector( tokens );
+ if ( !selector ) {
+ push.apply( results, seed );
+ return results;
+ }
+
+ break;
+ }
+ }
+ }
+ }
+
+ // Compile and execute a filtering function if one is not provided
+ // Provide `match` to avoid retokenization if we modified the selector above
+ ( compiled || compile( selector, match ) )(
+ seed,
+ context,
+ !documentIsHTML,
+ results,
+ !context || rsibling.test( selector ) && testContext( context.parentNode ) || context
+ );
+ return results;
+};
+
+// One-time assignments
+
+// Sort stability
+support.sortStable = expando.split("").sort( sortOrder ).join("") === expando;
+
+// Support: Chrome 14-35+
+// Always assume duplicates if they aren't passed to the comparison function
+support.detectDuplicates = !!hasDuplicate;
+
+// Initialize against the default document
+setDocument();
+
+// Support: Webkit<537.32 - Safari 6.0.3/Chrome 25 (fixed in Chrome 27)
+// Detached nodes confoundingly follow *each other*
+support.sortDetached = assert(function( el ) {
+ // Should return 1, but returns 4 (following)
+ return el.compareDocumentPosition( document.createElement("fieldset") ) & 1;
+});
+
+// Support: IE<8
+// Prevent attribute/property "interpolation"
+// https://msdn.microsoft.com/en-us/library/ms536429%28VS.85%29.aspx
+if ( !assert(function( el ) {
+ el.innerHTML = "<a href='#'></a>";
+ return el.firstChild.getAttribute("href") === "#" ;
+}) ) {
+ addHandle( "type|href|height|width", function( elem, name, isXML ) {
+ if ( !isXML ) {
+ return elem.getAttribute( name, name.toLowerCase() === "type" ? 1 : 2 );
+ }
+ });
+}
+
+// Support: IE<9
+// Use defaultValue in place of getAttribute("value")
+if ( !support.attributes || !assert(function( el ) {
+ el.innerHTML = "<input/>";
+ el.firstChild.setAttribute( "value", "" );
+ return el.firstChild.getAttribute( "value" ) === "";
+}) ) {
+ addHandle( "value", function( elem, name, isXML ) {
+ if ( !isXML && elem.nodeName.toLowerCase() === "input" ) {
+ return elem.defaultValue;
+ }
+ });
+}
+
+// Support: IE<9
+// Use getAttributeNode to fetch booleans when getAttribute lies
+if ( !assert(function( el ) {
+ return el.getAttribute("disabled") == null;
+}) ) {
+ addHandle( booleans, function( elem, name, isXML ) {
+ var val;
+ if ( !isXML ) {
+ return elem[ name ] === true ? name.toLowerCase() :
+ (val = elem.getAttributeNode( name )) && val.specified ?
+ val.value :
+ null;
+ }
+ });
+}
+
+return Sizzle;
+
+})( window );
+
+
+
+jQuery.find = Sizzle;
+jQuery.expr = Sizzle.selectors;
+
+// Deprecated
+jQuery.expr[ ":" ] = jQuery.expr.pseudos;
+jQuery.uniqueSort = jQuery.unique = Sizzle.uniqueSort;
+jQuery.text = Sizzle.getText;
+jQuery.isXMLDoc = Sizzle.isXML;
+jQuery.contains = Sizzle.contains;
+jQuery.escapeSelector = Sizzle.escape;
+
+
+
+
+var dir = function( elem, dir, until ) {
+ var matched = [],
+ truncate = until !== undefined;
+
+ while ( ( elem = elem[ dir ] ) && elem.nodeType !== 9 ) {
+ if ( elem.nodeType === 1 ) {
+ if ( truncate && jQuery( elem ).is( until ) ) {
+ break;
+ }
+ matched.push( elem );
+ }
+ }
+ return matched;
+};
+
+
+var siblings = function( n, elem ) {
+ var matched = [];
+
+ for ( ; n; n = n.nextSibling ) {
+ if ( n.nodeType === 1 && n !== elem ) {
+ matched.push( n );
+ }
+ }
+
+ return matched;
+};
+
+
+var rneedsContext = jQuery.expr.match.needsContext;
+
+var rsingleTag = ( /^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i );
+
+
+
+var risSimple = /^.[^:#\[\.,]*$/;
+
+// Implement the identical functionality for filter and not
+function winnow( elements, qualifier, not ) {
+ if ( jQuery.isFunction( qualifier ) ) {
+ return jQuery.grep( elements, function( elem, i ) {
+ return !!qualifier.call( elem, i, elem ) !== not;
+ } );
+ }
+
+ // Single element
+ if ( qualifier.nodeType ) {
+ return jQuery.grep( elements, function( elem ) {
+ return ( elem === qualifier ) !== not;
+ } );
+ }
+
+ // Arraylike of elements (jQuery, arguments, Array)
+ if ( typeof qualifier !== "string" ) {
+ return jQuery.grep( elements, function( elem ) {
+ return ( indexOf.call( qualifier, elem ) > -1 ) !== not;
+ } );
+ }
+
+ // Simple selector that can be filtered directly, removing non-Elements
+ if ( risSimple.test( qualifier ) ) {
+ return jQuery.filter( qualifier, elements, not );
+ }
+
+ // Complex selector, compare the two sets, removing non-Elements
+ qualifier = jQuery.filter( qualifier, elements );
+ return jQuery.grep( elements, function( elem ) {
+ return ( indexOf.call( qualifier, elem ) > -1 ) !== not && elem.nodeType === 1;
+ } );
+}
+
+jQuery.filter = function( expr, elems, not ) {
+ var elem = elems[ 0 ];
+
+ if ( not ) {
+ expr = ":not(" + expr + ")";
+ }
+
+ if ( elems.length === 1 && elem.nodeType === 1 ) {
+ return jQuery.find.matchesSelector( elem, expr ) ? [ elem ] : [];
+ }
+
+ return jQuery.find.matches( expr, jQuery.grep( elems, function( elem ) {
+ return elem.nodeType === 1;
+ } ) );
+};
+
+jQuery.fn.extend( {
+ find: function( selector ) {
+ var i, ret,
+ len = this.length,
+ self = this;
+
+ if ( typeof selector !== "string" ) {
+ return this.pushStack( jQuery( selector ).filter( function() {
+ for ( i = 0; i < len; i++ ) {
+ if ( jQuery.contains( self[ i ], this ) ) {
+ return true;
+ }
+ }
+ } ) );
+ }
+
+ ret = this.pushStack( [] );
+
+ for ( i = 0; i < len; i++ ) {
+ jQuery.find( selector, self[ i ], ret );
+ }
+
+ return len > 1 ? jQuery.uniqueSort( ret ) : ret;
+ },
+ filter: function( selector ) {
+ return this.pushStack( winnow( this, selector || [], false ) );
+ },
+ not: function( selector ) {
+ return this.pushStack( winnow( this, selector || [], true ) );
+ },
+ is: function( selector ) {
+ return !!winnow(
+ this,
+
+ // If this is a positional/relative selector, check membership in the returned set
+ // so $("p:first").is("p:last") won't return true for a doc with two "p".
+ typeof selector === "string" && rneedsContext.test( selector ) ?
+ jQuery( selector ) :
+ selector || [],
+ false
+ ).length;
+ }
+} );
+
+
+// Initialize a jQuery object
+
+
+// A central reference to the root jQuery(document)
+var rootjQuery,
+
+ // A simple way to check for HTML strings
+ // Prioritize #id over <tag> to avoid XSS via location.hash (#9521)
+ // Strict HTML recognition (#11290: must start with <)
+ // Shortcut simple #id case for speed
+ rquickExpr = /^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/,
+
+ init = jQuery.fn.init = function( selector, context, root ) {
+ var match, elem;
+
+ // HANDLE: $(""), $(null), $(undefined), $(false)
+ if ( !selector ) {
+ return this;
+ }
+
+ // Method init() accepts an alternate rootjQuery
+ // so migrate can support jQuery.sub (gh-2101)
+ root = root || rootjQuery;
+
+ // Handle HTML strings
+ if ( typeof selector === "string" ) {
+ if ( selector[ 0 ] === "<" &&
+ selector[ selector.length - 1 ] === ">" &&
+ selector.length >= 3 ) {
+
+ // Assume that strings that start and end with <> are HTML and skip the regex check
+ match = [ null, selector, null ];
+
+ } else {
+ match = rquickExpr.exec( selector );
+ }
+
+ // Match html or make sure no context is specified for #id
+ if ( match && ( match[ 1 ] || !context ) ) {
+
+ // HANDLE: $(html) -> $(array)
+ if ( match[ 1 ] ) {
+ context = context instanceof jQuery ? context[ 0 ] : context;
+
+ // Option to run scripts is true for back-compat
+ // Intentionally let the error be thrown if parseHTML is not present
+ jQuery.merge( this, jQuery.parseHTML(
+ match[ 1 ],
+ context && context.nodeType ? context.ownerDocument || context : document,
+ true
+ ) );
+
+ // HANDLE: $(html, props)
+ if ( rsingleTag.test( match[ 1 ] ) && jQuery.isPlainObject( context ) ) {
+ for ( match in context ) {
+
+ // Properties of context are called as methods if possible
+ if ( jQuery.isFunction( this[ match ] ) ) {
+ this[ match ]( context[ match ] );
+
+ // ...and otherwise set as attributes
+ } else {
+ this.attr( match, context[ match ] );
+ }
+ }
+ }
+
+ return this;
+
+ // HANDLE: $(#id)
+ } else {
+ elem = document.getElementById( match[ 2 ] );
+
+ if ( elem ) {
+
+ // Inject the element directly into the jQuery object
+ this[ 0 ] = elem;
+ this.length = 1;
+ }
+ return this;
+ }
+
+ // HANDLE: $(expr, $(...))
+ } else if ( !context || context.jquery ) {
+ return ( context || root ).find( selector );
+
+ // HANDLE: $(expr, context)
+ // (which is just equivalent to: $(context).find(expr)
+ } else {
+ return this.constructor( context ).find( selector );
+ }
+
+ // HANDLE: $(DOMElement)
+ } else if ( selector.nodeType ) {
+ this[ 0 ] = selector;
+ this.length = 1;
+ return this;
+
+ // HANDLE: $(function)
+ // Shortcut for document ready
+ } else if ( jQuery.isFunction( selector ) ) {
+ return root.ready !== undefined ?
+ root.ready( selector ) :
+
+ // Execute immediately if ready is not present
+ selector( jQuery );
+ }
+
+ return jQuery.makeArray( selector, this );
+ };
+
+// Give the init function the jQuery prototype for later instantiation
+init.prototype = jQuery.fn;
+
+// Initialize central reference
+rootjQuery = jQuery( document );
+
+
+var rparentsprev = /^(?:parents|prev(?:Until|All))/,
+
+ // Methods guaranteed to produce a unique set when starting from a unique set
+ guaranteedUnique = {
+ children: true,
+ contents: true,
+ next: true,
+ prev: true
+ };
+
+jQuery.fn.extend( {
+ has: function( target ) {
+ var targets = jQuery( target, this ),
+ l = targets.length;
+
+ return this.filter( function() {
+ var i = 0;
+ for ( ; i < l; i++ ) {
+ if ( jQuery.contains( this, targets[ i ] ) ) {
+ return true;
+ }
+ }
+ } );
+ },
+
+ closest: function( selectors, context ) {
+ var cur,
+ i = 0,
+ l = this.length,
+ matched = [],
+ targets = typeof selectors !== "string" && jQuery( selectors );
+
+ // Positional selectors never match, since there's no _selection_ context
+ if ( !rneedsContext.test( selectors ) ) {
+ for ( ; i < l; i++ ) {
+ for ( cur = this[ i ]; cur && cur !== context; cur = cur.parentNode ) {
+
+ // Always skip document fragments
+ if ( cur.nodeType < 11 && ( targets ?
+ targets.index( cur ) > -1 :
+
+ // Don't pass non-elements to Sizzle
+ cur.nodeType === 1 &&
+ jQuery.find.matchesSelector( cur, selectors ) ) ) {
+
+ matched.push( cur );
+ break;
+ }
+ }
+ }
+ }
+
+ return this.pushStack( matched.length > 1 ? jQuery.uniqueSort( matched ) : matched );
+ },
+
+ // Determine the position of an element within the set
+ index: function( elem ) {
+
+ // No argument, return index in parent
+ if ( !elem ) {
+ return ( this[ 0 ] && this[ 0 ].parentNode ) ? this.first().prevAll().length : -1;
+ }
+
+ // Index in selector
+ if ( typeof elem === "string" ) {
+ return indexOf.call( jQuery( elem ), this[ 0 ] );
+ }
+
+ // Locate the position of the desired element
+ return indexOf.call( this,
+
+ // If it receives a jQuery object, the first element is used
+ elem.jquery ? elem[ 0 ] : elem
+ );
+ },
+
+ add: function( selector, context ) {
+ return this.pushStack(
+ jQuery.uniqueSort(
+ jQuery.merge( this.get(), jQuery( selector, context ) )
+ )
+ );
+ },
+
+ addBack: function( selector ) {
+ return this.add( selector == null ?
+ this.prevObject : this.prevObject.filter( selector )
+ );
+ }
+} );
+
+function sibling( cur, dir ) {
+ while ( ( cur = cur[ dir ] ) && cur.nodeType !== 1 ) {}
+ return cur;
+}
+
+jQuery.each( {
+ parent: function( elem ) {
+ var parent = elem.parentNode;
+ return parent && parent.nodeType !== 11 ? parent : null;
+ },
+ parents: function( elem ) {
+ return dir( elem, "parentNode" );
+ },
+ parentsUntil: function( elem, i, until ) {
+ return dir( elem, "parentNode", until );
+ },
+ next: function( elem ) {
+ return sibling( elem, "nextSibling" );
+ },
+ prev: function( elem ) {
+ return sibling( elem, "previousSibling" );
+ },
+ nextAll: function( elem ) {
+ return dir( elem, "nextSibling" );
+ },
+ prevAll: function( elem ) {
+ return dir( elem, "previousSibling" );
+ },
+ nextUntil: function( elem, i, until ) {
+ return dir( elem, "nextSibling", until );
+ },
+ prevUntil: function( elem, i, until ) {
+ return dir( elem, "previousSibling", until );
+ },
+ siblings: function( elem ) {
+ return siblings( ( elem.parentNode || {} ).firstChild, elem );
+ },
+ children: function( elem ) {
+ return siblings( elem.firstChild );
+ },
+ contents: function( elem ) {
+ return elem.contentDocument || jQuery.merge( [], elem.childNodes );
+ }
+}, function( name, fn ) {
+ jQuery.fn[ name ] = function( until, selector ) {
+ var matched = jQuery.map( this, fn, until );
+
+ if ( name.slice( -5 ) !== "Until" ) {
+ selector = until;
+ }
+
+ if ( selector && typeof selector === "string" ) {
+ matched = jQuery.filter( selector, matched );
+ }
+
+ if ( this.length > 1 ) {
+
+ // Remove duplicates
+ if ( !guaranteedUnique[ name ] ) {
+ jQuery.uniqueSort( matched );
+ }
+
+ // Reverse order for parents* and prev-derivatives
+ if ( rparentsprev.test( name ) ) {
+ matched.reverse();
+ }
+ }
+
+ return this.pushStack( matched );
+ };
+} );
+var rnothtmlwhite = ( /[^\x20\t\r\n\f]+/g );
+
+
+
+// Convert String-formatted options into Object-formatted ones
+function createOptions( options ) {
+ var object = {};
+ jQuery.each( options.match( rnothtmlwhite ) || [], function( _, flag ) {
+ object[ flag ] = true;
+ } );
+ return object;
+}
+
+/*
+ * Create a callback list using the following parameters:
+ *
+ * options: an optional list of space-separated options that will change how
+ * the callback list behaves or a more traditional option object
+ *
+ * By default a callback list will act like an event callback list and can be
+ * "fired" multiple times.
+ *
+ * Possible options:
+ *
+ * once: will ensure the callback list can only be fired once (like a Deferred)
+ *
+ * memory: will keep track of previous values and will call any callback added
+ * after the list has been fired right away with the latest "memorized"
+ * values (like a Deferred)
+ *
+ * unique: will ensure a callback can only be added once (no duplicate in the list)
+ *
+ * stopOnFalse: interrupt callings when a callback returns false
+ *
+ */
+jQuery.Callbacks = function( options ) {
+
+ // Convert options from String-formatted to Object-formatted if needed
+ // (we check in cache first)
+ options = typeof options === "string" ?
+ createOptions( options ) :
+ jQuery.extend( {}, options );
+
+ var // Flag to know if list is currently firing
+ firing,
+
+ // Last fire value for non-forgettable lists
+ memory,
+
+ // Flag to know if list was already fired
+ fired,
+
+ // Flag to prevent firing
+ locked,
+
+ // Actual callback list
+ list = [],
+
+ // Queue of execution data for repeatable lists
+ queue = [],
+
+ // Index of currently firing callback (modified by add/remove as needed)
+ firingIndex = -1,
+
+ // Fire callbacks
+ fire = function() {
+
+ // Enforce single-firing
+ locked = options.once;
+
+ // Execute callbacks for all pending executions,
+ // respecting firingIndex overrides and runtime changes
+ fired = firing = true;
+ for ( ; queue.length; firingIndex = -1 ) {
+ memory = queue.shift();
+ while ( ++firingIndex < list.length ) {
+
+ // Run callback and check for early termination
+ if ( list[ firingIndex ].apply( memory[ 0 ], memory[ 1 ] ) === false &&
+ options.stopOnFalse ) {
+
+ // Jump to end and forget the data so .add doesn't re-fire
+ firingIndex = list.length;
+ memory = false;
+ }
+ }
+ }
+
+ // Forget the data if we're done with it
+ if ( !options.memory ) {
+ memory = false;
+ }
+
+ firing = false;
+
+ // Clean up if we're done firing for good
+ if ( locked ) {
+
+ // Keep an empty list if we have data for future add calls
+ if ( memory ) {
+ list = [];
+
+ // Otherwise, this object is spent
+ } else {
+ list = "";
+ }
+ }
+ },
+
+ // Actual Callbacks object
+ self = {
+
+ // Add a callback or a collection of callbacks to the list
+ add: function() {
+ if ( list ) {
+
+ // If we have memory from a past run, we should fire after adding
+ if ( memory && !firing ) {
+ firingIndex = list.length - 1;
+ queue.push( memory );
+ }
+
+ ( function add( args ) {
+ jQuery.each( args, function( _, arg ) {
+ if ( jQuery.isFunction( arg ) ) {
+ if ( !options.unique || !self.has( arg ) ) {
+ list.push( arg );
+ }
+ } else if ( arg && arg.length && jQuery.type( arg ) !== "string" ) {
+
+ // Inspect recursively
+ add( arg );
+ }
+ } );
+ } )( arguments );
+
+ if ( memory && !firing ) {
+ fire();
+ }
+ }
+ return this;
+ },
+
+ // Remove a callback from the list
+ remove: function() {
+ jQuery.each( arguments, function( _, arg ) {
+ var index;
+ while ( ( index = jQuery.inArray( arg, list, index ) ) > -1 ) {
+ list.splice( index, 1 );
+
+ // Handle firing indexes
+ if ( index <= firingIndex ) {
+ firingIndex--;
+ }
+ }
+ } );
+ return this;
+ },
+
+ // Check if a given callback is in the list.
+ // If no argument is given, return whether or not list has callbacks attached.
+ has: function( fn ) {
+ return fn ?
+ jQuery.inArray( fn, list ) > -1 :
+ list.length > 0;
+ },
+
+ // Remove all callbacks from the list
+ empty: function() {
+ if ( list ) {
+ list = [];
+ }
+ return this;
+ },
+
+ // Disable .fire and .add
+ // Abort any current/pending executions
+ // Clear all callbacks and values
+ disable: function() {
+ locked = queue = [];
+ list = memory = "";
+ return this;
+ },
+ disabled: function() {
+ return !list;
+ },
+
+ // Disable .fire
+ // Also disable .add unless we have memory (since it would have no effect)
+ // Abort any pending executions
+ lock: function() {
+ locked = queue = [];
+ if ( !memory && !firing ) {
+ list = memory = "";
+ }
+ return this;
+ },
+ locked: function() {
+ return !!locked;
+ },
+
+ // Call all callbacks with the given context and arguments
+ fireWith: function( context, args ) {
+ if ( !locked ) {
+ args = args || [];
+ args = [ context, args.slice ? args.slice() : args ];
+ queue.push( args );
+ if ( !firing ) {
+ fire();
+ }
+ }
+ return this;
+ },
+
+ // Call all the callbacks with the given arguments
+ fire: function() {
+ self.fireWith( this, arguments );
+ return this;
+ },
+
+ // To know if the callbacks have already been called at least once
+ fired: function() {
+ return !!fired;
+ }
+ };
+
+ return self;
+};
+
+
+function Identity( v ) {
+ return v;
+}
+function Thrower( ex ) {
+ throw ex;
+}
+
+function adoptValue( value, resolve, reject ) {
+ var method;
+
+ try {
+
+ // Check for promise aspect first to privilege synchronous behavior
+ if ( value && jQuery.isFunction( ( method = value.promise ) ) ) {
+ method.call( value ).done( resolve ).fail( reject );
+
+ // Other thenables
+ } else if ( value && jQuery.isFunction( ( method = value.then ) ) ) {
+ method.call( value, resolve, reject );
+
+ // Other non-thenables
+ } else {
+
+ // Support: Android 4.0 only
+ // Strict mode functions invoked without .call/.apply get global-object context
+ resolve.call( undefined, value );
+ }
+
+ // For Promises/A+, convert exceptions into rejections
+ // Since jQuery.when doesn't unwrap thenables, we can skip the extra checks appearing in
+ // Deferred#then to conditionally suppress rejection.
+ } catch ( value ) {
+
+ // Support: Android 4.0 only
+ // Strict mode functions invoked without .call/.apply get global-object context
+ reject.call( undefined, value );
+ }
+}
+
+jQuery.extend( {
+
+ Deferred: function( func ) {
+ var tuples = [
+
+ // action, add listener, callbacks,
+ // ... .then handlers, argument index, [final state]
+ [ "notify", "progress", jQuery.Callbacks( "memory" ),
+ jQuery.Callbacks( "memory" ), 2 ],
+ [ "resolve", "done", jQuery.Callbacks( "once memory" ),
+ jQuery.Callbacks( "once memory" ), 0, "resolved" ],
+ [ "reject", "fail", jQuery.Callbacks( "once memory" ),
+ jQuery.Callbacks( "once memory" ), 1, "rejected" ]
+ ],
+ state = "pending",
+ promise = {
+ state: function() {
+ return state;
+ },
+ always: function() {
+ deferred.done( arguments ).fail( arguments );
+ return this;
+ },
+ "catch": function( fn ) {
+ return promise.then( null, fn );
+ },
+
+ // Keep pipe for back-compat
+ pipe: function( /* fnDone, fnFail, fnProgress */ ) {
+ var fns = arguments;
+
+ return jQuery.Deferred( function( newDefer ) {
+ jQuery.each( tuples, function( i, tuple ) {
+
+ // Map tuples (progress, done, fail) to arguments (done, fail, progress)
+ var fn = jQuery.isFunction( fns[ tuple[ 4 ] ] ) && fns[ tuple[ 4 ] ];
+
+ // deferred.progress(function() { bind to newDefer or newDefer.notify })
+ // deferred.done(function() { bind to newDefer or newDefer.resolve })
+ // deferred.fail(function() { bind to newDefer or newDefer.reject })
+ deferred[ tuple[ 1 ] ]( function() {
+ var returned = fn && fn.apply( this, arguments );
+ if ( returned && jQuery.isFunction( returned.promise ) ) {
+ returned.promise()
+ .progress( newDefer.notify )
+ .done( newDefer.resolve )
+ .fail( newDefer.reject );
+ } else {
+ newDefer[ tuple[ 0 ] + "With" ](
+ this,
+ fn ? [ returned ] : arguments
+ );
+ }
+ } );
+ } );
+ fns = null;
+ } ).promise();
+ },
+ then: function( onFulfilled, onRejected, onProgress ) {
+ var maxDepth = 0;
+ function resolve( depth, deferred, handler, special ) {
+ return function() {
+ var that = this,
+ args = arguments,
+ mightThrow = function() {
+ var returned, then;
+
+ // Support: Promises/A+ section 2.3.3.3.3
+ // https://promisesaplus.com/#point-59
+ // Ignore double-resolution attempts
+ if ( depth < maxDepth ) {
+ return;
+ }
+
+ returned = handler.apply( that, args );
+
+ // Support: Promises/A+ section 2.3.1
+ // https://promisesaplus.com/#point-48
+ if ( returned === deferred.promise() ) {
+ throw new TypeError( "Thenable self-resolution" );
+ }
+
+ // Support: Promises/A+ sections 2.3.3.1, 3.5
+ // https://promisesaplus.com/#point-54
+ // https://promisesaplus.com/#point-75
+ // Retrieve `then` only once
+ then = returned &&
+
+ // Support: Promises/A+ section 2.3.4
+ // https://promisesaplus.com/#point-64
+ // Only check objects and functions for thenability
+ ( typeof returned === "object" ||
+ typeof returned === "function" ) &&
+ returned.then;
+
+ // Handle a returned thenable
+ if ( jQuery.isFunction( then ) ) {
+
+ // Special processors (notify) just wait for resolution
+ if ( special ) {
+ then.call(
+ returned,
+ resolve( maxDepth, deferred, Identity, special ),
+ resolve( maxDepth, deferred, Thrower, special )
+ );
+
+ // Normal processors (resolve) also hook into progress
+ } else {
+
+ // ...and disregard older resolution values
+ maxDepth++;
+
+ then.call(
+ returned,
+ resolve( maxDepth, deferred, Identity, special ),
+ resolve( maxDepth, deferred, Thrower, special ),
+ resolve( maxDepth, deferred, Identity,
+ deferred.notifyWith )
+ );
+ }
+
+ // Handle all other returned values
+ } else {
+
+ // Only substitute handlers pass on context
+ // and multiple values (non-spec behavior)
+ if ( handler !== Identity ) {
+ that = undefined;
+ args = [ returned ];
+ }
+
+ // Process the value(s)
+ // Default process is resolve
+ ( special || deferred.resolveWith )( that, args );
+ }
+ },
+
+ // Only normal processors (resolve) catch and reject exceptions
+ process = special ?
+ mightThrow :
+ function() {
+ try {
+ mightThrow();
+ } catch ( e ) {
+
+ if ( jQuery.Deferred.exceptionHook ) {
+ jQuery.Deferred.exceptionHook( e,
+ process.stackTrace );
+ }
+
+ // Support: Promises/A+ section 2.3.3.3.4.1
+ // https://promisesaplus.com/#point-61
+ // Ignore post-resolution exceptions
+ if ( depth + 1 >= maxDepth ) {
+
+ // Only substitute handlers pass on context
+ // and multiple values (non-spec behavior)
+ if ( handler !== Thrower ) {
+ that = undefined;
+ args = [ e ];
+ }
+
+ deferred.rejectWith( that, args );
+ }
+ }
+ };
+
+ // Support: Promises/A+ section 2.3.3.3.1
+ // https://promisesaplus.com/#point-57
+ // Re-resolve promises immediately to dodge false rejection from
+ // subsequent errors
+ if ( depth ) {
+ process();
+ } else {
+
+ // Call an optional hook to record the stack, in case of exception
+ // since it's otherwise lost when execution goes async
+ if ( jQuery.Deferred.getStackHook ) {
+ process.stackTrace = jQuery.Deferred.getStackHook();
+ }
+ window.setTimeout( process );
+ }
+ };
+ }
+
+ return jQuery.Deferred( function( newDefer ) {
+
+ // progress_handlers.add( ... )
+ tuples[ 0 ][ 3 ].add(
+ resolve(
+ 0,
+ newDefer,
+ jQuery.isFunction( onProgress ) ?
+ onProgress :
+ Identity,
+ newDefer.notifyWith
+ )
+ );
+
+ // fulfilled_handlers.add( ... )
+ tuples[ 1 ][ 3 ].add(
+ resolve(
+ 0,
+ newDefer,
+ jQuery.isFunction( onFulfilled ) ?
+ onFulfilled :
+ Identity
+ )
+ );
+
+ // rejected_handlers.add( ... )
+ tuples[ 2 ][ 3 ].add(
+ resolve(
+ 0,
+ newDefer,
+ jQuery.isFunction( onRejected ) ?
+ onRejected :
+ Thrower
+ )
+ );
+ } ).promise();
+ },
+
+ // Get a promise for this deferred
+ // If obj is provided, the promise aspect is added to the object
+ promise: function( obj ) {
+ return obj != null ? jQuery.extend( obj, promise ) : promise;
+ }
+ },
+ deferred = {};
+
+ // Add list-specific methods
+ jQuery.each( tuples, function( i, tuple ) {
+ var list = tuple[ 2 ],
+ stateString = tuple[ 5 ];
+
+ // promise.progress = list.add
+ // promise.done = list.add
+ // promise.fail = list.add
+ promise[ tuple[ 1 ] ] = list.add;
+
+ // Handle state
+ if ( stateString ) {
+ list.add(
+ function() {
+
+ // state = "resolved" (i.e., fulfilled)
+ // state = "rejected"
+ state = stateString;
+ },
+
+ // rejected_callbacks.disable
+ // fulfilled_callbacks.disable
+ tuples[ 3 - i ][ 2 ].disable,
+
+ // progress_callbacks.lock
+ tuples[ 0 ][ 2 ].lock
+ );
+ }
+
+ // progress_handlers.fire
+ // fulfilled_handlers.fire
+ // rejected_handlers.fire
+ list.add( tuple[ 3 ].fire );
+
+ // deferred.notify = function() { deferred.notifyWith(...) }
+ // deferred.resolve = function() { deferred.resolveWith(...) }
+ // deferred.reject = function() { deferred.rejectWith(...) }
+ deferred[ tuple[ 0 ] ] = function() {
+ deferred[ tuple[ 0 ] + "With" ]( this === deferred ? undefined : this, arguments );
+ return this;
+ };
+
+ // deferred.notifyWith = list.fireWith
+ // deferred.resolveWith = list.fireWith
+ // deferred.rejectWith = list.fireWith
+ deferred[ tuple[ 0 ] + "With" ] = list.fireWith;
+ } );
+
+ // Make the deferred a promise
+ promise.promise( deferred );
+
+ // Call given func if any
+ if ( func ) {
+ func.call( deferred, deferred );
+ }
+
+ // All done!
+ return deferred;
+ },
+
+ // Deferred helper
+ when: function( singleValue ) {
+ var
+
+ // count of uncompleted subordinates
+ remaining = arguments.length,
+
+ // count of unprocessed arguments
+ i = remaining,
+
+ // subordinate fulfillment data
+ resolveContexts = Array( i ),
+ resolveValues = slice.call( arguments ),
+
+ // the master Deferred
+ master = jQuery.Deferred(),
+
+ // subordinate callback factory
+ updateFunc = function( i ) {
+ return function( value ) {
+ resolveContexts[ i ] = this;
+ resolveValues[ i ] = arguments.length > 1 ? slice.call( arguments ) : value;
+ if ( !( --remaining ) ) {
+ master.resolveWith( resolveContexts, resolveValues );
+ }
+ };
+ };
+
+ // Single- and empty arguments are adopted like Promise.resolve
+ if ( remaining <= 1 ) {
+ adoptValue( singleValue, master.done( updateFunc( i ) ).resolve, master.reject );
+
+ // Use .then() to unwrap secondary thenables (cf. gh-3000)
+ if ( master.state() === "pending" ||
+ jQuery.isFunction( resolveValues[ i ] && resolveValues[ i ].then ) ) {
+
+ return master.then();
+ }
+ }
+
+ // Multiple arguments are aggregated like Promise.all array elements
+ while ( i-- ) {
+ adoptValue( resolveValues[ i ], updateFunc( i ), master.reject );
+ }
+
+ return master.promise();
+ }
+} );
+
+
+// These usually indicate a programmer mistake during development,
+// warn about them ASAP rather than swallowing them by default.
+var rerrorNames = /^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;
+
+jQuery.Deferred.exceptionHook = function( error, stack ) {
+
+ // Support: IE 8 - 9 only
+ // Console exists when dev tools are open, which can happen at any time
+ if ( window.console && window.console.warn && error && rerrorNames.test( error.name ) ) {
+ window.console.warn( "jQuery.Deferred exception: " + error.message, error.stack, stack );
+ }
+};
+
+
+
+
+jQuery.readyException = function( error ) {
+ window.setTimeout( function() {
+ throw error;
+ } );
+};
+
+
+
+
+// The deferred used on DOM ready
+var readyList = jQuery.Deferred();
+
+jQuery.fn.ready = function( fn ) {
+
+ readyList
+ .then( fn )
+
+ // Wrap jQuery.readyException in a function so that the lookup
+ // happens at the time of error handling instead of callback
+ // registration.
+ .catch( function( error ) {
+ jQuery.readyException( error );
+ } );
+
+ return this;
+};
+
+jQuery.extend( {
+
+ // Is the DOM ready to be used? Set to true once it occurs.
+ isReady: false,
+
+ // A counter to track how many items to wait for before
+ // the ready event fires. See #6781
+ readyWait: 1,
+
+ // Hold (or release) the ready event
+ holdReady: function( hold ) {
+ if ( hold ) {
+ jQuery.readyWait++;
+ } else {
+ jQuery.ready( true );
+ }
+ },
+
+ // Handle when the DOM is ready
+ ready: function( wait ) {
+
+ // Abort if there are pending holds or we're already ready
+ if ( wait === true ? --jQuery.readyWait : jQuery.isReady ) {
+ return;
+ }
+
+ // Remember that the DOM is ready
+ jQuery.isReady = true;
+
+ // If a normal DOM Ready event fired, decrement, and wait if need be
+ if ( wait !== true && --jQuery.readyWait > 0 ) {
+ return;
+ }
+
+ // If there are functions bound, to execute
+ readyList.resolveWith( document, [ jQuery ] );
+ }
+} );
+
+jQuery.ready.then = readyList.then;
+
+// The ready event handler and self cleanup method
+function completed() {
+ document.removeEventListener( "DOMContentLoaded", completed );
+ window.removeEventListener( "load", completed );
+ jQuery.ready();
+}
+
+// Catch cases where $(document).ready() is called
+// after the browser event has already occurred.
+// Support: IE <=9 - 10 only
+// Older IE sometimes signals "interactive" too soon
+if ( document.readyState === "complete" ||
+ ( document.readyState !== "loading" && !document.documentElement.doScroll ) ) {
+
+ // Handle it asynchronously to allow scripts the opportunity to delay ready
+ window.setTimeout( jQuery.ready );
+
+} else {
+
+ // Use the handy event callback
+ document.addEventListener( "DOMContentLoaded", completed );
+
+ // A fallback to window.onload, that will always work
+ window.addEventListener( "load", completed );
+}
+
+
+
+
+// Multifunctional method to get and set values of a collection
+// The value/s can optionally be executed if it's a function
+var access = function( elems, fn, key, value, chainable, emptyGet, raw ) {
+ var i = 0,
+ len = elems.length,
+ bulk = key == null;
+
+ // Sets many values
+ if ( jQuery.type( key ) === "object" ) {
+ chainable = true;
+ for ( i in key ) {
+ access( elems, fn, i, key[ i ], true, emptyGet, raw );
+ }
+
+ // Sets one value
+ } else if ( value !== undefined ) {
+ chainable = true;
+
+ if ( !jQuery.isFunction( value ) ) {
+ raw = true;
+ }
+
+ if ( bulk ) {
+
+ // Bulk operations run against the entire set
+ if ( raw ) {
+ fn.call( elems, value );
+ fn = null;
+
+ // ...except when executing function values
+ } else {
+ bulk = fn;
+ fn = function( elem, key, value ) {
+ return bulk.call( jQuery( elem ), value );
+ };
+ }
+ }
+
+ if ( fn ) {
+ for ( ; i < len; i++ ) {
+ fn(
+ elems[ i ], key, raw ?
+ value :
+ value.call( elems[ i ], i, fn( elems[ i ], key ) )
+ );
+ }
+ }
+ }
+
+ if ( chainable ) {
+ return elems;
+ }
+
+ // Gets
+ if ( bulk ) {
+ return fn.call( elems );
+ }
+
+ return len ? fn( elems[ 0 ], key ) : emptyGet;
+};
+var acceptData = function( owner ) {
+
+ // Accepts only:
+ // - Node
+ // - Node.ELEMENT_NODE
+ // - Node.DOCUMENT_NODE
+ // - Object
+ // - Any
+ return owner.nodeType === 1 || owner.nodeType === 9 || !( +owner.nodeType );
+};
+
+
+
+
+function Data() {
+ this.expando = jQuery.expando + Data.uid++;
+}
+
+Data.uid = 1;
+
+Data.prototype = {
+
+ cache: function( owner ) {
+
+ // Check if the owner object already has a cache
+ var value = owner[ this.expando ];
+
+ // If not, create one
+ if ( !value ) {
+ value = {};
+
+ // We can accept data for non-element nodes in modern browsers,
+ // but we should not, see #8335.
+ // Always return an empty object.
+ if ( acceptData( owner ) ) {
+
+ // If it is a node unlikely to be stringify-ed or looped over
+ // use plain assignment
+ if ( owner.nodeType ) {
+ owner[ this.expando ] = value;
+
+ // Otherwise secure it in a non-enumerable property
+ // configurable must be true to allow the property to be
+ // deleted when data is removed
+ } else {
+ Object.defineProperty( owner, this.expando, {
+ value: value,
+ configurable: true
+ } );
+ }
+ }
+ }
+
+ return value;
+ },
+ set: function( owner, data, value ) {
+ var prop,
+ cache = this.cache( owner );
+
+ // Handle: [ owner, key, value ] args
+ // Always use camelCase key (gh-2257)
+ if ( typeof data === "string" ) {
+ cache[ jQuery.camelCase( data ) ] = value;
+
+ // Handle: [ owner, { properties } ] args
+ } else {
+
+ // Copy the properties one-by-one to the cache object
+ for ( prop in data ) {
+ cache[ jQuery.camelCase( prop ) ] = data[ prop ];
+ }
+ }
+ return cache;
+ },
+ get: function( owner, key ) {
+ return key === undefined ?
+ this.cache( owner ) :
+
+ // Always use camelCase key (gh-2257)
+ owner[ this.expando ] && owner[ this.expando ][ jQuery.camelCase( key ) ];
+ },
+ access: function( owner, key, value ) {
+
+ // In cases where either:
+ //
+ // 1. No key was specified
+ // 2. A string key was specified, but no value provided
+ //
+ // Take the "read" path and allow the get method to determine
+ // which value to return, respectively either:
+ //
+ // 1. The entire cache object
+ // 2. The data stored at the key
+ //
+ if ( key === undefined ||
+ ( ( key && typeof key === "string" ) && value === undefined ) ) {
+
+ return this.get( owner, key );
+ }
+
+ // When the key is not a string, or both a key and value
+ // are specified, set or extend (existing objects) with either:
+ //
+ // 1. An object of properties
+ // 2. A key and value
+ //
+ this.set( owner, key, value );
+
+ // Since the "set" path can have two possible entry points
+ // return the expected data based on which path was taken[*]
+ return value !== undefined ? value : key;
+ },
+ remove: function( owner, key ) {
+ var i,
+ cache = owner[ this.expando ];
+
+ if ( cache === undefined ) {
+ return;
+ }
+
+ if ( key !== undefined ) {
+
+ // Support array or space separated string of keys
+ if ( jQuery.isArray( key ) ) {
+
+ // If key is an array of keys...
+ // We always set camelCase keys, so remove that.
+ key = key.map( jQuery.camelCase );
+ } else {
+ key = jQuery.camelCase( key );
+
+ // If a key with the spaces exists, use it.
+ // Otherwise, create an array by matching non-whitespace
+ key = key in cache ?
+ [ key ] :
+ ( key.match( rnothtmlwhite ) || [] );
+ }
+
+ i = key.length;
+
+ while ( i-- ) {
+ delete cache[ key[ i ] ];
+ }
+ }
+
+ // Remove the expando if there's no more data
+ if ( key === undefined || jQuery.isEmptyObject( cache ) ) {
+
+ // Support: Chrome <=35 - 45
+ // Webkit & Blink performance suffers when deleting properties
+ // from DOM nodes, so set to undefined instead
+ // https://bugs.chromium.org/p/chromium/issues/detail?id=378607 (bug restricted)
+ if ( owner.nodeType ) {
+ owner[ this.expando ] = undefined;
+ } else {
+ delete owner[ this.expando ];
+ }
+ }
+ },
+ hasData: function( owner ) {
+ var cache = owner[ this.expando ];
+ return cache !== undefined && !jQuery.isEmptyObject( cache );
+ }
+};
+var dataPriv = new Data();
+
+var dataUser = new Data();
+
+
+
+// Implementation Summary
+//
+// 1. Enforce API surface and semantic compatibility with 1.9.x branch
+// 2. Improve the module's maintainability by reducing the storage
+// paths to a single mechanism.
+// 3. Use the same single mechanism to support "private" and "user" data.
+// 4. _Never_ expose "private" data to user code (TODO: Drop _data, _removeData)
+// 5. Avoid exposing implementation details on user objects (eg. expando properties)
+// 6. Provide a clear path for implementation upgrade to WeakMap in 2014
+
+var rbrace = /^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,
+ rmultiDash = /[A-Z]/g;
+
+function getData( data ) {
+ if ( data === "true" ) {
+ return true;
+ }
+
+ if ( data === "false" ) {
+ return false;
+ }
+
+ if ( data === "null" ) {
+ return null;
+ }
+
+ // Only convert to a number if it doesn't change the string
+ if ( data === +data + "" ) {
+ return +data;
+ }
+
+ if ( rbrace.test( data ) ) {
+ return JSON.parse( data );
+ }
+
+ return data;
+}
+
+function dataAttr( elem, key, data ) {
+ var name;
+
+ // If nothing was found internally, try to fetch any
+ // data from the HTML5 data-* attribute
+ if ( data === undefined && elem.nodeType === 1 ) {
+ name = "data-" + key.replace( rmultiDash, "-$&" ).toLowerCase();
+ data = elem.getAttribute( name );
+
+ if ( typeof data === "string" ) {
+ try {
+ data = getData( data );
+ } catch ( e ) {}
+
+ // Make sure we set the data so it isn't changed later
+ dataUser.set( elem, key, data );
+ } else {
+ data = undefined;
+ }
+ }
+ return data;
+}
+
+jQuery.extend( {
+ hasData: function( elem ) {
+ return dataUser.hasData( elem ) || dataPriv.hasData( elem );
+ },
+
+ data: function( elem, name, data ) {
+ return dataUser.access( elem, name, data );
+ },
+
+ removeData: function( elem, name ) {
+ dataUser.remove( elem, name );
+ },
+
+ // TODO: Now that all calls to _data and _removeData have been replaced
+ // with direct calls to dataPriv methods, these can be deprecated.
+ _data: function( elem, name, data ) {
+ return dataPriv.access( elem, name, data );
+ },
+
+ _removeData: function( elem, name ) {
+ dataPriv.remove( elem, name );
+ }
+} );
+
+jQuery.fn.extend( {
+ data: function( key, value ) {
+ var i, name, data,
+ elem = this[ 0 ],
+ attrs = elem && elem.attributes;
+
+ // Gets all values
+ if ( key === undefined ) {
+ if ( this.length ) {
+ data = dataUser.get( elem );
+
+ if ( elem.nodeType === 1 && !dataPriv.get( elem, "hasDataAttrs" ) ) {
+ i = attrs.length;
+ while ( i-- ) {
+
+ // Support: IE 11 only
+ // The attrs elements can be null (#14894)
+ if ( attrs[ i ] ) {
+ name = attrs[ i ].name;
+ if ( name.indexOf( "data-" ) === 0 ) {
+ name = jQuery.camelCase( name.slice( 5 ) );
+ dataAttr( elem, name, data[ name ] );
+ }
+ }
+ }
+ dataPriv.set( elem, "hasDataAttrs", true );
+ }
+ }
+
+ return data;
+ }
+
+ // Sets multiple values
+ if ( typeof key === "object" ) {
+ return this.each( function() {
+ dataUser.set( this, key );
+ } );
+ }
+
+ return access( this, function( value ) {
+ var data;
+
+ // The calling jQuery object (element matches) is not empty
+ // (and therefore has an element appears at this[ 0 ]) and the
+ // `value` parameter was not undefined. An empty jQuery object
+ // will result in `undefined` for elem = this[ 0 ] which will
+ // throw an exception if an attempt to read a data cache is made.
+ if ( elem && value === undefined ) {
+
+ // Attempt to get data from the cache
+ // The key will always be camelCased in Data
+ data = dataUser.get( elem, key );
+ if ( data !== undefined ) {
+ return data;
+ }
+
+ // Attempt to "discover" the data in
+ // HTML5 custom data-* attrs
+ data = dataAttr( elem, key );
+ if ( data !== undefined ) {
+ return data;
+ }
+
+ // We tried really hard, but the data doesn't exist.
+ return;
+ }
+
+ // Set the data...
+ this.each( function() {
+
+ // We always store the camelCased key
+ dataUser.set( this, key, value );
+ } );
+ }, null, value, arguments.length > 1, null, true );
+ },
+
+ removeData: function( key ) {
+ return this.each( function() {
+ dataUser.remove( this, key );
+ } );
+ }
+} );
+
+
+jQuery.extend( {
+ queue: function( elem, type, data ) {
+ var queue;
+
+ if ( elem ) {
+ type = ( type || "fx" ) + "queue";
+ queue = dataPriv.get( elem, type );
+
+ // Speed up dequeue by getting out quickly if this is just a lookup
+ if ( data ) {
+ if ( !queue || jQuery.isArray( data ) ) {
+ queue = dataPriv.access( elem, type, jQuery.makeArray( data ) );
+ } else {
+ queue.push( data );
+ }
+ }
+ return queue || [];
+ }
+ },
+
+ dequeue: function( elem, type ) {
+ type = type || "fx";
+
+ var queue = jQuery.queue( elem, type ),
+ startLength = queue.length,
+ fn = queue.shift(),
+ hooks = jQuery._queueHooks( elem, type ),
+ next = function() {
+ jQuery.dequeue( elem, type );
+ };
+
+ // If the fx queue is dequeued, always remove the progress sentinel
+ if ( fn === "inprogress" ) {
+ fn = queue.shift();
+ startLength--;
+ }
+
+ if ( fn ) {
+
+ // Add a progress sentinel to prevent the fx queue from being
+ // automatically dequeued
+ if ( type === "fx" ) {
+ queue.unshift( "inprogress" );
+ }
+
+ // Clear up the last queue stop function
+ delete hooks.stop;
+ fn.call( elem, next, hooks );
+ }
+
+ if ( !startLength && hooks ) {
+ hooks.empty.fire();
+ }
+ },
+
+ // Not public - generate a queueHooks object, or return the current one
+ _queueHooks: function( elem, type ) {
+ var key = type + "queueHooks";
+ return dataPriv.get( elem, key ) || dataPriv.access( elem, key, {
+ empty: jQuery.Callbacks( "once memory" ).add( function() {
+ dataPriv.remove( elem, [ type + "queue", key ] );
+ } )
+ } );
+ }
+} );
+
+jQuery.fn.extend( {
+ queue: function( type, data ) {
+ var setter = 2;
+
+ if ( typeof type !== "string" ) {
+ data = type;
+ type = "fx";
+ setter--;
+ }
+
+ if ( arguments.length < setter ) {
+ return jQuery.queue( this[ 0 ], type );
+ }
+
+ return data === undefined ?
+ this :
+ this.each( function() {
+ var queue = jQuery.queue( this, type, data );
+
+ // Ensure a hooks for this queue
+ jQuery._queueHooks( this, type );
+
+ if ( type === "fx" && queue[ 0 ] !== "inprogress" ) {
+ jQuery.dequeue( this, type );
+ }
+ } );
+ },
+ dequeue: function( type ) {
+ return this.each( function() {
+ jQuery.dequeue( this, type );
+ } );
+ },
+ clearQueue: function( type ) {
+ return this.queue( type || "fx", [] );
+ },
+
+ // Get a promise resolved when queues of a certain type
+ // are emptied (fx is the type by default)
+ promise: function( type, obj ) {
+ var tmp,
+ count = 1,
+ defer = jQuery.Deferred(),
+ elements = this,
+ i = this.length,
+ resolve = function() {
+ if ( !( --count ) ) {
+ defer.resolveWith( elements, [ elements ] );
+ }
+ };
+
+ if ( typeof type !== "string" ) {
+ obj = type;
+ type = undefined;
+ }
+ type = type || "fx";
+
+ while ( i-- ) {
+ tmp = dataPriv.get( elements[ i ], type + "queueHooks" );
+ if ( tmp && tmp.empty ) {
+ count++;
+ tmp.empty.add( resolve );
+ }
+ }
+ resolve();
+ return defer.promise( obj );
+ }
+} );
+var pnum = ( /[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/ ).source;
+
+var rcssNum = new RegExp( "^(?:([+-])=|)(" + pnum + ")([a-z%]*)$", "i" );
+
+
+var cssExpand = [ "Top", "Right", "Bottom", "Left" ];
+
+var isHiddenWithinTree = function( elem, el ) {
+
+ // isHiddenWithinTree might be called from jQuery#filter function;
+ // in that case, element will be second argument
+ elem = el || elem;
+
+ // Inline style trumps all
+ return elem.style.display === "none" ||
+ elem.style.display === "" &&
+
+ // Otherwise, check computed style
+ // Support: Firefox <=43 - 45
+ // Disconnected elements can have computed display: none, so first confirm that elem is
+ // in the document.
+ jQuery.contains( elem.ownerDocument, elem ) &&
+
+ jQuery.css( elem, "display" ) === "none";
+ };
+
+var swap = function( elem, options, callback, args ) {
+ var ret, name,
+ old = {};
+
+ // Remember the old values, and insert the new ones
+ for ( name in options ) {
+ old[ name ] = elem.style[ name ];
+ elem.style[ name ] = options[ name ];
+ }
+
+ ret = callback.apply( elem, args || [] );
+
+ // Revert the old values
+ for ( name in options ) {
+ elem.style[ name ] = old[ name ];
+ }
+
+ return ret;
+};
+
+
+
+
+function adjustCSS( elem, prop, valueParts, tween ) {
+ var adjusted,
+ scale = 1,
+ maxIterations = 20,
+ currentValue = tween ?
+ function() {
+ return tween.cur();
+ } :
+ function() {
+ return jQuery.css( elem, prop, "" );
+ },
+ initial = currentValue(),
+ unit = valueParts && valueParts[ 3 ] || ( jQuery.cssNumber[ prop ] ? "" : "px" ),
+
+ // Starting value computation is required for potential unit mismatches
+ initialInUnit = ( jQuery.cssNumber[ prop ] || unit !== "px" && +initial ) &&
+ rcssNum.exec( jQuery.css( elem, prop ) );
+
+ if ( initialInUnit && initialInUnit[ 3 ] !== unit ) {
+
+ // Trust units reported by jQuery.css
+ unit = unit || initialInUnit[ 3 ];
+
+ // Make sure we update the tween properties later on
+ valueParts = valueParts || [];
+
+ // Iteratively approximate from a nonzero starting point
+ initialInUnit = +initial || 1;
+
+ do {
+
+ // If previous iteration zeroed out, double until we get *something*.
+ // Use string for doubling so we don't accidentally see scale as unchanged below
+ scale = scale || ".5";
+
+ // Adjust and apply
+ initialInUnit = initialInUnit / scale;
+ jQuery.style( elem, prop, initialInUnit + unit );
+
+ // Update scale, tolerating zero or NaN from tween.cur()
+ // Break the loop if scale is unchanged or perfect, or if we've just had enough.
+ } while (
+ scale !== ( scale = currentValue() / initial ) && scale !== 1 && --maxIterations
+ );
+ }
+
+ if ( valueParts ) {
+ initialInUnit = +initialInUnit || +initial || 0;
+
+ // Apply relative offset (+=/-=) if specified
+ adjusted = valueParts[ 1 ] ?
+ initialInUnit + ( valueParts[ 1 ] + 1 ) * valueParts[ 2 ] :
+ +valueParts[ 2 ];
+ if ( tween ) {
+ tween.unit = unit;
+ tween.start = initialInUnit;
+ tween.end = adjusted;
+ }
+ }
+ return adjusted;
+}
+
+
+var defaultDisplayMap = {};
+
+function getDefaultDisplay( elem ) {
+ var temp,
+ doc = elem.ownerDocument,
+ nodeName = elem.nodeName,
+ display = defaultDisplayMap[ nodeName ];
+
+ if ( display ) {
+ return display;
+ }
+
+ temp = doc.body.appendChild( doc.createElement( nodeName ) );
+ display = jQuery.css( temp, "display" );
+
+ temp.parentNode.removeChild( temp );
+
+ if ( display === "none" ) {
+ display = "block";
+ }
+ defaultDisplayMap[ nodeName ] = display;
+
+ return display;
+}
+
+function showHide( elements, show ) {
+ var display, elem,
+ values = [],
+ index = 0,
+ length = elements.length;
+
+ // Determine new display value for elements that need to change
+ for ( ; index < length; index++ ) {
+ elem = elements[ index ];
+ if ( !elem.style ) {
+ continue;
+ }
+
+ display = elem.style.display;
+ if ( show ) {
+
+ // Since we force visibility upon cascade-hidden elements, an immediate (and slow)
+ // check is required in this first loop unless we have a nonempty display value (either
+ // inline or about-to-be-restored)
+ if ( display === "none" ) {
+ values[ index ] = dataPriv.get( elem, "display" ) || null;
+ if ( !values[ index ] ) {
+ elem.style.display = "";
+ }
+ }
+ if ( elem.style.display === "" && isHiddenWithinTree( elem ) ) {
+ values[ index ] = getDefaultDisplay( elem );
+ }
+ } else {
+ if ( display !== "none" ) {
+ values[ index ] = "none";
+
+ // Remember what we're overwriting
+ dataPriv.set( elem, "display", display );
+ }
+ }
+ }
+
+ // Set the display of the elements in a second loop to avoid constant reflow
+ for ( index = 0; index < length; index++ ) {
+ if ( values[ index ] != null ) {
+ elements[ index ].style.display = values[ index ];
+ }
+ }
+
+ return elements;
+}
+
+jQuery.fn.extend( {
+ show: function() {
+ return showHide( this, true );
+ },
+ hide: function() {
+ return showHide( this );
+ },
+ toggle: function( state ) {
+ if ( typeof state === "boolean" ) {
+ return state ? this.show() : this.hide();
+ }
+
+ return this.each( function() {
+ if ( isHiddenWithinTree( this ) ) {
+ jQuery( this ).show();
+ } else {
+ jQuery( this ).hide();
+ }
+ } );
+ }
+} );
+var rcheckableType = ( /^(?:checkbox|radio)$/i );
+
+var rtagName = ( /<([a-z][^\/\0>\x20\t\r\n\f]+)/i );
+
+var rscriptType = ( /^$|\/(?:java|ecma)script/i );
+
+
+
+// We have to close these tags to support XHTML (#13200)
+var wrapMap = {
+
+ // Support: IE <=9 only
+ option: [ 1, "<select multiple='multiple'>", "</select>" ],
+
+ // XHTML parsers do not magically insert elements in the
+ // same way that tag soup parsers do. So we cannot shorten
+ // this by omitting <tbody> or other required elements.
+ thead: [ 1, "<table>", "</table>" ],
+ col: [ 2, "<table><colgroup>", "</colgroup></table>" ],
+ tr: [ 2, "<table><tbody>", "</tbody></table>" ],
+ td: [ 3, "<table><tbody><tr>", "</tr></tbody></table>" ],
+
+ _default: [ 0, "", "" ]
+};
+
+// Support: IE <=9 only
+wrapMap.optgroup = wrapMap.option;
+
+wrapMap.tbody = wrapMap.tfoot = wrapMap.colgroup = wrapMap.caption = wrapMap.thead;
+wrapMap.th = wrapMap.td;
+
+
+function getAll( context, tag ) {
+
+ // Support: IE <=9 - 11 only
+ // Use typeof to avoid zero-argument method invocation on host objects (#15151)
+ var ret;
+
+ if ( typeof context.getElementsByTagName !== "undefined" ) {
+ ret = context.getElementsByTagName( tag || "*" );
+
+ } else if ( typeof context.querySelectorAll !== "undefined" ) {
+ ret = context.querySelectorAll( tag || "*" );
+
+ } else {
+ ret = [];
+ }
+
+ if ( tag === undefined || tag && jQuery.nodeName( context, tag ) ) {
+ return jQuery.merge( [ context ], ret );
+ }
+
+ return ret;
+}
+
+
+// Mark scripts as having already been evaluated
+function setGlobalEval( elems, refElements ) {
+ var i = 0,
+ l = elems.length;
+
+ for ( ; i < l; i++ ) {
+ dataPriv.set(
+ elems[ i ],
+ "globalEval",
+ !refElements || dataPriv.get( refElements[ i ], "globalEval" )
+ );
+ }
+}
+
+
+var rhtml = /<|&#?\w+;/;
+
+function buildFragment( elems, context, scripts, selection, ignored ) {
+ var elem, tmp, tag, wrap, contains, j,
+ fragment = context.createDocumentFragment(),
+ nodes = [],
+ i = 0,
+ l = elems.length;
+
+ for ( ; i < l; i++ ) {
+ elem = elems[ i ];
+
+ if ( elem || elem === 0 ) {
+
+ // Add nodes directly
+ if ( jQuery.type( elem ) === "object" ) {
+
+ // Support: Android <=4.0 only, PhantomJS 1 only
+ // push.apply(_, arraylike) throws on ancient WebKit
+ jQuery.merge( nodes, elem.nodeType ? [ elem ] : elem );
+
+ // Convert non-html into a text node
+ } else if ( !rhtml.test( elem ) ) {
+ nodes.push( context.createTextNode( elem ) );
+
+ // Convert html into DOM nodes
+ } else {
+ tmp = tmp || fragment.appendChild( context.createElement( "div" ) );
+
+ // Deserialize a standard representation
+ tag = ( rtagName.exec( elem ) || [ "", "" ] )[ 1 ].toLowerCase();
+ wrap = wrapMap[ tag ] || wrapMap._default;
+ tmp.innerHTML = wrap[ 1 ] + jQuery.htmlPrefilter( elem ) + wrap[ 2 ];
+
+ // Descend through wrappers to the right content
+ j = wrap[ 0 ];
+ while ( j-- ) {
+ tmp = tmp.lastChild;
+ }
+
+ // Support: Android <=4.0 only, PhantomJS 1 only
+ // push.apply(_, arraylike) throws on ancient WebKit
+ jQuery.merge( nodes, tmp.childNodes );
+
+ // Remember the top-level container
+ tmp = fragment.firstChild;
+
+ // Ensure the created nodes are orphaned (#12392)
+ tmp.textContent = "";
+ }
+ }
+ }
+
+ // Remove wrapper from fragment
+ fragment.textContent = "";
+
+ i = 0;
+ while ( ( elem = nodes[ i++ ] ) ) {
+
+ // Skip elements already in the context collection (trac-4087)
+ if ( selection && jQuery.inArray( elem, selection ) > -1 ) {
+ if ( ignored ) {
+ ignored.push( elem );
+ }
+ continue;
+ }
+
+ contains = jQuery.contains( elem.ownerDocument, elem );
+
+ // Append to fragment
+ tmp = getAll( fragment.appendChild( elem ), "script" );
+
+ // Preserve script evaluation history
+ if ( contains ) {
+ setGlobalEval( tmp );
+ }
+
+ // Capture executables
+ if ( scripts ) {
+ j = 0;
+ while ( ( elem = tmp[ j++ ] ) ) {
+ if ( rscriptType.test( elem.type || "" ) ) {
+ scripts.push( elem );
+ }
+ }
+ }
+ }
+
+ return fragment;
+}
+
+
+( function() {
+ var fragment = document.createDocumentFragment(),
+ div = fragment.appendChild( document.createElement( "div" ) ),
+ input = document.createElement( "input" );
+
+ // Support: Android 4.0 - 4.3 only
+ // Check state lost if the name is set (#11217)
+ // Support: Windows Web Apps (WWA)
+ // `name` and `type` must use .setAttribute for WWA (#14901)
+ input.setAttribute( "type", "radio" );
+ input.setAttribute( "checked", "checked" );
+ input.setAttribute( "name", "t" );
+
+ div.appendChild( input );
+
+ // Support: Android <=4.1 only
+ // Older WebKit doesn't clone checked state correctly in fragments
+ support.checkClone = div.cloneNode( true ).cloneNode( true ).lastChild.checked;
+
+ // Support: IE <=11 only
+ // Make sure textarea (and checkbox) defaultValue is properly cloned
+ div.innerHTML = "<textarea>x</textarea>";
+ support.noCloneChecked = !!div.cloneNode( true ).lastChild.defaultValue;
+} )();
+var documentElement = document.documentElement;
+
+
+
+var
+ rkeyEvent = /^key/,
+ rmouseEvent = /^(?:mouse|pointer|contextmenu|drag|drop)|click/,
+ rtypenamespace = /^([^.]*)(?:\.(.+)|)/;
+
+function returnTrue() {
+ return true;
+}
+
+function returnFalse() {
+ return false;
+}
+
+// Support: IE <=9 only
+// See #13393 for more info
+function safeActiveElement() {
+ try {
+ return document.activeElement;
+ } catch ( err ) { }
+}
+
+function on( elem, types, selector, data, fn, one ) {
+ var origFn, type;
+
+ // Types can be a map of types/handlers
+ if ( typeof types === "object" ) {
+
+ // ( types-Object, selector, data )
+ if ( typeof selector !== "string" ) {
+
+ // ( types-Object, data )
+ data = data || selector;
+ selector = undefined;
+ }
+ for ( type in types ) {
+ on( elem, type, selector, data, types[ type ], one );
+ }
+ return elem;
+ }
+
+ if ( data == null && fn == null ) {
+
+ // ( types, fn )
+ fn = selector;
+ data = selector = undefined;
+ } else if ( fn == null ) {
+ if ( typeof selector === "string" ) {
+
+ // ( types, selector, fn )
+ fn = data;
+ data = undefined;
+ } else {
+
+ // ( types, data, fn )
+ fn = data;
+ data = selector;
+ selector = undefined;
+ }
+ }
+ if ( fn === false ) {
+ fn = returnFalse;
+ } else if ( !fn ) {
+ return elem;
+ }
+
+ if ( one === 1 ) {
+ origFn = fn;
+ fn = function( event ) {
+
+ // Can use an empty set, since event contains the info
+ jQuery().off( event );
+ return origFn.apply( this, arguments );
+ };
+
+ // Use same guid so caller can remove using origFn
+ fn.guid = origFn.guid || ( origFn.guid = jQuery.guid++ );
+ }
+ return elem.each( function() {
+ jQuery.event.add( this, types, fn, data, selector );
+ } );
+}
+
+/*
+ * Helper functions for managing events -- not part of the public interface.
+ * Props to Dean Edwards' addEvent library for many of the ideas.
+ */
+jQuery.event = {
+
+ global: {},
+
+ add: function( elem, types, handler, data, selector ) {
+
+ var handleObjIn, eventHandle, tmp,
+ events, t, handleObj,
+ special, handlers, type, namespaces, origType,
+ elemData = dataPriv.get( elem );
+
+ // Don't attach events to noData or text/comment nodes (but allow plain objects)
+ if ( !elemData ) {
+ return;
+ }
+
+ // Caller can pass in an object of custom data in lieu of the handler
+ if ( handler.handler ) {
+ handleObjIn = handler;
+ handler = handleObjIn.handler;
+ selector = handleObjIn.selector;
+ }
+
+ // Ensure that invalid selectors throw exceptions at attach time
+ // Evaluate against documentElement in case elem is a non-element node (e.g., document)
+ if ( selector ) {
+ jQuery.find.matchesSelector( documentElement, selector );
+ }
+
+ // Make sure that the handler has a unique ID, used to find/remove it later
+ if ( !handler.guid ) {
+ handler.guid = jQuery.guid++;
+ }
+
+ // Init the element's event structure and main handler, if this is the first
+ if ( !( events = elemData.events ) ) {
+ events = elemData.events = {};
+ }
+ if ( !( eventHandle = elemData.handle ) ) {
+ eventHandle = elemData.handle = function( e ) {
+
+ // Discard the second event of a jQuery.event.trigger() and
+ // when an event is called after a page has unloaded
+ return typeof jQuery !== "undefined" && jQuery.event.triggered !== e.type ?
+ jQuery.event.dispatch.apply( elem, arguments ) : undefined;
+ };
+ }
+
+ // Handle multiple events separated by a space
+ types = ( types || "" ).match( rnothtmlwhite ) || [ "" ];
+ t = types.length;
+ while ( t-- ) {
+ tmp = rtypenamespace.exec( types[ t ] ) || [];
+ type = origType = tmp[ 1 ];
+ namespaces = ( tmp[ 2 ] || "" ).split( "." ).sort();
+
+ // There *must* be a type, no attaching namespace-only handlers
+ if ( !type ) {
+ continue;
+ }
+
+ // If event changes its type, use the special event handlers for the changed type
+ special = jQuery.event.special[ type ] || {};
+
+ // If selector defined, determine special event api type, otherwise given type
+ type = ( selector ? special.delegateType : special.bindType ) || type;
+
+ // Update special based on newly reset type
+ special = jQuery.event.special[ type ] || {};
+
+ // handleObj is passed to all event handlers
+ handleObj = jQuery.extend( {
+ type: type,
+ origType: origType,
+ data: data,
+ handler: handler,
+ guid: handler.guid,
+ selector: selector,
+ needsContext: selector && jQuery.expr.match.needsContext.test( selector ),
+ namespace: namespaces.join( "." )
+ }, handleObjIn );
+
+ // Init the event handler queue if we're the first
+ if ( !( handlers = events[ type ] ) ) {
+ handlers = events[ type ] = [];
+ handlers.delegateCount = 0;
+
+ // Only use addEventListener if the special events handler returns false
+ if ( !special.setup ||
+ special.setup.call( elem, data, namespaces, eventHandle ) === false ) {
+
+ if ( elem.addEventListener ) {
+ elem.addEventListener( type, eventHandle );
+ }
+ }
+ }
+
+ if ( special.add ) {
+ special.add.call( elem, handleObj );
+
+ if ( !handleObj.handler.guid ) {
+ handleObj.handler.guid = handler.guid;
+ }
+ }
+
+ // Add to the element's handler list, delegates in front
+ if ( selector ) {
+ handlers.splice( handlers.delegateCount++, 0, handleObj );
+ } else {
+ handlers.push( handleObj );
+ }
+
+ // Keep track of which events have ever been used, for event optimization
+ jQuery.event.global[ type ] = true;
+ }
+
+ },
+
+ // Detach an event or set of events from an element
+ remove: function( elem, types, handler, selector, mappedTypes ) {
+
+ var j, origCount, tmp,
+ events, t, handleObj,
+ special, handlers, type, namespaces, origType,
+ elemData = dataPriv.hasData( elem ) && dataPriv.get( elem );
+
+ if ( !elemData || !( events = elemData.events ) ) {
+ return;
+ }
+
+ // Once for each type.namespace in types; type may be omitted
+ types = ( types || "" ).match( rnothtmlwhite ) || [ "" ];
+ t = types.length;
+ while ( t-- ) {
+ tmp = rtypenamespace.exec( types[ t ] ) || [];
+ type = origType = tmp[ 1 ];
+ namespaces = ( tmp[ 2 ] || "" ).split( "." ).sort();
+
+ // Unbind all events (on this namespace, if provided) for the element
+ if ( !type ) {
+ for ( type in events ) {
+ jQuery.event.remove( elem, type + types[ t ], handler, selector, true );
+ }
+ continue;
+ }
+
+ special = jQuery.event.special[ type ] || {};
+ type = ( selector ? special.delegateType : special.bindType ) || type;
+ handlers = events[ type ] || [];
+ tmp = tmp[ 2 ] &&
+ new RegExp( "(^|\\.)" + namespaces.join( "\\.(?:.*\\.|)" ) + "(\\.|$)" );
+
+ // Remove matching events
+ origCount = j = handlers.length;
+ while ( j-- ) {
+ handleObj = handlers[ j ];
+
+ if ( ( mappedTypes || origType === handleObj.origType ) &&
+ ( !handler || handler.guid === handleObj.guid ) &&
+ ( !tmp || tmp.test( handleObj.namespace ) ) &&
+ ( !selector || selector === handleObj.selector ||
+ selector === "**" && handleObj.selector ) ) {
+ handlers.splice( j, 1 );
+
+ if ( handleObj.selector ) {
+ handlers.delegateCount--;
+ }
+ if ( special.remove ) {
+ special.remove.call( elem, handleObj );
+ }
+ }
+ }
+
+ // Remove generic event handler if we removed something and no more handlers exist
+ // (avoids potential for endless recursion during removal of special event handlers)
+ if ( origCount && !handlers.length ) {
+ if ( !special.teardown ||
+ special.teardown.call( elem, namespaces, elemData.handle ) === false ) {
+
+ jQuery.removeEvent( elem, type, elemData.handle );
+ }
+
+ delete events[ type ];
+ }
+ }
+
+ // Remove data and the expando if it's no longer used
+ if ( jQuery.isEmptyObject( events ) ) {
+ dataPriv.remove( elem, "handle events" );
+ }
+ },
+
+ dispatch: function( nativeEvent ) {
+
+ // Make a writable jQuery.Event from the native event object
+ var event = jQuery.event.fix( nativeEvent );
+
+ var i, j, ret, matched, handleObj, handlerQueue,
+ args = new Array( arguments.length ),
+ handlers = ( dataPriv.get( this, "events" ) || {} )[ event.type ] || [],
+ special = jQuery.event.special[ event.type ] || {};
+
+ // Use the fix-ed jQuery.Event rather than the (read-only) native event
+ args[ 0 ] = event;
+
+ for ( i = 1; i < arguments.length; i++ ) {
+ args[ i ] = arguments[ i ];
+ }
+
+ event.delegateTarget = this;
+
+ // Call the preDispatch hook for the mapped type, and let it bail if desired
+ if ( special.preDispatch && special.preDispatch.call( this, event ) === false ) {
+ return;
+ }
+
+ // Determine handlers
+ handlerQueue = jQuery.event.handlers.call( this, event, handlers );
+
+ // Run delegates first; they may want to stop propagation beneath us
+ i = 0;
+ while ( ( matched = handlerQueue[ i++ ] ) && !event.isPropagationStopped() ) {
+ event.currentTarget = matched.elem;
+
+ j = 0;
+ while ( ( handleObj = matched.handlers[ j++ ] ) &&
+ !event.isImmediatePropagationStopped() ) {
+
+ // Triggered event must either 1) have no namespace, or 2) have namespace(s)
+ // a subset or equal to those in the bound event (both can have no namespace).
+ if ( !event.rnamespace || event.rnamespace.test( handleObj.namespace ) ) {
+
+ event.handleObj = handleObj;
+ event.data = handleObj.data;
+
+ ret = ( ( jQuery.event.special[ handleObj.origType ] || {} ).handle ||
+ handleObj.handler ).apply( matched.elem, args );
+
+ if ( ret !== undefined ) {
+ if ( ( event.result = ret ) === false ) {
+ event.preventDefault();
+ event.stopPropagation();
+ }
+ }
+ }
+ }
+ }
+
+ // Call the postDispatch hook for the mapped type
+ if ( special.postDispatch ) {
+ special.postDispatch.call( this, event );
+ }
+
+ return event.result;
+ },
+
+ handlers: function( event, handlers ) {
+ var i, handleObj, sel, matchedHandlers, matchedSelectors,
+ handlerQueue = [],
+ delegateCount = handlers.delegateCount,
+ cur = event.target;
+
+ // Find delegate handlers
+ if ( delegateCount &&
+
+ // Support: IE <=9
+ // Black-hole SVG <use> instance trees (trac-13180)
+ cur.nodeType &&
+
+ // Support: Firefox <=42
+ // Suppress spec-violating clicks indicating a non-primary pointer button (trac-3861)
+ // https://www.w3.org/TR/DOM-Level-3-Events/#event-type-click
+ // Support: IE 11 only
+ // ...but not arrow key "clicks" of radio inputs, which can have `button` -1 (gh-2343)
+ !( event.type === "click" && event.button >= 1 ) ) {
+
+ for ( ; cur !== this; cur = cur.parentNode || this ) {
+
+ // Don't check non-elements (#13208)
+ // Don't process clicks on disabled elements (#6911, #8165, #11382, #11764)
+ if ( cur.nodeType === 1 && !( event.type === "click" && cur.disabled === true ) ) {
+ matchedHandlers = [];
+ matchedSelectors = {};
+ for ( i = 0; i < delegateCount; i++ ) {
+ handleObj = handlers[ i ];
+
+ // Don't conflict with Object.prototype properties (#13203)
+ sel = handleObj.selector + " ";
+
+ if ( matchedSelectors[ sel ] === undefined ) {
+ matchedSelectors[ sel ] = handleObj.needsContext ?
+ jQuery( sel, this ).index( cur ) > -1 :
+ jQuery.find( sel, this, null, [ cur ] ).length;
+ }
+ if ( matchedSelectors[ sel ] ) {
+ matchedHandlers.push( handleObj );
+ }
+ }
+ if ( matchedHandlers.length ) {
+ handlerQueue.push( { elem: cur, handlers: matchedHandlers } );
+ }
+ }
+ }
+ }
+
+ // Add the remaining (directly-bound) handlers
+ cur = this;
+ if ( delegateCount < handlers.length ) {
+ handlerQueue.push( { elem: cur, handlers: handlers.slice( delegateCount ) } );
+ }
+
+ return handlerQueue;
+ },
+
+ addProp: function( name, hook ) {
+ Object.defineProperty( jQuery.Event.prototype, name, {
+ enumerable: true,
+ configurable: true,
+
+ get: jQuery.isFunction( hook ) ?
+ function() {
+ if ( this.originalEvent ) {
+ return hook( this.originalEvent );
+ }
+ } :
+ function() {
+ if ( this.originalEvent ) {
+ return this.originalEvent[ name ];
+ }
+ },
+
+ set: function( value ) {
+ Object.defineProperty( this, name, {
+ enumerable: true,
+ configurable: true,
+ writable: true,
+ value: value
+ } );
+ }
+ } );
+ },
+
+ fix: function( originalEvent ) {
+ return originalEvent[ jQuery.expando ] ?
+ originalEvent :
+ new jQuery.Event( originalEvent );
+ },
+
+ special: {
+ load: {
+
+ // Prevent triggered image.load events from bubbling to window.load
+ noBubble: true
+ },
+ focus: {
+
+ // Fire native event if possible so blur/focus sequence is correct
+ trigger: function() {
+ if ( this !== safeActiveElement() && this.focus ) {
+ this.focus();
+ return false;
+ }
+ },
+ delegateType: "focusin"
+ },
+ blur: {
+ trigger: function() {
+ if ( this === safeActiveElement() && this.blur ) {
+ this.blur();
+ return false;
+ }
+ },
+ delegateType: "focusout"
+ },
+ click: {
+
+ // For checkbox, fire native event so checked state will be right
+ trigger: function() {
+ if ( this.type === "checkbox" && this.click && jQuery.nodeName( this, "input" ) ) {
+ this.click();
+ return false;
+ }
+ },
+
+ // For cross-browser consistency, don't fire native .click() on links
+ _default: function( event ) {
+ return jQuery.nodeName( event.target, "a" );
+ }
+ },
+
+ beforeunload: {
+ postDispatch: function( event ) {
+
+ // Support: Firefox 20+
+ // Firefox doesn't alert if the returnValue field is not set.
+ if ( event.result !== undefined && event.originalEvent ) {
+ event.originalEvent.returnValue = event.result;
+ }
+ }
+ }
+ }
+};
+
+jQuery.removeEvent = function( elem, type, handle ) {
+
+ // This "if" is needed for plain objects
+ if ( elem.removeEventListener ) {
+ elem.removeEventListener( type, handle );
+ }
+};
+
+jQuery.Event = function( src, props ) {
+
+ // Allow instantiation without the 'new' keyword
+ if ( !( this instanceof jQuery.Event ) ) {
+ return new jQuery.Event( src, props );
+ }
+
+ // Event object
+ if ( src && src.type ) {
+ this.originalEvent = src;
+ this.type = src.type;
+
+ // Events bubbling up the document may have been marked as prevented
+ // by a handler lower down the tree; reflect the correct value.
+ this.isDefaultPrevented = src.defaultPrevented ||
+ src.defaultPrevented === undefined &&
+
+ // Support: Android <=2.3 only
+ src.returnValue === false ?
+ returnTrue :
+ returnFalse;
+
+ // Create target properties
+ // Support: Safari <=6 - 7 only
+ // Target should not be a text node (#504, #13143)
+ this.target = ( src.target && src.target.nodeType === 3 ) ?
+ src.target.parentNode :
+ src.target;
+
+ this.currentTarget = src.currentTarget;
+ this.relatedTarget = src.relatedTarget;
+
+ // Event type
+ } else {
+ this.type = src;
+ }
+
+ // Put explicitly provided properties onto the event object
+ if ( props ) {
+ jQuery.extend( this, props );
+ }
+
+ // Create a timestamp if incoming event doesn't have one
+ this.timeStamp = src && src.timeStamp || jQuery.now();
+
+ // Mark it as fixed
+ this[ jQuery.expando ] = true;
+};
+
+// jQuery.Event is based on DOM3 Events as specified by the ECMAScript Language Binding
+// https://www.w3.org/TR/2003/WD-DOM-Level-3-Events-20030331/ecma-script-binding.html
+jQuery.Event.prototype = {
+ constructor: jQuery.Event,
+ isDefaultPrevented: returnFalse,
+ isPropagationStopped: returnFalse,
+ isImmediatePropagationStopped: returnFalse,
+ isSimulated: false,
+
+ preventDefault: function() {
+ var e = this.originalEvent;
+
+ this.isDefaultPrevented = returnTrue;
+
+ if ( e && !this.isSimulated ) {
+ e.preventDefault();
+ }
+ },
+ stopPropagation: function() {
+ var e = this.originalEvent;
+
+ this.isPropagationStopped = returnTrue;
+
+ if ( e && !this.isSimulated ) {
+ e.stopPropagation();
+ }
+ },
+ stopImmediatePropagation: function() {
+ var e = this.originalEvent;
+
+ this.isImmediatePropagationStopped = returnTrue;
+
+ if ( e && !this.isSimulated ) {
+ e.stopImmediatePropagation();
+ }
+
+ this.stopPropagation();
+ }
+};
+
+// Includes all common event props including KeyEvent and MouseEvent specific props
+jQuery.each( {
+ altKey: true,
+ bubbles: true,
+ cancelable: true,
+ changedTouches: true,
+ ctrlKey: true,
+ detail: true,
+ eventPhase: true,
+ metaKey: true,
+ pageX: true,
+ pageY: true,
+ shiftKey: true,
+ view: true,
+ "char": true,
+ charCode: true,
+ key: true,
+ keyCode: true,
+ button: true,
+ buttons: true,
+ clientX: true,
+ clientY: true,
+ offsetX: true,
+ offsetY: true,
+ pointerId: true,
+ pointerType: true,
+ screenX: true,
+ screenY: true,
+ targetTouches: true,
+ toElement: true,
+ touches: true,
+
+ which: function( event ) {
+ var button = event.button;
+
+ // Add which for key events
+ if ( event.which == null && rkeyEvent.test( event.type ) ) {
+ return event.charCode != null ? event.charCode : event.keyCode;
+ }
+
+ // Add which for click: 1 === left; 2 === middle; 3 === right
+ if ( !event.which && button !== undefined && rmouseEvent.test( event.type ) ) {
+ if ( button & 1 ) {
+ return 1;
+ }
+
+ if ( button & 2 ) {
+ return 3;
+ }
+
+ if ( button & 4 ) {
+ return 2;
+ }
+
+ return 0;
+ }
+
+ return event.which;
+ }
+}, jQuery.event.addProp );
+
+// Create mouseenter/leave events using mouseover/out and event-time checks
+// so that event delegation works in jQuery.
+// Do the same for pointerenter/pointerleave and pointerover/pointerout
+//
+// Support: Safari 7 only
+// Safari sends mouseenter too often; see:
+// https://bugs.chromium.org/p/chromium/issues/detail?id=470258
+// for the description of the bug (it existed in older Chrome versions as well).
+jQuery.each( {
+ mouseenter: "mouseover",
+ mouseleave: "mouseout",
+ pointerenter: "pointerover",
+ pointerleave: "pointerout"
+}, function( orig, fix ) {
+ jQuery.event.special[ orig ] = {
+ delegateType: fix,
+ bindType: fix,
+
+ handle: function( event ) {
+ var ret,
+ target = this,
+ related = event.relatedTarget,
+ handleObj = event.handleObj;
+
+ // For mouseenter/leave call the handler if related is outside the target.
+ // NB: No relatedTarget if the mouse left/entered the browser window
+ if ( !related || ( related !== target && !jQuery.contains( target, related ) ) ) {
+ event.type = handleObj.origType;
+ ret = handleObj.handler.apply( this, arguments );
+ event.type = fix;
+ }
+ return ret;
+ }
+ };
+} );
+
+jQuery.fn.extend( {
+
+ on: function( types, selector, data, fn ) {
+ return on( this, types, selector, data, fn );
+ },
+ one: function( types, selector, data, fn ) {
+ return on( this, types, selector, data, fn, 1 );
+ },
+ off: function( types, selector, fn ) {
+ var handleObj, type;
+ if ( types && types.preventDefault && types.handleObj ) {
+
+ // ( event ) dispatched jQuery.Event
+ handleObj = types.handleObj;
+ jQuery( types.delegateTarget ).off(
+ handleObj.namespace ?
+ handleObj.origType + "." + handleObj.namespace :
+ handleObj.origType,
+ handleObj.selector,
+ handleObj.handler
+ );
+ return this;
+ }
+ if ( typeof types === "object" ) {
+
+ // ( types-object [, selector] )
+ for ( type in types ) {
+ this.off( type, selector, types[ type ] );
+ }
+ return this;
+ }
+ if ( selector === false || typeof selector === "function" ) {
+
+ // ( types [, fn] )
+ fn = selector;
+ selector = undefined;
+ }
+ if ( fn === false ) {
+ fn = returnFalse;
+ }
+ return this.each( function() {
+ jQuery.event.remove( this, types, fn, selector );
+ } );
+ }
+} );
+
+
+var
+
+ /* eslint-disable max-len */
+
+ // See https://github.com/eslint/eslint/issues/3229
+ rxhtmlTag = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([a-z][^\/\0>\x20\t\r\n\f]*)[^>]*)\/>/gi,
+
+ /* eslint-enable */
+
+ // Support: IE <=10 - 11, Edge 12 - 13
+ // In IE/Edge using regex groups here causes severe slowdowns.
+ // See https://connect.microsoft.com/IE/feedback/details/1736512/
+ rnoInnerhtml = /<script|<style|<link/i,
+
+ // checked="checked" or checked
+ rchecked = /checked\s*(?:[^=]|=\s*.checked.)/i,
+ rscriptTypeMasked = /^true\/(.*)/,
+ rcleanScript = /^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g;
+
+function manipulationTarget( elem, content ) {
+ if ( jQuery.nodeName( elem, "table" ) &&
+ jQuery.nodeName( content.nodeType !== 11 ? content : content.firstChild, "tr" ) ) {
+
+ return elem.getElementsByTagName( "tbody" )[ 0 ] || elem;
+ }
+
+ return elem;
+}
+
+// Replace/restore the type attribute of script elements for safe DOM manipulation
+function disableScript( elem ) {
+ elem.type = ( elem.getAttribute( "type" ) !== null ) + "/" + elem.type;
+ return elem;
+}
+function restoreScript( elem ) {
+ var match = rscriptTypeMasked.exec( elem.type );
+
+ if ( match ) {
+ elem.type = match[ 1 ];
+ } else {
+ elem.removeAttribute( "type" );
+ }
+
+ return elem;
+}
+
+function cloneCopyEvent( src, dest ) {
+ var i, l, type, pdataOld, pdataCur, udataOld, udataCur, events;
+
+ if ( dest.nodeType !== 1 ) {
+ return;
+ }
+
+ // 1. Copy private data: events, handlers, etc.
+ if ( dataPriv.hasData( src ) ) {
+ pdataOld = dataPriv.access( src );
+ pdataCur = dataPriv.set( dest, pdataOld );
+ events = pdataOld.events;
+
+ if ( events ) {
+ delete pdataCur.handle;
+ pdataCur.events = {};
+
+ for ( type in events ) {
+ for ( i = 0, l = events[ type ].length; i < l; i++ ) {
+ jQuery.event.add( dest, type, events[ type ][ i ] );
+ }
+ }
+ }
+ }
+
+ // 2. Copy user data
+ if ( dataUser.hasData( src ) ) {
+ udataOld = dataUser.access( src );
+ udataCur = jQuery.extend( {}, udataOld );
+
+ dataUser.set( dest, udataCur );
+ }
+}
+
+// Fix IE bugs, see support tests
+function fixInput( src, dest ) {
+ var nodeName = dest.nodeName.toLowerCase();
+
+ // Fails to persist the checked state of a cloned checkbox or radio button.
+ if ( nodeName === "input" && rcheckableType.test( src.type ) ) {
+ dest.checked = src.checked;
+
+ // Fails to return the selected option to the default selected state when cloning options
+ } else if ( nodeName === "input" || nodeName === "textarea" ) {
+ dest.defaultValue = src.defaultValue;
+ }
+}
+
+function domManip( collection, args, callback, ignored ) {
+
+ // Flatten any nested arrays
+ args = concat.apply( [], args );
+
+ var fragment, first, scripts, hasScripts, node, doc,
+ i = 0,
+ l = collection.length,
+ iNoClone = l - 1,
+ value = args[ 0 ],
+ isFunction = jQuery.isFunction( value );
+
+ // We can't cloneNode fragments that contain checked, in WebKit
+ if ( isFunction ||
+ ( l > 1 && typeof value === "string" &&
+ !support.checkClone && rchecked.test( value ) ) ) {
+ return collection.each( function( index ) {
+ var self = collection.eq( index );
+ if ( isFunction ) {
+ args[ 0 ] = value.call( this, index, self.html() );
+ }
+ domManip( self, args, callback, ignored );
+ } );
+ }
+
+ if ( l ) {
+ fragment = buildFragment( args, collection[ 0 ].ownerDocument, false, collection, ignored );
+ first = fragment.firstChild;
+
+ if ( fragment.childNodes.length === 1 ) {
+ fragment = first;
+ }
+
+ // Require either new content or an interest in ignored elements to invoke the callback
+ if ( first || ignored ) {
+ scripts = jQuery.map( getAll( fragment, "script" ), disableScript );
+ hasScripts = scripts.length;
+
+ // Use the original fragment for the last item
+ // instead of the first because it can end up
+ // being emptied incorrectly in certain situations (#8070).
+ for ( ; i < l; i++ ) {
+ node = fragment;
+
+ if ( i !== iNoClone ) {
+ node = jQuery.clone( node, true, true );
+
+ // Keep references to cloned scripts for later restoration
+ if ( hasScripts ) {
+
+ // Support: Android <=4.0 only, PhantomJS 1 only
+ // push.apply(_, arraylike) throws on ancient WebKit
+ jQuery.merge( scripts, getAll( node, "script" ) );
+ }
+ }
+
+ callback.call( collection[ i ], node, i );
+ }
+
+ if ( hasScripts ) {
+ doc = scripts[ scripts.length - 1 ].ownerDocument;
+
+ // Reenable scripts
+ jQuery.map( scripts, restoreScript );
+
+ // Evaluate executable scripts on first document insertion
+ for ( i = 0; i < hasScripts; i++ ) {
+ node = scripts[ i ];
+ if ( rscriptType.test( node.type || "" ) &&
+ !dataPriv.access( node, "globalEval" ) &&
+ jQuery.contains( doc, node ) ) {
+
+ if ( node.src ) {
+
+ // Optional AJAX dependency, but won't run scripts if not present
+ if ( jQuery._evalUrl ) {
+ jQuery._evalUrl( node.src );
+ }
+ } else {
+ DOMEval( node.textContent.replace( rcleanScript, "" ), doc );
+ }
+ }
+ }
+ }
+ }
+ }
+
+ return collection;
+}
+
+function remove( elem, selector, keepData ) {
+ var node,
+ nodes = selector ? jQuery.filter( selector, elem ) : elem,
+ i = 0;
+
+ for ( ; ( node = nodes[ i ] ) != null; i++ ) {
+ if ( !keepData && node.nodeType === 1 ) {
+ jQuery.cleanData( getAll( node ) );
+ }
+
+ if ( node.parentNode ) {
+ if ( keepData && jQuery.contains( node.ownerDocument, node ) ) {
+ setGlobalEval( getAll( node, "script" ) );
+ }
+ node.parentNode.removeChild( node );
+ }
+ }
+
+ return elem;
+}
+
+jQuery.extend( {
+ htmlPrefilter: function( html ) {
+ return html.replace( rxhtmlTag, "<$1></$2>" );
+ },
+
+ clone: function( elem, dataAndEvents, deepDataAndEvents ) {
+ var i, l, srcElements, destElements,
+ clone = elem.cloneNode( true ),
+ inPage = jQuery.contains( elem.ownerDocument, elem );
+
+ // Fix IE cloning issues
+ if ( !support.noCloneChecked && ( elem.nodeType === 1 || elem.nodeType === 11 ) &&
+ !jQuery.isXMLDoc( elem ) ) {
+
+ // We eschew Sizzle here for performance reasons: https://jsperf.com/getall-vs-sizzle/2
+ destElements = getAll( clone );
+ srcElements = getAll( elem );
+
+ for ( i = 0, l = srcElements.length; i < l; i++ ) {
+ fixInput( srcElements[ i ], destElements[ i ] );
+ }
+ }
+
+ // Copy the events from the original to the clone
+ if ( dataAndEvents ) {
+ if ( deepDataAndEvents ) {
+ srcElements = srcElements || getAll( elem );
+ destElements = destElements || getAll( clone );
+
+ for ( i = 0, l = srcElements.length; i < l; i++ ) {
+ cloneCopyEvent( srcElements[ i ], destElements[ i ] );
+ }
+ } else {
+ cloneCopyEvent( elem, clone );
+ }
+ }
+
+ // Preserve script evaluation history
+ destElements = getAll( clone, "script" );
+ if ( destElements.length > 0 ) {
+ setGlobalEval( destElements, !inPage && getAll( elem, "script" ) );
+ }
+
+ // Return the cloned set
+ return clone;
+ },
+
+ cleanData: function( elems ) {
+ var data, elem, type,
+ special = jQuery.event.special,
+ i = 0;
+
+ for ( ; ( elem = elems[ i ] ) !== undefined; i++ ) {
+ if ( acceptData( elem ) ) {
+ if ( ( data = elem[ dataPriv.expando ] ) ) {
+ if ( data.events ) {
+ for ( type in data.events ) {
+ if ( special[ type ] ) {
+ jQuery.event.remove( elem, type );
+
+ // This is a shortcut to avoid jQuery.event.remove's overhead
+ } else {
+ jQuery.removeEvent( elem, type, data.handle );
+ }
+ }
+ }
+
+ // Support: Chrome <=35 - 45+
+ // Assign undefined instead of using delete, see Data#remove
+ elem[ dataPriv.expando ] = undefined;
+ }
+ if ( elem[ dataUser.expando ] ) {
+
+ // Support: Chrome <=35 - 45+
+ // Assign undefined instead of using delete, see Data#remove
+ elem[ dataUser.expando ] = undefined;
+ }
+ }
+ }
+ }
+} );
+
+jQuery.fn.extend( {
+ detach: function( selector ) {
+ return remove( this, selector, true );
+ },
+
+ remove: function( selector ) {
+ return remove( this, selector );
+ },
+
+ text: function( value ) {
+ return access( this, function( value ) {
+ return value === undefined ?
+ jQuery.text( this ) :
+ this.empty().each( function() {
+ if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {
+ this.textContent = value;
+ }
+ } );
+ }, null, value, arguments.length );
+ },
+
+ append: function() {
+ return domManip( this, arguments, function( elem ) {
+ if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {
+ var target = manipulationTarget( this, elem );
+ target.appendChild( elem );
+ }
+ } );
+ },
+
+ prepend: function() {
+ return domManip( this, arguments, function( elem ) {
+ if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {
+ var target = manipulationTarget( this, elem );
+ target.insertBefore( elem, target.firstChild );
+ }
+ } );
+ },
+
+ before: function() {
+ return domManip( this, arguments, function( elem ) {
+ if ( this.parentNode ) {
+ this.parentNode.insertBefore( elem, this );
+ }
+ } );
+ },
+
+ after: function() {
+ return domManip( this, arguments, function( elem ) {
+ if ( this.parentNode ) {
+ this.parentNode.insertBefore( elem, this.nextSibling );
+ }
+ } );
+ },
+
+ empty: function() {
+ var elem,
+ i = 0;
+
+ for ( ; ( elem = this[ i ] ) != null; i++ ) {
+ if ( elem.nodeType === 1 ) {
+
+ // Prevent memory leaks
+ jQuery.cleanData( getAll( elem, false ) );
+
+ // Remove any remaining nodes
+ elem.textContent = "";
+ }
+ }
+
+ return this;
+ },
+
+ clone: function( dataAndEvents, deepDataAndEvents ) {
+ dataAndEvents = dataAndEvents == null ? false : dataAndEvents;
+ deepDataAndEvents = deepDataAndEvents == null ? dataAndEvents : deepDataAndEvents;
+
+ return this.map( function() {
+ return jQuery.clone( this, dataAndEvents, deepDataAndEvents );
+ } );
+ },
+
+ html: function( value ) {
+ return access( this, function( value ) {
+ var elem = this[ 0 ] || {},
+ i = 0,
+ l = this.length;
+
+ if ( value === undefined && elem.nodeType === 1 ) {
+ return elem.innerHTML;
+ }
+
+ // See if we can take a shortcut and just use innerHTML
+ if ( typeof value === "string" && !rnoInnerhtml.test( value ) &&
+ !wrapMap[ ( rtagName.exec( value ) || [ "", "" ] )[ 1 ].toLowerCase() ] ) {
+
+ value = jQuery.htmlPrefilter( value );
+
+ try {
+ for ( ; i < l; i++ ) {
+ elem = this[ i ] || {};
+
+ // Remove element nodes and prevent memory leaks
+ if ( elem.nodeType === 1 ) {
+ jQuery.cleanData( getAll( elem, false ) );
+ elem.innerHTML = value;
+ }
+ }
+
+ elem = 0;
+
+ // If using innerHTML throws an exception, use the fallback method
+ } catch ( e ) {}
+ }
+
+ if ( elem ) {
+ this.empty().append( value );
+ }
+ }, null, value, arguments.length );
+ },
+
+ replaceWith: function() {
+ var ignored = [];
+
+ // Make the changes, replacing each non-ignored context element with the new content
+ return domManip( this, arguments, function( elem ) {
+ var parent = this.parentNode;
+
+ if ( jQuery.inArray( this, ignored ) < 0 ) {
+ jQuery.cleanData( getAll( this ) );
+ if ( parent ) {
+ parent.replaceChild( elem, this );
+ }
+ }
+
+ // Force callback invocation
+ }, ignored );
+ }
+} );
+
+jQuery.each( {
+ appendTo: "append",
+ prependTo: "prepend",
+ insertBefore: "before",
+ insertAfter: "after",
+ replaceAll: "replaceWith"
+}, function( name, original ) {
+ jQuery.fn[ name ] = function( selector ) {
+ var elems,
+ ret = [],
+ insert = jQuery( selector ),
+ last = insert.length - 1,
+ i = 0;
+
+ for ( ; i <= last; i++ ) {
+ elems = i === last ? this : this.clone( true );
+ jQuery( insert[ i ] )[ original ]( elems );
+
+ // Support: Android <=4.0 only, PhantomJS 1 only
+ // .get() because push.apply(_, arraylike) throws on ancient WebKit
+ push.apply( ret, elems.get() );
+ }
+
+ return this.pushStack( ret );
+ };
+} );
+var rmargin = ( /^margin/ );
+
+var rnumnonpx = new RegExp( "^(" + pnum + ")(?!px)[a-z%]+$", "i" );
+
+var getStyles = function( elem ) {
+
+ // Support: IE <=11 only, Firefox <=30 (#15098, #14150)
+ // IE throws on elements created in popups
+ // FF meanwhile throws on frame elements through "defaultView.getComputedStyle"
+ var view = elem.ownerDocument.defaultView;
+
+ if ( !view || !view.opener ) {
+ view = window;
+ }
+
+ return view.getComputedStyle( elem );
+ };
+
+
+
+( function() {
+
+ // Executing both pixelPosition & boxSizingReliable tests require only one layout
+ // so they're executed at the same time to save the second computation.
+ function computeStyleTests() {
+
+ // This is a singleton, we need to execute it only once
+ if ( !div ) {
+ return;
+ }
+
+ div.style.cssText =
+ "box-sizing:border-box;" +
+ "position:relative;display:block;" +
+ "margin:auto;border:1px;padding:1px;" +
+ "top:1%;width:50%";
+ div.innerHTML = "";
+ documentElement.appendChild( container );
+
+ var divStyle = window.getComputedStyle( div );
+ pixelPositionVal = divStyle.top !== "1%";
+
+ // Support: Android 4.0 - 4.3 only, Firefox <=3 - 44
+ reliableMarginLeftVal = divStyle.marginLeft === "2px";
+ boxSizingReliableVal = divStyle.width === "4px";
+
+ // Support: Android 4.0 - 4.3 only
+ // Some styles come back with percentage values, even though they shouldn't
+ div.style.marginRight = "50%";
+ pixelMarginRightVal = divStyle.marginRight === "4px";
+
+ documentElement.removeChild( container );
+
+ // Nullify the div so it wouldn't be stored in the memory and
+ // it will also be a sign that checks already performed
+ div = null;
+ }
+
+ var pixelPositionVal, boxSizingReliableVal, pixelMarginRightVal, reliableMarginLeftVal,
+ container = document.createElement( "div" ),
+ div = document.createElement( "div" );
+
+ // Finish early in limited (non-browser) environments
+ if ( !div.style ) {
+ return;
+ }
+
+ // Support: IE <=9 - 11 only
+ // Style of cloned element affects source element cloned (#8908)
+ div.style.backgroundClip = "content-box";
+ div.cloneNode( true ).style.backgroundClip = "";
+ support.clearCloneStyle = div.style.backgroundClip === "content-box";
+
+ container.style.cssText = "border:0;width:8px;height:0;top:0;left:-9999px;" +
+ "padding:0;margin-top:1px;position:absolute";
+ container.appendChild( div );
+
+ jQuery.extend( support, {
+ pixelPosition: function() {
+ computeStyleTests();
+ return pixelPositionVal;
+ },
+ boxSizingReliable: function() {
+ computeStyleTests();
+ return boxSizingReliableVal;
+ },
+ pixelMarginRight: function() {
+ computeStyleTests();
+ return pixelMarginRightVal;
+ },
+ reliableMarginLeft: function() {
+ computeStyleTests();
+ return reliableMarginLeftVal;
+ }
+ } );
+} )();
+
+
+function curCSS( elem, name, computed ) {
+ var width, minWidth, maxWidth, ret,
+ style = elem.style;
+
+ computed = computed || getStyles( elem );
+
+ // Support: IE <=9 only
+ // getPropertyValue is only needed for .css('filter') (#12537)
+ if ( computed ) {
+ ret = computed.getPropertyValue( name ) || computed[ name ];
+
+ if ( ret === "" && !jQuery.contains( elem.ownerDocument, elem ) ) {
+ ret = jQuery.style( elem, name );
+ }
+
+ // A tribute to the "awesome hack by Dean Edwards"
+ // Android Browser returns percentage for some values,
+ // but width seems to be reliably pixels.
+ // This is against the CSSOM draft spec:
+ // https://drafts.csswg.org/cssom/#resolved-values
+ if ( !support.pixelMarginRight() && rnumnonpx.test( ret ) && rmargin.test( name ) ) {
+
+ // Remember the original values
+ width = style.width;
+ minWidth = style.minWidth;
+ maxWidth = style.maxWidth;
+
+ // Put in the new values to get a computed value out
+ style.minWidth = style.maxWidth = style.width = ret;
+ ret = computed.width;
+
+ // Revert the changed values
+ style.width = width;
+ style.minWidth = minWidth;
+ style.maxWidth = maxWidth;
+ }
+ }
+
+ return ret !== undefined ?
+
+ // Support: IE <=9 - 11 only
+ // IE returns zIndex value as an integer.
+ ret + "" :
+ ret;
+}
+
+
+function addGetHookIf( conditionFn, hookFn ) {
+
+ // Define the hook, we'll check on the first run if it's really needed.
+ return {
+ get: function() {
+ if ( conditionFn() ) {
+
+ // Hook not needed (or it's not possible to use it due
+ // to missing dependency), remove it.
+ delete this.get;
+ return;
+ }
+
+ // Hook needed; redefine it so that the support test is not executed again.
+ return ( this.get = hookFn ).apply( this, arguments );
+ }
+ };
+}
+
+
+var
+
+ // Swappable if display is none or starts with table
+ // except "table", "table-cell", or "table-caption"
+ // See here for display values: https://developer.mozilla.org/en-US/docs/CSS/display
+ rdisplayswap = /^(none|table(?!-c[ea]).+)/,
+ cssShow = { position: "absolute", visibility: "hidden", display: "block" },
+ cssNormalTransform = {
+ letterSpacing: "0",
+ fontWeight: "400"
+ },
+
+ cssPrefixes = [ "Webkit", "Moz", "ms" ],
+ emptyStyle = document.createElement( "div" ).style;
+
+// Return a css property mapped to a potentially vendor prefixed property
+function vendorPropName( name ) {
+
+ // Shortcut for names that are not vendor prefixed
+ if ( name in emptyStyle ) {
+ return name;
+ }
+
+ // Check for vendor prefixed names
+ var capName = name[ 0 ].toUpperCase() + name.slice( 1 ),
+ i = cssPrefixes.length;
+
+ while ( i-- ) {
+ name = cssPrefixes[ i ] + capName;
+ if ( name in emptyStyle ) {
+ return name;
+ }
+ }
+}
+
+function setPositiveNumber( elem, value, subtract ) {
+
+ // Any relative (+/-) values have already been
+ // normalized at this point
+ var matches = rcssNum.exec( value );
+ return matches ?
+
+ // Guard against undefined "subtract", e.g., when used as in cssHooks
+ Math.max( 0, matches[ 2 ] - ( subtract || 0 ) ) + ( matches[ 3 ] || "px" ) :
+ value;
+}
+
+function augmentWidthOrHeight( elem, name, extra, isBorderBox, styles ) {
+ var i,
+ val = 0;
+
+ // If we already have the right measurement, avoid augmentation
+ if ( extra === ( isBorderBox ? "border" : "content" ) ) {
+ i = 4;
+
+ // Otherwise initialize for horizontal or vertical properties
+ } else {
+ i = name === "width" ? 1 : 0;
+ }
+
+ for ( ; i < 4; i += 2 ) {
+
+ // Both box models exclude margin, so add it if we want it
+ if ( extra === "margin" ) {
+ val += jQuery.css( elem, extra + cssExpand[ i ], true, styles );
+ }
+
+ if ( isBorderBox ) {
+
+ // border-box includes padding, so remove it if we want content
+ if ( extra === "content" ) {
+ val -= jQuery.css( elem, "padding" + cssExpand[ i ], true, styles );
+ }
+
+ // At this point, extra isn't border nor margin, so remove border
+ if ( extra !== "margin" ) {
+ val -= jQuery.css( elem, "border" + cssExpand[ i ] + "Width", true, styles );
+ }
+ } else {
+
+ // At this point, extra isn't content, so add padding
+ val += jQuery.css( elem, "padding" + cssExpand[ i ], true, styles );
+
+ // At this point, extra isn't content nor padding, so add border
+ if ( extra !== "padding" ) {
+ val += jQuery.css( elem, "border" + cssExpand[ i ] + "Width", true, styles );
+ }
+ }
+ }
+
+ return val;
+}
+
+function getWidthOrHeight( elem, name, extra ) {
+
+ // Start with offset property, which is equivalent to the border-box value
+ var val,
+ valueIsBorderBox = true,
+ styles = getStyles( elem ),
+ isBorderBox = jQuery.css( elem, "boxSizing", false, styles ) === "border-box";
+
+ // Support: IE <=11 only
+ // Running getBoundingClientRect on a disconnected node
+ // in IE throws an error.
+ if ( elem.getClientRects().length ) {
+ val = elem.getBoundingClientRect()[ name ];
+ }
+
+ // Some non-html elements return undefined for offsetWidth, so check for null/undefined
+ // svg - https://bugzilla.mozilla.org/show_bug.cgi?id=649285
+ // MathML - https://bugzilla.mozilla.org/show_bug.cgi?id=491668
+ if ( val <= 0 || val == null ) {
+
+ // Fall back to computed then uncomputed css if necessary
+ val = curCSS( elem, name, styles );
+ if ( val < 0 || val == null ) {
+ val = elem.style[ name ];
+ }
+
+ // Computed unit is not pixels. Stop here and return.
+ if ( rnumnonpx.test( val ) ) {
+ return val;
+ }
+
+ // Check for style in case a browser which returns unreliable values
+ // for getComputedStyle silently falls back to the reliable elem.style
+ valueIsBorderBox = isBorderBox &&
+ ( support.boxSizingReliable() || val === elem.style[ name ] );
+
+ // Normalize "", auto, and prepare for extra
+ val = parseFloat( val ) || 0;
+ }
+
+ // Use the active box-sizing model to add/subtract irrelevant styles
+ return ( val +
+ augmentWidthOrHeight(
+ elem,
+ name,
+ extra || ( isBorderBox ? "border" : "content" ),
+ valueIsBorderBox,
+ styles
+ )
+ ) + "px";
+}
+
+jQuery.extend( {
+
+ // Add in style property hooks for overriding the default
+ // behavior of getting and setting a style property
+ cssHooks: {
+ opacity: {
+ get: function( elem, computed ) {
+ if ( computed ) {
+
+ // We should always get a number back from opacity
+ var ret = curCSS( elem, "opacity" );
+ return ret === "" ? "1" : ret;
+ }
+ }
+ }
+ },
+
+ // Don't automatically add "px" to these possibly-unitless properties
+ cssNumber: {
+ "animationIterationCount": true,
+ "columnCount": true,
+ "fillOpacity": true,
+ "flexGrow": true,
+ "flexShrink": true,
+ "fontWeight": true,
+ "lineHeight": true,
+ "opacity": true,
+ "order": true,
+ "orphans": true,
+ "widows": true,
+ "zIndex": true,
+ "zoom": true
+ },
+
+ // Add in properties whose names you wish to fix before
+ // setting or getting the value
+ cssProps: {
+ "float": "cssFloat"
+ },
+
+ // Get and set the style property on a DOM Node
+ style: function( elem, name, value, extra ) {
+
+ // Don't set styles on text and comment nodes
+ if ( !elem || elem.nodeType === 3 || elem.nodeType === 8 || !elem.style ) {
+ return;
+ }
+
+ // Make sure that we're working with the right name
+ var ret, type, hooks,
+ origName = jQuery.camelCase( name ),
+ style = elem.style;
+
+ name = jQuery.cssProps[ origName ] ||
+ ( jQuery.cssProps[ origName ] = vendorPropName( origName ) || origName );
+
+ // Gets hook for the prefixed version, then unprefixed version
+ hooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ];
+
+ // Check if we're setting a value
+ if ( value !== undefined ) {
+ type = typeof value;
+
+ // Convert "+=" or "-=" to relative numbers (#7345)
+ if ( type === "string" && ( ret = rcssNum.exec( value ) ) && ret[ 1 ] ) {
+ value = adjustCSS( elem, name, ret );
+
+ // Fixes bug #9237
+ type = "number";
+ }
+
+ // Make sure that null and NaN values aren't set (#7116)
+ if ( value == null || value !== value ) {
+ return;
+ }
+
+ // If a number was passed in, add the unit (except for certain CSS properties)
+ if ( type === "number" ) {
+ value += ret && ret[ 3 ] || ( jQuery.cssNumber[ origName ] ? "" : "px" );
+ }
+
+ // background-* props affect original clone's values
+ if ( !support.clearCloneStyle && value === "" && name.indexOf( "background" ) === 0 ) {
+ style[ name ] = "inherit";
+ }
+
+ // If a hook was provided, use that value, otherwise just set the specified value
+ if ( !hooks || !( "set" in hooks ) ||
+ ( value = hooks.set( elem, value, extra ) ) !== undefined ) {
+
+ style[ name ] = value;
+ }
+
+ } else {
+
+ // If a hook was provided get the non-computed value from there
+ if ( hooks && "get" in hooks &&
+ ( ret = hooks.get( elem, false, extra ) ) !== undefined ) {
+
+ return ret;
+ }
+
+ // Otherwise just get the value from the style object
+ return style[ name ];
+ }
+ },
+
+ css: function( elem, name, extra, styles ) {
+ var val, num, hooks,
+ origName = jQuery.camelCase( name );
+
+ // Make sure that we're working with the right name
+ name = jQuery.cssProps[ origName ] ||
+ ( jQuery.cssProps[ origName ] = vendorPropName( origName ) || origName );
+
+ // Try prefixed name followed by the unprefixed name
+ hooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ];
+
+ // If a hook was provided get the computed value from there
+ if ( hooks && "get" in hooks ) {
+ val = hooks.get( elem, true, extra );
+ }
+
+ // Otherwise, if a way to get the computed value exists, use that
+ if ( val === undefined ) {
+ val = curCSS( elem, name, styles );
+ }
+
+ // Convert "normal" to computed value
+ if ( val === "normal" && name in cssNormalTransform ) {
+ val = cssNormalTransform[ name ];
+ }
+
+ // Make numeric if forced or a qualifier was provided and val looks numeric
+ if ( extra === "" || extra ) {
+ num = parseFloat( val );
+ return extra === true || isFinite( num ) ? num || 0 : val;
+ }
+ return val;
+ }
+} );
+
+jQuery.each( [ "height", "width" ], function( i, name ) {
+ jQuery.cssHooks[ name ] = {
+ get: function( elem, computed, extra ) {
+ if ( computed ) {
+
+ // Certain elements can have dimension info if we invisibly show them
+ // but it must have a current display style that would benefit
+ return rdisplayswap.test( jQuery.css( elem, "display" ) ) &&
+
+ // Support: Safari 8+
+ // Table columns in Safari have non-zero offsetWidth & zero
+ // getBoundingClientRect().width unless display is changed.
+ // Support: IE <=11 only
+ // Running getBoundingClientRect on a disconnected node
+ // in IE throws an error.
+ ( !elem.getClientRects().length || !elem.getBoundingClientRect().width ) ?
+ swap( elem, cssShow, function() {
+ return getWidthOrHeight( elem, name, extra );
+ } ) :
+ getWidthOrHeight( elem, name, extra );
+ }
+ },
+
+ set: function( elem, value, extra ) {
+ var matches,
+ styles = extra && getStyles( elem ),
+ subtract = extra && augmentWidthOrHeight(
+ elem,
+ name,
+ extra,
+ jQuery.css( elem, "boxSizing", false, styles ) === "border-box",
+ styles
+ );
+
+ // Convert to pixels if value adjustment is needed
+ if ( subtract && ( matches = rcssNum.exec( value ) ) &&
+ ( matches[ 3 ] || "px" ) !== "px" ) {
+
+ elem.style[ name ] = value;
+ value = jQuery.css( elem, name );
+ }
+
+ return setPositiveNumber( elem, value, subtract );
+ }
+ };
+} );
+
+jQuery.cssHooks.marginLeft = addGetHookIf( support.reliableMarginLeft,
+ function( elem, computed ) {
+ if ( computed ) {
+ return ( parseFloat( curCSS( elem, "marginLeft" ) ) ||
+ elem.getBoundingClientRect().left -
+ swap( elem, { marginLeft: 0 }, function() {
+ return elem.getBoundingClientRect().left;
+ } )
+ ) + "px";
+ }
+ }
+);
+
+// These hooks are used by animate to expand properties
+jQuery.each( {
+ margin: "",
+ padding: "",
+ border: "Width"
+}, function( prefix, suffix ) {
+ jQuery.cssHooks[ prefix + suffix ] = {
+ expand: function( value ) {
+ var i = 0,
+ expanded = {},
+
+ // Assumes a single number if not a string
+ parts = typeof value === "string" ? value.split( " " ) : [ value ];
+
+ for ( ; i < 4; i++ ) {
+ expanded[ prefix + cssExpand[ i ] + suffix ] =
+ parts[ i ] || parts[ i - 2 ] || parts[ 0 ];
+ }
+
+ return expanded;
+ }
+ };
+
+ if ( !rmargin.test( prefix ) ) {
+ jQuery.cssHooks[ prefix + suffix ].set = setPositiveNumber;
+ }
+} );
+
+jQuery.fn.extend( {
+ css: function( name, value ) {
+ return access( this, function( elem, name, value ) {
+ var styles, len,
+ map = {},
+ i = 0;
+
+ if ( jQuery.isArray( name ) ) {
+ styles = getStyles( elem );
+ len = name.length;
+
+ for ( ; i < len; i++ ) {
+ map[ name[ i ] ] = jQuery.css( elem, name[ i ], false, styles );
+ }
+
+ return map;
+ }
+
+ return value !== undefined ?
+ jQuery.style( elem, name, value ) :
+ jQuery.css( elem, name );
+ }, name, value, arguments.length > 1 );
+ }
+} );
+
+
+// Based off of the plugin by Clint Helfers, with permission.
+// https://web.archive.org/web/20100324014747/http://blindsignals.com/index.php/2009/07/jquery-delay/
+jQuery.fn.delay = function( time, type ) {
+ time = jQuery.fx ? jQuery.fx.speeds[ time ] || time : time;
+ type = type || "fx";
+
+ return this.queue( type, function( next, hooks ) {
+ var timeout = window.setTimeout( next, time );
+ hooks.stop = function() {
+ window.clearTimeout( timeout );
+ };
+ } );
+};
+
+
+( function() {
+ var input = document.createElement( "input" ),
+ select = document.createElement( "select" ),
+ opt = select.appendChild( document.createElement( "option" ) );
+
+ input.type = "checkbox";
+
+ // Support: Android <=4.3 only
+ // Default value for a checkbox should be "on"
+ support.checkOn = input.value !== "";
+
+ // Support: IE <=11 only
+ // Must access selectedIndex to make default options select
+ support.optSelected = opt.selected;
+
+ // Support: IE <=11 only
+ // An input loses its value after becoming a radio
+ input = document.createElement( "input" );
+ input.value = "t";
+ input.type = "radio";
+ support.radioValue = input.value === "t";
+} )();
+
+
+var boolHook,
+ attrHandle = jQuery.expr.attrHandle;
+
+jQuery.fn.extend( {
+ attr: function( name, value ) {
+ return access( this, jQuery.attr, name, value, arguments.length > 1 );
+ },
+
+ removeAttr: function( name ) {
+ return this.each( function() {
+ jQuery.removeAttr( this, name );
+ } );
+ }
+} );
+
+jQuery.extend( {
+ attr: function( elem, name, value ) {
+ var ret, hooks,
+ nType = elem.nodeType;
+
+ // Don't get/set attributes on text, comment and attribute nodes
+ if ( nType === 3 || nType === 8 || nType === 2 ) {
+ return;
+ }
+
+ // Fallback to prop when attributes are not supported
+ if ( typeof elem.getAttribute === "undefined" ) {
+ return jQuery.prop( elem, name, value );
+ }
+
+ // Attribute hooks are determined by the lowercase version
+ // Grab necessary hook if one is defined
+ if ( nType !== 1 || !jQuery.isXMLDoc( elem ) ) {
+ hooks = jQuery.attrHooks[ name.toLowerCase() ] ||
+ ( jQuery.expr.match.bool.test( name ) ? boolHook : undefined );
+ }
+
+ if ( value !== undefined ) {
+ if ( value === null ) {
+ jQuery.removeAttr( elem, name );
+ return;
+ }
+
+ if ( hooks && "set" in hooks &&
+ ( ret = hooks.set( elem, value, name ) ) !== undefined ) {
+ return ret;
+ }
+
+ elem.setAttribute( name, value + "" );
+ return value;
+ }
+
+ if ( hooks && "get" in hooks && ( ret = hooks.get( elem, name ) ) !== null ) {
+ return ret;
+ }
+
+ ret = jQuery.find.attr( elem, name );
+
+ // Non-existent attributes return null, we normalize to undefined
+ return ret == null ? undefined : ret;
+ },
+
+ attrHooks: {
+ type: {
+ set: function( elem, value ) {
+ if ( !support.radioValue && value === "radio" &&
+ jQuery.nodeName( elem, "input" ) ) {
+ var val = elem.value;
+ elem.setAttribute( "type", value );
+ if ( val ) {
+ elem.value = val;
+ }
+ return value;
+ }
+ }
+ }
+ },
+
+ removeAttr: function( elem, value ) {
+ var name,
+ i = 0,
+
+ // Attribute names can contain non-HTML whitespace characters
+ // https://html.spec.whatwg.org/multipage/syntax.html#attributes-2
+ attrNames = value && value.match( rnothtmlwhite );
+
+ if ( attrNames && elem.nodeType === 1 ) {
+ while ( ( name = attrNames[ i++ ] ) ) {
+ elem.removeAttribute( name );
+ }
+ }
+ }
+} );
+
+// Hooks for boolean attributes
+boolHook = {
+ set: function( elem, value, name ) {
+ if ( value === false ) {
+
+ // Remove boolean attributes when set to false
+ jQuery.removeAttr( elem, name );
+ } else {
+ elem.setAttribute( name, name );
+ }
+ return name;
+ }
+};
+
+jQuery.each( jQuery.expr.match.bool.source.match( /\w+/g ), function( i, name ) {
+ var getter = attrHandle[ name ] || jQuery.find.attr;
+
+ attrHandle[ name ] = function( elem, name, isXML ) {
+ var ret, handle,
+ lowercaseName = name.toLowerCase();
+
+ if ( !isXML ) {
+
+ // Avoid an infinite loop by temporarily removing this function from the getter
+ handle = attrHandle[ lowercaseName ];
+ attrHandle[ lowercaseName ] = ret;
+ ret = getter( elem, name, isXML ) != null ?
+ lowercaseName :
+ null;
+ attrHandle[ lowercaseName ] = handle;
+ }
+ return ret;
+ };
+} );
+
+
+
+
+var rfocusable = /^(?:input|select|textarea|button)$/i,
+ rclickable = /^(?:a|area)$/i;
+
+jQuery.fn.extend( {
+ prop: function( name, value ) {
+ return access( this, jQuery.prop, name, value, arguments.length > 1 );
+ },
+
+ removeProp: function( name ) {
+ return this.each( function() {
+ delete this[ jQuery.propFix[ name ] || name ];
+ } );
+ }
+} );
+
+jQuery.extend( {
+ prop: function( elem, name, value ) {
+ var ret, hooks,
+ nType = elem.nodeType;
+
+ // Don't get/set properties on text, comment and attribute nodes
+ if ( nType === 3 || nType === 8 || nType === 2 ) {
+ return;
+ }
+
+ if ( nType !== 1 || !jQuery.isXMLDoc( elem ) ) {
+
+ // Fix name and attach hooks
+ name = jQuery.propFix[ name ] || name;
+ hooks = jQuery.propHooks[ name ];
+ }
+
+ if ( value !== undefined ) {
+ if ( hooks && "set" in hooks &&
+ ( ret = hooks.set( elem, value, name ) ) !== undefined ) {
+ return ret;
+ }
+
+ return ( elem[ name ] = value );
+ }
+
+ if ( hooks && "get" in hooks && ( ret = hooks.get( elem, name ) ) !== null ) {
+ return ret;
+ }
+
+ return elem[ name ];
+ },
+
+ propHooks: {
+ tabIndex: {
+ get: function( elem ) {
+
+ // Support: IE <=9 - 11 only
+ // elem.tabIndex doesn't always return the
+ // correct value when it hasn't been explicitly set
+ // https://web.archive.org/web/20141116233347/http://fluidproject.org/blog/2008/01/09/getting-setting-and-removing-tabindex-values-with-javascript/
+ // Use proper attribute retrieval(#12072)
+ var tabindex = jQuery.find.attr( elem, "tabindex" );
+
+ if ( tabindex ) {
+ return parseInt( tabindex, 10 );
+ }
+
+ if (
+ rfocusable.test( elem.nodeName ) ||
+ rclickable.test( elem.nodeName ) &&
+ elem.href
+ ) {
+ return 0;
+ }
+
+ return -1;
+ }
+ }
+ },
+
+ propFix: {
+ "for": "htmlFor",
+ "class": "className"
+ }
+} );
+
+// Support: IE <=11 only
+// Accessing the selectedIndex property
+// forces the browser to respect setting selected
+// on the option
+// The getter ensures a default option is selected
+// when in an optgroup
+// eslint rule "no-unused-expressions" is disabled for this code
+// since it considers such accessions noop
+if ( !support.optSelected ) {
+ jQuery.propHooks.selected = {
+ get: function( elem ) {
+
+ /* eslint no-unused-expressions: "off" */
+
+ var parent = elem.parentNode;
+ if ( parent && parent.parentNode ) {
+ parent.parentNode.selectedIndex;
+ }
+ return null;
+ },
+ set: function( elem ) {
+
+ /* eslint no-unused-expressions: "off" */
+
+ var parent = elem.parentNode;
+ if ( parent ) {
+ parent.selectedIndex;
+
+ if ( parent.parentNode ) {
+ parent.parentNode.selectedIndex;
+ }
+ }
+ }
+ };
+}
+
+jQuery.each( [
+ "tabIndex",
+ "readOnly",
+ "maxLength",
+ "cellSpacing",
+ "cellPadding",
+ "rowSpan",
+ "colSpan",
+ "useMap",
+ "frameBorder",
+ "contentEditable"
+], function() {
+ jQuery.propFix[ this.toLowerCase() ] = this;
+} );
+
+
+
+
+ // Strip and collapse whitespace according to HTML spec
+ // https://html.spec.whatwg.org/multipage/infrastructure.html#strip-and-collapse-whitespace
+ function stripAndCollapse( value ) {
+ var tokens = value.match( rnothtmlwhite ) || [];
+ return tokens.join( " " );
+ }
+
+
+function getClass( elem ) {
+ return elem.getAttribute && elem.getAttribute( "class" ) || "";
+}
+
+jQuery.fn.extend( {
+ addClass: function( value ) {
+ var classes, elem, cur, curValue, clazz, j, finalValue,
+ i = 0;
+
+ if ( jQuery.isFunction( value ) ) {
+ return this.each( function( j ) {
+ jQuery( this ).addClass( value.call( this, j, getClass( this ) ) );
+ } );
+ }
+
+ if ( typeof value === "string" && value ) {
+ classes = value.match( rnothtmlwhite ) || [];
+
+ while ( ( elem = this[ i++ ] ) ) {
+ curValue = getClass( elem );
+ cur = elem.nodeType === 1 && ( " " + stripAndCollapse( curValue ) + " " );
+
+ if ( cur ) {
+ j = 0;
+ while ( ( clazz = classes[ j++ ] ) ) {
+ if ( cur.indexOf( " " + clazz + " " ) < 0 ) {
+ cur += clazz + " ";
+ }
+ }
+
+ // Only assign if different to avoid unneeded rendering.
+ finalValue = stripAndCollapse( cur );
+ if ( curValue !== finalValue ) {
+ elem.setAttribute( "class", finalValue );
+ }
+ }
+ }
+ }
+
+ return this;
+ },
+
+ removeClass: function( value ) {
+ var classes, elem, cur, curValue, clazz, j, finalValue,
+ i = 0;
+
+ if ( jQuery.isFunction( value ) ) {
+ return this.each( function( j ) {
+ jQuery( this ).removeClass( value.call( this, j, getClass( this ) ) );
+ } );
+ }
+
+ if ( !arguments.length ) {
+ return this.attr( "class", "" );
+ }
+
+ if ( typeof value === "string" && value ) {
+ classes = value.match( rnothtmlwhite ) || [];
+
+ while ( ( elem = this[ i++ ] ) ) {
+ curValue = getClass( elem );
+
+ // This expression is here for better compressibility (see addClass)
+ cur = elem.nodeType === 1 && ( " " + stripAndCollapse( curValue ) + " " );
+
+ if ( cur ) {
+ j = 0;
+ while ( ( clazz = classes[ j++ ] ) ) {
+
+ // Remove *all* instances
+ while ( cur.indexOf( " " + clazz + " " ) > -1 ) {
+ cur = cur.replace( " " + clazz + " ", " " );
+ }
+ }
+
+ // Only assign if different to avoid unneeded rendering.
+ finalValue = stripAndCollapse( cur );
+ if ( curValue !== finalValue ) {
+ elem.setAttribute( "class", finalValue );
+ }
+ }
+ }
+ }
+
+ return this;
+ },
+
+ toggleClass: function( value, stateVal ) {
+ var type = typeof value;
+
+ if ( typeof stateVal === "boolean" && type === "string" ) {
+ return stateVal ? this.addClass( value ) : this.removeClass( value );
+ }
+
+ if ( jQuery.isFunction( value ) ) {
+ return this.each( function( i ) {
+ jQuery( this ).toggleClass(
+ value.call( this, i, getClass( this ), stateVal ),
+ stateVal
+ );
+ } );
+ }
+
+ return this.each( function() {
+ var className, i, self, classNames;
+
+ if ( type === "string" ) {
+
+ // Toggle individual class names
+ i = 0;
+ self = jQuery( this );
+ classNames = value.match( rnothtmlwhite ) || [];
+
+ while ( ( className = classNames[ i++ ] ) ) {
+
+ // Check each className given, space separated list
+ if ( self.hasClass( className ) ) {
+ self.removeClass( className );
+ } else {
+ self.addClass( className );
+ }
+ }
+
+ // Toggle whole class name
+ } else if ( value === undefined || type === "boolean" ) {
+ className = getClass( this );
+ if ( className ) {
+
+ // Store className if set
+ dataPriv.set( this, "__className__", className );
+ }
+
+ // If the element has a class name or if we're passed `false`,
+ // then remove the whole classname (if there was one, the above saved it).
+ // Otherwise bring back whatever was previously saved (if anything),
+ // falling back to the empty string if nothing was stored.
+ if ( this.setAttribute ) {
+ this.setAttribute( "class",
+ className || value === false ?
+ "" :
+ dataPriv.get( this, "__className__" ) || ""
+ );
+ }
+ }
+ } );
+ },
+
+ hasClass: function( selector ) {
+ var className, elem,
+ i = 0;
+
+ className = " " + selector + " ";
+ while ( ( elem = this[ i++ ] ) ) {
+ if ( elem.nodeType === 1 &&
+ ( " " + stripAndCollapse( getClass( elem ) ) + " " ).indexOf( className ) > -1 ) {
+ return true;
+ }
+ }
+
+ return false;
+ }
+} );
+
+
+
+
+var rreturn = /\r/g;
+
+jQuery.fn.extend( {
+ val: function( value ) {
+ var hooks, ret, isFunction,
+ elem = this[ 0 ];
+
+ if ( !arguments.length ) {
+ if ( elem ) {
+ hooks = jQuery.valHooks[ elem.type ] ||
+ jQuery.valHooks[ elem.nodeName.toLowerCase() ];
+
+ if ( hooks &&
+ "get" in hooks &&
+ ( ret = hooks.get( elem, "value" ) ) !== undefined
+ ) {
+ return ret;
+ }
+
+ ret = elem.value;
+
+ // Handle most common string cases
+ if ( typeof ret === "string" ) {
+ return ret.replace( rreturn, "" );
+ }
+
+ // Handle cases where value is null/undef or number
+ return ret == null ? "" : ret;
+ }
+
+ return;
+ }
+
+ isFunction = jQuery.isFunction( value );
+
+ return this.each( function( i ) {
+ var val;
+
+ if ( this.nodeType !== 1 ) {
+ return;
+ }
+
+ if ( isFunction ) {
+ val = value.call( this, i, jQuery( this ).val() );
+ } else {
+ val = value;
+ }
+
+ // Treat null/undefined as ""; convert numbers to string
+ if ( val == null ) {
+ val = "";
+
+ } else if ( typeof val === "number" ) {
+ val += "";
+
+ } else if ( jQuery.isArray( val ) ) {
+ val = jQuery.map( val, function( value ) {
+ return value == null ? "" : value + "";
+ } );
+ }
+
+ hooks = jQuery.valHooks[ this.type ] || jQuery.valHooks[ this.nodeName.toLowerCase() ];
+
+ // If set returns undefined, fall back to normal setting
+ if ( !hooks || !( "set" in hooks ) || hooks.set( this, val, "value" ) === undefined ) {
+ this.value = val;
+ }
+ } );
+ }
+} );
+
+jQuery.extend( {
+ valHooks: {
+ option: {
+ get: function( elem ) {
+
+ var val = jQuery.find.attr( elem, "value" );
+ return val != null ?
+ val :
+
+ // Support: IE <=10 - 11 only
+ // option.text throws exceptions (#14686, #14858)
+ // Strip and collapse whitespace
+ // https://html.spec.whatwg.org/#strip-and-collapse-whitespace
+ stripAndCollapse( jQuery.text( elem ) );
+ }
+ },
+ select: {
+ get: function( elem ) {
+ var value, option, i,
+ options = elem.options,
+ index = elem.selectedIndex,
+ one = elem.type === "select-one",
+ values = one ? null : [],
+ max = one ? index + 1 : options.length;
+
+ if ( index < 0 ) {
+ i = max;
+
+ } else {
+ i = one ? index : 0;
+ }
+
+ // Loop through all the selected options
+ for ( ; i < max; i++ ) {
+ option = options[ i ];
+
+ // Support: IE <=9 only
+ // IE8-9 doesn't update selected after form reset (#2551)
+ if ( ( option.selected || i === index ) &&
+
+ // Don't return options that are disabled or in a disabled optgroup
+ !option.disabled &&
+ ( !option.parentNode.disabled ||
+ !jQuery.nodeName( option.parentNode, "optgroup" ) ) ) {
+
+ // Get the specific value for the option
+ value = jQuery( option ).val();
+
+ // We don't need an array for one selects
+ if ( one ) {
+ return value;
+ }
+
+ // Multi-Selects return an array
+ values.push( value );
+ }
+ }
+
+ return values;
+ },
+
+ set: function( elem, value ) {
+ var optionSet, option,
+ options = elem.options,
+ values = jQuery.makeArray( value ),
+ i = options.length;
+
+ while ( i-- ) {
+ option = options[ i ];
+
+ /* eslint-disable no-cond-assign */
+
+ if ( option.selected =
+ jQuery.inArray( jQuery.valHooks.option.get( option ), values ) > -1
+ ) {
+ optionSet = true;
+ }
+
+ /* eslint-enable no-cond-assign */
+ }
+
+ // Force browsers to behave consistently when non-matching value is set
+ if ( !optionSet ) {
+ elem.selectedIndex = -1;
+ }
+ return values;
+ }
+ }
+ }
+} );
+
+// Radios and checkboxes getter/setter
+jQuery.each( [ "radio", "checkbox" ], function() {
+ jQuery.valHooks[ this ] = {
+ set: function( elem, value ) {
+ if ( jQuery.isArray( value ) ) {
+ return ( elem.checked = jQuery.inArray( jQuery( elem ).val(), value ) > -1 );
+ }
+ }
+ };
+ if ( !support.checkOn ) {
+ jQuery.valHooks[ this ].get = function( elem ) {
+ return elem.getAttribute( "value" ) === null ? "on" : elem.value;
+ };
+ }
+} );
+
+
+
+
+// Return jQuery for attributes-only inclusion
+
+
+var rfocusMorph = /^(?:focusinfocus|focusoutblur)$/;
+
+jQuery.extend( jQuery.event, {
+
+ trigger: function( event, data, elem, onlyHandlers ) {
+
+ var i, cur, tmp, bubbleType, ontype, handle, special,
+ eventPath = [ elem || document ],
+ type = hasOwn.call( event, "type" ) ? event.type : event,
+ namespaces = hasOwn.call( event, "namespace" ) ? event.namespace.split( "." ) : [];
+
+ cur = tmp = elem = elem || document;
+
+ // Don't do events on text and comment nodes
+ if ( elem.nodeType === 3 || elem.nodeType === 8 ) {
+ return;
+ }
+
+ // focus/blur morphs to focusin/out; ensure we're not firing them right now
+ if ( rfocusMorph.test( type + jQuery.event.triggered ) ) {
+ return;
+ }
+
+ if ( type.indexOf( "." ) > -1 ) {
+
+ // Namespaced trigger; create a regexp to match event type in handle()
+ namespaces = type.split( "." );
+ type = namespaces.shift();
+ namespaces.sort();
+ }
+ ontype = type.indexOf( ":" ) < 0 && "on" + type;
+
+ // Caller can pass in a jQuery.Event object, Object, or just an event type string
+ event = event[ jQuery.expando ] ?
+ event :
+ new jQuery.Event( type, typeof event === "object" && event );
+
+ // Trigger bitmask: & 1 for native handlers; & 2 for jQuery (always true)
+ event.isTrigger = onlyHandlers ? 2 : 3;
+ event.namespace = namespaces.join( "." );
+ event.rnamespace = event.namespace ?
+ new RegExp( "(^|\\.)" + namespaces.join( "\\.(?:.*\\.|)" ) + "(\\.|$)" ) :
+ null;
+
+ // Clean up the event in case it is being reused
+ event.result = undefined;
+ if ( !event.target ) {
+ event.target = elem;
+ }
+
+ // Clone any incoming data and prepend the event, creating the handler arg list
+ data = data == null ?
+ [ event ] :
+ jQuery.makeArray( data, [ event ] );
+
+ // Allow special events to draw outside the lines
+ special = jQuery.event.special[ type ] || {};
+ if ( !onlyHandlers && special.trigger && special.trigger.apply( elem, data ) === false ) {
+ return;
+ }
+
+ // Determine event propagation path in advance, per W3C events spec (#9951)
+ // Bubble up to document, then to window; watch for a global ownerDocument var (#9724)
+ if ( !onlyHandlers && !special.noBubble && !jQuery.isWindow( elem ) ) {
+
+ bubbleType = special.delegateType || type;
+ if ( !rfocusMorph.test( bubbleType + type ) ) {
+ cur = cur.parentNode;
+ }
+ for ( ; cur; cur = cur.parentNode ) {
+ eventPath.push( cur );
+ tmp = cur;
+ }
+
+ // Only add window if we got to document (e.g., not plain obj or detached DOM)
+ if ( tmp === ( elem.ownerDocument || document ) ) {
+ eventPath.push( tmp.defaultView || tmp.parentWindow || window );
+ }
+ }
+
+ // Fire handlers on the event path
+ i = 0;
+ while ( ( cur = eventPath[ i++ ] ) && !event.isPropagationStopped() ) {
+
+ event.type = i > 1 ?
+ bubbleType :
+ special.bindType || type;
+
+ // jQuery handler
+ handle = ( dataPriv.get( cur, "events" ) || {} )[ event.type ] &&
+ dataPriv.get( cur, "handle" );
+ if ( handle ) {
+ handle.apply( cur, data );
+ }
+
+ // Native handler
+ handle = ontype && cur[ ontype ];
+ if ( handle && handle.apply && acceptData( cur ) ) {
+ event.result = handle.apply( cur, data );
+ if ( event.result === false ) {
+ event.preventDefault();
+ }
+ }
+ }
+ event.type = type;
+
+ // If nobody prevented the default action, do it now
+ if ( !onlyHandlers && !event.isDefaultPrevented() ) {
+
+ if ( ( !special._default ||
+ special._default.apply( eventPath.pop(), data ) === false ) &&
+ acceptData( elem ) ) {
+
+ // Call a native DOM method on the target with the same name as the event.
+ // Don't do default actions on window, that's where global variables be (#6170)
+ if ( ontype && jQuery.isFunction( elem[ type ] ) && !jQuery.isWindow( elem ) ) {
+
+ // Don't re-trigger an onFOO event when we call its FOO() method
+ tmp = elem[ ontype ];
+
+ if ( tmp ) {
+ elem[ ontype ] = null;
+ }
+
+ // Prevent re-triggering of the same event, since we already bubbled it above
+ jQuery.event.triggered = type;
+ elem[ type ]();
+ jQuery.event.triggered = undefined;
+
+ if ( tmp ) {
+ elem[ ontype ] = tmp;
+ }
+ }
+ }
+ }
+
+ return event.result;
+ },
+
+ // Piggyback on a donor event to simulate a different one
+ // Used only for `focus(in | out)` events
+ simulate: function( type, elem, event ) {
+ var e = jQuery.extend(
+ new jQuery.Event(),
+ event,
+ {
+ type: type,
+ isSimulated: true
+ }
+ );
+
+ jQuery.event.trigger( e, null, elem );
+ }
+
+} );
+
+jQuery.fn.extend( {
+
+ trigger: function( type, data ) {
+ return this.each( function() {
+ jQuery.event.trigger( type, data, this );
+ } );
+ },
+ triggerHandler: function( type, data ) {
+ var elem = this[ 0 ];
+ if ( elem ) {
+ return jQuery.event.trigger( type, data, elem, true );
+ }
+ }
+} );
+
+
+jQuery.each( ( "blur focus focusin focusout resize scroll click dblclick " +
+ "mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave " +
+ "change select submit keydown keypress keyup contextmenu" ).split( " " ),
+ function( i, name ) {
+
+ // Handle event binding
+ jQuery.fn[ name ] = function( data, fn ) {
+ return arguments.length > 0 ?
+ this.on( name, null, data, fn ) :
+ this.trigger( name );
+ };
+} );
+
+jQuery.fn.extend( {
+ hover: function( fnOver, fnOut ) {
+ return this.mouseenter( fnOver ).mouseleave( fnOut || fnOver );
+ }
+} );
+
+
+
+
+support.focusin = "onfocusin" in window;
+
+
+// Support: Firefox <=44
+// Firefox doesn't have focus(in | out) events
+// Related ticket - https://bugzilla.mozilla.org/show_bug.cgi?id=687787
+//
+// Support: Chrome <=48 - 49, Safari <=9.0 - 9.1
+// focus(in | out) events fire after focus & blur events,
+// which is spec violation - http://www.w3.org/TR/DOM-Level-3-Events/#events-focusevent-event-order
+// Related ticket - https://bugs.chromium.org/p/chromium/issues/detail?id=449857
+if ( !support.focusin ) {
+ jQuery.each( { focus: "focusin", blur: "focusout" }, function( orig, fix ) {
+
+ // Attach a single capturing handler on the document while someone wants focusin/focusout
+ var handler = function( event ) {
+ jQuery.event.simulate( fix, event.target, jQuery.event.fix( event ) );
+ };
+
+ jQuery.event.special[ fix ] = {
+ setup: function() {
+ var doc = this.ownerDocument || this,
+ attaches = dataPriv.access( doc, fix );
+
+ if ( !attaches ) {
+ doc.addEventListener( orig, handler, true );
+ }
+ dataPriv.access( doc, fix, ( attaches || 0 ) + 1 );
+ },
+ teardown: function() {
+ var doc = this.ownerDocument || this,
+ attaches = dataPriv.access( doc, fix ) - 1;
+
+ if ( !attaches ) {
+ doc.removeEventListener( orig, handler, true );
+ dataPriv.remove( doc, fix );
+
+ } else {
+ dataPriv.access( doc, fix, attaches );
+ }
+ }
+ };
+ } );
+}
+
+
+var
+ rbracket = /\[\]$/,
+ rCRLF = /\r?\n/g,
+ rsubmitterTypes = /^(?:submit|button|image|reset|file)$/i,
+ rsubmittable = /^(?:input|select|textarea|keygen)/i;
+
+function buildParams( prefix, obj, traditional, add ) {
+ var name;
+
+ if ( jQuery.isArray( obj ) ) {
+
+ // Serialize array item.
+ jQuery.each( obj, function( i, v ) {
+ if ( traditional || rbracket.test( prefix ) ) {
+
+ // Treat each array item as a scalar.
+ add( prefix, v );
+
+ } else {
+
+ // Item is non-scalar (array or object), encode its numeric index.
+ buildParams(
+ prefix + "[" + ( typeof v === "object" && v != null ? i : "" ) + "]",
+ v,
+ traditional,
+ add
+ );
+ }
+ } );
+
+ } else if ( !traditional && jQuery.type( obj ) === "object" ) {
+
+ // Serialize object item.
+ for ( name in obj ) {
+ buildParams( prefix + "[" + name + "]", obj[ name ], traditional, add );
+ }
+
+ } else {
+
+ // Serialize scalar item.
+ add( prefix, obj );
+ }
+}
+
+// Serialize an array of form elements or a set of
+// key/values into a query string
+jQuery.param = function( a, traditional ) {
+ var prefix,
+ s = [],
+ add = function( key, valueOrFunction ) {
+
+ // If value is a function, invoke it and use its return value
+ var value = jQuery.isFunction( valueOrFunction ) ?
+ valueOrFunction() :
+ valueOrFunction;
+
+ s[ s.length ] = encodeURIComponent( key ) + "=" +
+ encodeURIComponent( value == null ? "" : value );
+ };
+
+ // If an array was passed in, assume that it is an array of form elements.
+ if ( jQuery.isArray( a ) || ( a.jquery && !jQuery.isPlainObject( a ) ) ) {
+
+ // Serialize the form elements
+ jQuery.each( a, function() {
+ add( this.name, this.value );
+ } );
+
+ } else {
+
+ // If traditional, encode the "old" way (the way 1.3.2 or older
+ // did it), otherwise encode params recursively.
+ for ( prefix in a ) {
+ buildParams( prefix, a[ prefix ], traditional, add );
+ }
+ }
+
+ // Return the resulting serialization
+ return s.join( "&" );
+};
+
+jQuery.fn.extend( {
+ serialize: function() {
+ return jQuery.param( this.serializeArray() );
+ },
+ serializeArray: function() {
+ return this.map( function() {
+
+ // Can add propHook for "elements" to filter or add form elements
+ var elements = jQuery.prop( this, "elements" );
+ return elements ? jQuery.makeArray( elements ) : this;
+ } )
+ .filter( function() {
+ var type = this.type;
+
+ // Use .is( ":disabled" ) so that fieldset[disabled] works
+ return this.name && !jQuery( this ).is( ":disabled" ) &&
+ rsubmittable.test( this.nodeName ) && !rsubmitterTypes.test( type ) &&
+ ( this.checked || !rcheckableType.test( type ) );
+ } )
+ .map( function( i, elem ) {
+ var val = jQuery( this ).val();
+
+ if ( val == null ) {
+ return null;
+ }
+
+ if ( jQuery.isArray( val ) ) {
+ return jQuery.map( val, function( val ) {
+ return { name: elem.name, value: val.replace( rCRLF, "\r\n" ) };
+ } );
+ }
+
+ return { name: elem.name, value: val.replace( rCRLF, "\r\n" ) };
+ } ).get();
+ }
+} );
+
+
+jQuery.fn.extend( {
+ wrapAll: function( html ) {
+ var wrap;
+
+ if ( this[ 0 ] ) {
+ if ( jQuery.isFunction( html ) ) {
+ html = html.call( this[ 0 ] );
+ }
+
+ // The elements to wrap the target around
+ wrap = jQuery( html, this[ 0 ].ownerDocument ).eq( 0 ).clone( true );
+
+ if ( this[ 0 ].parentNode ) {
+ wrap.insertBefore( this[ 0 ] );
+ }
+
+ wrap.map( function() {
+ var elem = this;
+
+ while ( elem.firstElementChild ) {
+ elem = elem.firstElementChild;
+ }
+
+ return elem;
+ } ).append( this );
+ }
+
+ return this;
+ },
+
+ wrapInner: function( html ) {
+ if ( jQuery.isFunction( html ) ) {
+ return this.each( function( i ) {
+ jQuery( this ).wrapInner( html.call( this, i ) );
+ } );
+ }
+
+ return this.each( function() {
+ var self = jQuery( this ),
+ contents = self.contents();
+
+ if ( contents.length ) {
+ contents.wrapAll( html );
+
+ } else {
+ self.append( html );
+ }
+ } );
+ },
+
+ wrap: function( html ) {
+ var isFunction = jQuery.isFunction( html );
+
+ return this.each( function( i ) {
+ jQuery( this ).wrapAll( isFunction ? html.call( this, i ) : html );
+ } );
+ },
+
+ unwrap: function( selector ) {
+ this.parent( selector ).not( "body" ).each( function() {
+ jQuery( this ).replaceWith( this.childNodes );
+ } );
+ return this;
+ }
+} );
+
+
+jQuery.expr.pseudos.hidden = function( elem ) {
+ return !jQuery.expr.pseudos.visible( elem );
+};
+jQuery.expr.pseudos.visible = function( elem ) {
+ return !!( elem.offsetWidth || elem.offsetHeight || elem.getClientRects().length );
+};
+
+
+
+
+// Support: Safari 8 only
+// In Safari 8 documents created via document.implementation.createHTMLDocument
+// collapse sibling forms: the second one becomes a child of the first one.
+// Because of that, this security measure has to be disabled in Safari 8.
+// https://bugs.webkit.org/show_bug.cgi?id=137337
+support.createHTMLDocument = ( function() {
+ var body = document.implementation.createHTMLDocument( "" ).body;
+ body.innerHTML = "<form></form><form></form>";
+ return body.childNodes.length === 2;
+} )();
+
+
+// Argument "data" should be string of html
+// context (optional): If specified, the fragment will be created in this context,
+// defaults to document
+// keepScripts (optional): If true, will include scripts passed in the html string
+jQuery.parseHTML = function( data, context, keepScripts ) {
+ if ( typeof data !== "string" ) {
+ return [];
+ }
+ if ( typeof context === "boolean" ) {
+ keepScripts = context;
+ context = false;
+ }
+
+ var base, parsed, scripts;
+
+ if ( !context ) {
+
+ // Stop scripts or inline event handlers from being executed immediately
+ // by using document.implementation
+ if ( support.createHTMLDocument ) {
+ context = document.implementation.createHTMLDocument( "" );
+
+ // Set the base href for the created document
+ // so any parsed elements with URLs
+ // are based on the document's URL (gh-2965)
+ base = context.createElement( "base" );
+ base.href = document.location.href;
+ context.head.appendChild( base );
+ } else {
+ context = document;
+ }
+ }
+
+ parsed = rsingleTag.exec( data );
+ scripts = !keepScripts && [];
+
+ // Single tag
+ if ( parsed ) {
+ return [ context.createElement( parsed[ 1 ] ) ];
+ }
+
+ parsed = buildFragment( [ data ], context, scripts );
+
+ if ( scripts && scripts.length ) {
+ jQuery( scripts ).remove();
+ }
+
+ return jQuery.merge( [], parsed.childNodes );
+};
+
+
+/**
+ * Gets a window from an element
+ */
+function getWindow( elem ) {
+ return jQuery.isWindow( elem ) ? elem : elem.nodeType === 9 && elem.defaultView;
+}
+
+jQuery.offset = {
+ setOffset: function( elem, options, i ) {
+ var curPosition, curLeft, curCSSTop, curTop, curOffset, curCSSLeft, calculatePosition,
+ position = jQuery.css( elem, "position" ),
+ curElem = jQuery( elem ),
+ props = {};
+
+ // Set position first, in-case top/left are set even on static elem
+ if ( position === "static" ) {
+ elem.style.position = "relative";
+ }
+
+ curOffset = curElem.offset();
+ curCSSTop = jQuery.css( elem, "top" );
+ curCSSLeft = jQuery.css( elem, "left" );
+ calculatePosition = ( position === "absolute" || position === "fixed" ) &&
+ ( curCSSTop + curCSSLeft ).indexOf( "auto" ) > -1;
+
+ // Need to be able to calculate position if either
+ // top or left is auto and position is either absolute or fixed
+ if ( calculatePosition ) {
+ curPosition = curElem.position();
+ curTop = curPosition.top;
+ curLeft = curPosition.left;
+
+ } else {
+ curTop = parseFloat( curCSSTop ) || 0;
+ curLeft = parseFloat( curCSSLeft ) || 0;
+ }
+
+ if ( jQuery.isFunction( options ) ) {
+
+ // Use jQuery.extend here to allow modification of coordinates argument (gh-1848)
+ options = options.call( elem, i, jQuery.extend( {}, curOffset ) );
+ }
+
+ if ( options.top != null ) {
+ props.top = ( options.top - curOffset.top ) + curTop;
+ }
+ if ( options.left != null ) {
+ props.left = ( options.left - curOffset.left ) + curLeft;
+ }
+
+ if ( "using" in options ) {
+ options.using.call( elem, props );
+
+ } else {
+ curElem.css( props );
+ }
+ }
+};
+
+jQuery.fn.extend( {
+ offset: function( options ) {
+
+ // Preserve chaining for setter
+ if ( arguments.length ) {
+ return options === undefined ?
+ this :
+ this.each( function( i ) {
+ jQuery.offset.setOffset( this, options, i );
+ } );
+ }
+
+ var docElem, win, rect, doc,
+ elem = this[ 0 ];
+
+ if ( !elem ) {
+ return;
+ }
+
+ // Support: IE <=11 only
+ // Running getBoundingClientRect on a
+ // disconnected node in IE throws an error
+ if ( !elem.getClientRects().length ) {
+ return { top: 0, left: 0 };
+ }
+
+ rect = elem.getBoundingClientRect();
+
+ // Make sure element is not hidden (display: none)
+ if ( rect.width || rect.height ) {
+ doc = elem.ownerDocument;
+ win = getWindow( doc );
+ docElem = doc.documentElement;
+
+ return {
+ top: rect.top + win.pageYOffset - docElem.clientTop,
+ left: rect.left + win.pageXOffset - docElem.clientLeft
+ };
+ }
+
+ // Return zeros for disconnected and hidden elements (gh-2310)
+ return rect;
+ },
+
+ position: function() {
+ if ( !this[ 0 ] ) {
+ return;
+ }
+
+ var offsetParent, offset,
+ elem = this[ 0 ],
+ parentOffset = { top: 0, left: 0 };
+
+ // Fixed elements are offset from window (parentOffset = {top:0, left: 0},
+ // because it is its only offset parent
+ if ( jQuery.css( elem, "position" ) === "fixed" ) {
+
+ // Assume getBoundingClientRect is there when computed position is fixed
+ offset = elem.getBoundingClientRect();
+
+ } else {
+
+ // Get *real* offsetParent
+ offsetParent = this.offsetParent();
+
+ // Get correct offsets
+ offset = this.offset();
+ if ( !jQuery.nodeName( offsetParent[ 0 ], "html" ) ) {
+ parentOffset = offsetParent.offset();
+ }
+
+ // Add offsetParent borders
+ parentOffset = {
+ top: parentOffset.top + jQuery.css( offsetParent[ 0 ], "borderTopWidth", true ),
+ left: parentOffset.left + jQuery.css( offsetParent[ 0 ], "borderLeftWidth", true )
+ };
+ }
+
+ // Subtract parent offsets and element margins
+ return {
+ top: offset.top - parentOffset.top - jQuery.css( elem, "marginTop", true ),
+ left: offset.left - parentOffset.left - jQuery.css( elem, "marginLeft", true )
+ };
+ },
+
+ // This method will return documentElement in the following cases:
+ // 1) For the element inside the iframe without offsetParent, this method will return
+ // documentElement of the parent window
+ // 2) For the hidden or detached element
+ // 3) For body or html element, i.e. in case of the html node - it will return itself
+ //
+ // but those exceptions were never presented as a real life use-cases
+ // and might be considered as more preferable results.
+ //
+ // This logic, however, is not guaranteed and can change at any point in the future
+ offsetParent: function() {
+ return this.map( function() {
+ var offsetParent = this.offsetParent;
+
+ while ( offsetParent && jQuery.css( offsetParent, "position" ) === "static" ) {
+ offsetParent = offsetParent.offsetParent;
+ }
+
+ return offsetParent || documentElement;
+ } );
+ }
+} );
+
+// Create scrollLeft and scrollTop methods
+jQuery.each( { scrollLeft: "pageXOffset", scrollTop: "pageYOffset" }, function( method, prop ) {
+ var top = "pageYOffset" === prop;
+
+ jQuery.fn[ method ] = function( val ) {
+ return access( this, function( elem, method, val ) {
+ var win = getWindow( elem );
+
+ if ( val === undefined ) {
+ return win ? win[ prop ] : elem[ method ];
+ }
+
+ if ( win ) {
+ win.scrollTo(
+ !top ? val : win.pageXOffset,
+ top ? val : win.pageYOffset
+ );
+
+ } else {
+ elem[ method ] = val;
+ }
+ }, method, val, arguments.length );
+ };
+} );
+
+// Support: Safari <=7 - 9.1, Chrome <=37 - 49
+// Add the top/left cssHooks using jQuery.fn.position
+// Webkit bug: https://bugs.webkit.org/show_bug.cgi?id=29084
+// Blink bug: https://bugs.chromium.org/p/chromium/issues/detail?id=589347
+// getComputedStyle returns percent when specified for top/left/bottom/right;
+// rather than make the css module depend on the offset module, just check for it here
+jQuery.each( [ "top", "left" ], function( i, prop ) {
+ jQuery.cssHooks[ prop ] = addGetHookIf( support.pixelPosition,
+ function( elem, computed ) {
+ if ( computed ) {
+ computed = curCSS( elem, prop );
+
+ // If curCSS returns percentage, fallback to offset
+ return rnumnonpx.test( computed ) ?
+ jQuery( elem ).position()[ prop ] + "px" :
+ computed;
+ }
+ }
+ );
+} );
+
+
+// Create innerHeight, innerWidth, height, width, outerHeight and outerWidth methods
+jQuery.each( { Height: "height", Width: "width" }, function( name, type ) {
+ jQuery.each( { padding: "inner" + name, content: type, "": "outer" + name },
+ function( defaultExtra, funcName ) {
+
+ // Margin is only for outerHeight, outerWidth
+ jQuery.fn[ funcName ] = function( margin, value ) {
+ var chainable = arguments.length && ( defaultExtra || typeof margin !== "boolean" ),
+ extra = defaultExtra || ( margin === true || value === true ? "margin" : "border" );
+
+ return access( this, function( elem, type, value ) {
+ var doc;
+
+ if ( jQuery.isWindow( elem ) ) {
+
+ // $( window ).outerWidth/Height return w/h including scrollbars (gh-1729)
+ return funcName.indexOf( "outer" ) === 0 ?
+ elem[ "inner" + name ] :
+ elem.document.documentElement[ "client" + name ];
+ }
+
+ // Get document width or height
+ if ( elem.nodeType === 9 ) {
+ doc = elem.documentElement;
+
+ // Either scroll[Width/Height] or offset[Width/Height] or client[Width/Height],
+ // whichever is greatest
+ return Math.max(
+ elem.body[ "scroll" + name ], doc[ "scroll" + name ],
+ elem.body[ "offset" + name ], doc[ "offset" + name ],
+ doc[ "client" + name ]
+ );
+ }
+
+ return value === undefined ?
+
+ // Get width or height on the element, requesting but not forcing parseFloat
+ jQuery.css( elem, type, extra ) :
+
+ // Set width or height on the element
+ jQuery.style( elem, type, value, extra );
+ }, type, chainable ? margin : undefined, chainable );
+ };
+ } );
+} );
+
+
+// Register as a named AMD module, since jQuery can be concatenated with other
+// files that may use define, but not via a proper concatenation script that
+// understands anonymous AMD modules. A named AMD is safest and most robust
+// way to register. Lowercase jquery is used because AMD module names are
+// derived from file names, and jQuery is normally delivered in a lowercase
+// file name. Do this after creating the global so that if an AMD module wants
+// to call noConflict to hide this version of jQuery, it will work.
+
+// Note that for maximum portability, libraries that are not jQuery should
+// declare themselves as anonymous modules, and avoid setting a global if an
+// AMD loader is present. jQuery is a special case. For more information, see
+// https://github.com/jrburke/requirejs/wiki/Updating-existing-libraries#wiki-anon
+
+if ( typeof define === "function" && define.amd ) {
+ define( "jquery", [], function() {
+ return jQuery;
+ } );
+}
+
+
+
+
+var
+
+ // Map over jQuery in case of overwrite
+ _jQuery = window.jQuery,
+
+ // Map over the $ in case of overwrite
+ _$ = window.$;
+
+jQuery.noConflict = function( deep ) {
+ if ( window.$ === jQuery ) {
+ window.$ = _$;
+ }
+
+ if ( deep && window.jQuery === jQuery ) {
+ window.jQuery = _jQuery;
+ }
+
+ return jQuery;
+};
+
+// Expose jQuery and $ identifiers, even in AMD
+// (#7102#comment:10, https://github.com/jquery/jquery/pull/557)
+// and CommonJS for browser emulators (#13566)
+if ( !noGlobal ) {
+ window.jQuery = window.$ = jQuery;
+}
+
+
+
+
+
+return jQuery;
+} );
--- /dev/null
+/*! jQuery v3.1.1 -ajax,-ajax/jsonp,-ajax/load,-ajax/parseXML,-ajax/script,-ajax/var/location,-ajax/var/nonce,-ajax/var/rquery,-ajax/xhr,-manipulation/_evalUrl,-event/ajax,-effects,-effects/animatedSelector,-effects/Tween,-deprecated | (c) jQuery Foundation | jquery.org/license */
+!function(a,b){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=a.document?b(a,!0):function(a){if(!a.document)throw new Error("jQuery requires a window with a document");return b(a)}:b(a)}("undefined"!=typeof window?window:this,function(a,b){"use strict";var c=[],d=a.document,e=Object.getPrototypeOf,f=c.slice,g=c.concat,h=c.push,i=c.indexOf,j={},k=j.toString,l=j.hasOwnProperty,m=l.toString,n=m.call(Object),o={};function p(a,b){b=b||d;var c=b.createElement("script");c.text=a,b.head.appendChild(c).parentNode.removeChild(c)}var q="3.1.1 -ajax,-ajax/jsonp,-ajax/load,-ajax/parseXML,-ajax/script,-ajax/var/location,-ajax/var/nonce,-ajax/var/rquery,-ajax/xhr,-manipulation/_evalUrl,-event/ajax,-effects,-effects/animatedSelector,-effects/Tween,-deprecated",r=function(a,b){return new r.fn.init(a,b)},s=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,t=/^-ms-/,u=/-([a-z])/g,v=function(a,b){return b.toUpperCase()};r.fn=r.prototype={jquery:q,constructor:r,length:0,toArray:function(){return f.call(this)},get:function(a){return null==a?f.call(this):a<0?this[a+this.length]:this[a]},pushStack:function(a){var b=r.merge(this.constructor(),a);return b.prevObject=this,b},each:function(a){return r.each(this,a)},map:function(a){return this.pushStack(r.map(this,function(b,c){return a.call(b,c,b)}))},slice:function(){return this.pushStack(f.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(a){var b=this.length,c=+a+(a<0?b:0);return this.pushStack(c>=0&&c<b?[this[c]]:[])},end:function(){return this.prevObject||this.constructor()},push:h,sort:c.sort,splice:c.splice},r.extend=r.fn.extend=function(){var a,b,c,d,e,f,g=arguments[0]||{},h=1,i=arguments.length,j=!1;for("boolean"==typeof g&&(j=g,g=arguments[h]||{},h++),"object"==typeof g||r.isFunction(g)||(g={}),h===i&&(g=this,h--);h<i;h++)if(null!=(a=arguments[h]))for(b in a)c=g[b],d=a[b],g!==d&&(j&&d&&(r.isPlainObject(d)||(e=r.isArray(d)))?(e?(e=!1,f=c&&r.isArray(c)?c:[]):f=c&&r.isPlainObject(c)?c:{},g[b]=r.extend(j,f,d)):void 0!==d&&(g[b]=d));return g},r.extend({expando:"jQuery"+(q+Math.random()).replace(/\D/g,""),isReady:!0,error:function(a){throw new Error(a)},noop:function(){},isFunction:function(a){return"function"===r.type(a)},isArray:Array.isArray,isWindow:function(a){return null!=a&&a===a.window},isNumeric:function(a){var b=r.type(a);return("number"===b||"string"===b)&&!isNaN(a-parseFloat(a))},isPlainObject:function(a){var b,c;return!(!a||"[object Object]"!==k.call(a))&&(!(b=e(a))||(c=l.call(b,"constructor")&&b.constructor,"function"==typeof c&&m.call(c)===n))},isEmptyObject:function(a){var b;for(b in a)return!1;return!0},type:function(a){return null==a?a+"":"object"==typeof a||"function"==typeof a?j[k.call(a)]||"object":typeof a},globalEval:function(a){p(a)},camelCase:function(a){return a.replace(t,"ms-").replace(u,v)},nodeName:function(a,b){return a.nodeName&&a.nodeName.toLowerCase()===b.toLowerCase()},each:function(a,b){var c,d=0;if(w(a)){for(c=a.length;d<c;d++)if(b.call(a[d],d,a[d])===!1)break}else for(d in a)if(b.call(a[d],d,a[d])===!1)break;return a},trim:function(a){return null==a?"":(a+"").replace(s,"")},makeArray:function(a,b){var c=b||[];return null!=a&&(w(Object(a))?r.merge(c,"string"==typeof a?[a]:a):h.call(c,a)),c},inArray:function(a,b,c){return null==b?-1:i.call(b,a,c)},merge:function(a,b){for(var c=+b.length,d=0,e=a.length;d<c;d++)a[e++]=b[d];return a.length=e,a},grep:function(a,b,c){for(var d,e=[],f=0,g=a.length,h=!c;f<g;f++)d=!b(a[f],f),d!==h&&e.push(a[f]);return e},map:function(a,b,c){var d,e,f=0,h=[];if(w(a))for(d=a.length;f<d;f++)e=b(a[f],f,c),null!=e&&h.push(e);else for(f in a)e=b(a[f],f,c),null!=e&&h.push(e);return g.apply([],h)},guid:1,proxy:function(a,b){var c,d,e;if("string"==typeof b&&(c=a[b],b=a,a=c),r.isFunction(a))return d=f.call(arguments,2),e=function(){return a.apply(b||this,d.concat(f.call(arguments)))},e.guid=a.guid=a.guid||r.guid++,e},now:Date.now,support:o}),"function"==typeof Symbol&&(r.fn[Symbol.iterator]=c[Symbol.iterator]),r.each("Boolean Number String Function Array Date RegExp Object Error Symbol".split(" "),function(a,b){j["[object "+b+"]"]=b.toLowerCase()});function w(a){var b=!!a&&"length"in a&&a.length,c=r.type(a);return"function"!==c&&!r.isWindow(a)&&("array"===c||0===b||"number"==typeof b&&b>0&&b-1 in a)}var x=function(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u="sizzle"+1*new Date,v=a.document,w=0,x=0,y=ha(),z=ha(),A=ha(),B=function(a,b){return a===b&&(l=!0),0},C={}.hasOwnProperty,D=[],E=D.pop,F=D.push,G=D.push,H=D.slice,I=function(a,b){for(var c=0,d=a.length;c<d;c++)if(a[c]===b)return c;return-1},J="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",K="[\\x20\\t\\r\\n\\f]",L="(?:\\\\.|[\\w-]|[^\0-\\xa0])+",M="\\["+K+"*("+L+")(?:"+K+"*([*^$|!~]?=)"+K+"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+L+"))|)"+K+"*\\]",N=":("+L+")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|"+M+")*)|.*)\\)|)",O=new RegExp(K+"+","g"),P=new RegExp("^"+K+"+|((?:^|[^\\\\])(?:\\\\.)*)"+K+"+$","g"),Q=new RegExp("^"+K+"*,"+K+"*"),R=new RegExp("^"+K+"*([>+~]|"+K+")"+K+"*"),S=new RegExp("="+K+"*([^\\]'\"]*?)"+K+"*\\]","g"),T=new RegExp(N),U=new RegExp("^"+L+"$"),V={ID:new RegExp("^#("+L+")"),CLASS:new RegExp("^\\.("+L+")"),TAG:new RegExp("^("+L+"|[*])"),ATTR:new RegExp("^"+M),PSEUDO:new RegExp("^"+N),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+K+"*(even|odd|(([+-]|)(\\d*)n|)"+K+"*(?:([+-]|)"+K+"*(\\d+)|))"+K+"*\\)|)","i"),bool:new RegExp("^(?:"+J+")$","i"),needsContext:new RegExp("^"+K+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+K+"*((?:-\\d)?\\d*)"+K+"*\\)|)(?=[^-]|$)","i")},W=/^(?:input|select|textarea|button)$/i,X=/^h\d$/i,Y=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,$=/[+~]/,_=new RegExp("\\\\([\\da-f]{1,6}"+K+"?|("+K+")|.)","ig"),aa=function(a,b,c){var d="0x"+b-65536;return d!==d||c?b:d<0?String.fromCharCode(d+65536):String.fromCharCode(d>>10|55296,1023&d|56320)},ba=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ca=function(a,b){return b?"\0"===a?"\ufffd":a.slice(0,-1)+"\\"+a.charCodeAt(a.length-1).toString(16)+" ":"\\"+a},da=function(){m()},ea=ta(function(a){return a.disabled===!0&&("form"in a||"label"in a)},{dir:"parentNode",next:"legend"});try{G.apply(D=H.call(v.childNodes),v.childNodes),D[v.childNodes.length].nodeType}catch(fa){G={apply:D.length?function(a,b){F.apply(a,H.call(b))}:function(a,b){var c=a.length,d=0;while(a[c++]=b[d++]);a.length=c-1}}}function ga(a,b,d,e){var f,h,j,k,l,o,r,s=b&&b.ownerDocument,w=b?b.nodeType:9;if(d=d||[],"string"!=typeof a||!a||1!==w&&9!==w&&11!==w)return d;if(!e&&((b?b.ownerDocument||b:v)!==n&&m(b),b=b||n,p)){if(11!==w&&(l=Z.exec(a)))if(f=l[1]){if(9===w){if(!(j=b.getElementById(f)))return d;if(j.id===f)return d.push(j),d}else if(s&&(j=s.getElementById(f))&&t(b,j)&&j.id===f)return d.push(j),d}else{if(l[2])return G.apply(d,b.getElementsByTagName(a)),d;if((f=l[3])&&c.getElementsByClassName&&b.getElementsByClassName)return G.apply(d,b.getElementsByClassName(f)),d}if(c.qsa&&!A[a+" "]&&(!q||!q.test(a))){if(1!==w)s=b,r=a;else if("object"!==b.nodeName.toLowerCase()){(k=b.getAttribute("id"))?k=k.replace(ba,ca):b.setAttribute("id",k=u),o=g(a),h=o.length;while(h--)o[h]="#"+k+" "+sa(o[h]);r=o.join(","),s=$.test(a)&&qa(b.parentNode)||b}if(r)try{return G.apply(d,s.querySelectorAll(r)),d}catch(x){}finally{k===u&&b.removeAttribute("id")}}}return i(a.replace(P,"$1"),b,d,e)}function ha(){var a=[];function b(c,e){return a.push(c+" ")>d.cacheLength&&delete b[a.shift()],b[c+" "]=e}return b}function ia(a){return a[u]=!0,a}function ja(a){var b=n.createElement("fieldset");try{return!!a(b)}catch(c){return!1}finally{b.parentNode&&b.parentNode.removeChild(b),b=null}}function ka(a,b){var c=a.split("|"),e=c.length;while(e--)d.attrHandle[c[e]]=b}function la(a,b){var c=b&&a,d=c&&1===a.nodeType&&1===b.nodeType&&a.sourceIndex-b.sourceIndex;if(d)return d;if(c)while(c=c.nextSibling)if(c===b)return-1;return a?1:-1}function ma(a){return function(b){var c=b.nodeName.toLowerCase();return"input"===c&&b.type===a}}function na(a){return function(b){var c=b.nodeName.toLowerCase();return("input"===c||"button"===c)&&b.type===a}}function oa(a){return function(b){return"form"in b?b.parentNode&&b.disabled===!1?"label"in b?"label"in b.parentNode?b.parentNode.disabled===a:b.disabled===a:b.isDisabled===a||b.isDisabled!==!a&&ea(b)===a:b.disabled===a:"label"in b&&b.disabled===a}}function pa(a){return ia(function(b){return b=+b,ia(function(c,d){var e,f=a([],c.length,b),g=f.length;while(g--)c[e=f[g]]&&(c[e]=!(d[e]=c[e]))})})}function qa(a){return a&&"undefined"!=typeof a.getElementsByTagName&&a}c=ga.support={},f=ga.isXML=function(a){var b=a&&(a.ownerDocument||a).documentElement;return!!b&&"HTML"!==b.nodeName},m=ga.setDocument=function(a){var b,e,g=a?a.ownerDocument||a:v;return g!==n&&9===g.nodeType&&g.documentElement?(n=g,o=n.documentElement,p=!f(n),v!==n&&(e=n.defaultView)&&e.top!==e&&(e.addEventListener?e.addEventListener("unload",da,!1):e.attachEvent&&e.attachEvent("onunload",da)),c.attributes=ja(function(a){return a.className="i",!a.getAttribute("className")}),c.getElementsByTagName=ja(function(a){return a.appendChild(n.createComment("")),!a.getElementsByTagName("*").length}),c.getElementsByClassName=Y.test(n.getElementsByClassName),c.getById=ja(function(a){return o.appendChild(a).id=u,!n.getElementsByName||!n.getElementsByName(u).length}),c.getById?(d.filter.ID=function(a){var b=a.replace(_,aa);return function(a){return a.getAttribute("id")===b}},d.find.ID=function(a,b){if("undefined"!=typeof b.getElementById&&p){var c=b.getElementById(a);return c?[c]:[]}}):(d.filter.ID=function(a){var b=a.replace(_,aa);return function(a){var c="undefined"!=typeof a.getAttributeNode&&a.getAttributeNode("id");return c&&c.value===b}},d.find.ID=function(a,b){if("undefined"!=typeof b.getElementById&&p){var c,d,e,f=b.getElementById(a);if(f){if(c=f.getAttributeNode("id"),c&&c.value===a)return[f];e=b.getElementsByName(a),d=0;while(f=e[d++])if(c=f.getAttributeNode("id"),c&&c.value===a)return[f]}return[]}}),d.find.TAG=c.getElementsByTagName?function(a,b){return"undefined"!=typeof b.getElementsByTagName?b.getElementsByTagName(a):c.qsa?b.querySelectorAll(a):void 0}:function(a,b){var c,d=[],e=0,f=b.getElementsByTagName(a);if("*"===a){while(c=f[e++])1===c.nodeType&&d.push(c);return d}return f},d.find.CLASS=c.getElementsByClassName&&function(a,b){if("undefined"!=typeof b.getElementsByClassName&&p)return b.getElementsByClassName(a)},r=[],q=[],(c.qsa=Y.test(n.querySelectorAll))&&(ja(function(a){o.appendChild(a).innerHTML="<a id='"+u+"'></a><select id='"+u+"-\r\\' msallowcapture=''><option selected=''></option></select>",a.querySelectorAll("[msallowcapture^='']").length&&q.push("[*^$]="+K+"*(?:''|\"\")"),a.querySelectorAll("[selected]").length||q.push("\\["+K+"*(?:value|"+J+")"),a.querySelectorAll("[id~="+u+"-]").length||q.push("~="),a.querySelectorAll(":checked").length||q.push(":checked"),a.querySelectorAll("a#"+u+"+*").length||q.push(".#.+[+~]")}),ja(function(a){a.innerHTML="<a href='' disabled='disabled'></a><select disabled='disabled'><option/></select>";var b=n.createElement("input");b.setAttribute("type","hidden"),a.appendChild(b).setAttribute("name","D"),a.querySelectorAll("[name=d]").length&&q.push("name"+K+"*[*^$|!~]?="),2!==a.querySelectorAll(":enabled").length&&q.push(":enabled",":disabled"),o.appendChild(a).disabled=!0,2!==a.querySelectorAll(":disabled").length&&q.push(":enabled",":disabled"),a.querySelectorAll("*,:x"),q.push(",.*:")})),(c.matchesSelector=Y.test(s=o.matches||o.webkitMatchesSelector||o.mozMatchesSelector||o.oMatchesSelector||o.msMatchesSelector))&&ja(function(a){c.disconnectedMatch=s.call(a,"*"),s.call(a,"[s!='']:x"),r.push("!=",N)}),q=q.length&&new RegExp(q.join("|")),r=r.length&&new RegExp(r.join("|")),b=Y.test(o.compareDocumentPosition),t=b||Y.test(o.contains)?function(a,b){var c=9===a.nodeType?a.documentElement:a,d=b&&b.parentNode;return a===d||!(!d||1!==d.nodeType||!(c.contains?c.contains(d):a.compareDocumentPosition&&16&a.compareDocumentPosition(d)))}:function(a,b){if(b)while(b=b.parentNode)if(b===a)return!0;return!1},B=b?function(a,b){if(a===b)return l=!0,0;var d=!a.compareDocumentPosition-!b.compareDocumentPosition;return d?d:(d=(a.ownerDocument||a)===(b.ownerDocument||b)?a.compareDocumentPosition(b):1,1&d||!c.sortDetached&&b.compareDocumentPosition(a)===d?a===n||a.ownerDocument===v&&t(v,a)?-1:b===n||b.ownerDocument===v&&t(v,b)?1:k?I(k,a)-I(k,b):0:4&d?-1:1)}:function(a,b){if(a===b)return l=!0,0;var c,d=0,e=a.parentNode,f=b.parentNode,g=[a],h=[b];if(!e||!f)return a===n?-1:b===n?1:e?-1:f?1:k?I(k,a)-I(k,b):0;if(e===f)return la(a,b);c=a;while(c=c.parentNode)g.unshift(c);c=b;while(c=c.parentNode)h.unshift(c);while(g[d]===h[d])d++;return d?la(g[d],h[d]):g[d]===v?-1:h[d]===v?1:0},n):n},ga.matches=function(a,b){return ga(a,null,null,b)},ga.matchesSelector=function(a,b){if((a.ownerDocument||a)!==n&&m(a),b=b.replace(S,"='$1']"),c.matchesSelector&&p&&!A[b+" "]&&(!r||!r.test(b))&&(!q||!q.test(b)))try{var d=s.call(a,b);if(d||c.disconnectedMatch||a.document&&11!==a.document.nodeType)return d}catch(e){}return ga(b,n,null,[a]).length>0},ga.contains=function(a,b){return(a.ownerDocument||a)!==n&&m(a),t(a,b)},ga.attr=function(a,b){(a.ownerDocument||a)!==n&&m(a);var e=d.attrHandle[b.toLowerCase()],f=e&&C.call(d.attrHandle,b.toLowerCase())?e(a,b,!p):void 0;return void 0!==f?f:c.attributes||!p?a.getAttribute(b):(f=a.getAttributeNode(b))&&f.specified?f.value:null},ga.escape=function(a){return(a+"").replace(ba,ca)},ga.error=function(a){throw new Error("Syntax error, unrecognized expression: "+a)},ga.uniqueSort=function(a){var b,d=[],e=0,f=0;if(l=!c.detectDuplicates,k=!c.sortStable&&a.slice(0),a.sort(B),l){while(b=a[f++])b===a[f]&&(e=d.push(f));while(e--)a.splice(d[e],1)}return k=null,a},e=ga.getText=function(a){var b,c="",d=0,f=a.nodeType;if(f){if(1===f||9===f||11===f){if("string"==typeof a.textContent)return a.textContent;for(a=a.firstChild;a;a=a.nextSibling)c+=e(a)}else if(3===f||4===f)return a.nodeValue}else while(b=a[d++])c+=e(b);return c},d=ga.selectors={cacheLength:50,createPseudo:ia,match:V,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(a){return a[1]=a[1].replace(_,aa),a[3]=(a[3]||a[4]||a[5]||"").replace(_,aa),"~="===a[2]&&(a[3]=" "+a[3]+" "),a.slice(0,4)},CHILD:function(a){return a[1]=a[1].toLowerCase(),"nth"===a[1].slice(0,3)?(a[3]||ga.error(a[0]),a[4]=+(a[4]?a[5]+(a[6]||1):2*("even"===a[3]||"odd"===a[3])),a[5]=+(a[7]+a[8]||"odd"===a[3])):a[3]&&ga.error(a[0]),a},PSEUDO:function(a){var b,c=!a[6]&&a[2];return V.CHILD.test(a[0])?null:(a[3]?a[2]=a[4]||a[5]||"":c&&T.test(c)&&(b=g(c,!0))&&(b=c.indexOf(")",c.length-b)-c.length)&&(a[0]=a[0].slice(0,b),a[2]=c.slice(0,b)),a.slice(0,3))}},filter:{TAG:function(a){var b=a.replace(_,aa).toLowerCase();return"*"===a?function(){return!0}:function(a){return a.nodeName&&a.nodeName.toLowerCase()===b}},CLASS:function(a){var b=y[a+" "];return b||(b=new RegExp("(^|"+K+")"+a+"("+K+"|$)"))&&y(a,function(a){return b.test("string"==typeof a.className&&a.className||"undefined"!=typeof a.getAttribute&&a.getAttribute("class")||"")})},ATTR:function(a,b,c){return function(d){var e=ga.attr(d,a);return null==e?"!="===b:!b||(e+="","="===b?e===c:"!="===b?e!==c:"^="===b?c&&0===e.indexOf(c):"*="===b?c&&e.indexOf(c)>-1:"$="===b?c&&e.slice(-c.length)===c:"~="===b?(" "+e.replace(O," ")+" ").indexOf(c)>-1:"|="===b&&(e===c||e.slice(0,c.length+1)===c+"-"))}},CHILD:function(a,b,c,d,e){var f="nth"!==a.slice(0,3),g="last"!==a.slice(-4),h="of-type"===b;return 1===d&&0===e?function(a){return!!a.parentNode}:function(b,c,i){var j,k,l,m,n,o,p=f!==g?"nextSibling":"previousSibling",q=b.parentNode,r=h&&b.nodeName.toLowerCase(),s=!i&&!h,t=!1;if(q){if(f){while(p){m=b;while(m=m[p])if(h?m.nodeName.toLowerCase()===r:1===m.nodeType)return!1;o=p="only"===a&&!o&&"nextSibling"}return!0}if(o=[g?q.firstChild:q.lastChild],g&&s){m=q,l=m[u]||(m[u]={}),k=l[m.uniqueID]||(l[m.uniqueID]={}),j=k[a]||[],n=j[0]===w&&j[1],t=n&&j[2],m=n&&q.childNodes[n];while(m=++n&&m&&m[p]||(t=n=0)||o.pop())if(1===m.nodeType&&++t&&m===b){k[a]=[w,n,t];break}}else if(s&&(m=b,l=m[u]||(m[u]={}),k=l[m.uniqueID]||(l[m.uniqueID]={}),j=k[a]||[],n=j[0]===w&&j[1],t=n),t===!1)while(m=++n&&m&&m[p]||(t=n=0)||o.pop())if((h?m.nodeName.toLowerCase()===r:1===m.nodeType)&&++t&&(s&&(l=m[u]||(m[u]={}),k=l[m.uniqueID]||(l[m.uniqueID]={}),k[a]=[w,t]),m===b))break;return t-=e,t===d||t%d===0&&t/d>=0}}},PSEUDO:function(a,b){var c,e=d.pseudos[a]||d.setFilters[a.toLowerCase()]||ga.error("unsupported pseudo: "+a);return e[u]?e(b):e.length>1?(c=[a,a,"",b],d.setFilters.hasOwnProperty(a.toLowerCase())?ia(function(a,c){var d,f=e(a,b),g=f.length;while(g--)d=I(a,f[g]),a[d]=!(c[d]=f[g])}):function(a){return e(a,0,c)}):e}},pseudos:{not:ia(function(a){var b=[],c=[],d=h(a.replace(P,"$1"));return d[u]?ia(function(a,b,c,e){var f,g=d(a,null,e,[]),h=a.length;while(h--)(f=g[h])&&(a[h]=!(b[h]=f))}):function(a,e,f){return b[0]=a,d(b,null,f,c),b[0]=null,!c.pop()}}),has:ia(function(a){return function(b){return ga(a,b).length>0}}),contains:ia(function(a){return a=a.replace(_,aa),function(b){return(b.textContent||b.innerText||e(b)).indexOf(a)>-1}}),lang:ia(function(a){return U.test(a||"")||ga.error("unsupported lang: "+a),a=a.replace(_,aa).toLowerCase(),function(b){var c;do if(c=p?b.lang:b.getAttribute("xml:lang")||b.getAttribute("lang"))return c=c.toLowerCase(),c===a||0===c.indexOf(a+"-");while((b=b.parentNode)&&1===b.nodeType);return!1}}),target:function(b){var c=a.location&&a.location.hash;return c&&c.slice(1)===b.id},root:function(a){return a===o},focus:function(a){return a===n.activeElement&&(!n.hasFocus||n.hasFocus())&&!!(a.type||a.href||~a.tabIndex)},enabled:oa(!1),disabled:oa(!0),checked:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&!!a.checked||"option"===b&&!!a.selected},selected:function(a){return a.parentNode&&a.parentNode.selectedIndex,a.selected===!0},empty:function(a){for(a=a.firstChild;a;a=a.nextSibling)if(a.nodeType<6)return!1;return!0},parent:function(a){return!d.pseudos.empty(a)},header:function(a){return X.test(a.nodeName)},input:function(a){return W.test(a.nodeName)},button:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&"button"===a.type||"button"===b},text:function(a){var b;return"input"===a.nodeName.toLowerCase()&&"text"===a.type&&(null==(b=a.getAttribute("type"))||"text"===b.toLowerCase())},first:pa(function(){return[0]}),last:pa(function(a,b){return[b-1]}),eq:pa(function(a,b,c){return[c<0?c+b:c]}),even:pa(function(a,b){for(var c=0;c<b;c+=2)a.push(c);return a}),odd:pa(function(a,b){for(var c=1;c<b;c+=2)a.push(c);return a}),lt:pa(function(a,b,c){for(var d=c<0?c+b:c;--d>=0;)a.push(d);return a}),gt:pa(function(a,b,c){for(var d=c<0?c+b:c;++d<b;)a.push(d);return a})}},d.pseudos.nth=d.pseudos.eq;for(b in{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})d.pseudos[b]=ma(b);for(b in{submit:!0,reset:!0})d.pseudos[b]=na(b);function ra(){}ra.prototype=d.filters=d.pseudos,d.setFilters=new ra,g=ga.tokenize=function(a,b){var c,e,f,g,h,i,j,k=z[a+" "];if(k)return b?0:k.slice(0);h=a,i=[],j=d.preFilter;while(h){c&&!(e=Q.exec(h))||(e&&(h=h.slice(e[0].length)||h),i.push(f=[])),c=!1,(e=R.exec(h))&&(c=e.shift(),f.push({value:c,type:e[0].replace(P," ")}),h=h.slice(c.length));for(g in d.filter)!(e=V[g].exec(h))||j[g]&&!(e=j[g](e))||(c=e.shift(),f.push({value:c,type:g,matches:e}),h=h.slice(c.length));if(!c)break}return b?h.length:h?ga.error(a):z(a,i).slice(0)};function sa(a){for(var b=0,c=a.length,d="";b<c;b++)d+=a[b].value;return d}function ta(a,b,c){var d=b.dir,e=b.next,f=e||d,g=c&&"parentNode"===f,h=x++;return b.first?function(b,c,e){while(b=b[d])if(1===b.nodeType||g)return a(b,c,e);return!1}:function(b,c,i){var j,k,l,m=[w,h];if(i){while(b=b[d])if((1===b.nodeType||g)&&a(b,c,i))return!0}else while(b=b[d])if(1===b.nodeType||g)if(l=b[u]||(b[u]={}),k=l[b.uniqueID]||(l[b.uniqueID]={}),e&&e===b.nodeName.toLowerCase())b=b[d]||b;else{if((j=k[f])&&j[0]===w&&j[1]===h)return m[2]=j[2];if(k[f]=m,m[2]=a(b,c,i))return!0}return!1}}function ua(a){return a.length>1?function(b,c,d){var e=a.length;while(e--)if(!a[e](b,c,d))return!1;return!0}:a[0]}function va(a,b,c){for(var d=0,e=b.length;d<e;d++)ga(a,b[d],c);return c}function wa(a,b,c,d,e){for(var f,g=[],h=0,i=a.length,j=null!=b;h<i;h++)(f=a[h])&&(c&&!c(f,d,e)||(g.push(f),j&&b.push(h)));return g}function xa(a,b,c,d,e,f){return d&&!d[u]&&(d=xa(d)),e&&!e[u]&&(e=xa(e,f)),ia(function(f,g,h,i){var j,k,l,m=[],n=[],o=g.length,p=f||va(b||"*",h.nodeType?[h]:h,[]),q=!a||!f&&b?p:wa(p,m,a,h,i),r=c?e||(f?a:o||d)?[]:g:q;if(c&&c(q,r,h,i),d){j=wa(r,n),d(j,[],h,i),k=j.length;while(k--)(l=j[k])&&(r[n[k]]=!(q[n[k]]=l))}if(f){if(e||a){if(e){j=[],k=r.length;while(k--)(l=r[k])&&j.push(q[k]=l);e(null,r=[],j,i)}k=r.length;while(k--)(l=r[k])&&(j=e?I(f,l):m[k])>-1&&(f[j]=!(g[j]=l))}}else r=wa(r===g?r.splice(o,r.length):r),e?e(null,g,r,i):G.apply(g,r)})}function ya(a){for(var b,c,e,f=a.length,g=d.relative[a[0].type],h=g||d.relative[" "],i=g?1:0,k=ta(function(a){return a===b},h,!0),l=ta(function(a){return I(b,a)>-1},h,!0),m=[function(a,c,d){var e=!g&&(d||c!==j)||((b=c).nodeType?k(a,c,d):l(a,c,d));return b=null,e}];i<f;i++)if(c=d.relative[a[i].type])m=[ta(ua(m),c)];else{if(c=d.filter[a[i].type].apply(null,a[i].matches),c[u]){for(e=++i;e<f;e++)if(d.relative[a[e].type])break;return xa(i>1&&ua(m),i>1&&sa(a.slice(0,i-1).concat({value:" "===a[i-2].type?"*":""})).replace(P,"$1"),c,i<e&&ya(a.slice(i,e)),e<f&&ya(a=a.slice(e)),e<f&&sa(a))}m.push(c)}return ua(m)}function za(a,b){var c=b.length>0,e=a.length>0,f=function(f,g,h,i,k){var l,o,q,r=0,s="0",t=f&&[],u=[],v=j,x=f||e&&d.find.TAG("*",k),y=w+=null==v?1:Math.random()||.1,z=x.length;for(k&&(j=g===n||g||k);s!==z&&null!=(l=x[s]);s++){if(e&&l){o=0,g||l.ownerDocument===n||(m(l),h=!p);while(q=a[o++])if(q(l,g||n,h)){i.push(l);break}k&&(w=y)}c&&((l=!q&&l)&&r--,f&&t.push(l))}if(r+=s,c&&s!==r){o=0;while(q=b[o++])q(t,u,g,h);if(f){if(r>0)while(s--)t[s]||u[s]||(u[s]=E.call(i));u=wa(u)}G.apply(i,u),k&&!f&&u.length>0&&r+b.length>1&&ga.uniqueSort(i)}return k&&(w=y,j=v),t};return c?ia(f):f}return h=ga.compile=function(a,b){var c,d=[],e=[],f=A[a+" "];if(!f){b||(b=g(a)),c=b.length;while(c--)f=ya(b[c]),f[u]?d.push(f):e.push(f);f=A(a,za(e,d)),f.selector=a}return f},i=ga.select=function(a,b,c,e){var f,i,j,k,l,m="function"==typeof a&&a,n=!e&&g(a=m.selector||a);if(c=c||[],1===n.length){if(i=n[0]=n[0].slice(0),i.length>2&&"ID"===(j=i[0]).type&&9===b.nodeType&&p&&d.relative[i[1].type]){if(b=(d.find.ID(j.matches[0].replace(_,aa),b)||[])[0],!b)return c;m&&(b=b.parentNode),a=a.slice(i.shift().value.length)}f=V.needsContext.test(a)?0:i.length;while(f--){if(j=i[f],d.relative[k=j.type])break;if((l=d.find[k])&&(e=l(j.matches[0].replace(_,aa),$.test(i[0].type)&&qa(b.parentNode)||b))){if(i.splice(f,1),a=e.length&&sa(i),!a)return G.apply(c,e),c;break}}}return(m||h(a,n))(e,b,!p,c,!b||$.test(a)&&qa(b.parentNode)||b),c},c.sortStable=u.split("").sort(B).join("")===u,c.detectDuplicates=!!l,m(),c.sortDetached=ja(function(a){return 1&a.compareDocumentPosition(n.createElement("fieldset"))}),ja(function(a){return a.innerHTML="<a href='#'></a>","#"===a.firstChild.getAttribute("href")})||ka("type|href|height|width",function(a,b,c){if(!c)return a.getAttribute(b,"type"===b.toLowerCase()?1:2)}),c.attributes&&ja(function(a){return a.innerHTML="<input/>",a.firstChild.setAttribute("value",""),""===a.firstChild.getAttribute("value")})||ka("value",function(a,b,c){if(!c&&"input"===a.nodeName.toLowerCase())return a.defaultValue}),ja(function(a){return null==a.getAttribute("disabled")})||ka(J,function(a,b,c){var d;if(!c)return a[b]===!0?b.toLowerCase():(d=a.getAttributeNode(b))&&d.specified?d.value:null}),ga}(a);r.find=x,r.expr=x.selectors,r.expr[":"]=r.expr.pseudos,r.uniqueSort=r.unique=x.uniqueSort,r.text=x.getText,r.isXMLDoc=x.isXML,r.contains=x.contains,r.escapeSelector=x.escape;var y=function(a,b,c){var d=[],e=void 0!==c;while((a=a[b])&&9!==a.nodeType)if(1===a.nodeType){if(e&&r(a).is(c))break;d.push(a)}return d},z=function(a,b){for(var c=[];a;a=a.nextSibling)1===a.nodeType&&a!==b&&c.push(a);return c},A=r.expr.match.needsContext,B=/^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i,C=/^.[^:#\[\.,]*$/;function D(a,b,c){return r.isFunction(b)?r.grep(a,function(a,d){return!!b.call(a,d,a)!==c}):b.nodeType?r.grep(a,function(a){return a===b!==c}):"string"!=typeof b?r.grep(a,function(a){return i.call(b,a)>-1!==c}):C.test(b)?r.filter(b,a,c):(b=r.filter(b,a),r.grep(a,function(a){return i.call(b,a)>-1!==c&&1===a.nodeType}))}r.filter=function(a,b,c){var d=b[0];return c&&(a=":not("+a+")"),1===b.length&&1===d.nodeType?r.find.matchesSelector(d,a)?[d]:[]:r.find.matches(a,r.grep(b,function(a){return 1===a.nodeType}))},r.fn.extend({find:function(a){var b,c,d=this.length,e=this;if("string"!=typeof a)return this.pushStack(r(a).filter(function(){for(b=0;b<d;b++)if(r.contains(e[b],this))return!0}));for(c=this.pushStack([]),b=0;b<d;b++)r.find(a,e[b],c);return d>1?r.uniqueSort(c):c},filter:function(a){return this.pushStack(D(this,a||[],!1))},not:function(a){return this.pushStack(D(this,a||[],!0))},is:function(a){return!!D(this,"string"==typeof a&&A.test(a)?r(a):a||[],!1).length}});var E,F=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/,G=r.fn.init=function(a,b,c){var e,f;if(!a)return this;if(c=c||E,"string"==typeof a){if(e="<"===a[0]&&">"===a[a.length-1]&&a.length>=3?[null,a,null]:F.exec(a),!e||!e[1]&&b)return!b||b.jquery?(b||c).find(a):this.constructor(b).find(a);if(e[1]){if(b=b instanceof r?b[0]:b,r.merge(this,r.parseHTML(e[1],b&&b.nodeType?b.ownerDocument||b:d,!0)),B.test(e[1])&&r.isPlainObject(b))for(e in b)r.isFunction(this[e])?this[e](b[e]):this.attr(e,b[e]);return this}return f=d.getElementById(e[2]),f&&(this[0]=f,this.length=1),this}return a.nodeType?(this[0]=a,this.length=1,this):r.isFunction(a)?void 0!==c.ready?c.ready(a):a(r):r.makeArray(a,this)};G.prototype=r.fn,E=r(d);var H=/^(?:parents|prev(?:Until|All))/,I={children:!0,contents:!0,next:!0,prev:!0};r.fn.extend({has:function(a){var b=r(a,this),c=b.length;return this.filter(function(){for(var a=0;a<c;a++)if(r.contains(this,b[a]))return!0})},closest:function(a,b){var c,d=0,e=this.length,f=[],g="string"!=typeof a&&r(a);if(!A.test(a))for(;d<e;d++)for(c=this[d];c&&c!==b;c=c.parentNode)if(c.nodeType<11&&(g?g.index(c)>-1:1===c.nodeType&&r.find.matchesSelector(c,a))){f.push(c);break}return this.pushStack(f.length>1?r.uniqueSort(f):f)},index:function(a){return a?"string"==typeof a?i.call(r(a),this[0]):i.call(this,a.jquery?a[0]:a):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(a,b){return this.pushStack(r.uniqueSort(r.merge(this.get(),r(a,b))))},addBack:function(a){return this.add(null==a?this.prevObject:this.prevObject.filter(a))}});function J(a,b){while((a=a[b])&&1!==a.nodeType);return a}r.each({parent:function(a){var b=a.parentNode;return b&&11!==b.nodeType?b:null},parents:function(a){return y(a,"parentNode")},parentsUntil:function(a,b,c){return y(a,"parentNode",c)},next:function(a){return J(a,"nextSibling")},prev:function(a){return J(a,"previousSibling")},nextAll:function(a){return y(a,"nextSibling")},prevAll:function(a){return y(a,"previousSibling")},nextUntil:function(a,b,c){return y(a,"nextSibling",c)},prevUntil:function(a,b,c){return y(a,"previousSibling",c)},siblings:function(a){return z((a.parentNode||{}).firstChild,a)},children:function(a){return z(a.firstChild)},contents:function(a){return a.contentDocument||r.merge([],a.childNodes)}},function(a,b){r.fn[a]=function(c,d){var e=r.map(this,b,c);return"Until"!==a.slice(-5)&&(d=c),d&&"string"==typeof d&&(e=r.filter(d,e)),this.length>1&&(I[a]||r.uniqueSort(e),H.test(a)&&e.reverse()),this.pushStack(e)}});var K=/[^\x20\t\r\n\f]+/g;function L(a){var b={};return r.each(a.match(K)||[],function(a,c){b[c]=!0}),b}r.Callbacks=function(a){a="string"==typeof a?L(a):r.extend({},a);var b,c,d,e,f=[],g=[],h=-1,i=function(){for(e=a.once,d=b=!0;g.length;h=-1){c=g.shift();while(++h<f.length)f[h].apply(c[0],c[1])===!1&&a.stopOnFalse&&(h=f.length,c=!1)}a.memory||(c=!1),b=!1,e&&(f=c?[]:"")},j={add:function(){return f&&(c&&!b&&(h=f.length-1,g.push(c)),function d(b){r.each(b,function(b,c){r.isFunction(c)?a.unique&&j.has(c)||f.push(c):c&&c.length&&"string"!==r.type(c)&&d(c)})}(arguments),c&&!b&&i()),this},remove:function(){return r.each(arguments,function(a,b){var c;while((c=r.inArray(b,f,c))>-1)f.splice(c,1),c<=h&&h--}),this},has:function(a){return a?r.inArray(a,f)>-1:f.length>0},empty:function(){return f&&(f=[]),this},disable:function(){return e=g=[],f=c="",this},disabled:function(){return!f},lock:function(){return e=g=[],c||b||(f=c=""),this},locked:function(){return!!e},fireWith:function(a,c){return e||(c=c||[],c=[a,c.slice?c.slice():c],g.push(c),b||i()),this},fire:function(){return j.fireWith(this,arguments),this},fired:function(){return!!d}};return j};function M(a){return a}function N(a){throw a}function O(a,b,c){var d;try{a&&r.isFunction(d=a.promise)?d.call(a).done(b).fail(c):a&&r.isFunction(d=a.then)?d.call(a,b,c):b.call(void 0,a)}catch(a){c.call(void 0,a)}}r.extend({Deferred:function(b){var c=[["notify","progress",r.Callbacks("memory"),r.Callbacks("memory"),2],["resolve","done",r.Callbacks("once memory"),r.Callbacks("once memory"),0,"resolved"],["reject","fail",r.Callbacks("once memory"),r.Callbacks("once memory"),1,"rejected"]],d="pending",e={state:function(){return d},always:function(){return f.done(arguments).fail(arguments),this},"catch":function(a){return e.then(null,a)},pipe:function(){var a=arguments;return r.Deferred(function(b){r.each(c,function(c,d){var e=r.isFunction(a[d[4]])&&a[d[4]];f[d[1]](function(){var a=e&&e.apply(this,arguments);a&&r.isFunction(a.promise)?a.promise().progress(b.notify).done(b.resolve).fail(b.reject):b[d[0]+"With"](this,e?[a]:arguments)})}),a=null}).promise()},then:function(b,d,e){var f=0;function g(b,c,d,e){return function(){var h=this,i=arguments,j=function(){var a,j;if(!(b<f)){if(a=d.apply(h,i),a===c.promise())throw new TypeError("Thenable self-resolution");j=a&&("object"==typeof a||"function"==typeof a)&&a.then,r.isFunction(j)?e?j.call(a,g(f,c,M,e),g(f,c,N,e)):(f++,j.call(a,g(f,c,M,e),g(f,c,N,e),g(f,c,M,c.notifyWith))):(d!==M&&(h=void 0,i=[a]),(e||c.resolveWith)(h,i))}},k=e?j:function(){try{j()}catch(a){r.Deferred.exceptionHook&&r.Deferred.exceptionHook(a,k.stackTrace),b+1>=f&&(d!==N&&(h=void 0,i=[a]),c.rejectWith(h,i))}};b?k():(r.Deferred.getStackHook&&(k.stackTrace=r.Deferred.getStackHook()),a.setTimeout(k))}}return r.Deferred(function(a){c[0][3].add(g(0,a,r.isFunction(e)?e:M,a.notifyWith)),c[1][3].add(g(0,a,r.isFunction(b)?b:M)),c[2][3].add(g(0,a,r.isFunction(d)?d:N))}).promise()},promise:function(a){return null!=a?r.extend(a,e):e}},f={};return r.each(c,function(a,b){var g=b[2],h=b[5];e[b[1]]=g.add,h&&g.add(function(){d=h},c[3-a][2].disable,c[0][2].lock),g.add(b[3].fire),f[b[0]]=function(){return f[b[0]+"With"](this===f?void 0:this,arguments),this},f[b[0]+"With"]=g.fireWith}),e.promise(f),b&&b.call(f,f),f},when:function(a){var b=arguments.length,c=b,d=Array(c),e=f.call(arguments),g=r.Deferred(),h=function(a){return function(c){d[a]=this,e[a]=arguments.length>1?f.call(arguments):c,--b||g.resolveWith(d,e)}};if(b<=1&&(O(a,g.done(h(c)).resolve,g.reject),"pending"===g.state()||r.isFunction(e[c]&&e[c].then)))return g.then();while(c--)O(e[c],h(c),g.reject);return g.promise()}});var P=/^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;r.Deferred.exceptionHook=function(b,c){a.console&&a.console.warn&&b&&P.test(b.name)&&a.console.warn("jQuery.Deferred exception: "+b.message,b.stack,c)},r.readyException=function(b){a.setTimeout(function(){throw b})};var Q=r.Deferred();r.fn.ready=function(a){return Q.then(a)["catch"](function(a){r.readyException(a)}),this},r.extend({isReady:!1,readyWait:1,
+holdReady:function(a){a?r.readyWait++:r.ready(!0)},ready:function(a){(a===!0?--r.readyWait:r.isReady)||(r.isReady=!0,a!==!0&&--r.readyWait>0||Q.resolveWith(d,[r]))}}),r.ready.then=Q.then;function R(){d.removeEventListener("DOMContentLoaded",R),a.removeEventListener("load",R),r.ready()}"complete"===d.readyState||"loading"!==d.readyState&&!d.documentElement.doScroll?a.setTimeout(r.ready):(d.addEventListener("DOMContentLoaded",R),a.addEventListener("load",R));var S=function(a,b,c,d,e,f,g){var h=0,i=a.length,j=null==c;if("object"===r.type(c)){e=!0;for(h in c)S(a,b,h,c[h],!0,f,g)}else if(void 0!==d&&(e=!0,r.isFunction(d)||(g=!0),j&&(g?(b.call(a,d),b=null):(j=b,b=function(a,b,c){return j.call(r(a),c)})),b))for(;h<i;h++)b(a[h],c,g?d:d.call(a[h],h,b(a[h],c)));return e?a:j?b.call(a):i?b(a[0],c):f},T=function(a){return 1===a.nodeType||9===a.nodeType||!+a.nodeType};function U(){this.expando=r.expando+U.uid++}U.uid=1,U.prototype={cache:function(a){var b=a[this.expando];return b||(b={},T(a)&&(a.nodeType?a[this.expando]=b:Object.defineProperty(a,this.expando,{value:b,configurable:!0}))),b},set:function(a,b,c){var d,e=this.cache(a);if("string"==typeof b)e[r.camelCase(b)]=c;else for(d in b)e[r.camelCase(d)]=b[d];return e},get:function(a,b){return void 0===b?this.cache(a):a[this.expando]&&a[this.expando][r.camelCase(b)]},access:function(a,b,c){return void 0===b||b&&"string"==typeof b&&void 0===c?this.get(a,b):(this.set(a,b,c),void 0!==c?c:b)},remove:function(a,b){var c,d=a[this.expando];if(void 0!==d){if(void 0!==b){r.isArray(b)?b=b.map(r.camelCase):(b=r.camelCase(b),b=b in d?[b]:b.match(K)||[]),c=b.length;while(c--)delete d[b[c]]}(void 0===b||r.isEmptyObject(d))&&(a.nodeType?a[this.expando]=void 0:delete a[this.expando])}},hasData:function(a){var b=a[this.expando];return void 0!==b&&!r.isEmptyObject(b)}};var V=new U,W=new U,X=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,Y=/[A-Z]/g;function Z(a){return"true"===a||"false"!==a&&("null"===a?null:a===+a+""?+a:X.test(a)?JSON.parse(a):a)}function $(a,b,c){var d;if(void 0===c&&1===a.nodeType)if(d="data-"+b.replace(Y,"-$&").toLowerCase(),c=a.getAttribute(d),"string"==typeof c){try{c=Z(c)}catch(e){}W.set(a,b,c)}else c=void 0;return c}r.extend({hasData:function(a){return W.hasData(a)||V.hasData(a)},data:function(a,b,c){return W.access(a,b,c)},removeData:function(a,b){W.remove(a,b)},_data:function(a,b,c){return V.access(a,b,c)},_removeData:function(a,b){V.remove(a,b)}}),r.fn.extend({data:function(a,b){var c,d,e,f=this[0],g=f&&f.attributes;if(void 0===a){if(this.length&&(e=W.get(f),1===f.nodeType&&!V.get(f,"hasDataAttrs"))){c=g.length;while(c--)g[c]&&(d=g[c].name,0===d.indexOf("data-")&&(d=r.camelCase(d.slice(5)),$(f,d,e[d])));V.set(f,"hasDataAttrs",!0)}return e}return"object"==typeof a?this.each(function(){W.set(this,a)}):S(this,function(b){var c;if(f&&void 0===b){if(c=W.get(f,a),void 0!==c)return c;if(c=$(f,a),void 0!==c)return c}else this.each(function(){W.set(this,a,b)})},null,b,arguments.length>1,null,!0)},removeData:function(a){return this.each(function(){W.remove(this,a)})}}),r.extend({queue:function(a,b,c){var d;if(a)return b=(b||"fx")+"queue",d=V.get(a,b),c&&(!d||r.isArray(c)?d=V.access(a,b,r.makeArray(c)):d.push(c)),d||[]},dequeue:function(a,b){b=b||"fx";var c=r.queue(a,b),d=c.length,e=c.shift(),f=r._queueHooks(a,b),g=function(){r.dequeue(a,b)};"inprogress"===e&&(e=c.shift(),d--),e&&("fx"===b&&c.unshift("inprogress"),delete f.stop,e.call(a,g,f)),!d&&f&&f.empty.fire()},_queueHooks:function(a,b){var c=b+"queueHooks";return V.get(a,c)||V.access(a,c,{empty:r.Callbacks("once memory").add(function(){V.remove(a,[b+"queue",c])})})}}),r.fn.extend({queue:function(a,b){var c=2;return"string"!=typeof a&&(b=a,a="fx",c--),arguments.length<c?r.queue(this[0],a):void 0===b?this:this.each(function(){var c=r.queue(this,a,b);r._queueHooks(this,a),"fx"===a&&"inprogress"!==c[0]&&r.dequeue(this,a)})},dequeue:function(a){return this.each(function(){r.dequeue(this,a)})},clearQueue:function(a){return this.queue(a||"fx",[])},promise:function(a,b){var c,d=1,e=r.Deferred(),f=this,g=this.length,h=function(){--d||e.resolveWith(f,[f])};"string"!=typeof a&&(b=a,a=void 0),a=a||"fx";while(g--)c=V.get(f[g],a+"queueHooks"),c&&c.empty&&(d++,c.empty.add(h));return h(),e.promise(b)}});var _=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,aa=new RegExp("^(?:([+-])=|)("+_+")([a-z%]*)$","i"),ba=["Top","Right","Bottom","Left"],ca=function(a,b){return a=b||a,"none"===a.style.display||""===a.style.display&&r.contains(a.ownerDocument,a)&&"none"===r.css(a,"display")},da=function(a,b,c,d){var e,f,g={};for(f in b)g[f]=a.style[f],a.style[f]=b[f];e=c.apply(a,d||[]);for(f in b)a.style[f]=g[f];return e};function ea(a,b,c,d){var e,f=1,g=20,h=d?function(){return d.cur()}:function(){return r.css(a,b,"")},i=h(),j=c&&c[3]||(r.cssNumber[b]?"":"px"),k=(r.cssNumber[b]||"px"!==j&&+i)&&aa.exec(r.css(a,b));if(k&&k[3]!==j){j=j||k[3],c=c||[],k=+i||1;do f=f||".5",k/=f,r.style(a,b,k+j);while(f!==(f=h()/i)&&1!==f&&--g)}return c&&(k=+k||+i||0,e=c[1]?k+(c[1]+1)*c[2]:+c[2],d&&(d.unit=j,d.start=k,d.end=e)),e}var fa={};function ga(a){var b,c=a.ownerDocument,d=a.nodeName,e=fa[d];return e?e:(b=c.body.appendChild(c.createElement(d)),e=r.css(b,"display"),b.parentNode.removeChild(b),"none"===e&&(e="block"),fa[d]=e,e)}function ha(a,b){for(var c,d,e=[],f=0,g=a.length;f<g;f++)d=a[f],d.style&&(c=d.style.display,b?("none"===c&&(e[f]=V.get(d,"display")||null,e[f]||(d.style.display="")),""===d.style.display&&ca(d)&&(e[f]=ga(d))):"none"!==c&&(e[f]="none",V.set(d,"display",c)));for(f=0;f<g;f++)null!=e[f]&&(a[f].style.display=e[f]);return a}r.fn.extend({show:function(){return ha(this,!0)},hide:function(){return ha(this)},toggle:function(a){return"boolean"==typeof a?a?this.show():this.hide():this.each(function(){ca(this)?r(this).show():r(this).hide()})}});var ia=/^(?:checkbox|radio)$/i,ja=/<([a-z][^\/\0>\x20\t\r\n\f]+)/i,ka=/^$|\/(?:java|ecma)script/i,la={option:[1,"<select multiple='multiple'>","</select>"],thead:[1,"<table>","</table>"],col:[2,"<table><colgroup>","</colgroup></table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],_default:[0,"",""]};la.optgroup=la.option,la.tbody=la.tfoot=la.colgroup=la.caption=la.thead,la.th=la.td;function ma(a,b){var c;return c="undefined"!=typeof a.getElementsByTagName?a.getElementsByTagName(b||"*"):"undefined"!=typeof a.querySelectorAll?a.querySelectorAll(b||"*"):[],void 0===b||b&&r.nodeName(a,b)?r.merge([a],c):c}function na(a,b){for(var c=0,d=a.length;c<d;c++)V.set(a[c],"globalEval",!b||V.get(b[c],"globalEval"))}var oa=/<|&#?\w+;/;function pa(a,b,c,d,e){for(var f,g,h,i,j,k,l=b.createDocumentFragment(),m=[],n=0,o=a.length;n<o;n++)if(f=a[n],f||0===f)if("object"===r.type(f))r.merge(m,f.nodeType?[f]:f);else if(oa.test(f)){g=g||l.appendChild(b.createElement("div")),h=(ja.exec(f)||["",""])[1].toLowerCase(),i=la[h]||la._default,g.innerHTML=i[1]+r.htmlPrefilter(f)+i[2],k=i[0];while(k--)g=g.lastChild;r.merge(m,g.childNodes),g=l.firstChild,g.textContent=""}else m.push(b.createTextNode(f));l.textContent="",n=0;while(f=m[n++])if(d&&r.inArray(f,d)>-1)e&&e.push(f);else if(j=r.contains(f.ownerDocument,f),g=ma(l.appendChild(f),"script"),j&&na(g),c){k=0;while(f=g[k++])ka.test(f.type||"")&&c.push(f)}return l}!function(){var a=d.createDocumentFragment(),b=a.appendChild(d.createElement("div")),c=d.createElement("input");c.setAttribute("type","radio"),c.setAttribute("checked","checked"),c.setAttribute("name","t"),b.appendChild(c),o.checkClone=b.cloneNode(!0).cloneNode(!0).lastChild.checked,b.innerHTML="<textarea>x</textarea>",o.noCloneChecked=!!b.cloneNode(!0).lastChild.defaultValue}();var qa=d.documentElement,ra=/^key/,sa=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,ta=/^([^.]*)(?:\.(.+)|)/;function ua(){return!0}function va(){return!1}function wa(){try{return d.activeElement}catch(a){}}function xa(a,b,c,d,e,f){var g,h;if("object"==typeof b){"string"!=typeof c&&(d=d||c,c=void 0);for(h in b)xa(a,h,c,d,b[h],f);return a}if(null==d&&null==e?(e=c,d=c=void 0):null==e&&("string"==typeof c?(e=d,d=void 0):(e=d,d=c,c=void 0)),e===!1)e=va;else if(!e)return a;return 1===f&&(g=e,e=function(a){return r().off(a),g.apply(this,arguments)},e.guid=g.guid||(g.guid=r.guid++)),a.each(function(){r.event.add(this,b,e,d,c)})}r.event={global:{},add:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,n,o,p,q=V.get(a);if(q){c.handler&&(f=c,c=f.handler,e=f.selector),e&&r.find.matchesSelector(qa,e),c.guid||(c.guid=r.guid++),(i=q.events)||(i=q.events={}),(g=q.handle)||(g=q.handle=function(b){return"undefined"!=typeof r&&r.event.triggered!==b.type?r.event.dispatch.apply(a,arguments):void 0}),b=(b||"").match(K)||[""],j=b.length;while(j--)h=ta.exec(b[j])||[],n=p=h[1],o=(h[2]||"").split(".").sort(),n&&(l=r.event.special[n]||{},n=(e?l.delegateType:l.bindType)||n,l=r.event.special[n]||{},k=r.extend({type:n,origType:p,data:d,handler:c,guid:c.guid,selector:e,needsContext:e&&r.expr.match.needsContext.test(e),namespace:o.join(".")},f),(m=i[n])||(m=i[n]=[],m.delegateCount=0,l.setup&&l.setup.call(a,d,o,g)!==!1||a.addEventListener&&a.addEventListener(n,g)),l.add&&(l.add.call(a,k),k.handler.guid||(k.handler.guid=c.guid)),e?m.splice(m.delegateCount++,0,k):m.push(k),r.event.global[n]=!0)}},remove:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,n,o,p,q=V.hasData(a)&&V.get(a);if(q&&(i=q.events)){b=(b||"").match(K)||[""],j=b.length;while(j--)if(h=ta.exec(b[j])||[],n=p=h[1],o=(h[2]||"").split(".").sort(),n){l=r.event.special[n]||{},n=(d?l.delegateType:l.bindType)||n,m=i[n]||[],h=h[2]&&new RegExp("(^|\\.)"+o.join("\\.(?:.*\\.|)")+"(\\.|$)"),g=f=m.length;while(f--)k=m[f],!e&&p!==k.origType||c&&c.guid!==k.guid||h&&!h.test(k.namespace)||d&&d!==k.selector&&("**"!==d||!k.selector)||(m.splice(f,1),k.selector&&m.delegateCount--,l.remove&&l.remove.call(a,k));g&&!m.length&&(l.teardown&&l.teardown.call(a,o,q.handle)!==!1||r.removeEvent(a,n,q.handle),delete i[n])}else for(n in i)r.event.remove(a,n+b[j],c,d,!0);r.isEmptyObject(i)&&V.remove(a,"handle events")}},dispatch:function(a){var b=r.event.fix(a),c,d,e,f,g,h,i=new Array(arguments.length),j=(V.get(this,"events")||{})[b.type]||[],k=r.event.special[b.type]||{};for(i[0]=b,c=1;c<arguments.length;c++)i[c]=arguments[c];if(b.delegateTarget=this,!k.preDispatch||k.preDispatch.call(this,b)!==!1){h=r.event.handlers.call(this,b,j),c=0;while((f=h[c++])&&!b.isPropagationStopped()){b.currentTarget=f.elem,d=0;while((g=f.handlers[d++])&&!b.isImmediatePropagationStopped())b.rnamespace&&!b.rnamespace.test(g.namespace)||(b.handleObj=g,b.data=g.data,e=((r.event.special[g.origType]||{}).handle||g.handler).apply(f.elem,i),void 0!==e&&(b.result=e)===!1&&(b.preventDefault(),b.stopPropagation()))}return k.postDispatch&&k.postDispatch.call(this,b),b.result}},handlers:function(a,b){var c,d,e,f,g,h=[],i=b.delegateCount,j=a.target;if(i&&j.nodeType&&!("click"===a.type&&a.button>=1))for(;j!==this;j=j.parentNode||this)if(1===j.nodeType&&("click"!==a.type||j.disabled!==!0)){for(f=[],g={},c=0;c<i;c++)d=b[c],e=d.selector+" ",void 0===g[e]&&(g[e]=d.needsContext?r(e,this).index(j)>-1:r.find(e,this,null,[j]).length),g[e]&&f.push(d);f.length&&h.push({elem:j,handlers:f})}return j=this,i<b.length&&h.push({elem:j,handlers:b.slice(i)}),h},addProp:function(a,b){Object.defineProperty(r.Event.prototype,a,{enumerable:!0,configurable:!0,get:r.isFunction(b)?function(){if(this.originalEvent)return b(this.originalEvent)}:function(){if(this.originalEvent)return this.originalEvent[a]},set:function(b){Object.defineProperty(this,a,{enumerable:!0,configurable:!0,writable:!0,value:b})}})},fix:function(a){return a[r.expando]?a:new r.Event(a)},special:{load:{noBubble:!0},focus:{trigger:function(){if(this!==wa()&&this.focus)return this.focus(),!1},delegateType:"focusin"},blur:{trigger:function(){if(this===wa()&&this.blur)return this.blur(),!1},delegateType:"focusout"},click:{trigger:function(){if("checkbox"===this.type&&this.click&&r.nodeName(this,"input"))return this.click(),!1},_default:function(a){return r.nodeName(a.target,"a")}},beforeunload:{postDispatch:function(a){void 0!==a.result&&a.originalEvent&&(a.originalEvent.returnValue=a.result)}}}},r.removeEvent=function(a,b,c){a.removeEventListener&&a.removeEventListener(b,c)},r.Event=function(a,b){return this instanceof r.Event?(a&&a.type?(this.originalEvent=a,this.type=a.type,this.isDefaultPrevented=a.defaultPrevented||void 0===a.defaultPrevented&&a.returnValue===!1?ua:va,this.target=a.target&&3===a.target.nodeType?a.target.parentNode:a.target,this.currentTarget=a.currentTarget,this.relatedTarget=a.relatedTarget):this.type=a,b&&r.extend(this,b),this.timeStamp=a&&a.timeStamp||r.now(),void(this[r.expando]=!0)):new r.Event(a,b)},r.Event.prototype={constructor:r.Event,isDefaultPrevented:va,isPropagationStopped:va,isImmediatePropagationStopped:va,isSimulated:!1,preventDefault:function(){var a=this.originalEvent;this.isDefaultPrevented=ua,a&&!this.isSimulated&&a.preventDefault()},stopPropagation:function(){var a=this.originalEvent;this.isPropagationStopped=ua,a&&!this.isSimulated&&a.stopPropagation()},stopImmediatePropagation:function(){var a=this.originalEvent;this.isImmediatePropagationStopped=ua,a&&!this.isSimulated&&a.stopImmediatePropagation(),this.stopPropagation()}},r.each({altKey:!0,bubbles:!0,cancelable:!0,changedTouches:!0,ctrlKey:!0,detail:!0,eventPhase:!0,metaKey:!0,pageX:!0,pageY:!0,shiftKey:!0,view:!0,"char":!0,charCode:!0,key:!0,keyCode:!0,button:!0,buttons:!0,clientX:!0,clientY:!0,offsetX:!0,offsetY:!0,pointerId:!0,pointerType:!0,screenX:!0,screenY:!0,targetTouches:!0,toElement:!0,touches:!0,which:function(a){var b=a.button;return null==a.which&&ra.test(a.type)?null!=a.charCode?a.charCode:a.keyCode:!a.which&&void 0!==b&&sa.test(a.type)?1&b?1:2&b?3:4&b?2:0:a.which}},r.event.addProp),r.each({mouseenter:"mouseover",mouseleave:"mouseout",pointerenter:"pointerover",pointerleave:"pointerout"},function(a,b){r.event.special[a]={delegateType:b,bindType:b,handle:function(a){var c,d=this,e=a.relatedTarget,f=a.handleObj;return e&&(e===d||r.contains(d,e))||(a.type=f.origType,c=f.handler.apply(this,arguments),a.type=b),c}}}),r.fn.extend({on:function(a,b,c,d){return xa(this,a,b,c,d)},one:function(a,b,c,d){return xa(this,a,b,c,d,1)},off:function(a,b,c){var d,e;if(a&&a.preventDefault&&a.handleObj)return d=a.handleObj,r(a.delegateTarget).off(d.namespace?d.origType+"."+d.namespace:d.origType,d.selector,d.handler),this;if("object"==typeof a){for(e in a)this.off(e,b,a[e]);return this}return b!==!1&&"function"!=typeof b||(c=b,b=void 0),c===!1&&(c=va),this.each(function(){r.event.remove(this,a,c,b)})}});var ya=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([a-z][^\/\0>\x20\t\r\n\f]*)[^>]*)\/>/gi,za=/<script|<style|<link/i,Aa=/checked\s*(?:[^=]|=\s*.checked.)/i,Ba=/^true\/(.*)/,Ca=/^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g;function Da(a,b){return r.nodeName(a,"table")&&r.nodeName(11!==b.nodeType?b:b.firstChild,"tr")?a.getElementsByTagName("tbody")[0]||a:a}function Ea(a){return a.type=(null!==a.getAttribute("type"))+"/"+a.type,a}function Fa(a){var b=Ba.exec(a.type);return b?a.type=b[1]:a.removeAttribute("type"),a}function Ga(a,b){var c,d,e,f,g,h,i,j;if(1===b.nodeType){if(V.hasData(a)&&(f=V.access(a),g=V.set(b,f),j=f.events)){delete g.handle,g.events={};for(e in j)for(c=0,d=j[e].length;c<d;c++)r.event.add(b,e,j[e][c])}W.hasData(a)&&(h=W.access(a),i=r.extend({},h),W.set(b,i))}}function Ha(a,b){var c=b.nodeName.toLowerCase();"input"===c&&ia.test(a.type)?b.checked=a.checked:"input"!==c&&"textarea"!==c||(b.defaultValue=a.defaultValue)}function Ia(a,b,c,d){b=g.apply([],b);var e,f,h,i,j,k,l=0,m=a.length,n=m-1,q=b[0],s=r.isFunction(q);if(s||m>1&&"string"==typeof q&&!o.checkClone&&Aa.test(q))return a.each(function(e){var f=a.eq(e);s&&(b[0]=q.call(this,e,f.html())),Ia(f,b,c,d)});if(m&&(e=pa(b,a[0].ownerDocument,!1,a,d),f=e.firstChild,1===e.childNodes.length&&(e=f),f||d)){for(h=r.map(ma(e,"script"),Ea),i=h.length;l<m;l++)j=e,l!==n&&(j=r.clone(j,!0,!0),i&&r.merge(h,ma(j,"script"))),c.call(a[l],j,l);if(i)for(k=h[h.length-1].ownerDocument,r.map(h,Fa),l=0;l<i;l++)j=h[l],ka.test(j.type||"")&&!V.access(j,"globalEval")&&r.contains(k,j)&&(j.src?r._evalUrl&&r._evalUrl(j.src):p(j.textContent.replace(Ca,""),k))}return a}function Ja(a,b,c){for(var d,e=b?r.filter(b,a):a,f=0;null!=(d=e[f]);f++)c||1!==d.nodeType||r.cleanData(ma(d)),d.parentNode&&(c&&r.contains(d.ownerDocument,d)&&na(ma(d,"script")),d.parentNode.removeChild(d));return a}r.extend({htmlPrefilter:function(a){return a.replace(ya,"<$1></$2>")},clone:function(a,b,c){var d,e,f,g,h=a.cloneNode(!0),i=r.contains(a.ownerDocument,a);if(!(o.noCloneChecked||1!==a.nodeType&&11!==a.nodeType||r.isXMLDoc(a)))for(g=ma(h),f=ma(a),d=0,e=f.length;d<e;d++)Ha(f[d],g[d]);if(b)if(c)for(f=f||ma(a),g=g||ma(h),d=0,e=f.length;d<e;d++)Ga(f[d],g[d]);else Ga(a,h);return g=ma(h,"script"),g.length>0&&na(g,!i&&ma(a,"script")),h},cleanData:function(a){for(var b,c,d,e=r.event.special,f=0;void 0!==(c=a[f]);f++)if(T(c)){if(b=c[V.expando]){if(b.events)for(d in b.events)e[d]?r.event.remove(c,d):r.removeEvent(c,d,b.handle);c[V.expando]=void 0}c[W.expando]&&(c[W.expando]=void 0)}}}),r.fn.extend({detach:function(a){return Ja(this,a,!0)},remove:function(a){return Ja(this,a)},text:function(a){return S(this,function(a){return void 0===a?r.text(this):this.empty().each(function(){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||(this.textContent=a)})},null,a,arguments.length)},append:function(){return Ia(this,arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=Da(this,a);b.appendChild(a)}})},prepend:function(){return Ia(this,arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=Da(this,a);b.insertBefore(a,b.firstChild)}})},before:function(){return Ia(this,arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this)})},after:function(){return Ia(this,arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this.nextSibling)})},empty:function(){for(var a,b=0;null!=(a=this[b]);b++)1===a.nodeType&&(r.cleanData(ma(a,!1)),a.textContent="");return this},clone:function(a,b){return a=null!=a&&a,b=null==b?a:b,this.map(function(){return r.clone(this,a,b)})},html:function(a){return S(this,function(a){var b=this[0]||{},c=0,d=this.length;if(void 0===a&&1===b.nodeType)return b.innerHTML;if("string"==typeof a&&!za.test(a)&&!la[(ja.exec(a)||["",""])[1].toLowerCase()]){a=r.htmlPrefilter(a);try{for(;c<d;c++)b=this[c]||{},1===b.nodeType&&(r.cleanData(ma(b,!1)),b.innerHTML=a);b=0}catch(e){}}b&&this.empty().append(a)},null,a,arguments.length)},replaceWith:function(){var a=[];return Ia(this,arguments,function(b){var c=this.parentNode;r.inArray(this,a)<0&&(r.cleanData(ma(this)),c&&c.replaceChild(b,this))},a)}}),r.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){r.fn[a]=function(a){for(var c,d=[],e=r(a),f=e.length-1,g=0;g<=f;g++)c=g===f?this:this.clone(!0),r(e[g])[b](c),h.apply(d,c.get());return this.pushStack(d)}});var Ka=/^margin/,La=new RegExp("^("+_+")(?!px)[a-z%]+$","i"),Ma=function(b){var c=b.ownerDocument.defaultView;return c&&c.opener||(c=a),c.getComputedStyle(b)};!function(){function b(){if(i){i.style.cssText="box-sizing:border-box;position:relative;display:block;margin:auto;border:1px;padding:1px;top:1%;width:50%",i.innerHTML="",qa.appendChild(h);var b=a.getComputedStyle(i);c="1%"!==b.top,g="2px"===b.marginLeft,e="4px"===b.width,i.style.marginRight="50%",f="4px"===b.marginRight,qa.removeChild(h),i=null}}var c,e,f,g,h=d.createElement("div"),i=d.createElement("div");i.style&&(i.style.backgroundClip="content-box",i.cloneNode(!0).style.backgroundClip="",o.clearCloneStyle="content-box"===i.style.backgroundClip,h.style.cssText="border:0;width:8px;height:0;top:0;left:-9999px;padding:0;margin-top:1px;position:absolute",h.appendChild(i),r.extend(o,{pixelPosition:function(){return b(),c},boxSizingReliable:function(){return b(),e},pixelMarginRight:function(){return b(),f},reliableMarginLeft:function(){return b(),g}}))}();function Na(a,b,c){var d,e,f,g,h=a.style;return c=c||Ma(a),c&&(g=c.getPropertyValue(b)||c[b],""!==g||r.contains(a.ownerDocument,a)||(g=r.style(a,b)),!o.pixelMarginRight()&&La.test(g)&&Ka.test(b)&&(d=h.width,e=h.minWidth,f=h.maxWidth,h.minWidth=h.maxWidth=h.width=g,g=c.width,h.width=d,h.minWidth=e,h.maxWidth=f)),void 0!==g?g+"":g}function Oa(a,b){return{get:function(){return a()?void delete this.get:(this.get=b).apply(this,arguments)}}}var Pa=/^(none|table(?!-c[ea]).+)/,Qa={position:"absolute",visibility:"hidden",display:"block"},Ra={letterSpacing:"0",fontWeight:"400"},Sa=["Webkit","Moz","ms"],Ta=d.createElement("div").style;function Ua(a){if(a in Ta)return a;var b=a[0].toUpperCase()+a.slice(1),c=Sa.length;while(c--)if(a=Sa[c]+b,a in Ta)return a}function Va(a,b,c){var d=aa.exec(b);return d?Math.max(0,d[2]-(c||0))+(d[3]||"px"):b}function Wa(a,b,c,d,e){var f,g=0;for(f=c===(d?"border":"content")?4:"width"===b?1:0;f<4;f+=2)"margin"===c&&(g+=r.css(a,c+ba[f],!0,e)),d?("content"===c&&(g-=r.css(a,"padding"+ba[f],!0,e)),"margin"!==c&&(g-=r.css(a,"border"+ba[f]+"Width",!0,e))):(g+=r.css(a,"padding"+ba[f],!0,e),"padding"!==c&&(g+=r.css(a,"border"+ba[f]+"Width",!0,e)));return g}function Xa(a,b,c){var d,e=!0,f=Ma(a),g="border-box"===r.css(a,"boxSizing",!1,f);if(a.getClientRects().length&&(d=a.getBoundingClientRect()[b]),d<=0||null==d){if(d=Na(a,b,f),(d<0||null==d)&&(d=a.style[b]),La.test(d))return d;e=g&&(o.boxSizingReliable()||d===a.style[b]),d=parseFloat(d)||0}return d+Wa(a,b,c||(g?"border":"content"),e,f)+"px"}r.extend({cssHooks:{opacity:{get:function(a,b){if(b){var c=Na(a,"opacity");return""===c?"1":c}}}},cssNumber:{animationIterationCount:!0,columnCount:!0,fillOpacity:!0,flexGrow:!0,flexShrink:!0,fontWeight:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{"float":"cssFloat"},style:function(a,b,c,d){if(a&&3!==a.nodeType&&8!==a.nodeType&&a.style){var e,f,g,h=r.camelCase(b),i=a.style;return b=r.cssProps[h]||(r.cssProps[h]=Ua(h)||h),g=r.cssHooks[b]||r.cssHooks[h],void 0===c?g&&"get"in g&&void 0!==(e=g.get(a,!1,d))?e:i[b]:(f=typeof c,"string"===f&&(e=aa.exec(c))&&e[1]&&(c=ea(a,b,e),f="number"),null!=c&&c===c&&("number"===f&&(c+=e&&e[3]||(r.cssNumber[h]?"":"px")),o.clearCloneStyle||""!==c||0!==b.indexOf("background")||(i[b]="inherit"),g&&"set"in g&&void 0===(c=g.set(a,c,d))||(i[b]=c)),void 0)}},css:function(a,b,c,d){var e,f,g,h=r.camelCase(b);return b=r.cssProps[h]||(r.cssProps[h]=Ua(h)||h),g=r.cssHooks[b]||r.cssHooks[h],g&&"get"in g&&(e=g.get(a,!0,c)),void 0===e&&(e=Na(a,b,d)),"normal"===e&&b in Ra&&(e=Ra[b]),""===c||c?(f=parseFloat(e),c===!0||isFinite(f)?f||0:e):e}}),r.each(["height","width"],function(a,b){r.cssHooks[b]={get:function(a,c,d){if(c)return!Pa.test(r.css(a,"display"))||a.getClientRects().length&&a.getBoundingClientRect().width?Xa(a,b,d):da(a,Qa,function(){return Xa(a,b,d)})},set:function(a,c,d){var e,f=d&&Ma(a),g=d&&Wa(a,b,d,"border-box"===r.css(a,"boxSizing",!1,f),f);return g&&(e=aa.exec(c))&&"px"!==(e[3]||"px")&&(a.style[b]=c,c=r.css(a,b)),Va(a,c,g)}}}),r.cssHooks.marginLeft=Oa(o.reliableMarginLeft,function(a,b){if(b)return(parseFloat(Na(a,"marginLeft"))||a.getBoundingClientRect().left-da(a,{marginLeft:0},function(){return a.getBoundingClientRect().left}))+"px"}),r.each({margin:"",padding:"",border:"Width"},function(a,b){r.cssHooks[a+b]={expand:function(c){for(var d=0,e={},f="string"==typeof c?c.split(" "):[c];d<4;d++)e[a+ba[d]+b]=f[d]||f[d-2]||f[0];return e}},Ka.test(a)||(r.cssHooks[a+b].set=Va)}),r.fn.extend({css:function(a,b){return S(this,function(a,b,c){var d,e,f={},g=0;if(r.isArray(b)){for(d=Ma(a),e=b.length;g<e;g++)f[b[g]]=r.css(a,b[g],!1,d);return f}return void 0!==c?r.style(a,b,c):r.css(a,b)},a,b,arguments.length>1)}}),r.fn.delay=function(b,c){return b=r.fx?r.fx.speeds[b]||b:b,c=c||"fx",this.queue(c,function(c,d){var e=a.setTimeout(c,b);d.stop=function(){a.clearTimeout(e)}})},function(){var a=d.createElement("input"),b=d.createElement("select"),c=b.appendChild(d.createElement("option"));a.type="checkbox",o.checkOn=""!==a.value,o.optSelected=c.selected,a=d.createElement("input"),a.value="t",a.type="radio",o.radioValue="t"===a.value}();var Ya,Za=r.expr.attrHandle;r.fn.extend({attr:function(a,b){return S(this,r.attr,a,b,arguments.length>1)},removeAttr:function(a){return this.each(function(){r.removeAttr(this,a)})}}),r.extend({attr:function(a,b,c){var d,e,f=a.nodeType;if(3!==f&&8!==f&&2!==f)return"undefined"==typeof a.getAttribute?r.prop(a,b,c):(1===f&&r.isXMLDoc(a)||(e=r.attrHooks[b.toLowerCase()]||(r.expr.match.bool.test(b)?Ya:void 0)),void 0!==c?null===c?void r.removeAttr(a,b):e&&"set"in e&&void 0!==(d=e.set(a,c,b))?d:(a.setAttribute(b,c+""),c):e&&"get"in e&&null!==(d=e.get(a,b))?d:(d=r.find.attr(a,b),null==d?void 0:d))},attrHooks:{type:{set:function(a,b){if(!o.radioValue&&"radio"===b&&r.nodeName(a,"input")){var c=a.value;return a.setAttribute("type",b),c&&(a.value=c),b}}}},removeAttr:function(a,b){var c,d=0,e=b&&b.match(K);if(e&&1===a.nodeType)while(c=e[d++])a.removeAttribute(c)}}),Ya={set:function(a,b,c){return b===!1?r.removeAttr(a,c):a.setAttribute(c,c),c}},r.each(r.expr.match.bool.source.match(/\w+/g),function(a,b){var c=Za[b]||r.find.attr;Za[b]=function(a,b,d){var e,f,g=b.toLowerCase();return d||(f=Za[g],Za[g]=e,e=null!=c(a,b,d)?g:null,Za[g]=f),e}});var $a=/^(?:input|select|textarea|button)$/i,_a=/^(?:a|area)$/i;r.fn.extend({prop:function(a,b){return S(this,r.prop,a,b,arguments.length>1)},removeProp:function(a){return this.each(function(){delete this[r.propFix[a]||a]})}}),r.extend({prop:function(a,b,c){var d,e,f=a.nodeType;if(3!==f&&8!==f&&2!==f)return 1===f&&r.isXMLDoc(a)||(b=r.propFix[b]||b,e=r.propHooks[b]),void 0!==c?e&&"set"in e&&void 0!==(d=e.set(a,c,b))?d:a[b]=c:e&&"get"in e&&null!==(d=e.get(a,b))?d:a[b]},propHooks:{tabIndex:{get:function(a){var b=r.find.attr(a,"tabindex");return b?parseInt(b,10):$a.test(a.nodeName)||_a.test(a.nodeName)&&a.href?0:-1}}},propFix:{"for":"htmlFor","class":"className"}}),o.optSelected||(r.propHooks.selected={get:function(a){var b=a.parentNode;return b&&b.parentNode&&b.parentNode.selectedIndex,null},set:function(a){var b=a.parentNode;b&&(b.selectedIndex,b.parentNode&&b.parentNode.selectedIndex)}}),r.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){r.propFix[this.toLowerCase()]=this});function ab(a){var b=a.match(K)||[];return b.join(" ")}function bb(a){return a.getAttribute&&a.getAttribute("class")||""}r.fn.extend({addClass:function(a){var b,c,d,e,f,g,h,i=0;if(r.isFunction(a))return this.each(function(b){r(this).addClass(a.call(this,b,bb(this)))});if("string"==typeof a&&a){b=a.match(K)||[];while(c=this[i++])if(e=bb(c),d=1===c.nodeType&&" "+ab(e)+" "){g=0;while(f=b[g++])d.indexOf(" "+f+" ")<0&&(d+=f+" ");h=ab(d),e!==h&&c.setAttribute("class",h)}}return this},removeClass:function(a){var b,c,d,e,f,g,h,i=0;if(r.isFunction(a))return this.each(function(b){r(this).removeClass(a.call(this,b,bb(this)))});if(!arguments.length)return this.attr("class","");if("string"==typeof a&&a){b=a.match(K)||[];while(c=this[i++])if(e=bb(c),d=1===c.nodeType&&" "+ab(e)+" "){g=0;while(f=b[g++])while(d.indexOf(" "+f+" ")>-1)d=d.replace(" "+f+" "," ");h=ab(d),e!==h&&c.setAttribute("class",h)}}return this},toggleClass:function(a,b){var c=typeof a;return"boolean"==typeof b&&"string"===c?b?this.addClass(a):this.removeClass(a):r.isFunction(a)?this.each(function(c){r(this).toggleClass(a.call(this,c,bb(this),b),b)}):this.each(function(){var b,d,e,f;if("string"===c){d=0,e=r(this),f=a.match(K)||[];while(b=f[d++])e.hasClass(b)?e.removeClass(b):e.addClass(b)}else void 0!==a&&"boolean"!==c||(b=bb(this),b&&V.set(this,"__className__",b),this.setAttribute&&this.setAttribute("class",b||a===!1?"":V.get(this,"__className__")||""))})},hasClass:function(a){var b,c,d=0;b=" "+a+" ";while(c=this[d++])if(1===c.nodeType&&(" "+ab(bb(c))+" ").indexOf(b)>-1)return!0;return!1}});var cb=/\r/g;r.fn.extend({val:function(a){var b,c,d,e=this[0];{if(arguments.length)return d=r.isFunction(a),this.each(function(c){var e;1===this.nodeType&&(e=d?a.call(this,c,r(this).val()):a,null==e?e="":"number"==typeof e?e+="":r.isArray(e)&&(e=r.map(e,function(a){return null==a?"":a+""})),b=r.valHooks[this.type]||r.valHooks[this.nodeName.toLowerCase()],b&&"set"in b&&void 0!==b.set(this,e,"value")||(this.value=e))});if(e)return b=r.valHooks[e.type]||r.valHooks[e.nodeName.toLowerCase()],b&&"get"in b&&void 0!==(c=b.get(e,"value"))?c:(c=e.value,"string"==typeof c?c.replace(cb,""):null==c?"":c)}}}),r.extend({valHooks:{option:{get:function(a){var b=r.find.attr(a,"value");return null!=b?b:ab(r.text(a))}},select:{get:function(a){var b,c,d,e=a.options,f=a.selectedIndex,g="select-one"===a.type,h=g?null:[],i=g?f+1:e.length;for(d=f<0?i:g?f:0;d<i;d++)if(c=e[d],(c.selected||d===f)&&!c.disabled&&(!c.parentNode.disabled||!r.nodeName(c.parentNode,"optgroup"))){if(b=r(c).val(),g)return b;h.push(b)}return h},set:function(a,b){var c,d,e=a.options,f=r.makeArray(b),g=e.length;while(g--)d=e[g],(d.selected=r.inArray(r.valHooks.option.get(d),f)>-1)&&(c=!0);return c||(a.selectedIndex=-1),f}}}}),r.each(["radio","checkbox"],function(){r.valHooks[this]={set:function(a,b){if(r.isArray(b))return a.checked=r.inArray(r(a).val(),b)>-1}},o.checkOn||(r.valHooks[this].get=function(a){return null===a.getAttribute("value")?"on":a.value})});var db=/^(?:focusinfocus|focusoutblur)$/;r.extend(r.event,{trigger:function(b,c,e,f){var g,h,i,j,k,m,n,o=[e||d],p=l.call(b,"type")?b.type:b,q=l.call(b,"namespace")?b.namespace.split("."):[];if(h=i=e=e||d,3!==e.nodeType&&8!==e.nodeType&&!db.test(p+r.event.triggered)&&(p.indexOf(".")>-1&&(q=p.split("."),p=q.shift(),q.sort()),k=p.indexOf(":")<0&&"on"+p,b=b[r.expando]?b:new r.Event(p,"object"==typeof b&&b),b.isTrigger=f?2:3,b.namespace=q.join("."),b.rnamespace=b.namespace?new RegExp("(^|\\.)"+q.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,b.result=void 0,b.target||(b.target=e),c=null==c?[b]:r.makeArray(c,[b]),n=r.event.special[p]||{},f||!n.trigger||n.trigger.apply(e,c)!==!1)){if(!f&&!n.noBubble&&!r.isWindow(e)){for(j=n.delegateType||p,db.test(j+p)||(h=h.parentNode);h;h=h.parentNode)o.push(h),i=h;i===(e.ownerDocument||d)&&o.push(i.defaultView||i.parentWindow||a)}g=0;while((h=o[g++])&&!b.isPropagationStopped())b.type=g>1?j:n.bindType||p,m=(V.get(h,"events")||{})[b.type]&&V.get(h,"handle"),m&&m.apply(h,c),m=k&&h[k],m&&m.apply&&T(h)&&(b.result=m.apply(h,c),b.result===!1&&b.preventDefault());return b.type=p,f||b.isDefaultPrevented()||n._default&&n._default.apply(o.pop(),c)!==!1||!T(e)||k&&r.isFunction(e[p])&&!r.isWindow(e)&&(i=e[k],i&&(e[k]=null),r.event.triggered=p,e[p](),r.event.triggered=void 0,i&&(e[k]=i)),b.result}},simulate:function(a,b,c){var d=r.extend(new r.Event,c,{type:a,isSimulated:!0});r.event.trigger(d,null,b)}}),r.fn.extend({trigger:function(a,b){return this.each(function(){r.event.trigger(a,b,this)})},triggerHandler:function(a,b){var c=this[0];if(c)return r.event.trigger(a,b,c,!0)}}),r.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(a,b){r.fn[b]=function(a,c){return arguments.length>0?this.on(b,null,a,c):this.trigger(b)}}),r.fn.extend({hover:function(a,b){return this.mouseenter(a).mouseleave(b||a)}}),o.focusin="onfocusin"in a,o.focusin||r.each({focus:"focusin",blur:"focusout"},function(a,b){var c=function(a){r.event.simulate(b,a.target,r.event.fix(a))};r.event.special[b]={setup:function(){var d=this.ownerDocument||this,e=V.access(d,b);e||d.addEventListener(a,c,!0),V.access(d,b,(e||0)+1)},teardown:function(){var d=this.ownerDocument||this,e=V.access(d,b)-1;e?V.access(d,b,e):(d.removeEventListener(a,c,!0),V.remove(d,b))}}});var eb=/\[\]$/,fb=/\r?\n/g,gb=/^(?:submit|button|image|reset|file)$/i,hb=/^(?:input|select|textarea|keygen)/i;function ib(a,b,c,d){var e;if(r.isArray(b))r.each(b,function(b,e){c||eb.test(a)?d(a,e):ib(a+"["+("object"==typeof e&&null!=e?b:"")+"]",e,c,d);
+});else if(c||"object"!==r.type(b))d(a,b);else for(e in b)ib(a+"["+e+"]",b[e],c,d)}r.param=function(a,b){var c,d=[],e=function(a,b){var c=r.isFunction(b)?b():b;d[d.length]=encodeURIComponent(a)+"="+encodeURIComponent(null==c?"":c)};if(r.isArray(a)||a.jquery&&!r.isPlainObject(a))r.each(a,function(){e(this.name,this.value)});else for(c in a)ib(c,a[c],b,e);return d.join("&")},r.fn.extend({serialize:function(){return r.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var a=r.prop(this,"elements");return a?r.makeArray(a):this}).filter(function(){var a=this.type;return this.name&&!r(this).is(":disabled")&&hb.test(this.nodeName)&&!gb.test(a)&&(this.checked||!ia.test(a))}).map(function(a,b){var c=r(this).val();return null==c?null:r.isArray(c)?r.map(c,function(a){return{name:b.name,value:a.replace(fb,"\r\n")}}):{name:b.name,value:c.replace(fb,"\r\n")}}).get()}}),r.fn.extend({wrapAll:function(a){var b;return this[0]&&(r.isFunction(a)&&(a=a.call(this[0])),b=r(a,this[0].ownerDocument).eq(0).clone(!0),this[0].parentNode&&b.insertBefore(this[0]),b.map(function(){var a=this;while(a.firstElementChild)a=a.firstElementChild;return a}).append(this)),this},wrapInner:function(a){return r.isFunction(a)?this.each(function(b){r(this).wrapInner(a.call(this,b))}):this.each(function(){var b=r(this),c=b.contents();c.length?c.wrapAll(a):b.append(a)})},wrap:function(a){var b=r.isFunction(a);return this.each(function(c){r(this).wrapAll(b?a.call(this,c):a)})},unwrap:function(a){return this.parent(a).not("body").each(function(){r(this).replaceWith(this.childNodes)}),this}}),r.expr.pseudos.hidden=function(a){return!r.expr.pseudos.visible(a)},r.expr.pseudos.visible=function(a){return!!(a.offsetWidth||a.offsetHeight||a.getClientRects().length)},o.createHTMLDocument=function(){var a=d.implementation.createHTMLDocument("").body;return a.innerHTML="<form></form><form></form>",2===a.childNodes.length}(),r.parseHTML=function(a,b,c){if("string"!=typeof a)return[];"boolean"==typeof b&&(c=b,b=!1);var e,f,g;return b||(o.createHTMLDocument?(b=d.implementation.createHTMLDocument(""),e=b.createElement("base"),e.href=d.location.href,b.head.appendChild(e)):b=d),f=B.exec(a),g=!c&&[],f?[b.createElement(f[1])]:(f=pa([a],b,g),g&&g.length&&r(g).remove(),r.merge([],f.childNodes))};function jb(a){return r.isWindow(a)?a:9===a.nodeType&&a.defaultView}r.offset={setOffset:function(a,b,c){var d,e,f,g,h,i,j,k=r.css(a,"position"),l=r(a),m={};"static"===k&&(a.style.position="relative"),h=l.offset(),f=r.css(a,"top"),i=r.css(a,"left"),j=("absolute"===k||"fixed"===k)&&(f+i).indexOf("auto")>-1,j?(d=l.position(),g=d.top,e=d.left):(g=parseFloat(f)||0,e=parseFloat(i)||0),r.isFunction(b)&&(b=b.call(a,c,r.extend({},h))),null!=b.top&&(m.top=b.top-h.top+g),null!=b.left&&(m.left=b.left-h.left+e),"using"in b?b.using.call(a,m):l.css(m)}},r.fn.extend({offset:function(a){if(arguments.length)return void 0===a?this:this.each(function(b){r.offset.setOffset(this,a,b)});var b,c,d,e,f=this[0];if(f)return f.getClientRects().length?(d=f.getBoundingClientRect(),d.width||d.height?(e=f.ownerDocument,c=jb(e),b=e.documentElement,{top:d.top+c.pageYOffset-b.clientTop,left:d.left+c.pageXOffset-b.clientLeft}):d):{top:0,left:0}},position:function(){if(this[0]){var a,b,c=this[0],d={top:0,left:0};return"fixed"===r.css(c,"position")?b=c.getBoundingClientRect():(a=this.offsetParent(),b=this.offset(),r.nodeName(a[0],"html")||(d=a.offset()),d={top:d.top+r.css(a[0],"borderTopWidth",!0),left:d.left+r.css(a[0],"borderLeftWidth",!0)}),{top:b.top-d.top-r.css(c,"marginTop",!0),left:b.left-d.left-r.css(c,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var a=this.offsetParent;while(a&&"static"===r.css(a,"position"))a=a.offsetParent;return a||qa})}}),r.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(a,b){var c="pageYOffset"===b;r.fn[a]=function(d){return S(this,function(a,d,e){var f=jb(a);return void 0===e?f?f[b]:a[d]:void(f?f.scrollTo(c?f.pageXOffset:e,c?e:f.pageYOffset):a[d]=e)},a,d,arguments.length)}}),r.each(["top","left"],function(a,b){r.cssHooks[b]=Oa(o.pixelPosition,function(a,c){if(c)return c=Na(a,b),La.test(c)?r(a).position()[b]+"px":c})}),r.each({Height:"height",Width:"width"},function(a,b){r.each({padding:"inner"+a,content:b,"":"outer"+a},function(c,d){r.fn[d]=function(e,f){var g=arguments.length&&(c||"boolean"!=typeof e),h=c||(e===!0||f===!0?"margin":"border");return S(this,function(b,c,e){var f;return r.isWindow(b)?0===d.indexOf("outer")?b["inner"+a]:b.document.documentElement["client"+a]:9===b.nodeType?(f=b.documentElement,Math.max(b.body["scroll"+a],f["scroll"+a],b.body["offset"+a],f["offset"+a],f["client"+a])):void 0===e?r.css(b,c,h):r.style(b,c,e,h)},b,g?e:void 0,g)}})}),"function"==typeof define&&define.amd&&define("jquery",[],function(){return r});var kb=a.jQuery,lb=a.$;return r.noConflict=function(b){return a.$===r&&(a.$=lb),b&&a.jQuery===r&&(a.jQuery=kb),r},b||(a.jQuery=a.$=r),r});
--- /dev/null
+{"version":3,"sources":["jquery.slim.js"],"names":["global","factory","module","exports","document","w","Error","window","this","noGlobal","arr","getProto","Object","getPrototypeOf","slice","concat","push","indexOf","class2type","toString","hasOwn","hasOwnProperty","fnToString","ObjectFunctionString","call","support","DOMEval","code","doc","script","createElement","text","head","appendChild","parentNode","removeChild","version","jQuery","selector","context","fn","init","rtrim","rmsPrefix","rdashAlpha","fcamelCase","all","letter","toUpperCase","prototype","jquery","constructor","length","toArray","get","num","pushStack","elems","ret","merge","prevObject","each","callback","map","elem","i","apply","arguments","first","eq","last","len","j","end","sort","splice","extend","options","name","src","copy","copyIsArray","clone","target","deep","isFunction","isPlainObject","isArray","undefined","expando","Math","random","replace","isReady","error","msg","noop","obj","type","Array","isWindow","isNumeric","isNaN","parseFloat","proto","Ctor","isEmptyObject","globalEval","camelCase","string","nodeName","toLowerCase","isArrayLike","trim","makeArray","results","inArray","second","grep","invert","callbackInverse","matches","callbackExpect","arg","value","guid","proxy","tmp","args","now","Date","Symbol","iterator","split","Sizzle","Expr","getText","isXML","tokenize","compile","select","outermostContext","sortInput","hasDuplicate","setDocument","docElem","documentIsHTML","rbuggyQSA","rbuggyMatches","contains","preferredDoc","dirruns","done","classCache","createCache","tokenCache","compilerCache","sortOrder","a","b","pop","push_native","list","booleans","whitespace","identifier","attributes","pseudos","rwhitespace","RegExp","rcomma","rcombinators","rattributeQuotes","rpseudo","ridentifier","matchExpr","ID","CLASS","TAG","ATTR","PSEUDO","CHILD","bool","needsContext","rinputs","rheader","rnative","rquickExpr","rsibling","runescape","funescape","_","escaped","escapedWhitespace","high","String","fromCharCode","rcssescape","fcssescape","ch","asCodePoint","charCodeAt","unloadHandler","disabledAncestor","addCombinator","disabled","dir","next","childNodes","nodeType","e","els","seed","m","nid","match","groups","newSelector","newContext","ownerDocument","exec","getElementById","id","getElementsByTagName","getElementsByClassName","qsa","test","getAttribute","setAttribute","toSelector","join","testContext","querySelectorAll","qsaError","removeAttribute","keys","cache","key","cacheLength","shift","markFunction","assert","el","addHandle","attrs","handler","attrHandle","siblingCheck","cur","diff","sourceIndex","nextSibling","createInputPseudo","createButtonPseudo","createDisabledPseudo","isDisabled","createPositionalPseudo","argument","matchIndexes","documentElement","node","hasCompare","subWindow","defaultView","top","addEventListener","attachEvent","className","createComment","getById","getElementsByName","filter","attrId","find","getAttributeNode","tag","innerHTML","input","matchesSelector","webkitMatchesSelector","mozMatchesSelector","oMatchesSelector","msMatchesSelector","disconnectedMatch","compareDocumentPosition","adown","bup","compare","sortDetached","aup","ap","bp","unshift","expr","elements","attr","val","specified","escape","sel","uniqueSort","duplicates","detectDuplicates","sortStable","textContent","firstChild","nodeValue","selectors","createPseudo","relative",">"," ","+","~","preFilter","excess","unquoted","nodeNameSelector","pattern","operator","check","result","what","simple","forward","ofType","xml","uniqueCache","outerCache","nodeIndex","start","parent","useCache","lastChild","uniqueID","pseudo","setFilters","idx","matched","not","matcher","unmatched","has","innerText","lang","elemLang","hash","location","root","focus","activeElement","hasFocus","href","tabIndex","enabled","checked","selected","selectedIndex","empty","header","button","even","odd","lt","gt","radio","checkbox","file","password","image","submit","reset","filters","parseOnly","tokens","soFar","preFilters","cached","combinator","base","skip","checkNonElements","doneName","oldCache","newCache","elementMatcher","matchers","multipleContexts","contexts","condense","newUnmatched","mapped","setMatcher","postFilter","postFinder","postSelector","temp","preMap","postMap","preexisting","matcherIn","matcherOut","matcherFromTokens","checkContext","leadingRelative","implicitRelative","matchContext","matchAnyContext","matcherFromGroupMatchers","elementMatchers","setMatchers","bySet","byElement","superMatcher","outermost","matchedCount","setMatched","contextBackup","dirrunsUnique","token","compiled","defaultValue","unique","isXMLDoc","escapeSelector","until","truncate","is","siblings","n","rneedsContext","rsingleTag","risSimple","winnow","qualifier","self","rootjQuery","parseHTML","ready","rparentsprev","guaranteedUnique","children","contents","prev","targets","l","closest","index","prevAll","add","addBack","sibling","parents","parentsUntil","nextAll","nextUntil","prevUntil","contentDocument","reverse","rnothtmlwhite","createOptions","object","flag","Callbacks","firing","memory","fired","locked","queue","firingIndex","fire","once","stopOnFalse","remove","disable","lock","fireWith","Identity","v","Thrower","ex","adoptValue","resolve","reject","method","promise","fail","then","Deferred","func","tuples","state","always","deferred","catch","pipe","fns","newDefer","tuple","returned","progress","notify","onFulfilled","onRejected","onProgress","maxDepth","depth","special","that","mightThrow","TypeError","notifyWith","resolveWith","process","exceptionHook","stackTrace","rejectWith","getStackHook","setTimeout","stateString","when","singleValue","remaining","resolveContexts","resolveValues","master","updateFunc","rerrorNames","stack","console","warn","message","readyException","readyList","readyWait","holdReady","hold","wait","completed","removeEventListener","readyState","doScroll","access","chainable","emptyGet","raw","bulk","acceptData","owner","Data","uid","defineProperty","configurable","set","data","prop","hasData","dataPriv","dataUser","rbrace","rmultiDash","getData","JSON","parse","dataAttr","removeData","_data","_removeData","dequeue","startLength","hooks","_queueHooks","stop","setter","clearQueue","count","defer","pnum","source","rcssNum","cssExpand","isHiddenWithinTree","style","display","css","swap","old","adjustCSS","valueParts","tween","adjusted","scale","maxIterations","currentValue","initial","unit","cssNumber","initialInUnit","defaultDisplayMap","getDefaultDisplay","body","showHide","show","values","hide","toggle","rcheckableType","rtagName","rscriptType","wrapMap","option","thead","col","tr","td","_default","optgroup","tbody","tfoot","colgroup","caption","th","getAll","setGlobalEval","refElements","rhtml","buildFragment","scripts","selection","ignored","wrap","fragment","createDocumentFragment","nodes","htmlPrefilter","createTextNode","div","checkClone","cloneNode","noCloneChecked","rkeyEvent","rmouseEvent","rtypenamespace","returnTrue","returnFalse","safeActiveElement","err","on","types","one","origFn","event","off","handleObjIn","eventHandle","events","t","handleObj","handlers","namespaces","origType","elemData","handle","triggered","dispatch","delegateType","bindType","namespace","delegateCount","setup","mappedTypes","origCount","teardown","removeEvent","nativeEvent","fix","handlerQueue","delegateTarget","preDispatch","isPropagationStopped","currentTarget","isImmediatePropagationStopped","rnamespace","preventDefault","stopPropagation","postDispatch","matchedHandlers","matchedSelectors","addProp","hook","Event","enumerable","originalEvent","writable","load","noBubble","trigger","blur","click","beforeunload","returnValue","props","isDefaultPrevented","defaultPrevented","relatedTarget","timeStamp","isSimulated","stopImmediatePropagation","altKey","bubbles","cancelable","changedTouches","ctrlKey","detail","eventPhase","metaKey","pageX","pageY","shiftKey","view","char","charCode","keyCode","buttons","clientX","clientY","offsetX","offsetY","pointerId","pointerType","screenX","screenY","targetTouches","toElement","touches","which","mouseenter","mouseleave","pointerenter","pointerleave","orig","related","rxhtmlTag","rnoInnerhtml","rchecked","rscriptTypeMasked","rcleanScript","manipulationTarget","content","disableScript","restoreScript","cloneCopyEvent","dest","pdataOld","pdataCur","udataOld","udataCur","fixInput","domManip","collection","hasScripts","iNoClone","html","_evalUrl","keepData","cleanData","dataAndEvents","deepDataAndEvents","srcElements","destElements","inPage","detach","append","prepend","insertBefore","before","after","replaceWith","replaceChild","appendTo","prependTo","insertAfter","replaceAll","original","insert","rmargin","rnumnonpx","getStyles","opener","getComputedStyle","computeStyleTests","cssText","container","divStyle","pixelPositionVal","reliableMarginLeftVal","marginLeft","boxSizingReliableVal","width","marginRight","pixelMarginRightVal","backgroundClip","clearCloneStyle","pixelPosition","boxSizingReliable","pixelMarginRight","reliableMarginLeft","curCSS","computed","minWidth","maxWidth","getPropertyValue","addGetHookIf","conditionFn","hookFn","rdisplayswap","cssShow","position","visibility","cssNormalTransform","letterSpacing","fontWeight","cssPrefixes","emptyStyle","vendorPropName","capName","setPositiveNumber","subtract","max","augmentWidthOrHeight","extra","isBorderBox","styles","getWidthOrHeight","valueIsBorderBox","getClientRects","getBoundingClientRect","cssHooks","opacity","animationIterationCount","columnCount","fillOpacity","flexGrow","flexShrink","lineHeight","order","orphans","widows","zIndex","zoom","cssProps","float","origName","isFinite","left","margin","padding","border","prefix","suffix","expand","expanded","parts","delay","time","fx","speeds","timeout","clearTimeout","opt","checkOn","optSelected","radioValue","boolHook","removeAttr","nType","attrHooks","attrNames","getter","lowercaseName","rfocusable","rclickable","removeProp","propFix","propHooks","tabindex","parseInt","for","class","stripAndCollapse","getClass","addClass","classes","curValue","clazz","finalValue","removeClass","toggleClass","stateVal","classNames","hasClass","rreturn","valHooks","optionSet","rfocusMorph","onlyHandlers","bubbleType","ontype","eventPath","isTrigger","parentWindow","simulate","triggerHandler","hover","fnOver","fnOut","focusin","attaches","rbracket","rCRLF","rsubmitterTypes","rsubmittable","buildParams","traditional","param","s","valueOrFunction","encodeURIComponent","serialize","serializeArray","wrapAll","firstElementChild","wrapInner","unwrap","hidden","visible","offsetWidth","offsetHeight","createHTMLDocument","implementation","keepScripts","parsed","getWindow","offset","setOffset","curPosition","curLeft","curCSSTop","curTop","curOffset","curCSSLeft","calculatePosition","curElem","using","win","rect","height","pageYOffset","clientTop","pageXOffset","clientLeft","offsetParent","parentOffset","scrollLeft","scrollTop","scrollTo","Height","Width","","defaultExtra","funcName","define","amd","_jQuery","_$","$","noConflict"],"mappings":"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","file":"jquery.slim.min.js"}
\ No newline at end of file
--- /dev/null
+/*!
+ * Sizzle CSS Selector Engine v2.3.3
+ * https://sizzlejs.com/
+ *
+ * Copyright jQuery Foundation and other contributors
+ * Released under the MIT license
+ * http://jquery.org/license
+ *
+ * Date: 2016-08-08
+ */
+(function( window ) {
+
+var i,
+ support,
+ Expr,
+ getText,
+ isXML,
+ tokenize,
+ compile,
+ select,
+ outermostContext,
+ sortInput,
+ hasDuplicate,
+
+ // Local document vars
+ setDocument,
+ document,
+ docElem,
+ documentIsHTML,
+ rbuggyQSA,
+ rbuggyMatches,
+ matches,
+ contains,
+
+ // Instance-specific data
+ expando = "sizzle" + 1 * new Date(),
+ preferredDoc = window.document,
+ dirruns = 0,
+ done = 0,
+ classCache = createCache(),
+ tokenCache = createCache(),
+ compilerCache = createCache(),
+ sortOrder = function( a, b ) {
+ if ( a === b ) {
+ hasDuplicate = true;
+ }
+ return 0;
+ },
+
+ // Instance methods
+ hasOwn = ({}).hasOwnProperty,
+ arr = [],
+ pop = arr.pop,
+ push_native = arr.push,
+ push = arr.push,
+ slice = arr.slice,
+ // Use a stripped-down indexOf as it's faster than native
+ // https://jsperf.com/thor-indexof-vs-for/5
+ indexOf = function( list, elem ) {
+ var i = 0,
+ len = list.length;
+ for ( ; i < len; i++ ) {
+ if ( list[i] === elem ) {
+ return i;
+ }
+ }
+ return -1;
+ },
+
+ booleans = "checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",
+
+ // Regular expressions
+
+ // http://www.w3.org/TR/css3-selectors/#whitespace
+ whitespace = "[\\x20\\t\\r\\n\\f]",
+
+ // http://www.w3.org/TR/CSS21/syndata.html#value-def-identifier
+ identifier = "(?:\\\\.|[\\w-]|[^\0-\\xa0])+",
+
+ // Attribute selectors: http://www.w3.org/TR/selectors/#attribute-selectors
+ attributes = "\\[" + whitespace + "*(" + identifier + ")(?:" + whitespace +
+ // Operator (capture 2)
+ "*([*^$|!~]?=)" + whitespace +
+ // "Attribute values must be CSS identifiers [capture 5] or strings [capture 3 or capture 4]"
+ "*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|(" + identifier + "))|)" + whitespace +
+ "*\\]",
+
+ pseudos = ":(" + identifier + ")(?:\\((" +
+ // To reduce the number of selectors needing tokenize in the preFilter, prefer arguments:
+ // 1. quoted (capture 3; capture 4 or capture 5)
+ "('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|" +
+ // 2. simple (capture 6)
+ "((?:\\\\.|[^\\\\()[\\]]|" + attributes + ")*)|" +
+ // 3. anything else (capture 2)
+ ".*" +
+ ")\\)|)",
+
+ // Leading and non-escaped trailing whitespace, capturing some non-whitespace characters preceding the latter
+ rwhitespace = new RegExp( whitespace + "+", "g" ),
+ rtrim = new RegExp( "^" + whitespace + "+|((?:^|[^\\\\])(?:\\\\.)*)" + whitespace + "+$", "g" ),
+
+ rcomma = new RegExp( "^" + whitespace + "*," + whitespace + "*" ),
+ rcombinators = new RegExp( "^" + whitespace + "*([>+~]|" + whitespace + ")" + whitespace + "*" ),
+
+ rattributeQuotes = new RegExp( "=" + whitespace + "*([^\\]'\"]*?)" + whitespace + "*\\]", "g" ),
+
+ rpseudo = new RegExp( pseudos ),
+ ridentifier = new RegExp( "^" + identifier + "$" ),
+
+ matchExpr = {
+ "ID": new RegExp( "^#(" + identifier + ")" ),
+ "CLASS": new RegExp( "^\\.(" + identifier + ")" ),
+ "TAG": new RegExp( "^(" + identifier + "|[*])" ),
+ "ATTR": new RegExp( "^" + attributes ),
+ "PSEUDO": new RegExp( "^" + pseudos ),
+ "CHILD": new RegExp( "^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\(" + whitespace +
+ "*(even|odd|(([+-]|)(\\d*)n|)" + whitespace + "*(?:([+-]|)" + whitespace +
+ "*(\\d+)|))" + whitespace + "*\\)|)", "i" ),
+ "bool": new RegExp( "^(?:" + booleans + ")$", "i" ),
+ // For use in libraries implementing .is()
+ // We use this for POS matching in `select`
+ "needsContext": new RegExp( "^" + whitespace + "*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\(" +
+ whitespace + "*((?:-\\d)?\\d*)" + whitespace + "*\\)|)(?=[^-]|$)", "i" )
+ },
+
+ rinputs = /^(?:input|select|textarea|button)$/i,
+ rheader = /^h\d$/i,
+
+ rnative = /^[^{]+\{\s*\[native \w/,
+
+ // Easily-parseable/retrievable ID or TAG or CLASS selectors
+ rquickExpr = /^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,
+
+ rsibling = /[+~]/,
+
+ // CSS escapes
+ // http://www.w3.org/TR/CSS21/syndata.html#escaped-characters
+ runescape = new RegExp( "\\\\([\\da-f]{1,6}" + whitespace + "?|(" + whitespace + ")|.)", "ig" ),
+ funescape = function( _, escaped, escapedWhitespace ) {
+ var high = "0x" + escaped - 0x10000;
+ // NaN means non-codepoint
+ // Support: Firefox<24
+ // Workaround erroneous numeric interpretation of +"0x"
+ return high !== high || escapedWhitespace ?
+ escaped :
+ high < 0 ?
+ // BMP codepoint
+ String.fromCharCode( high + 0x10000 ) :
+ // Supplemental Plane codepoint (surrogate pair)
+ String.fromCharCode( high >> 10 | 0xD800, high & 0x3FF | 0xDC00 );
+ },
+
+ // CSS string/identifier serialization
+ // https://drafts.csswg.org/cssom/#common-serializing-idioms
+ rcssescape = /([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,
+ fcssescape = function( ch, asCodePoint ) {
+ if ( asCodePoint ) {
+
+ // U+0000 NULL becomes U+FFFD REPLACEMENT CHARACTER
+ if ( ch === "\0" ) {
+ return "\uFFFD";
+ }
+
+ // Control characters and (dependent upon position) numbers get escaped as code points
+ return ch.slice( 0, -1 ) + "\\" + ch.charCodeAt( ch.length - 1 ).toString( 16 ) + " ";
+ }
+
+ // Other potentially-special ASCII characters get backslash-escaped
+ return "\\" + ch;
+ },
+
+ // Used for iframes
+ // See setDocument()
+ // Removing the function wrapper causes a "Permission Denied"
+ // error in IE
+ unloadHandler = function() {
+ setDocument();
+ },
+
+ disabledAncestor = addCombinator(
+ function( elem ) {
+ return elem.disabled === true && ("form" in elem || "label" in elem);
+ },
+ { dir: "parentNode", next: "legend" }
+ );
+
+// Optimize for push.apply( _, NodeList )
+try {
+ push.apply(
+ (arr = slice.call( preferredDoc.childNodes )),
+ preferredDoc.childNodes
+ );
+ // Support: Android<4.0
+ // Detect silently failing push.apply
+ arr[ preferredDoc.childNodes.length ].nodeType;
+} catch ( e ) {
+ push = { apply: arr.length ?
+
+ // Leverage slice if possible
+ function( target, els ) {
+ push_native.apply( target, slice.call(els) );
+ } :
+
+ // Support: IE<9
+ // Otherwise append directly
+ function( target, els ) {
+ var j = target.length,
+ i = 0;
+ // Can't trust NodeList.length
+ while ( (target[j++] = els[i++]) ) {}
+ target.length = j - 1;
+ }
+ };
+}
+
+function Sizzle( selector, context, results, seed ) {
+ var m, i, elem, nid, match, groups, newSelector,
+ newContext = context && context.ownerDocument,
+
+ // nodeType defaults to 9, since context defaults to document
+ nodeType = context ? context.nodeType : 9;
+
+ results = results || [];
+
+ // Return early from calls with invalid selector or context
+ if ( typeof selector !== "string" || !selector ||
+ nodeType !== 1 && nodeType !== 9 && nodeType !== 11 ) {
+
+ return results;
+ }
+
+ // Try to shortcut find operations (as opposed to filters) in HTML documents
+ if ( !seed ) {
+
+ if ( ( context ? context.ownerDocument || context : preferredDoc ) !== document ) {
+ setDocument( context );
+ }
+ context = context || document;
+
+ if ( documentIsHTML ) {
+
+ // If the selector is sufficiently simple, try using a "get*By*" DOM method
+ // (excepting DocumentFragment context, where the methods don't exist)
+ if ( nodeType !== 11 && (match = rquickExpr.exec( selector )) ) {
+
+ // ID selector
+ if ( (m = match[1]) ) {
+
+ // Document context
+ if ( nodeType === 9 ) {
+ if ( (elem = context.getElementById( m )) ) {
+
+ // Support: IE, Opera, Webkit
+ // TODO: identify versions
+ // getElementById can match elements by name instead of ID
+ if ( elem.id === m ) {
+ results.push( elem );
+ return results;
+ }
+ } else {
+ return results;
+ }
+
+ // Element context
+ } else {
+
+ // Support: IE, Opera, Webkit
+ // TODO: identify versions
+ // getElementById can match elements by name instead of ID
+ if ( newContext && (elem = newContext.getElementById( m )) &&
+ contains( context, elem ) &&
+ elem.id === m ) {
+
+ results.push( elem );
+ return results;
+ }
+ }
+
+ // Type selector
+ } else if ( match[2] ) {
+ push.apply( results, context.getElementsByTagName( selector ) );
+ return results;
+
+ // Class selector
+ } else if ( (m = match[3]) && support.getElementsByClassName &&
+ context.getElementsByClassName ) {
+
+ push.apply( results, context.getElementsByClassName( m ) );
+ return results;
+ }
+ }
+
+ // Take advantage of querySelectorAll
+ if ( support.qsa &&
+ !compilerCache[ selector + " " ] &&
+ (!rbuggyQSA || !rbuggyQSA.test( selector )) ) {
+
+ if ( nodeType !== 1 ) {
+ newContext = context;
+ newSelector = selector;
+
+ // qSA looks outside Element context, which is not what we want
+ // Thanks to Andrew Dupont for this workaround technique
+ // Support: IE <=8
+ // Exclude object elements
+ } else if ( context.nodeName.toLowerCase() !== "object" ) {
+
+ // Capture the context ID, setting it first if necessary
+ if ( (nid = context.getAttribute( "id" )) ) {
+ nid = nid.replace( rcssescape, fcssescape );
+ } else {
+ context.setAttribute( "id", (nid = expando) );
+ }
+
+ // Prefix every selector in the list
+ groups = tokenize( selector );
+ i = groups.length;
+ while ( i-- ) {
+ groups[i] = "#" + nid + " " + toSelector( groups[i] );
+ }
+ newSelector = groups.join( "," );
+
+ // Expand context for sibling selectors
+ newContext = rsibling.test( selector ) && testContext( context.parentNode ) ||
+ context;
+ }
+
+ if ( newSelector ) {
+ try {
+ push.apply( results,
+ newContext.querySelectorAll( newSelector )
+ );
+ return results;
+ } catch ( qsaError ) {
+ } finally {
+ if ( nid === expando ) {
+ context.removeAttribute( "id" );
+ }
+ }
+ }
+ }
+ }
+ }
+
+ // All others
+ return select( selector.replace( rtrim, "$1" ), context, results, seed );
+}
+
+/**
+ * Create key-value caches of limited size
+ * @returns {function(string, object)} Returns the Object data after storing it on itself with
+ * property name the (space-suffixed) string and (if the cache is larger than Expr.cacheLength)
+ * deleting the oldest entry
+ */
+function createCache() {
+ var keys = [];
+
+ function cache( key, value ) {
+ // Use (key + " ") to avoid collision with native prototype properties (see Issue #157)
+ if ( keys.push( key + " " ) > Expr.cacheLength ) {
+ // Only keep the most recent entries
+ delete cache[ keys.shift() ];
+ }
+ return (cache[ key + " " ] = value);
+ }
+ return cache;
+}
+
+/**
+ * Mark a function for special use by Sizzle
+ * @param {Function} fn The function to mark
+ */
+function markFunction( fn ) {
+ fn[ expando ] = true;
+ return fn;
+}
+
+/**
+ * Support testing using an element
+ * @param {Function} fn Passed the created element and returns a boolean result
+ */
+function assert( fn ) {
+ var el = document.createElement("fieldset");
+
+ try {
+ return !!fn( el );
+ } catch (e) {
+ return false;
+ } finally {
+ // Remove from its parent by default
+ if ( el.parentNode ) {
+ el.parentNode.removeChild( el );
+ }
+ // release memory in IE
+ el = null;
+ }
+}
+
+/**
+ * Adds the same handler for all of the specified attrs
+ * @param {String} attrs Pipe-separated list of attributes
+ * @param {Function} handler The method that will be applied
+ */
+function addHandle( attrs, handler ) {
+ var arr = attrs.split("|"),
+ i = arr.length;
+
+ while ( i-- ) {
+ Expr.attrHandle[ arr[i] ] = handler;
+ }
+}
+
+/**
+ * Checks document order of two siblings
+ * @param {Element} a
+ * @param {Element} b
+ * @returns {Number} Returns less than 0 if a precedes b, greater than 0 if a follows b
+ */
+function siblingCheck( a, b ) {
+ var cur = b && a,
+ diff = cur && a.nodeType === 1 && b.nodeType === 1 &&
+ a.sourceIndex - b.sourceIndex;
+
+ // Use IE sourceIndex if available on both nodes
+ if ( diff ) {
+ return diff;
+ }
+
+ // Check if b follows a
+ if ( cur ) {
+ while ( (cur = cur.nextSibling) ) {
+ if ( cur === b ) {
+ return -1;
+ }
+ }
+ }
+
+ return a ? 1 : -1;
+}
+
+/**
+ * Returns a function to use in pseudos for input types
+ * @param {String} type
+ */
+function createInputPseudo( type ) {
+ return function( elem ) {
+ var name = elem.nodeName.toLowerCase();
+ return name === "input" && elem.type === type;
+ };
+}
+
+/**
+ * Returns a function to use in pseudos for buttons
+ * @param {String} type
+ */
+function createButtonPseudo( type ) {
+ return function( elem ) {
+ var name = elem.nodeName.toLowerCase();
+ return (name === "input" || name === "button") && elem.type === type;
+ };
+}
+
+/**
+ * Returns a function to use in pseudos for :enabled/:disabled
+ * @param {Boolean} disabled true for :disabled; false for :enabled
+ */
+function createDisabledPseudo( disabled ) {
+
+ // Known :disabled false positives: fieldset[disabled] > legend:nth-of-type(n+2) :can-disable
+ return function( elem ) {
+
+ // Only certain elements can match :enabled or :disabled
+ // https://html.spec.whatwg.org/multipage/scripting.html#selector-enabled
+ // https://html.spec.whatwg.org/multipage/scripting.html#selector-disabled
+ if ( "form" in elem ) {
+
+ // Check for inherited disabledness on relevant non-disabled elements:
+ // * listed form-associated elements in a disabled fieldset
+ // https://html.spec.whatwg.org/multipage/forms.html#category-listed
+ // https://html.spec.whatwg.org/multipage/forms.html#concept-fe-disabled
+ // * option elements in a disabled optgroup
+ // https://html.spec.whatwg.org/multipage/forms.html#concept-option-disabled
+ // All such elements have a "form" property.
+ if ( elem.parentNode && elem.disabled === false ) {
+
+ // Option elements defer to a parent optgroup if present
+ if ( "label" in elem ) {
+ if ( "label" in elem.parentNode ) {
+ return elem.parentNode.disabled === disabled;
+ } else {
+ return elem.disabled === disabled;
+ }
+ }
+
+ // Support: IE 6 - 11
+ // Use the isDisabled shortcut property to check for disabled fieldset ancestors
+ return elem.isDisabled === disabled ||
+
+ // Where there is no isDisabled, check manually
+ /* jshint -W018 */
+ elem.isDisabled !== !disabled &&
+ disabledAncestor( elem ) === disabled;
+ }
+
+ return elem.disabled === disabled;
+
+ // Try to winnow out elements that can't be disabled before trusting the disabled property.
+ // Some victims get caught in our net (label, legend, menu, track), but it shouldn't
+ // even exist on them, let alone have a boolean value.
+ } else if ( "label" in elem ) {
+ return elem.disabled === disabled;
+ }
+
+ // Remaining elements are neither :enabled nor :disabled
+ return false;
+ };
+}
+
+/**
+ * Returns a function to use in pseudos for positionals
+ * @param {Function} fn
+ */
+function createPositionalPseudo( fn ) {
+ return markFunction(function( argument ) {
+ argument = +argument;
+ return markFunction(function( seed, matches ) {
+ var j,
+ matchIndexes = fn( [], seed.length, argument ),
+ i = matchIndexes.length;
+
+ // Match elements found at the specified indexes
+ while ( i-- ) {
+ if ( seed[ (j = matchIndexes[i]) ] ) {
+ seed[j] = !(matches[j] = seed[j]);
+ }
+ }
+ });
+ });
+}
+
+/**
+ * Checks a node for validity as a Sizzle context
+ * @param {Element|Object=} context
+ * @returns {Element|Object|Boolean} The input node if acceptable, otherwise a falsy value
+ */
+function testContext( context ) {
+ return context && typeof context.getElementsByTagName !== "undefined" && context;
+}
+
+// Expose support vars for convenience
+support = Sizzle.support = {};
+
+/**
+ * Detects XML nodes
+ * @param {Element|Object} elem An element or a document
+ * @returns {Boolean} True iff elem is a non-HTML XML node
+ */
+isXML = Sizzle.isXML = function( elem ) {
+ // documentElement is verified for cases where it doesn't yet exist
+ // (such as loading iframes in IE - #4833)
+ var documentElement = elem && (elem.ownerDocument || elem).documentElement;
+ return documentElement ? documentElement.nodeName !== "HTML" : false;
+};
+
+/**
+ * Sets document-related variables once based on the current document
+ * @param {Element|Object} [doc] An element or document object to use to set the document
+ * @returns {Object} Returns the current document
+ */
+setDocument = Sizzle.setDocument = function( node ) {
+ var hasCompare, subWindow,
+ doc = node ? node.ownerDocument || node : preferredDoc;
+
+ // Return early if doc is invalid or already selected
+ if ( doc === document || doc.nodeType !== 9 || !doc.documentElement ) {
+ return document;
+ }
+
+ // Update global variables
+ document = doc;
+ docElem = document.documentElement;
+ documentIsHTML = !isXML( document );
+
+ // Support: IE 9-11, Edge
+ // Accessing iframe documents after unload throws "permission denied" errors (jQuery #13936)
+ if ( preferredDoc !== document &&
+ (subWindow = document.defaultView) && subWindow.top !== subWindow ) {
+
+ // Support: IE 11, Edge
+ if ( subWindow.addEventListener ) {
+ subWindow.addEventListener( "unload", unloadHandler, false );
+
+ // Support: IE 9 - 10 only
+ } else if ( subWindow.attachEvent ) {
+ subWindow.attachEvent( "onunload", unloadHandler );
+ }
+ }
+
+ /* Attributes
+ ---------------------------------------------------------------------- */
+
+ // Support: IE<8
+ // Verify that getAttribute really returns attributes and not properties
+ // (excepting IE8 booleans)
+ support.attributes = assert(function( el ) {
+ el.className = "i";
+ return !el.getAttribute("className");
+ });
+
+ /* getElement(s)By*
+ ---------------------------------------------------------------------- */
+
+ // Check if getElementsByTagName("*") returns only elements
+ support.getElementsByTagName = assert(function( el ) {
+ el.appendChild( document.createComment("") );
+ return !el.getElementsByTagName("*").length;
+ });
+
+ // Support: IE<9
+ support.getElementsByClassName = rnative.test( document.getElementsByClassName );
+
+ // Support: IE<10
+ // Check if getElementById returns elements by name
+ // The broken getElementById methods don't pick up programmatically-set names,
+ // so use a roundabout getElementsByName test
+ support.getById = assert(function( el ) {
+ docElem.appendChild( el ).id = expando;
+ return !document.getElementsByName || !document.getElementsByName( expando ).length;
+ });
+
+ // ID filter and find
+ if ( support.getById ) {
+ Expr.filter["ID"] = function( id ) {
+ var attrId = id.replace( runescape, funescape );
+ return function( elem ) {
+ return elem.getAttribute("id") === attrId;
+ };
+ };
+ Expr.find["ID"] = function( id, context ) {
+ if ( typeof context.getElementById !== "undefined" && documentIsHTML ) {
+ var elem = context.getElementById( id );
+ return elem ? [ elem ] : [];
+ }
+ };
+ } else {
+ Expr.filter["ID"] = function( id ) {
+ var attrId = id.replace( runescape, funescape );
+ return function( elem ) {
+ var node = typeof elem.getAttributeNode !== "undefined" &&
+ elem.getAttributeNode("id");
+ return node && node.value === attrId;
+ };
+ };
+
+ // Support: IE 6 - 7 only
+ // getElementById is not reliable as a find shortcut
+ Expr.find["ID"] = function( id, context ) {
+ if ( typeof context.getElementById !== "undefined" && documentIsHTML ) {
+ var node, i, elems,
+ elem = context.getElementById( id );
+
+ if ( elem ) {
+
+ // Verify the id attribute
+ node = elem.getAttributeNode("id");
+ if ( node && node.value === id ) {
+ return [ elem ];
+ }
+
+ // Fall back on getElementsByName
+ elems = context.getElementsByName( id );
+ i = 0;
+ while ( (elem = elems[i++]) ) {
+ node = elem.getAttributeNode("id");
+ if ( node && node.value === id ) {
+ return [ elem ];
+ }
+ }
+ }
+
+ return [];
+ }
+ };
+ }
+
+ // Tag
+ Expr.find["TAG"] = support.getElementsByTagName ?
+ function( tag, context ) {
+ if ( typeof context.getElementsByTagName !== "undefined" ) {
+ return context.getElementsByTagName( tag );
+
+ // DocumentFragment nodes don't have gEBTN
+ } else if ( support.qsa ) {
+ return context.querySelectorAll( tag );
+ }
+ } :
+
+ function( tag, context ) {
+ var elem,
+ tmp = [],
+ i = 0,
+ // By happy coincidence, a (broken) gEBTN appears on DocumentFragment nodes too
+ results = context.getElementsByTagName( tag );
+
+ // Filter out possible comments
+ if ( tag === "*" ) {
+ while ( (elem = results[i++]) ) {
+ if ( elem.nodeType === 1 ) {
+ tmp.push( elem );
+ }
+ }
+
+ return tmp;
+ }
+ return results;
+ };
+
+ // Class
+ Expr.find["CLASS"] = support.getElementsByClassName && function( className, context ) {
+ if ( typeof context.getElementsByClassName !== "undefined" && documentIsHTML ) {
+ return context.getElementsByClassName( className );
+ }
+ };
+
+ /* QSA/matchesSelector
+ ---------------------------------------------------------------------- */
+
+ // QSA and matchesSelector support
+
+ // matchesSelector(:active) reports false when true (IE9/Opera 11.5)
+ rbuggyMatches = [];
+
+ // qSa(:focus) reports false when true (Chrome 21)
+ // We allow this because of a bug in IE8/9 that throws an error
+ // whenever `document.activeElement` is accessed on an iframe
+ // So, we allow :focus to pass through QSA all the time to avoid the IE error
+ // See https://bugs.jquery.com/ticket/13378
+ rbuggyQSA = [];
+
+ if ( (support.qsa = rnative.test( document.querySelectorAll )) ) {
+ // Build QSA regex
+ // Regex strategy adopted from Diego Perini
+ assert(function( el ) {
+ // Select is set to empty string on purpose
+ // This is to test IE's treatment of not explicitly
+ // setting a boolean content attribute,
+ // since its presence should be enough
+ // https://bugs.jquery.com/ticket/12359
+ docElem.appendChild( el ).innerHTML = "<a id='" + expando + "'></a>" +
+ "<select id='" + expando + "-\r\\' msallowcapture=''>" +
+ "<option selected=''></option></select>";
+
+ // Support: IE8, Opera 11-12.16
+ // Nothing should be selected when empty strings follow ^= or $= or *=
+ // The test attribute must be unknown in Opera but "safe" for WinRT
+ // https://msdn.microsoft.com/en-us/library/ie/hh465388.aspx#attribute_section
+ if ( el.querySelectorAll("[msallowcapture^='']").length ) {
+ rbuggyQSA.push( "[*^$]=" + whitespace + "*(?:''|\"\")" );
+ }
+
+ // Support: IE8
+ // Boolean attributes and "value" are not treated correctly
+ if ( !el.querySelectorAll("[selected]").length ) {
+ rbuggyQSA.push( "\\[" + whitespace + "*(?:value|" + booleans + ")" );
+ }
+
+ // Support: Chrome<29, Android<4.4, Safari<7.0+, iOS<7.0+, PhantomJS<1.9.8+
+ if ( !el.querySelectorAll( "[id~=" + expando + "-]" ).length ) {
+ rbuggyQSA.push("~=");
+ }
+
+ // Webkit/Opera - :checked should return selected option elements
+ // http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked
+ // IE8 throws error here and will not see later tests
+ if ( !el.querySelectorAll(":checked").length ) {
+ rbuggyQSA.push(":checked");
+ }
+
+ // Support: Safari 8+, iOS 8+
+ // https://bugs.webkit.org/show_bug.cgi?id=136851
+ // In-page `selector#id sibling-combinator selector` fails
+ if ( !el.querySelectorAll( "a#" + expando + "+*" ).length ) {
+ rbuggyQSA.push(".#.+[+~]");
+ }
+ });
+
+ assert(function( el ) {
+ el.innerHTML = "<a href='' disabled='disabled'></a>" +
+ "<select disabled='disabled'><option/></select>";
+
+ // Support: Windows 8 Native Apps
+ // The type and name attributes are restricted during .innerHTML assignment
+ var input = document.createElement("input");
+ input.setAttribute( "type", "hidden" );
+ el.appendChild( input ).setAttribute( "name", "D" );
+
+ // Support: IE8
+ // Enforce case-sensitivity of name attribute
+ if ( el.querySelectorAll("[name=d]").length ) {
+ rbuggyQSA.push( "name" + whitespace + "*[*^$|!~]?=" );
+ }
+
+ // FF 3.5 - :enabled/:disabled and hidden elements (hidden elements are still enabled)
+ // IE8 throws error here and will not see later tests
+ if ( el.querySelectorAll(":enabled").length !== 2 ) {
+ rbuggyQSA.push( ":enabled", ":disabled" );
+ }
+
+ // Support: IE9-11+
+ // IE's :disabled selector does not pick up the children of disabled fieldsets
+ docElem.appendChild( el ).disabled = true;
+ if ( el.querySelectorAll(":disabled").length !== 2 ) {
+ rbuggyQSA.push( ":enabled", ":disabled" );
+ }
+
+ // Opera 10-11 does not throw on post-comma invalid pseudos
+ el.querySelectorAll("*,:x");
+ rbuggyQSA.push(",.*:");
+ });
+ }
+
+ if ( (support.matchesSelector = rnative.test( (matches = docElem.matches ||
+ docElem.webkitMatchesSelector ||
+ docElem.mozMatchesSelector ||
+ docElem.oMatchesSelector ||
+ docElem.msMatchesSelector) )) ) {
+
+ assert(function( el ) {
+ // Check to see if it's possible to do matchesSelector
+ // on a disconnected node (IE 9)
+ support.disconnectedMatch = matches.call( el, "*" );
+
+ // This should fail with an exception
+ // Gecko does not error, returns false instead
+ matches.call( el, "[s!='']:x" );
+ rbuggyMatches.push( "!=", pseudos );
+ });
+ }
+
+ rbuggyQSA = rbuggyQSA.length && new RegExp( rbuggyQSA.join("|") );
+ rbuggyMatches = rbuggyMatches.length && new RegExp( rbuggyMatches.join("|") );
+
+ /* Contains
+ ---------------------------------------------------------------------- */
+ hasCompare = rnative.test( docElem.compareDocumentPosition );
+
+ // Element contains another
+ // Purposefully self-exclusive
+ // As in, an element does not contain itself
+ contains = hasCompare || rnative.test( docElem.contains ) ?
+ function( a, b ) {
+ var adown = a.nodeType === 9 ? a.documentElement : a,
+ bup = b && b.parentNode;
+ return a === bup || !!( bup && bup.nodeType === 1 && (
+ adown.contains ?
+ adown.contains( bup ) :
+ a.compareDocumentPosition && a.compareDocumentPosition( bup ) & 16
+ ));
+ } :
+ function( a, b ) {
+ if ( b ) {
+ while ( (b = b.parentNode) ) {
+ if ( b === a ) {
+ return true;
+ }
+ }
+ }
+ return false;
+ };
+
+ /* Sorting
+ ---------------------------------------------------------------------- */
+
+ // Document order sorting
+ sortOrder = hasCompare ?
+ function( a, b ) {
+
+ // Flag for duplicate removal
+ if ( a === b ) {
+ hasDuplicate = true;
+ return 0;
+ }
+
+ // Sort on method existence if only one input has compareDocumentPosition
+ var compare = !a.compareDocumentPosition - !b.compareDocumentPosition;
+ if ( compare ) {
+ return compare;
+ }
+
+ // Calculate position if both inputs belong to the same document
+ compare = ( a.ownerDocument || a ) === ( b.ownerDocument || b ) ?
+ a.compareDocumentPosition( b ) :
+
+ // Otherwise we know they are disconnected
+ 1;
+
+ // Disconnected nodes
+ if ( compare & 1 ||
+ (!support.sortDetached && b.compareDocumentPosition( a ) === compare) ) {
+
+ // Choose the first element that is related to our preferred document
+ if ( a === document || a.ownerDocument === preferredDoc && contains(preferredDoc, a) ) {
+ return -1;
+ }
+ if ( b === document || b.ownerDocument === preferredDoc && contains(preferredDoc, b) ) {
+ return 1;
+ }
+
+ // Maintain original order
+ return sortInput ?
+ ( indexOf( sortInput, a ) - indexOf( sortInput, b ) ) :
+ 0;
+ }
+
+ return compare & 4 ? -1 : 1;
+ } :
+ function( a, b ) {
+ // Exit early if the nodes are identical
+ if ( a === b ) {
+ hasDuplicate = true;
+ return 0;
+ }
+
+ var cur,
+ i = 0,
+ aup = a.parentNode,
+ bup = b.parentNode,
+ ap = [ a ],
+ bp = [ b ];
+
+ // Parentless nodes are either documents or disconnected
+ if ( !aup || !bup ) {
+ return a === document ? -1 :
+ b === document ? 1 :
+ aup ? -1 :
+ bup ? 1 :
+ sortInput ?
+ ( indexOf( sortInput, a ) - indexOf( sortInput, b ) ) :
+ 0;
+
+ // If the nodes are siblings, we can do a quick check
+ } else if ( aup === bup ) {
+ return siblingCheck( a, b );
+ }
+
+ // Otherwise we need full lists of their ancestors for comparison
+ cur = a;
+ while ( (cur = cur.parentNode) ) {
+ ap.unshift( cur );
+ }
+ cur = b;
+ while ( (cur = cur.parentNode) ) {
+ bp.unshift( cur );
+ }
+
+ // Walk down the tree looking for a discrepancy
+ while ( ap[i] === bp[i] ) {
+ i++;
+ }
+
+ return i ?
+ // Do a sibling check if the nodes have a common ancestor
+ siblingCheck( ap[i], bp[i] ) :
+
+ // Otherwise nodes in our document sort first
+ ap[i] === preferredDoc ? -1 :
+ bp[i] === preferredDoc ? 1 :
+ 0;
+ };
+
+ return document;
+};
+
+Sizzle.matches = function( expr, elements ) {
+ return Sizzle( expr, null, null, elements );
+};
+
+Sizzle.matchesSelector = function( elem, expr ) {
+ // Set document vars if needed
+ if ( ( elem.ownerDocument || elem ) !== document ) {
+ setDocument( elem );
+ }
+
+ // Make sure that attribute selectors are quoted
+ expr = expr.replace( rattributeQuotes, "='$1']" );
+
+ if ( support.matchesSelector && documentIsHTML &&
+ !compilerCache[ expr + " " ] &&
+ ( !rbuggyMatches || !rbuggyMatches.test( expr ) ) &&
+ ( !rbuggyQSA || !rbuggyQSA.test( expr ) ) ) {
+
+ try {
+ var ret = matches.call( elem, expr );
+
+ // IE 9's matchesSelector returns false on disconnected nodes
+ if ( ret || support.disconnectedMatch ||
+ // As well, disconnected nodes are said to be in a document
+ // fragment in IE 9
+ elem.document && elem.document.nodeType !== 11 ) {
+ return ret;
+ }
+ } catch (e) {}
+ }
+
+ return Sizzle( expr, document, null, [ elem ] ).length > 0;
+};
+
+Sizzle.contains = function( context, elem ) {
+ // Set document vars if needed
+ if ( ( context.ownerDocument || context ) !== document ) {
+ setDocument( context );
+ }
+ return contains( context, elem );
+};
+
+Sizzle.attr = function( elem, name ) {
+ // Set document vars if needed
+ if ( ( elem.ownerDocument || elem ) !== document ) {
+ setDocument( elem );
+ }
+
+ var fn = Expr.attrHandle[ name.toLowerCase() ],
+ // Don't get fooled by Object.prototype properties (jQuery #13807)
+ val = fn && hasOwn.call( Expr.attrHandle, name.toLowerCase() ) ?
+ fn( elem, name, !documentIsHTML ) :
+ undefined;
+
+ return val !== undefined ?
+ val :
+ support.attributes || !documentIsHTML ?
+ elem.getAttribute( name ) :
+ (val = elem.getAttributeNode(name)) && val.specified ?
+ val.value :
+ null;
+};
+
+Sizzle.escape = function( sel ) {
+ return (sel + "").replace( rcssescape, fcssescape );
+};
+
+Sizzle.error = function( msg ) {
+ throw new Error( "Syntax error, unrecognized expression: " + msg );
+};
+
+/**
+ * Document sorting and removing duplicates
+ * @param {ArrayLike} results
+ */
+Sizzle.uniqueSort = function( results ) {
+ var elem,
+ duplicates = [],
+ j = 0,
+ i = 0;
+
+ // Unless we *know* we can detect duplicates, assume their presence
+ hasDuplicate = !support.detectDuplicates;
+ sortInput = !support.sortStable && results.slice( 0 );
+ results.sort( sortOrder );
+
+ if ( hasDuplicate ) {
+ while ( (elem = results[i++]) ) {
+ if ( elem === results[ i ] ) {
+ j = duplicates.push( i );
+ }
+ }
+ while ( j-- ) {
+ results.splice( duplicates[ j ], 1 );
+ }
+ }
+
+ // Clear input after sorting to release objects
+ // See https://github.com/jquery/sizzle/pull/225
+ sortInput = null;
+
+ return results;
+};
+
+/**
+ * Utility function for retrieving the text value of an array of DOM nodes
+ * @param {Array|Element} elem
+ */
+getText = Sizzle.getText = function( elem ) {
+ var node,
+ ret = "",
+ i = 0,
+ nodeType = elem.nodeType;
+
+ if ( !nodeType ) {
+ // If no nodeType, this is expected to be an array
+ while ( (node = elem[i++]) ) {
+ // Do not traverse comment nodes
+ ret += getText( node );
+ }
+ } else if ( nodeType === 1 || nodeType === 9 || nodeType === 11 ) {
+ // Use textContent for elements
+ // innerText usage removed for consistency of new lines (jQuery #11153)
+ if ( typeof elem.textContent === "string" ) {
+ return elem.textContent;
+ } else {
+ // Traverse its children
+ for ( elem = elem.firstChild; elem; elem = elem.nextSibling ) {
+ ret += getText( elem );
+ }
+ }
+ } else if ( nodeType === 3 || nodeType === 4 ) {
+ return elem.nodeValue;
+ }
+ // Do not include comment or processing instruction nodes
+
+ return ret;
+};
+
+Expr = Sizzle.selectors = {
+
+ // Can be adjusted by the user
+ cacheLength: 50,
+
+ createPseudo: markFunction,
+
+ match: matchExpr,
+
+ attrHandle: {},
+
+ find: {},
+
+ relative: {
+ ">": { dir: "parentNode", first: true },
+ " ": { dir: "parentNode" },
+ "+": { dir: "previousSibling", first: true },
+ "~": { dir: "previousSibling" }
+ },
+
+ preFilter: {
+ "ATTR": function( match ) {
+ match[1] = match[1].replace( runescape, funescape );
+
+ // Move the given value to match[3] whether quoted or unquoted
+ match[3] = ( match[3] || match[4] || match[5] || "" ).replace( runescape, funescape );
+
+ if ( match[2] === "~=" ) {
+ match[3] = " " + match[3] + " ";
+ }
+
+ return match.slice( 0, 4 );
+ },
+
+ "CHILD": function( match ) {
+ /* matches from matchExpr["CHILD"]
+ 1 type (only|nth|...)
+ 2 what (child|of-type)
+ 3 argument (even|odd|\d*|\d*n([+-]\d+)?|...)
+ 4 xn-component of xn+y argument ([+-]?\d*n|)
+ 5 sign of xn-component
+ 6 x of xn-component
+ 7 sign of y-component
+ 8 y of y-component
+ */
+ match[1] = match[1].toLowerCase();
+
+ if ( match[1].slice( 0, 3 ) === "nth" ) {
+ // nth-* requires argument
+ if ( !match[3] ) {
+ Sizzle.error( match[0] );
+ }
+
+ // numeric x and y parameters for Expr.filter.CHILD
+ // remember that false/true cast respectively to 0/1
+ match[4] = +( match[4] ? match[5] + (match[6] || 1) : 2 * ( match[3] === "even" || match[3] === "odd" ) );
+ match[5] = +( ( match[7] + match[8] ) || match[3] === "odd" );
+
+ // other types prohibit arguments
+ } else if ( match[3] ) {
+ Sizzle.error( match[0] );
+ }
+
+ return match;
+ },
+
+ "PSEUDO": function( match ) {
+ var excess,
+ unquoted = !match[6] && match[2];
+
+ if ( matchExpr["CHILD"].test( match[0] ) ) {
+ return null;
+ }
+
+ // Accept quoted arguments as-is
+ if ( match[3] ) {
+ match[2] = match[4] || match[5] || "";
+
+ // Strip excess characters from unquoted arguments
+ } else if ( unquoted && rpseudo.test( unquoted ) &&
+ // Get excess from tokenize (recursively)
+ (excess = tokenize( unquoted, true )) &&
+ // advance to the next closing parenthesis
+ (excess = unquoted.indexOf( ")", unquoted.length - excess ) - unquoted.length) ) {
+
+ // excess is a negative index
+ match[0] = match[0].slice( 0, excess );
+ match[2] = unquoted.slice( 0, excess );
+ }
+
+ // Return only captures needed by the pseudo filter method (type and argument)
+ return match.slice( 0, 3 );
+ }
+ },
+
+ filter: {
+
+ "TAG": function( nodeNameSelector ) {
+ var nodeName = nodeNameSelector.replace( runescape, funescape ).toLowerCase();
+ return nodeNameSelector === "*" ?
+ function() { return true; } :
+ function( elem ) {
+ return elem.nodeName && elem.nodeName.toLowerCase() === nodeName;
+ };
+ },
+
+ "CLASS": function( className ) {
+ var pattern = classCache[ className + " " ];
+
+ return pattern ||
+ (pattern = new RegExp( "(^|" + whitespace + ")" + className + "(" + whitespace + "|$)" )) &&
+ classCache( className, function( elem ) {
+ return pattern.test( typeof elem.className === "string" && elem.className || typeof elem.getAttribute !== "undefined" && elem.getAttribute("class") || "" );
+ });
+ },
+
+ "ATTR": function( name, operator, check ) {
+ return function( elem ) {
+ var result = Sizzle.attr( elem, name );
+
+ if ( result == null ) {
+ return operator === "!=";
+ }
+ if ( !operator ) {
+ return true;
+ }
+
+ result += "";
+
+ return operator === "=" ? result === check :
+ operator === "!=" ? result !== check :
+ operator === "^=" ? check && result.indexOf( check ) === 0 :
+ operator === "*=" ? check && result.indexOf( check ) > -1 :
+ operator === "$=" ? check && result.slice( -check.length ) === check :
+ operator === "~=" ? ( " " + result.replace( rwhitespace, " " ) + " " ).indexOf( check ) > -1 :
+ operator === "|=" ? result === check || result.slice( 0, check.length + 1 ) === check + "-" :
+ false;
+ };
+ },
+
+ "CHILD": function( type, what, argument, first, last ) {
+ var simple = type.slice( 0, 3 ) !== "nth",
+ forward = type.slice( -4 ) !== "last",
+ ofType = what === "of-type";
+
+ return first === 1 && last === 0 ?
+
+ // Shortcut for :nth-*(n)
+ function( elem ) {
+ return !!elem.parentNode;
+ } :
+
+ function( elem, context, xml ) {
+ var cache, uniqueCache, outerCache, node, nodeIndex, start,
+ dir = simple !== forward ? "nextSibling" : "previousSibling",
+ parent = elem.parentNode,
+ name = ofType && elem.nodeName.toLowerCase(),
+ useCache = !xml && !ofType,
+ diff = false;
+
+ if ( parent ) {
+
+ // :(first|last|only)-(child|of-type)
+ if ( simple ) {
+ while ( dir ) {
+ node = elem;
+ while ( (node = node[ dir ]) ) {
+ if ( ofType ?
+ node.nodeName.toLowerCase() === name :
+ node.nodeType === 1 ) {
+
+ return false;
+ }
+ }
+ // Reverse direction for :only-* (if we haven't yet done so)
+ start = dir = type === "only" && !start && "nextSibling";
+ }
+ return true;
+ }
+
+ start = [ forward ? parent.firstChild : parent.lastChild ];
+
+ // non-xml :nth-child(...) stores cache data on `parent`
+ if ( forward && useCache ) {
+
+ // Seek `elem` from a previously-cached index
+
+ // ...in a gzip-friendly way
+ node = parent;
+ outerCache = node[ expando ] || (node[ expando ] = {});
+
+ // Support: IE <9 only
+ // Defend against cloned attroperties (jQuery gh-1709)
+ uniqueCache = outerCache[ node.uniqueID ] ||
+ (outerCache[ node.uniqueID ] = {});
+
+ cache = uniqueCache[ type ] || [];
+ nodeIndex = cache[ 0 ] === dirruns && cache[ 1 ];
+ diff = nodeIndex && cache[ 2 ];
+ node = nodeIndex && parent.childNodes[ nodeIndex ];
+
+ while ( (node = ++nodeIndex && node && node[ dir ] ||
+
+ // Fallback to seeking `elem` from the start
+ (diff = nodeIndex = 0) || start.pop()) ) {
+
+ // When found, cache indexes on `parent` and break
+ if ( node.nodeType === 1 && ++diff && node === elem ) {
+ uniqueCache[ type ] = [ dirruns, nodeIndex, diff ];
+ break;
+ }
+ }
+
+ } else {
+ // Use previously-cached element index if available
+ if ( useCache ) {
+ // ...in a gzip-friendly way
+ node = elem;
+ outerCache = node[ expando ] || (node[ expando ] = {});
+
+ // Support: IE <9 only
+ // Defend against cloned attroperties (jQuery gh-1709)
+ uniqueCache = outerCache[ node.uniqueID ] ||
+ (outerCache[ node.uniqueID ] = {});
+
+ cache = uniqueCache[ type ] || [];
+ nodeIndex = cache[ 0 ] === dirruns && cache[ 1 ];
+ diff = nodeIndex;
+ }
+
+ // xml :nth-child(...)
+ // or :nth-last-child(...) or :nth(-last)?-of-type(...)
+ if ( diff === false ) {
+ // Use the same loop as above to seek `elem` from the start
+ while ( (node = ++nodeIndex && node && node[ dir ] ||
+ (diff = nodeIndex = 0) || start.pop()) ) {
+
+ if ( ( ofType ?
+ node.nodeName.toLowerCase() === name :
+ node.nodeType === 1 ) &&
+ ++diff ) {
+
+ // Cache the index of each encountered element
+ if ( useCache ) {
+ outerCache = node[ expando ] || (node[ expando ] = {});
+
+ // Support: IE <9 only
+ // Defend against cloned attroperties (jQuery gh-1709)
+ uniqueCache = outerCache[ node.uniqueID ] ||
+ (outerCache[ node.uniqueID ] = {});
+
+ uniqueCache[ type ] = [ dirruns, diff ];
+ }
+
+ if ( node === elem ) {
+ break;
+ }
+ }
+ }
+ }
+ }
+
+ // Incorporate the offset, then check against cycle size
+ diff -= last;
+ return diff === first || ( diff % first === 0 && diff / first >= 0 );
+ }
+ };
+ },
+
+ "PSEUDO": function( pseudo, argument ) {
+ // pseudo-class names are case-insensitive
+ // http://www.w3.org/TR/selectors/#pseudo-classes
+ // Prioritize by case sensitivity in case custom pseudos are added with uppercase letters
+ // Remember that setFilters inherits from pseudos
+ var args,
+ fn = Expr.pseudos[ pseudo ] || Expr.setFilters[ pseudo.toLowerCase() ] ||
+ Sizzle.error( "unsupported pseudo: " + pseudo );
+
+ // The user may use createPseudo to indicate that
+ // arguments are needed to create the filter function
+ // just as Sizzle does
+ if ( fn[ expando ] ) {
+ return fn( argument );
+ }
+
+ // But maintain support for old signatures
+ if ( fn.length > 1 ) {
+ args = [ pseudo, pseudo, "", argument ];
+ return Expr.setFilters.hasOwnProperty( pseudo.toLowerCase() ) ?
+ markFunction(function( seed, matches ) {
+ var idx,
+ matched = fn( seed, argument ),
+ i = matched.length;
+ while ( i-- ) {
+ idx = indexOf( seed, matched[i] );
+ seed[ idx ] = !( matches[ idx ] = matched[i] );
+ }
+ }) :
+ function( elem ) {
+ return fn( elem, 0, args );
+ };
+ }
+
+ return fn;
+ }
+ },
+
+ pseudos: {
+ // Potentially complex pseudos
+ "not": markFunction(function( selector ) {
+ // Trim the selector passed to compile
+ // to avoid treating leading and trailing
+ // spaces as combinators
+ var input = [],
+ results = [],
+ matcher = compile( selector.replace( rtrim, "$1" ) );
+
+ return matcher[ expando ] ?
+ markFunction(function( seed, matches, context, xml ) {
+ var elem,
+ unmatched = matcher( seed, null, xml, [] ),
+ i = seed.length;
+
+ // Match elements unmatched by `matcher`
+ while ( i-- ) {
+ if ( (elem = unmatched[i]) ) {
+ seed[i] = !(matches[i] = elem);
+ }
+ }
+ }) :
+ function( elem, context, xml ) {
+ input[0] = elem;
+ matcher( input, null, xml, results );
+ // Don't keep the element (issue #299)
+ input[0] = null;
+ return !results.pop();
+ };
+ }),
+
+ "has": markFunction(function( selector ) {
+ return function( elem ) {
+ return Sizzle( selector, elem ).length > 0;
+ };
+ }),
+
+ "contains": markFunction(function( text ) {
+ text = text.replace( runescape, funescape );
+ return function( elem ) {
+ return ( elem.textContent || elem.innerText || getText( elem ) ).indexOf( text ) > -1;
+ };
+ }),
+
+ // "Whether an element is represented by a :lang() selector
+ // is based solely on the element's language value
+ // being equal to the identifier C,
+ // or beginning with the identifier C immediately followed by "-".
+ // The matching of C against the element's language value is performed case-insensitively.
+ // The identifier C does not have to be a valid language name."
+ // http://www.w3.org/TR/selectors/#lang-pseudo
+ "lang": markFunction( function( lang ) {
+ // lang value must be a valid identifier
+ if ( !ridentifier.test(lang || "") ) {
+ Sizzle.error( "unsupported lang: " + lang );
+ }
+ lang = lang.replace( runescape, funescape ).toLowerCase();
+ return function( elem ) {
+ var elemLang;
+ do {
+ if ( (elemLang = documentIsHTML ?
+ elem.lang :
+ elem.getAttribute("xml:lang") || elem.getAttribute("lang")) ) {
+
+ elemLang = elemLang.toLowerCase();
+ return elemLang === lang || elemLang.indexOf( lang + "-" ) === 0;
+ }
+ } while ( (elem = elem.parentNode) && elem.nodeType === 1 );
+ return false;
+ };
+ }),
+
+ // Miscellaneous
+ "target": function( elem ) {
+ var hash = window.location && window.location.hash;
+ return hash && hash.slice( 1 ) === elem.id;
+ },
+
+ "root": function( elem ) {
+ return elem === docElem;
+ },
+
+ "focus": function( elem ) {
+ return elem === document.activeElement && (!document.hasFocus || document.hasFocus()) && !!(elem.type || elem.href || ~elem.tabIndex);
+ },
+
+ // Boolean properties
+ "enabled": createDisabledPseudo( false ),
+ "disabled": createDisabledPseudo( true ),
+
+ "checked": function( elem ) {
+ // In CSS3, :checked should return both checked and selected elements
+ // http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked
+ var nodeName = elem.nodeName.toLowerCase();
+ return (nodeName === "input" && !!elem.checked) || (nodeName === "option" && !!elem.selected);
+ },
+
+ "selected": function( elem ) {
+ // Accessing this property makes selected-by-default
+ // options in Safari work properly
+ if ( elem.parentNode ) {
+ elem.parentNode.selectedIndex;
+ }
+
+ return elem.selected === true;
+ },
+
+ // Contents
+ "empty": function( elem ) {
+ // http://www.w3.org/TR/selectors/#empty-pseudo
+ // :empty is negated by element (1) or content nodes (text: 3; cdata: 4; entity ref: 5),
+ // but not by others (comment: 8; processing instruction: 7; etc.)
+ // nodeType < 6 works because attributes (2) do not appear as children
+ for ( elem = elem.firstChild; elem; elem = elem.nextSibling ) {
+ if ( elem.nodeType < 6 ) {
+ return false;
+ }
+ }
+ return true;
+ },
+
+ "parent": function( elem ) {
+ return !Expr.pseudos["empty"]( elem );
+ },
+
+ // Element/input types
+ "header": function( elem ) {
+ return rheader.test( elem.nodeName );
+ },
+
+ "input": function( elem ) {
+ return rinputs.test( elem.nodeName );
+ },
+
+ "button": function( elem ) {
+ var name = elem.nodeName.toLowerCase();
+ return name === "input" && elem.type === "button" || name === "button";
+ },
+
+ "text": function( elem ) {
+ var attr;
+ return elem.nodeName.toLowerCase() === "input" &&
+ elem.type === "text" &&
+
+ // Support: IE<8
+ // New HTML5 attribute values (e.g., "search") appear with elem.type === "text"
+ ( (attr = elem.getAttribute("type")) == null || attr.toLowerCase() === "text" );
+ },
+
+ // Position-in-collection
+ "first": createPositionalPseudo(function() {
+ return [ 0 ];
+ }),
+
+ "last": createPositionalPseudo(function( matchIndexes, length ) {
+ return [ length - 1 ];
+ }),
+
+ "eq": createPositionalPseudo(function( matchIndexes, length, argument ) {
+ return [ argument < 0 ? argument + length : argument ];
+ }),
+
+ "even": createPositionalPseudo(function( matchIndexes, length ) {
+ var i = 0;
+ for ( ; i < length; i += 2 ) {
+ matchIndexes.push( i );
+ }
+ return matchIndexes;
+ }),
+
+ "odd": createPositionalPseudo(function( matchIndexes, length ) {
+ var i = 1;
+ for ( ; i < length; i += 2 ) {
+ matchIndexes.push( i );
+ }
+ return matchIndexes;
+ }),
+
+ "lt": createPositionalPseudo(function( matchIndexes, length, argument ) {
+ var i = argument < 0 ? argument + length : argument;
+ for ( ; --i >= 0; ) {
+ matchIndexes.push( i );
+ }
+ return matchIndexes;
+ }),
+
+ "gt": createPositionalPseudo(function( matchIndexes, length, argument ) {
+ var i = argument < 0 ? argument + length : argument;
+ for ( ; ++i < length; ) {
+ matchIndexes.push( i );
+ }
+ return matchIndexes;
+ })
+ }
+};
+
+Expr.pseudos["nth"] = Expr.pseudos["eq"];
+
+// Add button/input type pseudos
+for ( i in { radio: true, checkbox: true, file: true, password: true, image: true } ) {
+ Expr.pseudos[ i ] = createInputPseudo( i );
+}
+for ( i in { submit: true, reset: true } ) {
+ Expr.pseudos[ i ] = createButtonPseudo( i );
+}
+
+// Easy API for creating new setFilters
+function setFilters() {}
+setFilters.prototype = Expr.filters = Expr.pseudos;
+Expr.setFilters = new setFilters();
+
+tokenize = Sizzle.tokenize = function( selector, parseOnly ) {
+ var matched, match, tokens, type,
+ soFar, groups, preFilters,
+ cached = tokenCache[ selector + " " ];
+
+ if ( cached ) {
+ return parseOnly ? 0 : cached.slice( 0 );
+ }
+
+ soFar = selector;
+ groups = [];
+ preFilters = Expr.preFilter;
+
+ while ( soFar ) {
+
+ // Comma and first run
+ if ( !matched || (match = rcomma.exec( soFar )) ) {
+ if ( match ) {
+ // Don't consume trailing commas as valid
+ soFar = soFar.slice( match[0].length ) || soFar;
+ }
+ groups.push( (tokens = []) );
+ }
+
+ matched = false;
+
+ // Combinators
+ if ( (match = rcombinators.exec( soFar )) ) {
+ matched = match.shift();
+ tokens.push({
+ value: matched,
+ // Cast descendant combinators to space
+ type: match[0].replace( rtrim, " " )
+ });
+ soFar = soFar.slice( matched.length );
+ }
+
+ // Filters
+ for ( type in Expr.filter ) {
+ if ( (match = matchExpr[ type ].exec( soFar )) && (!preFilters[ type ] ||
+ (match = preFilters[ type ]( match ))) ) {
+ matched = match.shift();
+ tokens.push({
+ value: matched,
+ type: type,
+ matches: match
+ });
+ soFar = soFar.slice( matched.length );
+ }
+ }
+
+ if ( !matched ) {
+ break;
+ }
+ }
+
+ // Return the length of the invalid excess
+ // if we're just parsing
+ // Otherwise, throw an error or return tokens
+ return parseOnly ?
+ soFar.length :
+ soFar ?
+ Sizzle.error( selector ) :
+ // Cache the tokens
+ tokenCache( selector, groups ).slice( 0 );
+};
+
+function toSelector( tokens ) {
+ var i = 0,
+ len = tokens.length,
+ selector = "";
+ for ( ; i < len; i++ ) {
+ selector += tokens[i].value;
+ }
+ return selector;
+}
+
+function addCombinator( matcher, combinator, base ) {
+ var dir = combinator.dir,
+ skip = combinator.next,
+ key = skip || dir,
+ checkNonElements = base && key === "parentNode",
+ doneName = done++;
+
+ return combinator.first ?
+ // Check against closest ancestor/preceding element
+ function( elem, context, xml ) {
+ while ( (elem = elem[ dir ]) ) {
+ if ( elem.nodeType === 1 || checkNonElements ) {
+ return matcher( elem, context, xml );
+ }
+ }
+ return false;
+ } :
+
+ // Check against all ancestor/preceding elements
+ function( elem, context, xml ) {
+ var oldCache, uniqueCache, outerCache,
+ newCache = [ dirruns, doneName ];
+
+ // We can't set arbitrary data on XML nodes, so they don't benefit from combinator caching
+ if ( xml ) {
+ while ( (elem = elem[ dir ]) ) {
+ if ( elem.nodeType === 1 || checkNonElements ) {
+ if ( matcher( elem, context, xml ) ) {
+ return true;
+ }
+ }
+ }
+ } else {
+ while ( (elem = elem[ dir ]) ) {
+ if ( elem.nodeType === 1 || checkNonElements ) {
+ outerCache = elem[ expando ] || (elem[ expando ] = {});
+
+ // Support: IE <9 only
+ // Defend against cloned attroperties (jQuery gh-1709)
+ uniqueCache = outerCache[ elem.uniqueID ] || (outerCache[ elem.uniqueID ] = {});
+
+ if ( skip && skip === elem.nodeName.toLowerCase() ) {
+ elem = elem[ dir ] || elem;
+ } else if ( (oldCache = uniqueCache[ key ]) &&
+ oldCache[ 0 ] === dirruns && oldCache[ 1 ] === doneName ) {
+
+ // Assign to newCache so results back-propagate to previous elements
+ return (newCache[ 2 ] = oldCache[ 2 ]);
+ } else {
+ // Reuse newcache so results back-propagate to previous elements
+ uniqueCache[ key ] = newCache;
+
+ // A match means we're done; a fail means we have to keep checking
+ if ( (newCache[ 2 ] = matcher( elem, context, xml )) ) {
+ return true;
+ }
+ }
+ }
+ }
+ }
+ return false;
+ };
+}
+
+function elementMatcher( matchers ) {
+ return matchers.length > 1 ?
+ function( elem, context, xml ) {
+ var i = matchers.length;
+ while ( i-- ) {
+ if ( !matchers[i]( elem, context, xml ) ) {
+ return false;
+ }
+ }
+ return true;
+ } :
+ matchers[0];
+}
+
+function multipleContexts( selector, contexts, results ) {
+ var i = 0,
+ len = contexts.length;
+ for ( ; i < len; i++ ) {
+ Sizzle( selector, contexts[i], results );
+ }
+ return results;
+}
+
+function condense( unmatched, map, filter, context, xml ) {
+ var elem,
+ newUnmatched = [],
+ i = 0,
+ len = unmatched.length,
+ mapped = map != null;
+
+ for ( ; i < len; i++ ) {
+ if ( (elem = unmatched[i]) ) {
+ if ( !filter || filter( elem, context, xml ) ) {
+ newUnmatched.push( elem );
+ if ( mapped ) {
+ map.push( i );
+ }
+ }
+ }
+ }
+
+ return newUnmatched;
+}
+
+function setMatcher( preFilter, selector, matcher, postFilter, postFinder, postSelector ) {
+ if ( postFilter && !postFilter[ expando ] ) {
+ postFilter = setMatcher( postFilter );
+ }
+ if ( postFinder && !postFinder[ expando ] ) {
+ postFinder = setMatcher( postFinder, postSelector );
+ }
+ return markFunction(function( seed, results, context, xml ) {
+ var temp, i, elem,
+ preMap = [],
+ postMap = [],
+ preexisting = results.length,
+
+ // Get initial elements from seed or context
+ elems = seed || multipleContexts( selector || "*", context.nodeType ? [ context ] : context, [] ),
+
+ // Prefilter to get matcher input, preserving a map for seed-results synchronization
+ matcherIn = preFilter && ( seed || !selector ) ?
+ condense( elems, preMap, preFilter, context, xml ) :
+ elems,
+
+ matcherOut = matcher ?
+ // If we have a postFinder, or filtered seed, or non-seed postFilter or preexisting results,
+ postFinder || ( seed ? preFilter : preexisting || postFilter ) ?
+
+ // ...intermediate processing is necessary
+ [] :
+
+ // ...otherwise use results directly
+ results :
+ matcherIn;
+
+ // Find primary matches
+ if ( matcher ) {
+ matcher( matcherIn, matcherOut, context, xml );
+ }
+
+ // Apply postFilter
+ if ( postFilter ) {
+ temp = condense( matcherOut, postMap );
+ postFilter( temp, [], context, xml );
+
+ // Un-match failing elements by moving them back to matcherIn
+ i = temp.length;
+ while ( i-- ) {
+ if ( (elem = temp[i]) ) {
+ matcherOut[ postMap[i] ] = !(matcherIn[ postMap[i] ] = elem);
+ }
+ }
+ }
+
+ if ( seed ) {
+ if ( postFinder || preFilter ) {
+ if ( postFinder ) {
+ // Get the final matcherOut by condensing this intermediate into postFinder contexts
+ temp = [];
+ i = matcherOut.length;
+ while ( i-- ) {
+ if ( (elem = matcherOut[i]) ) {
+ // Restore matcherIn since elem is not yet a final match
+ temp.push( (matcherIn[i] = elem) );
+ }
+ }
+ postFinder( null, (matcherOut = []), temp, xml );
+ }
+
+ // Move matched elements from seed to results to keep them synchronized
+ i = matcherOut.length;
+ while ( i-- ) {
+ if ( (elem = matcherOut[i]) &&
+ (temp = postFinder ? indexOf( seed, elem ) : preMap[i]) > -1 ) {
+
+ seed[temp] = !(results[temp] = elem);
+ }
+ }
+ }
+
+ // Add elements to results, through postFinder if defined
+ } else {
+ matcherOut = condense(
+ matcherOut === results ?
+ matcherOut.splice( preexisting, matcherOut.length ) :
+ matcherOut
+ );
+ if ( postFinder ) {
+ postFinder( null, results, matcherOut, xml );
+ } else {
+ push.apply( results, matcherOut );
+ }
+ }
+ });
+}
+
+function matcherFromTokens( tokens ) {
+ var checkContext, matcher, j,
+ len = tokens.length,
+ leadingRelative = Expr.relative[ tokens[0].type ],
+ implicitRelative = leadingRelative || Expr.relative[" "],
+ i = leadingRelative ? 1 : 0,
+
+ // The foundational matcher ensures that elements are reachable from top-level context(s)
+ matchContext = addCombinator( function( elem ) {
+ return elem === checkContext;
+ }, implicitRelative, true ),
+ matchAnyContext = addCombinator( function( elem ) {
+ return indexOf( checkContext, elem ) > -1;
+ }, implicitRelative, true ),
+ matchers = [ function( elem, context, xml ) {
+ var ret = ( !leadingRelative && ( xml || context !== outermostContext ) ) || (
+ (checkContext = context).nodeType ?
+ matchContext( elem, context, xml ) :
+ matchAnyContext( elem, context, xml ) );
+ // Avoid hanging onto element (issue #299)
+ checkContext = null;
+ return ret;
+ } ];
+
+ for ( ; i < len; i++ ) {
+ if ( (matcher = Expr.relative[ tokens[i].type ]) ) {
+ matchers = [ addCombinator(elementMatcher( matchers ), matcher) ];
+ } else {
+ matcher = Expr.filter[ tokens[i].type ].apply( null, tokens[i].matches );
+
+ // Return special upon seeing a positional matcher
+ if ( matcher[ expando ] ) {
+ // Find the next relative operator (if any) for proper handling
+ j = ++i;
+ for ( ; j < len; j++ ) {
+ if ( Expr.relative[ tokens[j].type ] ) {
+ break;
+ }
+ }
+ return setMatcher(
+ i > 1 && elementMatcher( matchers ),
+ i > 1 && toSelector(
+ // If the preceding token was a descendant combinator, insert an implicit any-element `*`
+ tokens.slice( 0, i - 1 ).concat({ value: tokens[ i - 2 ].type === " " ? "*" : "" })
+ ).replace( rtrim, "$1" ),
+ matcher,
+ i < j && matcherFromTokens( tokens.slice( i, j ) ),
+ j < len && matcherFromTokens( (tokens = tokens.slice( j )) ),
+ j < len && toSelector( tokens )
+ );
+ }
+ matchers.push( matcher );
+ }
+ }
+
+ return elementMatcher( matchers );
+}
+
+function matcherFromGroupMatchers( elementMatchers, setMatchers ) {
+ var bySet = setMatchers.length > 0,
+ byElement = elementMatchers.length > 0,
+ superMatcher = function( seed, context, xml, results, outermost ) {
+ var elem, j, matcher,
+ matchedCount = 0,
+ i = "0",
+ unmatched = seed && [],
+ setMatched = [],
+ contextBackup = outermostContext,
+ // We must always have either seed elements or outermost context
+ elems = seed || byElement && Expr.find["TAG"]( "*", outermost ),
+ // Use integer dirruns iff this is the outermost matcher
+ dirrunsUnique = (dirruns += contextBackup == null ? 1 : Math.random() || 0.1),
+ len = elems.length;
+
+ if ( outermost ) {
+ outermostContext = context === document || context || outermost;
+ }
+
+ // Add elements passing elementMatchers directly to results
+ // Support: IE<9, Safari
+ // Tolerate NodeList properties (IE: "length"; Safari: <number>) matching elements by id
+ for ( ; i !== len && (elem = elems[i]) != null; i++ ) {
+ if ( byElement && elem ) {
+ j = 0;
+ if ( !context && elem.ownerDocument !== document ) {
+ setDocument( elem );
+ xml = !documentIsHTML;
+ }
+ while ( (matcher = elementMatchers[j++]) ) {
+ if ( matcher( elem, context || document, xml) ) {
+ results.push( elem );
+ break;
+ }
+ }
+ if ( outermost ) {
+ dirruns = dirrunsUnique;
+ }
+ }
+
+ // Track unmatched elements for set filters
+ if ( bySet ) {
+ // They will have gone through all possible matchers
+ if ( (elem = !matcher && elem) ) {
+ matchedCount--;
+ }
+
+ // Lengthen the array for every element, matched or not
+ if ( seed ) {
+ unmatched.push( elem );
+ }
+ }
+ }
+
+ // `i` is now the count of elements visited above, and adding it to `matchedCount`
+ // makes the latter nonnegative.
+ matchedCount += i;
+
+ // Apply set filters to unmatched elements
+ // NOTE: This can be skipped if there are no unmatched elements (i.e., `matchedCount`
+ // equals `i`), unless we didn't visit _any_ elements in the above loop because we have
+ // no element matchers and no seed.
+ // Incrementing an initially-string "0" `i` allows `i` to remain a string only in that
+ // case, which will result in a "00" `matchedCount` that differs from `i` but is also
+ // numerically zero.
+ if ( bySet && i !== matchedCount ) {
+ j = 0;
+ while ( (matcher = setMatchers[j++]) ) {
+ matcher( unmatched, setMatched, context, xml );
+ }
+
+ if ( seed ) {
+ // Reintegrate element matches to eliminate the need for sorting
+ if ( matchedCount > 0 ) {
+ while ( i-- ) {
+ if ( !(unmatched[i] || setMatched[i]) ) {
+ setMatched[i] = pop.call( results );
+ }
+ }
+ }
+
+ // Discard index placeholder values to get only actual matches
+ setMatched = condense( setMatched );
+ }
+
+ // Add matches to results
+ push.apply( results, setMatched );
+
+ // Seedless set matches succeeding multiple successful matchers stipulate sorting
+ if ( outermost && !seed && setMatched.length > 0 &&
+ ( matchedCount + setMatchers.length ) > 1 ) {
+
+ Sizzle.uniqueSort( results );
+ }
+ }
+
+ // Override manipulation of globals by nested matchers
+ if ( outermost ) {
+ dirruns = dirrunsUnique;
+ outermostContext = contextBackup;
+ }
+
+ return unmatched;
+ };
+
+ return bySet ?
+ markFunction( superMatcher ) :
+ superMatcher;
+}
+
+compile = Sizzle.compile = function( selector, match /* Internal Use Only */ ) {
+ var i,
+ setMatchers = [],
+ elementMatchers = [],
+ cached = compilerCache[ selector + " " ];
+
+ if ( !cached ) {
+ // Generate a function of recursive functions that can be used to check each element
+ if ( !match ) {
+ match = tokenize( selector );
+ }
+ i = match.length;
+ while ( i-- ) {
+ cached = matcherFromTokens( match[i] );
+ if ( cached[ expando ] ) {
+ setMatchers.push( cached );
+ } else {
+ elementMatchers.push( cached );
+ }
+ }
+
+ // Cache the compiled function
+ cached = compilerCache( selector, matcherFromGroupMatchers( elementMatchers, setMatchers ) );
+
+ // Save selector and tokenization
+ cached.selector = selector;
+ }
+ return cached;
+};
+
+/**
+ * A low-level selection function that works with Sizzle's compiled
+ * selector functions
+ * @param {String|Function} selector A selector or a pre-compiled
+ * selector function built with Sizzle.compile
+ * @param {Element} context
+ * @param {Array} [results]
+ * @param {Array} [seed] A set of elements to match against
+ */
+select = Sizzle.select = function( selector, context, results, seed ) {
+ var i, tokens, token, type, find,
+ compiled = typeof selector === "function" && selector,
+ match = !seed && tokenize( (selector = compiled.selector || selector) );
+
+ results = results || [];
+
+ // Try to minimize operations if there is only one selector in the list and no seed
+ // (the latter of which guarantees us context)
+ if ( match.length === 1 ) {
+
+ // Reduce context if the leading compound selector is an ID
+ tokens = match[0] = match[0].slice( 0 );
+ if ( tokens.length > 2 && (token = tokens[0]).type === "ID" &&
+ context.nodeType === 9 && documentIsHTML && Expr.relative[ tokens[1].type ] ) {
+
+ context = ( Expr.find["ID"]( token.matches[0].replace(runescape, funescape), context ) || [] )[0];
+ if ( !context ) {
+ return results;
+
+ // Precompiled matchers will still verify ancestry, so step up a level
+ } else if ( compiled ) {
+ context = context.parentNode;
+ }
+
+ selector = selector.slice( tokens.shift().value.length );
+ }
+
+ // Fetch a seed set for right-to-left matching
+ i = matchExpr["needsContext"].test( selector ) ? 0 : tokens.length;
+ while ( i-- ) {
+ token = tokens[i];
+
+ // Abort if we hit a combinator
+ if ( Expr.relative[ (type = token.type) ] ) {
+ break;
+ }
+ if ( (find = Expr.find[ type ]) ) {
+ // Search, expanding context for leading sibling combinators
+ if ( (seed = find(
+ token.matches[0].replace( runescape, funescape ),
+ rsibling.test( tokens[0].type ) && testContext( context.parentNode ) || context
+ )) ) {
+
+ // If seed is empty or no tokens remain, we can return early
+ tokens.splice( i, 1 );
+ selector = seed.length && toSelector( tokens );
+ if ( !selector ) {
+ push.apply( results, seed );
+ return results;
+ }
+
+ break;
+ }
+ }
+ }
+ }
+
+ // Compile and execute a filtering function if one is not provided
+ // Provide `match` to avoid retokenization if we modified the selector above
+ ( compiled || compile( selector, match ) )(
+ seed,
+ context,
+ !documentIsHTML,
+ results,
+ !context || rsibling.test( selector ) && testContext( context.parentNode ) || context
+ );
+ return results;
+};
+
+// One-time assignments
+
+// Sort stability
+support.sortStable = expando.split("").sort( sortOrder ).join("") === expando;
+
+// Support: Chrome 14-35+
+// Always assume duplicates if they aren't passed to the comparison function
+support.detectDuplicates = !!hasDuplicate;
+
+// Initialize against the default document
+setDocument();
+
+// Support: Webkit<537.32 - Safari 6.0.3/Chrome 25 (fixed in Chrome 27)
+// Detached nodes confoundingly follow *each other*
+support.sortDetached = assert(function( el ) {
+ // Should return 1, but returns 4 (following)
+ return el.compareDocumentPosition( document.createElement("fieldset") ) & 1;
+});
+
+// Support: IE<8
+// Prevent attribute/property "interpolation"
+// https://msdn.microsoft.com/en-us/library/ms536429%28VS.85%29.aspx
+if ( !assert(function( el ) {
+ el.innerHTML = "<a href='#'></a>";
+ return el.firstChild.getAttribute("href") === "#" ;
+}) ) {
+ addHandle( "type|href|height|width", function( elem, name, isXML ) {
+ if ( !isXML ) {
+ return elem.getAttribute( name, name.toLowerCase() === "type" ? 1 : 2 );
+ }
+ });
+}
+
+// Support: IE<9
+// Use defaultValue in place of getAttribute("value")
+if ( !support.attributes || !assert(function( el ) {
+ el.innerHTML = "<input/>";
+ el.firstChild.setAttribute( "value", "" );
+ return el.firstChild.getAttribute( "value" ) === "";
+}) ) {
+ addHandle( "value", function( elem, name, isXML ) {
+ if ( !isXML && elem.nodeName.toLowerCase() === "input" ) {
+ return elem.defaultValue;
+ }
+ });
+}
+
+// Support: IE<9
+// Use getAttributeNode to fetch booleans when getAttribute lies
+if ( !assert(function( el ) {
+ return el.getAttribute("disabled") == null;
+}) ) {
+ addHandle( booleans, function( elem, name, isXML ) {
+ var val;
+ if ( !isXML ) {
+ return elem[ name ] === true ? name.toLowerCase() :
+ (val = elem.getAttributeNode( name )) && val.specified ?
+ val.value :
+ null;
+ }
+ });
+}
+
+// EXPOSE
+var _sizzle = window.Sizzle;
+
+Sizzle.noConflict = function() {
+ if ( window.Sizzle === Sizzle ) {
+ window.Sizzle = _sizzle;
+ }
+
+ return Sizzle;
+};
+
+if ( typeof define === "function" && define.amd ) {
+ define(function() { return Sizzle; });
+// Sizzle requires that there be a global window in Common-JS like environments
+} else if ( typeof module !== "undefined" && module.exports ) {
+ module.exports = Sizzle;
+} else {
+ window.Sizzle = Sizzle;
+}
+// EXPOSE
+
+})( window );
--- /dev/null
+/*! Sizzle v2.3.3 | (c) jQuery Foundation, Inc. | jquery.org/license */
+!function(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u="sizzle"+1*new Date,v=a.document,w=0,x=0,y=ha(),z=ha(),A=ha(),B=function(a,b){return a===b&&(l=!0),0},C={}.hasOwnProperty,D=[],E=D.pop,F=D.push,G=D.push,H=D.slice,I=function(a,b){for(var c=0,d=a.length;c<d;c++)if(a[c]===b)return c;return-1},J="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",K="[\\x20\\t\\r\\n\\f]",L="(?:\\\\.|[\\w-]|[^\0-\\xa0])+",M="\\["+K+"*("+L+")(?:"+K+"*([*^$|!~]?=)"+K+"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+L+"))|)"+K+"*\\]",N=":("+L+")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|"+M+")*)|.*)\\)|)",O=new RegExp(K+"+","g"),P=new RegExp("^"+K+"+|((?:^|[^\\\\])(?:\\\\.)*)"+K+"+$","g"),Q=new RegExp("^"+K+"*,"+K+"*"),R=new RegExp("^"+K+"*([>+~]|"+K+")"+K+"*"),S=new RegExp("="+K+"*([^\\]'\"]*?)"+K+"*\\]","g"),T=new RegExp(N),U=new RegExp("^"+L+"$"),V={ID:new RegExp("^#("+L+")"),CLASS:new RegExp("^\\.("+L+")"),TAG:new RegExp("^("+L+"|[*])"),ATTR:new RegExp("^"+M),PSEUDO:new RegExp("^"+N),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+K+"*(even|odd|(([+-]|)(\\d*)n|)"+K+"*(?:([+-]|)"+K+"*(\\d+)|))"+K+"*\\)|)","i"),bool:new RegExp("^(?:"+J+")$","i"),needsContext:new RegExp("^"+K+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+K+"*((?:-\\d)?\\d*)"+K+"*\\)|)(?=[^-]|$)","i")},W=/^(?:input|select|textarea|button)$/i,X=/^h\d$/i,Y=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,$=/[+~]/,_=new RegExp("\\\\([\\da-f]{1,6}"+K+"?|("+K+")|.)","ig"),aa=function(a,b,c){var d="0x"+b-65536;return d!==d||c?b:d<0?String.fromCharCode(d+65536):String.fromCharCode(d>>10|55296,1023&d|56320)},ba=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ca=function(a,b){return b?"\0"===a?"\ufffd":a.slice(0,-1)+"\\"+a.charCodeAt(a.length-1).toString(16)+" ":"\\"+a},da=function(){m()},ea=ta(function(a){return a.disabled===!0&&("form"in a||"label"in a)},{dir:"parentNode",next:"legend"});try{G.apply(D=H.call(v.childNodes),v.childNodes),D[v.childNodes.length].nodeType}catch(fa){G={apply:D.length?function(a,b){F.apply(a,H.call(b))}:function(a,b){var c=a.length,d=0;while(a[c++]=b[d++]);a.length=c-1}}}function ga(a,b,d,e){var f,h,j,k,l,o,r,s=b&&b.ownerDocument,w=b?b.nodeType:9;if(d=d||[],"string"!=typeof a||!a||1!==w&&9!==w&&11!==w)return d;if(!e&&((b?b.ownerDocument||b:v)!==n&&m(b),b=b||n,p)){if(11!==w&&(l=Z.exec(a)))if(f=l[1]){if(9===w){if(!(j=b.getElementById(f)))return d;if(j.id===f)return d.push(j),d}else if(s&&(j=s.getElementById(f))&&t(b,j)&&j.id===f)return d.push(j),d}else{if(l[2])return G.apply(d,b.getElementsByTagName(a)),d;if((f=l[3])&&c.getElementsByClassName&&b.getElementsByClassName)return G.apply(d,b.getElementsByClassName(f)),d}if(c.qsa&&!A[a+" "]&&(!q||!q.test(a))){if(1!==w)s=b,r=a;else if("object"!==b.nodeName.toLowerCase()){(k=b.getAttribute("id"))?k=k.replace(ba,ca):b.setAttribute("id",k=u),o=g(a),h=o.length;while(h--)o[h]="#"+k+" "+sa(o[h]);r=o.join(","),s=$.test(a)&&qa(b.parentNode)||b}if(r)try{return G.apply(d,s.querySelectorAll(r)),d}catch(x){}finally{k===u&&b.removeAttribute("id")}}}return i(a.replace(P,"$1"),b,d,e)}function ha(){var a=[];function b(c,e){return a.push(c+" ")>d.cacheLength&&delete b[a.shift()],b[c+" "]=e}return b}function ia(a){return a[u]=!0,a}function ja(a){var b=n.createElement("fieldset");try{return!!a(b)}catch(c){return!1}finally{b.parentNode&&b.parentNode.removeChild(b),b=null}}function ka(a,b){var c=a.split("|"),e=c.length;while(e--)d.attrHandle[c[e]]=b}function la(a,b){var c=b&&a,d=c&&1===a.nodeType&&1===b.nodeType&&a.sourceIndex-b.sourceIndex;if(d)return d;if(c)while(c=c.nextSibling)if(c===b)return-1;return a?1:-1}function ma(a){return function(b){var c=b.nodeName.toLowerCase();return"input"===c&&b.type===a}}function na(a){return function(b){var c=b.nodeName.toLowerCase();return("input"===c||"button"===c)&&b.type===a}}function oa(a){return function(b){return"form"in b?b.parentNode&&b.disabled===!1?"label"in b?"label"in b.parentNode?b.parentNode.disabled===a:b.disabled===a:b.isDisabled===a||b.isDisabled!==!a&&ea(b)===a:b.disabled===a:"label"in b&&b.disabled===a}}function pa(a){return ia(function(b){return b=+b,ia(function(c,d){var e,f=a([],c.length,b),g=f.length;while(g--)c[e=f[g]]&&(c[e]=!(d[e]=c[e]))})})}function qa(a){return a&&"undefined"!=typeof a.getElementsByTagName&&a}c=ga.support={},f=ga.isXML=function(a){var b=a&&(a.ownerDocument||a).documentElement;return!!b&&"HTML"!==b.nodeName},m=ga.setDocument=function(a){var b,e,g=a?a.ownerDocument||a:v;return g!==n&&9===g.nodeType&&g.documentElement?(n=g,o=n.documentElement,p=!f(n),v!==n&&(e=n.defaultView)&&e.top!==e&&(e.addEventListener?e.addEventListener("unload",da,!1):e.attachEvent&&e.attachEvent("onunload",da)),c.attributes=ja(function(a){return a.className="i",!a.getAttribute("className")}),c.getElementsByTagName=ja(function(a){return a.appendChild(n.createComment("")),!a.getElementsByTagName("*").length}),c.getElementsByClassName=Y.test(n.getElementsByClassName),c.getById=ja(function(a){return o.appendChild(a).id=u,!n.getElementsByName||!n.getElementsByName(u).length}),c.getById?(d.filter.ID=function(a){var b=a.replace(_,aa);return function(a){return a.getAttribute("id")===b}},d.find.ID=function(a,b){if("undefined"!=typeof b.getElementById&&p){var c=b.getElementById(a);return c?[c]:[]}}):(d.filter.ID=function(a){var b=a.replace(_,aa);return function(a){var c="undefined"!=typeof a.getAttributeNode&&a.getAttributeNode("id");return c&&c.value===b}},d.find.ID=function(a,b){if("undefined"!=typeof b.getElementById&&p){var c,d,e,f=b.getElementById(a);if(f){if(c=f.getAttributeNode("id"),c&&c.value===a)return[f];e=b.getElementsByName(a),d=0;while(f=e[d++])if(c=f.getAttributeNode("id"),c&&c.value===a)return[f]}return[]}}),d.find.TAG=c.getElementsByTagName?function(a,b){return"undefined"!=typeof b.getElementsByTagName?b.getElementsByTagName(a):c.qsa?b.querySelectorAll(a):void 0}:function(a,b){var c,d=[],e=0,f=b.getElementsByTagName(a);if("*"===a){while(c=f[e++])1===c.nodeType&&d.push(c);return d}return f},d.find.CLASS=c.getElementsByClassName&&function(a,b){if("undefined"!=typeof b.getElementsByClassName&&p)return b.getElementsByClassName(a)},r=[],q=[],(c.qsa=Y.test(n.querySelectorAll))&&(ja(function(a){o.appendChild(a).innerHTML="<a id='"+u+"'></a><select id='"+u+"-\r\\' msallowcapture=''><option selected=''></option></select>",a.querySelectorAll("[msallowcapture^='']").length&&q.push("[*^$]="+K+"*(?:''|\"\")"),a.querySelectorAll("[selected]").length||q.push("\\["+K+"*(?:value|"+J+")"),a.querySelectorAll("[id~="+u+"-]").length||q.push("~="),a.querySelectorAll(":checked").length||q.push(":checked"),a.querySelectorAll("a#"+u+"+*").length||q.push(".#.+[+~]")}),ja(function(a){a.innerHTML="<a href='' disabled='disabled'></a><select disabled='disabled'><option/></select>";var b=n.createElement("input");b.setAttribute("type","hidden"),a.appendChild(b).setAttribute("name","D"),a.querySelectorAll("[name=d]").length&&q.push("name"+K+"*[*^$|!~]?="),2!==a.querySelectorAll(":enabled").length&&q.push(":enabled",":disabled"),o.appendChild(a).disabled=!0,2!==a.querySelectorAll(":disabled").length&&q.push(":enabled",":disabled"),a.querySelectorAll("*,:x"),q.push(",.*:")})),(c.matchesSelector=Y.test(s=o.matches||o.webkitMatchesSelector||o.mozMatchesSelector||o.oMatchesSelector||o.msMatchesSelector))&&ja(function(a){c.disconnectedMatch=s.call(a,"*"),s.call(a,"[s!='']:x"),r.push("!=",N)}),q=q.length&&new RegExp(q.join("|")),r=r.length&&new RegExp(r.join("|")),b=Y.test(o.compareDocumentPosition),t=b||Y.test(o.contains)?function(a,b){var c=9===a.nodeType?a.documentElement:a,d=b&&b.parentNode;return a===d||!(!d||1!==d.nodeType||!(c.contains?c.contains(d):a.compareDocumentPosition&&16&a.compareDocumentPosition(d)))}:function(a,b){if(b)while(b=b.parentNode)if(b===a)return!0;return!1},B=b?function(a,b){if(a===b)return l=!0,0;var d=!a.compareDocumentPosition-!b.compareDocumentPosition;return d?d:(d=(a.ownerDocument||a)===(b.ownerDocument||b)?a.compareDocumentPosition(b):1,1&d||!c.sortDetached&&b.compareDocumentPosition(a)===d?a===n||a.ownerDocument===v&&t(v,a)?-1:b===n||b.ownerDocument===v&&t(v,b)?1:k?I(k,a)-I(k,b):0:4&d?-1:1)}:function(a,b){if(a===b)return l=!0,0;var c,d=0,e=a.parentNode,f=b.parentNode,g=[a],h=[b];if(!e||!f)return a===n?-1:b===n?1:e?-1:f?1:k?I(k,a)-I(k,b):0;if(e===f)return la(a,b);c=a;while(c=c.parentNode)g.unshift(c);c=b;while(c=c.parentNode)h.unshift(c);while(g[d]===h[d])d++;return d?la(g[d],h[d]):g[d]===v?-1:h[d]===v?1:0},n):n},ga.matches=function(a,b){return ga(a,null,null,b)},ga.matchesSelector=function(a,b){if((a.ownerDocument||a)!==n&&m(a),b=b.replace(S,"='$1']"),c.matchesSelector&&p&&!A[b+" "]&&(!r||!r.test(b))&&(!q||!q.test(b)))try{var d=s.call(a,b);if(d||c.disconnectedMatch||a.document&&11!==a.document.nodeType)return d}catch(e){}return ga(b,n,null,[a]).length>0},ga.contains=function(a,b){return(a.ownerDocument||a)!==n&&m(a),t(a,b)},ga.attr=function(a,b){(a.ownerDocument||a)!==n&&m(a);var e=d.attrHandle[b.toLowerCase()],f=e&&C.call(d.attrHandle,b.toLowerCase())?e(a,b,!p):void 0;return void 0!==f?f:c.attributes||!p?a.getAttribute(b):(f=a.getAttributeNode(b))&&f.specified?f.value:null},ga.escape=function(a){return(a+"").replace(ba,ca)},ga.error=function(a){throw new Error("Syntax error, unrecognized expression: "+a)},ga.uniqueSort=function(a){var b,d=[],e=0,f=0;if(l=!c.detectDuplicates,k=!c.sortStable&&a.slice(0),a.sort(B),l){while(b=a[f++])b===a[f]&&(e=d.push(f));while(e--)a.splice(d[e],1)}return k=null,a},e=ga.getText=function(a){var b,c="",d=0,f=a.nodeType;if(f){if(1===f||9===f||11===f){if("string"==typeof a.textContent)return a.textContent;for(a=a.firstChild;a;a=a.nextSibling)c+=e(a)}else if(3===f||4===f)return a.nodeValue}else while(b=a[d++])c+=e(b);return c},d=ga.selectors={cacheLength:50,createPseudo:ia,match:V,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(a){return a[1]=a[1].replace(_,aa),a[3]=(a[3]||a[4]||a[5]||"").replace(_,aa),"~="===a[2]&&(a[3]=" "+a[3]+" "),a.slice(0,4)},CHILD:function(a){return a[1]=a[1].toLowerCase(),"nth"===a[1].slice(0,3)?(a[3]||ga.error(a[0]),a[4]=+(a[4]?a[5]+(a[6]||1):2*("even"===a[3]||"odd"===a[3])),a[5]=+(a[7]+a[8]||"odd"===a[3])):a[3]&&ga.error(a[0]),a},PSEUDO:function(a){var b,c=!a[6]&&a[2];return V.CHILD.test(a[0])?null:(a[3]?a[2]=a[4]||a[5]||"":c&&T.test(c)&&(b=g(c,!0))&&(b=c.indexOf(")",c.length-b)-c.length)&&(a[0]=a[0].slice(0,b),a[2]=c.slice(0,b)),a.slice(0,3))}},filter:{TAG:function(a){var b=a.replace(_,aa).toLowerCase();return"*"===a?function(){return!0}:function(a){return a.nodeName&&a.nodeName.toLowerCase()===b}},CLASS:function(a){var b=y[a+" "];return b||(b=new RegExp("(^|"+K+")"+a+"("+K+"|$)"))&&y(a,function(a){return b.test("string"==typeof a.className&&a.className||"undefined"!=typeof a.getAttribute&&a.getAttribute("class")||"")})},ATTR:function(a,b,c){return function(d){var e=ga.attr(d,a);return null==e?"!="===b:!b||(e+="","="===b?e===c:"!="===b?e!==c:"^="===b?c&&0===e.indexOf(c):"*="===b?c&&e.indexOf(c)>-1:"$="===b?c&&e.slice(-c.length)===c:"~="===b?(" "+e.replace(O," ")+" ").indexOf(c)>-1:"|="===b&&(e===c||e.slice(0,c.length+1)===c+"-"))}},CHILD:function(a,b,c,d,e){var f="nth"!==a.slice(0,3),g="last"!==a.slice(-4),h="of-type"===b;return 1===d&&0===e?function(a){return!!a.parentNode}:function(b,c,i){var j,k,l,m,n,o,p=f!==g?"nextSibling":"previousSibling",q=b.parentNode,r=h&&b.nodeName.toLowerCase(),s=!i&&!h,t=!1;if(q){if(f){while(p){m=b;while(m=m[p])if(h?m.nodeName.toLowerCase()===r:1===m.nodeType)return!1;o=p="only"===a&&!o&&"nextSibling"}return!0}if(o=[g?q.firstChild:q.lastChild],g&&s){m=q,l=m[u]||(m[u]={}),k=l[m.uniqueID]||(l[m.uniqueID]={}),j=k[a]||[],n=j[0]===w&&j[1],t=n&&j[2],m=n&&q.childNodes[n];while(m=++n&&m&&m[p]||(t=n=0)||o.pop())if(1===m.nodeType&&++t&&m===b){k[a]=[w,n,t];break}}else if(s&&(m=b,l=m[u]||(m[u]={}),k=l[m.uniqueID]||(l[m.uniqueID]={}),j=k[a]||[],n=j[0]===w&&j[1],t=n),t===!1)while(m=++n&&m&&m[p]||(t=n=0)||o.pop())if((h?m.nodeName.toLowerCase()===r:1===m.nodeType)&&++t&&(s&&(l=m[u]||(m[u]={}),k=l[m.uniqueID]||(l[m.uniqueID]={}),k[a]=[w,t]),m===b))break;return t-=e,t===d||t%d===0&&t/d>=0}}},PSEUDO:function(a,b){var c,e=d.pseudos[a]||d.setFilters[a.toLowerCase()]||ga.error("unsupported pseudo: "+a);return e[u]?e(b):e.length>1?(c=[a,a,"",b],d.setFilters.hasOwnProperty(a.toLowerCase())?ia(function(a,c){var d,f=e(a,b),g=f.length;while(g--)d=I(a,f[g]),a[d]=!(c[d]=f[g])}):function(a){return e(a,0,c)}):e}},pseudos:{not:ia(function(a){var b=[],c=[],d=h(a.replace(P,"$1"));return d[u]?ia(function(a,b,c,e){var f,g=d(a,null,e,[]),h=a.length;while(h--)(f=g[h])&&(a[h]=!(b[h]=f))}):function(a,e,f){return b[0]=a,d(b,null,f,c),b[0]=null,!c.pop()}}),has:ia(function(a){return function(b){return ga(a,b).length>0}}),contains:ia(function(a){return a=a.replace(_,aa),function(b){return(b.textContent||b.innerText||e(b)).indexOf(a)>-1}}),lang:ia(function(a){return U.test(a||"")||ga.error("unsupported lang: "+a),a=a.replace(_,aa).toLowerCase(),function(b){var c;do if(c=p?b.lang:b.getAttribute("xml:lang")||b.getAttribute("lang"))return c=c.toLowerCase(),c===a||0===c.indexOf(a+"-");while((b=b.parentNode)&&1===b.nodeType);return!1}}),target:function(b){var c=a.location&&a.location.hash;return c&&c.slice(1)===b.id},root:function(a){return a===o},focus:function(a){return a===n.activeElement&&(!n.hasFocus||n.hasFocus())&&!!(a.type||a.href||~a.tabIndex)},enabled:oa(!1),disabled:oa(!0),checked:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&!!a.checked||"option"===b&&!!a.selected},selected:function(a){return a.parentNode&&a.parentNode.selectedIndex,a.selected===!0},empty:function(a){for(a=a.firstChild;a;a=a.nextSibling)if(a.nodeType<6)return!1;return!0},parent:function(a){return!d.pseudos.empty(a)},header:function(a){return X.test(a.nodeName)},input:function(a){return W.test(a.nodeName)},button:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&"button"===a.type||"button"===b},text:function(a){var b;return"input"===a.nodeName.toLowerCase()&&"text"===a.type&&(null==(b=a.getAttribute("type"))||"text"===b.toLowerCase())},first:pa(function(){return[0]}),last:pa(function(a,b){return[b-1]}),eq:pa(function(a,b,c){return[c<0?c+b:c]}),even:pa(function(a,b){for(var c=0;c<b;c+=2)a.push(c);return a}),odd:pa(function(a,b){for(var c=1;c<b;c+=2)a.push(c);return a}),lt:pa(function(a,b,c){for(var d=c<0?c+b:c;--d>=0;)a.push(d);return a}),gt:pa(function(a,b,c){for(var d=c<0?c+b:c;++d<b;)a.push(d);return a})}},d.pseudos.nth=d.pseudos.eq;for(b in{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})d.pseudos[b]=ma(b);for(b in{submit:!0,reset:!0})d.pseudos[b]=na(b);function ra(){}ra.prototype=d.filters=d.pseudos,d.setFilters=new ra,g=ga.tokenize=function(a,b){var c,e,f,g,h,i,j,k=z[a+" "];if(k)return b?0:k.slice(0);h=a,i=[],j=d.preFilter;while(h){c&&!(e=Q.exec(h))||(e&&(h=h.slice(e[0].length)||h),i.push(f=[])),c=!1,(e=R.exec(h))&&(c=e.shift(),f.push({value:c,type:e[0].replace(P," ")}),h=h.slice(c.length));for(g in d.filter)!(e=V[g].exec(h))||j[g]&&!(e=j[g](e))||(c=e.shift(),f.push({value:c,type:g,matches:e}),h=h.slice(c.length));if(!c)break}return b?h.length:h?ga.error(a):z(a,i).slice(0)};function sa(a){for(var b=0,c=a.length,d="";b<c;b++)d+=a[b].value;return d}function ta(a,b,c){var d=b.dir,e=b.next,f=e||d,g=c&&"parentNode"===f,h=x++;return b.first?function(b,c,e){while(b=b[d])if(1===b.nodeType||g)return a(b,c,e);return!1}:function(b,c,i){var j,k,l,m=[w,h];if(i){while(b=b[d])if((1===b.nodeType||g)&&a(b,c,i))return!0}else while(b=b[d])if(1===b.nodeType||g)if(l=b[u]||(b[u]={}),k=l[b.uniqueID]||(l[b.uniqueID]={}),e&&e===b.nodeName.toLowerCase())b=b[d]||b;else{if((j=k[f])&&j[0]===w&&j[1]===h)return m[2]=j[2];if(k[f]=m,m[2]=a(b,c,i))return!0}return!1}}function ua(a){return a.length>1?function(b,c,d){var e=a.length;while(e--)if(!a[e](b,c,d))return!1;return!0}:a[0]}function va(a,b,c){for(var d=0,e=b.length;d<e;d++)ga(a,b[d],c);return c}function wa(a,b,c,d,e){for(var f,g=[],h=0,i=a.length,j=null!=b;h<i;h++)(f=a[h])&&(c&&!c(f,d,e)||(g.push(f),j&&b.push(h)));return g}function xa(a,b,c,d,e,f){return d&&!d[u]&&(d=xa(d)),e&&!e[u]&&(e=xa(e,f)),ia(function(f,g,h,i){var j,k,l,m=[],n=[],o=g.length,p=f||va(b||"*",h.nodeType?[h]:h,[]),q=!a||!f&&b?p:wa(p,m,a,h,i),r=c?e||(f?a:o||d)?[]:g:q;if(c&&c(q,r,h,i),d){j=wa(r,n),d(j,[],h,i),k=j.length;while(k--)(l=j[k])&&(r[n[k]]=!(q[n[k]]=l))}if(f){if(e||a){if(e){j=[],k=r.length;while(k--)(l=r[k])&&j.push(q[k]=l);e(null,r=[],j,i)}k=r.length;while(k--)(l=r[k])&&(j=e?I(f,l):m[k])>-1&&(f[j]=!(g[j]=l))}}else r=wa(r===g?r.splice(o,r.length):r),e?e(null,g,r,i):G.apply(g,r)})}function ya(a){for(var b,c,e,f=a.length,g=d.relative[a[0].type],h=g||d.relative[" "],i=g?1:0,k=ta(function(a){return a===b},h,!0),l=ta(function(a){return I(b,a)>-1},h,!0),m=[function(a,c,d){var e=!g&&(d||c!==j)||((b=c).nodeType?k(a,c,d):l(a,c,d));return b=null,e}];i<f;i++)if(c=d.relative[a[i].type])m=[ta(ua(m),c)];else{if(c=d.filter[a[i].type].apply(null,a[i].matches),c[u]){for(e=++i;e<f;e++)if(d.relative[a[e].type])break;return xa(i>1&&ua(m),i>1&&sa(a.slice(0,i-1).concat({value:" "===a[i-2].type?"*":""})).replace(P,"$1"),c,i<e&&ya(a.slice(i,e)),e<f&&ya(a=a.slice(e)),e<f&&sa(a))}m.push(c)}return ua(m)}function za(a,b){var c=b.length>0,e=a.length>0,f=function(f,g,h,i,k){var l,o,q,r=0,s="0",t=f&&[],u=[],v=j,x=f||e&&d.find.TAG("*",k),y=w+=null==v?1:Math.random()||.1,z=x.length;for(k&&(j=g===n||g||k);s!==z&&null!=(l=x[s]);s++){if(e&&l){o=0,g||l.ownerDocument===n||(m(l),h=!p);while(q=a[o++])if(q(l,g||n,h)){i.push(l);break}k&&(w=y)}c&&((l=!q&&l)&&r--,f&&t.push(l))}if(r+=s,c&&s!==r){o=0;while(q=b[o++])q(t,u,g,h);if(f){if(r>0)while(s--)t[s]||u[s]||(u[s]=E.call(i));u=wa(u)}G.apply(i,u),k&&!f&&u.length>0&&r+b.length>1&&ga.uniqueSort(i)}return k&&(w=y,j=v),t};return c?ia(f):f}h=ga.compile=function(a,b){var c,d=[],e=[],f=A[a+" "];if(!f){b||(b=g(a)),c=b.length;while(c--)f=ya(b[c]),f[u]?d.push(f):e.push(f);f=A(a,za(e,d)),f.selector=a}return f},i=ga.select=function(a,b,c,e){var f,i,j,k,l,m="function"==typeof a&&a,n=!e&&g(a=m.selector||a);if(c=c||[],1===n.length){if(i=n[0]=n[0].slice(0),i.length>2&&"ID"===(j=i[0]).type&&9===b.nodeType&&p&&d.relative[i[1].type]){if(b=(d.find.ID(j.matches[0].replace(_,aa),b)||[])[0],!b)return c;m&&(b=b.parentNode),a=a.slice(i.shift().value.length)}f=V.needsContext.test(a)?0:i.length;while(f--){if(j=i[f],d.relative[k=j.type])break;if((l=d.find[k])&&(e=l(j.matches[0].replace(_,aa),$.test(i[0].type)&&qa(b.parentNode)||b))){if(i.splice(f,1),a=e.length&&sa(i),!a)return G.apply(c,e),c;break}}}return(m||h(a,n))(e,b,!p,c,!b||$.test(a)&&qa(b.parentNode)||b),c},c.sortStable=u.split("").sort(B).join("")===u,c.detectDuplicates=!!l,m(),c.sortDetached=ja(function(a){return 1&a.compareDocumentPosition(n.createElement("fieldset"))}),ja(function(a){return a.innerHTML="<a href='#'></a>","#"===a.firstChild.getAttribute("href")})||ka("type|href|height|width",function(a,b,c){if(!c)return a.getAttribute(b,"type"===b.toLowerCase()?1:2)}),c.attributes&&ja(function(a){return a.innerHTML="<input/>",a.firstChild.setAttribute("value",""),""===a.firstChild.getAttribute("value")})||ka("value",function(a,b,c){if(!c&&"input"===a.nodeName.toLowerCase())return a.defaultValue}),ja(function(a){return null==a.getAttribute("disabled")})||ka(J,function(a,b,c){var d;if(!c)return a[b]===!0?b.toLowerCase():(d=a.getAttributeNode(b))&&d.specified?d.value:null});var Aa=a.Sizzle;ga.noConflict=function(){return a.Sizzle===ga&&(a.Sizzle=Aa),ga},"function"==typeof define&&define.amd?define(function(){return ga}):"undefined"!=typeof module&&module.exports?module.exports=ga:a.Sizzle=ga}(window);
+//# sourceMappingURL=sizzle.min.map
\ No newline at end of file
--- /dev/null
+{"version":3,"sources":["sizzle.js"],"names":["window","i","support","Expr","getText","isXML","tokenize","compile","select","outermostContext","sortInput","hasDuplicate","setDocument","document","docElem","documentIsHTML","rbuggyQSA","rbuggyMatches","matches","contains","expando","Date","preferredDoc","dirruns","done","classCache","createCache","tokenCache","compilerCache","sortOrder","a","b","hasOwn","hasOwnProperty","arr","pop","push_native","push","slice","indexOf","list","elem","len","length","booleans","whitespace","identifier","attributes","pseudos","rwhitespace","RegExp","rtrim","rcomma","rcombinators","rattributeQuotes","rpseudo","ridentifier","matchExpr","ID","CLASS","TAG","ATTR","PSEUDO","CHILD","bool","needsContext","rinputs","rheader","rnative","rquickExpr","rsibling","runescape","funescape","_","escaped","escapedWhitespace","high","String","fromCharCode","rcssescape","fcssescape","ch","asCodePoint","charCodeAt","toString","unloadHandler","disabledAncestor","addCombinator","disabled","dir","next","apply","call","childNodes","nodeType","e","target","els","j","Sizzle","selector","context","results","seed","m","nid","match","groups","newSelector","newContext","ownerDocument","exec","getElementById","id","getElementsByTagName","getElementsByClassName","qsa","test","nodeName","toLowerCase","getAttribute","replace","setAttribute","toSelector","join","testContext","parentNode","querySelectorAll","qsaError","removeAttribute","keys","cache","key","value","cacheLength","shift","markFunction","fn","assert","el","createElement","removeChild","addHandle","attrs","handler","split","attrHandle","siblingCheck","cur","diff","sourceIndex","nextSibling","createInputPseudo","type","name","createButtonPseudo","createDisabledPseudo","isDisabled","createPositionalPseudo","argument","matchIndexes","documentElement","node","hasCompare","subWindow","doc","defaultView","top","addEventListener","attachEvent","className","appendChild","createComment","getById","getElementsByName","filter","attrId","find","getAttributeNode","elems","tag","tmp","innerHTML","input","matchesSelector","webkitMatchesSelector","mozMatchesSelector","oMatchesSelector","msMatchesSelector","disconnectedMatch","compareDocumentPosition","adown","bup","compare","sortDetached","aup","ap","bp","unshift","expr","elements","ret","attr","val","undefined","specified","escape","sel","error","msg","Error","uniqueSort","duplicates","detectDuplicates","sortStable","sort","splice","textContent","firstChild","nodeValue","selectors","createPseudo","relative",">","first"," ","+","~","preFilter","excess","unquoted","nodeNameSelector","pattern","operator","check","result","what","last","simple","forward","ofType","xml","uniqueCache","outerCache","nodeIndex","start","parent","useCache","lastChild","uniqueID","pseudo","args","setFilters","idx","matched","not","matcher","unmatched","has","text","innerText","lang","elemLang","hash","location","root","focus","activeElement","hasFocus","href","tabIndex","enabled","checked","selected","selectedIndex","empty","header","button","eq","even","odd","lt","gt","radio","checkbox","file","password","image","submit","reset","prototype","filters","parseOnly","tokens","soFar","preFilters","cached","combinator","base","skip","checkNonElements","doneName","oldCache","newCache","elementMatcher","matchers","multipleContexts","contexts","condense","map","newUnmatched","mapped","setMatcher","postFilter","postFinder","postSelector","temp","preMap","postMap","preexisting","matcherIn","matcherOut","matcherFromTokens","checkContext","leadingRelative","implicitRelative","matchContext","matchAnyContext","concat","matcherFromGroupMatchers","elementMatchers","setMatchers","bySet","byElement","superMatcher","outermost","matchedCount","setMatched","contextBackup","dirrunsUnique","Math","random","token","compiled","defaultValue","_sizzle","noConflict","define","amd","module","exports"],"mappings":"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","file":"sizzle.min.js"}
\ No newline at end of file
--- /dev/null
+define( [
+ "./core",
+ "./var/document",
+ "./var/rnothtmlwhite",
+ "./ajax/var/location",
+ "./ajax/var/nonce",
+ "./ajax/var/rquery",
+
+ "./core/init",
+ "./ajax/parseXML",
+ "./event/trigger",
+ "./deferred",
+ "./serialize" // jQuery.param
+], function( jQuery, document, rnothtmlwhite, location, nonce, rquery ) {
+
+"use strict";
+
+var
+ r20 = /%20/g,
+ rhash = /#.*$/,
+ rantiCache = /([?&])_=[^&]*/,
+ rheaders = /^(.*?):[ \t]*([^\r\n]*)$/mg,
+
+ // #7653, #8125, #8152: local protocol detection
+ rlocalProtocol = /^(?:about|app|app-storage|.+-extension|file|res|widget):$/,
+ rnoContent = /^(?:GET|HEAD)$/,
+ rprotocol = /^\/\//,
+
+ /* Prefilters
+ * 1) They are useful to introduce custom dataTypes (see ajax/jsonp.js for an example)
+ * 2) These are called:
+ * - BEFORE asking for a transport
+ * - AFTER param serialization (s.data is a string if s.processData is true)
+ * 3) key is the dataType
+ * 4) the catchall symbol "*" can be used
+ * 5) execution will start with transport dataType and THEN continue down to "*" if needed
+ */
+ prefilters = {},
+
+ /* Transports bindings
+ * 1) key is the dataType
+ * 2) the catchall symbol "*" can be used
+ * 3) selection will start with transport dataType and THEN go to "*" if needed
+ */
+ transports = {},
+
+ // Avoid comment-prolog char sequence (#10098); must appease lint and evade compression
+ allTypes = "*/".concat( "*" ),
+
+ // Anchor tag for parsing the document origin
+ originAnchor = document.createElement( "a" );
+ originAnchor.href = location.href;
+
+// Base "constructor" for jQuery.ajaxPrefilter and jQuery.ajaxTransport
+function addToPrefiltersOrTransports( structure ) {
+
+ // dataTypeExpression is optional and defaults to "*"
+ return function( dataTypeExpression, func ) {
+
+ if ( typeof dataTypeExpression !== "string" ) {
+ func = dataTypeExpression;
+ dataTypeExpression = "*";
+ }
+
+ var dataType,
+ i = 0,
+ dataTypes = dataTypeExpression.toLowerCase().match( rnothtmlwhite ) || [];
+
+ if ( jQuery.isFunction( func ) ) {
+
+ // For each dataType in the dataTypeExpression
+ while ( ( dataType = dataTypes[ i++ ] ) ) {
+
+ // Prepend if requested
+ if ( dataType[ 0 ] === "+" ) {
+ dataType = dataType.slice( 1 ) || "*";
+ ( structure[ dataType ] = structure[ dataType ] || [] ).unshift( func );
+
+ // Otherwise append
+ } else {
+ ( structure[ dataType ] = structure[ dataType ] || [] ).push( func );
+ }
+ }
+ }
+ };
+}
+
+// Base inspection function for prefilters and transports
+function inspectPrefiltersOrTransports( structure, options, originalOptions, jqXHR ) {
+
+ var inspected = {},
+ seekingTransport = ( structure === transports );
+
+ function inspect( dataType ) {
+ var selected;
+ inspected[ dataType ] = true;
+ jQuery.each( structure[ dataType ] || [], function( _, prefilterOrFactory ) {
+ var dataTypeOrTransport = prefilterOrFactory( options, originalOptions, jqXHR );
+ if ( typeof dataTypeOrTransport === "string" &&
+ !seekingTransport && !inspected[ dataTypeOrTransport ] ) {
+
+ options.dataTypes.unshift( dataTypeOrTransport );
+ inspect( dataTypeOrTransport );
+ return false;
+ } else if ( seekingTransport ) {
+ return !( selected = dataTypeOrTransport );
+ }
+ } );
+ return selected;
+ }
+
+ return inspect( options.dataTypes[ 0 ] ) || !inspected[ "*" ] && inspect( "*" );
+}
+
+// A special extend for ajax options
+// that takes "flat" options (not to be deep extended)
+// Fixes #9887
+function ajaxExtend( target, src ) {
+ var key, deep,
+ flatOptions = jQuery.ajaxSettings.flatOptions || {};
+
+ for ( key in src ) {
+ if ( src[ key ] !== undefined ) {
+ ( flatOptions[ key ] ? target : ( deep || ( deep = {} ) ) )[ key ] = src[ key ];
+ }
+ }
+ if ( deep ) {
+ jQuery.extend( true, target, deep );
+ }
+
+ return target;
+}
+
+/* Handles responses to an ajax request:
+ * - finds the right dataType (mediates between content-type and expected dataType)
+ * - returns the corresponding response
+ */
+function ajaxHandleResponses( s, jqXHR, responses ) {
+
+ var ct, type, finalDataType, firstDataType,
+ contents = s.contents,
+ dataTypes = s.dataTypes;
+
+ // Remove auto dataType and get content-type in the process
+ while ( dataTypes[ 0 ] === "*" ) {
+ dataTypes.shift();
+ if ( ct === undefined ) {
+ ct = s.mimeType || jqXHR.getResponseHeader( "Content-Type" );
+ }
+ }
+
+ // Check if we're dealing with a known content-type
+ if ( ct ) {
+ for ( type in contents ) {
+ if ( contents[ type ] && contents[ type ].test( ct ) ) {
+ dataTypes.unshift( type );
+ break;
+ }
+ }
+ }
+
+ // Check to see if we have a response for the expected dataType
+ if ( dataTypes[ 0 ] in responses ) {
+ finalDataType = dataTypes[ 0 ];
+ } else {
+
+ // Try convertible dataTypes
+ for ( type in responses ) {
+ if ( !dataTypes[ 0 ] || s.converters[ type + " " + dataTypes[ 0 ] ] ) {
+ finalDataType = type;
+ break;
+ }
+ if ( !firstDataType ) {
+ firstDataType = type;
+ }
+ }
+
+ // Or just use first one
+ finalDataType = finalDataType || firstDataType;
+ }
+
+ // If we found a dataType
+ // We add the dataType to the list if needed
+ // and return the corresponding response
+ if ( finalDataType ) {
+ if ( finalDataType !== dataTypes[ 0 ] ) {
+ dataTypes.unshift( finalDataType );
+ }
+ return responses[ finalDataType ];
+ }
+}
+
+/* Chain conversions given the request and the original response
+ * Also sets the responseXXX fields on the jqXHR instance
+ */
+function ajaxConvert( s, response, jqXHR, isSuccess ) {
+ var conv2, current, conv, tmp, prev,
+ converters = {},
+
+ // Work with a copy of dataTypes in case we need to modify it for conversion
+ dataTypes = s.dataTypes.slice();
+
+ // Create converters map with lowercased keys
+ if ( dataTypes[ 1 ] ) {
+ for ( conv in s.converters ) {
+ converters[ conv.toLowerCase() ] = s.converters[ conv ];
+ }
+ }
+
+ current = dataTypes.shift();
+
+ // Convert to each sequential dataType
+ while ( current ) {
+
+ if ( s.responseFields[ current ] ) {
+ jqXHR[ s.responseFields[ current ] ] = response;
+ }
+
+ // Apply the dataFilter if provided
+ if ( !prev && isSuccess && s.dataFilter ) {
+ response = s.dataFilter( response, s.dataType );
+ }
+
+ prev = current;
+ current = dataTypes.shift();
+
+ if ( current ) {
+
+ // There's only work to do if current dataType is non-auto
+ if ( current === "*" ) {
+
+ current = prev;
+
+ // Convert response if prev dataType is non-auto and differs from current
+ } else if ( prev !== "*" && prev !== current ) {
+
+ // Seek a direct converter
+ conv = converters[ prev + " " + current ] || converters[ "* " + current ];
+
+ // If none found, seek a pair
+ if ( !conv ) {
+ for ( conv2 in converters ) {
+
+ // If conv2 outputs current
+ tmp = conv2.split( " " );
+ if ( tmp[ 1 ] === current ) {
+
+ // If prev can be converted to accepted input
+ conv = converters[ prev + " " + tmp[ 0 ] ] ||
+ converters[ "* " + tmp[ 0 ] ];
+ if ( conv ) {
+
+ // Condense equivalence converters
+ if ( conv === true ) {
+ conv = converters[ conv2 ];
+
+ // Otherwise, insert the intermediate dataType
+ } else if ( converters[ conv2 ] !== true ) {
+ current = tmp[ 0 ];
+ dataTypes.unshift( tmp[ 1 ] );
+ }
+ break;
+ }
+ }
+ }
+ }
+
+ // Apply converter (if not an equivalence)
+ if ( conv !== true ) {
+
+ // Unless errors are allowed to bubble, catch and return them
+ if ( conv && s.throws ) {
+ response = conv( response );
+ } else {
+ try {
+ response = conv( response );
+ } catch ( e ) {
+ return {
+ state: "parsererror",
+ error: conv ? e : "No conversion from " + prev + " to " + current
+ };
+ }
+ }
+ }
+ }
+ }
+ }
+
+ return { state: "success", data: response };
+}
+
+jQuery.extend( {
+
+ // Counter for holding the number of active queries
+ active: 0,
+
+ // Last-Modified header cache for next request
+ lastModified: {},
+ etag: {},
+
+ ajaxSettings: {
+ url: location.href,
+ type: "GET",
+ isLocal: rlocalProtocol.test( location.protocol ),
+ global: true,
+ processData: true,
+ async: true,
+ contentType: "application/x-www-form-urlencoded; charset=UTF-8",
+
+ /*
+ timeout: 0,
+ data: null,
+ dataType: null,
+ username: null,
+ password: null,
+ cache: null,
+ throws: false,
+ traditional: false,
+ headers: {},
+ */
+
+ accepts: {
+ "*": allTypes,
+ text: "text/plain",
+ html: "text/html",
+ xml: "application/xml, text/xml",
+ json: "application/json, text/javascript"
+ },
+
+ contents: {
+ xml: /\bxml\b/,
+ html: /\bhtml/,
+ json: /\bjson\b/
+ },
+
+ responseFields: {
+ xml: "responseXML",
+ text: "responseText",
+ json: "responseJSON"
+ },
+
+ // Data converters
+ // Keys separate source (or catchall "*") and destination types with a single space
+ converters: {
+
+ // Convert anything to text
+ "* text": String,
+
+ // Text to html (true = no transformation)
+ "text html": true,
+
+ // Evaluate text as a json expression
+ "text json": JSON.parse,
+
+ // Parse text as xml
+ "text xml": jQuery.parseXML
+ },
+
+ // For options that shouldn't be deep extended:
+ // you can add your own custom options here if
+ // and when you create one that shouldn't be
+ // deep extended (see ajaxExtend)
+ flatOptions: {
+ url: true,
+ context: true
+ }
+ },
+
+ // Creates a full fledged settings object into target
+ // with both ajaxSettings and settings fields.
+ // If target is omitted, writes into ajaxSettings.
+ ajaxSetup: function( target, settings ) {
+ return settings ?
+
+ // Building a settings object
+ ajaxExtend( ajaxExtend( target, jQuery.ajaxSettings ), settings ) :
+
+ // Extending ajaxSettings
+ ajaxExtend( jQuery.ajaxSettings, target );
+ },
+
+ ajaxPrefilter: addToPrefiltersOrTransports( prefilters ),
+ ajaxTransport: addToPrefiltersOrTransports( transports ),
+
+ // Main method
+ ajax: function( url, options ) {
+
+ // If url is an object, simulate pre-1.5 signature
+ if ( typeof url === "object" ) {
+ options = url;
+ url = undefined;
+ }
+
+ // Force options to be an object
+ options = options || {};
+
+ var transport,
+
+ // URL without anti-cache param
+ cacheURL,
+
+ // Response headers
+ responseHeadersString,
+ responseHeaders,
+
+ // timeout handle
+ timeoutTimer,
+
+ // Url cleanup var
+ urlAnchor,
+
+ // Request state (becomes false upon send and true upon completion)
+ completed,
+
+ // To know if global events are to be dispatched
+ fireGlobals,
+
+ // Loop variable
+ i,
+
+ // uncached part of the url
+ uncached,
+
+ // Create the final options object
+ s = jQuery.ajaxSetup( {}, options ),
+
+ // Callbacks context
+ callbackContext = s.context || s,
+
+ // Context for global events is callbackContext if it is a DOM node or jQuery collection
+ globalEventContext = s.context &&
+ ( callbackContext.nodeType || callbackContext.jquery ) ?
+ jQuery( callbackContext ) :
+ jQuery.event,
+
+ // Deferreds
+ deferred = jQuery.Deferred(),
+ completeDeferred = jQuery.Callbacks( "once memory" ),
+
+ // Status-dependent callbacks
+ statusCode = s.statusCode || {},
+
+ // Headers (they are sent all at once)
+ requestHeaders = {},
+ requestHeadersNames = {},
+
+ // Default abort message
+ strAbort = "canceled",
+
+ // Fake xhr
+ jqXHR = {
+ readyState: 0,
+
+ // Builds headers hashtable if needed
+ getResponseHeader: function( key ) {
+ var match;
+ if ( completed ) {
+ if ( !responseHeaders ) {
+ responseHeaders = {};
+ while ( ( match = rheaders.exec( responseHeadersString ) ) ) {
+ responseHeaders[ match[ 1 ].toLowerCase() ] = match[ 2 ];
+ }
+ }
+ match = responseHeaders[ key.toLowerCase() ];
+ }
+ return match == null ? null : match;
+ },
+
+ // Raw string
+ getAllResponseHeaders: function() {
+ return completed ? responseHeadersString : null;
+ },
+
+ // Caches the header
+ setRequestHeader: function( name, value ) {
+ if ( completed == null ) {
+ name = requestHeadersNames[ name.toLowerCase() ] =
+ requestHeadersNames[ name.toLowerCase() ] || name;
+ requestHeaders[ name ] = value;
+ }
+ return this;
+ },
+
+ // Overrides response content-type header
+ overrideMimeType: function( type ) {
+ if ( completed == null ) {
+ s.mimeType = type;
+ }
+ return this;
+ },
+
+ // Status-dependent callbacks
+ statusCode: function( map ) {
+ var code;
+ if ( map ) {
+ if ( completed ) {
+
+ // Execute the appropriate callbacks
+ jqXHR.always( map[ jqXHR.status ] );
+ } else {
+
+ // Lazy-add the new callbacks in a way that preserves old ones
+ for ( code in map ) {
+ statusCode[ code ] = [ statusCode[ code ], map[ code ] ];
+ }
+ }
+ }
+ return this;
+ },
+
+ // Cancel the request
+ abort: function( statusText ) {
+ var finalText = statusText || strAbort;
+ if ( transport ) {
+ transport.abort( finalText );
+ }
+ done( 0, finalText );
+ return this;
+ }
+ };
+
+ // Attach deferreds
+ deferred.promise( jqXHR );
+
+ // Add protocol if not provided (prefilters might expect it)
+ // Handle falsy url in the settings object (#10093: consistency with old signature)
+ // We also use the url parameter if available
+ s.url = ( ( url || s.url || location.href ) + "" )
+ .replace( rprotocol, location.protocol + "//" );
+
+ // Alias method option to type as per ticket #12004
+ s.type = options.method || options.type || s.method || s.type;
+
+ // Extract dataTypes list
+ s.dataTypes = ( s.dataType || "*" ).toLowerCase().match( rnothtmlwhite ) || [ "" ];
+
+ // A cross-domain request is in order when the origin doesn't match the current origin.
+ if ( s.crossDomain == null ) {
+ urlAnchor = document.createElement( "a" );
+
+ // Support: IE <=8 - 11, Edge 12 - 13
+ // IE throws exception on accessing the href property if url is malformed,
+ // e.g. http://example.com:80x/
+ try {
+ urlAnchor.href = s.url;
+
+ // Support: IE <=8 - 11 only
+ // Anchor's host property isn't correctly set when s.url is relative
+ urlAnchor.href = urlAnchor.href;
+ s.crossDomain = originAnchor.protocol + "//" + originAnchor.host !==
+ urlAnchor.protocol + "//" + urlAnchor.host;
+ } catch ( e ) {
+
+ // If there is an error parsing the URL, assume it is crossDomain,
+ // it can be rejected by the transport if it is invalid
+ s.crossDomain = true;
+ }
+ }
+
+ // Convert data if not already a string
+ if ( s.data && s.processData && typeof s.data !== "string" ) {
+ s.data = jQuery.param( s.data, s.traditional );
+ }
+
+ // Apply prefilters
+ inspectPrefiltersOrTransports( prefilters, s, options, jqXHR );
+
+ // If request was aborted inside a prefilter, stop there
+ if ( completed ) {
+ return jqXHR;
+ }
+
+ // We can fire global events as of now if asked to
+ // Don't fire events if jQuery.event is undefined in an AMD-usage scenario (#15118)
+ fireGlobals = jQuery.event && s.global;
+
+ // Watch for a new set of requests
+ if ( fireGlobals && jQuery.active++ === 0 ) {
+ jQuery.event.trigger( "ajaxStart" );
+ }
+
+ // Uppercase the type
+ s.type = s.type.toUpperCase();
+
+ // Determine if request has content
+ s.hasContent = !rnoContent.test( s.type );
+
+ // Save the URL in case we're toying with the If-Modified-Since
+ // and/or If-None-Match header later on
+ // Remove hash to simplify url manipulation
+ cacheURL = s.url.replace( rhash, "" );
+
+ // More options handling for requests with no content
+ if ( !s.hasContent ) {
+
+ // Remember the hash so we can put it back
+ uncached = s.url.slice( cacheURL.length );
+
+ // If data is available, append data to url
+ if ( s.data ) {
+ cacheURL += ( rquery.test( cacheURL ) ? "&" : "?" ) + s.data;
+
+ // #9682: remove data so that it's not used in an eventual retry
+ delete s.data;
+ }
+
+ // Add or update anti-cache param if needed
+ if ( s.cache === false ) {
+ cacheURL = cacheURL.replace( rantiCache, "$1" );
+ uncached = ( rquery.test( cacheURL ) ? "&" : "?" ) + "_=" + ( nonce++ ) + uncached;
+ }
+
+ // Put hash and anti-cache on the URL that will be requested (gh-1732)
+ s.url = cacheURL + uncached;
+
+ // Change '%20' to '+' if this is encoded form body content (gh-2658)
+ } else if ( s.data && s.processData &&
+ ( s.contentType || "" ).indexOf( "application/x-www-form-urlencoded" ) === 0 ) {
+ s.data = s.data.replace( r20, "+" );
+ }
+
+ // Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode.
+ if ( s.ifModified ) {
+ if ( jQuery.lastModified[ cacheURL ] ) {
+ jqXHR.setRequestHeader( "If-Modified-Since", jQuery.lastModified[ cacheURL ] );
+ }
+ if ( jQuery.etag[ cacheURL ] ) {
+ jqXHR.setRequestHeader( "If-None-Match", jQuery.etag[ cacheURL ] );
+ }
+ }
+
+ // Set the correct header, if data is being sent
+ if ( s.data && s.hasContent && s.contentType !== false || options.contentType ) {
+ jqXHR.setRequestHeader( "Content-Type", s.contentType );
+ }
+
+ // Set the Accepts header for the server, depending on the dataType
+ jqXHR.setRequestHeader(
+ "Accept",
+ s.dataTypes[ 0 ] && s.accepts[ s.dataTypes[ 0 ] ] ?
+ s.accepts[ s.dataTypes[ 0 ] ] +
+ ( s.dataTypes[ 0 ] !== "*" ? ", " + allTypes + "; q=0.01" : "" ) :
+ s.accepts[ "*" ]
+ );
+
+ // Check for headers option
+ for ( i in s.headers ) {
+ jqXHR.setRequestHeader( i, s.headers[ i ] );
+ }
+
+ // Allow custom headers/mimetypes and early abort
+ if ( s.beforeSend &&
+ ( s.beforeSend.call( callbackContext, jqXHR, s ) === false || completed ) ) {
+
+ // Abort if not done already and return
+ return jqXHR.abort();
+ }
+
+ // Aborting is no longer a cancellation
+ strAbort = "abort";
+
+ // Install callbacks on deferreds
+ completeDeferred.add( s.complete );
+ jqXHR.done( s.success );
+ jqXHR.fail( s.error );
+
+ // Get transport
+ transport = inspectPrefiltersOrTransports( transports, s, options, jqXHR );
+
+ // If no transport, we auto-abort
+ if ( !transport ) {
+ done( -1, "No Transport" );
+ } else {
+ jqXHR.readyState = 1;
+
+ // Send global event
+ if ( fireGlobals ) {
+ globalEventContext.trigger( "ajaxSend", [ jqXHR, s ] );
+ }
+
+ // If request was aborted inside ajaxSend, stop there
+ if ( completed ) {
+ return jqXHR;
+ }
+
+ // Timeout
+ if ( s.async && s.timeout > 0 ) {
+ timeoutTimer = window.setTimeout( function() {
+ jqXHR.abort( "timeout" );
+ }, s.timeout );
+ }
+
+ try {
+ completed = false;
+ transport.send( requestHeaders, done );
+ } catch ( e ) {
+
+ // Rethrow post-completion exceptions
+ if ( completed ) {
+ throw e;
+ }
+
+ // Propagate others as results
+ done( -1, e );
+ }
+ }
+
+ // Callback for when everything is done
+ function done( status, nativeStatusText, responses, headers ) {
+ var isSuccess, success, error, response, modified,
+ statusText = nativeStatusText;
+
+ // Ignore repeat invocations
+ if ( completed ) {
+ return;
+ }
+
+ completed = true;
+
+ // Clear timeout if it exists
+ if ( timeoutTimer ) {
+ window.clearTimeout( timeoutTimer );
+ }
+
+ // Dereference transport for early garbage collection
+ // (no matter how long the jqXHR object will be used)
+ transport = undefined;
+
+ // Cache response headers
+ responseHeadersString = headers || "";
+
+ // Set readyState
+ jqXHR.readyState = status > 0 ? 4 : 0;
+
+ // Determine if successful
+ isSuccess = status >= 200 && status < 300 || status === 304;
+
+ // Get response data
+ if ( responses ) {
+ response = ajaxHandleResponses( s, jqXHR, responses );
+ }
+
+ // Convert no matter what (that way responseXXX fields are always set)
+ response = ajaxConvert( s, response, jqXHR, isSuccess );
+
+ // If successful, handle type chaining
+ if ( isSuccess ) {
+
+ // Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode.
+ if ( s.ifModified ) {
+ modified = jqXHR.getResponseHeader( "Last-Modified" );
+ if ( modified ) {
+ jQuery.lastModified[ cacheURL ] = modified;
+ }
+ modified = jqXHR.getResponseHeader( "etag" );
+ if ( modified ) {
+ jQuery.etag[ cacheURL ] = modified;
+ }
+ }
+
+ // if no content
+ if ( status === 204 || s.type === "HEAD" ) {
+ statusText = "nocontent";
+
+ // if not modified
+ } else if ( status === 304 ) {
+ statusText = "notmodified";
+
+ // If we have data, let's convert it
+ } else {
+ statusText = response.state;
+ success = response.data;
+ error = response.error;
+ isSuccess = !error;
+ }
+ } else {
+
+ // Extract error from statusText and normalize for non-aborts
+ error = statusText;
+ if ( status || !statusText ) {
+ statusText = "error";
+ if ( status < 0 ) {
+ status = 0;
+ }
+ }
+ }
+
+ // Set data for the fake xhr object
+ jqXHR.status = status;
+ jqXHR.statusText = ( nativeStatusText || statusText ) + "";
+
+ // Success/Error
+ if ( isSuccess ) {
+ deferred.resolveWith( callbackContext, [ success, statusText, jqXHR ] );
+ } else {
+ deferred.rejectWith( callbackContext, [ jqXHR, statusText, error ] );
+ }
+
+ // Status-dependent callbacks
+ jqXHR.statusCode( statusCode );
+ statusCode = undefined;
+
+ if ( fireGlobals ) {
+ globalEventContext.trigger( isSuccess ? "ajaxSuccess" : "ajaxError",
+ [ jqXHR, s, isSuccess ? success : error ] );
+ }
+
+ // Complete
+ completeDeferred.fireWith( callbackContext, [ jqXHR, statusText ] );
+
+ if ( fireGlobals ) {
+ globalEventContext.trigger( "ajaxComplete", [ jqXHR, s ] );
+
+ // Handle the global AJAX counter
+ if ( !( --jQuery.active ) ) {
+ jQuery.event.trigger( "ajaxStop" );
+ }
+ }
+ }
+
+ return jqXHR;
+ },
+
+ getJSON: function( url, data, callback ) {
+ return jQuery.get( url, data, callback, "json" );
+ },
+
+ getScript: function( url, callback ) {
+ return jQuery.get( url, undefined, callback, "script" );
+ }
+} );
+
+jQuery.each( [ "get", "post" ], function( i, method ) {
+ jQuery[ method ] = function( url, data, callback, type ) {
+
+ // Shift arguments if data argument was omitted
+ if ( jQuery.isFunction( data ) ) {
+ type = type || callback;
+ callback = data;
+ data = undefined;
+ }
+
+ // The url can be an options object (which then must have .url)
+ return jQuery.ajax( jQuery.extend( {
+ url: url,
+ type: method,
+ dataType: type,
+ data: data,
+ success: callback
+ }, jQuery.isPlainObject( url ) && url ) );
+ };
+} );
+
+return jQuery;
+} );
--- /dev/null
+define( [
+ "../core",
+ "./var/nonce",
+ "./var/rquery",
+ "../ajax"
+], function( jQuery, nonce, rquery ) {
+
+"use strict";
+
+var oldCallbacks = [],
+ rjsonp = /(=)\?(?=&|$)|\?\?/;
+
+// Default jsonp settings
+jQuery.ajaxSetup( {
+ jsonp: "callback",
+ jsonpCallback: function() {
+ var callback = oldCallbacks.pop() || ( jQuery.expando + "_" + ( nonce++ ) );
+ this[ callback ] = true;
+ return callback;
+ }
+} );
+
+// Detect, normalize options and install callbacks for jsonp requests
+jQuery.ajaxPrefilter( "json jsonp", function( s, originalSettings, jqXHR ) {
+
+ var callbackName, overwritten, responseContainer,
+ jsonProp = s.jsonp !== false && ( rjsonp.test( s.url ) ?
+ "url" :
+ typeof s.data === "string" &&
+ ( s.contentType || "" )
+ .indexOf( "application/x-www-form-urlencoded" ) === 0 &&
+ rjsonp.test( s.data ) && "data"
+ );
+
+ // Handle iff the expected data type is "jsonp" or we have a parameter to set
+ if ( jsonProp || s.dataTypes[ 0 ] === "jsonp" ) {
+
+ // Get callback name, remembering preexisting value associated with it
+ callbackName = s.jsonpCallback = jQuery.isFunction( s.jsonpCallback ) ?
+ s.jsonpCallback() :
+ s.jsonpCallback;
+
+ // Insert callback into url or form data
+ if ( jsonProp ) {
+ s[ jsonProp ] = s[ jsonProp ].replace( rjsonp, "$1" + callbackName );
+ } else if ( s.jsonp !== false ) {
+ s.url += ( rquery.test( s.url ) ? "&" : "?" ) + s.jsonp + "=" + callbackName;
+ }
+
+ // Use data converter to retrieve json after script execution
+ s.converters[ "script json" ] = function() {
+ if ( !responseContainer ) {
+ jQuery.error( callbackName + " was not called" );
+ }
+ return responseContainer[ 0 ];
+ };
+
+ // Force json dataType
+ s.dataTypes[ 0 ] = "json";
+
+ // Install callback
+ overwritten = window[ callbackName ];
+ window[ callbackName ] = function() {
+ responseContainer = arguments;
+ };
+
+ // Clean-up function (fires after converters)
+ jqXHR.always( function() {
+
+ // If previous value didn't exist - remove it
+ if ( overwritten === undefined ) {
+ jQuery( window ).removeProp( callbackName );
+
+ // Otherwise restore preexisting value
+ } else {
+ window[ callbackName ] = overwritten;
+ }
+
+ // Save back as free
+ if ( s[ callbackName ] ) {
+
+ // Make sure that re-using the options doesn't screw things around
+ s.jsonpCallback = originalSettings.jsonpCallback;
+
+ // Save the callback name for future use
+ oldCallbacks.push( callbackName );
+ }
+
+ // Call if it was a function and we have a response
+ if ( responseContainer && jQuery.isFunction( overwritten ) ) {
+ overwritten( responseContainer[ 0 ] );
+ }
+
+ responseContainer = overwritten = undefined;
+ } );
+
+ // Delegate to script
+ return "script";
+ }
+} );
+
+} );
--- /dev/null
+define( [
+ "../core",
+ "../core/stripAndCollapse",
+ "../core/parseHTML",
+ "../ajax",
+ "../traversing",
+ "../manipulation",
+ "../selector"
+], function( jQuery, stripAndCollapse ) {
+
+"use strict";
+
+/**
+ * Load a url into a page
+ */
+jQuery.fn.load = function( url, params, callback ) {
+ var selector, type, response,
+ self = this,
+ off = url.indexOf( " " );
+
+ if ( off > -1 ) {
+ selector = stripAndCollapse( url.slice( off ) );
+ url = url.slice( 0, off );
+ }
+
+ // If it's a function
+ if ( jQuery.isFunction( params ) ) {
+
+ // We assume that it's the callback
+ callback = params;
+ params = undefined;
+
+ // Otherwise, build a param string
+ } else if ( params && typeof params === "object" ) {
+ type = "POST";
+ }
+
+ // If we have elements to modify, make the request
+ if ( self.length > 0 ) {
+ jQuery.ajax( {
+ url: url,
+
+ // If "type" variable is undefined, then "GET" method will be used.
+ // Make value of this field explicit since
+ // user can override it through ajaxSetup method
+ type: type || "GET",
+ dataType: "html",
+ data: params
+ } ).done( function( responseText ) {
+
+ // Save response for use in complete callback
+ response = arguments;
+
+ self.html( selector ?
+
+ // If a selector was specified, locate the right elements in a dummy div
+ // Exclude scripts to avoid IE 'Permission Denied' errors
+ jQuery( "<div>" ).append( jQuery.parseHTML( responseText ) ).find( selector ) :
+
+ // Otherwise use the full result
+ responseText );
+
+ // If the request succeeds, this function gets "data", "status", "jqXHR"
+ // but they are ignored because response was set above.
+ // If it fails, this function gets "jqXHR", "status", "error"
+ } ).always( callback && function( jqXHR, status ) {
+ self.each( function() {
+ callback.apply( this, response || [ jqXHR.responseText, status, jqXHR ] );
+ } );
+ } );
+ }
+
+ return this;
+};
+
+} );
--- /dev/null
+define( [
+ "../core"
+], function( jQuery ) {
+
+// Support: Android 2.3
+// Workaround failure to string-cast null input
+jQuery.parseJSON = function( data ) {
+ return JSON.parse( data + "" );
+};
+
+return jQuery.parseJSON;
+
+} );
--- /dev/null
+define( [
+ "../core"
+], function( jQuery ) {
+
+"use strict";
+
+// Cross-browser xml parsing
+jQuery.parseXML = function( data ) {
+ var xml;
+ if ( !data || typeof data !== "string" ) {
+ return null;
+ }
+
+ // Support: IE 9 - 11 only
+ // IE throws on parseFromString with invalid input.
+ try {
+ xml = ( new window.DOMParser() ).parseFromString( data, "text/xml" );
+ } catch ( e ) {
+ xml = undefined;
+ }
+
+ if ( !xml || xml.getElementsByTagName( "parsererror" ).length ) {
+ jQuery.error( "Invalid XML: " + data );
+ }
+ return xml;
+};
+
+return jQuery.parseXML;
+
+} );
--- /dev/null
+define( [
+ "../core",
+ "../var/document",
+ "../ajax"
+], function( jQuery, document ) {
+
+"use strict";
+
+// Prevent auto-execution of scripts when no explicit dataType was provided (See gh-2432)
+jQuery.ajaxPrefilter( function( s ) {
+ if ( s.crossDomain ) {
+ s.contents.script = false;
+ }
+} );
+
+// Install script dataType
+jQuery.ajaxSetup( {
+ accepts: {
+ script: "text/javascript, application/javascript, " +
+ "application/ecmascript, application/x-ecmascript"
+ },
+ contents: {
+ script: /\b(?:java|ecma)script\b/
+ },
+ converters: {
+ "text script": function( text ) {
+ jQuery.globalEval( text );
+ return text;
+ }
+ }
+} );
+
+// Handle cache's special case and crossDomain
+jQuery.ajaxPrefilter( "script", function( s ) {
+ if ( s.cache === undefined ) {
+ s.cache = false;
+ }
+ if ( s.crossDomain ) {
+ s.type = "GET";
+ }
+} );
+
+// Bind script tag hack transport
+jQuery.ajaxTransport( "script", function( s ) {
+
+ // This transport only deals with cross domain requests
+ if ( s.crossDomain ) {
+ var script, callback;
+ return {
+ send: function( _, complete ) {
+ script = jQuery( "<script>" ).prop( {
+ charset: s.scriptCharset,
+ src: s.url
+ } ).on(
+ "load error",
+ callback = function( evt ) {
+ script.remove();
+ callback = null;
+ if ( evt ) {
+ complete( evt.type === "error" ? 404 : 200, evt.type );
+ }
+ }
+ );
+
+ // Use native DOM manipulation to avoid our domManip AJAX trickery
+ document.head.appendChild( script[ 0 ] );
+ },
+ abort: function() {
+ if ( callback ) {
+ callback();
+ }
+ }
+ };
+ }
+} );
+
+} );
--- /dev/null
+define( function() {
+ "use strict";
+
+ return window.location;
+} );
--- /dev/null
+define( [
+ "../../core"
+], function( jQuery ) {
+ "use strict";
+
+ return jQuery.now();
+} );
--- /dev/null
+define( function() {
+ "use strict";
+
+ return ( /\?/ );
+} );
--- /dev/null
+define( [
+ "../core",
+ "../var/support",
+ "../ajax"
+], function( jQuery, support ) {
+
+"use strict";
+
+jQuery.ajaxSettings.xhr = function() {
+ try {
+ return new window.XMLHttpRequest();
+ } catch ( e ) {}
+};
+
+var xhrSuccessStatus = {
+
+ // File protocol always yields status code 0, assume 200
+ 0: 200,
+
+ // Support: IE <=9 only
+ // #1450: sometimes IE returns 1223 when it should be 204
+ 1223: 204
+ },
+ xhrSupported = jQuery.ajaxSettings.xhr();
+
+support.cors = !!xhrSupported && ( "withCredentials" in xhrSupported );
+support.ajax = xhrSupported = !!xhrSupported;
+
+jQuery.ajaxTransport( function( options ) {
+ var callback, errorCallback;
+
+ // Cross domain only allowed if supported through XMLHttpRequest
+ if ( support.cors || xhrSupported && !options.crossDomain ) {
+ return {
+ send: function( headers, complete ) {
+ var i,
+ xhr = options.xhr();
+
+ xhr.open(
+ options.type,
+ options.url,
+ options.async,
+ options.username,
+ options.password
+ );
+
+ // Apply custom fields if provided
+ if ( options.xhrFields ) {
+ for ( i in options.xhrFields ) {
+ xhr[ i ] = options.xhrFields[ i ];
+ }
+ }
+
+ // Override mime type if needed
+ if ( options.mimeType && xhr.overrideMimeType ) {
+ xhr.overrideMimeType( options.mimeType );
+ }
+
+ // X-Requested-With header
+ // For cross-domain requests, seeing as conditions for a preflight are
+ // akin to a jigsaw puzzle, we simply never set it to be sure.
+ // (it can always be set on a per-request basis or even using ajaxSetup)
+ // For same-domain requests, won't change header if already provided.
+ if ( !options.crossDomain && !headers[ "X-Requested-With" ] ) {
+ headers[ "X-Requested-With" ] = "XMLHttpRequest";
+ }
+
+ // Set headers
+ for ( i in headers ) {
+ xhr.setRequestHeader( i, headers[ i ] );
+ }
+
+ // Callback
+ callback = function( type ) {
+ return function() {
+ if ( callback ) {
+ callback = errorCallback = xhr.onload =
+ xhr.onerror = xhr.onabort = xhr.onreadystatechange = null;
+
+ if ( type === "abort" ) {
+ xhr.abort();
+ } else if ( type === "error" ) {
+
+ // Support: IE <=9 only
+ // On a manual native abort, IE9 throws
+ // errors on any property access that is not readyState
+ if ( typeof xhr.status !== "number" ) {
+ complete( 0, "error" );
+ } else {
+ complete(
+
+ // File: protocol always yields status 0; see #8605, #14207
+ xhr.status,
+ xhr.statusText
+ );
+ }
+ } else {
+ complete(
+ xhrSuccessStatus[ xhr.status ] || xhr.status,
+ xhr.statusText,
+
+ // Support: IE <=9 only
+ // IE9 has no XHR2 but throws on binary (trac-11426)
+ // For XHR2 non-text, let the caller handle it (gh-2498)
+ ( xhr.responseType || "text" ) !== "text" ||
+ typeof xhr.responseText !== "string" ?
+ { binary: xhr.response } :
+ { text: xhr.responseText },
+ xhr.getAllResponseHeaders()
+ );
+ }
+ }
+ };
+ };
+
+ // Listen to events
+ xhr.onload = callback();
+ errorCallback = xhr.onerror = callback( "error" );
+
+ // Support: IE 9 only
+ // Use onreadystatechange to replace onabort
+ // to handle uncaught aborts
+ if ( xhr.onabort !== undefined ) {
+ xhr.onabort = errorCallback;
+ } else {
+ xhr.onreadystatechange = function() {
+
+ // Check readyState before timeout as it changes
+ if ( xhr.readyState === 4 ) {
+
+ // Allow onerror to be called first,
+ // but that will not handle a native abort
+ // Also, save errorCallback to a variable
+ // as xhr.onerror cannot be accessed
+ window.setTimeout( function() {
+ if ( callback ) {
+ errorCallback();
+ }
+ } );
+ }
+ };
+ }
+
+ // Create the abort callback
+ callback = callback( "abort" );
+
+ try {
+
+ // Do send the request (this may raise an exception)
+ xhr.send( options.hasContent && options.data || null );
+ } catch ( e ) {
+
+ // #14683: Only rethrow if this hasn't been notified as an error yet
+ if ( callback ) {
+ throw e;
+ }
+ }
+ },
+
+ abort: function() {
+ if ( callback ) {
+ callback();
+ }
+ }
+ };
+ }
+} );
+
+} );
--- /dev/null
+define( [
+ "./core",
+ "./attributes/attr",
+ "./attributes/prop",
+ "./attributes/classes",
+ "./attributes/val"
+], function( jQuery ) {
+
+"use strict";
+
+// Return jQuery for attributes-only inclusion
+return jQuery;
+} );
--- /dev/null
+define( [
+ "../core",
+ "../core/access",
+ "./support",
+ "../var/rnothtmlwhite",
+ "../selector"
+], function( jQuery, access, support, rnothtmlwhite ) {
+
+"use strict";
+
+var boolHook,
+ attrHandle = jQuery.expr.attrHandle;
+
+jQuery.fn.extend( {
+ attr: function( name, value ) {
+ return access( this, jQuery.attr, name, value, arguments.length > 1 );
+ },
+
+ removeAttr: function( name ) {
+ return this.each( function() {
+ jQuery.removeAttr( this, name );
+ } );
+ }
+} );
+
+jQuery.extend( {
+ attr: function( elem, name, value ) {
+ var ret, hooks,
+ nType = elem.nodeType;
+
+ // Don't get/set attributes on text, comment and attribute nodes
+ if ( nType === 3 || nType === 8 || nType === 2 ) {
+ return;
+ }
+
+ // Fallback to prop when attributes are not supported
+ if ( typeof elem.getAttribute === "undefined" ) {
+ return jQuery.prop( elem, name, value );
+ }
+
+ // Attribute hooks are determined by the lowercase version
+ // Grab necessary hook if one is defined
+ if ( nType !== 1 || !jQuery.isXMLDoc( elem ) ) {
+ hooks = jQuery.attrHooks[ name.toLowerCase() ] ||
+ ( jQuery.expr.match.bool.test( name ) ? boolHook : undefined );
+ }
+
+ if ( value !== undefined ) {
+ if ( value === null ) {
+ jQuery.removeAttr( elem, name );
+ return;
+ }
+
+ if ( hooks && "set" in hooks &&
+ ( ret = hooks.set( elem, value, name ) ) !== undefined ) {
+ return ret;
+ }
+
+ elem.setAttribute( name, value + "" );
+ return value;
+ }
+
+ if ( hooks && "get" in hooks && ( ret = hooks.get( elem, name ) ) !== null ) {
+ return ret;
+ }
+
+ ret = jQuery.find.attr( elem, name );
+
+ // Non-existent attributes return null, we normalize to undefined
+ return ret == null ? undefined : ret;
+ },
+
+ attrHooks: {
+ type: {
+ set: function( elem, value ) {
+ if ( !support.radioValue && value === "radio" &&
+ jQuery.nodeName( elem, "input" ) ) {
+ var val = elem.value;
+ elem.setAttribute( "type", value );
+ if ( val ) {
+ elem.value = val;
+ }
+ return value;
+ }
+ }
+ }
+ },
+
+ removeAttr: function( elem, value ) {
+ var name,
+ i = 0,
+
+ // Attribute names can contain non-HTML whitespace characters
+ // https://html.spec.whatwg.org/multipage/syntax.html#attributes-2
+ attrNames = value && value.match( rnothtmlwhite );
+
+ if ( attrNames && elem.nodeType === 1 ) {
+ while ( ( name = attrNames[ i++ ] ) ) {
+ elem.removeAttribute( name );
+ }
+ }
+ }
+} );
+
+// Hooks for boolean attributes
+boolHook = {
+ set: function( elem, value, name ) {
+ if ( value === false ) {
+
+ // Remove boolean attributes when set to false
+ jQuery.removeAttr( elem, name );
+ } else {
+ elem.setAttribute( name, name );
+ }
+ return name;
+ }
+};
+
+jQuery.each( jQuery.expr.match.bool.source.match( /\w+/g ), function( i, name ) {
+ var getter = attrHandle[ name ] || jQuery.find.attr;
+
+ attrHandle[ name ] = function( elem, name, isXML ) {
+ var ret, handle,
+ lowercaseName = name.toLowerCase();
+
+ if ( !isXML ) {
+
+ // Avoid an infinite loop by temporarily removing this function from the getter
+ handle = attrHandle[ lowercaseName ];
+ attrHandle[ lowercaseName ] = ret;
+ ret = getter( elem, name, isXML ) != null ?
+ lowercaseName :
+ null;
+ attrHandle[ lowercaseName ] = handle;
+ }
+ return ret;
+ };
+} );
+
+} );
--- /dev/null
+define( [
+ "../core",
+ "../core/stripAndCollapse",
+ "../var/rnothtmlwhite",
+ "../data/var/dataPriv",
+ "../core/init"
+], function( jQuery, stripAndCollapse, rnothtmlwhite, dataPriv ) {
+
+"use strict";
+
+function getClass( elem ) {
+ return elem.getAttribute && elem.getAttribute( "class" ) || "";
+}
+
+jQuery.fn.extend( {
+ addClass: function( value ) {
+ var classes, elem, cur, curValue, clazz, j, finalValue,
+ i = 0;
+
+ if ( jQuery.isFunction( value ) ) {
+ return this.each( function( j ) {
+ jQuery( this ).addClass( value.call( this, j, getClass( this ) ) );
+ } );
+ }
+
+ if ( typeof value === "string" && value ) {
+ classes = value.match( rnothtmlwhite ) || [];
+
+ while ( ( elem = this[ i++ ] ) ) {
+ curValue = getClass( elem );
+ cur = elem.nodeType === 1 && ( " " + stripAndCollapse( curValue ) + " " );
+
+ if ( cur ) {
+ j = 0;
+ while ( ( clazz = classes[ j++ ] ) ) {
+ if ( cur.indexOf( " " + clazz + " " ) < 0 ) {
+ cur += clazz + " ";
+ }
+ }
+
+ // Only assign if different to avoid unneeded rendering.
+ finalValue = stripAndCollapse( cur );
+ if ( curValue !== finalValue ) {
+ elem.setAttribute( "class", finalValue );
+ }
+ }
+ }
+ }
+
+ return this;
+ },
+
+ removeClass: function( value ) {
+ var classes, elem, cur, curValue, clazz, j, finalValue,
+ i = 0;
+
+ if ( jQuery.isFunction( value ) ) {
+ return this.each( function( j ) {
+ jQuery( this ).removeClass( value.call( this, j, getClass( this ) ) );
+ } );
+ }
+
+ if ( !arguments.length ) {
+ return this.attr( "class", "" );
+ }
+
+ if ( typeof value === "string" && value ) {
+ classes = value.match( rnothtmlwhite ) || [];
+
+ while ( ( elem = this[ i++ ] ) ) {
+ curValue = getClass( elem );
+
+ // This expression is here for better compressibility (see addClass)
+ cur = elem.nodeType === 1 && ( " " + stripAndCollapse( curValue ) + " " );
+
+ if ( cur ) {
+ j = 0;
+ while ( ( clazz = classes[ j++ ] ) ) {
+
+ // Remove *all* instances
+ while ( cur.indexOf( " " + clazz + " " ) > -1 ) {
+ cur = cur.replace( " " + clazz + " ", " " );
+ }
+ }
+
+ // Only assign if different to avoid unneeded rendering.
+ finalValue = stripAndCollapse( cur );
+ if ( curValue !== finalValue ) {
+ elem.setAttribute( "class", finalValue );
+ }
+ }
+ }
+ }
+
+ return this;
+ },
+
+ toggleClass: function( value, stateVal ) {
+ var type = typeof value;
+
+ if ( typeof stateVal === "boolean" && type === "string" ) {
+ return stateVal ? this.addClass( value ) : this.removeClass( value );
+ }
+
+ if ( jQuery.isFunction( value ) ) {
+ return this.each( function( i ) {
+ jQuery( this ).toggleClass(
+ value.call( this, i, getClass( this ), stateVal ),
+ stateVal
+ );
+ } );
+ }
+
+ return this.each( function() {
+ var className, i, self, classNames;
+
+ if ( type === "string" ) {
+
+ // Toggle individual class names
+ i = 0;
+ self = jQuery( this );
+ classNames = value.match( rnothtmlwhite ) || [];
+
+ while ( ( className = classNames[ i++ ] ) ) {
+
+ // Check each className given, space separated list
+ if ( self.hasClass( className ) ) {
+ self.removeClass( className );
+ } else {
+ self.addClass( className );
+ }
+ }
+
+ // Toggle whole class name
+ } else if ( value === undefined || type === "boolean" ) {
+ className = getClass( this );
+ if ( className ) {
+
+ // Store className if set
+ dataPriv.set( this, "__className__", className );
+ }
+
+ // If the element has a class name or if we're passed `false`,
+ // then remove the whole classname (if there was one, the above saved it).
+ // Otherwise bring back whatever was previously saved (if anything),
+ // falling back to the empty string if nothing was stored.
+ if ( this.setAttribute ) {
+ this.setAttribute( "class",
+ className || value === false ?
+ "" :
+ dataPriv.get( this, "__className__" ) || ""
+ );
+ }
+ }
+ } );
+ },
+
+ hasClass: function( selector ) {
+ var className, elem,
+ i = 0;
+
+ className = " " + selector + " ";
+ while ( ( elem = this[ i++ ] ) ) {
+ if ( elem.nodeType === 1 &&
+ ( " " + stripAndCollapse( getClass( elem ) ) + " " ).indexOf( className ) > -1 ) {
+ return true;
+ }
+ }
+
+ return false;
+ }
+} );
+
+} );
--- /dev/null
+define( [
+ "../core",
+ "../core/access",
+ "./support",
+ "../selector"
+], function( jQuery, access, support ) {
+
+"use strict";
+
+var rfocusable = /^(?:input|select|textarea|button)$/i,
+ rclickable = /^(?:a|area)$/i;
+
+jQuery.fn.extend( {
+ prop: function( name, value ) {
+ return access( this, jQuery.prop, name, value, arguments.length > 1 );
+ },
+
+ removeProp: function( name ) {
+ return this.each( function() {
+ delete this[ jQuery.propFix[ name ] || name ];
+ } );
+ }
+} );
+
+jQuery.extend( {
+ prop: function( elem, name, value ) {
+ var ret, hooks,
+ nType = elem.nodeType;
+
+ // Don't get/set properties on text, comment and attribute nodes
+ if ( nType === 3 || nType === 8 || nType === 2 ) {
+ return;
+ }
+
+ if ( nType !== 1 || !jQuery.isXMLDoc( elem ) ) {
+
+ // Fix name and attach hooks
+ name = jQuery.propFix[ name ] || name;
+ hooks = jQuery.propHooks[ name ];
+ }
+
+ if ( value !== undefined ) {
+ if ( hooks && "set" in hooks &&
+ ( ret = hooks.set( elem, value, name ) ) !== undefined ) {
+ return ret;
+ }
+
+ return ( elem[ name ] = value );
+ }
+
+ if ( hooks && "get" in hooks && ( ret = hooks.get( elem, name ) ) !== null ) {
+ return ret;
+ }
+
+ return elem[ name ];
+ },
+
+ propHooks: {
+ tabIndex: {
+ get: function( elem ) {
+
+ // Support: IE <=9 - 11 only
+ // elem.tabIndex doesn't always return the
+ // correct value when it hasn't been explicitly set
+ // https://web.archive.org/web/20141116233347/http://fluidproject.org/blog/2008/01/09/getting-setting-and-removing-tabindex-values-with-javascript/
+ // Use proper attribute retrieval(#12072)
+ var tabindex = jQuery.find.attr( elem, "tabindex" );
+
+ if ( tabindex ) {
+ return parseInt( tabindex, 10 );
+ }
+
+ if (
+ rfocusable.test( elem.nodeName ) ||
+ rclickable.test( elem.nodeName ) &&
+ elem.href
+ ) {
+ return 0;
+ }
+
+ return -1;
+ }
+ }
+ },
+
+ propFix: {
+ "for": "htmlFor",
+ "class": "className"
+ }
+} );
+
+// Support: IE <=11 only
+// Accessing the selectedIndex property
+// forces the browser to respect setting selected
+// on the option
+// The getter ensures a default option is selected
+// when in an optgroup
+// eslint rule "no-unused-expressions" is disabled for this code
+// since it considers such accessions noop
+if ( !support.optSelected ) {
+ jQuery.propHooks.selected = {
+ get: function( elem ) {
+
+ /* eslint no-unused-expressions: "off" */
+
+ var parent = elem.parentNode;
+ if ( parent && parent.parentNode ) {
+ parent.parentNode.selectedIndex;
+ }
+ return null;
+ },
+ set: function( elem ) {
+
+ /* eslint no-unused-expressions: "off" */
+
+ var parent = elem.parentNode;
+ if ( parent ) {
+ parent.selectedIndex;
+
+ if ( parent.parentNode ) {
+ parent.parentNode.selectedIndex;
+ }
+ }
+ }
+ };
+}
+
+jQuery.each( [
+ "tabIndex",
+ "readOnly",
+ "maxLength",
+ "cellSpacing",
+ "cellPadding",
+ "rowSpan",
+ "colSpan",
+ "useMap",
+ "frameBorder",
+ "contentEditable"
+], function() {
+ jQuery.propFix[ this.toLowerCase() ] = this;
+} );
+
+} );
--- /dev/null
+define( [
+ "../var/document",
+ "../var/support"
+], function( document, support ) {
+
+"use strict";
+
+( function() {
+ var input = document.createElement( "input" ),
+ select = document.createElement( "select" ),
+ opt = select.appendChild( document.createElement( "option" ) );
+
+ input.type = "checkbox";
+
+ // Support: Android <=4.3 only
+ // Default value for a checkbox should be "on"
+ support.checkOn = input.value !== "";
+
+ // Support: IE <=11 only
+ // Must access selectedIndex to make default options select
+ support.optSelected = opt.selected;
+
+ // Support: IE <=11 only
+ // An input loses its value after becoming a radio
+ input = document.createElement( "input" );
+ input.value = "t";
+ input.type = "radio";
+ support.radioValue = input.value === "t";
+} )();
+
+return support;
+
+} );
--- /dev/null
+define( [
+ "../core",
+ "../core/stripAndCollapse",
+ "./support",
+ "../core/init"
+], function( jQuery, stripAndCollapse, support ) {
+
+"use strict";
+
+var rreturn = /\r/g;
+
+jQuery.fn.extend( {
+ val: function( value ) {
+ var hooks, ret, isFunction,
+ elem = this[ 0 ];
+
+ if ( !arguments.length ) {
+ if ( elem ) {
+ hooks = jQuery.valHooks[ elem.type ] ||
+ jQuery.valHooks[ elem.nodeName.toLowerCase() ];
+
+ if ( hooks &&
+ "get" in hooks &&
+ ( ret = hooks.get( elem, "value" ) ) !== undefined
+ ) {
+ return ret;
+ }
+
+ ret = elem.value;
+
+ // Handle most common string cases
+ if ( typeof ret === "string" ) {
+ return ret.replace( rreturn, "" );
+ }
+
+ // Handle cases where value is null/undef or number
+ return ret == null ? "" : ret;
+ }
+
+ return;
+ }
+
+ isFunction = jQuery.isFunction( value );
+
+ return this.each( function( i ) {
+ var val;
+
+ if ( this.nodeType !== 1 ) {
+ return;
+ }
+
+ if ( isFunction ) {
+ val = value.call( this, i, jQuery( this ).val() );
+ } else {
+ val = value;
+ }
+
+ // Treat null/undefined as ""; convert numbers to string
+ if ( val == null ) {
+ val = "";
+
+ } else if ( typeof val === "number" ) {
+ val += "";
+
+ } else if ( jQuery.isArray( val ) ) {
+ val = jQuery.map( val, function( value ) {
+ return value == null ? "" : value + "";
+ } );
+ }
+
+ hooks = jQuery.valHooks[ this.type ] || jQuery.valHooks[ this.nodeName.toLowerCase() ];
+
+ // If set returns undefined, fall back to normal setting
+ if ( !hooks || !( "set" in hooks ) || hooks.set( this, val, "value" ) === undefined ) {
+ this.value = val;
+ }
+ } );
+ }
+} );
+
+jQuery.extend( {
+ valHooks: {
+ option: {
+ get: function( elem ) {
+
+ var val = jQuery.find.attr( elem, "value" );
+ return val != null ?
+ val :
+
+ // Support: IE <=10 - 11 only
+ // option.text throws exceptions (#14686, #14858)
+ // Strip and collapse whitespace
+ // https://html.spec.whatwg.org/#strip-and-collapse-whitespace
+ stripAndCollapse( jQuery.text( elem ) );
+ }
+ },
+ select: {
+ get: function( elem ) {
+ var value, option, i,
+ options = elem.options,
+ index = elem.selectedIndex,
+ one = elem.type === "select-one",
+ values = one ? null : [],
+ max = one ? index + 1 : options.length;
+
+ if ( index < 0 ) {
+ i = max;
+
+ } else {
+ i = one ? index : 0;
+ }
+
+ // Loop through all the selected options
+ for ( ; i < max; i++ ) {
+ option = options[ i ];
+
+ // Support: IE <=9 only
+ // IE8-9 doesn't update selected after form reset (#2551)
+ if ( ( option.selected || i === index ) &&
+
+ // Don't return options that are disabled or in a disabled optgroup
+ !option.disabled &&
+ ( !option.parentNode.disabled ||
+ !jQuery.nodeName( option.parentNode, "optgroup" ) ) ) {
+
+ // Get the specific value for the option
+ value = jQuery( option ).val();
+
+ // We don't need an array for one selects
+ if ( one ) {
+ return value;
+ }
+
+ // Multi-Selects return an array
+ values.push( value );
+ }
+ }
+
+ return values;
+ },
+
+ set: function( elem, value ) {
+ var optionSet, option,
+ options = elem.options,
+ values = jQuery.makeArray( value ),
+ i = options.length;
+
+ while ( i-- ) {
+ option = options[ i ];
+
+ /* eslint-disable no-cond-assign */
+
+ if ( option.selected =
+ jQuery.inArray( jQuery.valHooks.option.get( option ), values ) > -1
+ ) {
+ optionSet = true;
+ }
+
+ /* eslint-enable no-cond-assign */
+ }
+
+ // Force browsers to behave consistently when non-matching value is set
+ if ( !optionSet ) {
+ elem.selectedIndex = -1;
+ }
+ return values;
+ }
+ }
+ }
+} );
+
+// Radios and checkboxes getter/setter
+jQuery.each( [ "radio", "checkbox" ], function() {
+ jQuery.valHooks[ this ] = {
+ set: function( elem, value ) {
+ if ( jQuery.isArray( value ) ) {
+ return ( elem.checked = jQuery.inArray( jQuery( elem ).val(), value ) > -1 );
+ }
+ }
+ };
+ if ( !support.checkOn ) {
+ jQuery.valHooks[ this ].get = function( elem ) {
+ return elem.getAttribute( "value" ) === null ? "on" : elem.value;
+ };
+ }
+} );
+
+} );
--- /dev/null
+define( [
+ "./core",
+ "./var/rnothtmlwhite"
+], function( jQuery, rnothtmlwhite ) {
+
+"use strict";
+
+// Convert String-formatted options into Object-formatted ones
+function createOptions( options ) {
+ var object = {};
+ jQuery.each( options.match( rnothtmlwhite ) || [], function( _, flag ) {
+ object[ flag ] = true;
+ } );
+ return object;
+}
+
+/*
+ * Create a callback list using the following parameters:
+ *
+ * options: an optional list of space-separated options that will change how
+ * the callback list behaves or a more traditional option object
+ *
+ * By default a callback list will act like an event callback list and can be
+ * "fired" multiple times.
+ *
+ * Possible options:
+ *
+ * once: will ensure the callback list can only be fired once (like a Deferred)
+ *
+ * memory: will keep track of previous values and will call any callback added
+ * after the list has been fired right away with the latest "memorized"
+ * values (like a Deferred)
+ *
+ * unique: will ensure a callback can only be added once (no duplicate in the list)
+ *
+ * stopOnFalse: interrupt callings when a callback returns false
+ *
+ */
+jQuery.Callbacks = function( options ) {
+
+ // Convert options from String-formatted to Object-formatted if needed
+ // (we check in cache first)
+ options = typeof options === "string" ?
+ createOptions( options ) :
+ jQuery.extend( {}, options );
+
+ var // Flag to know if list is currently firing
+ firing,
+
+ // Last fire value for non-forgettable lists
+ memory,
+
+ // Flag to know if list was already fired
+ fired,
+
+ // Flag to prevent firing
+ locked,
+
+ // Actual callback list
+ list = [],
+
+ // Queue of execution data for repeatable lists
+ queue = [],
+
+ // Index of currently firing callback (modified by add/remove as needed)
+ firingIndex = -1,
+
+ // Fire callbacks
+ fire = function() {
+
+ // Enforce single-firing
+ locked = options.once;
+
+ // Execute callbacks for all pending executions,
+ // respecting firingIndex overrides and runtime changes
+ fired = firing = true;
+ for ( ; queue.length; firingIndex = -1 ) {
+ memory = queue.shift();
+ while ( ++firingIndex < list.length ) {
+
+ // Run callback and check for early termination
+ if ( list[ firingIndex ].apply( memory[ 0 ], memory[ 1 ] ) === false &&
+ options.stopOnFalse ) {
+
+ // Jump to end and forget the data so .add doesn't re-fire
+ firingIndex = list.length;
+ memory = false;
+ }
+ }
+ }
+
+ // Forget the data if we're done with it
+ if ( !options.memory ) {
+ memory = false;
+ }
+
+ firing = false;
+
+ // Clean up if we're done firing for good
+ if ( locked ) {
+
+ // Keep an empty list if we have data for future add calls
+ if ( memory ) {
+ list = [];
+
+ // Otherwise, this object is spent
+ } else {
+ list = "";
+ }
+ }
+ },
+
+ // Actual Callbacks object
+ self = {
+
+ // Add a callback or a collection of callbacks to the list
+ add: function() {
+ if ( list ) {
+
+ // If we have memory from a past run, we should fire after adding
+ if ( memory && !firing ) {
+ firingIndex = list.length - 1;
+ queue.push( memory );
+ }
+
+ ( function add( args ) {
+ jQuery.each( args, function( _, arg ) {
+ if ( jQuery.isFunction( arg ) ) {
+ if ( !options.unique || !self.has( arg ) ) {
+ list.push( arg );
+ }
+ } else if ( arg && arg.length && jQuery.type( arg ) !== "string" ) {
+
+ // Inspect recursively
+ add( arg );
+ }
+ } );
+ } )( arguments );
+
+ if ( memory && !firing ) {
+ fire();
+ }
+ }
+ return this;
+ },
+
+ // Remove a callback from the list
+ remove: function() {
+ jQuery.each( arguments, function( _, arg ) {
+ var index;
+ while ( ( index = jQuery.inArray( arg, list, index ) ) > -1 ) {
+ list.splice( index, 1 );
+
+ // Handle firing indexes
+ if ( index <= firingIndex ) {
+ firingIndex--;
+ }
+ }
+ } );
+ return this;
+ },
+
+ // Check if a given callback is in the list.
+ // If no argument is given, return whether or not list has callbacks attached.
+ has: function( fn ) {
+ return fn ?
+ jQuery.inArray( fn, list ) > -1 :
+ list.length > 0;
+ },
+
+ // Remove all callbacks from the list
+ empty: function() {
+ if ( list ) {
+ list = [];
+ }
+ return this;
+ },
+
+ // Disable .fire and .add
+ // Abort any current/pending executions
+ // Clear all callbacks and values
+ disable: function() {
+ locked = queue = [];
+ list = memory = "";
+ return this;
+ },
+ disabled: function() {
+ return !list;
+ },
+
+ // Disable .fire
+ // Also disable .add unless we have memory (since it would have no effect)
+ // Abort any pending executions
+ lock: function() {
+ locked = queue = [];
+ if ( !memory && !firing ) {
+ list = memory = "";
+ }
+ return this;
+ },
+ locked: function() {
+ return !!locked;
+ },
+
+ // Call all callbacks with the given context and arguments
+ fireWith: function( context, args ) {
+ if ( !locked ) {
+ args = args || [];
+ args = [ context, args.slice ? args.slice() : args ];
+ queue.push( args );
+ if ( !firing ) {
+ fire();
+ }
+ }
+ return this;
+ },
+
+ // Call all the callbacks with the given arguments
+ fire: function() {
+ self.fireWith( this, arguments );
+ return this;
+ },
+
+ // To know if the callbacks have already been called at least once
+ fired: function() {
+ return !!fired;
+ }
+ };
+
+ return self;
+};
+
+return jQuery;
+} );
--- /dev/null
+/* global Symbol */
+// Defining this global in .eslintrc.json would create a danger of using the global
+// unguarded in another place, it seems safer to define global only for this module
+
+define( [
+ "./var/arr",
+ "./var/document",
+ "./var/getProto",
+ "./var/slice",
+ "./var/concat",
+ "./var/push",
+ "./var/indexOf",
+ "./var/class2type",
+ "./var/toString",
+ "./var/hasOwn",
+ "./var/fnToString",
+ "./var/ObjectFunctionString",
+ "./var/support",
+ "./core/DOMEval"
+], function( arr, document, getProto, slice, concat, push, indexOf,
+ class2type, toString, hasOwn, fnToString, ObjectFunctionString,
+ support, DOMEval ) {
+
+"use strict";
+
+var
+ version = "3.1.1",
+
+ // Define a local copy of jQuery
+ jQuery = function( selector, context ) {
+
+ // The jQuery object is actually just the init constructor 'enhanced'
+ // Need init if jQuery is called (just allow error to be thrown if not included)
+ return new jQuery.fn.init( selector, context );
+ },
+
+ // Support: Android <=4.0 only
+ // Make sure we trim BOM and NBSP
+ rtrim = /^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,
+
+ // Matches dashed string for camelizing
+ rmsPrefix = /^-ms-/,
+ rdashAlpha = /-([a-z])/g,
+
+ // Used by jQuery.camelCase as callback to replace()
+ fcamelCase = function( all, letter ) {
+ return letter.toUpperCase();
+ };
+
+jQuery.fn = jQuery.prototype = {
+
+ // The current version of jQuery being used
+ jquery: version,
+
+ constructor: jQuery,
+
+ // The default length of a jQuery object is 0
+ length: 0,
+
+ toArray: function() {
+ return slice.call( this );
+ },
+
+ // Get the Nth element in the matched element set OR
+ // Get the whole matched element set as a clean array
+ get: function( num ) {
+
+ // Return all the elements in a clean array
+ if ( num == null ) {
+ return slice.call( this );
+ }
+
+ // Return just the one element from the set
+ return num < 0 ? this[ num + this.length ] : this[ num ];
+ },
+
+ // Take an array of elements and push it onto the stack
+ // (returning the new matched element set)
+ pushStack: function( elems ) {
+
+ // Build a new jQuery matched element set
+ var ret = jQuery.merge( this.constructor(), elems );
+
+ // Add the old object onto the stack (as a reference)
+ ret.prevObject = this;
+
+ // Return the newly-formed element set
+ return ret;
+ },
+
+ // Execute a callback for every element in the matched set.
+ each: function( callback ) {
+ return jQuery.each( this, callback );
+ },
+
+ map: function( callback ) {
+ return this.pushStack( jQuery.map( this, function( elem, i ) {
+ return callback.call( elem, i, elem );
+ } ) );
+ },
+
+ slice: function() {
+ return this.pushStack( slice.apply( this, arguments ) );
+ },
+
+ first: function() {
+ return this.eq( 0 );
+ },
+
+ last: function() {
+ return this.eq( -1 );
+ },
+
+ eq: function( i ) {
+ var len = this.length,
+ j = +i + ( i < 0 ? len : 0 );
+ return this.pushStack( j >= 0 && j < len ? [ this[ j ] ] : [] );
+ },
+
+ end: function() {
+ return this.prevObject || this.constructor();
+ },
+
+ // For internal use only.
+ // Behaves like an Array's method, not like a jQuery method.
+ push: push,
+ sort: arr.sort,
+ splice: arr.splice
+};
+
+jQuery.extend = jQuery.fn.extend = function() {
+ var options, name, src, copy, copyIsArray, clone,
+ target = arguments[ 0 ] || {},
+ i = 1,
+ length = arguments.length,
+ deep = false;
+
+ // Handle a deep copy situation
+ if ( typeof target === "boolean" ) {
+ deep = target;
+
+ // Skip the boolean and the target
+ target = arguments[ i ] || {};
+ i++;
+ }
+
+ // Handle case when target is a string or something (possible in deep copy)
+ if ( typeof target !== "object" && !jQuery.isFunction( target ) ) {
+ target = {};
+ }
+
+ // Extend jQuery itself if only one argument is passed
+ if ( i === length ) {
+ target = this;
+ i--;
+ }
+
+ for ( ; i < length; i++ ) {
+
+ // Only deal with non-null/undefined values
+ if ( ( options = arguments[ i ] ) != null ) {
+
+ // Extend the base object
+ for ( name in options ) {
+ src = target[ name ];
+ copy = options[ name ];
+
+ // Prevent never-ending loop
+ if ( target === copy ) {
+ continue;
+ }
+
+ // Recurse if we're merging plain objects or arrays
+ if ( deep && copy && ( jQuery.isPlainObject( copy ) ||
+ ( copyIsArray = jQuery.isArray( copy ) ) ) ) {
+
+ if ( copyIsArray ) {
+ copyIsArray = false;
+ clone = src && jQuery.isArray( src ) ? src : [];
+
+ } else {
+ clone = src && jQuery.isPlainObject( src ) ? src : {};
+ }
+
+ // Never move original objects, clone them
+ target[ name ] = jQuery.extend( deep, clone, copy );
+
+ // Don't bring in undefined values
+ } else if ( copy !== undefined ) {
+ target[ name ] = copy;
+ }
+ }
+ }
+ }
+
+ // Return the modified object
+ return target;
+};
+
+jQuery.extend( {
+
+ // Unique for each copy of jQuery on the page
+ expando: "jQuery" + ( version + Math.random() ).replace( /\D/g, "" ),
+
+ // Assume jQuery is ready without the ready module
+ isReady: true,
+
+ error: function( msg ) {
+ throw new Error( msg );
+ },
+
+ noop: function() {},
+
+ isFunction: function( obj ) {
+ return jQuery.type( obj ) === "function";
+ },
+
+ isArray: Array.isArray,
+
+ isWindow: function( obj ) {
+ return obj != null && obj === obj.window;
+ },
+
+ isNumeric: function( obj ) {
+
+ // As of jQuery 3.0, isNumeric is limited to
+ // strings and numbers (primitives or objects)
+ // that can be coerced to finite numbers (gh-2662)
+ var type = jQuery.type( obj );
+ return ( type === "number" || type === "string" ) &&
+
+ // parseFloat NaNs numeric-cast false positives ("")
+ // ...but misinterprets leading-number strings, particularly hex literals ("0x...")
+ // subtraction forces infinities to NaN
+ !isNaN( obj - parseFloat( obj ) );
+ },
+
+ isPlainObject: function( obj ) {
+ var proto, Ctor;
+
+ // Detect obvious negatives
+ // Use toString instead of jQuery.type to catch host objects
+ if ( !obj || toString.call( obj ) !== "[object Object]" ) {
+ return false;
+ }
+
+ proto = getProto( obj );
+
+ // Objects with no prototype (e.g., `Object.create( null )`) are plain
+ if ( !proto ) {
+ return true;
+ }
+
+ // Objects with prototype are plain iff they were constructed by a global Object function
+ Ctor = hasOwn.call( proto, "constructor" ) && proto.constructor;
+ return typeof Ctor === "function" && fnToString.call( Ctor ) === ObjectFunctionString;
+ },
+
+ isEmptyObject: function( obj ) {
+
+ /* eslint-disable no-unused-vars */
+ // See https://github.com/eslint/eslint/issues/6125
+ var name;
+
+ for ( name in obj ) {
+ return false;
+ }
+ return true;
+ },
+
+ type: function( obj ) {
+ if ( obj == null ) {
+ return obj + "";
+ }
+
+ // Support: Android <=2.3 only (functionish RegExp)
+ return typeof obj === "object" || typeof obj === "function" ?
+ class2type[ toString.call( obj ) ] || "object" :
+ typeof obj;
+ },
+
+ // Evaluates a script in a global context
+ globalEval: function( code ) {
+ DOMEval( code );
+ },
+
+ // Convert dashed to camelCase; used by the css and data modules
+ // Support: IE <=9 - 11, Edge 12 - 13
+ // Microsoft forgot to hump their vendor prefix (#9572)
+ camelCase: function( string ) {
+ return string.replace( rmsPrefix, "ms-" ).replace( rdashAlpha, fcamelCase );
+ },
+
+ nodeName: function( elem, name ) {
+ return elem.nodeName && elem.nodeName.toLowerCase() === name.toLowerCase();
+ },
+
+ each: function( obj, callback ) {
+ var length, i = 0;
+
+ if ( isArrayLike( obj ) ) {
+ length = obj.length;
+ for ( ; i < length; i++ ) {
+ if ( callback.call( obj[ i ], i, obj[ i ] ) === false ) {
+ break;
+ }
+ }
+ } else {
+ for ( i in obj ) {
+ if ( callback.call( obj[ i ], i, obj[ i ] ) === false ) {
+ break;
+ }
+ }
+ }
+
+ return obj;
+ },
+
+ // Support: Android <=4.0 only
+ trim: function( text ) {
+ return text == null ?
+ "" :
+ ( text + "" ).replace( rtrim, "" );
+ },
+
+ // results is for internal usage only
+ makeArray: function( arr, results ) {
+ var ret = results || [];
+
+ if ( arr != null ) {
+ if ( isArrayLike( Object( arr ) ) ) {
+ jQuery.merge( ret,
+ typeof arr === "string" ?
+ [ arr ] : arr
+ );
+ } else {
+ push.call( ret, arr );
+ }
+ }
+
+ return ret;
+ },
+
+ inArray: function( elem, arr, i ) {
+ return arr == null ? -1 : indexOf.call( arr, elem, i );
+ },
+
+ // Support: Android <=4.0 only, PhantomJS 1 only
+ // push.apply(_, arraylike) throws on ancient WebKit
+ merge: function( first, second ) {
+ var len = +second.length,
+ j = 0,
+ i = first.length;
+
+ for ( ; j < len; j++ ) {
+ first[ i++ ] = second[ j ];
+ }
+
+ first.length = i;
+
+ return first;
+ },
+
+ grep: function( elems, callback, invert ) {
+ var callbackInverse,
+ matches = [],
+ i = 0,
+ length = elems.length,
+ callbackExpect = !invert;
+
+ // Go through the array, only saving the items
+ // that pass the validator function
+ for ( ; i < length; i++ ) {
+ callbackInverse = !callback( elems[ i ], i );
+ if ( callbackInverse !== callbackExpect ) {
+ matches.push( elems[ i ] );
+ }
+ }
+
+ return matches;
+ },
+
+ // arg is for internal usage only
+ map: function( elems, callback, arg ) {
+ var length, value,
+ i = 0,
+ ret = [];
+
+ // Go through the array, translating each of the items to their new values
+ if ( isArrayLike( elems ) ) {
+ length = elems.length;
+ for ( ; i < length; i++ ) {
+ value = callback( elems[ i ], i, arg );
+
+ if ( value != null ) {
+ ret.push( value );
+ }
+ }
+
+ // Go through every key on the object,
+ } else {
+ for ( i in elems ) {
+ value = callback( elems[ i ], i, arg );
+
+ if ( value != null ) {
+ ret.push( value );
+ }
+ }
+ }
+
+ // Flatten any nested arrays
+ return concat.apply( [], ret );
+ },
+
+ // A global GUID counter for objects
+ guid: 1,
+
+ // Bind a function to a context, optionally partially applying any
+ // arguments.
+ proxy: function( fn, context ) {
+ var tmp, args, proxy;
+
+ if ( typeof context === "string" ) {
+ tmp = fn[ context ];
+ context = fn;
+ fn = tmp;
+ }
+
+ // Quick check to determine if target is callable, in the spec
+ // this throws a TypeError, but we will just return undefined.
+ if ( !jQuery.isFunction( fn ) ) {
+ return undefined;
+ }
+
+ // Simulated bind
+ args = slice.call( arguments, 2 );
+ proxy = function() {
+ return fn.apply( context || this, args.concat( slice.call( arguments ) ) );
+ };
+
+ // Set the guid of unique handler to the same of original handler, so it can be removed
+ proxy.guid = fn.guid = fn.guid || jQuery.guid++;
+
+ return proxy;
+ },
+
+ now: Date.now,
+
+ // jQuery.support is not used in Core but other projects attach their
+ // properties to it so it needs to exist.
+ support: support
+} );
+
+if ( typeof Symbol === "function" ) {
+ jQuery.fn[ Symbol.iterator ] = arr[ Symbol.iterator ];
+}
+
+// Populate the class2type map
+jQuery.each( "Boolean Number String Function Array Date RegExp Object Error Symbol".split( " " ),
+function( i, name ) {
+ class2type[ "[object " + name + "]" ] = name.toLowerCase();
+} );
+
+function isArrayLike( obj ) {
+
+ // Support: real iOS 8.2 only (not reproducible in simulator)
+ // `in` check used to prevent JIT error (gh-2145)
+ // hasOwn isn't used here due to false negatives
+ // regarding Nodelist length in IE
+ var length = !!obj && "length" in obj && obj.length,
+ type = jQuery.type( obj );
+
+ if ( type === "function" || jQuery.isWindow( obj ) ) {
+ return false;
+ }
+
+ return type === "array" || length === 0 ||
+ typeof length === "number" && length > 0 && ( length - 1 ) in obj;
+}
+
+return jQuery;
+} );
--- /dev/null
+define( [
+ "../var/document"
+], function( document ) {
+ "use strict";
+
+ function DOMEval( code, doc ) {
+ doc = doc || document;
+
+ var script = doc.createElement( "script" );
+
+ script.text = code;
+ doc.head.appendChild( script ).parentNode.removeChild( script );
+ }
+
+ return DOMEval;
+} );
--- /dev/null
+define( [
+ "../core"
+], function( jQuery ) {
+
+"use strict";
+
+// Multifunctional method to get and set values of a collection
+// The value/s can optionally be executed if it's a function
+var access = function( elems, fn, key, value, chainable, emptyGet, raw ) {
+ var i = 0,
+ len = elems.length,
+ bulk = key == null;
+
+ // Sets many values
+ if ( jQuery.type( key ) === "object" ) {
+ chainable = true;
+ for ( i in key ) {
+ access( elems, fn, i, key[ i ], true, emptyGet, raw );
+ }
+
+ // Sets one value
+ } else if ( value !== undefined ) {
+ chainable = true;
+
+ if ( !jQuery.isFunction( value ) ) {
+ raw = true;
+ }
+
+ if ( bulk ) {
+
+ // Bulk operations run against the entire set
+ if ( raw ) {
+ fn.call( elems, value );
+ fn = null;
+
+ // ...except when executing function values
+ } else {
+ bulk = fn;
+ fn = function( elem, key, value ) {
+ return bulk.call( jQuery( elem ), value );
+ };
+ }
+ }
+
+ if ( fn ) {
+ for ( ; i < len; i++ ) {
+ fn(
+ elems[ i ], key, raw ?
+ value :
+ value.call( elems[ i ], i, fn( elems[ i ], key ) )
+ );
+ }
+ }
+ }
+
+ if ( chainable ) {
+ return elems;
+ }
+
+ // Gets
+ if ( bulk ) {
+ return fn.call( elems );
+ }
+
+ return len ? fn( elems[ 0 ], key ) : emptyGet;
+};
+
+return access;
+
+} );
--- /dev/null
+// Initialize a jQuery object
+define( [
+ "../core",
+ "../var/document",
+ "./var/rsingleTag",
+ "../traversing/findFilter"
+], function( jQuery, document, rsingleTag ) {
+
+"use strict";
+
+// A central reference to the root jQuery(document)
+var rootjQuery,
+
+ // A simple way to check for HTML strings
+ // Prioritize #id over <tag> to avoid XSS via location.hash (#9521)
+ // Strict HTML recognition (#11290: must start with <)
+ // Shortcut simple #id case for speed
+ rquickExpr = /^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/,
+
+ init = jQuery.fn.init = function( selector, context, root ) {
+ var match, elem;
+
+ // HANDLE: $(""), $(null), $(undefined), $(false)
+ if ( !selector ) {
+ return this;
+ }
+
+ // Method init() accepts an alternate rootjQuery
+ // so migrate can support jQuery.sub (gh-2101)
+ root = root || rootjQuery;
+
+ // Handle HTML strings
+ if ( typeof selector === "string" ) {
+ if ( selector[ 0 ] === "<" &&
+ selector[ selector.length - 1 ] === ">" &&
+ selector.length >= 3 ) {
+
+ // Assume that strings that start and end with <> are HTML and skip the regex check
+ match = [ null, selector, null ];
+
+ } else {
+ match = rquickExpr.exec( selector );
+ }
+
+ // Match html or make sure no context is specified for #id
+ if ( match && ( match[ 1 ] || !context ) ) {
+
+ // HANDLE: $(html) -> $(array)
+ if ( match[ 1 ] ) {
+ context = context instanceof jQuery ? context[ 0 ] : context;
+
+ // Option to run scripts is true for back-compat
+ // Intentionally let the error be thrown if parseHTML is not present
+ jQuery.merge( this, jQuery.parseHTML(
+ match[ 1 ],
+ context && context.nodeType ? context.ownerDocument || context : document,
+ true
+ ) );
+
+ // HANDLE: $(html, props)
+ if ( rsingleTag.test( match[ 1 ] ) && jQuery.isPlainObject( context ) ) {
+ for ( match in context ) {
+
+ // Properties of context are called as methods if possible
+ if ( jQuery.isFunction( this[ match ] ) ) {
+ this[ match ]( context[ match ] );
+
+ // ...and otherwise set as attributes
+ } else {
+ this.attr( match, context[ match ] );
+ }
+ }
+ }
+
+ return this;
+
+ // HANDLE: $(#id)
+ } else {
+ elem = document.getElementById( match[ 2 ] );
+
+ if ( elem ) {
+
+ // Inject the element directly into the jQuery object
+ this[ 0 ] = elem;
+ this.length = 1;
+ }
+ return this;
+ }
+
+ // HANDLE: $(expr, $(...))
+ } else if ( !context || context.jquery ) {
+ return ( context || root ).find( selector );
+
+ // HANDLE: $(expr, context)
+ // (which is just equivalent to: $(context).find(expr)
+ } else {
+ return this.constructor( context ).find( selector );
+ }
+
+ // HANDLE: $(DOMElement)
+ } else if ( selector.nodeType ) {
+ this[ 0 ] = selector;
+ this.length = 1;
+ return this;
+
+ // HANDLE: $(function)
+ // Shortcut for document ready
+ } else if ( jQuery.isFunction( selector ) ) {
+ return root.ready !== undefined ?
+ root.ready( selector ) :
+
+ // Execute immediately if ready is not present
+ selector( jQuery );
+ }
+
+ return jQuery.makeArray( selector, this );
+ };
+
+// Give the init function the jQuery prototype for later instantiation
+init.prototype = jQuery.fn;
+
+// Initialize central reference
+rootjQuery = jQuery( document );
+
+return init;
+
+} );
--- /dev/null
+define( [
+ "../core",
+ "../var/document",
+ "./var/rsingleTag",
+ "../manipulation/buildFragment",
+
+ // This is the only module that needs core/support
+ "./support"
+], function( jQuery, document, rsingleTag, buildFragment, support ) {
+
+"use strict";
+
+// Argument "data" should be string of html
+// context (optional): If specified, the fragment will be created in this context,
+// defaults to document
+// keepScripts (optional): If true, will include scripts passed in the html string
+jQuery.parseHTML = function( data, context, keepScripts ) {
+ if ( typeof data !== "string" ) {
+ return [];
+ }
+ if ( typeof context === "boolean" ) {
+ keepScripts = context;
+ context = false;
+ }
+
+ var base, parsed, scripts;
+
+ if ( !context ) {
+
+ // Stop scripts or inline event handlers from being executed immediately
+ // by using document.implementation
+ if ( support.createHTMLDocument ) {
+ context = document.implementation.createHTMLDocument( "" );
+
+ // Set the base href for the created document
+ // so any parsed elements with URLs
+ // are based on the document's URL (gh-2965)
+ base = context.createElement( "base" );
+ base.href = document.location.href;
+ context.head.appendChild( base );
+ } else {
+ context = document;
+ }
+ }
+
+ parsed = rsingleTag.exec( data );
+ scripts = !keepScripts && [];
+
+ // Single tag
+ if ( parsed ) {
+ return [ context.createElement( parsed[ 1 ] ) ];
+ }
+
+ parsed = buildFragment( [ data ], context, scripts );
+
+ if ( scripts && scripts.length ) {
+ jQuery( scripts ).remove();
+ }
+
+ return jQuery.merge( [], parsed.childNodes );
+};
+
+return jQuery.parseHTML;
+
+} );
--- /dev/null
+define( [
+ "../core",
+ "../var/document"
+], function( jQuery, document ) {
+
+"use strict";
+
+var readyCallbacks = [],
+ whenReady = function( fn ) {
+ readyCallbacks.push( fn );
+ },
+ executeReady = function( fn ) {
+
+ // Prevent errors from freezing future callback execution (gh-1823)
+ // Not backwards-compatible as this does not execute sync
+ window.setTimeout( function() {
+ fn.call( document, jQuery );
+ } );
+ };
+
+jQuery.fn.ready = function( fn ) {
+ whenReady( fn );
+ return this;
+};
+
+jQuery.extend( {
+
+ // Is the DOM ready to be used? Set to true once it occurs.
+ isReady: false,
+
+ // A counter to track how many items to wait for before
+ // the ready event fires. See #6781
+ readyWait: 1,
+
+ // Hold (or release) the ready event
+ holdReady: function( hold ) {
+ if ( hold ) {
+ jQuery.readyWait++;
+ } else {
+ jQuery.ready( true );
+ }
+ },
+
+ ready: function( wait ) {
+
+ // Abort if there are pending holds or we're already ready
+ if ( wait === true ? --jQuery.readyWait : jQuery.isReady ) {
+ return;
+ }
+
+ // Remember that the DOM is ready
+ jQuery.isReady = true;
+
+ // If a normal DOM Ready event fired, decrement, and wait if need be
+ if ( wait !== true && --jQuery.readyWait > 0 ) {
+ return;
+ }
+
+ whenReady = function( fn ) {
+ readyCallbacks.push( fn );
+
+ while ( readyCallbacks.length ) {
+ fn = readyCallbacks.shift();
+ if ( jQuery.isFunction( fn ) ) {
+ executeReady( fn );
+ }
+ }
+ };
+
+ whenReady();
+ }
+} );
+
+// Make jQuery.ready Promise consumable (gh-1778)
+jQuery.ready.then = jQuery.fn.ready;
+
+/**
+ * The ready event handler and self cleanup method
+ */
+function completed() {
+ document.removeEventListener( "DOMContentLoaded", completed );
+ window.removeEventListener( "load", completed );
+ jQuery.ready();
+}
+
+// Catch cases where $(document).ready() is called
+// after the browser event has already occurred.
+// Support: IE9-10 only
+// Older IE sometimes signals "interactive" too soon
+if ( document.readyState === "complete" ||
+ ( document.readyState !== "loading" && !document.documentElement.doScroll ) ) {
+
+ // Handle it asynchronously to allow scripts the opportunity to delay ready
+ window.setTimeout( jQuery.ready );
+
+} else {
+
+ // Use the handy event callback
+ document.addEventListener( "DOMContentLoaded", completed );
+
+ // A fallback to window.onload, that will always work
+ window.addEventListener( "load", completed );
+}
+
+} );
--- /dev/null
+define( [
+ "../core",
+ "../var/document",
+ "../core/readyException",
+ "../deferred"
+], function( jQuery, document ) {
+
+"use strict";
+
+// The deferred used on DOM ready
+var readyList = jQuery.Deferred();
+
+jQuery.fn.ready = function( fn ) {
+
+ readyList
+ .then( fn )
+
+ // Wrap jQuery.readyException in a function so that the lookup
+ // happens at the time of error handling instead of callback
+ // registration.
+ .catch( function( error ) {
+ jQuery.readyException( error );
+ } );
+
+ return this;
+};
+
+jQuery.extend( {
+
+ // Is the DOM ready to be used? Set to true once it occurs.
+ isReady: false,
+
+ // A counter to track how many items to wait for before
+ // the ready event fires. See #6781
+ readyWait: 1,
+
+ // Hold (or release) the ready event
+ holdReady: function( hold ) {
+ if ( hold ) {
+ jQuery.readyWait++;
+ } else {
+ jQuery.ready( true );
+ }
+ },
+
+ // Handle when the DOM is ready
+ ready: function( wait ) {
+
+ // Abort if there are pending holds or we're already ready
+ if ( wait === true ? --jQuery.readyWait : jQuery.isReady ) {
+ return;
+ }
+
+ // Remember that the DOM is ready
+ jQuery.isReady = true;
+
+ // If a normal DOM Ready event fired, decrement, and wait if need be
+ if ( wait !== true && --jQuery.readyWait > 0 ) {
+ return;
+ }
+
+ // If there are functions bound, to execute
+ readyList.resolveWith( document, [ jQuery ] );
+ }
+} );
+
+jQuery.ready.then = readyList.then;
+
+// The ready event handler and self cleanup method
+function completed() {
+ document.removeEventListener( "DOMContentLoaded", completed );
+ window.removeEventListener( "load", completed );
+ jQuery.ready();
+}
+
+// Catch cases where $(document).ready() is called
+// after the browser event has already occurred.
+// Support: IE <=9 - 10 only
+// Older IE sometimes signals "interactive" too soon
+if ( document.readyState === "complete" ||
+ ( document.readyState !== "loading" && !document.documentElement.doScroll ) ) {
+
+ // Handle it asynchronously to allow scripts the opportunity to delay ready
+ window.setTimeout( jQuery.ready );
+
+} else {
+
+ // Use the handy event callback
+ document.addEventListener( "DOMContentLoaded", completed );
+
+ // A fallback to window.onload, that will always work
+ window.addEventListener( "load", completed );
+}
+
+} );
--- /dev/null
+define( [
+ "../core"
+], function( jQuery ) {
+
+"use strict";
+
+jQuery.readyException = function( error ) {
+ window.setTimeout( function() {
+ throw error;
+ } );
+};
+
+} );
--- /dev/null
+define( [
+ "../var/rnothtmlwhite"
+], function( rnothtmlwhite ) {
+ "use strict";
+
+ // Strip and collapse whitespace according to HTML spec
+ // https://html.spec.whatwg.org/multipage/infrastructure.html#strip-and-collapse-whitespace
+ function stripAndCollapse( value ) {
+ var tokens = value.match( rnothtmlwhite ) || [];
+ return tokens.join( " " );
+ }
+
+ return stripAndCollapse;
+} );
--- /dev/null
+define( [
+ "../var/document",
+ "../var/support"
+], function( document, support ) {
+
+"use strict";
+
+// Support: Safari 8 only
+// In Safari 8 documents created via document.implementation.createHTMLDocument
+// collapse sibling forms: the second one becomes a child of the first one.
+// Because of that, this security measure has to be disabled in Safari 8.
+// https://bugs.webkit.org/show_bug.cgi?id=137337
+support.createHTMLDocument = ( function() {
+ var body = document.implementation.createHTMLDocument( "" ).body;
+ body.innerHTML = "<form></form><form></form>";
+ return body.childNodes.length === 2;
+} )();
+
+return support;
+} );
--- /dev/null
+define( function() {
+ "use strict";
+
+ // Match a standalone tag
+ return ( /^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i );
+} );
--- /dev/null
+define( [
+ "./core",
+ "./var/pnum",
+ "./core/access",
+ "./css/var/rmargin",
+ "./var/document",
+ "./var/rcssNum",
+ "./css/var/rnumnonpx",
+ "./css/var/cssExpand",
+ "./css/var/getStyles",
+ "./css/var/swap",
+ "./css/curCSS",
+ "./css/adjustCSS",
+ "./css/addGetHookIf",
+ "./css/support",
+
+ "./core/init",
+ "./core/ready",
+ "./selector" // contains
+], function( jQuery, pnum, access, rmargin, document, rcssNum, rnumnonpx, cssExpand,
+ getStyles, swap, curCSS, adjustCSS, addGetHookIf, support ) {
+
+"use strict";
+
+var
+
+ // Swappable if display is none or starts with table
+ // except "table", "table-cell", or "table-caption"
+ // See here for display values: https://developer.mozilla.org/en-US/docs/CSS/display
+ rdisplayswap = /^(none|table(?!-c[ea]).+)/,
+ cssShow = { position: "absolute", visibility: "hidden", display: "block" },
+ cssNormalTransform = {
+ letterSpacing: "0",
+ fontWeight: "400"
+ },
+
+ cssPrefixes = [ "Webkit", "Moz", "ms" ],
+ emptyStyle = document.createElement( "div" ).style;
+
+// Return a css property mapped to a potentially vendor prefixed property
+function vendorPropName( name ) {
+
+ // Shortcut for names that are not vendor prefixed
+ if ( name in emptyStyle ) {
+ return name;
+ }
+
+ // Check for vendor prefixed names
+ var capName = name[ 0 ].toUpperCase() + name.slice( 1 ),
+ i = cssPrefixes.length;
+
+ while ( i-- ) {
+ name = cssPrefixes[ i ] + capName;
+ if ( name in emptyStyle ) {
+ return name;
+ }
+ }
+}
+
+function setPositiveNumber( elem, value, subtract ) {
+
+ // Any relative (+/-) values have already been
+ // normalized at this point
+ var matches = rcssNum.exec( value );
+ return matches ?
+
+ // Guard against undefined "subtract", e.g., when used as in cssHooks
+ Math.max( 0, matches[ 2 ] - ( subtract || 0 ) ) + ( matches[ 3 ] || "px" ) :
+ value;
+}
+
+function augmentWidthOrHeight( elem, name, extra, isBorderBox, styles ) {
+ var i,
+ val = 0;
+
+ // If we already have the right measurement, avoid augmentation
+ if ( extra === ( isBorderBox ? "border" : "content" ) ) {
+ i = 4;
+
+ // Otherwise initialize for horizontal or vertical properties
+ } else {
+ i = name === "width" ? 1 : 0;
+ }
+
+ for ( ; i < 4; i += 2 ) {
+
+ // Both box models exclude margin, so add it if we want it
+ if ( extra === "margin" ) {
+ val += jQuery.css( elem, extra + cssExpand[ i ], true, styles );
+ }
+
+ if ( isBorderBox ) {
+
+ // border-box includes padding, so remove it if we want content
+ if ( extra === "content" ) {
+ val -= jQuery.css( elem, "padding" + cssExpand[ i ], true, styles );
+ }
+
+ // At this point, extra isn't border nor margin, so remove border
+ if ( extra !== "margin" ) {
+ val -= jQuery.css( elem, "border" + cssExpand[ i ] + "Width", true, styles );
+ }
+ } else {
+
+ // At this point, extra isn't content, so add padding
+ val += jQuery.css( elem, "padding" + cssExpand[ i ], true, styles );
+
+ // At this point, extra isn't content nor padding, so add border
+ if ( extra !== "padding" ) {
+ val += jQuery.css( elem, "border" + cssExpand[ i ] + "Width", true, styles );
+ }
+ }
+ }
+
+ return val;
+}
+
+function getWidthOrHeight( elem, name, extra ) {
+
+ // Start with offset property, which is equivalent to the border-box value
+ var val,
+ valueIsBorderBox = true,
+ styles = getStyles( elem ),
+ isBorderBox = jQuery.css( elem, "boxSizing", false, styles ) === "border-box";
+
+ // Support: IE <=11 only
+ // Running getBoundingClientRect on a disconnected node
+ // in IE throws an error.
+ if ( elem.getClientRects().length ) {
+ val = elem.getBoundingClientRect()[ name ];
+ }
+
+ // Some non-html elements return undefined for offsetWidth, so check for null/undefined
+ // svg - https://bugzilla.mozilla.org/show_bug.cgi?id=649285
+ // MathML - https://bugzilla.mozilla.org/show_bug.cgi?id=491668
+ if ( val <= 0 || val == null ) {
+
+ // Fall back to computed then uncomputed css if necessary
+ val = curCSS( elem, name, styles );
+ if ( val < 0 || val == null ) {
+ val = elem.style[ name ];
+ }
+
+ // Computed unit is not pixels. Stop here and return.
+ if ( rnumnonpx.test( val ) ) {
+ return val;
+ }
+
+ // Check for style in case a browser which returns unreliable values
+ // for getComputedStyle silently falls back to the reliable elem.style
+ valueIsBorderBox = isBorderBox &&
+ ( support.boxSizingReliable() || val === elem.style[ name ] );
+
+ // Normalize "", auto, and prepare for extra
+ val = parseFloat( val ) || 0;
+ }
+
+ // Use the active box-sizing model to add/subtract irrelevant styles
+ return ( val +
+ augmentWidthOrHeight(
+ elem,
+ name,
+ extra || ( isBorderBox ? "border" : "content" ),
+ valueIsBorderBox,
+ styles
+ )
+ ) + "px";
+}
+
+jQuery.extend( {
+
+ // Add in style property hooks for overriding the default
+ // behavior of getting and setting a style property
+ cssHooks: {
+ opacity: {
+ get: function( elem, computed ) {
+ if ( computed ) {
+
+ // We should always get a number back from opacity
+ var ret = curCSS( elem, "opacity" );
+ return ret === "" ? "1" : ret;
+ }
+ }
+ }
+ },
+
+ // Don't automatically add "px" to these possibly-unitless properties
+ cssNumber: {
+ "animationIterationCount": true,
+ "columnCount": true,
+ "fillOpacity": true,
+ "flexGrow": true,
+ "flexShrink": true,
+ "fontWeight": true,
+ "lineHeight": true,
+ "opacity": true,
+ "order": true,
+ "orphans": true,
+ "widows": true,
+ "zIndex": true,
+ "zoom": true
+ },
+
+ // Add in properties whose names you wish to fix before
+ // setting or getting the value
+ cssProps: {
+ "float": "cssFloat"
+ },
+
+ // Get and set the style property on a DOM Node
+ style: function( elem, name, value, extra ) {
+
+ // Don't set styles on text and comment nodes
+ if ( !elem || elem.nodeType === 3 || elem.nodeType === 8 || !elem.style ) {
+ return;
+ }
+
+ // Make sure that we're working with the right name
+ var ret, type, hooks,
+ origName = jQuery.camelCase( name ),
+ style = elem.style;
+
+ name = jQuery.cssProps[ origName ] ||
+ ( jQuery.cssProps[ origName ] = vendorPropName( origName ) || origName );
+
+ // Gets hook for the prefixed version, then unprefixed version
+ hooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ];
+
+ // Check if we're setting a value
+ if ( value !== undefined ) {
+ type = typeof value;
+
+ // Convert "+=" or "-=" to relative numbers (#7345)
+ if ( type === "string" && ( ret = rcssNum.exec( value ) ) && ret[ 1 ] ) {
+ value = adjustCSS( elem, name, ret );
+
+ // Fixes bug #9237
+ type = "number";
+ }
+
+ // Make sure that null and NaN values aren't set (#7116)
+ if ( value == null || value !== value ) {
+ return;
+ }
+
+ // If a number was passed in, add the unit (except for certain CSS properties)
+ if ( type === "number" ) {
+ value += ret && ret[ 3 ] || ( jQuery.cssNumber[ origName ] ? "" : "px" );
+ }
+
+ // background-* props affect original clone's values
+ if ( !support.clearCloneStyle && value === "" && name.indexOf( "background" ) === 0 ) {
+ style[ name ] = "inherit";
+ }
+
+ // If a hook was provided, use that value, otherwise just set the specified value
+ if ( !hooks || !( "set" in hooks ) ||
+ ( value = hooks.set( elem, value, extra ) ) !== undefined ) {
+
+ style[ name ] = value;
+ }
+
+ } else {
+
+ // If a hook was provided get the non-computed value from there
+ if ( hooks && "get" in hooks &&
+ ( ret = hooks.get( elem, false, extra ) ) !== undefined ) {
+
+ return ret;
+ }
+
+ // Otherwise just get the value from the style object
+ return style[ name ];
+ }
+ },
+
+ css: function( elem, name, extra, styles ) {
+ var val, num, hooks,
+ origName = jQuery.camelCase( name );
+
+ // Make sure that we're working with the right name
+ name = jQuery.cssProps[ origName ] ||
+ ( jQuery.cssProps[ origName ] = vendorPropName( origName ) || origName );
+
+ // Try prefixed name followed by the unprefixed name
+ hooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ];
+
+ // If a hook was provided get the computed value from there
+ if ( hooks && "get" in hooks ) {
+ val = hooks.get( elem, true, extra );
+ }
+
+ // Otherwise, if a way to get the computed value exists, use that
+ if ( val === undefined ) {
+ val = curCSS( elem, name, styles );
+ }
+
+ // Convert "normal" to computed value
+ if ( val === "normal" && name in cssNormalTransform ) {
+ val = cssNormalTransform[ name ];
+ }
+
+ // Make numeric if forced or a qualifier was provided and val looks numeric
+ if ( extra === "" || extra ) {
+ num = parseFloat( val );
+ return extra === true || isFinite( num ) ? num || 0 : val;
+ }
+ return val;
+ }
+} );
+
+jQuery.each( [ "height", "width" ], function( i, name ) {
+ jQuery.cssHooks[ name ] = {
+ get: function( elem, computed, extra ) {
+ if ( computed ) {
+
+ // Certain elements can have dimension info if we invisibly show them
+ // but it must have a current display style that would benefit
+ return rdisplayswap.test( jQuery.css( elem, "display" ) ) &&
+
+ // Support: Safari 8+
+ // Table columns in Safari have non-zero offsetWidth & zero
+ // getBoundingClientRect().width unless display is changed.
+ // Support: IE <=11 only
+ // Running getBoundingClientRect on a disconnected node
+ // in IE throws an error.
+ ( !elem.getClientRects().length || !elem.getBoundingClientRect().width ) ?
+ swap( elem, cssShow, function() {
+ return getWidthOrHeight( elem, name, extra );
+ } ) :
+ getWidthOrHeight( elem, name, extra );
+ }
+ },
+
+ set: function( elem, value, extra ) {
+ var matches,
+ styles = extra && getStyles( elem ),
+ subtract = extra && augmentWidthOrHeight(
+ elem,
+ name,
+ extra,
+ jQuery.css( elem, "boxSizing", false, styles ) === "border-box",
+ styles
+ );
+
+ // Convert to pixels if value adjustment is needed
+ if ( subtract && ( matches = rcssNum.exec( value ) ) &&
+ ( matches[ 3 ] || "px" ) !== "px" ) {
+
+ elem.style[ name ] = value;
+ value = jQuery.css( elem, name );
+ }
+
+ return setPositiveNumber( elem, value, subtract );
+ }
+ };
+} );
+
+jQuery.cssHooks.marginLeft = addGetHookIf( support.reliableMarginLeft,
+ function( elem, computed ) {
+ if ( computed ) {
+ return ( parseFloat( curCSS( elem, "marginLeft" ) ) ||
+ elem.getBoundingClientRect().left -
+ swap( elem, { marginLeft: 0 }, function() {
+ return elem.getBoundingClientRect().left;
+ } )
+ ) + "px";
+ }
+ }
+);
+
+// These hooks are used by animate to expand properties
+jQuery.each( {
+ margin: "",
+ padding: "",
+ border: "Width"
+}, function( prefix, suffix ) {
+ jQuery.cssHooks[ prefix + suffix ] = {
+ expand: function( value ) {
+ var i = 0,
+ expanded = {},
+
+ // Assumes a single number if not a string
+ parts = typeof value === "string" ? value.split( " " ) : [ value ];
+
+ for ( ; i < 4; i++ ) {
+ expanded[ prefix + cssExpand[ i ] + suffix ] =
+ parts[ i ] || parts[ i - 2 ] || parts[ 0 ];
+ }
+
+ return expanded;
+ }
+ };
+
+ if ( !rmargin.test( prefix ) ) {
+ jQuery.cssHooks[ prefix + suffix ].set = setPositiveNumber;
+ }
+} );
+
+jQuery.fn.extend( {
+ css: function( name, value ) {
+ return access( this, function( elem, name, value ) {
+ var styles, len,
+ map = {},
+ i = 0;
+
+ if ( jQuery.isArray( name ) ) {
+ styles = getStyles( elem );
+ len = name.length;
+
+ for ( ; i < len; i++ ) {
+ map[ name[ i ] ] = jQuery.css( elem, name[ i ], false, styles );
+ }
+
+ return map;
+ }
+
+ return value !== undefined ?
+ jQuery.style( elem, name, value ) :
+ jQuery.css( elem, name );
+ }, name, value, arguments.length > 1 );
+ }
+} );
+
+return jQuery;
+} );
--- /dev/null
+define( function() {
+
+"use strict";
+
+function addGetHookIf( conditionFn, hookFn ) {
+
+ // Define the hook, we'll check on the first run if it's really needed.
+ return {
+ get: function() {
+ if ( conditionFn() ) {
+
+ // Hook not needed (or it's not possible to use it due
+ // to missing dependency), remove it.
+ delete this.get;
+ return;
+ }
+
+ // Hook needed; redefine it so that the support test is not executed again.
+ return ( this.get = hookFn ).apply( this, arguments );
+ }
+ };
+}
+
+return addGetHookIf;
+
+} );
--- /dev/null
+define( [
+ "../core",
+ "../var/rcssNum"
+], function( jQuery, rcssNum ) {
+
+"use strict";
+
+function adjustCSS( elem, prop, valueParts, tween ) {
+ var adjusted,
+ scale = 1,
+ maxIterations = 20,
+ currentValue = tween ?
+ function() {
+ return tween.cur();
+ } :
+ function() {
+ return jQuery.css( elem, prop, "" );
+ },
+ initial = currentValue(),
+ unit = valueParts && valueParts[ 3 ] || ( jQuery.cssNumber[ prop ] ? "" : "px" ),
+
+ // Starting value computation is required for potential unit mismatches
+ initialInUnit = ( jQuery.cssNumber[ prop ] || unit !== "px" && +initial ) &&
+ rcssNum.exec( jQuery.css( elem, prop ) );
+
+ if ( initialInUnit && initialInUnit[ 3 ] !== unit ) {
+
+ // Trust units reported by jQuery.css
+ unit = unit || initialInUnit[ 3 ];
+
+ // Make sure we update the tween properties later on
+ valueParts = valueParts || [];
+
+ // Iteratively approximate from a nonzero starting point
+ initialInUnit = +initial || 1;
+
+ do {
+
+ // If previous iteration zeroed out, double until we get *something*.
+ // Use string for doubling so we don't accidentally see scale as unchanged below
+ scale = scale || ".5";
+
+ // Adjust and apply
+ initialInUnit = initialInUnit / scale;
+ jQuery.style( elem, prop, initialInUnit + unit );
+
+ // Update scale, tolerating zero or NaN from tween.cur()
+ // Break the loop if scale is unchanged or perfect, or if we've just had enough.
+ } while (
+ scale !== ( scale = currentValue() / initial ) && scale !== 1 && --maxIterations
+ );
+ }
+
+ if ( valueParts ) {
+ initialInUnit = +initialInUnit || +initial || 0;
+
+ // Apply relative offset (+=/-=) if specified
+ adjusted = valueParts[ 1 ] ?
+ initialInUnit + ( valueParts[ 1 ] + 1 ) * valueParts[ 2 ] :
+ +valueParts[ 2 ];
+ if ( tween ) {
+ tween.unit = unit;
+ tween.start = initialInUnit;
+ tween.end = adjusted;
+ }
+ }
+ return adjusted;
+}
+
+return adjustCSS;
+} );
--- /dev/null
+define( [
+ "../core",
+ "./var/rnumnonpx",
+ "./var/rmargin",
+ "./var/getStyles",
+ "./support",
+ "../selector" // Get jQuery.contains
+], function( jQuery, rnumnonpx, rmargin, getStyles, support ) {
+
+"use strict";
+
+function curCSS( elem, name, computed ) {
+ var width, minWidth, maxWidth, ret,
+ style = elem.style;
+
+ computed = computed || getStyles( elem );
+
+ // Support: IE <=9 only
+ // getPropertyValue is only needed for .css('filter') (#12537)
+ if ( computed ) {
+ ret = computed.getPropertyValue( name ) || computed[ name ];
+
+ if ( ret === "" && !jQuery.contains( elem.ownerDocument, elem ) ) {
+ ret = jQuery.style( elem, name );
+ }
+
+ // A tribute to the "awesome hack by Dean Edwards"
+ // Android Browser returns percentage for some values,
+ // but width seems to be reliably pixels.
+ // This is against the CSSOM draft spec:
+ // https://drafts.csswg.org/cssom/#resolved-values
+ if ( !support.pixelMarginRight() && rnumnonpx.test( ret ) && rmargin.test( name ) ) {
+
+ // Remember the original values
+ width = style.width;
+ minWidth = style.minWidth;
+ maxWidth = style.maxWidth;
+
+ // Put in the new values to get a computed value out
+ style.minWidth = style.maxWidth = style.width = ret;
+ ret = computed.width;
+
+ // Revert the changed values
+ style.width = width;
+ style.minWidth = minWidth;
+ style.maxWidth = maxWidth;
+ }
+ }
+
+ return ret !== undefined ?
+
+ // Support: IE <=9 - 11 only
+ // IE returns zIndex value as an integer.
+ ret + "" :
+ ret;
+}
+
+return curCSS;
+} );
--- /dev/null
+define( [
+ "../core",
+ "../var/document",
+ "../manipulation" // appendTo
+], function( jQuery, document ) {
+
+var iframe,
+ elemdisplay = {
+
+ // Support: Firefox
+ // We have to pre-define these values for FF (#10227)
+ HTML: "block",
+ BODY: "block"
+ };
+
+/**
+ * Retrieve the actual display of a element
+ * @param {String} name nodeName of the element
+ * @param {Object} doc Document object
+ */
+
+// Called only from within defaultDisplay
+function actualDisplay( name, doc ) {
+ var elem = jQuery( doc.createElement( name ) ).appendTo( doc.body ),
+
+ display = jQuery.css( elem[ 0 ], "display" );
+
+ // We don't have any data stored on the element,
+ // so use "detach" method as fast way to get rid of the element
+ elem.detach();
+
+ return display;
+}
+
+/**
+ * Try to determine the default display value of an element
+ * @param {String} nodeName
+ */
+function defaultDisplay( nodeName ) {
+ var doc = document,
+ display = elemdisplay[ nodeName ];
+
+ if ( !display ) {
+ display = actualDisplay( nodeName, doc );
+
+ // If the simple way fails, read from inside an iframe
+ if ( display === "none" || !display ) {
+
+ // Use the already-created iframe if possible
+ iframe = ( iframe || jQuery( "<iframe frameborder='0' width='0' height='0'/>" ) )
+ .appendTo( doc.documentElement );
+
+ // Always write a new HTML skeleton so Webkit and Firefox don't choke on reuse
+ doc = iframe[ 0 ].contentDocument;
+
+ // Support: IE
+ doc.write();
+ doc.close();
+
+ display = actualDisplay( nodeName, doc );
+ iframe.detach();
+ }
+
+ // Store the correct default display
+ elemdisplay[ nodeName ] = display;
+ }
+
+ return display;
+}
+
+return defaultDisplay;
+} );
--- /dev/null
+define( [
+ "../core",
+ "../selector"
+], function( jQuery ) {
+
+"use strict";
+
+jQuery.expr.pseudos.hidden = function( elem ) {
+ return !jQuery.expr.pseudos.visible( elem );
+};
+jQuery.expr.pseudos.visible = function( elem ) {
+ return !!( elem.offsetWidth || elem.offsetHeight || elem.getClientRects().length );
+};
+
+} );
--- /dev/null
+define( [
+ "../core",
+ "../data/var/dataPriv",
+ "../css/var/isHiddenWithinTree"
+], function( jQuery, dataPriv, isHiddenWithinTree ) {
+
+"use strict";
+
+var defaultDisplayMap = {};
+
+function getDefaultDisplay( elem ) {
+ var temp,
+ doc = elem.ownerDocument,
+ nodeName = elem.nodeName,
+ display = defaultDisplayMap[ nodeName ];
+
+ if ( display ) {
+ return display;
+ }
+
+ temp = doc.body.appendChild( doc.createElement( nodeName ) );
+ display = jQuery.css( temp, "display" );
+
+ temp.parentNode.removeChild( temp );
+
+ if ( display === "none" ) {
+ display = "block";
+ }
+ defaultDisplayMap[ nodeName ] = display;
+
+ return display;
+}
+
+function showHide( elements, show ) {
+ var display, elem,
+ values = [],
+ index = 0,
+ length = elements.length;
+
+ // Determine new display value for elements that need to change
+ for ( ; index < length; index++ ) {
+ elem = elements[ index ];
+ if ( !elem.style ) {
+ continue;
+ }
+
+ display = elem.style.display;
+ if ( show ) {
+
+ // Since we force visibility upon cascade-hidden elements, an immediate (and slow)
+ // check is required in this first loop unless we have a nonempty display value (either
+ // inline or about-to-be-restored)
+ if ( display === "none" ) {
+ values[ index ] = dataPriv.get( elem, "display" ) || null;
+ if ( !values[ index ] ) {
+ elem.style.display = "";
+ }
+ }
+ if ( elem.style.display === "" && isHiddenWithinTree( elem ) ) {
+ values[ index ] = getDefaultDisplay( elem );
+ }
+ } else {
+ if ( display !== "none" ) {
+ values[ index ] = "none";
+
+ // Remember what we're overwriting
+ dataPriv.set( elem, "display", display );
+ }
+ }
+ }
+
+ // Set the display of the elements in a second loop to avoid constant reflow
+ for ( index = 0; index < length; index++ ) {
+ if ( values[ index ] != null ) {
+ elements[ index ].style.display = values[ index ];
+ }
+ }
+
+ return elements;
+}
+
+jQuery.fn.extend( {
+ show: function() {
+ return showHide( this, true );
+ },
+ hide: function() {
+ return showHide( this );
+ },
+ toggle: function( state ) {
+ if ( typeof state === "boolean" ) {
+ return state ? this.show() : this.hide();
+ }
+
+ return this.each( function() {
+ if ( isHiddenWithinTree( this ) ) {
+ jQuery( this ).show();
+ } else {
+ jQuery( this ).hide();
+ }
+ } );
+ }
+} );
+
+return showHide;
+} );
--- /dev/null
+define( [
+ "../core",
+ "../var/document",
+ "../var/documentElement",
+ "../var/support"
+], function( jQuery, document, documentElement, support ) {
+
+"use strict";
+
+( function() {
+
+ // Executing both pixelPosition & boxSizingReliable tests require only one layout
+ // so they're executed at the same time to save the second computation.
+ function computeStyleTests() {
+
+ // This is a singleton, we need to execute it only once
+ if ( !div ) {
+ return;
+ }
+
+ div.style.cssText =
+ "box-sizing:border-box;" +
+ "position:relative;display:block;" +
+ "margin:auto;border:1px;padding:1px;" +
+ "top:1%;width:50%";
+ div.innerHTML = "";
+ documentElement.appendChild( container );
+
+ var divStyle = window.getComputedStyle( div );
+ pixelPositionVal = divStyle.top !== "1%";
+
+ // Support: Android 4.0 - 4.3 only, Firefox <=3 - 44
+ reliableMarginLeftVal = divStyle.marginLeft === "2px";
+ boxSizingReliableVal = divStyle.width === "4px";
+
+ // Support: Android 4.0 - 4.3 only
+ // Some styles come back with percentage values, even though they shouldn't
+ div.style.marginRight = "50%";
+ pixelMarginRightVal = divStyle.marginRight === "4px";
+
+ documentElement.removeChild( container );
+
+ // Nullify the div so it wouldn't be stored in the memory and
+ // it will also be a sign that checks already performed
+ div = null;
+ }
+
+ var pixelPositionVal, boxSizingReliableVal, pixelMarginRightVal, reliableMarginLeftVal,
+ container = document.createElement( "div" ),
+ div = document.createElement( "div" );
+
+ // Finish early in limited (non-browser) environments
+ if ( !div.style ) {
+ return;
+ }
+
+ // Support: IE <=9 - 11 only
+ // Style of cloned element affects source element cloned (#8908)
+ div.style.backgroundClip = "content-box";
+ div.cloneNode( true ).style.backgroundClip = "";
+ support.clearCloneStyle = div.style.backgroundClip === "content-box";
+
+ container.style.cssText = "border:0;width:8px;height:0;top:0;left:-9999px;" +
+ "padding:0;margin-top:1px;position:absolute";
+ container.appendChild( div );
+
+ jQuery.extend( support, {
+ pixelPosition: function() {
+ computeStyleTests();
+ return pixelPositionVal;
+ },
+ boxSizingReliable: function() {
+ computeStyleTests();
+ return boxSizingReliableVal;
+ },
+ pixelMarginRight: function() {
+ computeStyleTests();
+ return pixelMarginRightVal;
+ },
+ reliableMarginLeft: function() {
+ computeStyleTests();
+ return reliableMarginLeftVal;
+ }
+ } );
+} )();
+
+return support;
+
+} );
--- /dev/null
+define( function() {
+ "use strict";
+
+ return [ "Top", "Right", "Bottom", "Left" ];
+} );
--- /dev/null
+define( function() {
+ "use strict";
+
+ return function( elem ) {
+
+ // Support: IE <=11 only, Firefox <=30 (#15098, #14150)
+ // IE throws on elements created in popups
+ // FF meanwhile throws on frame elements through "defaultView.getComputedStyle"
+ var view = elem.ownerDocument.defaultView;
+
+ if ( !view || !view.opener ) {
+ view = window;
+ }
+
+ return view.getComputedStyle( elem );
+ };
+} );
--- /dev/null
+define( [
+ "../../core",
+ "../../selector"
+
+ // css is assumed
+], function( jQuery ) {
+
+ return function( elem, el ) {
+
+ // isHidden might be called from jQuery#filter function;
+ // in that case, element will be second argument
+ elem = el || elem;
+ return jQuery.css( elem, "display" ) === "none" ||
+ !jQuery.contains( elem.ownerDocument, elem );
+ };
+} );
--- /dev/null
+define( [
+ "../../core",
+ "../../selector"
+
+ // css is assumed
+], function( jQuery ) {
+ "use strict";
+
+ // isHiddenWithinTree reports if an element has a non-"none" display style (inline and/or
+ // through the CSS cascade), which is useful in deciding whether or not to make it visible.
+ // It differs from the :hidden selector (jQuery.expr.pseudos.hidden) in two important ways:
+ // * A hidden ancestor does not force an element to be classified as hidden.
+ // * Being disconnected from the document does not force an element to be classified as hidden.
+ // These differences improve the behavior of .toggle() et al. when applied to elements that are
+ // detached or contained within hidden ancestors (gh-2404, gh-2863).
+ return function( elem, el ) {
+
+ // isHiddenWithinTree might be called from jQuery#filter function;
+ // in that case, element will be second argument
+ elem = el || elem;
+
+ // Inline style trumps all
+ return elem.style.display === "none" ||
+ elem.style.display === "" &&
+
+ // Otherwise, check computed style
+ // Support: Firefox <=43 - 45
+ // Disconnected elements can have computed display: none, so first confirm that elem is
+ // in the document.
+ jQuery.contains( elem.ownerDocument, elem ) &&
+
+ jQuery.css( elem, "display" ) === "none";
+ };
+} );
--- /dev/null
+define( function() {
+ "use strict";
+
+ return ( /^margin/ );
+} );
--- /dev/null
+define( [
+ "../../var/pnum"
+], function( pnum ) {
+ "use strict";
+
+ return new RegExp( "^(" + pnum + ")(?!px)[a-z%]+$", "i" );
+} );
--- /dev/null
+define( function() {
+
+"use strict";
+
+// A method for quickly swapping in/out CSS properties to get correct calculations.
+return function( elem, options, callback, args ) {
+ var ret, name,
+ old = {};
+
+ // Remember the old values, and insert the new ones
+ for ( name in options ) {
+ old[ name ] = elem.style[ name ];
+ elem.style[ name ] = options[ name ];
+ }
+
+ ret = callback.apply( elem, args || [] );
+
+ // Revert the old values
+ for ( name in options ) {
+ elem.style[ name ] = old[ name ];
+ }
+
+ return ret;
+};
+
+} );
--- /dev/null
+define( [
+ "./core",
+ "./core/access",
+ "./data/var/dataPriv",
+ "./data/var/dataUser"
+], function( jQuery, access, dataPriv, dataUser ) {
+
+"use strict";
+
+// Implementation Summary
+//
+// 1. Enforce API surface and semantic compatibility with 1.9.x branch
+// 2. Improve the module's maintainability by reducing the storage
+// paths to a single mechanism.
+// 3. Use the same single mechanism to support "private" and "user" data.
+// 4. _Never_ expose "private" data to user code (TODO: Drop _data, _removeData)
+// 5. Avoid exposing implementation details on user objects (eg. expando properties)
+// 6. Provide a clear path for implementation upgrade to WeakMap in 2014
+
+var rbrace = /^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,
+ rmultiDash = /[A-Z]/g;
+
+function getData( data ) {
+ if ( data === "true" ) {
+ return true;
+ }
+
+ if ( data === "false" ) {
+ return false;
+ }
+
+ if ( data === "null" ) {
+ return null;
+ }
+
+ // Only convert to a number if it doesn't change the string
+ if ( data === +data + "" ) {
+ return +data;
+ }
+
+ if ( rbrace.test( data ) ) {
+ return JSON.parse( data );
+ }
+
+ return data;
+}
+
+function dataAttr( elem, key, data ) {
+ var name;
+
+ // If nothing was found internally, try to fetch any
+ // data from the HTML5 data-* attribute
+ if ( data === undefined && elem.nodeType === 1 ) {
+ name = "data-" + key.replace( rmultiDash, "-$&" ).toLowerCase();
+ data = elem.getAttribute( name );
+
+ if ( typeof data === "string" ) {
+ try {
+ data = getData( data );
+ } catch ( e ) {}
+
+ // Make sure we set the data so it isn't changed later
+ dataUser.set( elem, key, data );
+ } else {
+ data = undefined;
+ }
+ }
+ return data;
+}
+
+jQuery.extend( {
+ hasData: function( elem ) {
+ return dataUser.hasData( elem ) || dataPriv.hasData( elem );
+ },
+
+ data: function( elem, name, data ) {
+ return dataUser.access( elem, name, data );
+ },
+
+ removeData: function( elem, name ) {
+ dataUser.remove( elem, name );
+ },
+
+ // TODO: Now that all calls to _data and _removeData have been replaced
+ // with direct calls to dataPriv methods, these can be deprecated.
+ _data: function( elem, name, data ) {
+ return dataPriv.access( elem, name, data );
+ },
+
+ _removeData: function( elem, name ) {
+ dataPriv.remove( elem, name );
+ }
+} );
+
+jQuery.fn.extend( {
+ data: function( key, value ) {
+ var i, name, data,
+ elem = this[ 0 ],
+ attrs = elem && elem.attributes;
+
+ // Gets all values
+ if ( key === undefined ) {
+ if ( this.length ) {
+ data = dataUser.get( elem );
+
+ if ( elem.nodeType === 1 && !dataPriv.get( elem, "hasDataAttrs" ) ) {
+ i = attrs.length;
+ while ( i-- ) {
+
+ // Support: IE 11 only
+ // The attrs elements can be null (#14894)
+ if ( attrs[ i ] ) {
+ name = attrs[ i ].name;
+ if ( name.indexOf( "data-" ) === 0 ) {
+ name = jQuery.camelCase( name.slice( 5 ) );
+ dataAttr( elem, name, data[ name ] );
+ }
+ }
+ }
+ dataPriv.set( elem, "hasDataAttrs", true );
+ }
+ }
+
+ return data;
+ }
+
+ // Sets multiple values
+ if ( typeof key === "object" ) {
+ return this.each( function() {
+ dataUser.set( this, key );
+ } );
+ }
+
+ return access( this, function( value ) {
+ var data;
+
+ // The calling jQuery object (element matches) is not empty
+ // (and therefore has an element appears at this[ 0 ]) and the
+ // `value` parameter was not undefined. An empty jQuery object
+ // will result in `undefined` for elem = this[ 0 ] which will
+ // throw an exception if an attempt to read a data cache is made.
+ if ( elem && value === undefined ) {
+
+ // Attempt to get data from the cache
+ // The key will always be camelCased in Data
+ data = dataUser.get( elem, key );
+ if ( data !== undefined ) {
+ return data;
+ }
+
+ // Attempt to "discover" the data in
+ // HTML5 custom data-* attrs
+ data = dataAttr( elem, key );
+ if ( data !== undefined ) {
+ return data;
+ }
+
+ // We tried really hard, but the data doesn't exist.
+ return;
+ }
+
+ // Set the data...
+ this.each( function() {
+
+ // We always store the camelCased key
+ dataUser.set( this, key, value );
+ } );
+ }, null, value, arguments.length > 1, null, true );
+ },
+
+ removeData: function( key ) {
+ return this.each( function() {
+ dataUser.remove( this, key );
+ } );
+ }
+} );
+
+return jQuery;
+} );
--- /dev/null
+define( [
+ "../core",
+ "../var/rnothtmlwhite",
+ "./var/acceptData"
+], function( jQuery, rnothtmlwhite, acceptData ) {
+
+"use strict";
+
+function Data() {
+ this.expando = jQuery.expando + Data.uid++;
+}
+
+Data.uid = 1;
+
+Data.prototype = {
+
+ cache: function( owner ) {
+
+ // Check if the owner object already has a cache
+ var value = owner[ this.expando ];
+
+ // If not, create one
+ if ( !value ) {
+ value = {};
+
+ // We can accept data for non-element nodes in modern browsers,
+ // but we should not, see #8335.
+ // Always return an empty object.
+ if ( acceptData( owner ) ) {
+
+ // If it is a node unlikely to be stringify-ed or looped over
+ // use plain assignment
+ if ( owner.nodeType ) {
+ owner[ this.expando ] = value;
+
+ // Otherwise secure it in a non-enumerable property
+ // configurable must be true to allow the property to be
+ // deleted when data is removed
+ } else {
+ Object.defineProperty( owner, this.expando, {
+ value: value,
+ configurable: true
+ } );
+ }
+ }
+ }
+
+ return value;
+ },
+ set: function( owner, data, value ) {
+ var prop,
+ cache = this.cache( owner );
+
+ // Handle: [ owner, key, value ] args
+ // Always use camelCase key (gh-2257)
+ if ( typeof data === "string" ) {
+ cache[ jQuery.camelCase( data ) ] = value;
+
+ // Handle: [ owner, { properties } ] args
+ } else {
+
+ // Copy the properties one-by-one to the cache object
+ for ( prop in data ) {
+ cache[ jQuery.camelCase( prop ) ] = data[ prop ];
+ }
+ }
+ return cache;
+ },
+ get: function( owner, key ) {
+ return key === undefined ?
+ this.cache( owner ) :
+
+ // Always use camelCase key (gh-2257)
+ owner[ this.expando ] && owner[ this.expando ][ jQuery.camelCase( key ) ];
+ },
+ access: function( owner, key, value ) {
+
+ // In cases where either:
+ //
+ // 1. No key was specified
+ // 2. A string key was specified, but no value provided
+ //
+ // Take the "read" path and allow the get method to determine
+ // which value to return, respectively either:
+ //
+ // 1. The entire cache object
+ // 2. The data stored at the key
+ //
+ if ( key === undefined ||
+ ( ( key && typeof key === "string" ) && value === undefined ) ) {
+
+ return this.get( owner, key );
+ }
+
+ // When the key is not a string, or both a key and value
+ // are specified, set or extend (existing objects) with either:
+ //
+ // 1. An object of properties
+ // 2. A key and value
+ //
+ this.set( owner, key, value );
+
+ // Since the "set" path can have two possible entry points
+ // return the expected data based on which path was taken[*]
+ return value !== undefined ? value : key;
+ },
+ remove: function( owner, key ) {
+ var i,
+ cache = owner[ this.expando ];
+
+ if ( cache === undefined ) {
+ return;
+ }
+
+ if ( key !== undefined ) {
+
+ // Support array or space separated string of keys
+ if ( jQuery.isArray( key ) ) {
+
+ // If key is an array of keys...
+ // We always set camelCase keys, so remove that.
+ key = key.map( jQuery.camelCase );
+ } else {
+ key = jQuery.camelCase( key );
+
+ // If a key with the spaces exists, use it.
+ // Otherwise, create an array by matching non-whitespace
+ key = key in cache ?
+ [ key ] :
+ ( key.match( rnothtmlwhite ) || [] );
+ }
+
+ i = key.length;
+
+ while ( i-- ) {
+ delete cache[ key[ i ] ];
+ }
+ }
+
+ // Remove the expando if there's no more data
+ if ( key === undefined || jQuery.isEmptyObject( cache ) ) {
+
+ // Support: Chrome <=35 - 45
+ // Webkit & Blink performance suffers when deleting properties
+ // from DOM nodes, so set to undefined instead
+ // https://bugs.chromium.org/p/chromium/issues/detail?id=378607 (bug restricted)
+ if ( owner.nodeType ) {
+ owner[ this.expando ] = undefined;
+ } else {
+ delete owner[ this.expando ];
+ }
+ }
+ },
+ hasData: function( owner ) {
+ var cache = owner[ this.expando ];
+ return cache !== undefined && !jQuery.isEmptyObject( cache );
+ }
+};
+
+return Data;
+} );
--- /dev/null
+define( function() {
+
+"use strict";
+
+/**
+ * Determines whether an object can have data
+ */
+return function( owner ) {
+
+ // Accepts only:
+ // - Node
+ // - Node.ELEMENT_NODE
+ // - Node.DOCUMENT_NODE
+ // - Object
+ // - Any
+ return owner.nodeType === 1 || owner.nodeType === 9 || !( +owner.nodeType );
+};
+
+} );
--- /dev/null
+define( [
+ "../Data"
+], function( Data ) {
+ "use strict";
+
+ return new Data();
+} );
--- /dev/null
+define( [
+ "../Data"
+], function( Data ) {
+ "use strict";
+
+ return new Data();
+} );
--- /dev/null
+define( [
+ "./core",
+ "./var/slice",
+ "./callbacks"
+], function( jQuery, slice ) {
+
+"use strict";
+
+function Identity( v ) {
+ return v;
+}
+function Thrower( ex ) {
+ throw ex;
+}
+
+function adoptValue( value, resolve, reject ) {
+ var method;
+
+ try {
+
+ // Check for promise aspect first to privilege synchronous behavior
+ if ( value && jQuery.isFunction( ( method = value.promise ) ) ) {
+ method.call( value ).done( resolve ).fail( reject );
+
+ // Other thenables
+ } else if ( value && jQuery.isFunction( ( method = value.then ) ) ) {
+ method.call( value, resolve, reject );
+
+ // Other non-thenables
+ } else {
+
+ // Support: Android 4.0 only
+ // Strict mode functions invoked without .call/.apply get global-object context
+ resolve.call( undefined, value );
+ }
+
+ // For Promises/A+, convert exceptions into rejections
+ // Since jQuery.when doesn't unwrap thenables, we can skip the extra checks appearing in
+ // Deferred#then to conditionally suppress rejection.
+ } catch ( value ) {
+
+ // Support: Android 4.0 only
+ // Strict mode functions invoked without .call/.apply get global-object context
+ reject.call( undefined, value );
+ }
+}
+
+jQuery.extend( {
+
+ Deferred: function( func ) {
+ var tuples = [
+
+ // action, add listener, callbacks,
+ // ... .then handlers, argument index, [final state]
+ [ "notify", "progress", jQuery.Callbacks( "memory" ),
+ jQuery.Callbacks( "memory" ), 2 ],
+ [ "resolve", "done", jQuery.Callbacks( "once memory" ),
+ jQuery.Callbacks( "once memory" ), 0, "resolved" ],
+ [ "reject", "fail", jQuery.Callbacks( "once memory" ),
+ jQuery.Callbacks( "once memory" ), 1, "rejected" ]
+ ],
+ state = "pending",
+ promise = {
+ state: function() {
+ return state;
+ },
+ always: function() {
+ deferred.done( arguments ).fail( arguments );
+ return this;
+ },
+ "catch": function( fn ) {
+ return promise.then( null, fn );
+ },
+
+ // Keep pipe for back-compat
+ pipe: function( /* fnDone, fnFail, fnProgress */ ) {
+ var fns = arguments;
+
+ return jQuery.Deferred( function( newDefer ) {
+ jQuery.each( tuples, function( i, tuple ) {
+
+ // Map tuples (progress, done, fail) to arguments (done, fail, progress)
+ var fn = jQuery.isFunction( fns[ tuple[ 4 ] ] ) && fns[ tuple[ 4 ] ];
+
+ // deferred.progress(function() { bind to newDefer or newDefer.notify })
+ // deferred.done(function() { bind to newDefer or newDefer.resolve })
+ // deferred.fail(function() { bind to newDefer or newDefer.reject })
+ deferred[ tuple[ 1 ] ]( function() {
+ var returned = fn && fn.apply( this, arguments );
+ if ( returned && jQuery.isFunction( returned.promise ) ) {
+ returned.promise()
+ .progress( newDefer.notify )
+ .done( newDefer.resolve )
+ .fail( newDefer.reject );
+ } else {
+ newDefer[ tuple[ 0 ] + "With" ](
+ this,
+ fn ? [ returned ] : arguments
+ );
+ }
+ } );
+ } );
+ fns = null;
+ } ).promise();
+ },
+ then: function( onFulfilled, onRejected, onProgress ) {
+ var maxDepth = 0;
+ function resolve( depth, deferred, handler, special ) {
+ return function() {
+ var that = this,
+ args = arguments,
+ mightThrow = function() {
+ var returned, then;
+
+ // Support: Promises/A+ section 2.3.3.3.3
+ // https://promisesaplus.com/#point-59
+ // Ignore double-resolution attempts
+ if ( depth < maxDepth ) {
+ return;
+ }
+
+ returned = handler.apply( that, args );
+
+ // Support: Promises/A+ section 2.3.1
+ // https://promisesaplus.com/#point-48
+ if ( returned === deferred.promise() ) {
+ throw new TypeError( "Thenable self-resolution" );
+ }
+
+ // Support: Promises/A+ sections 2.3.3.1, 3.5
+ // https://promisesaplus.com/#point-54
+ // https://promisesaplus.com/#point-75
+ // Retrieve `then` only once
+ then = returned &&
+
+ // Support: Promises/A+ section 2.3.4
+ // https://promisesaplus.com/#point-64
+ // Only check objects and functions for thenability
+ ( typeof returned === "object" ||
+ typeof returned === "function" ) &&
+ returned.then;
+
+ // Handle a returned thenable
+ if ( jQuery.isFunction( then ) ) {
+
+ // Special processors (notify) just wait for resolution
+ if ( special ) {
+ then.call(
+ returned,
+ resolve( maxDepth, deferred, Identity, special ),
+ resolve( maxDepth, deferred, Thrower, special )
+ );
+
+ // Normal processors (resolve) also hook into progress
+ } else {
+
+ // ...and disregard older resolution values
+ maxDepth++;
+
+ then.call(
+ returned,
+ resolve( maxDepth, deferred, Identity, special ),
+ resolve( maxDepth, deferred, Thrower, special ),
+ resolve( maxDepth, deferred, Identity,
+ deferred.notifyWith )
+ );
+ }
+
+ // Handle all other returned values
+ } else {
+
+ // Only substitute handlers pass on context
+ // and multiple values (non-spec behavior)
+ if ( handler !== Identity ) {
+ that = undefined;
+ args = [ returned ];
+ }
+
+ // Process the value(s)
+ // Default process is resolve
+ ( special || deferred.resolveWith )( that, args );
+ }
+ },
+
+ // Only normal processors (resolve) catch and reject exceptions
+ process = special ?
+ mightThrow :
+ function() {
+ try {
+ mightThrow();
+ } catch ( e ) {
+
+ if ( jQuery.Deferred.exceptionHook ) {
+ jQuery.Deferred.exceptionHook( e,
+ process.stackTrace );
+ }
+
+ // Support: Promises/A+ section 2.3.3.3.4.1
+ // https://promisesaplus.com/#point-61
+ // Ignore post-resolution exceptions
+ if ( depth + 1 >= maxDepth ) {
+
+ // Only substitute handlers pass on context
+ // and multiple values (non-spec behavior)
+ if ( handler !== Thrower ) {
+ that = undefined;
+ args = [ e ];
+ }
+
+ deferred.rejectWith( that, args );
+ }
+ }
+ };
+
+ // Support: Promises/A+ section 2.3.3.3.1
+ // https://promisesaplus.com/#point-57
+ // Re-resolve promises immediately to dodge false rejection from
+ // subsequent errors
+ if ( depth ) {
+ process();
+ } else {
+
+ // Call an optional hook to record the stack, in case of exception
+ // since it's otherwise lost when execution goes async
+ if ( jQuery.Deferred.getStackHook ) {
+ process.stackTrace = jQuery.Deferred.getStackHook();
+ }
+ window.setTimeout( process );
+ }
+ };
+ }
+
+ return jQuery.Deferred( function( newDefer ) {
+
+ // progress_handlers.add( ... )
+ tuples[ 0 ][ 3 ].add(
+ resolve(
+ 0,
+ newDefer,
+ jQuery.isFunction( onProgress ) ?
+ onProgress :
+ Identity,
+ newDefer.notifyWith
+ )
+ );
+
+ // fulfilled_handlers.add( ... )
+ tuples[ 1 ][ 3 ].add(
+ resolve(
+ 0,
+ newDefer,
+ jQuery.isFunction( onFulfilled ) ?
+ onFulfilled :
+ Identity
+ )
+ );
+
+ // rejected_handlers.add( ... )
+ tuples[ 2 ][ 3 ].add(
+ resolve(
+ 0,
+ newDefer,
+ jQuery.isFunction( onRejected ) ?
+ onRejected :
+ Thrower
+ )
+ );
+ } ).promise();
+ },
+
+ // Get a promise for this deferred
+ // If obj is provided, the promise aspect is added to the object
+ promise: function( obj ) {
+ return obj != null ? jQuery.extend( obj, promise ) : promise;
+ }
+ },
+ deferred = {};
+
+ // Add list-specific methods
+ jQuery.each( tuples, function( i, tuple ) {
+ var list = tuple[ 2 ],
+ stateString = tuple[ 5 ];
+
+ // promise.progress = list.add
+ // promise.done = list.add
+ // promise.fail = list.add
+ promise[ tuple[ 1 ] ] = list.add;
+
+ // Handle state
+ if ( stateString ) {
+ list.add(
+ function() {
+
+ // state = "resolved" (i.e., fulfilled)
+ // state = "rejected"
+ state = stateString;
+ },
+
+ // rejected_callbacks.disable
+ // fulfilled_callbacks.disable
+ tuples[ 3 - i ][ 2 ].disable,
+
+ // progress_callbacks.lock
+ tuples[ 0 ][ 2 ].lock
+ );
+ }
+
+ // progress_handlers.fire
+ // fulfilled_handlers.fire
+ // rejected_handlers.fire
+ list.add( tuple[ 3 ].fire );
+
+ // deferred.notify = function() { deferred.notifyWith(...) }
+ // deferred.resolve = function() { deferred.resolveWith(...) }
+ // deferred.reject = function() { deferred.rejectWith(...) }
+ deferred[ tuple[ 0 ] ] = function() {
+ deferred[ tuple[ 0 ] + "With" ]( this === deferred ? undefined : this, arguments );
+ return this;
+ };
+
+ // deferred.notifyWith = list.fireWith
+ // deferred.resolveWith = list.fireWith
+ // deferred.rejectWith = list.fireWith
+ deferred[ tuple[ 0 ] + "With" ] = list.fireWith;
+ } );
+
+ // Make the deferred a promise
+ promise.promise( deferred );
+
+ // Call given func if any
+ if ( func ) {
+ func.call( deferred, deferred );
+ }
+
+ // All done!
+ return deferred;
+ },
+
+ // Deferred helper
+ when: function( singleValue ) {
+ var
+
+ // count of uncompleted subordinates
+ remaining = arguments.length,
+
+ // count of unprocessed arguments
+ i = remaining,
+
+ // subordinate fulfillment data
+ resolveContexts = Array( i ),
+ resolveValues = slice.call( arguments ),
+
+ // the master Deferred
+ master = jQuery.Deferred(),
+
+ // subordinate callback factory
+ updateFunc = function( i ) {
+ return function( value ) {
+ resolveContexts[ i ] = this;
+ resolveValues[ i ] = arguments.length > 1 ? slice.call( arguments ) : value;
+ if ( !( --remaining ) ) {
+ master.resolveWith( resolveContexts, resolveValues );
+ }
+ };
+ };
+
+ // Single- and empty arguments are adopted like Promise.resolve
+ if ( remaining <= 1 ) {
+ adoptValue( singleValue, master.done( updateFunc( i ) ).resolve, master.reject );
+
+ // Use .then() to unwrap secondary thenables (cf. gh-3000)
+ if ( master.state() === "pending" ||
+ jQuery.isFunction( resolveValues[ i ] && resolveValues[ i ].then ) ) {
+
+ return master.then();
+ }
+ }
+
+ // Multiple arguments are aggregated like Promise.all array elements
+ while ( i-- ) {
+ adoptValue( resolveValues[ i ], updateFunc( i ), master.reject );
+ }
+
+ return master.promise();
+ }
+} );
+
+return jQuery;
+} );
--- /dev/null
+define( [
+ "../core",
+ "../deferred"
+], function( jQuery ) {
+
+"use strict";
+
+// These usually indicate a programmer mistake during development,
+// warn about them ASAP rather than swallowing them by default.
+var rerrorNames = /^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;
+
+jQuery.Deferred.exceptionHook = function( error, stack ) {
+
+ // Support: IE 8 - 9 only
+ // Console exists when dev tools are open, which can happen at any time
+ if ( window.console && window.console.warn && error && rerrorNames.test( error.name ) ) {
+ window.console.warn( "jQuery.Deferred exception: " + error.message, error.stack, stack );
+ }
+};
+
+} );
--- /dev/null
+define( [
+ "./core"
+], function( jQuery ) {
+
+"use strict";
+
+jQuery.fn.extend( {
+
+ bind: function( types, data, fn ) {
+ return this.on( types, null, data, fn );
+ },
+ unbind: function( types, fn ) {
+ return this.off( types, null, fn );
+ },
+
+ delegate: function( selector, types, data, fn ) {
+ return this.on( types, selector, data, fn );
+ },
+ undelegate: function( selector, types, fn ) {
+
+ // ( namespace ) or ( selector, types [, fn] )
+ return arguments.length === 1 ?
+ this.off( selector, "**" ) :
+ this.off( types, selector || "**", fn );
+ }
+} );
+
+jQuery.parseJSON = JSON.parse;
+
+} );
--- /dev/null
+define( [
+ "./core",
+ "./core/access",
+ "./css"
+], function( jQuery, access ) {
+
+"use strict";
+
+// Create innerHeight, innerWidth, height, width, outerHeight and outerWidth methods
+jQuery.each( { Height: "height", Width: "width" }, function( name, type ) {
+ jQuery.each( { padding: "inner" + name, content: type, "": "outer" + name },
+ function( defaultExtra, funcName ) {
+
+ // Margin is only for outerHeight, outerWidth
+ jQuery.fn[ funcName ] = function( margin, value ) {
+ var chainable = arguments.length && ( defaultExtra || typeof margin !== "boolean" ),
+ extra = defaultExtra || ( margin === true || value === true ? "margin" : "border" );
+
+ return access( this, function( elem, type, value ) {
+ var doc;
+
+ if ( jQuery.isWindow( elem ) ) {
+
+ // $( window ).outerWidth/Height return w/h including scrollbars (gh-1729)
+ return funcName.indexOf( "outer" ) === 0 ?
+ elem[ "inner" + name ] :
+ elem.document.documentElement[ "client" + name ];
+ }
+
+ // Get document width or height
+ if ( elem.nodeType === 9 ) {
+ doc = elem.documentElement;
+
+ // Either scroll[Width/Height] or offset[Width/Height] or client[Width/Height],
+ // whichever is greatest
+ return Math.max(
+ elem.body[ "scroll" + name ], doc[ "scroll" + name ],
+ elem.body[ "offset" + name ], doc[ "offset" + name ],
+ doc[ "client" + name ]
+ );
+ }
+
+ return value === undefined ?
+
+ // Get width or height on the element, requesting but not forcing parseFloat
+ jQuery.css( elem, type, extra ) :
+
+ // Set width or height on the element
+ jQuery.style( elem, type, value, extra );
+ }, type, chainable ? margin : undefined, chainable );
+ };
+ } );
+} );
+
+return jQuery;
+} );
--- /dev/null
+define( [
+ "./core",
+ "./var/document",
+ "./var/rcssNum",
+ "./var/rnothtmlwhite",
+ "./css/var/cssExpand",
+ "./css/var/isHiddenWithinTree",
+ "./css/var/swap",
+ "./css/adjustCSS",
+ "./data/var/dataPriv",
+ "./css/showHide",
+
+ "./core/init",
+ "./queue",
+ "./deferred",
+ "./traversing",
+ "./manipulation",
+ "./css",
+ "./effects/Tween"
+], function( jQuery, document, rcssNum, rnothtmlwhite, cssExpand, isHiddenWithinTree, swap,
+ adjustCSS, dataPriv, showHide ) {
+
+"use strict";
+
+var
+ fxNow, timerId,
+ rfxtypes = /^(?:toggle|show|hide)$/,
+ rrun = /queueHooks$/;
+
+function raf() {
+ if ( timerId ) {
+ window.requestAnimationFrame( raf );
+ jQuery.fx.tick();
+ }
+}
+
+// Animations created synchronously will run synchronously
+function createFxNow() {
+ window.setTimeout( function() {
+ fxNow = undefined;
+ } );
+ return ( fxNow = jQuery.now() );
+}
+
+// Generate parameters to create a standard animation
+function genFx( type, includeWidth ) {
+ var which,
+ i = 0,
+ attrs = { height: type };
+
+ // If we include width, step value is 1 to do all cssExpand values,
+ // otherwise step value is 2 to skip over Left and Right
+ includeWidth = includeWidth ? 1 : 0;
+ for ( ; i < 4; i += 2 - includeWidth ) {
+ which = cssExpand[ i ];
+ attrs[ "margin" + which ] = attrs[ "padding" + which ] = type;
+ }
+
+ if ( includeWidth ) {
+ attrs.opacity = attrs.width = type;
+ }
+
+ return attrs;
+}
+
+function createTween( value, prop, animation ) {
+ var tween,
+ collection = ( Animation.tweeners[ prop ] || [] ).concat( Animation.tweeners[ "*" ] ),
+ index = 0,
+ length = collection.length;
+ for ( ; index < length; index++ ) {
+ if ( ( tween = collection[ index ].call( animation, prop, value ) ) ) {
+
+ // We're done with this property
+ return tween;
+ }
+ }
+}
+
+function defaultPrefilter( elem, props, opts ) {
+ var prop, value, toggle, hooks, oldfire, propTween, restoreDisplay, display,
+ isBox = "width" in props || "height" in props,
+ anim = this,
+ orig = {},
+ style = elem.style,
+ hidden = elem.nodeType && isHiddenWithinTree( elem ),
+ dataShow = dataPriv.get( elem, "fxshow" );
+
+ // Queue-skipping animations hijack the fx hooks
+ if ( !opts.queue ) {
+ hooks = jQuery._queueHooks( elem, "fx" );
+ if ( hooks.unqueued == null ) {
+ hooks.unqueued = 0;
+ oldfire = hooks.empty.fire;
+ hooks.empty.fire = function() {
+ if ( !hooks.unqueued ) {
+ oldfire();
+ }
+ };
+ }
+ hooks.unqueued++;
+
+ anim.always( function() {
+
+ // Ensure the complete handler is called before this completes
+ anim.always( function() {
+ hooks.unqueued--;
+ if ( !jQuery.queue( elem, "fx" ).length ) {
+ hooks.empty.fire();
+ }
+ } );
+ } );
+ }
+
+ // Detect show/hide animations
+ for ( prop in props ) {
+ value = props[ prop ];
+ if ( rfxtypes.test( value ) ) {
+ delete props[ prop ];
+ toggle = toggle || value === "toggle";
+ if ( value === ( hidden ? "hide" : "show" ) ) {
+
+ // Pretend to be hidden if this is a "show" and
+ // there is still data from a stopped show/hide
+ if ( value === "show" && dataShow && dataShow[ prop ] !== undefined ) {
+ hidden = true;
+
+ // Ignore all other no-op show/hide data
+ } else {
+ continue;
+ }
+ }
+ orig[ prop ] = dataShow && dataShow[ prop ] || jQuery.style( elem, prop );
+ }
+ }
+
+ // Bail out if this is a no-op like .hide().hide()
+ propTween = !jQuery.isEmptyObject( props );
+ if ( !propTween && jQuery.isEmptyObject( orig ) ) {
+ return;
+ }
+
+ // Restrict "overflow" and "display" styles during box animations
+ if ( isBox && elem.nodeType === 1 ) {
+
+ // Support: IE <=9 - 11, Edge 12 - 13
+ // Record all 3 overflow attributes because IE does not infer the shorthand
+ // from identically-valued overflowX and overflowY
+ opts.overflow = [ style.overflow, style.overflowX, style.overflowY ];
+
+ // Identify a display type, preferring old show/hide data over the CSS cascade
+ restoreDisplay = dataShow && dataShow.display;
+ if ( restoreDisplay == null ) {
+ restoreDisplay = dataPriv.get( elem, "display" );
+ }
+ display = jQuery.css( elem, "display" );
+ if ( display === "none" ) {
+ if ( restoreDisplay ) {
+ display = restoreDisplay;
+ } else {
+
+ // Get nonempty value(s) by temporarily forcing visibility
+ showHide( [ elem ], true );
+ restoreDisplay = elem.style.display || restoreDisplay;
+ display = jQuery.css( elem, "display" );
+ showHide( [ elem ] );
+ }
+ }
+
+ // Animate inline elements as inline-block
+ if ( display === "inline" || display === "inline-block" && restoreDisplay != null ) {
+ if ( jQuery.css( elem, "float" ) === "none" ) {
+
+ // Restore the original display value at the end of pure show/hide animations
+ if ( !propTween ) {
+ anim.done( function() {
+ style.display = restoreDisplay;
+ } );
+ if ( restoreDisplay == null ) {
+ display = style.display;
+ restoreDisplay = display === "none" ? "" : display;
+ }
+ }
+ style.display = "inline-block";
+ }
+ }
+ }
+
+ if ( opts.overflow ) {
+ style.overflow = "hidden";
+ anim.always( function() {
+ style.overflow = opts.overflow[ 0 ];
+ style.overflowX = opts.overflow[ 1 ];
+ style.overflowY = opts.overflow[ 2 ];
+ } );
+ }
+
+ // Implement show/hide animations
+ propTween = false;
+ for ( prop in orig ) {
+
+ // General show/hide setup for this element animation
+ if ( !propTween ) {
+ if ( dataShow ) {
+ if ( "hidden" in dataShow ) {
+ hidden = dataShow.hidden;
+ }
+ } else {
+ dataShow = dataPriv.access( elem, "fxshow", { display: restoreDisplay } );
+ }
+
+ // Store hidden/visible for toggle so `.stop().toggle()` "reverses"
+ if ( toggle ) {
+ dataShow.hidden = !hidden;
+ }
+
+ // Show elements before animating them
+ if ( hidden ) {
+ showHide( [ elem ], true );
+ }
+
+ /* eslint-disable no-loop-func */
+
+ anim.done( function() {
+
+ /* eslint-enable no-loop-func */
+
+ // The final step of a "hide" animation is actually hiding the element
+ if ( !hidden ) {
+ showHide( [ elem ] );
+ }
+ dataPriv.remove( elem, "fxshow" );
+ for ( prop in orig ) {
+ jQuery.style( elem, prop, orig[ prop ] );
+ }
+ } );
+ }
+
+ // Per-property setup
+ propTween = createTween( hidden ? dataShow[ prop ] : 0, prop, anim );
+ if ( !( prop in dataShow ) ) {
+ dataShow[ prop ] = propTween.start;
+ if ( hidden ) {
+ propTween.end = propTween.start;
+ propTween.start = 0;
+ }
+ }
+ }
+}
+
+function propFilter( props, specialEasing ) {
+ var index, name, easing, value, hooks;
+
+ // camelCase, specialEasing and expand cssHook pass
+ for ( index in props ) {
+ name = jQuery.camelCase( index );
+ easing = specialEasing[ name ];
+ value = props[ index ];
+ if ( jQuery.isArray( value ) ) {
+ easing = value[ 1 ];
+ value = props[ index ] = value[ 0 ];
+ }
+
+ if ( index !== name ) {
+ props[ name ] = value;
+ delete props[ index ];
+ }
+
+ hooks = jQuery.cssHooks[ name ];
+ if ( hooks && "expand" in hooks ) {
+ value = hooks.expand( value );
+ delete props[ name ];
+
+ // Not quite $.extend, this won't overwrite existing keys.
+ // Reusing 'index' because we have the correct "name"
+ for ( index in value ) {
+ if ( !( index in props ) ) {
+ props[ index ] = value[ index ];
+ specialEasing[ index ] = easing;
+ }
+ }
+ } else {
+ specialEasing[ name ] = easing;
+ }
+ }
+}
+
+function Animation( elem, properties, options ) {
+ var result,
+ stopped,
+ index = 0,
+ length = Animation.prefilters.length,
+ deferred = jQuery.Deferred().always( function() {
+
+ // Don't match elem in the :animated selector
+ delete tick.elem;
+ } ),
+ tick = function() {
+ if ( stopped ) {
+ return false;
+ }
+ var currentTime = fxNow || createFxNow(),
+ remaining = Math.max( 0, animation.startTime + animation.duration - currentTime ),
+
+ // Support: Android 2.3 only
+ // Archaic crash bug won't allow us to use `1 - ( 0.5 || 0 )` (#12497)
+ temp = remaining / animation.duration || 0,
+ percent = 1 - temp,
+ index = 0,
+ length = animation.tweens.length;
+
+ for ( ; index < length; index++ ) {
+ animation.tweens[ index ].run( percent );
+ }
+
+ deferred.notifyWith( elem, [ animation, percent, remaining ] );
+
+ if ( percent < 1 && length ) {
+ return remaining;
+ } else {
+ deferred.resolveWith( elem, [ animation ] );
+ return false;
+ }
+ },
+ animation = deferred.promise( {
+ elem: elem,
+ props: jQuery.extend( {}, properties ),
+ opts: jQuery.extend( true, {
+ specialEasing: {},
+ easing: jQuery.easing._default
+ }, options ),
+ originalProperties: properties,
+ originalOptions: options,
+ startTime: fxNow || createFxNow(),
+ duration: options.duration,
+ tweens: [],
+ createTween: function( prop, end ) {
+ var tween = jQuery.Tween( elem, animation.opts, prop, end,
+ animation.opts.specialEasing[ prop ] || animation.opts.easing );
+ animation.tweens.push( tween );
+ return tween;
+ },
+ stop: function( gotoEnd ) {
+ var index = 0,
+
+ // If we are going to the end, we want to run all the tweens
+ // otherwise we skip this part
+ length = gotoEnd ? animation.tweens.length : 0;
+ if ( stopped ) {
+ return this;
+ }
+ stopped = true;
+ for ( ; index < length; index++ ) {
+ animation.tweens[ index ].run( 1 );
+ }
+
+ // Resolve when we played the last frame; otherwise, reject
+ if ( gotoEnd ) {
+ deferred.notifyWith( elem, [ animation, 1, 0 ] );
+ deferred.resolveWith( elem, [ animation, gotoEnd ] );
+ } else {
+ deferred.rejectWith( elem, [ animation, gotoEnd ] );
+ }
+ return this;
+ }
+ } ),
+ props = animation.props;
+
+ propFilter( props, animation.opts.specialEasing );
+
+ for ( ; index < length; index++ ) {
+ result = Animation.prefilters[ index ].call( animation, elem, props, animation.opts );
+ if ( result ) {
+ if ( jQuery.isFunction( result.stop ) ) {
+ jQuery._queueHooks( animation.elem, animation.opts.queue ).stop =
+ jQuery.proxy( result.stop, result );
+ }
+ return result;
+ }
+ }
+
+ jQuery.map( props, createTween, animation );
+
+ if ( jQuery.isFunction( animation.opts.start ) ) {
+ animation.opts.start.call( elem, animation );
+ }
+
+ jQuery.fx.timer(
+ jQuery.extend( tick, {
+ elem: elem,
+ anim: animation,
+ queue: animation.opts.queue
+ } )
+ );
+
+ // attach callbacks from options
+ return animation.progress( animation.opts.progress )
+ .done( animation.opts.done, animation.opts.complete )
+ .fail( animation.opts.fail )
+ .always( animation.opts.always );
+}
+
+jQuery.Animation = jQuery.extend( Animation, {
+
+ tweeners: {
+ "*": [ function( prop, value ) {
+ var tween = this.createTween( prop, value );
+ adjustCSS( tween.elem, prop, rcssNum.exec( value ), tween );
+ return tween;
+ } ]
+ },
+
+ tweener: function( props, callback ) {
+ if ( jQuery.isFunction( props ) ) {
+ callback = props;
+ props = [ "*" ];
+ } else {
+ props = props.match( rnothtmlwhite );
+ }
+
+ var prop,
+ index = 0,
+ length = props.length;
+
+ for ( ; index < length; index++ ) {
+ prop = props[ index ];
+ Animation.tweeners[ prop ] = Animation.tweeners[ prop ] || [];
+ Animation.tweeners[ prop ].unshift( callback );
+ }
+ },
+
+ prefilters: [ defaultPrefilter ],
+
+ prefilter: function( callback, prepend ) {
+ if ( prepend ) {
+ Animation.prefilters.unshift( callback );
+ } else {
+ Animation.prefilters.push( callback );
+ }
+ }
+} );
+
+jQuery.speed = function( speed, easing, fn ) {
+ var opt = speed && typeof speed === "object" ? jQuery.extend( {}, speed ) : {
+ complete: fn || !fn && easing ||
+ jQuery.isFunction( speed ) && speed,
+ duration: speed,
+ easing: fn && easing || easing && !jQuery.isFunction( easing ) && easing
+ };
+
+ // Go to the end state if fx are off or if document is hidden
+ if ( jQuery.fx.off || document.hidden ) {
+ opt.duration = 0;
+
+ } else {
+ if ( typeof opt.duration !== "number" ) {
+ if ( opt.duration in jQuery.fx.speeds ) {
+ opt.duration = jQuery.fx.speeds[ opt.duration ];
+
+ } else {
+ opt.duration = jQuery.fx.speeds._default;
+ }
+ }
+ }
+
+ // Normalize opt.queue - true/undefined/null -> "fx"
+ if ( opt.queue == null || opt.queue === true ) {
+ opt.queue = "fx";
+ }
+
+ // Queueing
+ opt.old = opt.complete;
+
+ opt.complete = function() {
+ if ( jQuery.isFunction( opt.old ) ) {
+ opt.old.call( this );
+ }
+
+ if ( opt.queue ) {
+ jQuery.dequeue( this, opt.queue );
+ }
+ };
+
+ return opt;
+};
+
+jQuery.fn.extend( {
+ fadeTo: function( speed, to, easing, callback ) {
+
+ // Show any hidden elements after setting opacity to 0
+ return this.filter( isHiddenWithinTree ).css( "opacity", 0 ).show()
+
+ // Animate to the value specified
+ .end().animate( { opacity: to }, speed, easing, callback );
+ },
+ animate: function( prop, speed, easing, callback ) {
+ var empty = jQuery.isEmptyObject( prop ),
+ optall = jQuery.speed( speed, easing, callback ),
+ doAnimation = function() {
+
+ // Operate on a copy of prop so per-property easing won't be lost
+ var anim = Animation( this, jQuery.extend( {}, prop ), optall );
+
+ // Empty animations, or finishing resolves immediately
+ if ( empty || dataPriv.get( this, "finish" ) ) {
+ anim.stop( true );
+ }
+ };
+ doAnimation.finish = doAnimation;
+
+ return empty || optall.queue === false ?
+ this.each( doAnimation ) :
+ this.queue( optall.queue, doAnimation );
+ },
+ stop: function( type, clearQueue, gotoEnd ) {
+ var stopQueue = function( hooks ) {
+ var stop = hooks.stop;
+ delete hooks.stop;
+ stop( gotoEnd );
+ };
+
+ if ( typeof type !== "string" ) {
+ gotoEnd = clearQueue;
+ clearQueue = type;
+ type = undefined;
+ }
+ if ( clearQueue && type !== false ) {
+ this.queue( type || "fx", [] );
+ }
+
+ return this.each( function() {
+ var dequeue = true,
+ index = type != null && type + "queueHooks",
+ timers = jQuery.timers,
+ data = dataPriv.get( this );
+
+ if ( index ) {
+ if ( data[ index ] && data[ index ].stop ) {
+ stopQueue( data[ index ] );
+ }
+ } else {
+ for ( index in data ) {
+ if ( data[ index ] && data[ index ].stop && rrun.test( index ) ) {
+ stopQueue( data[ index ] );
+ }
+ }
+ }
+
+ for ( index = timers.length; index--; ) {
+ if ( timers[ index ].elem === this &&
+ ( type == null || timers[ index ].queue === type ) ) {
+
+ timers[ index ].anim.stop( gotoEnd );
+ dequeue = false;
+ timers.splice( index, 1 );
+ }
+ }
+
+ // Start the next in the queue if the last step wasn't forced.
+ // Timers currently will call their complete callbacks, which
+ // will dequeue but only if they were gotoEnd.
+ if ( dequeue || !gotoEnd ) {
+ jQuery.dequeue( this, type );
+ }
+ } );
+ },
+ finish: function( type ) {
+ if ( type !== false ) {
+ type = type || "fx";
+ }
+ return this.each( function() {
+ var index,
+ data = dataPriv.get( this ),
+ queue = data[ type + "queue" ],
+ hooks = data[ type + "queueHooks" ],
+ timers = jQuery.timers,
+ length = queue ? queue.length : 0;
+
+ // Enable finishing flag on private data
+ data.finish = true;
+
+ // Empty the queue first
+ jQuery.queue( this, type, [] );
+
+ if ( hooks && hooks.stop ) {
+ hooks.stop.call( this, true );
+ }
+
+ // Look for any active animations, and finish them
+ for ( index = timers.length; index--; ) {
+ if ( timers[ index ].elem === this && timers[ index ].queue === type ) {
+ timers[ index ].anim.stop( true );
+ timers.splice( index, 1 );
+ }
+ }
+
+ // Look for any animations in the old queue and finish them
+ for ( index = 0; index < length; index++ ) {
+ if ( queue[ index ] && queue[ index ].finish ) {
+ queue[ index ].finish.call( this );
+ }
+ }
+
+ // Turn off finishing flag
+ delete data.finish;
+ } );
+ }
+} );
+
+jQuery.each( [ "toggle", "show", "hide" ], function( i, name ) {
+ var cssFn = jQuery.fn[ name ];
+ jQuery.fn[ name ] = function( speed, easing, callback ) {
+ return speed == null || typeof speed === "boolean" ?
+ cssFn.apply( this, arguments ) :
+ this.animate( genFx( name, true ), speed, easing, callback );
+ };
+} );
+
+// Generate shortcuts for custom animations
+jQuery.each( {
+ slideDown: genFx( "show" ),
+ slideUp: genFx( "hide" ),
+ slideToggle: genFx( "toggle" ),
+ fadeIn: { opacity: "show" },
+ fadeOut: { opacity: "hide" },
+ fadeToggle: { opacity: "toggle" }
+}, function( name, props ) {
+ jQuery.fn[ name ] = function( speed, easing, callback ) {
+ return this.animate( props, speed, easing, callback );
+ };
+} );
+
+jQuery.timers = [];
+jQuery.fx.tick = function() {
+ var timer,
+ i = 0,
+ timers = jQuery.timers;
+
+ fxNow = jQuery.now();
+
+ for ( ; i < timers.length; i++ ) {
+ timer = timers[ i ];
+
+ // Checks the timer has not already been removed
+ if ( !timer() && timers[ i ] === timer ) {
+ timers.splice( i--, 1 );
+ }
+ }
+
+ if ( !timers.length ) {
+ jQuery.fx.stop();
+ }
+ fxNow = undefined;
+};
+
+jQuery.fx.timer = function( timer ) {
+ jQuery.timers.push( timer );
+ if ( timer() ) {
+ jQuery.fx.start();
+ } else {
+ jQuery.timers.pop();
+ }
+};
+
+jQuery.fx.interval = 13;
+jQuery.fx.start = function() {
+ if ( !timerId ) {
+ timerId = window.requestAnimationFrame ?
+ window.requestAnimationFrame( raf ) :
+ window.setInterval( jQuery.fx.tick, jQuery.fx.interval );
+ }
+};
+
+jQuery.fx.stop = function() {
+ if ( window.cancelAnimationFrame ) {
+ window.cancelAnimationFrame( timerId );
+ } else {
+ window.clearInterval( timerId );
+ }
+
+ timerId = null;
+};
+
+jQuery.fx.speeds = {
+ slow: 600,
+ fast: 200,
+
+ // Default speed
+ _default: 400
+};
+
+return jQuery;
+} );
--- /dev/null
+define( [
+ "../core",
+ "../css"
+], function( jQuery ) {
+
+"use strict";
+
+function Tween( elem, options, prop, end, easing ) {
+ return new Tween.prototype.init( elem, options, prop, end, easing );
+}
+jQuery.Tween = Tween;
+
+Tween.prototype = {
+ constructor: Tween,
+ init: function( elem, options, prop, end, easing, unit ) {
+ this.elem = elem;
+ this.prop = prop;
+ this.easing = easing || jQuery.easing._default;
+ this.options = options;
+ this.start = this.now = this.cur();
+ this.end = end;
+ this.unit = unit || ( jQuery.cssNumber[ prop ] ? "" : "px" );
+ },
+ cur: function() {
+ var hooks = Tween.propHooks[ this.prop ];
+
+ return hooks && hooks.get ?
+ hooks.get( this ) :
+ Tween.propHooks._default.get( this );
+ },
+ run: function( percent ) {
+ var eased,
+ hooks = Tween.propHooks[ this.prop ];
+
+ if ( this.options.duration ) {
+ this.pos = eased = jQuery.easing[ this.easing ](
+ percent, this.options.duration * percent, 0, 1, this.options.duration
+ );
+ } else {
+ this.pos = eased = percent;
+ }
+ this.now = ( this.end - this.start ) * eased + this.start;
+
+ if ( this.options.step ) {
+ this.options.step.call( this.elem, this.now, this );
+ }
+
+ if ( hooks && hooks.set ) {
+ hooks.set( this );
+ } else {
+ Tween.propHooks._default.set( this );
+ }
+ return this;
+ }
+};
+
+Tween.prototype.init.prototype = Tween.prototype;
+
+Tween.propHooks = {
+ _default: {
+ get: function( tween ) {
+ var result;
+
+ // Use a property on the element directly when it is not a DOM element,
+ // or when there is no matching style property that exists.
+ if ( tween.elem.nodeType !== 1 ||
+ tween.elem[ tween.prop ] != null && tween.elem.style[ tween.prop ] == null ) {
+ return tween.elem[ tween.prop ];
+ }
+
+ // Passing an empty string as a 3rd parameter to .css will automatically
+ // attempt a parseFloat and fallback to a string if the parse fails.
+ // Simple values such as "10px" are parsed to Float;
+ // complex values such as "rotate(1rad)" are returned as-is.
+ result = jQuery.css( tween.elem, tween.prop, "" );
+
+ // Empty strings, null, undefined and "auto" are converted to 0.
+ return !result || result === "auto" ? 0 : result;
+ },
+ set: function( tween ) {
+
+ // Use step hook for back compat.
+ // Use cssHook if its there.
+ // Use .style if available and use plain properties where available.
+ if ( jQuery.fx.step[ tween.prop ] ) {
+ jQuery.fx.step[ tween.prop ]( tween );
+ } else if ( tween.elem.nodeType === 1 &&
+ ( tween.elem.style[ jQuery.cssProps[ tween.prop ] ] != null ||
+ jQuery.cssHooks[ tween.prop ] ) ) {
+ jQuery.style( tween.elem, tween.prop, tween.now + tween.unit );
+ } else {
+ tween.elem[ tween.prop ] = tween.now;
+ }
+ }
+ }
+};
+
+// Support: IE <=9 only
+// Panic based approach to setting things on disconnected nodes
+Tween.propHooks.scrollTop = Tween.propHooks.scrollLeft = {
+ set: function( tween ) {
+ if ( tween.elem.nodeType && tween.elem.parentNode ) {
+ tween.elem[ tween.prop ] = tween.now;
+ }
+ }
+};
+
+jQuery.easing = {
+ linear: function( p ) {
+ return p;
+ },
+ swing: function( p ) {
+ return 0.5 - Math.cos( p * Math.PI ) / 2;
+ },
+ _default: "swing"
+};
+
+jQuery.fx = Tween.prototype.init;
+
+// Back compat <1.8 extension point
+jQuery.fx.step = {};
+
+} );
--- /dev/null
+define( [
+ "../core",
+ "../selector",
+ "../effects"
+], function( jQuery ) {
+
+"use strict";
+
+jQuery.expr.pseudos.animated = function( elem ) {
+ return jQuery.grep( jQuery.timers, function( fn ) {
+ return elem === fn.elem;
+ } ).length;
+};
+
+} );
--- /dev/null
+define( [
+ "./core",
+ "./var/document",
+ "./var/documentElement",
+ "./var/rnothtmlwhite",
+ "./var/slice",
+ "./data/var/dataPriv",
+
+ "./core/init",
+ "./selector"
+], function( jQuery, document, documentElement, rnothtmlwhite, slice, dataPriv ) {
+
+"use strict";
+
+var
+ rkeyEvent = /^key/,
+ rmouseEvent = /^(?:mouse|pointer|contextmenu|drag|drop)|click/,
+ rtypenamespace = /^([^.]*)(?:\.(.+)|)/;
+
+function returnTrue() {
+ return true;
+}
+
+function returnFalse() {
+ return false;
+}
+
+// Support: IE <=9 only
+// See #13393 for more info
+function safeActiveElement() {
+ try {
+ return document.activeElement;
+ } catch ( err ) { }
+}
+
+function on( elem, types, selector, data, fn, one ) {
+ var origFn, type;
+
+ // Types can be a map of types/handlers
+ if ( typeof types === "object" ) {
+
+ // ( types-Object, selector, data )
+ if ( typeof selector !== "string" ) {
+
+ // ( types-Object, data )
+ data = data || selector;
+ selector = undefined;
+ }
+ for ( type in types ) {
+ on( elem, type, selector, data, types[ type ], one );
+ }
+ return elem;
+ }
+
+ if ( data == null && fn == null ) {
+
+ // ( types, fn )
+ fn = selector;
+ data = selector = undefined;
+ } else if ( fn == null ) {
+ if ( typeof selector === "string" ) {
+
+ // ( types, selector, fn )
+ fn = data;
+ data = undefined;
+ } else {
+
+ // ( types, data, fn )
+ fn = data;
+ data = selector;
+ selector = undefined;
+ }
+ }
+ if ( fn === false ) {
+ fn = returnFalse;
+ } else if ( !fn ) {
+ return elem;
+ }
+
+ if ( one === 1 ) {
+ origFn = fn;
+ fn = function( event ) {
+
+ // Can use an empty set, since event contains the info
+ jQuery().off( event );
+ return origFn.apply( this, arguments );
+ };
+
+ // Use same guid so caller can remove using origFn
+ fn.guid = origFn.guid || ( origFn.guid = jQuery.guid++ );
+ }
+ return elem.each( function() {
+ jQuery.event.add( this, types, fn, data, selector );
+ } );
+}
+
+/*
+ * Helper functions for managing events -- not part of the public interface.
+ * Props to Dean Edwards' addEvent library for many of the ideas.
+ */
+jQuery.event = {
+
+ global: {},
+
+ add: function( elem, types, handler, data, selector ) {
+
+ var handleObjIn, eventHandle, tmp,
+ events, t, handleObj,
+ special, handlers, type, namespaces, origType,
+ elemData = dataPriv.get( elem );
+
+ // Don't attach events to noData or text/comment nodes (but allow plain objects)
+ if ( !elemData ) {
+ return;
+ }
+
+ // Caller can pass in an object of custom data in lieu of the handler
+ if ( handler.handler ) {
+ handleObjIn = handler;
+ handler = handleObjIn.handler;
+ selector = handleObjIn.selector;
+ }
+
+ // Ensure that invalid selectors throw exceptions at attach time
+ // Evaluate against documentElement in case elem is a non-element node (e.g., document)
+ if ( selector ) {
+ jQuery.find.matchesSelector( documentElement, selector );
+ }
+
+ // Make sure that the handler has a unique ID, used to find/remove it later
+ if ( !handler.guid ) {
+ handler.guid = jQuery.guid++;
+ }
+
+ // Init the element's event structure and main handler, if this is the first
+ if ( !( events = elemData.events ) ) {
+ events = elemData.events = {};
+ }
+ if ( !( eventHandle = elemData.handle ) ) {
+ eventHandle = elemData.handle = function( e ) {
+
+ // Discard the second event of a jQuery.event.trigger() and
+ // when an event is called after a page has unloaded
+ return typeof jQuery !== "undefined" && jQuery.event.triggered !== e.type ?
+ jQuery.event.dispatch.apply( elem, arguments ) : undefined;
+ };
+ }
+
+ // Handle multiple events separated by a space
+ types = ( types || "" ).match( rnothtmlwhite ) || [ "" ];
+ t = types.length;
+ while ( t-- ) {
+ tmp = rtypenamespace.exec( types[ t ] ) || [];
+ type = origType = tmp[ 1 ];
+ namespaces = ( tmp[ 2 ] || "" ).split( "." ).sort();
+
+ // There *must* be a type, no attaching namespace-only handlers
+ if ( !type ) {
+ continue;
+ }
+
+ // If event changes its type, use the special event handlers for the changed type
+ special = jQuery.event.special[ type ] || {};
+
+ // If selector defined, determine special event api type, otherwise given type
+ type = ( selector ? special.delegateType : special.bindType ) || type;
+
+ // Update special based on newly reset type
+ special = jQuery.event.special[ type ] || {};
+
+ // handleObj is passed to all event handlers
+ handleObj = jQuery.extend( {
+ type: type,
+ origType: origType,
+ data: data,
+ handler: handler,
+ guid: handler.guid,
+ selector: selector,
+ needsContext: selector && jQuery.expr.match.needsContext.test( selector ),
+ namespace: namespaces.join( "." )
+ }, handleObjIn );
+
+ // Init the event handler queue if we're the first
+ if ( !( handlers = events[ type ] ) ) {
+ handlers = events[ type ] = [];
+ handlers.delegateCount = 0;
+
+ // Only use addEventListener if the special events handler returns false
+ if ( !special.setup ||
+ special.setup.call( elem, data, namespaces, eventHandle ) === false ) {
+
+ if ( elem.addEventListener ) {
+ elem.addEventListener( type, eventHandle );
+ }
+ }
+ }
+
+ if ( special.add ) {
+ special.add.call( elem, handleObj );
+
+ if ( !handleObj.handler.guid ) {
+ handleObj.handler.guid = handler.guid;
+ }
+ }
+
+ // Add to the element's handler list, delegates in front
+ if ( selector ) {
+ handlers.splice( handlers.delegateCount++, 0, handleObj );
+ } else {
+ handlers.push( handleObj );
+ }
+
+ // Keep track of which events have ever been used, for event optimization
+ jQuery.event.global[ type ] = true;
+ }
+
+ },
+
+ // Detach an event or set of events from an element
+ remove: function( elem, types, handler, selector, mappedTypes ) {
+
+ var j, origCount, tmp,
+ events, t, handleObj,
+ special, handlers, type, namespaces, origType,
+ elemData = dataPriv.hasData( elem ) && dataPriv.get( elem );
+
+ if ( !elemData || !( events = elemData.events ) ) {
+ return;
+ }
+
+ // Once for each type.namespace in types; type may be omitted
+ types = ( types || "" ).match( rnothtmlwhite ) || [ "" ];
+ t = types.length;
+ while ( t-- ) {
+ tmp = rtypenamespace.exec( types[ t ] ) || [];
+ type = origType = tmp[ 1 ];
+ namespaces = ( tmp[ 2 ] || "" ).split( "." ).sort();
+
+ // Unbind all events (on this namespace, if provided) for the element
+ if ( !type ) {
+ for ( type in events ) {
+ jQuery.event.remove( elem, type + types[ t ], handler, selector, true );
+ }
+ continue;
+ }
+
+ special = jQuery.event.special[ type ] || {};
+ type = ( selector ? special.delegateType : special.bindType ) || type;
+ handlers = events[ type ] || [];
+ tmp = tmp[ 2 ] &&
+ new RegExp( "(^|\\.)" + namespaces.join( "\\.(?:.*\\.|)" ) + "(\\.|$)" );
+
+ // Remove matching events
+ origCount = j = handlers.length;
+ while ( j-- ) {
+ handleObj = handlers[ j ];
+
+ if ( ( mappedTypes || origType === handleObj.origType ) &&
+ ( !handler || handler.guid === handleObj.guid ) &&
+ ( !tmp || tmp.test( handleObj.namespace ) ) &&
+ ( !selector || selector === handleObj.selector ||
+ selector === "**" && handleObj.selector ) ) {
+ handlers.splice( j, 1 );
+
+ if ( handleObj.selector ) {
+ handlers.delegateCount--;
+ }
+ if ( special.remove ) {
+ special.remove.call( elem, handleObj );
+ }
+ }
+ }
+
+ // Remove generic event handler if we removed something and no more handlers exist
+ // (avoids potential for endless recursion during removal of special event handlers)
+ if ( origCount && !handlers.length ) {
+ if ( !special.teardown ||
+ special.teardown.call( elem, namespaces, elemData.handle ) === false ) {
+
+ jQuery.removeEvent( elem, type, elemData.handle );
+ }
+
+ delete events[ type ];
+ }
+ }
+
+ // Remove data and the expando if it's no longer used
+ if ( jQuery.isEmptyObject( events ) ) {
+ dataPriv.remove( elem, "handle events" );
+ }
+ },
+
+ dispatch: function( nativeEvent ) {
+
+ // Make a writable jQuery.Event from the native event object
+ var event = jQuery.event.fix( nativeEvent );
+
+ var i, j, ret, matched, handleObj, handlerQueue,
+ args = new Array( arguments.length ),
+ handlers = ( dataPriv.get( this, "events" ) || {} )[ event.type ] || [],
+ special = jQuery.event.special[ event.type ] || {};
+
+ // Use the fix-ed jQuery.Event rather than the (read-only) native event
+ args[ 0 ] = event;
+
+ for ( i = 1; i < arguments.length; i++ ) {
+ args[ i ] = arguments[ i ];
+ }
+
+ event.delegateTarget = this;
+
+ // Call the preDispatch hook for the mapped type, and let it bail if desired
+ if ( special.preDispatch && special.preDispatch.call( this, event ) === false ) {
+ return;
+ }
+
+ // Determine handlers
+ handlerQueue = jQuery.event.handlers.call( this, event, handlers );
+
+ // Run delegates first; they may want to stop propagation beneath us
+ i = 0;
+ while ( ( matched = handlerQueue[ i++ ] ) && !event.isPropagationStopped() ) {
+ event.currentTarget = matched.elem;
+
+ j = 0;
+ while ( ( handleObj = matched.handlers[ j++ ] ) &&
+ !event.isImmediatePropagationStopped() ) {
+
+ // Triggered event must either 1) have no namespace, or 2) have namespace(s)
+ // a subset or equal to those in the bound event (both can have no namespace).
+ if ( !event.rnamespace || event.rnamespace.test( handleObj.namespace ) ) {
+
+ event.handleObj = handleObj;
+ event.data = handleObj.data;
+
+ ret = ( ( jQuery.event.special[ handleObj.origType ] || {} ).handle ||
+ handleObj.handler ).apply( matched.elem, args );
+
+ if ( ret !== undefined ) {
+ if ( ( event.result = ret ) === false ) {
+ event.preventDefault();
+ event.stopPropagation();
+ }
+ }
+ }
+ }
+ }
+
+ // Call the postDispatch hook for the mapped type
+ if ( special.postDispatch ) {
+ special.postDispatch.call( this, event );
+ }
+
+ return event.result;
+ },
+
+ handlers: function( event, handlers ) {
+ var i, handleObj, sel, matchedHandlers, matchedSelectors,
+ handlerQueue = [],
+ delegateCount = handlers.delegateCount,
+ cur = event.target;
+
+ // Find delegate handlers
+ if ( delegateCount &&
+
+ // Support: IE <=9
+ // Black-hole SVG <use> instance trees (trac-13180)
+ cur.nodeType &&
+
+ // Support: Firefox <=42
+ // Suppress spec-violating clicks indicating a non-primary pointer button (trac-3861)
+ // https://www.w3.org/TR/DOM-Level-3-Events/#event-type-click
+ // Support: IE 11 only
+ // ...but not arrow key "clicks" of radio inputs, which can have `button` -1 (gh-2343)
+ !( event.type === "click" && event.button >= 1 ) ) {
+
+ for ( ; cur !== this; cur = cur.parentNode || this ) {
+
+ // Don't check non-elements (#13208)
+ // Don't process clicks on disabled elements (#6911, #8165, #11382, #11764)
+ if ( cur.nodeType === 1 && !( event.type === "click" && cur.disabled === true ) ) {
+ matchedHandlers = [];
+ matchedSelectors = {};
+ for ( i = 0; i < delegateCount; i++ ) {
+ handleObj = handlers[ i ];
+
+ // Don't conflict with Object.prototype properties (#13203)
+ sel = handleObj.selector + " ";
+
+ if ( matchedSelectors[ sel ] === undefined ) {
+ matchedSelectors[ sel ] = handleObj.needsContext ?
+ jQuery( sel, this ).index( cur ) > -1 :
+ jQuery.find( sel, this, null, [ cur ] ).length;
+ }
+ if ( matchedSelectors[ sel ] ) {
+ matchedHandlers.push( handleObj );
+ }
+ }
+ if ( matchedHandlers.length ) {
+ handlerQueue.push( { elem: cur, handlers: matchedHandlers } );
+ }
+ }
+ }
+ }
+
+ // Add the remaining (directly-bound) handlers
+ cur = this;
+ if ( delegateCount < handlers.length ) {
+ handlerQueue.push( { elem: cur, handlers: handlers.slice( delegateCount ) } );
+ }
+
+ return handlerQueue;
+ },
+
+ addProp: function( name, hook ) {
+ Object.defineProperty( jQuery.Event.prototype, name, {
+ enumerable: true,
+ configurable: true,
+
+ get: jQuery.isFunction( hook ) ?
+ function() {
+ if ( this.originalEvent ) {
+ return hook( this.originalEvent );
+ }
+ } :
+ function() {
+ if ( this.originalEvent ) {
+ return this.originalEvent[ name ];
+ }
+ },
+
+ set: function( value ) {
+ Object.defineProperty( this, name, {
+ enumerable: true,
+ configurable: true,
+ writable: true,
+ value: value
+ } );
+ }
+ } );
+ },
+
+ fix: function( originalEvent ) {
+ return originalEvent[ jQuery.expando ] ?
+ originalEvent :
+ new jQuery.Event( originalEvent );
+ },
+
+ special: {
+ load: {
+
+ // Prevent triggered image.load events from bubbling to window.load
+ noBubble: true
+ },
+ focus: {
+
+ // Fire native event if possible so blur/focus sequence is correct
+ trigger: function() {
+ if ( this !== safeActiveElement() && this.focus ) {
+ this.focus();
+ return false;
+ }
+ },
+ delegateType: "focusin"
+ },
+ blur: {
+ trigger: function() {
+ if ( this === safeActiveElement() && this.blur ) {
+ this.blur();
+ return false;
+ }
+ },
+ delegateType: "focusout"
+ },
+ click: {
+
+ // For checkbox, fire native event so checked state will be right
+ trigger: function() {
+ if ( this.type === "checkbox" && this.click && jQuery.nodeName( this, "input" ) ) {
+ this.click();
+ return false;
+ }
+ },
+
+ // For cross-browser consistency, don't fire native .click() on links
+ _default: function( event ) {
+ return jQuery.nodeName( event.target, "a" );
+ }
+ },
+
+ beforeunload: {
+ postDispatch: function( event ) {
+
+ // Support: Firefox 20+
+ // Firefox doesn't alert if the returnValue field is not set.
+ if ( event.result !== undefined && event.originalEvent ) {
+ event.originalEvent.returnValue = event.result;
+ }
+ }
+ }
+ }
+};
+
+jQuery.removeEvent = function( elem, type, handle ) {
+
+ // This "if" is needed for plain objects
+ if ( elem.removeEventListener ) {
+ elem.removeEventListener( type, handle );
+ }
+};
+
+jQuery.Event = function( src, props ) {
+
+ // Allow instantiation without the 'new' keyword
+ if ( !( this instanceof jQuery.Event ) ) {
+ return new jQuery.Event( src, props );
+ }
+
+ // Event object
+ if ( src && src.type ) {
+ this.originalEvent = src;
+ this.type = src.type;
+
+ // Events bubbling up the document may have been marked as prevented
+ // by a handler lower down the tree; reflect the correct value.
+ this.isDefaultPrevented = src.defaultPrevented ||
+ src.defaultPrevented === undefined &&
+
+ // Support: Android <=2.3 only
+ src.returnValue === false ?
+ returnTrue :
+ returnFalse;
+
+ // Create target properties
+ // Support: Safari <=6 - 7 only
+ // Target should not be a text node (#504, #13143)
+ this.target = ( src.target && src.target.nodeType === 3 ) ?
+ src.target.parentNode :
+ src.target;
+
+ this.currentTarget = src.currentTarget;
+ this.relatedTarget = src.relatedTarget;
+
+ // Event type
+ } else {
+ this.type = src;
+ }
+
+ // Put explicitly provided properties onto the event object
+ if ( props ) {
+ jQuery.extend( this, props );
+ }
+
+ // Create a timestamp if incoming event doesn't have one
+ this.timeStamp = src && src.timeStamp || jQuery.now();
+
+ // Mark it as fixed
+ this[ jQuery.expando ] = true;
+};
+
+// jQuery.Event is based on DOM3 Events as specified by the ECMAScript Language Binding
+// https://www.w3.org/TR/2003/WD-DOM-Level-3-Events-20030331/ecma-script-binding.html
+jQuery.Event.prototype = {
+ constructor: jQuery.Event,
+ isDefaultPrevented: returnFalse,
+ isPropagationStopped: returnFalse,
+ isImmediatePropagationStopped: returnFalse,
+ isSimulated: false,
+
+ preventDefault: function() {
+ var e = this.originalEvent;
+
+ this.isDefaultPrevented = returnTrue;
+
+ if ( e && !this.isSimulated ) {
+ e.preventDefault();
+ }
+ },
+ stopPropagation: function() {
+ var e = this.originalEvent;
+
+ this.isPropagationStopped = returnTrue;
+
+ if ( e && !this.isSimulated ) {
+ e.stopPropagation();
+ }
+ },
+ stopImmediatePropagation: function() {
+ var e = this.originalEvent;
+
+ this.isImmediatePropagationStopped = returnTrue;
+
+ if ( e && !this.isSimulated ) {
+ e.stopImmediatePropagation();
+ }
+
+ this.stopPropagation();
+ }
+};
+
+// Includes all common event props including KeyEvent and MouseEvent specific props
+jQuery.each( {
+ altKey: true,
+ bubbles: true,
+ cancelable: true,
+ changedTouches: true,
+ ctrlKey: true,
+ detail: true,
+ eventPhase: true,
+ metaKey: true,
+ pageX: true,
+ pageY: true,
+ shiftKey: true,
+ view: true,
+ "char": true,
+ charCode: true,
+ key: true,
+ keyCode: true,
+ button: true,
+ buttons: true,
+ clientX: true,
+ clientY: true,
+ offsetX: true,
+ offsetY: true,
+ pointerId: true,
+ pointerType: true,
+ screenX: true,
+ screenY: true,
+ targetTouches: true,
+ toElement: true,
+ touches: true,
+
+ which: function( event ) {
+ var button = event.button;
+
+ // Add which for key events
+ if ( event.which == null && rkeyEvent.test( event.type ) ) {
+ return event.charCode != null ? event.charCode : event.keyCode;
+ }
+
+ // Add which for click: 1 === left; 2 === middle; 3 === right
+ if ( !event.which && button !== undefined && rmouseEvent.test( event.type ) ) {
+ if ( button & 1 ) {
+ return 1;
+ }
+
+ if ( button & 2 ) {
+ return 3;
+ }
+
+ if ( button & 4 ) {
+ return 2;
+ }
+
+ return 0;
+ }
+
+ return event.which;
+ }
+}, jQuery.event.addProp );
+
+// Create mouseenter/leave events using mouseover/out and event-time checks
+// so that event delegation works in jQuery.
+// Do the same for pointerenter/pointerleave and pointerover/pointerout
+//
+// Support: Safari 7 only
+// Safari sends mouseenter too often; see:
+// https://bugs.chromium.org/p/chromium/issues/detail?id=470258
+// for the description of the bug (it existed in older Chrome versions as well).
+jQuery.each( {
+ mouseenter: "mouseover",
+ mouseleave: "mouseout",
+ pointerenter: "pointerover",
+ pointerleave: "pointerout"
+}, function( orig, fix ) {
+ jQuery.event.special[ orig ] = {
+ delegateType: fix,
+ bindType: fix,
+
+ handle: function( event ) {
+ var ret,
+ target = this,
+ related = event.relatedTarget,
+ handleObj = event.handleObj;
+
+ // For mouseenter/leave call the handler if related is outside the target.
+ // NB: No relatedTarget if the mouse left/entered the browser window
+ if ( !related || ( related !== target && !jQuery.contains( target, related ) ) ) {
+ event.type = handleObj.origType;
+ ret = handleObj.handler.apply( this, arguments );
+ event.type = fix;
+ }
+ return ret;
+ }
+ };
+} );
+
+jQuery.fn.extend( {
+
+ on: function( types, selector, data, fn ) {
+ return on( this, types, selector, data, fn );
+ },
+ one: function( types, selector, data, fn ) {
+ return on( this, types, selector, data, fn, 1 );
+ },
+ off: function( types, selector, fn ) {
+ var handleObj, type;
+ if ( types && types.preventDefault && types.handleObj ) {
+
+ // ( event ) dispatched jQuery.Event
+ handleObj = types.handleObj;
+ jQuery( types.delegateTarget ).off(
+ handleObj.namespace ?
+ handleObj.origType + "." + handleObj.namespace :
+ handleObj.origType,
+ handleObj.selector,
+ handleObj.handler
+ );
+ return this;
+ }
+ if ( typeof types === "object" ) {
+
+ // ( types-object [, selector] )
+ for ( type in types ) {
+ this.off( type, selector, types[ type ] );
+ }
+ return this;
+ }
+ if ( selector === false || typeof selector === "function" ) {
+
+ // ( types [, fn] )
+ fn = selector;
+ selector = undefined;
+ }
+ if ( fn === false ) {
+ fn = returnFalse;
+ }
+ return this.each( function() {
+ jQuery.event.remove( this, types, fn, selector );
+ } );
+ }
+} );
+
+return jQuery;
+} );
--- /dev/null
+define( [
+ "../core",
+ "../event"
+], function( jQuery ) {
+
+"use strict";
+
+// Attach a bunch of functions for handling common AJAX events
+jQuery.each( [
+ "ajaxStart",
+ "ajaxStop",
+ "ajaxComplete",
+ "ajaxError",
+ "ajaxSuccess",
+ "ajaxSend"
+], function( i, type ) {
+ jQuery.fn[ type ] = function( fn ) {
+ return this.on( type, fn );
+ };
+} );
+
+} );
--- /dev/null
+define( [
+ "../core",
+
+ "../event",
+ "./trigger"
+], function( jQuery ) {
+
+"use strict";
+
+jQuery.each( ( "blur focus focusin focusout resize scroll click dblclick " +
+ "mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave " +
+ "change select submit keydown keypress keyup contextmenu" ).split( " " ),
+ function( i, name ) {
+
+ // Handle event binding
+ jQuery.fn[ name ] = function( data, fn ) {
+ return arguments.length > 0 ?
+ this.on( name, null, data, fn ) :
+ this.trigger( name );
+ };
+} );
+
+jQuery.fn.extend( {
+ hover: function( fnOver, fnOut ) {
+ return this.mouseenter( fnOver ).mouseleave( fnOut || fnOver );
+ }
+} );
+
+} );
--- /dev/null
+define( [
+ "../core",
+ "../data/var/dataPriv",
+ "./support",
+
+ "../event",
+ "./trigger"
+], function( jQuery, dataPriv, support ) {
+
+"use strict";
+
+// Support: Firefox <=44
+// Firefox doesn't have focus(in | out) events
+// Related ticket - https://bugzilla.mozilla.org/show_bug.cgi?id=687787
+//
+// Support: Chrome <=48 - 49, Safari <=9.0 - 9.1
+// focus(in | out) events fire after focus & blur events,
+// which is spec violation - http://www.w3.org/TR/DOM-Level-3-Events/#events-focusevent-event-order
+// Related ticket - https://bugs.chromium.org/p/chromium/issues/detail?id=449857
+if ( !support.focusin ) {
+ jQuery.each( { focus: "focusin", blur: "focusout" }, function( orig, fix ) {
+
+ // Attach a single capturing handler on the document while someone wants focusin/focusout
+ var handler = function( event ) {
+ jQuery.event.simulate( fix, event.target, jQuery.event.fix( event ) );
+ };
+
+ jQuery.event.special[ fix ] = {
+ setup: function() {
+ var doc = this.ownerDocument || this,
+ attaches = dataPriv.access( doc, fix );
+
+ if ( !attaches ) {
+ doc.addEventListener( orig, handler, true );
+ }
+ dataPriv.access( doc, fix, ( attaches || 0 ) + 1 );
+ },
+ teardown: function() {
+ var doc = this.ownerDocument || this,
+ attaches = dataPriv.access( doc, fix ) - 1;
+
+ if ( !attaches ) {
+ doc.removeEventListener( orig, handler, true );
+ dataPriv.remove( doc, fix );
+
+ } else {
+ dataPriv.access( doc, fix, attaches );
+ }
+ }
+ };
+ } );
+}
+
+return jQuery;
+} );
--- /dev/null
+define( [
+ "../var/support"
+], function( support ) {
+
+"use strict";
+
+support.focusin = "onfocusin" in window;
+
+return support;
+
+} );
--- /dev/null
+define( [
+ "../core",
+ "../var/document",
+ "../data/var/dataPriv",
+ "../data/var/acceptData",
+ "../var/hasOwn",
+
+ "../event"
+], function( jQuery, document, dataPriv, acceptData, hasOwn ) {
+
+"use strict";
+
+var rfocusMorph = /^(?:focusinfocus|focusoutblur)$/;
+
+jQuery.extend( jQuery.event, {
+
+ trigger: function( event, data, elem, onlyHandlers ) {
+
+ var i, cur, tmp, bubbleType, ontype, handle, special,
+ eventPath = [ elem || document ],
+ type = hasOwn.call( event, "type" ) ? event.type : event,
+ namespaces = hasOwn.call( event, "namespace" ) ? event.namespace.split( "." ) : [];
+
+ cur = tmp = elem = elem || document;
+
+ // Don't do events on text and comment nodes
+ if ( elem.nodeType === 3 || elem.nodeType === 8 ) {
+ return;
+ }
+
+ // focus/blur morphs to focusin/out; ensure we're not firing them right now
+ if ( rfocusMorph.test( type + jQuery.event.triggered ) ) {
+ return;
+ }
+
+ if ( type.indexOf( "." ) > -1 ) {
+
+ // Namespaced trigger; create a regexp to match event type in handle()
+ namespaces = type.split( "." );
+ type = namespaces.shift();
+ namespaces.sort();
+ }
+ ontype = type.indexOf( ":" ) < 0 && "on" + type;
+
+ // Caller can pass in a jQuery.Event object, Object, or just an event type string
+ event = event[ jQuery.expando ] ?
+ event :
+ new jQuery.Event( type, typeof event === "object" && event );
+
+ // Trigger bitmask: & 1 for native handlers; & 2 for jQuery (always true)
+ event.isTrigger = onlyHandlers ? 2 : 3;
+ event.namespace = namespaces.join( "." );
+ event.rnamespace = event.namespace ?
+ new RegExp( "(^|\\.)" + namespaces.join( "\\.(?:.*\\.|)" ) + "(\\.|$)" ) :
+ null;
+
+ // Clean up the event in case it is being reused
+ event.result = undefined;
+ if ( !event.target ) {
+ event.target = elem;
+ }
+
+ // Clone any incoming data and prepend the event, creating the handler arg list
+ data = data == null ?
+ [ event ] :
+ jQuery.makeArray( data, [ event ] );
+
+ // Allow special events to draw outside the lines
+ special = jQuery.event.special[ type ] || {};
+ if ( !onlyHandlers && special.trigger && special.trigger.apply( elem, data ) === false ) {
+ return;
+ }
+
+ // Determine event propagation path in advance, per W3C events spec (#9951)
+ // Bubble up to document, then to window; watch for a global ownerDocument var (#9724)
+ if ( !onlyHandlers && !special.noBubble && !jQuery.isWindow( elem ) ) {
+
+ bubbleType = special.delegateType || type;
+ if ( !rfocusMorph.test( bubbleType + type ) ) {
+ cur = cur.parentNode;
+ }
+ for ( ; cur; cur = cur.parentNode ) {
+ eventPath.push( cur );
+ tmp = cur;
+ }
+
+ // Only add window if we got to document (e.g., not plain obj or detached DOM)
+ if ( tmp === ( elem.ownerDocument || document ) ) {
+ eventPath.push( tmp.defaultView || tmp.parentWindow || window );
+ }
+ }
+
+ // Fire handlers on the event path
+ i = 0;
+ while ( ( cur = eventPath[ i++ ] ) && !event.isPropagationStopped() ) {
+
+ event.type = i > 1 ?
+ bubbleType :
+ special.bindType || type;
+
+ // jQuery handler
+ handle = ( dataPriv.get( cur, "events" ) || {} )[ event.type ] &&
+ dataPriv.get( cur, "handle" );
+ if ( handle ) {
+ handle.apply( cur, data );
+ }
+
+ // Native handler
+ handle = ontype && cur[ ontype ];
+ if ( handle && handle.apply && acceptData( cur ) ) {
+ event.result = handle.apply( cur, data );
+ if ( event.result === false ) {
+ event.preventDefault();
+ }
+ }
+ }
+ event.type = type;
+
+ // If nobody prevented the default action, do it now
+ if ( !onlyHandlers && !event.isDefaultPrevented() ) {
+
+ if ( ( !special._default ||
+ special._default.apply( eventPath.pop(), data ) === false ) &&
+ acceptData( elem ) ) {
+
+ // Call a native DOM method on the target with the same name as the event.
+ // Don't do default actions on window, that's where global variables be (#6170)
+ if ( ontype && jQuery.isFunction( elem[ type ] ) && !jQuery.isWindow( elem ) ) {
+
+ // Don't re-trigger an onFOO event when we call its FOO() method
+ tmp = elem[ ontype ];
+
+ if ( tmp ) {
+ elem[ ontype ] = null;
+ }
+
+ // Prevent re-triggering of the same event, since we already bubbled it above
+ jQuery.event.triggered = type;
+ elem[ type ]();
+ jQuery.event.triggered = undefined;
+
+ if ( tmp ) {
+ elem[ ontype ] = tmp;
+ }
+ }
+ }
+ }
+
+ return event.result;
+ },
+
+ // Piggyback on a donor event to simulate a different one
+ // Used only for `focus(in | out)` events
+ simulate: function( type, elem, event ) {
+ var e = jQuery.extend(
+ new jQuery.Event(),
+ event,
+ {
+ type: type,
+ isSimulated: true
+ }
+ );
+
+ jQuery.event.trigger( e, null, elem );
+ }
+
+} );
+
+jQuery.fn.extend( {
+
+ trigger: function( type, data ) {
+ return this.each( function() {
+ jQuery.event.trigger( type, data, this );
+ } );
+ },
+ triggerHandler: function( type, data ) {
+ var elem = this[ 0 ];
+ if ( elem ) {
+ return jQuery.event.trigger( type, data, elem, true );
+ }
+ }
+} );
+
+return jQuery;
+} );
--- /dev/null
+define( [
+ "../core"
+], function( jQuery ) {
+
+"use strict";
+
+// Register as a named AMD module, since jQuery can be concatenated with other
+// files that may use define, but not via a proper concatenation script that
+// understands anonymous AMD modules. A named AMD is safest and most robust
+// way to register. Lowercase jquery is used because AMD module names are
+// derived from file names, and jQuery is normally delivered in a lowercase
+// file name. Do this after creating the global so that if an AMD module wants
+// to call noConflict to hide this version of jQuery, it will work.
+
+// Note that for maximum portability, libraries that are not jQuery should
+// declare themselves as anonymous modules, and avoid setting a global if an
+// AMD loader is present. jQuery is a special case. For more information, see
+// https://github.com/jrburke/requirejs/wiki/Updating-existing-libraries#wiki-anon
+
+if ( typeof define === "function" && define.amd ) {
+ define( "jquery", [], function() {
+ return jQuery;
+ } );
+}
+
+} );
--- /dev/null
+define( [
+ "../core"
+], function( jQuery, noGlobal ) {
+
+"use strict";
+
+var
+
+ // Map over jQuery in case of overwrite
+ _jQuery = window.jQuery,
+
+ // Map over the $ in case of overwrite
+ _$ = window.$;
+
+jQuery.noConflict = function( deep ) {
+ if ( window.$ === jQuery ) {
+ window.$ = _$;
+ }
+
+ if ( deep && window.jQuery === jQuery ) {
+ window.jQuery = _jQuery;
+ }
+
+ return jQuery;
+};
+
+// Expose jQuery and $ identifiers, even in AMD
+// (#7102#comment:10, https://github.com/jquery/jquery/pull/557)
+// and CommonJS for browser emulators (#13566)
+if ( !noGlobal ) {
+ window.jQuery = window.$ = jQuery;
+}
+
+} );
--- /dev/null
+/*!
+ * jQuery JavaScript Library v@VERSION
+ * http://jquery.com/
+ *
+ * Includes Sizzle.js
+ * http://sizzlejs.com/
+ *
+ * Copyright jQuery Foundation and other contributors
+ * Released under the MIT license
+ * http://jquery.org/license
+ *
+ * Date: @DATE
+ */
+
+(function( global, factory ) {
+
+ if ( typeof module === "object" && typeof module.exports === "object" ) {
+ // For CommonJS and CommonJS-like environments where a proper `window`
+ // is present, execute the factory and get jQuery.
+ // For environments that do not have a `window` with a `document`
+ // (such as Node.js), expose a factory as module.exports.
+ // This accentuates the need for the creation of a real `window`.
+ // e.g. var jQuery = require("jquery")(window);
+ // See ticket #14549 for more info.
+ module.exports = global.document ?
+ factory( global, true ) :
+ function( w ) {
+ if ( !w.document ) {
+ throw new Error( "jQuery requires a window with a document" );
+ }
+ return factory( w );
+ };
+ } else {
+ factory( global );
+ }
+
+// Pass this if window is not defined yet
+}(typeof window !== "undefined" ? window : this, function( window, noGlobal ) {
+
+// Support: Firefox 18+
+// Can't be in strict mode, several libs including ASP.NET trace
+// the stack via arguments.caller.callee and Firefox dies if
+// you try to trace through "use strict" call chains. (#13335)
+//"use strict";
--- /dev/null
+define( [
+ "./core",
+ "./selector",
+ "./traversing",
+ "./callbacks",
+ "./deferred",
+ "./deferred/exceptionHook",
+ "./core/ready",
+ "./data",
+ "./queue",
+ "./queue/delay",
+ "./attributes",
+ "./event",
+ "./event/alias",
+ "./event/focusin",
+ "./manipulation",
+ "./manipulation/_evalUrl",
+ "./wrap",
+ "./css",
+ "./css/hiddenVisibleSelectors",
+ "./serialize",
+ "./ajax",
+ "./ajax/xhr",
+ "./ajax/script",
+ "./ajax/jsonp",
+ "./ajax/load",
+ "./event/ajax",
+ "./effects",
+ "./effects/animatedSelector",
+ "./offset",
+ "./dimensions",
+ "./deprecated",
+ "./exports/amd",
+ "./exports/global"
+], function( jQuery ) {
+
+"use strict";
+
+return jQuery;
+
+} );
--- /dev/null
+define( [
+ "./core",
+ "./var/concat",
+ "./var/push",
+ "./core/access",
+ "./manipulation/var/rcheckableType",
+ "./manipulation/var/rtagName",
+ "./manipulation/var/rscriptType",
+ "./manipulation/wrapMap",
+ "./manipulation/getAll",
+ "./manipulation/setGlobalEval",
+ "./manipulation/buildFragment",
+ "./manipulation/support",
+
+ "./data/var/dataPriv",
+ "./data/var/dataUser",
+ "./data/var/acceptData",
+ "./core/DOMEval",
+
+ "./core/init",
+ "./traversing",
+ "./selector",
+ "./event"
+], function( jQuery, concat, push, access,
+ rcheckableType, rtagName, rscriptType,
+ wrapMap, getAll, setGlobalEval, buildFragment, support,
+ dataPriv, dataUser, acceptData, DOMEval ) {
+
+"use strict";
+
+var
+
+ /* eslint-disable max-len */
+
+ // See https://github.com/eslint/eslint/issues/3229
+ rxhtmlTag = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([a-z][^\/\0>\x20\t\r\n\f]*)[^>]*)\/>/gi,
+
+ /* eslint-enable */
+
+ // Support: IE <=10 - 11, Edge 12 - 13
+ // In IE/Edge using regex groups here causes severe slowdowns.
+ // See https://connect.microsoft.com/IE/feedback/details/1736512/
+ rnoInnerhtml = /<script|<style|<link/i,
+
+ // checked="checked" or checked
+ rchecked = /checked\s*(?:[^=]|=\s*.checked.)/i,
+ rscriptTypeMasked = /^true\/(.*)/,
+ rcleanScript = /^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g;
+
+function manipulationTarget( elem, content ) {
+ if ( jQuery.nodeName( elem, "table" ) &&
+ jQuery.nodeName( content.nodeType !== 11 ? content : content.firstChild, "tr" ) ) {
+
+ return elem.getElementsByTagName( "tbody" )[ 0 ] || elem;
+ }
+
+ return elem;
+}
+
+// Replace/restore the type attribute of script elements for safe DOM manipulation
+function disableScript( elem ) {
+ elem.type = ( elem.getAttribute( "type" ) !== null ) + "/" + elem.type;
+ return elem;
+}
+function restoreScript( elem ) {
+ var match = rscriptTypeMasked.exec( elem.type );
+
+ if ( match ) {
+ elem.type = match[ 1 ];
+ } else {
+ elem.removeAttribute( "type" );
+ }
+
+ return elem;
+}
+
+function cloneCopyEvent( src, dest ) {
+ var i, l, type, pdataOld, pdataCur, udataOld, udataCur, events;
+
+ if ( dest.nodeType !== 1 ) {
+ return;
+ }
+
+ // 1. Copy private data: events, handlers, etc.
+ if ( dataPriv.hasData( src ) ) {
+ pdataOld = dataPriv.access( src );
+ pdataCur = dataPriv.set( dest, pdataOld );
+ events = pdataOld.events;
+
+ if ( events ) {
+ delete pdataCur.handle;
+ pdataCur.events = {};
+
+ for ( type in events ) {
+ for ( i = 0, l = events[ type ].length; i < l; i++ ) {
+ jQuery.event.add( dest, type, events[ type ][ i ] );
+ }
+ }
+ }
+ }
+
+ // 2. Copy user data
+ if ( dataUser.hasData( src ) ) {
+ udataOld = dataUser.access( src );
+ udataCur = jQuery.extend( {}, udataOld );
+
+ dataUser.set( dest, udataCur );
+ }
+}
+
+// Fix IE bugs, see support tests
+function fixInput( src, dest ) {
+ var nodeName = dest.nodeName.toLowerCase();
+
+ // Fails to persist the checked state of a cloned checkbox or radio button.
+ if ( nodeName === "input" && rcheckableType.test( src.type ) ) {
+ dest.checked = src.checked;
+
+ // Fails to return the selected option to the default selected state when cloning options
+ } else if ( nodeName === "input" || nodeName === "textarea" ) {
+ dest.defaultValue = src.defaultValue;
+ }
+}
+
+function domManip( collection, args, callback, ignored ) {
+
+ // Flatten any nested arrays
+ args = concat.apply( [], args );
+
+ var fragment, first, scripts, hasScripts, node, doc,
+ i = 0,
+ l = collection.length,
+ iNoClone = l - 1,
+ value = args[ 0 ],
+ isFunction = jQuery.isFunction( value );
+
+ // We can't cloneNode fragments that contain checked, in WebKit
+ if ( isFunction ||
+ ( l > 1 && typeof value === "string" &&
+ !support.checkClone && rchecked.test( value ) ) ) {
+ return collection.each( function( index ) {
+ var self = collection.eq( index );
+ if ( isFunction ) {
+ args[ 0 ] = value.call( this, index, self.html() );
+ }
+ domManip( self, args, callback, ignored );
+ } );
+ }
+
+ if ( l ) {
+ fragment = buildFragment( args, collection[ 0 ].ownerDocument, false, collection, ignored );
+ first = fragment.firstChild;
+
+ if ( fragment.childNodes.length === 1 ) {
+ fragment = first;
+ }
+
+ // Require either new content or an interest in ignored elements to invoke the callback
+ if ( first || ignored ) {
+ scripts = jQuery.map( getAll( fragment, "script" ), disableScript );
+ hasScripts = scripts.length;
+
+ // Use the original fragment for the last item
+ // instead of the first because it can end up
+ // being emptied incorrectly in certain situations (#8070).
+ for ( ; i < l; i++ ) {
+ node = fragment;
+
+ if ( i !== iNoClone ) {
+ node = jQuery.clone( node, true, true );
+
+ // Keep references to cloned scripts for later restoration
+ if ( hasScripts ) {
+
+ // Support: Android <=4.0 only, PhantomJS 1 only
+ // push.apply(_, arraylike) throws on ancient WebKit
+ jQuery.merge( scripts, getAll( node, "script" ) );
+ }
+ }
+
+ callback.call( collection[ i ], node, i );
+ }
+
+ if ( hasScripts ) {
+ doc = scripts[ scripts.length - 1 ].ownerDocument;
+
+ // Reenable scripts
+ jQuery.map( scripts, restoreScript );
+
+ // Evaluate executable scripts on first document insertion
+ for ( i = 0; i < hasScripts; i++ ) {
+ node = scripts[ i ];
+ if ( rscriptType.test( node.type || "" ) &&
+ !dataPriv.access( node, "globalEval" ) &&
+ jQuery.contains( doc, node ) ) {
+
+ if ( node.src ) {
+
+ // Optional AJAX dependency, but won't run scripts if not present
+ if ( jQuery._evalUrl ) {
+ jQuery._evalUrl( node.src );
+ }
+ } else {
+ DOMEval( node.textContent.replace( rcleanScript, "" ), doc );
+ }
+ }
+ }
+ }
+ }
+ }
+
+ return collection;
+}
+
+function remove( elem, selector, keepData ) {
+ var node,
+ nodes = selector ? jQuery.filter( selector, elem ) : elem,
+ i = 0;
+
+ for ( ; ( node = nodes[ i ] ) != null; i++ ) {
+ if ( !keepData && node.nodeType === 1 ) {
+ jQuery.cleanData( getAll( node ) );
+ }
+
+ if ( node.parentNode ) {
+ if ( keepData && jQuery.contains( node.ownerDocument, node ) ) {
+ setGlobalEval( getAll( node, "script" ) );
+ }
+ node.parentNode.removeChild( node );
+ }
+ }
+
+ return elem;
+}
+
+jQuery.extend( {
+ htmlPrefilter: function( html ) {
+ return html.replace( rxhtmlTag, "<$1></$2>" );
+ },
+
+ clone: function( elem, dataAndEvents, deepDataAndEvents ) {
+ var i, l, srcElements, destElements,
+ clone = elem.cloneNode( true ),
+ inPage = jQuery.contains( elem.ownerDocument, elem );
+
+ // Fix IE cloning issues
+ if ( !support.noCloneChecked && ( elem.nodeType === 1 || elem.nodeType === 11 ) &&
+ !jQuery.isXMLDoc( elem ) ) {
+
+ // We eschew Sizzle here for performance reasons: https://jsperf.com/getall-vs-sizzle/2
+ destElements = getAll( clone );
+ srcElements = getAll( elem );
+
+ for ( i = 0, l = srcElements.length; i < l; i++ ) {
+ fixInput( srcElements[ i ], destElements[ i ] );
+ }
+ }
+
+ // Copy the events from the original to the clone
+ if ( dataAndEvents ) {
+ if ( deepDataAndEvents ) {
+ srcElements = srcElements || getAll( elem );
+ destElements = destElements || getAll( clone );
+
+ for ( i = 0, l = srcElements.length; i < l; i++ ) {
+ cloneCopyEvent( srcElements[ i ], destElements[ i ] );
+ }
+ } else {
+ cloneCopyEvent( elem, clone );
+ }
+ }
+
+ // Preserve script evaluation history
+ destElements = getAll( clone, "script" );
+ if ( destElements.length > 0 ) {
+ setGlobalEval( destElements, !inPage && getAll( elem, "script" ) );
+ }
+
+ // Return the cloned set
+ return clone;
+ },
+
+ cleanData: function( elems ) {
+ var data, elem, type,
+ special = jQuery.event.special,
+ i = 0;
+
+ for ( ; ( elem = elems[ i ] ) !== undefined; i++ ) {
+ if ( acceptData( elem ) ) {
+ if ( ( data = elem[ dataPriv.expando ] ) ) {
+ if ( data.events ) {
+ for ( type in data.events ) {
+ if ( special[ type ] ) {
+ jQuery.event.remove( elem, type );
+
+ // This is a shortcut to avoid jQuery.event.remove's overhead
+ } else {
+ jQuery.removeEvent( elem, type, data.handle );
+ }
+ }
+ }
+
+ // Support: Chrome <=35 - 45+
+ // Assign undefined instead of using delete, see Data#remove
+ elem[ dataPriv.expando ] = undefined;
+ }
+ if ( elem[ dataUser.expando ] ) {
+
+ // Support: Chrome <=35 - 45+
+ // Assign undefined instead of using delete, see Data#remove
+ elem[ dataUser.expando ] = undefined;
+ }
+ }
+ }
+ }
+} );
+
+jQuery.fn.extend( {
+ detach: function( selector ) {
+ return remove( this, selector, true );
+ },
+
+ remove: function( selector ) {
+ return remove( this, selector );
+ },
+
+ text: function( value ) {
+ return access( this, function( value ) {
+ return value === undefined ?
+ jQuery.text( this ) :
+ this.empty().each( function() {
+ if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {
+ this.textContent = value;
+ }
+ } );
+ }, null, value, arguments.length );
+ },
+
+ append: function() {
+ return domManip( this, arguments, function( elem ) {
+ if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {
+ var target = manipulationTarget( this, elem );
+ target.appendChild( elem );
+ }
+ } );
+ },
+
+ prepend: function() {
+ return domManip( this, arguments, function( elem ) {
+ if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {
+ var target = manipulationTarget( this, elem );
+ target.insertBefore( elem, target.firstChild );
+ }
+ } );
+ },
+
+ before: function() {
+ return domManip( this, arguments, function( elem ) {
+ if ( this.parentNode ) {
+ this.parentNode.insertBefore( elem, this );
+ }
+ } );
+ },
+
+ after: function() {
+ return domManip( this, arguments, function( elem ) {
+ if ( this.parentNode ) {
+ this.parentNode.insertBefore( elem, this.nextSibling );
+ }
+ } );
+ },
+
+ empty: function() {
+ var elem,
+ i = 0;
+
+ for ( ; ( elem = this[ i ] ) != null; i++ ) {
+ if ( elem.nodeType === 1 ) {
+
+ // Prevent memory leaks
+ jQuery.cleanData( getAll( elem, false ) );
+
+ // Remove any remaining nodes
+ elem.textContent = "";
+ }
+ }
+
+ return this;
+ },
+
+ clone: function( dataAndEvents, deepDataAndEvents ) {
+ dataAndEvents = dataAndEvents == null ? false : dataAndEvents;
+ deepDataAndEvents = deepDataAndEvents == null ? dataAndEvents : deepDataAndEvents;
+
+ return this.map( function() {
+ return jQuery.clone( this, dataAndEvents, deepDataAndEvents );
+ } );
+ },
+
+ html: function( value ) {
+ return access( this, function( value ) {
+ var elem = this[ 0 ] || {},
+ i = 0,
+ l = this.length;
+
+ if ( value === undefined && elem.nodeType === 1 ) {
+ return elem.innerHTML;
+ }
+
+ // See if we can take a shortcut and just use innerHTML
+ if ( typeof value === "string" && !rnoInnerhtml.test( value ) &&
+ !wrapMap[ ( rtagName.exec( value ) || [ "", "" ] )[ 1 ].toLowerCase() ] ) {
+
+ value = jQuery.htmlPrefilter( value );
+
+ try {
+ for ( ; i < l; i++ ) {
+ elem = this[ i ] || {};
+
+ // Remove element nodes and prevent memory leaks
+ if ( elem.nodeType === 1 ) {
+ jQuery.cleanData( getAll( elem, false ) );
+ elem.innerHTML = value;
+ }
+ }
+
+ elem = 0;
+
+ // If using innerHTML throws an exception, use the fallback method
+ } catch ( e ) {}
+ }
+
+ if ( elem ) {
+ this.empty().append( value );
+ }
+ }, null, value, arguments.length );
+ },
+
+ replaceWith: function() {
+ var ignored = [];
+
+ // Make the changes, replacing each non-ignored context element with the new content
+ return domManip( this, arguments, function( elem ) {
+ var parent = this.parentNode;
+
+ if ( jQuery.inArray( this, ignored ) < 0 ) {
+ jQuery.cleanData( getAll( this ) );
+ if ( parent ) {
+ parent.replaceChild( elem, this );
+ }
+ }
+
+ // Force callback invocation
+ }, ignored );
+ }
+} );
+
+jQuery.each( {
+ appendTo: "append",
+ prependTo: "prepend",
+ insertBefore: "before",
+ insertAfter: "after",
+ replaceAll: "replaceWith"
+}, function( name, original ) {
+ jQuery.fn[ name ] = function( selector ) {
+ var elems,
+ ret = [],
+ insert = jQuery( selector ),
+ last = insert.length - 1,
+ i = 0;
+
+ for ( ; i <= last; i++ ) {
+ elems = i === last ? this : this.clone( true );
+ jQuery( insert[ i ] )[ original ]( elems );
+
+ // Support: Android <=4.0 only, PhantomJS 1 only
+ // .get() because push.apply(_, arraylike) throws on ancient WebKit
+ push.apply( ret, elems.get() );
+ }
+
+ return this.pushStack( ret );
+ };
+} );
+
+return jQuery;
+} );
--- /dev/null
+define( [
+ "../ajax"
+], function( jQuery ) {
+
+"use strict";
+
+jQuery._evalUrl = function( url ) {
+ return jQuery.ajax( {
+ url: url,
+
+ // Make this explicit, since user can override this through ajaxSetup (#11264)
+ type: "GET",
+ dataType: "script",
+ cache: true,
+ async: false,
+ global: false,
+ "throws": true
+ } );
+};
+
+return jQuery._evalUrl;
+
+} );
--- /dev/null
+define( [
+ "../core",
+ "./var/rtagName",
+ "./var/rscriptType",
+ "./wrapMap",
+ "./getAll",
+ "./setGlobalEval"
+], function( jQuery, rtagName, rscriptType, wrapMap, getAll, setGlobalEval ) {
+
+"use strict";
+
+var rhtml = /<|&#?\w+;/;
+
+function buildFragment( elems, context, scripts, selection, ignored ) {
+ var elem, tmp, tag, wrap, contains, j,
+ fragment = context.createDocumentFragment(),
+ nodes = [],
+ i = 0,
+ l = elems.length;
+
+ for ( ; i < l; i++ ) {
+ elem = elems[ i ];
+
+ if ( elem || elem === 0 ) {
+
+ // Add nodes directly
+ if ( jQuery.type( elem ) === "object" ) {
+
+ // Support: Android <=4.0 only, PhantomJS 1 only
+ // push.apply(_, arraylike) throws on ancient WebKit
+ jQuery.merge( nodes, elem.nodeType ? [ elem ] : elem );
+
+ // Convert non-html into a text node
+ } else if ( !rhtml.test( elem ) ) {
+ nodes.push( context.createTextNode( elem ) );
+
+ // Convert html into DOM nodes
+ } else {
+ tmp = tmp || fragment.appendChild( context.createElement( "div" ) );
+
+ // Deserialize a standard representation
+ tag = ( rtagName.exec( elem ) || [ "", "" ] )[ 1 ].toLowerCase();
+ wrap = wrapMap[ tag ] || wrapMap._default;
+ tmp.innerHTML = wrap[ 1 ] + jQuery.htmlPrefilter( elem ) + wrap[ 2 ];
+
+ // Descend through wrappers to the right content
+ j = wrap[ 0 ];
+ while ( j-- ) {
+ tmp = tmp.lastChild;
+ }
+
+ // Support: Android <=4.0 only, PhantomJS 1 only
+ // push.apply(_, arraylike) throws on ancient WebKit
+ jQuery.merge( nodes, tmp.childNodes );
+
+ // Remember the top-level container
+ tmp = fragment.firstChild;
+
+ // Ensure the created nodes are orphaned (#12392)
+ tmp.textContent = "";
+ }
+ }
+ }
+
+ // Remove wrapper from fragment
+ fragment.textContent = "";
+
+ i = 0;
+ while ( ( elem = nodes[ i++ ] ) ) {
+
+ // Skip elements already in the context collection (trac-4087)
+ if ( selection && jQuery.inArray( elem, selection ) > -1 ) {
+ if ( ignored ) {
+ ignored.push( elem );
+ }
+ continue;
+ }
+
+ contains = jQuery.contains( elem.ownerDocument, elem );
+
+ // Append to fragment
+ tmp = getAll( fragment.appendChild( elem ), "script" );
+
+ // Preserve script evaluation history
+ if ( contains ) {
+ setGlobalEval( tmp );
+ }
+
+ // Capture executables
+ if ( scripts ) {
+ j = 0;
+ while ( ( elem = tmp[ j++ ] ) ) {
+ if ( rscriptType.test( elem.type || "" ) ) {
+ scripts.push( elem );
+ }
+ }
+ }
+ }
+
+ return fragment;
+}
+
+return buildFragment;
+} );
--- /dev/null
+define( [
+ "../core"
+], function( jQuery ) {
+
+"use strict";
+
+function getAll( context, tag ) {
+
+ // Support: IE <=9 - 11 only
+ // Use typeof to avoid zero-argument method invocation on host objects (#15151)
+ var ret;
+
+ if ( typeof context.getElementsByTagName !== "undefined" ) {
+ ret = context.getElementsByTagName( tag || "*" );
+
+ } else if ( typeof context.querySelectorAll !== "undefined" ) {
+ ret = context.querySelectorAll( tag || "*" );
+
+ } else {
+ ret = [];
+ }
+
+ if ( tag === undefined || tag && jQuery.nodeName( context, tag ) ) {
+ return jQuery.merge( [ context ], ret );
+ }
+
+ return ret;
+}
+
+return getAll;
+} );
--- /dev/null
+define( [
+ "../data/var/dataPriv"
+], function( dataPriv ) {
+
+"use strict";
+
+// Mark scripts as having already been evaluated
+function setGlobalEval( elems, refElements ) {
+ var i = 0,
+ l = elems.length;
+
+ for ( ; i < l; i++ ) {
+ dataPriv.set(
+ elems[ i ],
+ "globalEval",
+ !refElements || dataPriv.get( refElements[ i ], "globalEval" )
+ );
+ }
+}
+
+return setGlobalEval;
+} );
--- /dev/null
+define( [
+ "../var/document",
+ "../var/support"
+], function( document, support ) {
+
+"use strict";
+
+( function() {
+ var fragment = document.createDocumentFragment(),
+ div = fragment.appendChild( document.createElement( "div" ) ),
+ input = document.createElement( "input" );
+
+ // Support: Android 4.0 - 4.3 only
+ // Check state lost if the name is set (#11217)
+ // Support: Windows Web Apps (WWA)
+ // `name` and `type` must use .setAttribute for WWA (#14901)
+ input.setAttribute( "type", "radio" );
+ input.setAttribute( "checked", "checked" );
+ input.setAttribute( "name", "t" );
+
+ div.appendChild( input );
+
+ // Support: Android <=4.1 only
+ // Older WebKit doesn't clone checked state correctly in fragments
+ support.checkClone = div.cloneNode( true ).cloneNode( true ).lastChild.checked;
+
+ // Support: IE <=11 only
+ // Make sure textarea (and checkbox) defaultValue is properly cloned
+ div.innerHTML = "<textarea>x</textarea>";
+ support.noCloneChecked = !!div.cloneNode( true ).lastChild.defaultValue;
+} )();
+
+return support;
+
+} );
--- /dev/null
+define( function() {
+ "use strict";
+
+ return ( /^(?:checkbox|radio)$/i );
+} );
--- /dev/null
+define( function() {
+ "use strict";
+
+ return ( /^$|\/(?:java|ecma)script/i );
+} );
--- /dev/null
+define( function() {
+ "use strict";
+
+ return ( /<([a-z][^\/\0>\x20\t\r\n\f]+)/i );
+} );
--- /dev/null
+define( function() {
+
+"use strict";
+
+// We have to close these tags to support XHTML (#13200)
+var wrapMap = {
+
+ // Support: IE <=9 only
+ option: [ 1, "<select multiple='multiple'>", "</select>" ],
+
+ // XHTML parsers do not magically insert elements in the
+ // same way that tag soup parsers do. So we cannot shorten
+ // this by omitting <tbody> or other required elements.
+ thead: [ 1, "<table>", "</table>" ],
+ col: [ 2, "<table><colgroup>", "</colgroup></table>" ],
+ tr: [ 2, "<table><tbody>", "</tbody></table>" ],
+ td: [ 3, "<table><tbody><tr>", "</tr></tbody></table>" ],
+
+ _default: [ 0, "", "" ]
+};
+
+// Support: IE <=9 only
+wrapMap.optgroup = wrapMap.option;
+
+wrapMap.tbody = wrapMap.tfoot = wrapMap.colgroup = wrapMap.caption = wrapMap.thead;
+wrapMap.th = wrapMap.td;
+
+return wrapMap;
+} );
--- /dev/null
+define( [
+ "./core",
+ "./core/access",
+ "./var/document",
+ "./var/documentElement",
+ "./css/var/rnumnonpx",
+ "./css/curCSS",
+ "./css/addGetHookIf",
+ "./css/support",
+
+ "./core/init",
+ "./css",
+ "./selector" // contains
+], function( jQuery, access, document, documentElement, rnumnonpx, curCSS, addGetHookIf, support ) {
+
+"use strict";
+
+/**
+ * Gets a window from an element
+ */
+function getWindow( elem ) {
+ return jQuery.isWindow( elem ) ? elem : elem.nodeType === 9 && elem.defaultView;
+}
+
+jQuery.offset = {
+ setOffset: function( elem, options, i ) {
+ var curPosition, curLeft, curCSSTop, curTop, curOffset, curCSSLeft, calculatePosition,
+ position = jQuery.css( elem, "position" ),
+ curElem = jQuery( elem ),
+ props = {};
+
+ // Set position first, in-case top/left are set even on static elem
+ if ( position === "static" ) {
+ elem.style.position = "relative";
+ }
+
+ curOffset = curElem.offset();
+ curCSSTop = jQuery.css( elem, "top" );
+ curCSSLeft = jQuery.css( elem, "left" );
+ calculatePosition = ( position === "absolute" || position === "fixed" ) &&
+ ( curCSSTop + curCSSLeft ).indexOf( "auto" ) > -1;
+
+ // Need to be able to calculate position if either
+ // top or left is auto and position is either absolute or fixed
+ if ( calculatePosition ) {
+ curPosition = curElem.position();
+ curTop = curPosition.top;
+ curLeft = curPosition.left;
+
+ } else {
+ curTop = parseFloat( curCSSTop ) || 0;
+ curLeft = parseFloat( curCSSLeft ) || 0;
+ }
+
+ if ( jQuery.isFunction( options ) ) {
+
+ // Use jQuery.extend here to allow modification of coordinates argument (gh-1848)
+ options = options.call( elem, i, jQuery.extend( {}, curOffset ) );
+ }
+
+ if ( options.top != null ) {
+ props.top = ( options.top - curOffset.top ) + curTop;
+ }
+ if ( options.left != null ) {
+ props.left = ( options.left - curOffset.left ) + curLeft;
+ }
+
+ if ( "using" in options ) {
+ options.using.call( elem, props );
+
+ } else {
+ curElem.css( props );
+ }
+ }
+};
+
+jQuery.fn.extend( {
+ offset: function( options ) {
+
+ // Preserve chaining for setter
+ if ( arguments.length ) {
+ return options === undefined ?
+ this :
+ this.each( function( i ) {
+ jQuery.offset.setOffset( this, options, i );
+ } );
+ }
+
+ var docElem, win, rect, doc,
+ elem = this[ 0 ];
+
+ if ( !elem ) {
+ return;
+ }
+
+ // Support: IE <=11 only
+ // Running getBoundingClientRect on a
+ // disconnected node in IE throws an error
+ if ( !elem.getClientRects().length ) {
+ return { top: 0, left: 0 };
+ }
+
+ rect = elem.getBoundingClientRect();
+
+ // Make sure element is not hidden (display: none)
+ if ( rect.width || rect.height ) {
+ doc = elem.ownerDocument;
+ win = getWindow( doc );
+ docElem = doc.documentElement;
+
+ return {
+ top: rect.top + win.pageYOffset - docElem.clientTop,
+ left: rect.left + win.pageXOffset - docElem.clientLeft
+ };
+ }
+
+ // Return zeros for disconnected and hidden elements (gh-2310)
+ return rect;
+ },
+
+ position: function() {
+ if ( !this[ 0 ] ) {
+ return;
+ }
+
+ var offsetParent, offset,
+ elem = this[ 0 ],
+ parentOffset = { top: 0, left: 0 };
+
+ // Fixed elements are offset from window (parentOffset = {top:0, left: 0},
+ // because it is its only offset parent
+ if ( jQuery.css( elem, "position" ) === "fixed" ) {
+
+ // Assume getBoundingClientRect is there when computed position is fixed
+ offset = elem.getBoundingClientRect();
+
+ } else {
+
+ // Get *real* offsetParent
+ offsetParent = this.offsetParent();
+
+ // Get correct offsets
+ offset = this.offset();
+ if ( !jQuery.nodeName( offsetParent[ 0 ], "html" ) ) {
+ parentOffset = offsetParent.offset();
+ }
+
+ // Add offsetParent borders
+ parentOffset = {
+ top: parentOffset.top + jQuery.css( offsetParent[ 0 ], "borderTopWidth", true ),
+ left: parentOffset.left + jQuery.css( offsetParent[ 0 ], "borderLeftWidth", true )
+ };
+ }
+
+ // Subtract parent offsets and element margins
+ return {
+ top: offset.top - parentOffset.top - jQuery.css( elem, "marginTop", true ),
+ left: offset.left - parentOffset.left - jQuery.css( elem, "marginLeft", true )
+ };
+ },
+
+ // This method will return documentElement in the following cases:
+ // 1) For the element inside the iframe without offsetParent, this method will return
+ // documentElement of the parent window
+ // 2) For the hidden or detached element
+ // 3) For body or html element, i.e. in case of the html node - it will return itself
+ //
+ // but those exceptions were never presented as a real life use-cases
+ // and might be considered as more preferable results.
+ //
+ // This logic, however, is not guaranteed and can change at any point in the future
+ offsetParent: function() {
+ return this.map( function() {
+ var offsetParent = this.offsetParent;
+
+ while ( offsetParent && jQuery.css( offsetParent, "position" ) === "static" ) {
+ offsetParent = offsetParent.offsetParent;
+ }
+
+ return offsetParent || documentElement;
+ } );
+ }
+} );
+
+// Create scrollLeft and scrollTop methods
+jQuery.each( { scrollLeft: "pageXOffset", scrollTop: "pageYOffset" }, function( method, prop ) {
+ var top = "pageYOffset" === prop;
+
+ jQuery.fn[ method ] = function( val ) {
+ return access( this, function( elem, method, val ) {
+ var win = getWindow( elem );
+
+ if ( val === undefined ) {
+ return win ? win[ prop ] : elem[ method ];
+ }
+
+ if ( win ) {
+ win.scrollTo(
+ !top ? val : win.pageXOffset,
+ top ? val : win.pageYOffset
+ );
+
+ } else {
+ elem[ method ] = val;
+ }
+ }, method, val, arguments.length );
+ };
+} );
+
+// Support: Safari <=7 - 9.1, Chrome <=37 - 49
+// Add the top/left cssHooks using jQuery.fn.position
+// Webkit bug: https://bugs.webkit.org/show_bug.cgi?id=29084
+// Blink bug: https://bugs.chromium.org/p/chromium/issues/detail?id=589347
+// getComputedStyle returns percent when specified for top/left/bottom/right;
+// rather than make the css module depend on the offset module, just check for it here
+jQuery.each( [ "top", "left" ], function( i, prop ) {
+ jQuery.cssHooks[ prop ] = addGetHookIf( support.pixelPosition,
+ function( elem, computed ) {
+ if ( computed ) {
+ computed = curCSS( elem, prop );
+
+ // If curCSS returns percentage, fallback to offset
+ return rnumnonpx.test( computed ) ?
+ jQuery( elem ).position()[ prop ] + "px" :
+ computed;
+ }
+ }
+ );
+} );
+
+return jQuery;
+} );
--- /dev/null
+return jQuery;
+}));
--- /dev/null
+define( [
+ "./core",
+ "./data/var/dataPriv",
+ "./deferred",
+ "./callbacks"
+], function( jQuery, dataPriv ) {
+
+"use strict";
+
+jQuery.extend( {
+ queue: function( elem, type, data ) {
+ var queue;
+
+ if ( elem ) {
+ type = ( type || "fx" ) + "queue";
+ queue = dataPriv.get( elem, type );
+
+ // Speed up dequeue by getting out quickly if this is just a lookup
+ if ( data ) {
+ if ( !queue || jQuery.isArray( data ) ) {
+ queue = dataPriv.access( elem, type, jQuery.makeArray( data ) );
+ } else {
+ queue.push( data );
+ }
+ }
+ return queue || [];
+ }
+ },
+
+ dequeue: function( elem, type ) {
+ type = type || "fx";
+
+ var queue = jQuery.queue( elem, type ),
+ startLength = queue.length,
+ fn = queue.shift(),
+ hooks = jQuery._queueHooks( elem, type ),
+ next = function() {
+ jQuery.dequeue( elem, type );
+ };
+
+ // If the fx queue is dequeued, always remove the progress sentinel
+ if ( fn === "inprogress" ) {
+ fn = queue.shift();
+ startLength--;
+ }
+
+ if ( fn ) {
+
+ // Add a progress sentinel to prevent the fx queue from being
+ // automatically dequeued
+ if ( type === "fx" ) {
+ queue.unshift( "inprogress" );
+ }
+
+ // Clear up the last queue stop function
+ delete hooks.stop;
+ fn.call( elem, next, hooks );
+ }
+
+ if ( !startLength && hooks ) {
+ hooks.empty.fire();
+ }
+ },
+
+ // Not public - generate a queueHooks object, or return the current one
+ _queueHooks: function( elem, type ) {
+ var key = type + "queueHooks";
+ return dataPriv.get( elem, key ) || dataPriv.access( elem, key, {
+ empty: jQuery.Callbacks( "once memory" ).add( function() {
+ dataPriv.remove( elem, [ type + "queue", key ] );
+ } )
+ } );
+ }
+} );
+
+jQuery.fn.extend( {
+ queue: function( type, data ) {
+ var setter = 2;
+
+ if ( typeof type !== "string" ) {
+ data = type;
+ type = "fx";
+ setter--;
+ }
+
+ if ( arguments.length < setter ) {
+ return jQuery.queue( this[ 0 ], type );
+ }
+
+ return data === undefined ?
+ this :
+ this.each( function() {
+ var queue = jQuery.queue( this, type, data );
+
+ // Ensure a hooks for this queue
+ jQuery._queueHooks( this, type );
+
+ if ( type === "fx" && queue[ 0 ] !== "inprogress" ) {
+ jQuery.dequeue( this, type );
+ }
+ } );
+ },
+ dequeue: function( type ) {
+ return this.each( function() {
+ jQuery.dequeue( this, type );
+ } );
+ },
+ clearQueue: function( type ) {
+ return this.queue( type || "fx", [] );
+ },
+
+ // Get a promise resolved when queues of a certain type
+ // are emptied (fx is the type by default)
+ promise: function( type, obj ) {
+ var tmp,
+ count = 1,
+ defer = jQuery.Deferred(),
+ elements = this,
+ i = this.length,
+ resolve = function() {
+ if ( !( --count ) ) {
+ defer.resolveWith( elements, [ elements ] );
+ }
+ };
+
+ if ( typeof type !== "string" ) {
+ obj = type;
+ type = undefined;
+ }
+ type = type || "fx";
+
+ while ( i-- ) {
+ tmp = dataPriv.get( elements[ i ], type + "queueHooks" );
+ if ( tmp && tmp.empty ) {
+ count++;
+ tmp.empty.add( resolve );
+ }
+ }
+ resolve();
+ return defer.promise( obj );
+ }
+} );
+
+return jQuery;
+} );
--- /dev/null
+define( [
+ "../core",
+ "../queue",
+ "../effects" // Delay is optional because of this dependency
+], function( jQuery ) {
+
+"use strict";
+
+// Based off of the plugin by Clint Helfers, with permission.
+// https://web.archive.org/web/20100324014747/http://blindsignals.com/index.php/2009/07/jquery-delay/
+jQuery.fn.delay = function( time, type ) {
+ time = jQuery.fx ? jQuery.fx.speeds[ time ] || time : time;
+ type = type || "fx";
+
+ return this.queue( type, function( next, hooks ) {
+ var timeout = window.setTimeout( next, time );
+ hooks.stop = function() {
+ window.clearTimeout( timeout );
+ };
+ } );
+};
+
+return jQuery.fn.delay;
+} );
--- /dev/null
+define( [
+ "./core",
+ "./var/document",
+ "./var/documentElement",
+ "./var/hasOwn",
+ "./var/indexOf"
+], function( jQuery, document, documentElement, hasOwn, indexOf ) {
+
+"use strict";
+
+/*
+ * Optional (non-Sizzle) selector module for custom builds.
+ *
+ * Note that this DOES NOT SUPPORT many documented jQuery
+ * features in exchange for its smaller size:
+ *
+ * Attribute not equal selector
+ * Positional selectors (:first; :eq(n); :odd; etc.)
+ * Type selectors (:input; :checkbox; :button; etc.)
+ * State-based selectors (:animated; :visible; :hidden; etc.)
+ * :has(selector)
+ * :not(complex selector)
+ * custom selectors via Sizzle extensions
+ * Leading combinators (e.g., $collection.find("> *"))
+ * Reliable functionality on XML fragments
+ * Requiring all parts of a selector to match elements under context
+ * (e.g., $div.find("div > *") now matches children of $div)
+ * Matching against non-elements
+ * Reliable sorting of disconnected nodes
+ * querySelectorAll bug fixes (e.g., unreliable :focus on WebKit)
+ *
+ * If any of these are unacceptable tradeoffs, either use Sizzle or
+ * customize this stub for the project's specific needs.
+ */
+
+var hasDuplicate, sortInput,
+ sortStable = jQuery.expando.split( "" ).sort( sortOrder ).join( "" ) === jQuery.expando,
+ matches = documentElement.matches ||
+ documentElement.webkitMatchesSelector ||
+ documentElement.mozMatchesSelector ||
+ documentElement.oMatchesSelector ||
+ documentElement.msMatchesSelector,
+
+ // CSS string/identifier serialization
+ // https://drafts.csswg.org/cssom/#common-serializing-idioms
+ rcssescape = /([\0-\x1f\x7f]|^-?\d)|^-$|[^\x80-\uFFFF\w-]/g,
+ fcssescape = function( ch, asCodePoint ) {
+ if ( asCodePoint ) {
+
+ // U+0000 NULL becomes U+FFFD REPLACEMENT CHARACTER
+ if ( ch === "\0" ) {
+ return "\uFFFD";
+ }
+
+ // Control characters and (dependent upon position) numbers get escaped as code points
+ return ch.slice( 0, -1 ) + "\\" + ch.charCodeAt( ch.length - 1 ).toString( 16 ) + " ";
+ }
+
+ // Other potentially-special ASCII characters get backslash-escaped
+ return "\\" + ch;
+ };
+
+function sortOrder( a, b ) {
+
+ // Flag for duplicate removal
+ if ( a === b ) {
+ hasDuplicate = true;
+ return 0;
+ }
+
+ // Sort on method existence if only one input has compareDocumentPosition
+ var compare = !a.compareDocumentPosition - !b.compareDocumentPosition;
+ if ( compare ) {
+ return compare;
+ }
+
+ // Calculate position if both inputs belong to the same document
+ compare = ( a.ownerDocument || a ) === ( b.ownerDocument || b ) ?
+ a.compareDocumentPosition( b ) :
+
+ // Otherwise we know they are disconnected
+ 1;
+
+ // Disconnected nodes
+ if ( compare & 1 ) {
+
+ // Choose the first element that is related to our preferred document
+ if ( a === document || a.ownerDocument === document &&
+ jQuery.contains( document, a ) ) {
+ return -1;
+ }
+ if ( b === document || b.ownerDocument === document &&
+ jQuery.contains( document, b ) ) {
+ return 1;
+ }
+
+ // Maintain original order
+ return sortInput ?
+ ( indexOf.call( sortInput, a ) - indexOf.call( sortInput, b ) ) :
+ 0;
+ }
+
+ return compare & 4 ? -1 : 1;
+}
+
+function uniqueSort( results ) {
+ var elem,
+ duplicates = [],
+ j = 0,
+ i = 0;
+
+ hasDuplicate = false;
+ sortInput = !sortStable && results.slice( 0 );
+ results.sort( sortOrder );
+
+ if ( hasDuplicate ) {
+ while ( ( elem = results[ i++ ] ) ) {
+ if ( elem === results[ i ] ) {
+ j = duplicates.push( i );
+ }
+ }
+ while ( j-- ) {
+ results.splice( duplicates[ j ], 1 );
+ }
+ }
+
+ // Clear input after sorting to release objects
+ // See https://github.com/jquery/sizzle/pull/225
+ sortInput = null;
+
+ return results;
+}
+
+function escape( sel ) {
+ return ( sel + "" ).replace( rcssescape, fcssescape );
+}
+
+jQuery.extend( {
+ uniqueSort: uniqueSort,
+ unique: uniqueSort,
+ escapeSelector: escape,
+ find: function( selector, context, results, seed ) {
+ var elem, nodeType,
+ i = 0;
+
+ results = results || [];
+ context = context || document;
+
+ // Same basic safeguard as Sizzle
+ if ( !selector || typeof selector !== "string" ) {
+ return results;
+ }
+
+ // Early return if context is not an element or document
+ if ( ( nodeType = context.nodeType ) !== 1 && nodeType !== 9 ) {
+ return [];
+ }
+
+ if ( seed ) {
+ while ( ( elem = seed[ i++ ] ) ) {
+ if ( jQuery.find.matchesSelector( elem, selector ) ) {
+ results.push( elem );
+ }
+ }
+ } else {
+ jQuery.merge( results, context.querySelectorAll( selector ) );
+ }
+
+ return results;
+ },
+ text: function( elem ) {
+ var node,
+ ret = "",
+ i = 0,
+ nodeType = elem.nodeType;
+
+ if ( !nodeType ) {
+
+ // If no nodeType, this is expected to be an array
+ while ( ( node = elem[ i++ ] ) ) {
+
+ // Do not traverse comment nodes
+ ret += jQuery.text( node );
+ }
+ } else if ( nodeType === 1 || nodeType === 9 || nodeType === 11 ) {
+
+ // Use textContent for elements
+ return elem.textContent;
+ } else if ( nodeType === 3 || nodeType === 4 ) {
+ return elem.nodeValue;
+ }
+
+ // Do not include comment or processing instruction nodes
+
+ return ret;
+ },
+ contains: function( a, b ) {
+ var adown = a.nodeType === 9 ? a.documentElement : a,
+ bup = b && b.parentNode;
+ return a === bup || !!( bup && bup.nodeType === 1 && adown.contains( bup ) );
+ },
+ isXMLDoc: function( elem ) {
+
+ // documentElement is verified for cases where it doesn't yet exist
+ // (such as loading iframes in IE - #4833)
+ var documentElement = elem && ( elem.ownerDocument || elem ).documentElement;
+ return documentElement ? documentElement.nodeName !== "HTML" : false;
+ },
+ expr: {
+ attrHandle: {},
+ match: {
+ bool: new RegExp( "^(?:checked|selected|async|autofocus|autoplay|controls|defer" +
+ "|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped)$", "i" ),
+ needsContext: /^[\x20\t\r\n\f]*[>+~]/
+ }
+ }
+} );
+
+jQuery.extend( jQuery.find, {
+ matches: function( expr, elements ) {
+ return jQuery.find( expr, null, null, elements );
+ },
+ matchesSelector: function( elem, expr ) {
+ return matches.call( elem, expr );
+ },
+ attr: function( elem, name ) {
+ var fn = jQuery.expr.attrHandle[ name.toLowerCase() ],
+
+ // Don't get fooled by Object.prototype properties (jQuery #13807)
+ value = fn && hasOwn.call( jQuery.expr.attrHandle, name.toLowerCase() ) ?
+ fn( elem, name, jQuery.isXMLDoc( elem ) ) :
+ undefined;
+ return value !== undefined ? value : elem.getAttribute( name );
+ }
+} );
+
+} );
--- /dev/null
+define( [
+ "./core",
+ "../external/sizzle/dist/sizzle"
+], function( jQuery, Sizzle ) {
+
+"use strict";
+
+jQuery.find = Sizzle;
+jQuery.expr = Sizzle.selectors;
+
+// Deprecated
+jQuery.expr[ ":" ] = jQuery.expr.pseudos;
+jQuery.uniqueSort = jQuery.unique = Sizzle.uniqueSort;
+jQuery.text = Sizzle.getText;
+jQuery.isXMLDoc = Sizzle.isXML;
+jQuery.contains = Sizzle.contains;
+jQuery.escapeSelector = Sizzle.escape;
+
+} );
--- /dev/null
+define( [ "./selector-sizzle" ], function() {
+ "use strict";
+} );
--- /dev/null
+define( [
+ "./core",
+ "./manipulation/var/rcheckableType",
+ "./core/init",
+ "./traversing", // filter
+ "./attributes/prop"
+], function( jQuery, rcheckableType ) {
+
+"use strict";
+
+var
+ rbracket = /\[\]$/,
+ rCRLF = /\r?\n/g,
+ rsubmitterTypes = /^(?:submit|button|image|reset|file)$/i,
+ rsubmittable = /^(?:input|select|textarea|keygen)/i;
+
+function buildParams( prefix, obj, traditional, add ) {
+ var name;
+
+ if ( jQuery.isArray( obj ) ) {
+
+ // Serialize array item.
+ jQuery.each( obj, function( i, v ) {
+ if ( traditional || rbracket.test( prefix ) ) {
+
+ // Treat each array item as a scalar.
+ add( prefix, v );
+
+ } else {
+
+ // Item is non-scalar (array or object), encode its numeric index.
+ buildParams(
+ prefix + "[" + ( typeof v === "object" && v != null ? i : "" ) + "]",
+ v,
+ traditional,
+ add
+ );
+ }
+ } );
+
+ } else if ( !traditional && jQuery.type( obj ) === "object" ) {
+
+ // Serialize object item.
+ for ( name in obj ) {
+ buildParams( prefix + "[" + name + "]", obj[ name ], traditional, add );
+ }
+
+ } else {
+
+ // Serialize scalar item.
+ add( prefix, obj );
+ }
+}
+
+// Serialize an array of form elements or a set of
+// key/values into a query string
+jQuery.param = function( a, traditional ) {
+ var prefix,
+ s = [],
+ add = function( key, valueOrFunction ) {
+
+ // If value is a function, invoke it and use its return value
+ var value = jQuery.isFunction( valueOrFunction ) ?
+ valueOrFunction() :
+ valueOrFunction;
+
+ s[ s.length ] = encodeURIComponent( key ) + "=" +
+ encodeURIComponent( value == null ? "" : value );
+ };
+
+ // If an array was passed in, assume that it is an array of form elements.
+ if ( jQuery.isArray( a ) || ( a.jquery && !jQuery.isPlainObject( a ) ) ) {
+
+ // Serialize the form elements
+ jQuery.each( a, function() {
+ add( this.name, this.value );
+ } );
+
+ } else {
+
+ // If traditional, encode the "old" way (the way 1.3.2 or older
+ // did it), otherwise encode params recursively.
+ for ( prefix in a ) {
+ buildParams( prefix, a[ prefix ], traditional, add );
+ }
+ }
+
+ // Return the resulting serialization
+ return s.join( "&" );
+};
+
+jQuery.fn.extend( {
+ serialize: function() {
+ return jQuery.param( this.serializeArray() );
+ },
+ serializeArray: function() {
+ return this.map( function() {
+
+ // Can add propHook for "elements" to filter or add form elements
+ var elements = jQuery.prop( this, "elements" );
+ return elements ? jQuery.makeArray( elements ) : this;
+ } )
+ .filter( function() {
+ var type = this.type;
+
+ // Use .is( ":disabled" ) so that fieldset[disabled] works
+ return this.name && !jQuery( this ).is( ":disabled" ) &&
+ rsubmittable.test( this.nodeName ) && !rsubmitterTypes.test( type ) &&
+ ( this.checked || !rcheckableType.test( type ) );
+ } )
+ .map( function( i, elem ) {
+ var val = jQuery( this ).val();
+
+ if ( val == null ) {
+ return null;
+ }
+
+ if ( jQuery.isArray( val ) ) {
+ return jQuery.map( val, function( val ) {
+ return { name: elem.name, value: val.replace( rCRLF, "\r\n" ) };
+ } );
+ }
+
+ return { name: elem.name, value: val.replace( rCRLF, "\r\n" ) };
+ } ).get();
+ }
+} );
+
+return jQuery;
+} );
--- /dev/null
+define( [
+ "./core",
+ "./var/indexOf",
+ "./traversing/var/dir",
+ "./traversing/var/siblings",
+ "./traversing/var/rneedsContext",
+ "./core/init",
+ "./traversing/findFilter",
+ "./selector"
+], function( jQuery, indexOf, dir, siblings, rneedsContext ) {
+
+"use strict";
+
+var rparentsprev = /^(?:parents|prev(?:Until|All))/,
+
+ // Methods guaranteed to produce a unique set when starting from a unique set
+ guaranteedUnique = {
+ children: true,
+ contents: true,
+ next: true,
+ prev: true
+ };
+
+jQuery.fn.extend( {
+ has: function( target ) {
+ var targets = jQuery( target, this ),
+ l = targets.length;
+
+ return this.filter( function() {
+ var i = 0;
+ for ( ; i < l; i++ ) {
+ if ( jQuery.contains( this, targets[ i ] ) ) {
+ return true;
+ }
+ }
+ } );
+ },
+
+ closest: function( selectors, context ) {
+ var cur,
+ i = 0,
+ l = this.length,
+ matched = [],
+ targets = typeof selectors !== "string" && jQuery( selectors );
+
+ // Positional selectors never match, since there's no _selection_ context
+ if ( !rneedsContext.test( selectors ) ) {
+ for ( ; i < l; i++ ) {
+ for ( cur = this[ i ]; cur && cur !== context; cur = cur.parentNode ) {
+
+ // Always skip document fragments
+ if ( cur.nodeType < 11 && ( targets ?
+ targets.index( cur ) > -1 :
+
+ // Don't pass non-elements to Sizzle
+ cur.nodeType === 1 &&
+ jQuery.find.matchesSelector( cur, selectors ) ) ) {
+
+ matched.push( cur );
+ break;
+ }
+ }
+ }
+ }
+
+ return this.pushStack( matched.length > 1 ? jQuery.uniqueSort( matched ) : matched );
+ },
+
+ // Determine the position of an element within the set
+ index: function( elem ) {
+
+ // No argument, return index in parent
+ if ( !elem ) {
+ return ( this[ 0 ] && this[ 0 ].parentNode ) ? this.first().prevAll().length : -1;
+ }
+
+ // Index in selector
+ if ( typeof elem === "string" ) {
+ return indexOf.call( jQuery( elem ), this[ 0 ] );
+ }
+
+ // Locate the position of the desired element
+ return indexOf.call( this,
+
+ // If it receives a jQuery object, the first element is used
+ elem.jquery ? elem[ 0 ] : elem
+ );
+ },
+
+ add: function( selector, context ) {
+ return this.pushStack(
+ jQuery.uniqueSort(
+ jQuery.merge( this.get(), jQuery( selector, context ) )
+ )
+ );
+ },
+
+ addBack: function( selector ) {
+ return this.add( selector == null ?
+ this.prevObject : this.prevObject.filter( selector )
+ );
+ }
+} );
+
+function sibling( cur, dir ) {
+ while ( ( cur = cur[ dir ] ) && cur.nodeType !== 1 ) {}
+ return cur;
+}
+
+jQuery.each( {
+ parent: function( elem ) {
+ var parent = elem.parentNode;
+ return parent && parent.nodeType !== 11 ? parent : null;
+ },
+ parents: function( elem ) {
+ return dir( elem, "parentNode" );
+ },
+ parentsUntil: function( elem, i, until ) {
+ return dir( elem, "parentNode", until );
+ },
+ next: function( elem ) {
+ return sibling( elem, "nextSibling" );
+ },
+ prev: function( elem ) {
+ return sibling( elem, "previousSibling" );
+ },
+ nextAll: function( elem ) {
+ return dir( elem, "nextSibling" );
+ },
+ prevAll: function( elem ) {
+ return dir( elem, "previousSibling" );
+ },
+ nextUntil: function( elem, i, until ) {
+ return dir( elem, "nextSibling", until );
+ },
+ prevUntil: function( elem, i, until ) {
+ return dir( elem, "previousSibling", until );
+ },
+ siblings: function( elem ) {
+ return siblings( ( elem.parentNode || {} ).firstChild, elem );
+ },
+ children: function( elem ) {
+ return siblings( elem.firstChild );
+ },
+ contents: function( elem ) {
+ return elem.contentDocument || jQuery.merge( [], elem.childNodes );
+ }
+}, function( name, fn ) {
+ jQuery.fn[ name ] = function( until, selector ) {
+ var matched = jQuery.map( this, fn, until );
+
+ if ( name.slice( -5 ) !== "Until" ) {
+ selector = until;
+ }
+
+ if ( selector && typeof selector === "string" ) {
+ matched = jQuery.filter( selector, matched );
+ }
+
+ if ( this.length > 1 ) {
+
+ // Remove duplicates
+ if ( !guaranteedUnique[ name ] ) {
+ jQuery.uniqueSort( matched );
+ }
+
+ // Reverse order for parents* and prev-derivatives
+ if ( rparentsprev.test( name ) ) {
+ matched.reverse();
+ }
+ }
+
+ return this.pushStack( matched );
+ };
+} );
+
+return jQuery;
+} );
--- /dev/null
+define( [
+ "../core",
+ "../var/indexOf",
+ "./var/rneedsContext",
+ "../selector"
+], function( jQuery, indexOf, rneedsContext ) {
+
+"use strict";
+
+var risSimple = /^.[^:#\[\.,]*$/;
+
+// Implement the identical functionality for filter and not
+function winnow( elements, qualifier, not ) {
+ if ( jQuery.isFunction( qualifier ) ) {
+ return jQuery.grep( elements, function( elem, i ) {
+ return !!qualifier.call( elem, i, elem ) !== not;
+ } );
+ }
+
+ // Single element
+ if ( qualifier.nodeType ) {
+ return jQuery.grep( elements, function( elem ) {
+ return ( elem === qualifier ) !== not;
+ } );
+ }
+
+ // Arraylike of elements (jQuery, arguments, Array)
+ if ( typeof qualifier !== "string" ) {
+ return jQuery.grep( elements, function( elem ) {
+ return ( indexOf.call( qualifier, elem ) > -1 ) !== not;
+ } );
+ }
+
+ // Simple selector that can be filtered directly, removing non-Elements
+ if ( risSimple.test( qualifier ) ) {
+ return jQuery.filter( qualifier, elements, not );
+ }
+
+ // Complex selector, compare the two sets, removing non-Elements
+ qualifier = jQuery.filter( qualifier, elements );
+ return jQuery.grep( elements, function( elem ) {
+ return ( indexOf.call( qualifier, elem ) > -1 ) !== not && elem.nodeType === 1;
+ } );
+}
+
+jQuery.filter = function( expr, elems, not ) {
+ var elem = elems[ 0 ];
+
+ if ( not ) {
+ expr = ":not(" + expr + ")";
+ }
+
+ if ( elems.length === 1 && elem.nodeType === 1 ) {
+ return jQuery.find.matchesSelector( elem, expr ) ? [ elem ] : [];
+ }
+
+ return jQuery.find.matches( expr, jQuery.grep( elems, function( elem ) {
+ return elem.nodeType === 1;
+ } ) );
+};
+
+jQuery.fn.extend( {
+ find: function( selector ) {
+ var i, ret,
+ len = this.length,
+ self = this;
+
+ if ( typeof selector !== "string" ) {
+ return this.pushStack( jQuery( selector ).filter( function() {
+ for ( i = 0; i < len; i++ ) {
+ if ( jQuery.contains( self[ i ], this ) ) {
+ return true;
+ }
+ }
+ } ) );
+ }
+
+ ret = this.pushStack( [] );
+
+ for ( i = 0; i < len; i++ ) {
+ jQuery.find( selector, self[ i ], ret );
+ }
+
+ return len > 1 ? jQuery.uniqueSort( ret ) : ret;
+ },
+ filter: function( selector ) {
+ return this.pushStack( winnow( this, selector || [], false ) );
+ },
+ not: function( selector ) {
+ return this.pushStack( winnow( this, selector || [], true ) );
+ },
+ is: function( selector ) {
+ return !!winnow(
+ this,
+
+ // If this is a positional/relative selector, check membership in the returned set
+ // so $("p:first").is("p:last") won't return true for a doc with two "p".
+ typeof selector === "string" && rneedsContext.test( selector ) ?
+ jQuery( selector ) :
+ selector || [],
+ false
+ ).length;
+ }
+} );
+
+} );
--- /dev/null
+define( [
+ "../../core"
+], function( jQuery ) {
+
+"use strict";
+
+return function( elem, dir, until ) {
+ var matched = [],
+ truncate = until !== undefined;
+
+ while ( ( elem = elem[ dir ] ) && elem.nodeType !== 9 ) {
+ if ( elem.nodeType === 1 ) {
+ if ( truncate && jQuery( elem ).is( until ) ) {
+ break;
+ }
+ matched.push( elem );
+ }
+ }
+ return matched;
+};
+
+} );
--- /dev/null
+define( [
+ "../../core",
+ "../../selector"
+], function( jQuery ) {
+ "use strict";
+
+ return jQuery.expr.match.needsContext;
+} );
--- /dev/null
+define( function() {
+
+"use strict";
+
+return function( n, elem ) {
+ var matched = [];
+
+ for ( ; n; n = n.nextSibling ) {
+ if ( n.nodeType === 1 && n !== elem ) {
+ matched.push( n );
+ }
+ }
+
+ return matched;
+};
+
+} );
--- /dev/null
+define( [
+ "./fnToString"
+], function( fnToString ) {
+ "use strict";
+
+ return fnToString.call( Object );
+} );
--- /dev/null
+define( function() {
+ "use strict";
+
+ return [];
+} );
--- /dev/null
+define( function() {
+ "use strict";
+
+ // [[Class]] -> type pairs
+ return {};
+} );
--- /dev/null
+define( [
+ "./arr"
+], function( arr ) {
+ "use strict";
+
+ return arr.concat;
+} );
--- /dev/null
+define( function() {
+ "use strict";
+
+ return window.document;
+} );
--- /dev/null
+define( [
+ "./document"
+], function( document ) {
+ "use strict";
+
+ return document.documentElement;
+} );
--- /dev/null
+define( [
+ "./hasOwn"
+], function( hasOwn ) {
+ "use strict";
+
+ return hasOwn.toString;
+} );
--- /dev/null
+define( function() {
+ "use strict";
+
+ return Object.getPrototypeOf;
+} );
--- /dev/null
+define( [
+ "./class2type"
+], function( class2type ) {
+ "use strict";
+
+ return class2type.hasOwnProperty;
+} );
--- /dev/null
+define( [
+ "./arr"
+], function( arr ) {
+ "use strict";
+
+ return arr.indexOf;
+} );
--- /dev/null
+define( function() {
+ "use strict";
+
+ return ( /[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/ ).source;
+} );
--- /dev/null
+define( [
+ "./arr"
+], function( arr ) {
+ "use strict";
+
+ return arr.push;
+} );
--- /dev/null
+define( [
+ "../var/pnum"
+], function( pnum ) {
+
+"use strict";
+
+return new RegExp( "^(?:([+-])=|)(" + pnum + ")([a-z%]*)$", "i" );
+
+} );
--- /dev/null
+define( function() {
+ "use strict";
+
+ // Only count HTML whitespace
+ // Other whitespace should count in values
+ // https://html.spec.whatwg.org/multipage/infrastructure.html#space-character
+ return ( /[^\x20\t\r\n\f]+/g );
+} );
--- /dev/null
+define( function() {
+ return ( /\S+/g );
+} );
--- /dev/null
+define( [
+ "./arr"
+], function( arr ) {
+ "use strict";
+
+ return arr.slice;
+} );
--- /dev/null
+define( function() {
+ "use strict";
+
+ // All support tests are defined in their respective modules.
+ return {};
+} );
--- /dev/null
+define( [
+ "./class2type"
+], function( class2type ) {
+ "use strict";
+
+ return class2type.toString;
+} );
--- /dev/null
+define( [
+ "./core",
+ "./core/init",
+ "./manipulation", // clone
+ "./traversing" // parent, contents
+], function( jQuery ) {
+
+"use strict";
+
+jQuery.fn.extend( {
+ wrapAll: function( html ) {
+ var wrap;
+
+ if ( this[ 0 ] ) {
+ if ( jQuery.isFunction( html ) ) {
+ html = html.call( this[ 0 ] );
+ }
+
+ // The elements to wrap the target around
+ wrap = jQuery( html, this[ 0 ].ownerDocument ).eq( 0 ).clone( true );
+
+ if ( this[ 0 ].parentNode ) {
+ wrap.insertBefore( this[ 0 ] );
+ }
+
+ wrap.map( function() {
+ var elem = this;
+
+ while ( elem.firstElementChild ) {
+ elem = elem.firstElementChild;
+ }
+
+ return elem;
+ } ).append( this );
+ }
+
+ return this;
+ },
+
+ wrapInner: function( html ) {
+ if ( jQuery.isFunction( html ) ) {
+ return this.each( function( i ) {
+ jQuery( this ).wrapInner( html.call( this, i ) );
+ } );
+ }
+
+ return this.each( function() {
+ var self = jQuery( this ),
+ contents = self.contents();
+
+ if ( contents.length ) {
+ contents.wrapAll( html );
+
+ } else {
+ self.append( html );
+ }
+ } );
+ },
+
+ wrap: function( html ) {
+ var isFunction = jQuery.isFunction( html );
+
+ return this.each( function( i ) {
+ jQuery( this ).wrapAll( isFunction ? html.call( this, i ) : html );
+ } );
+ },
+
+ unwrap: function( selector ) {
+ this.parent( selector ).not( "body" ).each( function() {
+ jQuery( this ).replaceWith( this.childNodes );
+ } );
+ return this;
+ }
+} );
+
+return jQuery;
+} );
--- /dev/null
+
+// a[download] attribute
+// When used on an <a>, this attribute signifies that the resource it
+// points to should be downloaded by the browser rather than navigating to it.
+// http://developers.whatwg.org/links.html#downloading-resources
+// By Addy Osmani
+
+Modernizr.addTest('adownload', 'download' in document.createElement('a'));
--- /dev/null
+// Mozilla Audio Data API
+// https://wiki.mozilla.org/Audio_Data_API
+// by Addy Osmani
+Modernizr.addTest('audiodata', !!(window.Audio));
--- /dev/null
+// Web Audio API
+// https://dvcs.w3.org/hg/audio/raw-file/tip/webaudio/specification.html
+// By Addy Osmani
+Modernizr.addTest('webaudio', !!(window.webkitAudioContext || window.AudioContext));
--- /dev/null
+
+// Battery API
+// https://developer.mozilla.org/en/DOM/window.navigator.mozBattery
+// By: Paul Sayre
+
+Modernizr.addTest('battery',
+ !!Modernizr.prefixed('battery', navigator)
+);
\ No newline at end of file
--- /dev/null
+
+// Low Battery Level
+// Enable a developer to remove CPU intensive CSS/JS when battery is low
+// developer.mozilla.org/en/DOM/window.navigator.mozBattery
+// By: Paul Sayre
+
+Modernizr.addTest('lowbattery', function () {
+ var minLevel = 0.20,
+ battery = Modernizr.prefixed('battery', navigator);
+ return !!(battery && !battery.charging && battery.level <= minLevel);
+});
--- /dev/null
+// Blob constructor
+// http://dev.w3.org/2006/webapi/FileAPI/#constructorBlob
+
+Modernizr.addTest('blobconstructor', function () {
+ try {
+ return !!new Blob();
+ } catch (e) {
+ return false;
+ }
+});
--- /dev/null
+// canvas.toDataURL type support
+// http://www.w3.org/TR/html5/the-canvas-element.html#dom-canvas-todataurl
+
+// This test is asynchronous. Watch out.
+
+(function () {
+
+ if (!Modernizr.canvas) {
+ return false;
+ }
+
+ var image = new Image(),
+ canvas = document.createElement('canvas'),
+ ctx = canvas.getContext('2d');
+
+ image.onload = function() {
+ ctx.drawImage(image, 0, 0);
+
+ Modernizr.addTest('todataurljpeg', function() {
+ return canvas.toDataURL('image/jpeg').indexOf('data:image/jpeg') === 0;
+ });
+ Modernizr.addTest('todataurlwebp', function() {
+ return canvas.toDataURL('image/webp').indexOf('data:image/webp') === 0;
+ });
+ };
+
+ image.src = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAACklEQVR4nGMAAQAABQABDQottAAAAABJRU5ErkJggg==';
+}());
--- /dev/null
+// contentEditable
+// http://www.whatwg.org/specs/web-apps/current-work/multipage/editing.html#contenteditable
+
+// this is known to false positive in some mobile browsers
+// here is a whitelist of verified working browsers:
+// https://github.com/NielsLeenheer/html5test/blob/549f6eac866aa861d9649a0707ff2c0157895706/scripts/engine.js#L2083
+
+Modernizr.addTest('contenteditable',
+ 'contentEditable' in document.documentElement);
--- /dev/null
+// Test for (experimental) Content Security Policy 1.1 support.
+//
+// This feature is still quite experimental, but is available now in Chrome 22.
+// If the `SecurityPolicy` property is available, you can be sure the browser
+// supports CSP. If it's not available, the browser still might support an
+// earlier version of the CSP spec.
+//
+// Editor's Draft: https://dvcs.w3.org/hg/content-security-policy/raw-file/tip/csp-specification.dev.html
+
+Modernizr.addTest('contentsecuritypolicy', ('securityPolicy' in document || 'SecurityPolicy' in document));
--- /dev/null
+// http://www.w3.org/TR/html5/interactive-elements.html#context-menus
+// Demo at http://thewebrocks.com/demos/context-menu/
+Modernizr.addTest(
+ 'contextmenu',
+ ('contextMenu' in document.documentElement && 'HTMLMenuItemElement' in window)
+);
+
+
+
+
+
--- /dev/null
+
+// by tauren
+// https://github.com/Modernizr/Modernizr/issues/191
+
+Modernizr.addTest('cookies', function () {
+ // Quick test if browser has cookieEnabled host property
+ if (navigator.cookieEnabled) return true;
+ // Create cookie
+ document.cookie = "cookietest=1";
+ var ret = document.cookie.indexOf("cookietest=") != -1;
+ // Delete cookie
+ document.cookie = "cookietest=1; expires=Thu, 01-Jan-1970 00:00:01 GMT";
+ return ret;
+});
+
--- /dev/null
+// cors
+// By Theodoor van Donge
+Modernizr.addTest('cors', !!(window.XMLHttpRequest && 'withCredentials' in new XMLHttpRequest()));
\ No newline at end of file
--- /dev/null
+/*
+ https://developer.mozilla.org/en/CSS/background-position
+ http://www.w3.org/TR/css3-background/#background-position
+
+ Example: http://jsfiddle.net/Blink/bBXvt/
+*/
+
+(function() {
+
+ var elem = document.createElement('a'),
+ eStyle = elem.style,
+ val = "right 10px bottom 10px";
+
+ Modernizr.addTest('bgpositionshorthand', function(){
+ eStyle.cssText = "background-position: " + val + ";";
+ return (eStyle.backgroundPosition === val);
+ });
+
+}());
--- /dev/null
+/*
+ Allan Lei https://github.com/allanlei
+
+ Check adapted from https://github.com/brandonaaron/jquery-cssHooks/blob/master/bgpos.js
+
+ Test: http://jsfiddle.net/allanlei/R8AYS/
+*/
+Modernizr.addTest('bgpositionxy', function() {
+ return Modernizr.testStyles('#modernizr {background-position: 3px 5px;}', function(elem) {
+ var cssStyleDeclaration = window.getComputedStyle ? getComputedStyle(elem, null) : elem.currentStyle;
+ var xSupport = (cssStyleDeclaration.backgroundPositionX == '3px') || (cssStyleDeclaration['background-position-x'] == '3px');
+ var ySupport = (cssStyleDeclaration.backgroundPositionY == '5px') || (cssStyleDeclaration['background-position-y'] == '5px');
+ return xSupport && ySupport;
+ });
+});
\ No newline at end of file
--- /dev/null
+// developer.mozilla.org/en/CSS/background-repeat
+
+// test page: jsbin.com/uzesun/
+// http://jsfiddle.net/ryanseddon/yMLTQ/6/
+
+(function(){
+
+
+function getBgRepeatValue(elem){
+ return (window.getComputedStyle ?
+ getComputedStyle(elem, null).getPropertyValue('background') :
+ elem.currentStyle['background']);
+}
+
+
+Modernizr.testStyles(' #modernizr { background-repeat: round; } ', function(elem, rule){
+
+ Modernizr.addTest('bgrepeatround', getBgRepeatValue(elem) == 'round');
+
+});
+
+
+
+Modernizr.testStyles(' #modernizr { background-repeat: space; } ', function(elem, rule){
+
+ Modernizr.addTest('bgrepeatspace', getBgRepeatValue(elem) == 'space');
+
+});
+
+
+})();
--- /dev/null
+
+// developer.mozilla.org/en/CSS/background-size
+
+Modernizr.testStyles( '#modernizr{background-size:cover}', function( elem ) {
+ var style = window.getComputedStyle ?
+ window.getComputedStyle( elem, null )
+ : elem.currentStyle;
+
+ Modernizr.addTest( 'bgsizecover', style.backgroundSize == 'cover' );
+});
\ No newline at end of file
--- /dev/null
+
+// developer.mozilla.org/en/CSS/box-sizing
+// github.com/Modernizr/Modernizr/issues/248
+
+Modernizr.addTest("boxsizing",function(){
+ return Modernizr.testAllProps("boxSizing") && (document.documentMode === undefined || document.documentMode > 7);
+});
+
+
--- /dev/null
+// Method of allowing calculated values for length units, i.e. width: calc(100%-3em) http://caniuse.com/#search=calc
+// By @calvein
+
+Modernizr.addTest('csscalc', function() {
+ var prop = 'width:';
+ var value = 'calc(10px);';
+ var el = document.createElement('div');
+
+ el.style.cssText = prop + Modernizr._prefixes.join(value + prop);
+
+ return !!el.style.length;
+});
--- /dev/null
+// cubic-bezier values can't be > 1 for Webkit until bug #45761 (https://bugs.webkit.org/show_bug.cgi?id=45761) is fixed
+// By @calvein
+
+Modernizr.addTest('cubicbezierrange', function() {
+ var el = document.createElement('div');
+ el.style.cssText = Modernizr._prefixes.join('transition-timing-function' + ':cubic-bezier(1,0,0,1.1); ');
+ return !!el.style.length;
+});
--- /dev/null
+
+// by alanhogan
+
+// https://github.com/Modernizr/Modernizr/issues/198
+// http://css-tricks.com/596-run-in/
+
+
+
+Modernizr.testStyles(' #modernizr { display: run-in; } ', function(elem, rule){
+
+ var ret = (window.getComputedStyle ?
+ getComputedStyle(elem, null).getPropertyValue('display') :
+ elem.currentStyle['display']);
+
+ Modernizr.addTest('display-runin', ret == 'run-in');
+
+});
+
--- /dev/null
+// display: table and table-cell test. (both are tested under one name "table-cell" )
+// By @scottjehl
+
+// all additional table display values are here: http://pastebin.com/Gk9PeVaQ though Scott has seen some IE false positives with that sort of weak detection.
+// more testing neccessary perhaps.
+
+Modernizr.addTest( "display-table",function(){
+
+ var doc = window.document,
+ docElem = doc.documentElement,
+ parent = doc.createElement( "div" ),
+ child = doc.createElement( "div" ),
+ childb = doc.createElement( "div" ),
+ ret;
+
+ parent.style.cssText = "display: table";
+ child.style.cssText = childb.style.cssText = "display: table-cell; padding: 10px";
+
+ parent.appendChild( child );
+ parent.appendChild( childb );
+ docElem.insertBefore( parent, docElem.firstChild );
+
+ ret = child.offsetLeft < childb.offsetLeft;
+ docElem.removeChild(parent);
+ return ret;
+});
+
--- /dev/null
+// https://github.com/Modernizr/Modernizr/issues/615
+// documentMode is needed for false positives in oldIE, please see issue above
+Modernizr.addTest('cssfilters', function() {
+ var el = document.createElement('div');
+ el.style.cssText = Modernizr._prefixes.join('filter' + ':blur(2px); ');
+ return !!el.style.length && ((document.documentMode === undefined || document.documentMode > 9));
+});
\ No newline at end of file
--- /dev/null
+/* see http://davidnewton.ca/the-current-state-of-hyphenation-on-the-web
+ http://davidnewton.ca/demos/hyphenation/test.html
+
+
+There are three tests:
+ 1. csshyphens - tests hyphens:auto actually adds hyphens to text
+ 2. softhyphens - tests that ­ does its job
+ 3. softhyphensfind - tests that in-browser Find functionality still works correctly with ­
+
+These tests currently require document.body to be present
+
+Hyphenation is language specific, sometimes.
+ See for more details: http://code.google.com/p/hyphenator/source/diff?spec=svn975&r=975&format=side&path=/trunk/Hyphenator.js#sc_svn975_313
+
+If loading Hyphenator.js via Modernizr.load, be cautious of issue 158: http://code.google.com/p/hyphenator/issues/detail?id=158
+
+More details at https://github.com/Modernizr/Modernizr/issues/312
+
+*/
+
+(function() {
+
+ if (!document.body){
+ window.console && console.warn('document.body doesn\'t exist. Modernizr hyphens test needs it.');
+ return;
+ }
+
+ // functional test of adding hyphens:auto
+ function test_hyphens_css() {
+ try {
+ /* create a div container and a span within that
+ * these have to be appended to document.body, otherwise some browsers can give false negative */
+ var div = document.createElement('div'),
+ span = document.createElement('span'),
+ divStyle = div.style,
+ spanHeight = 0,
+ spanWidth = 0,
+ result = false,
+ firstChild = document.body.firstElementChild || document.body.firstChild;
+
+ div.appendChild(span);
+ span.innerHTML = 'Bacon ipsum dolor sit amet jerky velit in culpa hamburger et. Laborum dolor proident, enim dolore duis commodo et strip steak. Salami anim et, veniam consectetur dolore qui tenderloin jowl velit sirloin. Et ad culpa, fatback cillum jowl ball tip ham hock nulla short ribs pariatur aute. Pig pancetta ham bresaola, ut boudin nostrud commodo flank esse cow tongue culpa. Pork belly bresaola enim pig, ea consectetur nisi. Fugiat officia turkey, ea cow jowl pariatur ullamco proident do laborum velit sausage. Magna biltong sint tri-tip commodo sed bacon, esse proident aliquip. Ullamco ham sint fugiat, velit in enim sed mollit nulla cow ut adipisicing nostrud consectetur. Proident dolore beef ribs, laborum nostrud meatball ea laboris rump cupidatat labore culpa. Shankle minim beef, velit sint cupidatat fugiat tenderloin pig et ball tip. Ut cow fatback salami, bacon ball tip et in shank strip steak bresaola. In ut pork belly sed mollit tri-tip magna culpa veniam, short ribs qui in andouille ham consequat. Dolore bacon t-bone, velit short ribs enim strip steak nulla. Voluptate labore ut, biltong swine irure jerky. Cupidatat excepteur aliquip salami dolore. Ball tip strip steak in pork dolor. Ad in esse biltong. Dolore tenderloin exercitation ad pork loin t-bone, dolore in chicken ball tip qui pig. Ut culpa tongue, sint ribeye dolore ex shank voluptate hamburger. Jowl et tempor, boudin pork chop labore ham hock drumstick consectetur tri-tip elit swine meatball chicken ground round. Proident shankle mollit dolore. Shoulder ut duis t-bone quis reprehenderit. Meatloaf dolore minim strip steak, laboris ea aute bacon beef ribs elit shank in veniam drumstick qui. Ex laboris meatball cow tongue pork belly. Ea ball tip reprehenderit pig, sed fatback boudin dolore flank aliquip laboris eu quis. Beef ribs duis beef, cow corned beef adipisicing commodo nisi deserunt exercitation. Cillum dolor t-bone spare ribs, ham hock est sirloin. Brisket irure meatloaf in, boudin pork belly sirloin ball tip. Sirloin sint irure nisi nostrud aliqua. Nostrud nulla aute, enim officia culpa ham hock. Aliqua reprehenderit dolore sunt nostrud sausage, ea boudin pork loin ut t-bone ham tempor. Tri-tip et pancetta drumstick laborum. Ham hock magna do nostrud in proident. Ex ground round fatback, venison non ribeye in.';
+
+ document.body.insertBefore(div, firstChild);
+
+ /* get size of unhyphenated text */
+ divStyle.cssText = 'position:absolute;top:0;left:0;width:5em;text-align:justify;text-justification:newspaper;';
+ spanHeight = span.offsetHeight;
+ spanWidth = span.offsetWidth;
+
+ /* compare size with hyphenated text */
+ divStyle.cssText = 'position:absolute;top:0;left:0;width:5em;text-align:justify;'+
+ 'text-justification:newspaper;'+
+ Modernizr._prefixes.join('hyphens:auto; ');
+
+ result = (span.offsetHeight != spanHeight || span.offsetWidth != spanWidth);
+
+ /* results and cleanup */
+ document.body.removeChild(div);
+ div.removeChild(span);
+
+ return result;
+ } catch(e) {
+ return false;
+ }
+ }
+
+ // for the softhyphens test
+ function test_hyphens(delimiter, testWidth) {
+ try {
+ /* create a div container and a span within that
+ * these have to be appended to document.body, otherwise some browsers can give false negative */
+ var div = document.createElement('div'),
+ span = document.createElement('span'),
+ divStyle = div.style,
+ spanSize = 0,
+ result = false,
+ result1 = false,
+ result2 = false,
+ firstChild = document.body.firstElementChild || document.body.firstChild;
+
+ divStyle.cssText = 'position:absolute;top:0;left:0;overflow:visible;width:1.25em;';
+ div.appendChild(span);
+ document.body.insertBefore(div, firstChild);
+
+
+ /* get height of unwrapped text */
+ span.innerHTML = 'mm';
+ spanSize = span.offsetHeight;
+
+ /* compare height w/ delimiter, to see if it wraps to new line */
+ span.innerHTML = 'm' + delimiter + 'm';
+ result1 = (span.offsetHeight > spanSize);
+
+ /* if we're testing the width too (i.e. for soft-hyphen, not zws),
+ * this is because tested Blackberry devices will wrap the text but not display the hyphen */
+ if (testWidth) {
+ /* get width of wrapped, non-hyphenated text */
+ span.innerHTML = 'm<br />m';
+ spanSize = span.offsetWidth;
+
+ /* compare width w/ wrapped w/ delimiter to see if hyphen is present */
+ span.innerHTML = 'm' + delimiter + 'm';
+ result2 = (span.offsetWidth > spanSize);
+ } else {
+ result2 = true;
+ }
+
+ /* results and cleanup */
+ if (result1 === true && result2 === true) { result = true; }
+ document.body.removeChild(div);
+ div.removeChild(span);
+
+ return result;
+ } catch(e) {
+ return false;
+ }
+ }
+
+ // testing if in-browser Find functionality will work on hyphenated text
+ function test_hyphens_find(delimiter) {
+ try {
+ /* create a dummy input for resetting selection location, and a div container
+ * these have to be appended to document.body, otherwise some browsers can give false negative
+ * div container gets the doubled testword, separated by the delimiter
+ * Note: giving a width to div gives false positive in iOS Safari */
+ var dummy = document.createElement('input'),
+ div = document.createElement('div'),
+ testword = 'lebowski',
+ result = false,
+ textrange,
+ firstChild = document.body.firstElementChild || document.body.firstChild;
+
+ div.innerHTML = testword + delimiter + testword;
+
+ document.body.insertBefore(div, firstChild);
+ document.body.insertBefore(dummy, div);
+
+
+ /* reset the selection to the dummy input element, i.e. BEFORE the div container
+ * stackoverflow.com/questions/499126/jquery-set-cursor-position-in-text-area */
+ if (dummy.setSelectionRange) {
+ dummy.focus();
+ dummy.setSelectionRange(0,0);
+ } else if (dummy.createTextRange) {
+ textrange = dummy.createTextRange();
+ textrange.collapse(true);
+ textrange.moveEnd('character', 0);
+ textrange.moveStart('character', 0);
+ textrange.select();
+ }
+
+ /* try to find the doubled testword, without the delimiter */
+ if (window.find) {
+ result = window.find(testword + testword);
+ } else {
+ try {
+ textrange = window.self.document.body.createTextRange();
+ result = textrange.findText(testword + testword);
+ } catch(e) {
+ result = false;
+ }
+ }
+
+ document.body.removeChild(div);
+ document.body.removeChild(dummy);
+
+ return result;
+ } catch(e) {
+ return false;
+ }
+ }
+
+ Modernizr.addTest("csshyphens", function() {
+
+ if (!Modernizr.testAllProps('hyphens')) return false;
+
+ /* Chrome lies about its hyphens support so we need a more robust test
+ crbug.com/107111
+ */
+ try {
+ return test_hyphens_css();
+ } catch(e) {
+ return false;
+ }
+ });
+
+ Modernizr.addTest("softhyphens", function() {
+ try {
+ // use numeric entity instead of ­ in case it's XHTML
+ return test_hyphens('­', true) && test_hyphens('​', false);
+ } catch(e) {
+ return false;
+ }
+ });
+
+ Modernizr.addTest("softhyphensfind", function() {
+ try {
+ return test_hyphens_find('­') && test_hyphens_find('​');
+ } catch(e) {
+ return false;
+ }
+ });
+
+})();
--- /dev/null
+// last-child pseudo selector
+// https://github.com/Modernizr/Modernizr/pull/304
+
+
+Modernizr.addTest('lastchild', function(){
+
+ return Modernizr.testStyles("#modernizr div {width:100px} #modernizr :last-child{width:200px;display:block}", function (elem) {
+ return elem.lastChild.offsetWidth > elem.firstChild.offsetWidth;
+ }, 2);
+
+});
--- /dev/null
+// this tests passes for webkit's proprietary `-webkit-mask` feature
+// www.webkit.org/blog/181/css-masks/
+// developer.apple.com/library/safari/#documentation/InternetWeb/Conceptual/SafariVisualEffectsProgGuide/Masks/Masks.html
+
+// it does not pass mozilla's implementation of `mask` for SVG
+
+// developer.mozilla.org/en/CSS/mask
+// developer.mozilla.org/En/Applying_SVG_effects_to_HTML_content
+
+// Can combine with clippaths for awesomeness: http://generic.cx/for/webkit/test.html
+
+Modernizr.addTest('cssmask', Modernizr.testAllProps('maskRepeat'));
--- /dev/null
+
+
+Modernizr.addTest('mediaqueries', Modernizr.mq('only all'));
\ No newline at end of file
--- /dev/null
+
+// dev.opera.com/articles/view/css3-object-fit-object-position/
+
+Modernizr.addTest('object-fit',
+ !!Modernizr.prefixed('objectFit')
+);
\ No newline at end of file
--- /dev/null
+
+// johanbrook.com/browsers/native-momentum-scrolling-ios-5/
+// introduced in iOS5b2. Possible API may change...
+
+Modernizr.addTest("overflowscrolling",function(){
+ return Modernizr.testAllProps("overflowScrolling");
+});
+
+
--- /dev/null
+
+// developer.mozilla.org/en/CSS/pointer-events
+
+// Test and project pages:
+// ausi.github.com/Feature-detection-technique-for-pointer-events/
+// github.com/ausi/Feature-detection-technique-for-pointer-events/wiki
+// github.com/Modernizr/Modernizr/issues/80
+
+
+Modernizr.addTest('pointerevents', function(){
+ var element = document.createElement('x'),
+ documentElement = document.documentElement,
+ getComputedStyle = window.getComputedStyle,
+ supports;
+ if(!('pointerEvents' in element.style)){
+ return false;
+ }
+ element.style.pointerEvents = 'auto';
+ element.style.pointerEvents = 'x';
+ documentElement.appendChild(element);
+ supports = getComputedStyle &&
+ getComputedStyle(element, '').pointerEvents === 'auto';
+ documentElement.removeChild(element);
+ return !!supports;
+});
--- /dev/null
+// Sticky positioning - constrains an element to be positioned inside the
+// intersection of its container box, and the viewport.
+Modernizr.addTest('csspositionsticky', function () {
+
+ var prop = 'position:';
+ var value = 'sticky';
+ var el = document.createElement('modernizr');
+ var mStyle = el.style;
+
+ mStyle.cssText = prop + Modernizr._prefixes.join(value + ';' + prop).slice(0, -prop.length);
+
+ return mStyle.position.indexOf(value) !== -1;
+});
--- /dev/null
+// CSS Regions
+// http://www.w3.org/TR/css3-regions/
+// By: Mihai Balan
+
+// We start with a CSS parser test then we check page geometry to see if it's affected by regions
+// Later we might be able to retire the second part, as WebKit builds with the false positives die out
+
+Modernizr.addTest('regions', function() {
+
+ /* Get the 'flowFrom' property name available in the browser. Either default or vendor prefixed.
+ If the property name can't be found we'll get Boolean 'false' and fail quickly */
+ var flowFromProperty = Modernizr.prefixed("flowFrom"),
+ flowIntoProperty = Modernizr.prefixed("flowInto");
+
+ if (!flowFromProperty || !flowIntoProperty){
+ return false;
+ }
+
+ /* If CSS parsing is there, try to determine if regions actually work. */
+ var container = document.createElement('div'),
+ content = document.createElement('div'),
+ region = document.createElement('div'),
+
+ /* we create a random, unlikely to be generated flow number to make sure we don't
+ clash with anything more vanilla, like 'flow', or 'article', or 'f1' */
+ flowName = 'modernizr_flow_for_regions_check';
+
+ /* First create a div with two adjacent divs inside it. The first will be the
+ content, the second will be the region. To be able to distinguish between the two,
+ we'll give the region a particular padding */
+ content.innerText = 'M';
+ container.style.cssText = 'top: 150px; left: 150px; padding: 0px;';
+ region.style.cssText = 'width: 50px; height: 50px; padding: 42px;';
+
+ region.style[flowFromProperty] = flowName;
+ container.appendChild(content);
+ container.appendChild(region);
+ document.documentElement.appendChild(container);
+
+ /* Now compute the bounding client rect, before and after attempting to flow the
+ content div in the region div. If regions are enabled, the after bounding rect
+ should reflect the padding of the region div.*/
+ var flowedRect, delta,
+ plainRect = content.getBoundingClientRect();
+
+
+ content.style[flowIntoProperty] = flowName;
+ flowedRect = content.getBoundingClientRect();
+
+ delta = flowedRect.left - plainRect.left;
+ document.documentElement.removeChild(container);
+ content = region = container = undefined;
+
+ return (delta == 42);
+});
--- /dev/null
+
+// test by github.com/nsfmc
+
+// "The 'rem' unit ('root em') is relative to the computed
+// value of the 'font-size' value of the root element."
+// http://www.w3.org/TR/css3-values/#relative0
+// you can test by checking if the prop was ditched
+
+// http://snook.ca/archives/html_and_css/font-size-with-rem
+
+Modernizr.addTest('cssremunit', function(){
+
+ var div = document.createElement('div');
+ try {
+ div.style.fontSize = '3rem';
+ } catch(er){}
+ return (/rem/).test(div.style.fontSize);
+
+});
--- /dev/null
+
+// Test for CSS 3 UI "resize" property
+// http://www.w3.org/TR/css3-ui/#resize
+// https://developer.mozilla.org/en/CSS/resize
+
+Modernizr.addTest('cssresize', Modernizr.testAllProps('resize'));
+
+
--- /dev/null
+// Stylable scrollbars detection
+Modernizr.addTest('cssscrollbar', function() {
+
+ var bool,
+
+ styles = "#modernizr{overflow: scroll; width: 40px }#" +
+ Modernizr._prefixes
+ .join("scrollbar{width:0px}"+' #modernizr::')
+ .split('#')
+ .slice(1)
+ .join('#') + "scrollbar{width:0px}";
+
+ Modernizr.testStyles(styles, function(node) {
+ bool = 'scrollWidth' in node && node.scrollWidth == 40;
+ });
+
+ return bool;
+
+});
--- /dev/null
+
+// http://html.adobe.com/webplatform/layout/shapes
+
+Modernizr.addTest('shapes', Modernizr.testAllProps('shapeOutside', 'content-box', true));
--- /dev/null
+/*
+ * Test for SubPixel Font Rendering
+ * (to infer if GDI or DirectWrite is used on Windows)
+ * Authors: @derSchepp, @gerritvanaaken, @rodneyrehm, @yatil, @ryanseddon
+ * Web: https://github.com/gerritvanaaken/subpixeldetect
+ */
+Modernizr.addTest('subpixelfont', function() {
+ var bool,
+ styles = "#modernizr{position: absolute; top: -10em; visibility:hidden; font: normal 10px arial;}#subpixel{float: left; font-size: 33.3333%;}";
+
+ // see https://github.com/Modernizr/Modernizr/blob/master/modernizr.js#L97
+ Modernizr.testStyles(styles, function(elem) {
+ var subpixel = elem.firstChild;
+
+ subpixel.innerHTML = 'This is a text written in Arial';
+
+ bool = window.getComputedStyle ?
+ window.getComputedStyle(subpixel, null).getPropertyValue("width") !== '44px'
+ : false;
+ }, 1, ['subpixel']);
+
+ return bool;
+});
--- /dev/null
+// http://dev.w3.org/csswg/css3-conditional/#at-supports
+// github.com/Modernizr/Modernizr/issues/648
+// Relies on the fact that a browser vendor should expose the CSSSupportsRule interface
+// http://dev.w3.org/csswg/css3-conditional/#the-csssupportsrule-interface
+
+Modernizr.addTest("supports","CSSSupportsRule" in window);
\ No newline at end of file
--- /dev/null
+// -moz-user-select:none test.
+
+// by ryan seddon
+//https://github.com/Modernizr/Modernizr/issues/250
+
+
+Modernizr.addTest("userselect",function(){
+ return Modernizr.testAllProps("user-select");
+});
+
--- /dev/null
+// https://github.com/Modernizr/Modernizr/issues/572
+// Similar to http://jsfiddle.net/FWeinb/etnYC/
+Modernizr.addTest('cssvhunit', function() {
+ var bool;
+ Modernizr.testStyles("#modernizr { height: 50vh; }", function(elem, rule) {
+ var height = parseInt(window.innerHeight/2,10),
+ compStyle = parseInt((window.getComputedStyle ?
+ getComputedStyle(elem, null) :
+ elem.currentStyle)["height"],10);
+
+ bool= (compStyle == height);
+ });
+ return bool;
+});
\ No newline at end of file
--- /dev/null
+// https://github.com/Modernizr/Modernizr/issues/572
+// http://jsfiddle.net/glsee/JDsWQ/4/
+Modernizr.addTest('cssvmaxunit', function(){
+ var bool;
+ Modernizr.testStyles("#modernizr { width: 50vmax; }", function(elem, rule) {
+ var one_vw = window.innerWidth/100,
+ one_vh = window.innerHeight/100,
+ compWidth = parseInt((window.getComputedStyle ?
+ getComputedStyle(elem, null) :
+ elem.currentStyle)['width'],10);
+ bool = ( parseInt(Math.max(one_vw, one_vh)*50,10) == compWidth );
+ });
+ return bool;
+});
\ No newline at end of file
--- /dev/null
+// https://github.com/Modernizr/Modernizr/issues/572
+// http://jsfiddle.net/glsee/JRmdq/8/
+Modernizr.addTest('cssvminunit', function(){
+ var bool;
+ Modernizr.testStyles("#modernizr { width: 50vmin; }", function(elem, rule) {
+ var one_vw = window.innerWidth/100,
+ one_vh = window.innerHeight/100,
+ compWidth = parseInt((window.getComputedStyle ?
+ getComputedStyle(elem, null) :
+ elem.currentStyle)['width'],10);
+ bool = ( parseInt(Math.min(one_vw, one_vh)*50,10) == compWidth );
+ });
+ return bool;
+});
--- /dev/null
+// https://github.com/Modernizr/Modernizr/issues/572
+// http://jsfiddle.net/FWeinb/etnYC/
+Modernizr.addTest('cssvwunit', function(){
+ var bool;
+ Modernizr.testStyles("#modernizr { width: 50vw; }", function(elem, rule) {
+ var width = parseInt(window.innerWidth/2,10),
+ compStyle = parseInt((window.getComputedStyle ?
+ getComputedStyle(elem, null) :
+ elem.currentStyle)["width"],10);
+
+ bool= (compStyle == width);
+ });
+ return bool;
+});
--- /dev/null
+/*
+ Custom protocol handler support
+ http://developers.whatwg.org/timers.html#custom-handlers
+
+ Added by @benschwarz
+*/
+
+Modernizr.addTest('customprotocolhandler', function () {
+ return !!navigator.registerProtocolHandler;
+});
--- /dev/null
+// Dart
+// By Theodoor van Donge
+
+// https://chromiumcodereview.appspot.com/9232049/
+
+Modernizr.addTest('dart', !!Modernizr.prefixed('startDart', navigator));
--- /dev/null
+// DataView
+// https://developer.mozilla.org/en/JavaScript_typed_arrays/DataView
+// By Addy Osmani
+Modernizr.addTest('dataview', (typeof DataView !== 'undefined' && 'getFloat64' in DataView.prototype));
\ No newline at end of file
--- /dev/null
+// classList
+// https://developer.mozilla.org/en/DOM/element.classList
+// By Addy Osmani
+Modernizr.addTest('classlist', 'classList' in document.documentElement);
--- /dev/null
+// by james a rosen.
+// https://github.com/Modernizr/Modernizr/issues/258
+
+Modernizr.addTest('createelement-attrs', function() {
+ try {
+ return document.createElement("<input name='test' />").getAttribute('name') == 'test';
+ } catch(e) {
+ return false;
+ }
+});
+
--- /dev/null
+
+// dataset API for data-* attributes
+// test by @phiggins42
+
+Modernizr.addTest('dataset', function(){
+ var n = document.createElement("div");
+ n.setAttribute("data-a-b", "c");
+ return !!(n.dataset && n.dataset.aB === "c");
+});
--- /dev/null
+// Microdata support
+// http://www.w3.org/TR/html5/microdata.html
+// By Addy Osmani
+Modernizr.addTest('microdata', !!(document['getItems']));
\ No newline at end of file
--- /dev/null
+
+
+// lol. we already have a test for datalist built in! silly you.
+
+
+// Helpful links while you're here, though..
+
+// http://css-tricks.com/15346-relevant-dropdowns-polyfill-for-datalist/
+// http://miketaylr.com/test/datalist.html
+// http://miketaylr.com/code/datalist.html
+
+Modernizr.addTest('datalistelem', Modernizr.input.list );
--- /dev/null
+// By @mathias, based on http://mths.be/axh
+Modernizr.addTest('details', function() {
+ var doc = document,
+ el = doc.createElement('details'),
+ fake,
+ root,
+ diff;
+ if (!('open' in el)) { // return early if possible; thanks @aFarkas!
+ return false;
+ }
+ root = doc.body || (function() {
+ var de = doc.documentElement;
+ fake = true;
+ return de.insertBefore(doc.createElement('body'), de.firstElementChild || de.firstChild);
+ }());
+ el.innerHTML = '<summary>a</summary>b';
+ el.style.display = 'block';
+ root.appendChild(el);
+ diff = el.offsetHeight;
+ el.open = true;
+ diff = diff != el.offsetHeight;
+ root.removeChild(el);
+ fake && root.parentNode.removeChild(root);
+ return diff;
+});
\ No newline at end of file
--- /dev/null
+// <output>
+// http://www.whatwg.org/specs/web-apps/current-work/multipage/the-button-element.html#the-output-element
+// by Addy Osmani
+Modernizr.addTest('outputelem', 'value' in document.createElement('output'));
--- /dev/null
+//By Stefan Wallin
+
+//tests for progressbar-support. All browsers that don't support progressbar returns undefined =)
+Modernizr.addTest("progressbar",function(){
+ return document.createElement('progress').max !== undefined;
+});
+
+//tests for meter-support. All browsers that don't support meters returns undefined =)
+Modernizr.addTest("meter",function(){
+ return document.createElement('meter').max !== undefined;
+});
--- /dev/null
+// Browser support test for the HTML5 <ruby>, <rt> and <rp> elements
+// http://www.whatwg.org/specs/web-apps/current-work/multipage/text-level-semantics.html#the-ruby-element
+//
+// by @alrra
+
+Modernizr.addTest('ruby', function () {
+
+ var ruby = document.createElement('ruby'),
+ rt = document.createElement('rt'),
+ rp = document.createElement('rp'),
+ docElement = document.documentElement,
+ displayStyleProperty = 'display',
+ fontSizeStyleProperty = 'fontSize'; // 'fontSize' - because it`s only used for IE6 and IE7
+
+ ruby.appendChild(rp);
+ ruby.appendChild(rt);
+ docElement.appendChild(ruby);
+
+ // browsers that support <ruby> hide the <rp> via "display:none"
+ if ( getStyle(rp, displayStyleProperty) == 'none' || // for non-IE browsers
+ // but in IE browsers <rp> has "display:inline" so, the test needs other conditions:
+ getStyle(ruby, displayStyleProperty) == 'ruby' && getStyle(rt, displayStyleProperty) == 'ruby-text' || // for IE8 & IE9
+ getStyle(rp, fontSizeStyleProperty) == '6pt' && getStyle(rt, fontSizeStyleProperty) == '6pt' ) { // for IE6 & IE7
+
+ cleanUp();
+ return true;
+
+ } else {
+ cleanUp();
+ return false;
+ }
+
+ function getStyle( element, styleProperty ) {
+ var result;
+
+ if ( window.getComputedStyle ) { // for non-IE browsers
+ result = document.defaultView.getComputedStyle(element,null).getPropertyValue(styleProperty);
+ } else if ( element.currentStyle ) { // for IE
+ result = element.currentStyle[styleProperty];
+ }
+
+ return result;
+ }
+
+ function cleanUp() {
+ docElement.removeChild(ruby);
+ // the removed child node still exists in memory, so ...
+ ruby = null;
+ rt = null;
+ rp = null;
+ }
+
+});
--- /dev/null
+// <time> element
+// http://www.whatwg.org/specs/web-apps/current-work/multipage/rendering.html#the-time-element-0
+// by Addy Osmani
+Modernizr.addTest('time', 'valueAsDate' in document.createElement('time'));
--- /dev/null
+// Track element + Timed Text Track API
+// http://www.w3.org/TR/html5/video.html#the-track-element
+// http://www.w3.org/TR/html5/media-elements.html#text-track-api
+//
+// While IE10 has implemented the track element, IE10 does not expose the underlying APIs to create timed text tracks by JS (really sad)
+// By Addy Osmani
+Modernizr.addTest({
+ texttrackapi: (typeof (document.createElement('video').addTextTrack) === 'function'),
+ // a more strict test for track including UI support: document.createElement('track').kind === 'subtitles'
+ track: ('kind' in document.createElement('track'))
+});
--- /dev/null
+// Requires a Modernizr build with `canvastext` included
+// http://www.modernizr.com/download/#-canvas-canvastext
+Modernizr.addTest('emoji', function() {
+ if (!Modernizr.canvastext) return false;
+ var node = document.createElement('canvas'),
+ ctx = node.getContext('2d');
+ ctx.textBaseline = 'top';
+ ctx.font = '32px Arial';
+ ctx.fillText('\ud83d\ude03', 0, 0); // "smiling face with open mouth" emoji
+ return ctx.getImageData(16, 16, 1, 1).data[0] !== 0;
+});
\ No newline at end of file
--- /dev/null
+// strict mode
+
+// test by @kangax
+
+Modernizr.addTest('strictmode', function(){
+ return (function(){ "use strict"; return !this; })();
+});
\ No newline at end of file
--- /dev/null
+//By Shi Chuan
+//Part of Device Access aspect of HTML5, same category as geolocation
+//W3C Editor's Draft at http://dev.w3.org/geo/api/spec-source-orientation.html
+//Implementation by iOS Safari at http://goo.gl/fhce3 and http://goo.gl/rLKz8
+
+
+//test for Device Motion Event support, returns boolean value true/false
+Modernizr.addTest('devicemotion', ('DeviceMotionEvent' in window) );
+
+//test for Device Orientation Event support, returns boolean value true/false
+Modernizr.addTest('deviceorientation', ('DeviceOrientationEvent' in window) );
--- /dev/null
+// EXIF Orientation test
+
+// iOS looks at the EXIF Orientation flag in jpgs and rotates the image
+// accordingly. Looks like most desktop browsers just ignore this data.
+
+// description: www.impulseadventure.com/photo/exif-orientation.html
+
+// Bug trackers:
+// bugzil.la/298619 (unimplemented)
+// crbug.com/56845 (looks incomplete)
+// webk.it/19688 (available upstream but its up all ports to turn on individually)
+//
+
+// detect by Paul Sayre
+
+
+(function(){
+
+ var img = new Image();
+
+ img.onerror = function() {
+ Modernizr.addTest('exif-orientation', function () { return false; });
+ };
+
+ img.onload = function() {
+ Modernizr.addTest('exif-orientation', function () { return img.width !== 2; });
+ };
+
+ // There may be a way to shrink this more, it's a 1x2 white jpg with the orientation flag set to 6
+ img.src = "data:image/jpeg;base64,/9j/4AAQSkZJRgABAQEAYABgAAD/4QAiRXhpZgAASUkqAAgAAAABABIBAwABAAAABgASAAAAAAD/2wBDAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQH/2wBDAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQH/wAARCAABAAIDASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD+/iiiigD/2Q==";
+
+})();
--- /dev/null
+/**
+ * file tests for the File API specification
+ * Tests for objects specific to the File API W3C specification without
+ * being redundant (don't bother testing for Blob since it is assumed
+ * to be the File object's prototype.
+ *
+ * Will fail in Safari 5 due to its lack of support for the standards
+ * defined FileReader object
+ */
+Modernizr.addTest('filereader', function () {
+ return !!(window.File && window.FileList && window.FileReader);
+});
--- /dev/null
+// Filesystem API
+// dev.w3.org/2009/dap/file-system/file-dir-sys.html
+
+// The API will be present in Chrome incognito, but will throw an exception.
+// See crbug.com/93417
+//
+// By Eric Bidelman (@ebidel)
+
+Modernizr.addTest('filesystem', !!Modernizr.prefixed('requestFileSystem', window));
\ No newline at end of file
--- /dev/null
+
+
+// Detects whether input type="file" is available on the platform
+// E.g. iOS < 6 and some android version don't support this
+
+// It's useful if you want to hide the upload feature of your app on devices that
+// don't support it (iphone, ipad, etc).
+
+Modernizr.addTest('fileinput', function() {
+ var elem = document.createElement('input');
+ elem.type = 'file';
+ return !elem.disabled;
+});
--- /dev/null
+// Detects whether input form="form_id" is available on the platform
+// E.g. IE 10 (and below), don't support this
+Modernizr.addTest("formattribute", function() {
+ var form = document.createElement("form"),
+ input = document.createElement("input"),
+ div = document.createElement("div"),
+ id = "formtest"+(new Date().getTime()),
+ attr,
+ bool = false;
+
+ form.id = id;
+
+ //IE6/7 confuses the form idl attribute and the form content attribute
+ if(document.createAttribute){
+ attr = document.createAttribute("form");
+ attr.nodeValue = id;
+ input.setAttributeNode(attr);
+ div.appendChild(form);
+ div.appendChild(input);
+
+ document.documentElement.appendChild(div);
+
+ bool = form.elements.length === 1 && input.form == form;
+
+ div.parentNode.removeChild(div);
+ }
+
+ return bool;
+});
\ No newline at end of file
--- /dev/null
+// input[type="number"] localized input/output
+// // Detects whether input type="number" is capable of receiving and
+// // displaying localized numbers, e.g. with comma separator
+// // https://bugs.webkit.org/show_bug.cgi?id=42484
+// // Based on http://trac.webkit.org/browser/trunk/LayoutTests/fast/forms/script-tests/input-number-keyoperation.js?rev=80096#L9
+// // By Peter Janes
+
+Modernizr.addTest('localizedNumber', function() {
+ var doc = document,
+ el = document.createElement('div'),
+ fake,
+ root,
+ input,
+ diff;
+ root = doc.body || (function() {
+ var de = doc.documentElement;
+ fake = true;
+ return de.insertBefore(doc.createElement('body'), de.firstElementChild || de.firstChild);
+ }());
+ el.innerHTML = '<input type="number" value="1.0" step="0.1"/>';
+ input = el.childNodes[0];
+ root.appendChild(el);
+ input.focus();
+ try {
+ doc.execCommand('InsertText', false, '1,1');
+ } catch(e) { // prevent warnings in IE
+ }
+ diff = input.type === 'number' && input.valueAsNumber === 1.1 && input.checkValidity();
+ root.removeChild(el);
+ fake && root.parentNode.removeChild(root);
+ return diff;
+});
--- /dev/null
+// testing for placeholder attribute in inputs and textareas
+// re-using Modernizr.input if available
+
+Modernizr.addTest('placeholder', function(){
+
+ return !!( 'placeholder' in ( Modernizr.input || document.createElement('input') ) &&
+ 'placeholder' in ( Modernizr.textarea || document.createElement('textarea') )
+ );
+
+});
--- /dev/null
+// speech input for inputs
+// by @alrra
+
+
+// `webkitSpeech` in elem
+// doesn`t work correctly in all versions of Chromium based browsers.
+// It can return false even if they have support for speech i.imgur.com/2Y40n.png
+// Testing with 'onwebkitspeechchange' seems to fix this problem
+
+// this detect only checks the webkit version because
+// the speech attribute is likely to be deprecated in favor of a JavaScript API.
+// http://lists.w3.org/Archives/Public/public-webapps/2011OctDec/att-1696/speechapi.html
+
+// FIXME: add support for detecting the new spec'd behavior
+
+Modernizr.addTest('speechinput', function(){
+ var elem = document.createElement('input');
+ return 'speech' in elem || 'onwebkitspeechchange' in elem;
+});
\ No newline at end of file
--- /dev/null
+// This implementation only tests support for interactive form validation.
+// To check validation for a specific type or a specific other constraint,
+// the test can be combined:
+// - Modernizr.inputtypes.numer && Modernizr.formvalidation (browser supports rangeOverflow, typeMismatch etc. for type=number)
+// - Modernizr.input.required && Modernizr.formvalidation (browser supports valueMissing)
+//
+(function(document, Modernizr){
+
+
+ Modernizr.formvalidationapi = false;
+ Modernizr.formvalidationmessage = false;
+
+ Modernizr.addTest('formvalidation', function() {
+ var form = document.createElement('form');
+ if ( !('checkValidity' in form) || !('addEventListener' in form) ) {
+ return false;
+ }
+ if ('reportValidity' in form) {
+ return true;
+ }
+ var invalidFired = false;
+ var input;
+
+ Modernizr.formvalidationapi = true;
+
+ // Prevent form from being submitted
+ form.addEventListener('submit', function(e) {
+ //Opera does not validate form, if submit is prevented
+ if ( !window.opera ) {
+ e.preventDefault();
+ }
+ e.stopPropagation();
+ }, false);
+
+ // Calling form.submit() doesn't trigger interactive validation,
+ // use a submit button instead
+ //older opera browsers need a name attribute
+ form.innerHTML = '<input name="modTest" required><button></button>';
+
+ Modernizr.testStyles('#modernizr form{position:absolute;top:-99999em}', function( node ) {
+ node.appendChild(form);
+
+ input = form.getElementsByTagName('input')[0];
+
+ // Record whether "invalid" event is fired
+ input.addEventListener('invalid', function(e) {
+ invalidFired = true;
+ e.preventDefault();
+ e.stopPropagation();
+ }, false);
+
+ //Opera does not fully support the validationMessage property
+ Modernizr.formvalidationmessage = !!input.validationMessage;
+
+ // Submit form by clicking submit button
+ form.getElementsByTagName('button')[0].click();
+ });
+
+ return invalidFired;
+ });
+
+})(document, window.Modernizr);
--- /dev/null
+Modernizr.addTest('fullscreen',function(){
+ for(var i = 0; i < Modernizr._domPrefixes.length; i++) {
+ if( document[Modernizr._domPrefixes[i].toLowerCase() + 'CancelFullScreen'])
+ return true;
+ }
+ return !!document['cancelFullScreen'] || false;
+});
+
+// http://developer.apple.com/library/safari/documentation/AudioVideo/Conceptual/Using_HTML5_Audio_Video/ControllingMediaWithJavaScript/ControllingMediaWithJavaScript.html#//apple_ref/doc/uid/TP40009523-CH3-SW20
+// https://developer.mozilla.org/en/API/Fullscreen
--- /dev/null
+// GamePad API
+// https://dvcs.w3.org/hg/gamepad/raw-file/default/gamepad.html
+// By Eric Bidelman
+
+// FF has Gamepad API support only in special builds, but not in any release (even behind a flag)
+// Their current implementation has no way to feature detect, only events to bind to.
+// http://www.html5rocks.com/en/tutorials/doodles/gamepad/#toc-featuredetect
+
+// but a patch will bring them up to date with the spec when it lands (and they'll pass this test)
+// https://bugzilla.mozilla.org/show_bug.cgi?id=690935
+
+Modernizr.addTest('gamepads', !!Modernizr.prefixed('getGamepads', navigator));
--- /dev/null
+// getUserMedia
+// http://www.whatwg.org/specs/web-apps/current-work/multipage/video-conferencing-and-peer-to-peer-communication.html
+// By Eric Bidelman
+
+Modernizr.addTest('getusermedia', !!Modernizr.prefixed('getUserMedia', navigator));
\ No newline at end of file
--- /dev/null
+
+// IE8 compat mode aka Fake IE7
+// by Erich Ocean
+
+// In this case, IE8 will be acting as IE7. You may choose to remove features in this case.
+
+// related:
+// james.padolsey.com/javascript/detect-ie-in-js-using-conditional-comments/
+
+Modernizr.addTest('ie8compat',function(){
+ return (!window.addEventListener && document.documentMode && document.documentMode === 7);
+});
--- /dev/null
+// Test for `sandbox` attribute in iframes.
+//
+// Spec: http://www.whatwg.org/specs/web-apps/current-work/multipage/the-iframe-element.html#attr-iframe-sandbox
+
+Modernizr.addTest('sandbox', 'sandbox' in document.createElement('iframe'));
--- /dev/null
+// Test for `seamless` attribute in iframes.
+//
+// Spec: http://www.whatwg.org/specs/web-apps/current-work/multipage/the-iframe-element.html#attr-iframe-seamless
+
+Modernizr.addTest('seamless', 'seamless' in document.createElement('iframe'));
--- /dev/null
+// Test for `srcdoc` attribute in iframes.
+//
+// Spec: http://www.whatwg.org/specs/web-apps/current-work/multipage/the-iframe-element.html#attr-iframe-srcdoc
+
+Modernizr.addTest('srcdoc', 'srcdoc' in document.createElement('iframe'));
--- /dev/null
+// Animated PNG
+// http://en.wikipedia.org/wiki/APNG
+// By Addy Osmani
+(function () {
+
+ if (!Modernizr.canvas) return false;
+
+ var image = new Image(),
+ canvas = document.createElement('canvas'),
+ ctx = canvas.getContext('2d');
+
+
+ image.onload = function () {
+ Modernizr.addTest('apng', function () {
+ if (typeof canvas.getContext == 'undefined') {
+ return false;
+ } else {
+ ctx.drawImage(image, 0, 0);
+ return ctx.getImageData(0, 0, 1, 1).data[3] === 0;
+ }
+ });
+ };
+
+ image.src = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAACGFjVEwAAAABAAAAAcMq2TYAAAANSURBVAiZY2BgYPgPAAEEAQB9ssjfAAAAGmZjVEwAAAAAAAAAAQAAAAEAAAAAAAAAAAD6A+gBAbNU+2sAAAARZmRBVAAAAAEImWNgYGBgAAAABQAB6MzFdgAAAABJRU5ErkJggg==";
+
+}());
--- /dev/null
+// code.google.com/speed/webp/
+// by rich bradshaw, ryan seddon, and paul irish
+
+
+// This test is asynchronous. Watch out.
+
+(function(){
+
+ var image = new Image();
+
+ image.onerror = function() {
+ Modernizr.addTest('webp', false);
+ };
+ image.onload = function() {
+ Modernizr.addTest('webp', function() { return image.width == 1; });
+ };
+
+ image.src = 'data:image/webp;base64,UklGRiwAAABXRUJQVlA4ICAAAAAUAgCdASoBAAEAL/3+/3+CAB/AAAFzrNsAAP5QAAAAAA==';
+
+}());
\ No newline at end of file
--- /dev/null
+// native JSON support.
+// developer.mozilla.org/en/JSON
+
+// this will also succeed if you've loaded the JSON2.js polyfill ahead of time
+// ... but that should be obvious. :)
+
+Modernizr.addTest('json', !!window.JSON && !!JSON.parse);
--- /dev/null
+
+// impressivewebs.com/reverse-ordered-lists-html5
+// polyfill: github.com/impressivewebs/HTML5-Reverse-Ordered-Lists
+
+
+Modernizr.addTest('olreversed', 'reversed' in document.createElement('ol'));
--- /dev/null
+// MathML
+// http://www.w3.org/Math/
+// By Addy Osmani
+// Based on work by Davide (@dpvc) and David (@davidcarlisle)
+// in https://github.com/mathjax/MathJax/issues/182
+
+Modernizr.addTest('mathml', function(){
+ var hasMathML = false;
+ if ( document.createElementNS ) {
+ var ns = "http://www.w3.org/1998/Math/MathML",
+ div = document.createElement("div");
+ div.style.position = "absolute";
+ var mfrac = div.appendChild(document.createElementNS(ns,"math"))
+ .appendChild(document.createElementNS(ns,"mfrac"));
+ mfrac.appendChild(document.createElementNS(ns,"mi"))
+ .appendChild(document.createTextNode("xx"));
+ mfrac.appendChild(document.createElementNS(ns,"mi"))
+ .appendChild(document.createTextNode("yy"));
+ document.body.appendChild(div);
+ hasMathML = div.offsetHeight > div.offsetWidth;
+ }
+ return hasMathML;
+});
\ No newline at end of file
--- /dev/null
+// determining low-bandwidth via navigator.connection
+
+// There are two iterations of the navigator.connection interface:
+
+// The first is present in Android 2.2+ and only in the Browser (not WebView)
+// : docs.phonegap.com/en/1.2.0/phonegap_connection_connection.md.html#connection.type
+// : davidbcalhoun.com/2010/using-navigator-connection-android
+
+// The second is specced at dev.w3.org/2009/dap/netinfo/ and perhaps landing in WebKit
+// : bugs.webkit.org/show_bug.cgi?id=73528
+
+// unknown devices are assumed as fast
+// for more rigorous network testing, consider boomerang.js: github.com/bluesmoon/boomerang/
+
+Modernizr.addTest('lowbandwidth', function() {
+
+ var connection = navigator.connection || { type: 0 }; // polyfill
+
+ return connection.type == 3 || // connection.CELL_2G
+ connection.type == 4 || // connection.CELL_3G
+ /^[23]g$/.test(connection.type); // string value in new spec
+});
--- /dev/null
+
+// server sent events aka eventsource
+// dev.w3.org/html5/eventsource/
+
+Modernizr.addTest('eventsource', !!window.EventSource);
--- /dev/null
+
+
+// XML HTTP Request Level 2
+// www.w3.org/TR/XMLHttpRequest2/
+
+// Much more details at github.com/Modernizr/Modernizr/issues/385
+
+// all three of these details report consistently across all target browsers:
+// !!(window.ProgressEvent);
+// !!(window.FormData);
+// window.XMLHttpRequest && "withCredentials" in new XMLHttpRequest;
+
+Modernizr.addTest('xhr2', 'FormData' in window);
--- /dev/null
+// Notifications
+// By Theodoor van Donge
+
+// window.webkitNotifications is only used by Chrome
+// http://www.html5rocks.com/en/tutorials/notifications/quick/
+
+// window.Notification only exist in the draft specs
+// http://dev.w3.org/2006/webapi/WebNotifications/publish/Notifications.html#idl-if-Notification
+
+Modernizr.addTest('notification', 'Notification' in window && 'permission' in window.Notification && 'requestPermission' in window.Notification);
--- /dev/null
+// Navigation Timing (Performance)
+// https://dvcs.w3.org/hg/webperf/raw-file/tip/specs/NavigationTiming/
+// http://www.html5rocks.com/en/tutorials/webperformance/basics/
+// By Scott Murphy (uxder)
+Modernizr.addTest('performance', !!Modernizr.prefixed('performance', window));
\ No newline at end of file
--- /dev/null
+// https://developer.mozilla.org/en-US/docs/API/Pointer_Lock_API
+
+Modernizr.addTest('pointerlock',!!Modernizr.prefixed('pointerLockElement', document));
+
--- /dev/null
+// Quota Storage Management API
+// This API can be used to check how much quota an origin is using and request more
+
+// Currently only implemented in Chrome.
+// https://developers.google.com/chrome/whitepapers/storage
+// By Addy Osmani
+
+Modernizr.addTest('quotamanagement', function(){
+ var storage = Modernizr.prefixed('StorageInfo', window);
+ return !!(storage && 'TEMPORARY' in storage && 'PERSISTENT' in storage);
+});
--- /dev/null
+
+// requestAnimationFrame
+// Offload animation repainting to browser for optimized performance.
+// http://dvcs.w3.org/hg/webperf/raw-file/tip/specs/RequestAnimationFrame/Overview.html
+// By Addy Osmani
+
+Modernizr.addTest('raf', !!Modernizr.prefixed('requestAnimationFrame', window));
\ No newline at end of file
--- /dev/null
+// async script
+// By Theodoor van Donge
+Modernizr.addTest('scriptasync', 'async' in document.createElement('script'));
\ No newline at end of file
--- /dev/null
+// defer script
+// By Theodoor van Donge
+Modernizr.addTest('scriptdefer', 'defer' in document.createElement('script'));
\ No newline at end of file
--- /dev/null
+// Browser support test for <style scoped>
+// http://www.w3.org/TR/html5/the-style-element.html#attr-style-scoped
+//
+// by @alrra
+
+Modernizr.addTest( 'stylescoped', 'scoped' in document.createElement('style') );
--- /dev/null
+// Detect support for svg filters - http://www.w3.org/TR/SVG11/filters.html.
+// Should fail in Safari: http://stackoverflow.com/questions/9739955/feature-detecting-support-for-svg-filters.
+// detect by erik dahlstrom
+
+Modernizr.addTest('svgfilters', function(){
+ var result = false;
+ try {
+ result = typeof SVGFEColorMatrixElement !== undefined &&
+ SVGFEColorMatrixElement.SVG_FECOLORMATRIX_TYPE_SATURATE == 2;
+ }
+ catch(e) {}
+ return result;
+});
--- /dev/null
+/**
+ * Unicode special character support
+ *
+ * Detection is made by testing missing glyph box rendering against star character
+ * If widths are the same, this "probably" means the browser didn't support the star character and rendered a glyph box instead
+ * Just need to ensure the font characters have different widths
+ *
+ * Warning : positive Unicode support doesn't mean you can use it inside <title>, this seams more related to OS & Language packs
+ */
+Modernizr.addTest('unicode', function() {
+
+
+ var bool,
+
+ missingGlyph = document.createElement('span'),
+
+ star = document.createElement('span');
+
+ Modernizr.testStyles('#modernizr{font-family:Arial,sans;font-size:300em;}', function(node) {
+
+ missingGlyph.innerHTML = 'ᝣ';
+ star.innerHTML = '☆';
+
+ node.appendChild(missingGlyph);
+ node.appendChild(star);
+
+ bool = 'offsetWidth' in missingGlyph && missingGlyph.offsetWidth !== star.offsetWidth;
+ });
+
+ return bool;
+
+});
\ No newline at end of file
--- /dev/null
+// data uri test.
+// https://github.com/Modernizr/Modernizr/issues/14
+
+// This test is asynchronous. Watch out.
+
+
+// in IE7 in HTTPS this can cause a Mixed Content security popup.
+// github.com/Modernizr/Modernizr/issues/362
+// To avoid that you can create a new iframe and inject this.. perhaps..
+
+
+(function(){
+
+ var datauri = new Image();
+
+
+ datauri.onerror = function() {
+ Modernizr.addTest('datauri', function () { return false; });
+ };
+ datauri.onload = function() {
+ Modernizr.addTest('datauri', function () { return (datauri.width == 1 && datauri.height == 1); });
+ };
+
+ datauri.src = "data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///ywAAAAAAQABAAACAUwAOw==";
+
+})();
--- /dev/null
+// test if IE userdata supported
+// msdn.microsoft.com/en-us/library/ms531424(v=vs.85).aspx
+// test by @stereobooster
+
+Modernizr.addTest('userdata', function(){
+ return !!document.createElement('div').addBehavior;
+});
--- /dev/null
+// Vibration API
+// http://www.w3.org/TR/vibration/
+// https://developer.mozilla.org/en/DOM/window.navigator.mozVibrate
+Modernizr.addTest('vibrate', !!Modernizr.prefixed('vibrate', navigator));
\ No newline at end of file
--- /dev/null
+// Tests for the ability to use Web Intents (http://webintents.org).
+// By Eric Bidelman
+
+Modernizr.addTest('webintents', function() {
+ return !!Modernizr.prefixed('startActivity', navigator);
+});
--- /dev/null
+
+// Grab the WebGL extensions currently supported and add to the Modernizr.webgl object
+// spec: www.khronos.org/registry/webgl/specs/latest/#5.13.14
+
+// based on code from ilmari heikkinen
+// code.google.com/p/graphics-detect/source/browse/js/detect.js
+
+
+(function(){
+
+ if (!Modernizr.webgl) return;
+
+ var canvas, ctx, exts;
+
+ try {
+ canvas = document.createElement('canvas');
+ ctx = canvas.getContext('webgl') || canvas.getContext('experimental-webgl');
+ exts = ctx.getSupportedExtensions();
+ }
+ catch (e) {
+ return;
+ }
+
+ if (ctx === undefined) {
+ Modernizr.webgl = new Boolean(false);
+ }
+ else {
+ Modernizr.webgl = new Boolean(true);
+ }
+
+
+ for (var i = -1, len = exts.length; ++i < len; ){
+ Modernizr.webgl[exts[i]] = true;
+ }
+
+ // hack for addressing modernizr testsuite failures. sorry.
+ if (window.TEST && TEST.audvid){
+ TEST.audvid.push('webgl');
+ }
+
+ canvas = undefined;
+})();
\ No newline at end of file
--- /dev/null
+
+// binaryType is truthy if there is support.. returns "blob" in new-ish chrome.
+// plus.google.com/115535723976198353696/posts/ERN6zYozENV
+// github.com/Modernizr/Modernizr/issues/370
+
+Modernizr.addTest('websocketsbinary', function() {
+ var protocol = 'https:'==location.protocol?'wss':'ws',
+ protoBin;
+
+ if('WebSocket' in window) {
+ if( protoBin = 'binaryType' in WebSocket.prototype ) {
+ return protoBin;
+ }
+ try {
+ return !!(new WebSocket(protocol+'://.').binaryType);
+ } catch (e){}
+ }
+
+ return false;
+});
--- /dev/null
+
+// tests if page is iframed
+
+// github.com/Modernizr/Modernizr/issues/242
+
+Modernizr.addTest('framed', function(){
+ return window.location != top.location;
+});
--- /dev/null
+// by jussi-kalliokoski
+
+
+// This test is asynchronous. Watch out.
+
+// The test will potentially add garbage to console.
+
+(function(){
+ try {
+ // we're avoiding using Modernizr._domPrefixes as the prefix capitalization on
+ // these guys are notoriously peculiar.
+ var BlobBuilder = window.MozBlobBuilder || window.WebKitBlobBuilder || window.MSBlobBuilder || window.OBlobBuilder || window.BlobBuilder;
+ var URL = window.MozURL || window.webkitURL || window.MSURL || window.OURL || window.URL;
+ var data = 'Modernizr',
+ blob,
+ bb,
+ worker,
+ url,
+ timeout,
+ scriptText = 'this.onmessage=function(e){postMessage(e.data)}';
+
+ try {
+ blob = new Blob([scriptText], {type:'text/javascript'});
+ } catch(e) {
+ // we'll fall back to the deprecated BlobBuilder
+ }
+ if (!blob) {
+ bb = new BlobBuilder();
+ bb.append(scriptText);
+ blob = bb.getBlob();
+ }
+
+ url = URL.createObjectURL(blob);
+ worker = new Worker(url);
+
+ worker.onmessage = function(e) {
+ Modernizr.addTest('blobworkers', data === e.data);
+ cleanup();
+ };
+
+ // Just in case...
+ worker.onerror = fail;
+ timeout = setTimeout(fail, 200);
+
+ worker.postMessage(data);
+ } catch (e) {
+ fail();
+ }
+
+ function fail() {
+ Modernizr.addTest('blobworkers', false);
+ cleanup();
+ }
+
+ function cleanup() {
+ if (url) {
+ URL.revokeObjectURL(url);
+ }
+ if (worker) {
+ worker.terminate();
+ }
+ if (timeout) {
+ clearTimeout(timeout);
+ }
+ }
+}());
--- /dev/null
+// by jussi-kalliokoski
+
+
+// This test is asynchronous. Watch out.
+
+// The test will potentially add garbage to console.
+
+(function(){
+ try {
+ var data = 'Modernizr',
+ worker = new Worker('data:text/javascript;base64,dGhpcy5vbm1lc3NhZ2U9ZnVuY3Rpb24oZSl7cG9zdE1lc3NhZ2UoZS5kYXRhKX0=');
+
+ worker.onmessage = function(e) {
+ worker.terminate();
+ Modernizr.addTest('dataworkers', data === e.data);
+ worker = null;
+ };
+
+ // Just in case...
+ worker.onerror = function() {
+ Modernizr.addTest('dataworkers', false);
+ worker = null;
+ };
+
+ setTimeout(function() {
+ Modernizr.addTest('dataworkers', false);
+ }, 200);
+
+ worker.postMessage(data);
+
+ } catch (e) {
+ Modernizr.addTest('dataworkers', false);
+ }
+}());
--- /dev/null
+Modernizr.addTest('sharedworkers', function(){
+ return !!window.SharedWorker;
+});
\ No newline at end of file
--- /dev/null
+/*global module */
+module.exports = function( grunt ) {
+ 'use strict';
+
+ grunt.initConfig({
+ meta: {
+ version: '2.8.3',
+ banner: '/*!\n' +
+ ' * Modernizr v<%= meta.version %>\n' +
+ ' * www.modernizr.com\n *\n' +
+ ' * Copyright (c) Faruk Ates, Paul Irish, Alex Sexton\n' +
+ ' * Available under the BSD and MIT licenses: www.modernizr.com/license/\n */'
+ },
+ qunit: {
+ files: ['test/index.html']
+ },
+ lint: {
+ files: [
+ 'grunt.js',
+ 'modernizr.js',
+ 'feature-detects/*.js'
+ ]
+ },
+ min: {
+ dist: {
+ src: [
+ '<banner:meta.banner>',
+ 'modernizr.js'
+ ],
+ dest: 'modernizr.min.js'
+ }
+ },
+ watch: {
+ files: '<config:lint.files>',
+ tasks: 'lint'
+ },
+ jshint: {
+ options: {
+ boss: true,
+ browser: true,
+ curly: false,
+ devel: true,
+ eqeqeq: false,
+ eqnull: true,
+ expr: true,
+ evil: true,
+ immed: false,
+ laxcomma: true,
+ newcap: false,
+ noarg: true,
+ smarttabs: true,
+ sub: true,
+ undef: true
+ },
+ globals: {
+ Modernizr: true,
+ DocumentTouch: true,
+ TEST: true,
+ SVGFEColorMatrixElement : true,
+ Blob: true
+ }
+ }
+ });
+
+ grunt.registerTask('default', 'min');
+
+ // Travis CI task.
+ grunt.registerTask('travis', 'qunit');
+};
--- /dev/null
+/*!
+ * Modernizr v2.8.3
+ * www.modernizr.com
+ *
+ * Copyright (c) Faruk Ates, Paul Irish, Alex Sexton
+ * Available under the BSD and MIT licenses: www.modernizr.com/license/
+ */
+
+/*
+ * Modernizr tests which native CSS3 and HTML5 features are available in
+ * the current UA and makes the results available to you in two ways:
+ * as properties on a global Modernizr object, and as classes on the
+ * <html> element. This information allows you to progressively enhance
+ * your pages with a granular level of control over the experience.
+ *
+ * Modernizr has an optional (not included) conditional resource loader
+ * called Modernizr.load(), based on Yepnope.js (yepnopejs.com).
+ * To get a build that includes Modernizr.load(), as well as choosing
+ * which tests to include, go to www.modernizr.com/download/
+ *
+ * Authors Faruk Ates, Paul Irish, Alex Sexton
+ * Contributors Ryan Seddon, Ben Alman
+ */
+
+window.Modernizr = (function( window, document, undefined ) {
+
+ var version = '2.8.3',
+
+ Modernizr = {},
+
+ /*>>cssclasses*/
+ // option for enabling the HTML classes to be added
+ enableClasses = true,
+ /*>>cssclasses*/
+
+ docElement = document.documentElement,
+
+ /**
+ * Create our "modernizr" element that we do most feature tests on.
+ */
+ mod = 'modernizr',
+ modElem = document.createElement(mod),
+ mStyle = modElem.style,
+
+ /**
+ * Create the input element for various Web Forms feature tests.
+ */
+ inputElem /*>>inputelem*/ = document.createElement('input') /*>>inputelem*/ ,
+
+ /*>>smile*/
+ smile = ':)',
+ /*>>smile*/
+
+ toString = {}.toString,
+
+ // TODO :: make the prefixes more granular
+ /*>>prefixes*/
+ // List of property values to set for css tests. See ticket #21
+ prefixes = ' -webkit- -moz- -o- -ms- '.split(' '),
+ /*>>prefixes*/
+
+ /*>>domprefixes*/
+ // Following spec is to expose vendor-specific style properties as:
+ // elem.style.WebkitBorderRadius
+ // and the following would be incorrect:
+ // elem.style.webkitBorderRadius
+
+ // Webkit ghosts their properties in lowercase but Opera & Moz do not.
+ // Microsoft uses a lowercase `ms` instead of the correct `Ms` in IE8+
+ // erik.eae.net/archives/2008/03/10/21.48.10/
+
+ // More here: github.com/Modernizr/Modernizr/issues/issue/21
+ omPrefixes = 'Webkit Moz O ms',
+
+ cssomPrefixes = omPrefixes.split(' '),
+
+ domPrefixes = omPrefixes.toLowerCase().split(' '),
+ /*>>domprefixes*/
+
+ /*>>ns*/
+ ns = {'svg': 'http://www.w3.org/2000/svg'},
+ /*>>ns*/
+
+ tests = {},
+ inputs = {},
+ attrs = {},
+
+ classes = [],
+
+ slice = classes.slice,
+
+ featureName, // used in testing loop
+
+
+ /*>>teststyles*/
+ // Inject element with style element and some CSS rules
+ injectElementWithStyles = function( rule, callback, nodes, testnames ) {
+
+ var style, ret, node, docOverflow,
+ div = document.createElement('div'),
+ // After page load injecting a fake body doesn't work so check if body exists
+ body = document.body,
+ // IE6 and 7 won't return offsetWidth or offsetHeight unless it's in the body element, so we fake it.
+ fakeBody = body || document.createElement('body');
+
+ if ( parseInt(nodes, 10) ) {
+ // In order not to give false positives we create a node for each test
+ // This also allows the method to scale for unspecified uses
+ while ( nodes-- ) {
+ node = document.createElement('div');
+ node.id = testnames ? testnames[nodes] : mod + (nodes + 1);
+ div.appendChild(node);
+ }
+ }
+
+ // <style> elements in IE6-9 are considered 'NoScope' elements and therefore will be removed
+ // when injected with innerHTML. To get around this you need to prepend the 'NoScope' element
+ // with a 'scoped' element, in our case the soft-hyphen entity as it won't mess with our measurements.
+ // msdn.microsoft.com/en-us/library/ms533897%28VS.85%29.aspx
+ // Documents served as xml will throw if using ­ so use xml friendly encoded version. See issue #277
+ style = ['­','<style id="s', mod, '">', rule, '</style>'].join('');
+ div.id = mod;
+ // IE6 will false positive on some tests due to the style element inside the test div somehow interfering offsetHeight, so insert it into body or fakebody.
+ // Opera will act all quirky when injecting elements in documentElement when page is served as xml, needs fakebody too. #270
+ (body ? div : fakeBody).innerHTML += style;
+ fakeBody.appendChild(div);
+ if ( !body ) {
+ //avoid crashing IE8, if background image is used
+ fakeBody.style.background = '';
+ //Safari 5.13/5.1.4 OSX stops loading if ::-webkit-scrollbar is used and scrollbars are visible
+ fakeBody.style.overflow = 'hidden';
+ docOverflow = docElement.style.overflow;
+ docElement.style.overflow = 'hidden';
+ docElement.appendChild(fakeBody);
+ }
+
+ ret = callback(div, rule);
+ // If this is done after page load we don't want to remove the body so check if body exists
+ if ( !body ) {
+ fakeBody.parentNode.removeChild(fakeBody);
+ docElement.style.overflow = docOverflow;
+ } else {
+ div.parentNode.removeChild(div);
+ }
+
+ return !!ret;
+
+ },
+ /*>>teststyles*/
+
+ /*>>mq*/
+ // adapted from matchMedia polyfill
+ // by Scott Jehl and Paul Irish
+ // gist.github.com/786768
+ testMediaQuery = function( mq ) {
+
+ var matchMedia = window.matchMedia || window.msMatchMedia;
+ if ( matchMedia ) {
+ return matchMedia(mq) && matchMedia(mq).matches || false;
+ }
+
+ var bool;
+
+ injectElementWithStyles('@media ' + mq + ' { #' + mod + ' { position: absolute; } }', function( node ) {
+ bool = (window.getComputedStyle ?
+ getComputedStyle(node, null) :
+ node.currentStyle)['position'] == 'absolute';
+ });
+
+ return bool;
+
+ },
+ /*>>mq*/
+
+
+ /*>>hasevent*/
+ //
+ // isEventSupported determines if a given element supports the given event
+ // kangax.github.com/iseventsupported/
+ //
+ // The following results are known incorrects:
+ // Modernizr.hasEvent("webkitTransitionEnd", elem) // false negative
+ // Modernizr.hasEvent("textInput") // in Webkit. github.com/Modernizr/Modernizr/issues/333
+ // ...
+ isEventSupported = (function() {
+
+ var TAGNAMES = {
+ 'select': 'input', 'change': 'input',
+ 'submit': 'form', 'reset': 'form',
+ 'error': 'img', 'load': 'img', 'abort': 'img'
+ };
+
+ function isEventSupported( eventName, element ) {
+
+ element = element || document.createElement(TAGNAMES[eventName] || 'div');
+ eventName = 'on' + eventName;
+
+ // When using `setAttribute`, IE skips "unload", WebKit skips "unload" and "resize", whereas `in` "catches" those
+ var isSupported = eventName in element;
+
+ if ( !isSupported ) {
+ // If it has no `setAttribute` (i.e. doesn't implement Node interface), try generic element
+ if ( !element.setAttribute ) {
+ element = document.createElement('div');
+ }
+ if ( element.setAttribute && element.removeAttribute ) {
+ element.setAttribute(eventName, '');
+ isSupported = is(element[eventName], 'function');
+
+ // If property was created, "remove it" (by setting value to `undefined`)
+ if ( !is(element[eventName], 'undefined') ) {
+ element[eventName] = undefined;
+ }
+ element.removeAttribute(eventName);
+ }
+ }
+
+ element = null;
+ return isSupported;
+ }
+ return isEventSupported;
+ })(),
+ /*>>hasevent*/
+
+ // TODO :: Add flag for hasownprop ? didn't last time
+
+ // hasOwnProperty shim by kangax needed for Safari 2.0 support
+ _hasOwnProperty = ({}).hasOwnProperty, hasOwnProp;
+
+ if ( !is(_hasOwnProperty, 'undefined') && !is(_hasOwnProperty.call, 'undefined') ) {
+ hasOwnProp = function (object, property) {
+ return _hasOwnProperty.call(object, property);
+ };
+ }
+ else {
+ hasOwnProp = function (object, property) { /* yes, this can give false positives/negatives, but most of the time we don't care about those */
+ return ((property in object) && is(object.constructor.prototype[property], 'undefined'));
+ };
+ }
+
+ // Adapted from ES5-shim https://github.com/kriskowal/es5-shim/blob/master/es5-shim.js
+ // es5.github.com/#x15.3.4.5
+
+ if (!Function.prototype.bind) {
+ Function.prototype.bind = function bind(that) {
+
+ var target = this;
+
+ if (typeof target != "function") {
+ throw new TypeError();
+ }
+
+ var args = slice.call(arguments, 1),
+ bound = function () {
+
+ if (this instanceof bound) {
+
+ var F = function(){};
+ F.prototype = target.prototype;
+ var self = new F();
+
+ var result = target.apply(
+ self,
+ args.concat(slice.call(arguments))
+ );
+ if (Object(result) === result) {
+ return result;
+ }
+ return self;
+
+ } else {
+
+ return target.apply(
+ that,
+ args.concat(slice.call(arguments))
+ );
+
+ }
+
+ };
+
+ return bound;
+ };
+ }
+
+ /**
+ * setCss applies given styles to the Modernizr DOM node.
+ */
+ function setCss( str ) {
+ mStyle.cssText = str;
+ }
+
+ /**
+ * setCssAll extrapolates all vendor-specific css strings.
+ */
+ function setCssAll( str1, str2 ) {
+ return setCss(prefixes.join(str1 + ';') + ( str2 || '' ));
+ }
+
+ /**
+ * is returns a boolean for if typeof obj is exactly type.
+ */
+ function is( obj, type ) {
+ return typeof obj === type;
+ }
+
+ /**
+ * contains returns a boolean for if substr is found within str.
+ */
+ function contains( str, substr ) {
+ return !!~('' + str).indexOf(substr);
+ }
+
+ /*>>testprop*/
+
+ // testProps is a generic CSS / DOM property test.
+
+ // In testing support for a given CSS property, it's legit to test:
+ // `elem.style[styleName] !== undefined`
+ // If the property is supported it will return an empty string,
+ // if unsupported it will return undefined.
+
+ // We'll take advantage of this quick test and skip setting a style
+ // on our modernizr element, but instead just testing undefined vs
+ // empty string.
+
+ // Because the testing of the CSS property names (with "-", as
+ // opposed to the camelCase DOM properties) is non-portable and
+ // non-standard but works in WebKit and IE (but not Gecko or Opera),
+ // we explicitly reject properties with dashes so that authors
+ // developing in WebKit or IE first don't end up with
+ // browser-specific content by accident.
+
+ function testProps( props, prefixed ) {
+ for ( var i in props ) {
+ var prop = props[i];
+ if ( !contains(prop, "-") && mStyle[prop] !== undefined ) {
+ return prefixed == 'pfx' ? prop : true;
+ }
+ }
+ return false;
+ }
+ /*>>testprop*/
+
+ // TODO :: add testDOMProps
+ /**
+ * testDOMProps is a generic DOM property test; if a browser supports
+ * a certain property, it won't return undefined for it.
+ */
+ function testDOMProps( props, obj, elem ) {
+ for ( var i in props ) {
+ var item = obj[props[i]];
+ if ( item !== undefined) {
+
+ // return the property name as a string
+ if (elem === false) return props[i];
+
+ // let's bind a function
+ if (is(item, 'function')){
+ // default to autobind unless override
+ return item.bind(elem || obj);
+ }
+
+ // return the unbound function or obj or value
+ return item;
+ }
+ }
+ return false;
+ }
+
+ /*>>testallprops*/
+ /**
+ * testPropsAll tests a list of DOM properties we want to check against.
+ * We specify literally ALL possible (known and/or likely) properties on
+ * the element including the non-vendor prefixed one, for forward-
+ * compatibility.
+ */
+ function testPropsAll( prop, prefixed, elem ) {
+
+ var ucProp = prop.charAt(0).toUpperCase() + prop.slice(1),
+ props = (prop + ' ' + cssomPrefixes.join(ucProp + ' ') + ucProp).split(' ');
+
+ // did they call .prefixed('boxSizing') or are we just testing a prop?
+ if(is(prefixed, "string") || is(prefixed, "undefined")) {
+ return testProps(props, prefixed);
+
+ // otherwise, they called .prefixed('requestAnimationFrame', window[, elem])
+ } else {
+ props = (prop + ' ' + (domPrefixes).join(ucProp + ' ') + ucProp).split(' ');
+ return testDOMProps(props, prefixed, elem);
+ }
+ }
+ /*>>testallprops*/
+
+
+ /**
+ * Tests
+ * -----
+ */
+
+ // The *new* flexbox
+ // dev.w3.org/csswg/css3-flexbox
+
+ tests['flexbox'] = function() {
+ return testPropsAll('flexWrap');
+ };
+
+ // The *old* flexbox
+ // www.w3.org/TR/2009/WD-css3-flexbox-20090723/
+
+ tests['flexboxlegacy'] = function() {
+ return testPropsAll('boxDirection');
+ };
+
+ // On the S60 and BB Storm, getContext exists, but always returns undefined
+ // so we actually have to call getContext() to verify
+ // github.com/Modernizr/Modernizr/issues/issue/97/
+
+ tests['canvas'] = function() {
+ var elem = document.createElement('canvas');
+ return !!(elem.getContext && elem.getContext('2d'));
+ };
+
+ tests['canvastext'] = function() {
+ return !!(Modernizr['canvas'] && is(document.createElement('canvas').getContext('2d').fillText, 'function'));
+ };
+
+ // webk.it/70117 is tracking a legit WebGL feature detect proposal
+
+ // We do a soft detect which may false positive in order to avoid
+ // an expensive context creation: bugzil.la/732441
+
+ tests['webgl'] = function() {
+ return !!window.WebGLRenderingContext;
+ };
+
+ /*
+ * The Modernizr.touch test only indicates if the browser supports
+ * touch events, which does not necessarily reflect a touchscreen
+ * device, as evidenced by tablets running Windows 7 or, alas,
+ * the Palm Pre / WebOS (touch) phones.
+ *
+ * Additionally, Chrome (desktop) used to lie about its support on this,
+ * but that has since been rectified: crbug.com/36415
+ *
+ * We also test for Firefox 4 Multitouch Support.
+ *
+ * For more info, see: modernizr.github.com/Modernizr/touch.html
+ */
+
+ tests['touch'] = function() {
+ var bool;
+
+ if(('ontouchstart' in window) || window.DocumentTouch && document instanceof DocumentTouch) {
+ bool = true;
+ } else {
+ injectElementWithStyles(['@media (',prefixes.join('touch-enabled),('),mod,')','{#modernizr{top:9px;position:absolute}}'].join(''), function( node ) {
+ bool = node.offsetTop === 9;
+ });
+ }
+
+ return bool;
+ };
+
+
+ // geolocation is often considered a trivial feature detect...
+ // Turns out, it's quite tricky to get right:
+ //
+ // Using !!navigator.geolocation does two things we don't want. It:
+ // 1. Leaks memory in IE9: github.com/Modernizr/Modernizr/issues/513
+ // 2. Disables page caching in WebKit: webk.it/43956
+ //
+ // Meanwhile, in Firefox < 8, an about:config setting could expose
+ // a false positive that would throw an exception: bugzil.la/688158
+
+ tests['geolocation'] = function() {
+ return 'geolocation' in navigator;
+ };
+
+
+ tests['postmessage'] = function() {
+ return !!window.postMessage;
+ };
+
+
+ // Chrome incognito mode used to throw an exception when using openDatabase
+ // It doesn't anymore.
+ tests['websqldatabase'] = function() {
+ return !!window.openDatabase;
+ };
+
+ // Vendors had inconsistent prefixing with the experimental Indexed DB:
+ // - Webkit's implementation is accessible through webkitIndexedDB
+ // - Firefox shipped moz_indexedDB before FF4b9, but since then has been mozIndexedDB
+ // For speed, we don't test the legacy (and beta-only) indexedDB
+ tests['indexedDB'] = function() {
+ return !!testPropsAll("indexedDB", window);
+ };
+
+ // documentMode logic from YUI to filter out IE8 Compat Mode
+ // which false positives.
+ tests['hashchange'] = function() {
+ return isEventSupported('hashchange', window) && (document.documentMode === undefined || document.documentMode > 7);
+ };
+
+ // Per 1.6:
+ // This used to be Modernizr.historymanagement but the longer
+ // name has been deprecated in favor of a shorter and property-matching one.
+ // The old API is still available in 1.6, but as of 2.0 will throw a warning,
+ // and in the first release thereafter disappear entirely.
+ tests['history'] = function() {
+ return !!(window.history && history.pushState);
+ };
+
+ tests['draganddrop'] = function() {
+ var div = document.createElement('div');
+ return ('draggable' in div) || ('ondragstart' in div && 'ondrop' in div);
+ };
+
+ // FF3.6 was EOL'ed on 4/24/12, but the ESR version of FF10
+ // will be supported until FF19 (2/12/13), at which time, ESR becomes FF17.
+ // FF10 still uses prefixes, so check for it until then.
+ // for more ESR info, see: mozilla.org/en-US/firefox/organizations/faq/
+ tests['websockets'] = function() {
+ return 'WebSocket' in window || 'MozWebSocket' in window;
+ };
+
+
+ // css-tricks.com/rgba-browser-support/
+ tests['rgba'] = function() {
+ // Set an rgba() color and check the returned value
+
+ setCss('background-color:rgba(150,255,150,.5)');
+
+ return contains(mStyle.backgroundColor, 'rgba');
+ };
+
+ tests['hsla'] = function() {
+ // Same as rgba(), in fact, browsers re-map hsla() to rgba() internally,
+ // except IE9 who retains it as hsla
+
+ setCss('background-color:hsla(120,40%,100%,.5)');
+
+ return contains(mStyle.backgroundColor, 'rgba') || contains(mStyle.backgroundColor, 'hsla');
+ };
+
+ tests['multiplebgs'] = function() {
+ // Setting multiple images AND a color on the background shorthand property
+ // and then querying the style.background property value for the number of
+ // occurrences of "url(" is a reliable method for detecting ACTUAL support for this!
+
+ setCss('background:url(https://),url(https://),red url(https://)');
+
+ // If the UA supports multiple backgrounds, there should be three occurrences
+ // of the string "url(" in the return value for elemStyle.background
+
+ return (/(url\s*\(.*?){3}/).test(mStyle.background);
+ };
+
+
+
+ // this will false positive in Opera Mini
+ // github.com/Modernizr/Modernizr/issues/396
+
+ tests['backgroundsize'] = function() {
+ return testPropsAll('backgroundSize');
+ };
+
+ tests['borderimage'] = function() {
+ return testPropsAll('borderImage');
+ };
+
+
+ // Super comprehensive table about all the unique implementations of
+ // border-radius: muddledramblings.com/table-of-css3-border-radius-compliance
+
+ tests['borderradius'] = function() {
+ return testPropsAll('borderRadius');
+ };
+
+ // WebOS unfortunately false positives on this test.
+ tests['boxshadow'] = function() {
+ return testPropsAll('boxShadow');
+ };
+
+ // FF3.0 will false positive on this test
+ tests['textshadow'] = function() {
+ return document.createElement('div').style.textShadow === '';
+ };
+
+
+ tests['opacity'] = function() {
+ // Browsers that actually have CSS Opacity implemented have done so
+ // according to spec, which means their return values are within the
+ // range of [0.0,1.0] - including the leading zero.
+
+ setCssAll('opacity:.55');
+
+ // The non-literal . in this regex is intentional:
+ // German Chrome returns this value as 0,55
+ // github.com/Modernizr/Modernizr/issues/#issue/59/comment/516632
+ return (/^0.55$/).test(mStyle.opacity);
+ };
+
+
+ // Note, Android < 4 will pass this test, but can only animate
+ // a single property at a time
+ // goo.gl/v3V4Gp
+ tests['cssanimations'] = function() {
+ return testPropsAll('animationName');
+ };
+
+
+ tests['csscolumns'] = function() {
+ return testPropsAll('columnCount');
+ };
+
+
+ tests['cssgradients'] = function() {
+ /**
+ * For CSS Gradients syntax, please see:
+ * webkit.org/blog/175/introducing-css-gradients/
+ * developer.mozilla.org/en/CSS/-moz-linear-gradient
+ * developer.mozilla.org/en/CSS/-moz-radial-gradient
+ * dev.w3.org/csswg/css3-images/#gradients-
+ */
+
+ var str1 = 'background-image:',
+ str2 = 'gradient(linear,left top,right bottom,from(#9f9),to(white));',
+ str3 = 'linear-gradient(left top,#9f9, white);';
+
+ setCss(
+ // legacy webkit syntax (FIXME: remove when syntax not in use anymore)
+ (str1 + '-webkit- '.split(' ').join(str2 + str1) +
+ // standard syntax // trailing 'background-image:'
+ prefixes.join(str3 + str1)).slice(0, -str1.length)
+ );
+
+ return contains(mStyle.backgroundImage, 'gradient');
+ };
+
+
+ tests['cssreflections'] = function() {
+ return testPropsAll('boxReflect');
+ };
+
+
+ tests['csstransforms'] = function() {
+ return !!testPropsAll('transform');
+ };
+
+
+ tests['csstransforms3d'] = function() {
+
+ var ret = !!testPropsAll('perspective');
+
+ // Webkit's 3D transforms are passed off to the browser's own graphics renderer.
+ // It works fine in Safari on Leopard and Snow Leopard, but not in Chrome in
+ // some conditions. As a result, Webkit typically recognizes the syntax but
+ // will sometimes throw a false positive, thus we must do a more thorough check:
+ if ( ret && 'webkitPerspective' in docElement.style ) {
+
+ // Webkit allows this media query to succeed only if the feature is enabled.
+ // `@media (transform-3d),(-webkit-transform-3d){ ... }`
+ injectElementWithStyles('@media (transform-3d),(-webkit-transform-3d){#modernizr{left:9px;position:absolute;height:3px;}}', function( node, rule ) {
+ ret = node.offsetLeft === 9 && node.offsetHeight === 3;
+ });
+ }
+ return ret;
+ };
+
+
+ tests['csstransitions'] = function() {
+ return testPropsAll('transition');
+ };
+
+
+ /*>>fontface*/
+ // @font-face detection routine by Diego Perini
+ // javascript.nwbox.com/CSSSupport/
+
+ // false positives:
+ // WebOS github.com/Modernizr/Modernizr/issues/342
+ // WP7 github.com/Modernizr/Modernizr/issues/538
+ tests['fontface'] = function() {
+ var bool;
+
+ injectElementWithStyles('@font-face {font-family:"font";src:url("https://")}', function( node, rule ) {
+ var style = document.getElementById('smodernizr'),
+ sheet = style.sheet || style.styleSheet,
+ cssText = sheet ? (sheet.cssRules && sheet.cssRules[0] ? sheet.cssRules[0].cssText : sheet.cssText || '') : '';
+
+ bool = /src/i.test(cssText) && cssText.indexOf(rule.split(' ')[0]) === 0;
+ });
+
+ return bool;
+ };
+ /*>>fontface*/
+
+ // CSS generated content detection
+ tests['generatedcontent'] = function() {
+ var bool;
+
+ injectElementWithStyles(['#',mod,'{font:0/0 a}#',mod,':after{content:"',smile,'";visibility:hidden;font:3px/1 a}'].join(''), function( node ) {
+ bool = node.offsetHeight >= 3;
+ });
+
+ return bool;
+ };
+
+
+
+ // These tests evaluate support of the video/audio elements, as well as
+ // testing what types of content they support.
+ //
+ // We're using the Boolean constructor here, so that we can extend the value
+ // e.g. Modernizr.video // true
+ // Modernizr.video.ogg // 'probably'
+ //
+ // Codec values from : github.com/NielsLeenheer/html5test/blob/9106a8/index.html#L845
+ // thx to NielsLeenheer and zcorpan
+
+ // Note: in some older browsers, "no" was a return value instead of empty string.
+ // It was live in FF3.5.0 and 3.5.1, but fixed in 3.5.2
+ // It was also live in Safari 4.0.0 - 4.0.4, but fixed in 4.0.5
+
+ tests['video'] = function() {
+ var elem = document.createElement('video'),
+ bool = false;
+
+ // IE9 Running on Windows Server SKU can cause an exception to be thrown, bug #224
+ try {
+ if ( bool = !!elem.canPlayType ) {
+ bool = new Boolean(bool);
+ bool.ogg = elem.canPlayType('video/ogg; codecs="theora"') .replace(/^no$/,'');
+
+ // Without QuickTime, this value will be `undefined`. github.com/Modernizr/Modernizr/issues/546
+ bool.h264 = elem.canPlayType('video/mp4; codecs="avc1.42E01E"') .replace(/^no$/,'');
+
+ bool.webm = elem.canPlayType('video/webm; codecs="vp8, vorbis"').replace(/^no$/,'');
+ }
+
+ } catch(e) { }
+
+ return bool;
+ };
+
+ tests['audio'] = function() {
+ var elem = document.createElement('audio'),
+ bool = false;
+
+ try {
+ if ( bool = !!elem.canPlayType ) {
+ bool = new Boolean(bool);
+ bool.ogg = elem.canPlayType('audio/ogg; codecs="vorbis"').replace(/^no$/,'');
+ bool.mp3 = elem.canPlayType('audio/mpeg;') .replace(/^no$/,'');
+
+ // Mimetypes accepted:
+ // developer.mozilla.org/En/Media_formats_supported_by_the_audio_and_video_elements
+ // bit.ly/iphoneoscodecs
+ bool.wav = elem.canPlayType('audio/wav; codecs="1"') .replace(/^no$/,'');
+ bool.m4a = ( elem.canPlayType('audio/x-m4a;') ||
+ elem.canPlayType('audio/aac;')) .replace(/^no$/,'');
+ }
+ } catch(e) { }
+
+ return bool;
+ };
+
+
+ // In FF4, if disabled, window.localStorage should === null.
+
+ // Normally, we could not test that directly and need to do a
+ // `('localStorage' in window) && ` test first because otherwise Firefox will
+ // throw bugzil.la/365772 if cookies are disabled
+
+ // Also in iOS5 Private Browsing mode, attempting to use localStorage.setItem
+ // will throw the exception:
+ // QUOTA_EXCEEDED_ERRROR DOM Exception 22.
+ // Peculiarly, getItem and removeItem calls do not throw.
+
+ // Because we are forced to try/catch this, we'll go aggressive.
+
+ // Just FWIW: IE8 Compat mode supports these features completely:
+ // www.quirksmode.org/dom/html5.html
+ // But IE8 doesn't support either with local files
+
+ tests['localstorage'] = function() {
+ try {
+ localStorage.setItem(mod, mod);
+ localStorage.removeItem(mod);
+ return true;
+ } catch(e) {
+ return false;
+ }
+ };
+
+ tests['sessionstorage'] = function() {
+ try {
+ sessionStorage.setItem(mod, mod);
+ sessionStorage.removeItem(mod);
+ return true;
+ } catch(e) {
+ return false;
+ }
+ };
+
+
+ tests['webworkers'] = function() {
+ return !!window.Worker;
+ };
+
+
+ tests['applicationcache'] = function() {
+ return !!window.applicationCache;
+ };
+
+
+ // Thanks to Erik Dahlstrom
+ tests['svg'] = function() {
+ return !!document.createElementNS && !!document.createElementNS(ns.svg, 'svg').createSVGRect;
+ };
+
+ // specifically for SVG inline in HTML, not within XHTML
+ // test page: paulirish.com/demo/inline-svg
+ tests['inlinesvg'] = function() {
+ var div = document.createElement('div');
+ div.innerHTML = '<svg/>';
+ return (div.firstChild && div.firstChild.namespaceURI) == ns.svg;
+ };
+
+ // SVG SMIL animation
+ tests['smil'] = function() {
+ return !!document.createElementNS && /SVGAnimate/.test(toString.call(document.createElementNS(ns.svg, 'animate')));
+ };
+
+ // This test is only for clip paths in SVG proper, not clip paths on HTML content
+ // demo: srufaculty.sru.edu/david.dailey/svg/newstuff/clipPath4.svg
+
+ // However read the comments to dig into applying SVG clippaths to HTML content here:
+ // github.com/Modernizr/Modernizr/issues/213#issuecomment-1149491
+ tests['svgclippaths'] = function() {
+ return !!document.createElementNS && /SVGClipPath/.test(toString.call(document.createElementNS(ns.svg, 'clipPath')));
+ };
+
+ /*>>webforms*/
+ // input features and input types go directly onto the ret object, bypassing the tests loop.
+ // Hold this guy to execute in a moment.
+ function webforms() {
+ /*>>input*/
+ // Run through HTML5's new input attributes to see if the UA understands any.
+ // We're using f which is the <input> element created early on
+ // Mike Taylr has created a comprehensive resource for testing these attributes
+ // when applied to all input types:
+ // miketaylr.com/code/input-type-attr.html
+ // spec: www.whatwg.org/specs/web-apps/current-work/multipage/the-input-element.html#input-type-attr-summary
+
+ // Only input placeholder is tested while textarea's placeholder is not.
+ // Currently Safari 4 and Opera 11 have support only for the input placeholder
+ // Both tests are available in feature-detects/forms-placeholder.js
+ Modernizr['input'] = (function( props ) {
+ for ( var i = 0, len = props.length; i < len; i++ ) {
+ attrs[ props[i] ] = !!(props[i] in inputElem);
+ }
+ if (attrs.list){
+ // safari false positive's on datalist: webk.it/74252
+ // see also github.com/Modernizr/Modernizr/issues/146
+ attrs.list = !!(document.createElement('datalist') && window.HTMLDataListElement);
+ }
+ return attrs;
+ })('autocomplete autofocus list placeholder max min multiple pattern required step'.split(' '));
+ /*>>input*/
+
+ /*>>inputtypes*/
+ // Run through HTML5's new input types to see if the UA understands any.
+ // This is put behind the tests runloop because it doesn't return a
+ // true/false like all the other tests; instead, it returns an object
+ // containing each input type with its corresponding true/false value
+
+ // Big thanks to @miketaylr for the html5 forms expertise. miketaylr.com/
+ Modernizr['inputtypes'] = (function(props) {
+
+ for ( var i = 0, bool, inputElemType, defaultView, len = props.length; i < len; i++ ) {
+
+ inputElem.setAttribute('type', inputElemType = props[i]);
+ bool = inputElem.type !== 'text';
+
+ // We first check to see if the type we give it sticks..
+ // If the type does, we feed it a textual value, which shouldn't be valid.
+ // If the value doesn't stick, we know there's input sanitization which infers a custom UI
+ if ( bool ) {
+
+ inputElem.value = smile;
+ inputElem.style.cssText = 'position:absolute;visibility:hidden;';
+
+ if ( /^range$/.test(inputElemType) && inputElem.style.WebkitAppearance !== undefined ) {
+
+ docElement.appendChild(inputElem);
+ defaultView = document.defaultView;
+
+ // Safari 2-4 allows the smiley as a value, despite making a slider
+ bool = defaultView.getComputedStyle &&
+ defaultView.getComputedStyle(inputElem, null).WebkitAppearance !== 'textfield' &&
+ // Mobile android web browser has false positive, so must
+ // check the height to see if the widget is actually there.
+ (inputElem.offsetHeight !== 0);
+
+ docElement.removeChild(inputElem);
+
+ } else if ( /^(search|tel)$/.test(inputElemType) ){
+ // Spec doesn't define any special parsing or detectable UI
+ // behaviors so we pass these through as true
+
+ // Interestingly, opera fails the earlier test, so it doesn't
+ // even make it here.
+
+ } else if ( /^(url|email)$/.test(inputElemType) ) {
+ // Real url and email support comes with prebaked validation.
+ bool = inputElem.checkValidity && inputElem.checkValidity() === false;
+
+ } else {
+ // If the upgraded input compontent rejects the :) text, we got a winner
+ bool = inputElem.value != smile;
+ }
+ }
+
+ inputs[ props[i] ] = !!bool;
+ }
+ return inputs;
+ })('search tel url email datetime date month week time datetime-local number range color'.split(' '));
+ /*>>inputtypes*/
+ }
+ /*>>webforms*/
+
+
+ // End of test definitions
+ // -----------------------
+
+
+
+ // Run through all tests and detect their support in the current UA.
+ // todo: hypothetically we could be doing an array of tests and use a basic loop here.
+ for ( var feature in tests ) {
+ if ( hasOwnProp(tests, feature) ) {
+ // run the test, throw the return value into the Modernizr,
+ // then based on that boolean, define an appropriate className
+ // and push it into an array of classes we'll join later.
+ featureName = feature.toLowerCase();
+ Modernizr[featureName] = tests[feature]();
+
+ classes.push((Modernizr[featureName] ? '' : 'no-') + featureName);
+ }
+ }
+
+ /*>>webforms*/
+ // input tests need to run.
+ Modernizr.input || webforms();
+ /*>>webforms*/
+
+
+ /**
+ * addTest allows the user to define their own feature tests
+ * the result will be added onto the Modernizr object,
+ * as well as an appropriate className set on the html element
+ *
+ * @param feature - String naming the feature
+ * @param test - Function returning true if feature is supported, false if not
+ */
+ Modernizr.addTest = function ( feature, test ) {
+ if ( typeof feature == 'object' ) {
+ for ( var key in feature ) {
+ if ( hasOwnProp( feature, key ) ) {
+ Modernizr.addTest( key, feature[ key ] );
+ }
+ }
+ } else {
+
+ feature = feature.toLowerCase();
+
+ if ( Modernizr[feature] !== undefined ) {
+ // we're going to quit if you're trying to overwrite an existing test
+ // if we were to allow it, we'd do this:
+ // var re = new RegExp("\\b(no-)?" + feature + "\\b");
+ // docElement.className = docElement.className.replace( re, '' );
+ // but, no rly, stuff 'em.
+ return Modernizr;
+ }
+
+ test = typeof test == 'function' ? test() : test;
+
+ if (typeof enableClasses !== "undefined" && enableClasses) {
+ docElement.className += ' ' + (test ? '' : 'no-') + feature;
+ }
+ Modernizr[feature] = test;
+
+ }
+
+ return Modernizr; // allow chaining.
+ };
+
+
+ // Reset modElem.cssText to nothing to reduce memory footprint.
+ setCss('');
+ modElem = inputElem = null;
+
+ /*>>shiv*/
+ /**
+ * @preserve HTML5 Shiv prev3.7.1 | @afarkas @jdalton @jon_neal @rem | MIT/GPL2 Licensed
+ */
+ ;(function(window, document) {
+ /*jshint evil:true */
+ /** version */
+ var version = '3.7.0';
+
+ /** Preset options */
+ var options = window.html5 || {};
+
+ /** Used to skip problem elements */
+ var reSkip = /^<|^(?:button|map|select|textarea|object|iframe|option|optgroup)$/i;
+
+ /** Not all elements can be cloned in IE **/
+ var saveClones = /^(?:a|b|code|div|fieldset|h1|h2|h3|h4|h5|h6|i|label|li|ol|p|q|span|strong|style|table|tbody|td|th|tr|ul)$/i;
+
+ /** Detect whether the browser supports default html5 styles */
+ var supportsHtml5Styles;
+
+ /** Name of the expando, to work with multiple documents or to re-shiv one document */
+ var expando = '_html5shiv';
+
+ /** The id for the the documents expando */
+ var expanID = 0;
+
+ /** Cached data for each document */
+ var expandoData = {};
+
+ /** Detect whether the browser supports unknown elements */
+ var supportsUnknownElements;
+
+ (function() {
+ try {
+ var a = document.createElement('a');
+ a.innerHTML = '<xyz></xyz>';
+ //if the hidden property is implemented we can assume, that the browser supports basic HTML5 Styles
+ supportsHtml5Styles = ('hidden' in a);
+
+ supportsUnknownElements = a.childNodes.length == 1 || (function() {
+ // assign a false positive if unable to shiv
+ (document.createElement)('a');
+ var frag = document.createDocumentFragment();
+ return (
+ typeof frag.cloneNode == 'undefined' ||
+ typeof frag.createDocumentFragment == 'undefined' ||
+ typeof frag.createElement == 'undefined'
+ );
+ }());
+ } catch(e) {
+ // assign a false positive if detection fails => unable to shiv
+ supportsHtml5Styles = true;
+ supportsUnknownElements = true;
+ }
+
+ }());
+
+ /*--------------------------------------------------------------------------*/
+
+ /**
+ * Creates a style sheet with the given CSS text and adds it to the document.
+ * @private
+ * @param {Document} ownerDocument The document.
+ * @param {String} cssText The CSS text.
+ * @returns {StyleSheet} The style element.
+ */
+ function addStyleSheet(ownerDocument, cssText) {
+ var p = ownerDocument.createElement('p'),
+ parent = ownerDocument.getElementsByTagName('head')[0] || ownerDocument.documentElement;
+
+ p.innerHTML = 'x<style>' + cssText + '</style>';
+ return parent.insertBefore(p.lastChild, parent.firstChild);
+ }
+
+ /**
+ * Returns the value of `html5.elements` as an array.
+ * @private
+ * @returns {Array} An array of shived element node names.
+ */
+ function getElements() {
+ var elements = html5.elements;
+ return typeof elements == 'string' ? elements.split(' ') : elements;
+ }
+
+ /**
+ * Returns the data associated to the given document
+ * @private
+ * @param {Document} ownerDocument The document.
+ * @returns {Object} An object of data.
+ */
+ function getExpandoData(ownerDocument) {
+ var data = expandoData[ownerDocument[expando]];
+ if (!data) {
+ data = {};
+ expanID++;
+ ownerDocument[expando] = expanID;
+ expandoData[expanID] = data;
+ }
+ return data;
+ }
+
+ /**
+ * returns a shived element for the given nodeName and document
+ * @memberOf html5
+ * @param {String} nodeName name of the element
+ * @param {Document} ownerDocument The context document.
+ * @returns {Object} The shived element.
+ */
+ function createElement(nodeName, ownerDocument, data){
+ if (!ownerDocument) {
+ ownerDocument = document;
+ }
+ if(supportsUnknownElements){
+ return ownerDocument.createElement(nodeName);
+ }
+ if (!data) {
+ data = getExpandoData(ownerDocument);
+ }
+ var node;
+
+ if (data.cache[nodeName]) {
+ node = data.cache[nodeName].cloneNode();
+ } else if (saveClones.test(nodeName)) {
+ node = (data.cache[nodeName] = data.createElem(nodeName)).cloneNode();
+ } else {
+ node = data.createElem(nodeName);
+ }
+
+ // Avoid adding some elements to fragments in IE < 9 because
+ // * Attributes like `name` or `type` cannot be set/changed once an element
+ // is inserted into a document/fragment
+ // * Link elements with `src` attributes that are inaccessible, as with
+ // a 403 response, will cause the tab/window to crash
+ // * Script elements appended to fragments will execute when their `src`
+ // or `text` property is set
+ return node.canHaveChildren && !reSkip.test(nodeName) && !node.tagUrn ? data.frag.appendChild(node) : node;
+ }
+
+ /**
+ * returns a shived DocumentFragment for the given document
+ * @memberOf html5
+ * @param {Document} ownerDocument The context document.
+ * @returns {Object} The shived DocumentFragment.
+ */
+ function createDocumentFragment(ownerDocument, data){
+ if (!ownerDocument) {
+ ownerDocument = document;
+ }
+ if(supportsUnknownElements){
+ return ownerDocument.createDocumentFragment();
+ }
+ data = data || getExpandoData(ownerDocument);
+ var clone = data.frag.cloneNode(),
+ i = 0,
+ elems = getElements(),
+ l = elems.length;
+ for(;i<l;i++){
+ clone.createElement(elems[i]);
+ }
+ return clone;
+ }
+
+ /**
+ * Shivs the `createElement` and `createDocumentFragment` methods of the document.
+ * @private
+ * @param {Document|DocumentFragment} ownerDocument The document.
+ * @param {Object} data of the document.
+ */
+ function shivMethods(ownerDocument, data) {
+ if (!data.cache) {
+ data.cache = {};
+ data.createElem = ownerDocument.createElement;
+ data.createFrag = ownerDocument.createDocumentFragment;
+ data.frag = data.createFrag();
+ }
+
+
+ ownerDocument.createElement = function(nodeName) {
+ //abort shiv
+ if (!html5.shivMethods) {
+ return data.createElem(nodeName);
+ }
+ return createElement(nodeName, ownerDocument, data);
+ };
+
+ ownerDocument.createDocumentFragment = Function('h,f', 'return function(){' +
+ 'var n=f.cloneNode(),c=n.createElement;' +
+ 'h.shivMethods&&(' +
+ // unroll the `createElement` calls
+ getElements().join().replace(/[\w\-]+/g, function(nodeName) {
+ data.createElem(nodeName);
+ data.frag.createElement(nodeName);
+ return 'c("' + nodeName + '")';
+ }) +
+ ');return n}'
+ )(html5, data.frag);
+ }
+
+ /*--------------------------------------------------------------------------*/
+
+ /**
+ * Shivs the given document.
+ * @memberOf html5
+ * @param {Document} ownerDocument The document to shiv.
+ * @returns {Document} The shived document.
+ */
+ function shivDocument(ownerDocument) {
+ if (!ownerDocument) {
+ ownerDocument = document;
+ }
+ var data = getExpandoData(ownerDocument);
+
+ if (html5.shivCSS && !supportsHtml5Styles && !data.hasCSS) {
+ data.hasCSS = !!addStyleSheet(ownerDocument,
+ // corrects block display not defined in IE6/7/8/9
+ 'article,aside,dialog,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}' +
+ // adds styling not present in IE6/7/8/9
+ 'mark{background:#FF0;color:#000}' +
+ // hides non-rendered elements
+ 'template{display:none}'
+ );
+ }
+ if (!supportsUnknownElements) {
+ shivMethods(ownerDocument, data);
+ }
+ return ownerDocument;
+ }
+
+ /*--------------------------------------------------------------------------*/
+
+ /**
+ * The `html5` object is exposed so that more elements can be shived and
+ * existing shiving can be detected on iframes.
+ * @type Object
+ * @example
+ *
+ * // options can be changed before the script is included
+ * html5 = { 'elements': 'mark section', 'shivCSS': false, 'shivMethods': false };
+ */
+ var html5 = {
+
+ /**
+ * An array or space separated string of node names of the elements to shiv.
+ * @memberOf html5
+ * @type Array|String
+ */
+ 'elements': options.elements || 'abbr article aside audio bdi canvas data datalist details dialog figcaption figure footer header hgroup main mark meter nav output progress section summary template time video',
+
+ /**
+ * current version of html5shiv
+ */
+ 'version': version,
+
+ /**
+ * A flag to indicate that the HTML5 style sheet should be inserted.
+ * @memberOf html5
+ * @type Boolean
+ */
+ 'shivCSS': (options.shivCSS !== false),
+
+ /**
+ * Is equal to true if a browser supports creating unknown/HTML5 elements
+ * @memberOf html5
+ * @type boolean
+ */
+ 'supportsUnknownElements': supportsUnknownElements,
+
+ /**
+ * A flag to indicate that the document's `createElement` and `createDocumentFragment`
+ * methods should be overwritten.
+ * @memberOf html5
+ * @type Boolean
+ */
+ 'shivMethods': (options.shivMethods !== false),
+
+ /**
+ * A string to describe the type of `html5` object ("default" or "default print").
+ * @memberOf html5
+ * @type String
+ */
+ 'type': 'default',
+
+ // shivs the document according to the specified `html5` object options
+ 'shivDocument': shivDocument,
+
+ //creates a shived element
+ createElement: createElement,
+
+ //creates a shived documentFragment
+ createDocumentFragment: createDocumentFragment
+ };
+
+ /*--------------------------------------------------------------------------*/
+
+ // expose html5
+ window.html5 = html5;
+
+ // shiv the document
+ shivDocument(document);
+
+ }(this, document));
+ /*>>shiv*/
+
+ // Assign private properties to the return object with prefix
+ Modernizr._version = version;
+
+ // expose these for the plugin API. Look in the source for how to join() them against your input
+ /*>>prefixes*/
+ Modernizr._prefixes = prefixes;
+ /*>>prefixes*/
+ /*>>domprefixes*/
+ Modernizr._domPrefixes = domPrefixes;
+ Modernizr._cssomPrefixes = cssomPrefixes;
+ /*>>domprefixes*/
+
+ /*>>mq*/
+ // Modernizr.mq tests a given media query, live against the current state of the window
+ // A few important notes:
+ // * If a browser does not support media queries at all (eg. oldIE) the mq() will always return false
+ // * A max-width or orientation query will be evaluated against the current state, which may change later.
+ // * You must specify values. Eg. If you are testing support for the min-width media query use:
+ // Modernizr.mq('(min-width:0)')
+ // usage:
+ // Modernizr.mq('only screen and (max-width:768)')
+ Modernizr.mq = testMediaQuery;
+ /*>>mq*/
+
+ /*>>hasevent*/
+ // Modernizr.hasEvent() detects support for a given event, with an optional element to test on
+ // Modernizr.hasEvent('gesturestart', elem)
+ Modernizr.hasEvent = isEventSupported;
+ /*>>hasevent*/
+
+ /*>>testprop*/
+ // Modernizr.testProp() investigates whether a given style property is recognized
+ // Note that the property names must be provided in the camelCase variant.
+ // Modernizr.testProp('pointerEvents')
+ Modernizr.testProp = function(prop){
+ return testProps([prop]);
+ };
+ /*>>testprop*/
+
+ /*>>testallprops*/
+ // Modernizr.testAllProps() investigates whether a given style property,
+ // or any of its vendor-prefixed variants, is recognized
+ // Note that the property names must be provided in the camelCase variant.
+ // Modernizr.testAllProps('boxSizing')
+ Modernizr.testAllProps = testPropsAll;
+ /*>>testallprops*/
+
+
+ /*>>teststyles*/
+ // Modernizr.testStyles() allows you to add custom styles to the document and test an element afterwards
+ // Modernizr.testStyles('#modernizr { position:absolute }', function(elem, rule){ ... })
+ Modernizr.testStyles = injectElementWithStyles;
+ /*>>teststyles*/
+
+
+ /*>>prefixed*/
+ // Modernizr.prefixed() returns the prefixed or nonprefixed property name variant of your input
+ // Modernizr.prefixed('boxSizing') // 'MozBoxSizing'
+
+ // Properties must be passed as dom-style camelcase, rather than `box-sizing` hypentated style.
+ // Return values will also be the camelCase variant, if you need to translate that to hypenated style use:
+ //
+ // str.replace(/([A-Z])/g, function(str,m1){ return '-' + m1.toLowerCase(); }).replace(/^ms-/,'-ms-');
+
+ // If you're trying to ascertain which transition end event to bind to, you might do something like...
+ //
+ // var transEndEventNames = {
+ // 'WebkitTransition' : 'webkitTransitionEnd',
+ // 'MozTransition' : 'transitionend',
+ // 'OTransition' : 'oTransitionEnd',
+ // 'msTransition' : 'MSTransitionEnd',
+ // 'transition' : 'transitionend'
+ // },
+ // transEndEventName = transEndEventNames[ Modernizr.prefixed('transition') ];
+
+ Modernizr.prefixed = function(prop, obj, elem){
+ if(!obj) {
+ return testPropsAll(prop, 'pfx');
+ } else {
+ // Testing DOM property e.g. Modernizr.prefixed('requestAnimationFrame', window) // 'mozRequestAnimationFrame'
+ return testPropsAll(prop, obj, elem);
+ }
+ };
+ /*>>prefixed*/
+
+
+ /*>>cssclasses*/
+ // Remove "no-js" class from <html> element, if it exists:
+ docElement.className = docElement.className.replace(/(^|\s)no-js(\s|$)/, '$1$2') +
+
+ // Add the new classes to the <html> element.
+ (enableClasses ? ' js ' + classes.join(' ') : '');
+ /*>>cssclasses*/
+
+ return Modernizr;
+
+})(this, this.document);
--- /dev/null
+window.Modernizr=function(a,b,c){function d(a){t.cssText=a}function e(a,b){return d(x.join(a+";")+(b||""))}function f(a,b){return typeof a===b}function g(a,b){return!!~(""+a).indexOf(b)}function h(a,b){for(var d in a){var e=a[d];if(!g(e,"-")&&t[e]!==c)return"pfx"!=b||e}return!1}function i(a,b,d){for(var e in a){var g=b[a[e]];if(g!==c)return d===!1?a[e]:f(g,"function")?g.bind(d||b):g}return!1}function j(a,b,c){var d=a.charAt(0).toUpperCase()+a.slice(1),e=(a+" "+z.join(d+" ")+d).split(" ");return f(b,"string")||f(b,"undefined")?h(e,b):(e=(a+" "+A.join(d+" ")+d).split(" "),i(e,b,c))}function k(){o.input=function(c){for(var d=0,e=c.length;d<e;d++)E[c[d]]=!!(c[d]in u);return E.list&&(E.list=!(!b.createElement("datalist")||!a.HTMLDataListElement)),E}("autocomplete autofocus list placeholder max min multiple pattern required step".split(" ")),o.inputtypes=function(a){for(var d,e,f,g=0,h=a.length;g<h;g++)u.setAttribute("type",e=a[g]),d="text"!==u.type,d&&(u.value=v,u.style.cssText="position:absolute;visibility:hidden;",/^range$/.test(e)&&u.style.WebkitAppearance!==c?(q.appendChild(u),f=b.defaultView,d=f.getComputedStyle&&"textfield"!==f.getComputedStyle(u,null).WebkitAppearance&&0!==u.offsetHeight,q.removeChild(u)):/^(search|tel)$/.test(e)||(d=/^(url|email)$/.test(e)?u.checkValidity&&u.checkValidity()===!1:u.value!=v)),D[a[g]]=!!d;return D}("search tel url email datetime date month week time datetime-local number range color".split(" "))}var l,m,n="2.8.3",o={},p=!0,q=b.documentElement,r="modernizr",s=b.createElement(r),t=s.style,u=b.createElement("input"),v=":)",w={}.toString,x=" -webkit- -moz- -o- -ms- ".split(" "),y="Webkit Moz O ms",z=y.split(" "),A=y.toLowerCase().split(" "),B={svg:"http://www.w3.org/2000/svg"},C={},D={},E={},F=[],G=F.slice,H=function(a,c,d,e){var f,g,h,i,j=b.createElement("div"),k=b.body,l=k||b.createElement("body");if(parseInt(d,10))for(;d--;)h=b.createElement("div"),h.id=e?e[d]:r+(d+1),j.appendChild(h);return f=["­",'<style id="s',r,'">',a,"</style>"].join(""),j.id=r,(k?j:l).innerHTML+=f,l.appendChild(j),k||(l.style.background="",l.style.overflow="hidden",i=q.style.overflow,q.style.overflow="hidden",q.appendChild(l)),g=c(j,a),k?j.parentNode.removeChild(j):(l.parentNode.removeChild(l),q.style.overflow=i),!!g},I=function(b){var c=a.matchMedia||a.msMatchMedia;if(c)return c(b)&&c(b).matches||!1;var d;return H("@media "+b+" { #"+r+" { position: absolute; } }",function(b){d="absolute"==(a.getComputedStyle?getComputedStyle(b,null):b.currentStyle).position}),d},J=function(){function a(a,e){e=e||b.createElement(d[a]||"div"),a="on"+a;var g=a in e;return g||(e.setAttribute||(e=b.createElement("div")),e.setAttribute&&e.removeAttribute&&(e.setAttribute(a,""),g=f(e[a],"function"),f(e[a],"undefined")||(e[a]=c),e.removeAttribute(a))),e=null,g}var d={select:"input",change:"input",submit:"form",reset:"form",error:"img",load:"img",abort:"img"};return a}(),K={}.hasOwnProperty;m=f(K,"undefined")||f(K.call,"undefined")?function(a,b){return b in a&&f(a.constructor.prototype[b],"undefined")}:function(a,b){return K.call(a,b)},Function.prototype.bind||(Function.prototype.bind=function(a){var b=this;if("function"!=typeof b)throw new TypeError;var c=G.call(arguments,1),d=function(){if(this instanceof d){var e=function(){};e.prototype=b.prototype;var f=new e,g=b.apply(f,c.concat(G.call(arguments)));return Object(g)===g?g:f}return b.apply(a,c.concat(G.call(arguments)))};return d}),C.flexbox=function(){return j("flexWrap")},C.flexboxlegacy=function(){return j("boxDirection")},C.canvas=function(){var a=b.createElement("canvas");return!(!a.getContext||!a.getContext("2d"))},C.canvastext=function(){return!(!o.canvas||!f(b.createElement("canvas").getContext("2d").fillText,"function"))},C.webgl=function(){return!!a.WebGLRenderingContext},C.touch=function(){var c;return"ontouchstart"in a||a.DocumentTouch&&b instanceof DocumentTouch?c=!0:H(["@media (",x.join("touch-enabled),("),r,")","{#modernizr{top:9px;position:absolute}}"].join(""),function(a){c=9===a.offsetTop}),c},C.geolocation=function(){return"geolocation"in navigator},C.postmessage=function(){return!!a.postMessage},C.websqldatabase=function(){return!!a.openDatabase},C.indexedDB=function(){return!!j("indexedDB",a)},C.hashchange=function(){return J("hashchange",a)&&(b.documentMode===c||b.documentMode>7)},C.history=function(){return!(!a.history||!history.pushState)},C.draganddrop=function(){var a=b.createElement("div");return"draggable"in a||"ondragstart"in a&&"ondrop"in a},C.websockets=function(){return"WebSocket"in a||"MozWebSocket"in a},C.rgba=function(){return d("background-color:rgba(150,255,150,.5)"),g(t.backgroundColor,"rgba")},C.hsla=function(){return d("background-color:hsla(120,40%,100%,.5)"),g(t.backgroundColor,"rgba")||g(t.backgroundColor,"hsla")},C.multiplebgs=function(){return d("background:url(https://),url(https://),red url(https://)"),/(url\s*\(.*?){3}/.test(t.background)},C.backgroundsize=function(){return j("backgroundSize")},C.borderimage=function(){return j("borderImage")},C.borderradius=function(){return j("borderRadius")},C.boxshadow=function(){return j("boxShadow")},C.textshadow=function(){return""===b.createElement("div").style.textShadow},C.opacity=function(){return e("opacity:.55"),/^0.55$/.test(t.opacity)},C.cssanimations=function(){return j("animationName")},C.csscolumns=function(){return j("columnCount")},C.cssgradients=function(){var a="background-image:";return d((a+"-webkit- ".split(" ").join("gradient(linear,left top,right bottom,from(#9f9),to(white));"+a)+x.join("linear-gradient(left top,#9f9, white);"+a)).slice(0,-a.length)),g(t.backgroundImage,"gradient")},C.cssreflections=function(){return j("boxReflect")},C.csstransforms=function(){return!!j("transform")},C.csstransforms3d=function(){var a=!!j("perspective");return a&&"webkitPerspective"in q.style&&H("@media (transform-3d),(-webkit-transform-3d){#modernizr{left:9px;position:absolute;height:3px;}}",function(b,c){a=9===b.offsetLeft&&3===b.offsetHeight}),a},C.csstransitions=function(){return j("transition")},C.fontface=function(){var a;return H('@font-face {font-family:"font";src:url("https://")}',function(c,d){var e=b.getElementById("smodernizr"),f=e.sheet||e.styleSheet,g=f?f.cssRules&&f.cssRules[0]?f.cssRules[0].cssText:f.cssText||"":"";a=/src/i.test(g)&&0===g.indexOf(d.split(" ")[0])}),a},C.generatedcontent=function(){var a;return H(["#",r,"{font:0/0 a}#",r,':after{content:"',v,'";visibility:hidden;font:3px/1 a}'].join(""),function(b){a=b.offsetHeight>=3}),a},C.video=function(){var a=b.createElement("video"),c=!1;try{(c=!!a.canPlayType)&&(c=new Boolean(c),c.ogg=a.canPlayType('video/ogg; codecs="theora"').replace(/^no$/,""),c.h264=a.canPlayType('video/mp4; codecs="avc1.42E01E"').replace(/^no$/,""),c.webm=a.canPlayType('video/webm; codecs="vp8, vorbis"').replace(/^no$/,""))}catch(a){}return c},C.audio=function(){var a=b.createElement("audio"),c=!1;try{(c=!!a.canPlayType)&&(c=new Boolean(c),c.ogg=a.canPlayType('audio/ogg; codecs="vorbis"').replace(/^no$/,""),c.mp3=a.canPlayType("audio/mpeg;").replace(/^no$/,""),c.wav=a.canPlayType('audio/wav; codecs="1"').replace(/^no$/,""),c.m4a=(a.canPlayType("audio/x-m4a;")||a.canPlayType("audio/aac;")).replace(/^no$/,""))}catch(a){}return c},C.localstorage=function(){try{return localStorage.setItem(r,r),localStorage.removeItem(r),!0}catch(a){return!1}},C.sessionstorage=function(){try{return sessionStorage.setItem(r,r),sessionStorage.removeItem(r),!0}catch(a){return!1}},C.webworkers=function(){return!!a.Worker},C.applicationcache=function(){return!!a.applicationCache},C.svg=function(){return!!b.createElementNS&&!!b.createElementNS(B.svg,"svg").createSVGRect},C.inlinesvg=function(){var a=b.createElement("div");return a.innerHTML="<svg/>",(a.firstChild&&a.firstChild.namespaceURI)==B.svg},C.smil=function(){return!!b.createElementNS&&/SVGAnimate/.test(w.call(b.createElementNS(B.svg,"animate")))},C.svgclippaths=function(){return!!b.createElementNS&&/SVGClipPath/.test(w.call(b.createElementNS(B.svg,"clipPath")))};for(var L in C)m(C,L)&&(l=L.toLowerCase(),o[l]=C[L](),F.push((o[l]?"":"no-")+l));return o.input||k(),o.addTest=function(a,b){if("object"==typeof a)for(var d in a)m(a,d)&&o.addTest(d,a[d]);else{if(a=a.toLowerCase(),o[a]!==c)return o;b="function"==typeof b?b():b,void 0!==p&&p&&(q.className+=" "+(b?"":"no-")+a),o[a]=b}return o},d(""),s=u=null,function(a,b){function c(a,b){var c=a.createElement("p"),d=a.getElementsByTagName("head")[0]||a.documentElement;return c.innerHTML="x<style>"+b+"</style>",d.insertBefore(c.lastChild,d.firstChild)}function d(){var a=s.elements;return"string"==typeof a?a.split(" "):a}function e(a){var b=r[a[p]];return b||(b={},q++,a[p]=q,r[q]=b),b}function f(a,c,d){if(c||(c=b),k)return c.createElement(a);d||(d=e(c));var f;return f=d.cache[a]?d.cache[a].cloneNode():o.test(a)?(d.cache[a]=d.createElem(a)).cloneNode():d.createElem(a),!f.canHaveChildren||n.test(a)||f.tagUrn?f:d.frag.appendChild(f)}function g(a,c){if(a||(a=b),k)return a.createDocumentFragment();c=c||e(a);for(var f=c.frag.cloneNode(),g=0,h=d(),i=h.length;g<i;g++)f.createElement(h[g]);return f}function h(a,b){b.cache||(b.cache={},b.createElem=a.createElement,b.createFrag=a.createDocumentFragment,b.frag=b.createFrag()),a.createElement=function(c){return s.shivMethods?f(c,a,b):b.createElem(c)},a.createDocumentFragment=Function("h,f","return function(){var n=f.cloneNode(),c=n.createElement;h.shivMethods&&("+d().join().replace(/[\w\-]+/g,function(a){return b.createElem(a),b.frag.createElement(a),'c("'+a+'")'})+");return n}")(s,b.frag)}function i(a){a||(a=b);var d=e(a);return!s.shivCSS||j||d.hasCSS||(d.hasCSS=!!c(a,"article,aside,dialog,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}mark{background:#FF0;color:#000}template{display:none}")),k||h(a,d),a}var j,k,l="3.7.0",m=a.html5||{},n=/^<|^(?:button|map|select|textarea|object|iframe|option|optgroup)$/i,o=/^(?:a|b|code|div|fieldset|h1|h2|h3|h4|h5|h6|i|label|li|ol|p|q|span|strong|style|table|tbody|td|th|tr|ul)$/i,p="_html5shiv",q=0,r={};!function(){try{var a=b.createElement("a");a.innerHTML="<xyz></xyz>",j="hidden"in a,k=1==a.childNodes.length||function(){b.createElement("a");var a=b.createDocumentFragment();return void 0===a.cloneNode||void 0===a.createDocumentFragment||void 0===a.createElement}()}catch(a){j=!0,k=!0}}();var s={elements:m.elements||"abbr article aside audio bdi canvas data datalist details dialog figcaption figure footer header hgroup main mark meter nav output progress section summary template time video",version:l,shivCSS:m.shivCSS!==!1,supportsUnknownElements:k,shivMethods:m.shivMethods!==!1,type:"default",shivDocument:i,createElement:f,createDocumentFragment:g};a.html5=s,i(b)}(this,b),o._version=n,o._prefixes=x,o._domPrefixes=A,o._cssomPrefixes=z,o.mq=I,o.hasEvent=J,o.testProp=function(a){return h([a])},o.testAllProps=j,o.testStyles=H,o.prefixed=function(a,b,c){return b?j(a,b,c):j(a,"pfx")},q.className=q.className.replace(/(^|\s)no-js(\s|$)/,"$1$2")+(p?" js "+F.join(" "):""),o}(this,this.document);
\ No newline at end of file
--- /dev/null
+(function(){var k=void 0,aa=encodeURIComponent,l=String,o=Math,ba="push",ca="cookie",p="charAt",q="indexOf",da="getTime",r="toString",t="window",v="length",w="document",x="split",y="location",ea="protocol",fa="href",z="substring",A="join",C="toLowerCase";var ga="_gat",ha="_gaq",ia="4.9.4",ja="_gaUserPrefs",ka="ioo",D="&",E="=",F="__utma=",H="__utmb=",la="__utmc=",ma="__utmk=",I="__utmv=",J="__utmz=",na="__utmx=",oa="GASO=";var pa=function(){var d=this,f=[],b="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_";d.set=function(b){f[b]=!0};d.Sc=function(){for(var d=[],e=0;e<f[v];e++)f[e]&&(d[o.floor(e/6)]^=1<<e%6);for(e=0;e<d[v];e++)d[e]=b[p](d[e]||0);return d[A]("")+"~"}},qa=new pa;function K(d){qa.set(d)};var ra=function(d,f){var b=this;b.window=d;b.document=f;b.setTimeout=function(b,e){setTimeout(b,e)};b.Jb=function(b){return navigator.userAgent[q](b)>=0};b.Xc=function(){return b.Jb("Firefox")&&![].reduce};b.Vc=function(){return L[t][ja]};b.Gc=function(){return L[t].external};b.Hc=function(){return L[t].performance||L[t].webkitPerformance};b.Ic=function(){return L[t].top==L[t]};b.Ya=function(b){var e=L[t]&&L[t].gaGlobal;if(b&&!e)e={},L[t].gaGlobal=e;return e};b.ec=function(b){L[w][y].href=b};b.qb=
+function(d){if(!d||!b.Jb("Firefox"))return d;for(var d=d.replace(/\n|\r/g," "),e=0,f=d[v];e<f;++e){var g=d.charCodeAt(e)&255;if(g==10||g==13)d=d[z](0,e)+"?"+d[z](e+1)}return d}},L=new ra(window,document);var sa=function(d){return function(f,b,h){d[f]=function(){K(b);return h.apply(d,arguments)};return h}},ta=function(d,f,b,h){d.addEventListener?d.addEventListener(f,b,!!h):d.attachEvent&&d.attachEvent("on"+f,b)},ua=function(d){return Object.prototype[r].call(Object(d))=="[object Array]"},M=function(d){return k==d||"-"==d||""==d},N=function(d,f,b){var h="-",e;!M(d)&&!M(f)&&!M(b)&&(e=d[q](f),e>-1&&(b=d[q](b,e),b<0&&(b=d[v]),h=d[z](e+f[q](E)+1,b)));return h},xa=function(d){var f=!1,b=0,h,e;if(!M(d)){f=
+!0;for(h=0;h<d[v];h++)e=d[p](h),b+="."==e?1:0,f=f&&b<=1&&(0==h&&"-"==e||".0123456789"[q](e)>-1)}return f},P=function(d,f){var b=aa;return b instanceof Function?f?encodeURI(d):b(d):(K(68),escape(d))},Q=function(d,f){var b=decodeURIComponent,h,d=d[x]("+")[A](" ");if(b instanceof Function)try{h=f?decodeURI(d):b(d)}catch(e){K(17),h=unescape(d)}else K(68),h=unescape(d);return h},R=function(d,f){return d[q](f)>-1};
+function ya(d){if(!d||""==d)return"";for(;d[p](0)[v]>0&&" \n\r\t"[q](d[p](0))>-1;)d=d[z](1);for(;d[p](d[v]-1)[v]>0&&" \n\r\t"[q](d[p](d[v]-1))>-1;)d=d[z](0,d[v]-1);return d}var T=function(d,f){d[ba]||K(94);d[d[v]]=f},za=function(d){var f=1,b=0,h;if(!M(d)){f=0;for(h=d[v]-1;h>=0;h--)b=d.charCodeAt(h),f=(f<<6&268435455)+b+(b<<14),b=f&266338304,f=b!=0?f^b>>21:f}return f},Aa=function(){return o.round(o.random()*2147483647)},Ba=function(){};var Ca=function(d,f){this.ib=d;this.jb=f},Da=function(){function d(b){for(var d=[],b=b[x](","),e,f=0;f<b[v];f++)e=b[f][x](":"),d[ba](new Ca(e[0],e[1]));return d}var f=this;f.Ca="utm_campaign";f.Da="utm_content";f.Ea="utm_id";f.Fa="utm_medium";f.Ga="utm_nooverride";f.Ha="utm_source";f.Ia="utm_term";f.Ja="gclid";f.vc="dclid";f.U=0;f.w=0;f.La=15768E6;f.Ma=18E5;f.s=63072E6;f.V=[];f.W=[];f.wc="cse";f.xc="q";f.Ta=50;f.J=d("daum:q,eniro:search_word,naver:query,pchome:q,images.google:q,google:q,yahoo:p,yahoo:q,msn:q,bing:q,aol:query,aol:encquery,aol:q,lycos:query,ask:q,altavista:q,netscape:query,cnn:query,about:terms,mamma:q,alltheweb:q,voila:rdata,virgilio:qs,live:q,baidu:wd,alice:qs,yandex:text,najdi:q,mama:query,seznam:q,search:q,wp:szukaj,onet:qt,szukacz:q,yam:k,kvasir:q,sesam:q,ozu:q,terra:query,mynet:q,ekolay:q,rambler:query,rambler:words");
+f.f="/";f.L=100;f.ga="/__utm.gif";f.la=1;f.ma=1;f.u="|";f.ka=1;f.Ka=1;f.Ua=1;f.b="auto";f.B=1;f.Wb=10;f.zc=10;f.Ac=0.2;f.o=k};var Ea=function(d){function f(a,c,b,j){var i="",d=0,i=N(a,"2"+c,";");if(!M(i)){a=i[q]("^"+b+".");if(a<0)return["",0];i=i[z](a+b[v]+2);i[q]("^")>0&&(i=i[x]("^")[0]);b=i[x](":");i=b[1];d=parseInt(b[0],10);!j&&d<e.m&&(i="")}M(i)&&(i="");return[i,d]}function b(a,c){return"^"+[[c,a[1]][A]("."),a[0]][A](":")}function h(a){var c=new Date,a=new Date(c[da]()+a);return"expires="+a.toGMTString()+"; "}var e=this,m=d;e.m=(new Date)[da]();var g=[F,H,la,J,I,na,oa];e.g=function(){var a=L[w][ca];return m.o?e.Nc(a,
+m.o):a};e.Nc=function(a,c){for(var b=[],j,i=0;i<g[v];i++)j=f(a,g[i],c)[0],M(j)||(b[b[v]]=g[i]+j+";");return b[A]("")};e.l=function(a,c,b){var j=b>0?h(b):"";m.o&&(c=e.Oc(L[w][ca],a,m.o,c,b),a="2"+a,j=b>0?h(m.s):"");a+=c;a=L.qb(a);a[v]>2E3&&(K(69),a=a[z](0,2E3));j=a+"; path="+m.f+"; "+j+e.hb();if(!V.pb())L[w].cookie=j};e.Oc=function(a,c,d,j,i){var g="",i=i||m.s,j=b([j,e.m+i*1],d),g=N(a,"2"+c,";");if(!M(g))return a=b(f(a,c,d,!0),d),g=g[x](a)[A](""),g=j+g;return j};e.hb=function(){return M(m.b)?"":"domain="+
+m.b+";"}};var Fa=function(d){function f(a){a=ua(a)?a[A]("."):"";return M(a)?"-":a}function b(a,c){var n=[],b;if(!M(a)&&(n=a[x]("."),c))for(b=0;b<n[v];b++)xa(n[b])||(n[b]="-");return n}function h(a,c,n){var b=i.I,j,d;for(j=0;j<b[v];j++)d=b[j][0],d+=M(c)?c:c+b[j][4],b[j][2](N(a,d,n))}var e,m,g,a,c,u,j,i=this,s,n=d;i.i=new Ea(d);i.Ba=function(){return k==s||s==i.K()};i.g=function(){return i.i.g()};i.ea=function(){return c?c:"-"};i.Pa=function(a){c=a};i.fa=function(a){s=xa(a)?a*1:"-"};i.da=function(){return f(u)};
+i.X=function(a){u=b(a)};i.yc=function(){i.i.l(I,"",-1)};i.Rb=function(){return s?s:"-"};i.hb=function(){return M(n.b)?"":"domain="+n.b+";"};i.ba=function(){return f(e)};i.Na=function(a){e=b(a,1)};i.z=function(){return f(m)};i.$=function(a){m=b(a,1)};i.ca=function(){return f(g)};i.Oa=function(a){g=b(a,1)};i.qa=function(){return f(a)};i.ra=function(c){a=b(c);for(c=0;c<a[v];c++)c<4&&!xa(a[c])&&(a[c]="-")};i.Fc=function(){return j};i.Dc=function(a){j=a};i.Qb=function(){e=[];m=[];g=[];a=[];c=k;u=[];s=
+k};i.K=function(){for(var a="",c=0;c<i.I[v];c++)a+=i.I[c][1]();return za(a)};i.Z=function(a){var c=i.g(),n=!1;c&&(h(c,a,";"),i.fa(l(i.K())),n=!0);return n};i.Sb=function(a){h(a,"",D);i.fa(N(a,ma,D))};i.Tb=function(){var a=i.I,c=[],n;for(n=0;n<a[v];n++)T(c,a[n][0]+a[n][1]());T(c,ma+i.K());return c[A](D)};i.Ub=function(a,c){var b=i.I,j=n.f;i.Z(a);n.f=c;for(var d=0;d<b[v];d++)if(!M(b[d][1]()))b[d][3]();n.f=j};i.Qa=function(){i.i.l(F,i.ba(),n.s)};i.aa=function(){i.i.l(H,i.z(),n.Ma)};i.Ra=function(){i.i.l(la,
+i.ca(),0)};i.sa=function(){i.i.l(J,i.qa(),n.La)};i.Sa=function(){i.i.l(na,i.ea(),n.s)};i.Y=function(){i.i.l(I,i.da(),n.s)};i.Ec=function(){i.i.l(oa,i.Fc(),0)};i.I=[[F,i.ba,i.Na,i.Qa,"."],[H,i.z,i.$,i.aa,""],[la,i.ca,i.Oa,i.Ra,""],[na,i.ea,i.Pa,i.Sa,""],[J,i.qa,i.ra,i.sa,"."],[I,i.da,i.X,i.Y,"."]]};var Ga="https:"==L[w][y][ea]?"https://ssl.google-analytics.com/":"http://www.google-analytics.com/",Ha=Ga+"p/__utm.gif",Ja=function(){var d=this;d.Bb=function(f,b,h,e,m){b[v]<=2036||m?d.Aa(f+"?"+b,e):b[v]<=8192?L.Xc()?d.Aa(f+"?"+h+"&err=ff2post&len="+b[v],e):d.fd(b,e):d.Aa(f+"?"+h+"&err=len&max=8192&len="+b[v],e)};d.Aa=function(d,b){var h=new Image(1,1);h.src=d;h.onload=function(){h.onload=null;(b||Ba)()}};d.fd=function(f,b){d.ed(f,b)||d.Ob(f,b)};d.ed=function(d,b){var h,e=L[t].XDomainRequest;if(e)h=
+new e,h.open("POST",Ha);else if(e=L[t].XMLHttpRequest)e=new e,"withCredentials"in e&&(h=e,h.open("POST",Ha,!0),h.setRequestHeader("Content-Type","text/plain"));if(h)return h.onreadystatechange=function(){h.readyState==4&&(b&&b(),h=null)},h.send(d),!0;return!1};d.Ob=function(f,b){var h=L[w];if(h.body){f=aa(f);try{var e=h.createElement('<iframe name="'+f+'"></iframe>')}catch(m){e=h.createElement("iframe"),e.name=f}e.height="0";e.width="0";e.style.display="none";e.style.visibility="hidden";var g=h[y],
+g=g[ea]+"//"+g.host+"/favicon.ico",g=Ga+"u/post_iframe.html#"+aa(g),a=function(){e.src="";e.parentNode&&e.parentNode.removeChild(e)};ta(L[t],"beforeunload",a);var c=!1,u=0,j=function(){if(!c){try{if(u>9||e.contentWindow[y].host==h[y].host){c=!0;a();var d=L[t],g="beforeunload",n=a;d.removeEventListener?d.removeEventListener(g,n,!1):d.detachEvent&&d.detachEvent("on"+g,n);b&&b();return}}catch(f){}u++;L.setTimeout(j,200)}};ta(e,"load",j);h.body.appendChild(e);e.src=g}else L.setTimeout(function(){d.Ob(f,
+b)},100)}};var Ka=function(d){var f=this,b=d,h=new Fa(b),e=null,m=!V.pb(),g=function(){};f.Uc=function(){return"https:"==L[w][y][ea]?"https://ssl.google-analytics.com/__utm.gif":"http://www.google-analytics.com/__utm.gif"};f.A=function(a,c,d,j,i,s){e||(e=new Ja);var n=b.B,O=L[w][y];h.Z(d);var B=h.z()[x](".");if(B[1]<500||j){if(i){var S=(new Date)[da](),X;X=(S-B[3])*(b.Ac/1E3);X>=1&&(B[2]=o.min(o.floor(B[2]*1+X),b.zc),B[3]=S)}if(j||!i||B[2]>=1){!j&&i&&(B[2]=B[2]*1-1);j=B[1]*1+1;B[1]=j;i="utmwv="+ia;S="&utms="+
+j;X="&utmn="+Aa();j=i+"e"+S+X;a=i+S+X+(M(O.hostname)?"":"&utmhn="+P(O.hostname))+(b.L==100?"":"&utmsp="+P(b.L))+a;if(0==n||2==n)O=2==n?g:s||g,m&&e.Bb(b.ga,a,j,O,!0);if(1==n||2==n)c="&utmac="+c,j+=c,a+=c+"&utmcc="+f.Tc(d),V.Ab&&(d="&aip=1",j+=d,a+=d),a+="&utmu="+qa.Sc(),m&&e.Bb(f.Uc(),a,j,s)}}h.$(B[A]("."));h.aa()};f.Tc=function(a){for(var c=[],b=[F,J,I,na],d=h.g(),i,g=0;g<b[v];g++)if(i=N(d,b[g]+a,";"),!M(i)){if(b[g]==I){i=i[x](a+".")[1][x]("|")[0];if(M(i))continue;i=a+"."+i}T(c,b[g]+i+";")}return P(c[A]("+"))}};var W=function(){var d=this;d.N=[];d.Va=function(f){for(var b,h=d.N,e=0;e<h[v];e++)b=f==h[e].q?h[e]:b;return b};d.Xb=function(f,b,h,e,m,g,a,c){var u=d.Va(f);k==u?(u=new W.Wc(f,b,h,e,m,g,a,c),T(d.N,u)):(u.tb=b,u.zb=h,u.yb=e,u.wb=m,u.ub=g,u.xb=a,u.vb=c);return u}};W.Qc=function(d,f,b,h,e,m){var g=this;g.Fb=d;g.va=f;g.n=b;g.Cb=h;g.Db=e;g.Eb=m;g.ha=function(){return"&"+["utmt=item","tid="+P(g.Fb),"ipc="+P(g.va),"ipn="+P(g.n),"iva="+P(g.Cb),"ipr="+P(g.Db),"iqt="+P(g.Eb)][A]("&utm")}};
+W.Wc=function(d,f,b,h,e,m,g,a){var c=this;c.q=d;c.tb=f;c.zb=b;c.yb=h;c.wb=e;c.ub=m;c.xb=g;c.vb=a;c.M=[];c.Vb=function(a,b,d,g,n){var e=c.Rc(a),f=c.q;k==e?T(c.M,new W.Qc(f,a,b,d,g,n)):(e.Fb=f,e.va=a,e.n=b,e.Cb=d,e.Db=g,e.Eb=n)};c.Rc=function(a){for(var b,d=c.M,g=0;g<d[v];g++)b=a==d[g].va?d[g]:b;return b};c.ha=function(){return"&"+["utmt=tran","id="+P(c.q),"st="+P(c.tb),"to="+P(c.zb),"tx="+P(c.yb),"sp="+P(c.wb),"ci="+P(c.ub),"rg="+P(c.xb),"co="+P(c.vb)][A]("&utmt")}};var La=function(d){function f(){var b,a,c;a="ShockwaveFlash";var d="$version",j=L[t].navigator;if((j=j?j.plugins:k)&&j[v]>0)for(b=0;b<j[v]&&!c;b++)a=j[b],R(a.name,"Shockwave Flash")&&(c=a.description[x]("Shockwave Flash ")[1]);else{a=a+"."+a;try{b=new ActiveXObject(a+".7"),c=b.GetVariable(d)}catch(e){}if(!c)try{b=new ActiveXObject(a+".6"),c="WIN 6,0,21,0",b.we="always",c=b.GetVariable(d)}catch(f){}if(!c)try{b=new ActiveXObject(a),c=b.GetVariable(d)}catch(n){}c&&(c=c[x](" ")[1][x](","),c=c[0]+"."+
+c[1]+" r"+c[2])}return c?c:h}var b=this,h="-",e=L[t].screen,m=L[t].navigator;b.Nb=e?e.width+"x"+e.height:h;b.Mb=e?e.colorDepth+"-bit":h;b.cd=P(L[w].characterSet?L[w].characterSet:L[w].charset?L[w].charset:h);b.Lb=(m&&m.language?m.language:m&&m.browserLanguage?m.browserLanguage:h)[C]();b.Kb=m&&m.javaEnabled()?1:0;b.dd=d?f():h;b.dc=function(){return D+"utm"+["cs="+P(b.cd),"sr="+b.Nb,"sc="+b.Mb,"ul="+b.Lb,"je="+b.Kb,"fl="+P(b.dd)][A]("&utm")};b.cc=function(){for(var d=L[t].navigator,a=L[t].history[v],
+d=d.appName+d.version+b.Lb+d.platform+d.userAgent+b.Kb+b.Nb+b.Mb+(L[w][ca]?L[w][ca]:"")+(L[w].referrer?L[w].referrer:""),c=d[v];a>0;)d+=a--^c++;return za(d)}};var Z=function(d,f,b,h){function e(a){var c="",c=a[x]("://")[1][C]();R(c,"/")&&(c=c[x]("/")[0]);return c}var m=h,g=this;g.a=d;g.ob=f;g.m=b;g.mb=function(a){var c=g.ua();return new Z.v(N(a,m.Ea+E,D),N(a,m.Ha+E,D),N(a,m.Ja+E,D),g.R(a,m.Ca,"(not set)"),g.R(a,m.Fa,"(not set)"),g.R(a,m.Ia,c&&!M(c.G)?Q(c.G):k),g.R(a,m.Da,k),N(a,m.vc+E,D))};g.nb=function(a){var c=e(a),b;b=a;var d="";b=b[x]("://")[1][C]();R(b,"/")&&(b=b[x]("/")[1],R(b,"?")&&(d=b[x]("?")[0]));b=d;if(R(c,"google")&&(a=a[x]("?")[A](D),R(a,D+
+m.xc+E)&&b==m.wc))return!0;return!1};g.ua=function(){var a,c=g.ob,b,d=m.J;if(!M(c)&&"0"!=c&&R(c,"://")&&!g.nb(c)){a=e(c);for(var i=0;i<d[v];i++)if(b=d[i],R(a,b.ib[C]())&&(c=c[x]("?")[A](D),R(c,D+b.jb+E)))return a=c[x](D+b.jb+E)[1],R(a,D)&&(a=a[x](D)[0]),new Z.v(k,b.ib,k,"(organic)","organic",a,k,k)}};g.R=function(a,c,b){a=N(a,c+E,D);return b=!M(a)?Q(a):!M(b)?b:"-"};g.Bc=function(a){var c=m.V,b=!1;if(a&&"organic"==a.P)for(var a=Q(a.G)[C](),d=0;d<c[v];d++)b=b||c[d][C]()==a;return b};g.lb=function(){var a=
+"",c="",a=g.ob;if(!M(a)&&"0"!=a&&R(a,"://")&&!g.nb(a))return a=a[x]("://")[1],R(a,"/")&&(c=a[z](a[q]("/")),c=c[x]("?")[0],a=a[x]("/")[0][C]()),0==a[q]("www.")&&(a=a[z](4)),new Z.v(k,a,k,"(referral)","referral",k,c,k)};g.kb=function(a){var c="";m.U&&(c=a&&a.hash?a[fa][z](a[fa][q]("#")):"",c=""!=c?c+D:c);c+=a.search;return c};g.ta=function(){return new Z.v(k,"(direct)",k,"(direct)","(none)",k,k,k)};g.Cc=function(a){var c=!1,b=m.W;if(a&&"referral"==a.P)for(var a=P(a.Q)[C](),d=0;d<b[v];d++)c=c||R(a,b[d][C]());
+return c};g.h=function(a){return k!=a&&a.fb()};g.te=function(a){var a=N(a,J+g.a+".",";"),c=a[x]("."),a=new Z.v;a.gb(c.slice(4)[A]("."));if(!g.h(a))return!0;c=L[w][y];c=g.kb(c);c=g.mb(c);g.h(c)||(c=g.ua(),g.h(c)||(c=g.lb()));return g.h(c)&&a.H()[C]()!=c.H()[C]()};g.Pb=function(a,c){if(m.Ka){var b="",d="-",e,f=0,n,h,B=g.a;if(a){h=a.g();b=g.kb(L[w][y]);if(m.w&&a.Ba()&&(d=Q(a.qa()),!M(d)&&!R(d,";"))){a.ra(d);a.sa();return}d=N(h,J+B+".",";");e=g.mb(b);if(g.h(e)&&(b=N(b,m.Ga+E,D),"1"==b&&!M(d)))return;
+if(!g.h(e)){e=g.ua();b=g.Bc(e);if(!M(d)&&b)return;b&&(e=g.ta())}if(!g.h(e)&&c){e=g.lb();b=g.Cc(e);if(!M(d)&&b)return;b&&(e=g.ta())}g.h(e)||M(d)&&c&&(e=g.ta());if(g.h(e)&&(M(d)||(f=d[x]("."),n=new Z.v,n.gb(f.slice(4)[A](".")),n=n.H()[C]()==e.H()[C](),f=f[3]*1),!n||c))h=N(h,F+B+".",";"),n=h.lastIndexOf("."),h=n>9?h[z](n+1)*1:0,f++,h=0==h?1:h,a.ra([B,g.m,h,f,e.H()][A](".")),a.sa()}}}};
+Z.v=function(d,f,b,h,e,m,g,a){var c=this;c.q=d;c.Q=f;c.ya=b;c.n=h;c.P=e;c.G=m;c.Gb=g;c.xa=a;c.H=function(){var a=[],b=[["cid",c.q],["csr",c.Q],["gclid",c.ya],["ccn",c.n],["cmd",c.P],["ctr",c.G],["cct",c.Gb],["dclid",c.xa]],d,e;if(c.fb())for(d=0;d<b[v];d++)M(b[d][1])||(e=b[d][1][x]("+")[A]("%20"),e=e[x](" ")[A]("%20"),T(a,"utm"+b[d][0]+E+e));return L.qb(a[A]("|"))};c.fb=function(){return!(M(c.q)&&M(c.Q)&&M(c.ya)&&M(c.xa))};c.gb=function(a){var b=function(b){return Q(N(a,"utm"+b+E,"|"))};c.q=b("cid");
+c.Q=b("csr");c.ya=b("gclid");c.n=b("ccn");c.P=b("cmd");c.G=b("ctr");c.Gb=b("cct");c.xa=b("dclid")}};var Ma=function(d,f,b,h){var e=this,m=f,g=E,a=d,c=h;e.S=b;e.wa="";e.r={};e.$b=function(){var a;a=N(e.S.g(),I+m+".",";")[x](m+".")[1];if(!M(a)){a=a[x]("|");var b=e.r,c=a[1],d;if(!M(c))for(var c=c[x](","),n=0;n<c[v];n++)d=c[n],M(d)||(d=d[x](g),d[v]==4&&(b[d[0]]=[Q(d[1]),Q(d[2]),1]));e.wa=Q(a[0]);e.T()}};e.T=function(){e.Pc();var a=P(e.wa),b,c,d="";for(b in e.r)(c=e.r[b])&&1===c[2]&&(d+=b+g+P(c[0])+g+P(c[1])+g+1+",");M(d)||(a+="|"+d);M(a)?e.S.yc():(e.S.X(m+"."+a),e.S.Y())};e.bc=function(a){e.wa=a;e.T()};
+e.ac=function(b,c,d,g){1!=g&&2!=g&&3!=g&&(g=3);var n=!1;if(c&&d&&b>0&&b<=a.Ta){var f=P(c),h=P(d);f[v]+h[v]<=64&&(e.r[b]=[c,d,g],e.T(),n=!0)}return n};e.Zb=function(a){if((a=e.r[a])&&1===a[2])return a[1]};e.Yb=function(a){var b=e.r;b[a]&&(delete b[a],e.T())};e.Pc=function(){c.t(8);c.t(9);c.t(11);var a=e.r,b,d;for(d in a)if(b=a[d])c.j(8,d,b[0]),c.j(9,d,b[1]),(b=b[2])&&3!=b&&c.j(11,d,""+b)}};var Na=function(){function d(a,b,c,d){k==g[a]&&(g[a]={});k==g[a][b]&&(g[a][b]=[]);g[a][b][c]=d}function f(a,b,c){if(k!=g[a]&&k!=g[a][b])return g[a][b][c]}function b(a,b){if(k!=g[a]&&k!=g[a][b]){g[a][b]=k;var c=!0,d;for(d=0;d<u[v];d++)if(k!=g[a][u[d]]){c=!1;break}c&&(g[a]=k)}}function h(a){var b="",c=!1,d,e;for(d=0;d<u[v];d++)if(e=a[u[d]],k!=e){c&&(b+=u[d]);for(var c=[],g=k,f=k,f=0;f<e[v];f++)if(k!=e[f]){g="";f!=S&&k==e[f-1]&&(g+=f[r]()+n);var h;h=e[f];for(var O="",m=k,U=k,wa=k,m=0;m<h[v];m++)U=h[p](m),
+wa=B[U],O+=k!=wa?wa:U;h=O;g+=h;T(c,g)}e=j+c[A](s)+i;b+=e;c=!1}else c=!0;return b}var e=this,m=sa(e),g={},a="k",c="v",u=[a,c],j="(",i=")",s="*",n="!",O="'",B={};B[O]="'0";B[i]="'1";B[s]="'2";B[n]="'3";var S=1;e.Yc=function(a){return k!=g[a]};e.C=function(){var a="",b;for(b in g)k!=g[b]&&(a+=b[r]()+h(g[b]));return a};e.hc=function(a){if(a==k)return e.C();var b=a.C(),c;for(c in g)k!=g[c]&&!a.Yc(c)&&(b+=c[r]()+h(g[c]));return b};e.j=m("_setKey",89,function(b,c,n){if(typeof n!="string")return!1;d(b,a,
+c,n);return!0});e.ja=m("_setValue",90,function(a,b,n){if(typeof n!="number"&&(k==Number||!(n instanceof Number))||o.round(n)!=n||n==NaN||n==Infinity)return!1;d(a,c,b,n[r]());return!0});e.fc=m("_getKey",87,function(b,c){return f(b,a,c)});e.gc=m("_getValue",88,function(a,b){return f(a,c,b)});e.t=m("_clearKey",85,function(c){b(c,a)});e.ia=m("_clearValue",86,function(a){b(a,c)})};var Oa=function(d,f){var b=this,h=sa(b);b.ze=f;b.gd=d;b.Za=h("_trackEvent",91,function(d,h,g){return f.Za(b.gd,d,h,g)})};var Pa=function(d,f){var b=this,h=L.Gc(),e=L.Hc(),m=10;b.rb=new Na;b.Kc=function(){var b,a="timing",c="onloadT";h&&h[c]!=k&&h.isValidLoadTime?b=h[c]:e&&e[a]&&(b=e[a].loadEventStart-e[a].fetchStart);return b};b.Mc=function(){return d.D()&&d.Xa()%100<m};b.Lc=function(){var e="&utmt=event&utme="+P(b.rb.C())+d.na();f.A(e,d.p,d.a,!1,!0)};b.Jc=function(b){b=o.min(o.floor(b/100),5E3);return b>0?b+"00":"0"};b.sb=function(){var d=b.Kc();if(d==k||isNaN(d))return!1;if(d<=0)return!0;if(d>2147483648)return!1;
+var a=b.rb;a.t(14);a.ia(14);var c=b.Jc(d);a.j(14,1,c)&&a.ja(14,1,d)&&b.Lc();h&&h.isValidLoadTime!=k&&h.setPageReadyTime();return!1};b.Wa=function(){if(!b.Mc())return!1;if(!L.Ic())return!1;b.sb()&&ta(L[t],"load",b.sb,!1);return!0}};var $=function(){};$.Zc=function(d){var f="gaso=",b=L[w][y].hash;d=b&&1==b[q](f)?N(b,f,D):(b=L[t].name)&&0<=b[q](f)?N(b,f,D):N(d.g(),oa,";");return d};$.ad=function(d,f){var b=(f||"www")+".google.com",b="https://"+b+"/analytics/reporting/overlay_js?gaso="+d+D+Aa(),h="_gasojs",e=L[w].createElement("script");e.type="text/javascript";e.src=b;if(h)e.id=h;(L[w].getElementsByTagName("head")[0]||L[w].getElementsByTagName("body")[0]).appendChild(e)};
+$.load=function(d,f){if(!$.$c){var b=$.Zc(f),h=b&&b.match(/^(?:\|([-0-9a-z.]{1,30})\|)?([-.\w]{10,1200})$/i);if(h)f.Dc(b),f.Ec(),V._gasoDomain=d.b,V._gasoCPath=d.f,$.ad(h[2],h[1]);$.$c=!0}};var Qa=function(d,f,b){function h(){if("auto"==j.b){var a=L[w].domain;"www."==a[z](0,4)&&(a=a[z](4));j.b=a}j.b=j.b[C]()}function e(){h();var a=j.b,b=a[q]("www.google.")*a[q](".google.")*a[q]("google.");return b||"/"!=j.f||a[q]("google.org")>-1}function m(b,c,d){if(M(b)||M(c)||M(d))return"-";b=N(b,F+a.a+".",c);M(b)||(b=b[x]("."),b[5]=""+(b[5]?b[5]*1+1:1),b[3]=b[4],b[4]=d,b=b[A]("."));return b}function g(){return"file:"!=L[w][y][ea]&&e()}var a=this,c=sa(a),u=k,j=new Da,i=!1,s=k;a.n=d;a.m=o.round((new Date)[da]()/
+1E3);a.p=f||"UA-XXXXX-X";a.ab=L[w].referrer;a.oa=k;a.d=k;a.F=!1;a.O=k;a.e=k;a.bb=k;a.pa=k;a.a=k;a.k=k;j.o=b?P(b):k;a.eb=!1;a.mc=function(){return Aa()^a.O.cc()&2147483647};a.lc=function(){if(!j.b||""==j.b||"none"==j.b)return j.b="",1;h();return j.Ua?za(j.b):1};a.kc=function(a,b){if(M(a))a="-";else{b+=j.f&&"/"!=j.f?j.f:"";var c=a[q](b),a=c>=0&&c<=8?"0":"["==a[p](0)&&"]"==a[p](a[v]-1)?"-":a}return a};a.na=function(b){var c="";c+=j.ka?a.O.dc():"";c+=j.la&&!M(L[w].title)?"&utmdt="+P(L[w].title):"";var d;
+d=L.Ya(!0);if(!d.hid)d.hid=Aa();d=d.hid;c+="&utmhid="+d+"&utmr="+P(l(a.oa))+"&utmp="+P(a.pc(b));return c};a.pc=function(a){var b=L[w][y];a&&K(13);return a=k!=a&&""!=a?P(a,!0):P(b.pathname+b.search,!0)};a.uc=function(b){if(a.D()){var c="";a.e!=k&&a.e.C()[v]>0&&(c+="&utme="+P(a.e.C()));c+=a.na(b);u.A(c,a.p,a.a)}};a.jc=function(){var b=new Fa(j);return b.Z(a.a)?b.Tb():k};a.cb=c("_getLinkerUrl",52,function(b,c){var d=b[x]("#"),e=b,f=a.jc();if(f)if(c&&1>=d[v])e+="#"+f;else if(!c||1>=d[v])1>=d[v]?e+=(R(b,
+"?")?D:"?")+f:e=d[0]+(R(b,"?")?D:"?")+f+"#"+d[1];return e});a.nc=function(){var b=a.m,c=a.k,d=c.g(),e=a.a+"",f=L.Ya(),g,h=R(d,F+e+"."),i=R(d,H+e),u=R(d,la+e),s,G=[],Y="",Ia=!1,d=M(d)?"":d;if(j.w&&!a.eb){g=L[w][y]&&L[w][y].hash?L[w][y][fa][z](L[w][y][fa][q]("#")):"";j.U&&!M(g)&&(Y=g+D);Y+=L[w][y].search;if(!M(Y)&&R(Y,F))c.Sb(Y),c.Ba()||c.Qb(),s=c.ba(),a.eb=!0;g=c.ea;var va=c.Pa,U=c.Sa;M(g())||(va(Q(g())),R(g(),";")||U());g=c.da;va=c.X;U=c.Y;M(g())||(va(g()),R(g(),";")||U())}M(s)?h?(s=!i||!u)?(s=m(d,
+";",l(b)),a.F=!0):(s=N(d,F+e+".",";"),G=N(d,H+e,";")[x](".")):(s=[e,a.mc(),b,b,b,1][A]("."),Ia=a.F=!0):M(c.z())||M(c.ca())?(s=m(Y,D,l(b)),a.F=!0):(G=c.z()[x]("."),e=G[0]);s=s[x](".");L[t]&&f&&f.dh==e&&!j.o&&(s[4]=f.sid?f.sid:s[4],Ia&&(s[3]=f.sid?f.sid:s[4],f.vid&&(b=f.vid[x]("."),s[1]=b[0],s[2]=b[1])));c.Na(s[A]("."));G[0]=e;G[1]=G[1]?G[1]:0;G[2]=k!=G[2]?G[2]:j.Wb;G[3]=G[3]?G[3]:s[4];c.$(G[A]("."));c.Oa(e);M(c.Rb())||c.fa(c.K());c.Qa();c.aa();c.Ra()};a.oc=function(){u=new Ka(j)};a.getName=c("_getName",
+58,function(){return a.n});a.c=c("_initData",2,function(){var b;if(!i){if(!a.O)a.O=new La(j.ma);a.a=a.lc();a.k=new Fa(j);a.e=new Na;s=new Ma(j,l(a.a),a.k,a.e);a.oc()}if(g()){if(!i)a.oa=a.kc(a.ab,L[w].domain),b=new Z(l(a.a),a.oa,a.m,j);a.nc(b);s.$b()}if(!i)g()&&b.Pb(a.k,a.F),a.bb=new Na,$.load(j,a.k),i=!0});a.Xa=c("_visitCode",54,function(){a.c();var b=N(a.k.g(),F+a.a+".",";"),b=b[x](".");return b[v]<4?"":b[1]});a.qd=c("_cookiePathCopy",30,function(b){a.c();a.k&&a.k.Ub(a.a,b)});a.D=function(){return a.Xa()%
+1E4<j.L*100};a.re=c("_trackPageview",1,function(b){if(g())a.c(),a.uc(b),a.F=!1});a.se=c("_trackTrans",18,function(){var b=a.a,c=[],d,e,f;a.c();if(a.d&&a.D()){for(d=0;d<a.d.N[v];d++){e=a.d.N[d];T(c,e.ha());for(f=0;f<e.M[v];f++)T(c,e.M[f].ha())}for(d=0;d<c[v];d++)u.A(c[d],a.p,b,!0)}});a.me=c("_setTrans",20,function(){var b,c,d,e;b=L[w].getElementById?L[w].getElementById("utmtrans"):L[w].utmform&&L[w].utmform.utmtrans?L[w].utmform.utmtrans:k;a.c();if(b&&b.value){a.d=new W;e=b.value[x]("UTM:");j.u=!j.u||
+""==j.u?"|":j.u;for(b=0;b<e[v];b++){e[b]=ya(e[b]);c=e[b][x](j.u);for(d=0;d<c[v];d++)c[d]=ya(c[d]);"T"==c[0]?a.$a(c[1],c[2],c[3],c[4],c[5],c[6],c[7],c[8]):"I"==c[0]&&a.ic(c[1],c[2],c[3],c[4],c[5],c[6])}}});a.$a=c("_addTrans",21,function(b,c,d,e,f,g,h,i){a.d=a.d?a.d:new W;return a.d.Xb(b,c,d,e,f,g,h,i)});a.ic=c("_addItem",19,function(b,c,d,e,f,g){var h;a.d=a.d?a.d:new W;(h=a.d.Va(b))||(h=a.$a(b,"","","","","","",""));h.Vb(c,d,e,f,g)});a.oe=c("_setVar",22,function(b){b&&""!=b&&e()&&(a.c(),s.bc(b),a.D()&&
+u.A("&utmt=var",a.p,a.a))});a.Yd=c("_setCustomVar",10,function(b,c,d,e){a.c();return s.ac(b,c,d,e)});a.td=c("_deleteCustomVar",35,function(b){a.c();s.Yb(b)});a.Cd=c("_getVisitorCustomVar",50,function(b){a.c();return s.Zb(b)});a.fe=c("_setMaxCustomVariables",71,function(a){j.Ta=a});a.link=c("_link",101,function(b,c){j.w&&b&&(a.c(),L.ec(a.cb(b,c)))});a.Fd=c("_linkByPost",102,function(b,c){if(j.w&&b&&b.action)a.c(),b.action=a.cb(b.action,c)});a.pe=c("_setXKey",83,function(b,c,d){a.e.j(b,c,d)});a.qe=
+c("_setXValue",84,function(b,c,d){a.e.ja(b,c,d)});a.Dd=c("_getXKey",76,function(b,c){return a.e.fc(b,c)});a.Ed=c("_getXValue",77,function(b,c){return a.e.gc(b,c)});a.od=c("_clearXKey",72,function(b){a.e.t(b)});a.pd=c("_clearXValue",73,function(b){a.e.ia(b)});a.sd=c("_createXObj",75,function(){a.c();return new Na});a.qc=c("_sendXEvent",78,function(b){var c="";a.c();a.D()&&(c+="&utmt=event&utme="+P(a.e.hc(b))+a.na(),u.A(c,a.p,a.a,!1,!0))});a.rd=c("_createEventTracker",74,function(b){a.c();return new Oa(b,
+a)});a.Za=c("_trackEvent",4,function(b,c,d,e){a.c();var f=a.bb;k!=b&&k!=c&&""!=b&&""!=c?(f.t(5),f.ia(5),(b=f.j(5,1,b)&&f.j(5,2,c)&&(k==d||f.j(5,3,d))&&(k==e||f.ja(5,1,e)))&&a.qc(f)):b=!1;return b});a.Wa=c("_trackPageLoadTime",100,function(){a.c();if(!a.pa)a.pa=new Pa(a,u);return a.pa.Wa()});a.wd=function(){return j};a.ae=c("_setDomainName",6,function(a){j.b=a});a.kd=c("_addOrganic",14,function(a,b,c){j.J.splice(c?0:j.J[v],0,new Ca(a,b))});a.nd=c("_clearOrganic",70,function(){j.J=[]});a.hd=c("_addIgnoredOrganic",
+15,function(a){T(j.V,a)});a.ld=c("_clearIgnoredOrganic",97,function(){j.V=[]});a.jd=c("_addIgnoredRef",31,function(a){T(j.W,a)});a.md=c("_clearIgnoredRef",32,function(){j.W=[]});a.Id=c("_setAllowHash",8,function(a){j.Ua=a?1:0});a.Td=c("_setCampaignTrack",36,function(a){j.Ka=a?1:0});a.Ud=c("_setClientInfo",66,function(a){j.ka=a?1:0});a.vd=c("_getClientInfo",53,function(){return j.ka});a.Vd=c("_setCookiePath",9,function(a){j.f=a});a.ne=c("_setTransactionDelim",82,function(a){j.u=a});a.Xd=c("_setCookieTimeout",
+25,function(b){a.rc(b*1E3)});a.rc=c("_setCampaignCookieTimeout",29,function(a){j.La=a});a.Zd=c("_setDetectFlash",61,function(a){j.ma=a?1:0});a.xd=c("_getDetectFlash",65,function(){return j.ma});a.$d=c("_setDetectTitle",62,function(a){j.la=a?1:0});a.yd=c("_getDetectTitle",56,function(){return j.la});a.ce=c("_setLocalGifPath",46,function(a){j.ga=a});a.zd=c("_getLocalGifPath",57,function(){return j.ga});a.ee=c("_setLocalServerMode",92,function(){j.B=0});a.ie=c("_setRemoteServerMode",63,function(){j.B=
+1});a.de=c("_setLocalRemoteServerMode",47,function(){j.B=2});a.Ad=c("_getServiceMode",59,function(){return j.B});a.je=c("_setSampleRate",45,function(a){j.L=a});a.ke=c("_setSessionTimeout",27,function(b){a.sc(b*1E3)});a.sc=c("_setSessionCookieTimeout",26,function(a){j.Ma=a});a.Jd=c("_setAllowLinker",11,function(a){j.w=a?1:0});a.Hd=c("_setAllowAnchor",7,function(a){j.U=a?1:0});a.Qd=c("_setCampNameKey",41,function(a){j.Ca=a});a.Md=c("_setCampContentKey",38,function(a){j.Da=a});a.Nd=c("_setCampIdKey",
+39,function(a){j.Ea=a});a.Od=c("_setCampMediumKey",40,function(a){j.Fa=a});a.Pd=c("_setCampNOKey",42,function(a){j.Ga=a});a.Rd=c("_setCampSourceKey",43,function(a){j.Ha=a});a.Sd=c("_setCampTermKey",44,function(a){j.Ia=a});a.Ld=c("_setCampCIdKey",37,function(a){j.Ja=a});a.ud=c("_getAccount",64,function(){return a.p});a.Gd=c("_setAccount",3,function(b){a.p=b});a.ge=c("_setNamespace",48,function(a){j.o=a?P(a):k});a.Bd=c("_getVersion",60,function(){return ia});a.Kd=c("_setAutoTrackOutbound",79,Ba);a.le=
+c("_setTrackOutboundSubdomains",81,Ba);a.be=c("_setHrefExamineLimit",80,Ba);a.he=c("_setReferrerOverride",49,function(b){a.ab=b});a.Wd=c("_setCookiePersistence",24,function(b){a.tc(b)});a.tc=c("_setVisitorCookieTimeout",28,function(a){j.s=a})};var Ra=function(){var d=this,f=sa(d);d.Ab=!1;d.Ib={};d.bd=0;d._gasoDomain=k;d._gasoCPath=k;d.ve=f("_getTracker",0,function(b,f){return d.za(b,k,f)});d.za=f("_createTracker",55,function(b,d,e){d&&K(23);e&&K(67);d==k&&(d="~"+V.bd++);return V.Ib[d]=new Qa(d,b,e)});d.Hb=f("_getTrackerByName",51,function(b){b=b||"";return V.Ib[b]||V.za(k,b)});d.pb=function(){var b=L.Vc();return b&&b[ka]&&b[ka]()};d.ue=f("_anonymizeIp",16,function(){d.Ab=!0})};var Ta=function(){var d=this,f=sa(d);d.xe=f("_createAsyncTracker",33,function(b,d){return V.za(b,d||"")});d.ye=f("_getAsyncTracker",34,function(b){return V.Hb(b)});d.push=function(){K(5);for(var b=arguments,d=0,e=0;e<b[v];e++)try{if(typeof b[e]==="function")b[e]();else{var f="",g=b[e][0],a=g.lastIndexOf(".");a>0&&(f=g[z](0,a),g=g[z](a+1));var c=f==ga?V:f==ha?Sa:V.Hb(f);c[g].apply(c,b[e].slice(1))}}catch(u){d++}return d}};var V=new Ra;var Ua=L[t][ga];Ua&&typeof Ua._getTracker=="function"?V=Ua:L[t][ga]=V;var Sa=new Ta;a:{var Va=L[t][ha],Wa=!1;if(Va&&typeof Va[ba]=="function"&&(Wa=ua(Va),!Wa))break a;L[t][ha]=Sa;Wa&&Sa[ba].apply(Sa,Va)};})();
--- /dev/null
+/*!
+ * jQuery JavaScript Library v1.6.1
+ * http://jquery.com/
+ *
+ * Copyright 2011, John Resig
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * Includes Sizzle.js
+ * http://sizzlejs.com/
+ * Copyright 2011, The Dojo Foundation
+ * Released under the MIT, BSD, and GPL Licenses.
+ *
+ * Date: Thu May 12 15:04:36 2011 -0400
+ */
+(function(a,b){function cy(a){return f.isWindow(a)?a:a.nodeType===9?a.defaultView||a.parentWindow:!1}function cv(a){if(!cj[a]){var b=f("<"+a+">").appendTo("body"),d=b.css("display");b.remove();if(d==="none"||d===""){ck||(ck=c.createElement("iframe"),ck.frameBorder=ck.width=ck.height=0),c.body.appendChild(ck);if(!cl||!ck.createElement)cl=(ck.contentWindow||ck.contentDocument).document,cl.write("<!doctype><html><body></body></html>");b=cl.createElement(a),cl.body.appendChild(b),d=f.css(b,"display"),c.body.removeChild(ck)}cj[a]=d}return cj[a]}function cu(a,b){var c={};f.each(cp.concat.apply([],cp.slice(0,b)),function(){c[this]=a});return c}function ct(){cq=b}function cs(){setTimeout(ct,0);return cq=f.now()}function ci(){try{return new a.ActiveXObject("Microsoft.XMLHTTP")}catch(b){}}function ch(){try{return new a.XMLHttpRequest}catch(b){}}function cb(a,c){a.dataFilter&&(c=a.dataFilter(c,a.dataType));var d=a.dataTypes,e={},g,h,i=d.length,j,k=d[0],l,m,n,o,p;for(g=1;g<i;g++){if(g===1)for(h in a.converters)typeof h=="string"&&(e[h.toLowerCase()]=a.converters[h]);l=k,k=d[g];if(k==="*")k=l;else if(l!=="*"&&l!==k){m=l+" "+k,n=e[m]||e["* "+k];if(!n){p=b;for(o in e){j=o.split(" ");if(j[0]===l||j[0]==="*"){p=e[j[1]+" "+k];if(p){o=e[o],o===!0?n=p:p===!0&&(n=o);break}}}}!n&&!p&&f.error("No conversion from "+m.replace(" "," to ")),n!==!0&&(c=n?n(c):p(o(c)))}}return c}function ca(a,c,d){var e=a.contents,f=a.dataTypes,g=a.responseFields,h,i,j,k;for(i in g)i in d&&(c[g[i]]=d[i]);while(f[0]==="*")f.shift(),h===b&&(h=a.mimeType||c.getResponseHeader("content-type"));if(h)for(i in e)if(e[i]&&e[i].test(h)){f.unshift(i);break}if(f[0]in d)j=f[0];else{for(i in d){if(!f[0]||a.converters[i+" "+f[0]]){j=i;break}k||(k=i)}j=j||k}if(j){j!==f[0]&&f.unshift(j);return d[j]}}function b_(a,b,c,d){if(f.isArray(b))f.each(b,function(b,e){c||bF.test(a)?d(a,e):b_(a+"["+(typeof e=="object"||f.isArray(e)?b:"")+"]",e,c,d)});else if(!c&&b!=null&&typeof b=="object")for(var e in b)b_(a+"["+e+"]",b[e],c,d);else d(a,b)}function b$(a,c,d,e,f,g){f=f||c.dataTypes[0],g=g||{},g[f]=!0;var h=a[f],i=0,j=h?h.length:0,k=a===bU,l;for(;i<j&&(k||!l);i++)l=h[i](c,d,e),typeof l=="string"&&(!k||g[l]?l=b:(c.dataTypes.unshift(l),l=b$(a,c,d,e,l,g)));(k||!l)&&!g["*"]&&(l=b$(a,c,d,e,"*",g));return l}function bZ(a){return function(b,c){typeof b!="string"&&(c=b,b="*");if(f.isFunction(c)){var d=b.toLowerCase().split(bQ),e=0,g=d.length,h,i,j;for(;e<g;e++)h=d[e],j=/^\+/.test(h),j&&(h=h.substr(1)||"*"),i=a[h]=a[h]||[],i[j?"unshift":"push"](c)}}}function bD(a,b,c){var d=b==="width"?bx:by,e=b==="width"?a.offsetWidth:a.offsetHeight;if(c==="border")return e;f.each(d,function(){c||(e-=parseFloat(f.css(a,"padding"+this))||0),c==="margin"?e+=parseFloat(f.css(a,"margin"+this))||0:e-=parseFloat(f.css(a,"border"+this+"Width"))||0});return e}function bn(a,b){b.src?f.ajax({url:b.src,async:!1,dataType:"script"}):f.globalEval((b.text||b.textContent||b.innerHTML||"").replace(bf,"/*$0*/")),b.parentNode&&b.parentNode.removeChild(b)}function bm(a){f.nodeName(a,"input")?bl(a):a.getElementsByTagName&&f.grep(a.getElementsByTagName("input"),bl)}function bl(a){if(a.type==="checkbox"||a.type==="radio")a.defaultChecked=a.checked}function bk(a){return"getElementsByTagName"in a?a.getElementsByTagName("*"):"querySelectorAll"in a?a.querySelectorAll("*"):[]}function bj(a,b){var c;if(b.nodeType===1){b.clearAttributes&&b.clearAttributes(),b.mergeAttributes&&b.mergeAttributes(a),c=b.nodeName.toLowerCase();if(c==="object")b.outerHTML=a.outerHTML;else if(c!=="input"||a.type!=="checkbox"&&a.type!=="radio"){if(c==="option")b.selected=a.defaultSelected;else if(c==="input"||c==="textarea")b.defaultValue=a.defaultValue}else a.checked&&(b.defaultChecked=b.checked=a.checked),b.value!==a.value&&(b.value=a.value);b.removeAttribute(f.expando)}}function bi(a,b){if(b.nodeType===1&&!!f.hasData(a)){var c=f.expando,d=f.data(a),e=f.data(b,d);if(d=d[c]){var g=d.events;e=e[c]=f.extend({},d);if(g){delete e.handle,e.events={};for(var h in g)for(var i=0,j=g[h].length;i<j;i++)f.event.add(b,h+(g[h][i].namespace?".":"")+g[h][i].namespace,g[h][i],g[h][i].data)}}}}function bh(a,b){return f.nodeName(a,"table")?a.getElementsByTagName("tbody")[0]||a.appendChild(a.ownerDocument.createElement("tbody")):a}function X(a,b,c){b=b||0;if(f.isFunction(b))return f.grep(a,function(a,d){var e=!!b.call(a,d,a);return e===c});if(b.nodeType)return f.grep(a,function(a,d){return a===b===c});if(typeof b=="string"){var d=f.grep(a,function(a){return a.nodeType===1});if(S.test(b))return f.filter(b,d,!c);b=f.filter(b,d)}return f.grep(a,function(a,d){return f.inArray(a,b)>=0===c})}function W(a){return!a||!a.parentNode||a.parentNode.nodeType===11}function O(a,b){return(a&&a!=="*"?a+".":"")+b.replace(A,"`").replace(B,"&")}function N(a){var b,c,d,e,g,h,i,j,k,l,m,n,o,p=[],q=[],r=f._data(this,"events");if(!(a.liveFired===this||!r||!r.live||a.target.disabled||a.button&&a.type==="click")){a.namespace&&(n=new RegExp("(^|\\.)"+a.namespace.split(".").join("\\.(?:.*\\.)?")+"(\\.|$)")),a.liveFired=this;var s=r.live.slice(0);for(i=0;i<s.length;i++)g=s[i],g.origType.replace(y,"")===a.type?q.push(g.selector):s.splice(i--,1);e=f(a.target).closest(q,a.currentTarget);for(j=0,k=e.length;j<k;j++){m=e[j];for(i=0;i<s.length;i++){g=s[i];if(m.selector===g.selector&&(!n||n.test(g.namespace))&&!m.elem.disabled){h=m.elem,d=null;if(g.preType==="mouseenter"||g.preType==="mouseleave")a.type=g.preType,d=f(a.relatedTarget).closest(g.selector)[0],d&&f.contains(h,d)&&(d=h);(!d||d!==h)&&p.push({elem:h,handleObj:g,level:m.level})}}}for(j=0,k=p.length;j<k;j++){e=p[j];if(c&&e.level>c)break;a.currentTarget=e.elem,a.data=e.handleObj.data,a.handleObj=e.handleObj,o=e.handleObj.origHandler.apply(e.elem,arguments);if(o===!1||a.isPropagationStopped()){c=e.level,o===!1&&(b=!1);if(a.isImmediatePropagationStopped())break}}return b}}function L(a,c,d){var e=f.extend({},d[0]);e.type=a,e.originalEvent={},e.liveFired=b,f.event.handle.call(c,e),e.isDefaultPrevented()&&d[0].preventDefault()}function F(){return!0}function E(){return!1}function m(a,c,d){var e=c+"defer",g=c+"queue",h=c+"mark",i=f.data(a,e,b,!0);i&&(d==="queue"||!f.data(a,g,b,!0))&&(d==="mark"||!f.data(a,h,b,!0))&&setTimeout(function(){!f.data(a,g,b,!0)&&!f.data(a,h,b,!0)&&(f.removeData(a,e,!0),i.resolve())},0)}function l(a){for(var b in a)if(b!=="toJSON")return!1;return!0}function k(a,c,d){if(d===b&&a.nodeType===1){var e="data-"+c.replace(j,"$1-$2").toLowerCase();d=a.getAttribute(e);if(typeof d=="string"){try{d=d==="true"?!0:d==="false"?!1:d==="null"?null:f.isNaN(d)?i.test(d)?f.parseJSON(d):d:parseFloat(d)}catch(g){}f.data(a,c,d)}else d=b}return d}var c=a.document,d=a.navigator,e=a.location,f=function(){function H(){if(!e.isReady){try{c.documentElement.doScroll("left")}catch(a){setTimeout(H,1);return}e.ready()}}var e=function(a,b){return new e.fn.init(a,b,h)},f=a.jQuery,g=a.$,h,i=/^(?:[^<]*(<[\w\W]+>)[^>]*$|#([\w\-]*)$)/,j=/\S/,k=/^\s+/,l=/\s+$/,m=/\d/,n=/^<(\w+)\s*\/?>(?:<\/\1>)?$/,o=/^[\],:{}\s]*$/,p=/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,q=/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,r=/(?:^|:|,)(?:\s*\[)+/g,s=/(webkit)[ \/]([\w.]+)/,t=/(opera)(?:.*version)?[ \/]([\w.]+)/,u=/(msie) ([\w.]+)/,v=/(mozilla)(?:.*? rv:([\w.]+))?/,w=d.userAgent,x,y,z,A=Object.prototype.toString,B=Object.prototype.hasOwnProperty,C=Array.prototype.push,D=Array.prototype.slice,E=String.prototype.trim,F=Array.prototype.indexOf,G={};e.fn=e.prototype={constructor:e,init:function(a,d,f){var g,h,j,k;if(!a)return this;if(a.nodeType){this.context=this[0]=a,this.length=1;return this}if(a==="body"&&!d&&c.body){this.context=c,this[0]=c.body,this.selector=a,this.length=1;return this}if(typeof a=="string"){a.charAt(0)!=="<"||a.charAt(a.length-1)!==">"||a.length<3?g=i.exec(a):g=[null,a,null];if(g&&(g[1]||!d)){if(g[1]){d=d instanceof e?d[0]:d,k=d?d.ownerDocument||d:c,j=n.exec(a),j?e.isPlainObject(d)?(a=[c.createElement(j[1])],e.fn.attr.call(a,d,!0)):a=[k.createElement(j[1])]:(j=e.buildFragment([g[1]],[k]),a=(j.cacheable?e.clone(j.fragment):j.fragment).childNodes);return e.merge(this,a)}h=c.getElementById(g[2]);if(h&&h.parentNode){if(h.id!==g[2])return f.find(a);this.length=1,this[0]=h}this.context=c,this.selector=a;return this}return!d||d.jquery?(d||f).find(a):this.constructor(d).find(a)}if(e.isFunction(a))return f.ready(a);a.selector!==b&&(this.selector=a.selector,this.context=a.context);return e.makeArray(a,this)},selector:"",jquery:"1.6.1",length:0,size:function(){return this.length},toArray:function(){return D.call(this,0)},get:function(a){return a==null?this.toArray():a<0?this[this.length+a]:this[a]},pushStack:function(a,b,c){var d=this.constructor();e.isArray(a)?C.apply(d,a):e.merge(d,a),d.prevObject=this,d.context=this.context,b==="find"?d.selector=this.selector+(this.selector?" ":"")+c:b&&(d.selector=this.selector+"."+b+"("+c+")");return d},each:function(a,b){return e.each(this,a,b)},ready:function(a){e.bindReady(),y.done(a);return this},eq:function(a){return a===-1?this.slice(a):this.slice(a,+a+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(D.apply(this,arguments),"slice",D.call(arguments).join(","))},map:function(a){return this.pushStack(e.map(this,function(b,c){return a.call(b,c,b)}))},end:function(){return this.prevObject||this.constructor(null)},push:C,sort:[].sort,splice:[].splice},e.fn.init.prototype=e.fn,e.extend=e.fn.extend=function(){var a,c,d,f,g,h,i=arguments[0]||{},j=1,k=arguments.length,l=!1;typeof i=="boolean"&&(l=i,i=arguments[1]||{},j=2),typeof i!="object"&&!e.isFunction(i)&&(i={}),k===j&&(i=this,--j);for(;j<k;j++)if((a=arguments[j])!=null)for(c in a){d=i[c],f=a[c];if(i===f)continue;l&&f&&(e.isPlainObject(f)||(g=e.isArray(f)))?(g?(g=!1,h=d&&e.isArray(d)?d:[]):h=d&&e.isPlainObject(d)?d:{},i[c]=e.extend(l,h,f)):f!==b&&(i[c]=f)}return i},e.extend({noConflict:function(b){a.$===e&&(a.$=g),b&&a.jQuery===e&&(a.jQuery=f);return e},isReady:!1,readyWait:1,holdReady:function(a){a?e.readyWait++:e.ready(!0)},ready:function(a){if(a===!0&&!--e.readyWait||a!==!0&&!e.isReady){if(!c.body)return setTimeout(e.ready,1);e.isReady=!0;if(a!==!0&&--e.readyWait>0)return;y.resolveWith(c,[e]),e.fn.trigger&&e(c).trigger("ready").unbind("ready")}},bindReady:function(){if(!y){y=e._Deferred();if(c.readyState==="complete")return setTimeout(e.ready,1);if(c.addEventListener)c.addEventListener("DOMContentLoaded",z,!1),a.addEventListener("load",e.ready,!1);else if(c.attachEvent){c.attachEvent("onreadystatechange",z),a.attachEvent("onload",e.ready);var b=!1;try{b=a.frameElement==null}catch(d){}c.documentElement.doScroll&&b&&H()}}},isFunction:function(a){return e.type(a)==="function"},isArray:Array.isArray||function(a){return e.type(a)==="array"},isWindow:function(a){return a&&typeof a=="object"&&"setInterval"in a},isNaN:function(a){return a==null||!m.test(a)||isNaN(a)},type:function(a){return a==null?String(a):G[A.call(a)]||"object"},isPlainObject:function(a){if(!a||e.type(a)!=="object"||a.nodeType||e.isWindow(a))return!1;if(a.constructor&&!B.call(a,"constructor")&&!B.call(a.constructor.prototype,"isPrototypeOf"))return!1;var c;for(c in a);return c===b||B.call(a,c)},isEmptyObject:function(a){for(var b in a)return!1;return!0},error:function(a){throw a},parseJSON:function(b){if(typeof b!="string"||!b)return null;b=e.trim(b);if(a.JSON&&a.JSON.parse)return a.JSON.parse(b);if(o.test(b.replace(p,"@").replace(q,"]").replace(r,"")))return(new Function("return "+b))();e.error("Invalid JSON: "+b)},parseXML:function(b,c,d){a.DOMParser?(d=new DOMParser,c=d.parseFromString(b,"text/xml")):(c=new ActiveXObject("Microsoft.XMLDOM"),c.async="false",c.loadXML(b)),d=c.documentElement,(!d||!d.nodeName||d.nodeName==="parsererror")&&e.error("Invalid XML: "+b);return c},noop:function(){},globalEval:function(b){b&&j.test(b)&&(a.execScript||function(b){a.eval.call(a,b)})(b)},nodeName:function(a,b){return a.nodeName&&a.nodeName.toUpperCase()===b.toUpperCase()},each:function(a,c,d){var f,g=0,h=a.length,i=h===b||e.isFunction(a);if(d){if(i){for(f in a)if(c.apply(a[f],d)===!1)break}else for(;g<h;)if(c.apply(a[g++],d)===!1)break}else if(i){for(f in a)if(c.call(a[f],f,a[f])===!1)break}else for(;g<h;)if(c.call(a[g],g,a[g++])===!1)break;return a},trim:E?function(a){return a==null?"":E.call(a)}:function(a){return a==null?"":(a+"").replace(k,"").replace(l,"")},makeArray:function(a,b){var c=b||[];if(a!=null){var d=e.type(a);a.length==null||d==="string"||d==="function"||d==="regexp"||e.isWindow(a)?C.call(c,a):e.merge(c,a)}return c},inArray:function(a,b){if(F)return F.call(b,a);for(var c=0,d=b.length;c<d;c++)if(b[c]===a)return c;return-1},merge:function(a,c){var d=a.length,e=0;if(typeof c.length=="number")for(var f=c.length;e<f;e++)a[d++]=c[e];else while(c[e]!==b)a[d++]=c[e++];a.length=d;return a},grep:function(a,b,c){var d=[],e;c=!!c;for(var f=0,g=a.length;f<g;f++)e=!!b(a[f],f),c!==e&&d.push(a[f]);return d},map:function(a,c,d){var f,g,h=[],i=0,j=a.length,k=a instanceof e||j!==b&&typeof j=="number"&&(j>0&&a[0]&&a[j-1]||j===0||e.isArray(a));if(k)for(;i<j;i++)f=c(a[i],i,d),f!=null&&(h[h.length]=f);else for(g in a)f=c(a[g],g,d),f!=null&&(h[h.length]=f);return h.concat.apply([],h)},guid:1,proxy:function(a,c){if(typeof c=="string"){var d=a[c];c=a,a=d}if(!e.isFunction(a))return b;var f=D.call(arguments,2),g=function(){return a.apply(c,f.concat(D.call(arguments)))};g.guid=a.guid=a.guid||g.guid||e.guid++;return g},access:function(a,c,d,f,g,h){var i=a.length;if(typeof c=="object"){for(var j in c)e.access(a,j,c[j],f,g,d);return a}if(d!==b){f=!h&&f&&e.isFunction(d);for(var k=0;k<i;k++)g(a[k],c,f?d.call(a[k],k,g(a[k],c)):d,h);return a}return i?g(a[0],c):b},now:function(){return(new Date).getTime()},uaMatch:function(a){a=a.toLowerCase();var b=s.exec(a)||t.exec(a)||u.exec(a)||a.indexOf("compatible")<0&&v.exec(a)||[];return{browser:b[1]||"",version:b[2]||"0"}},sub:function(){function a(b,c){return new a.fn.init(b,c)}e.extend(!0,a,this),a.superclass=this,a.fn=a.prototype=this(),a.fn.constructor=a,a.sub=this.sub,a.fn.init=function(d,f){f&&f instanceof e&&!(f instanceof a)&&(f=a(f));return e.fn.init.call(this,d,f,b)},a.fn.init.prototype=a.fn;var b=a(c);return a},browser:{}}),e.each("Boolean Number String Function Array Date RegExp Object".split(" "),function(a,b){G["[object "+b+"]"]=b.toLowerCase()}),x=e.uaMatch(w),x.browser&&(e.browser[x.browser]=!0,e.browser.version=x.version),e.browser.webkit&&(e.browser.safari=!0),j.test(" ")&&(k=/^[\s\xA0]+/,l=/[\s\xA0]+$/),h=e(c),c.addEventListener?z=function(){c.removeEventListener("DOMContentLoaded",z,!1),e.ready()}:c.attachEvent&&(z=function(){c.readyState==="complete"&&(c.detachEvent("onreadystatechange",z),e.ready())});return e}(),g="done fail isResolved isRejected promise then always pipe".split(" "),h=[].slice;f.extend({_Deferred:function(){var a=[],b,c,d,e={done:function(){if(!d){var c=arguments,g,h,i,j,k;b&&(k=b,b=0);for(g=0,h=c.length;g<h;g++)i=c[g],j=f.type(i),j==="array"?e.done.apply(e,i):j==="function"&&a.push(i);k&&e.resolveWith(k[0],k[1])}return this},resolveWith:function(e,f){if(!d&&!b&&!c){f=f||[],c=1;try{while(a[0])a.shift().apply(e,f)}finally{b=[e,f],c=0}}return this},resolve:function(){e.resolveWith(this,arguments);return this},isResolved:function(){return!!c||!!b},cancel:function(){d=1,a=[];return this}};return e},Deferred:function(a){var b=f._Deferred(),c=f._Deferred(),d;f.extend(b,{then:function(a,c){b.done(a).fail(c);return this},always:function(){return b.done.apply(b,arguments).fail.apply(this,arguments)},fail:c.done,rejectWith:c.resolveWith,reject:c.resolve,isRejected:c.isResolved,pipe:function(a,c){return f.Deferred(function(d){f.each({done:[a,"resolve"],fail:[c,"reject"]},function(a,c){var e=c[0],g=c[1],h;f.isFunction(e)?b[a](function(){h=e.apply(this,arguments),h&&f.isFunction(h.promise)?h.promise().then(d.resolve,d.reject):d[g](h)}):b[a](d[g])})}).promise()},promise:function(a){if(a==null){if(d)return d;d=a={}}var c=g.length;while(c--)a[g[c]]=b[g[c]];return a}}),b.done(c.cancel).fail(b.cancel),delete b.cancel,a&&a.call(b,b);return b},when:function(a){function i(a){return function(c){b[a]=arguments.length>1?h.call(arguments,0):c,--e||g.resolveWith(g,h.call(b,0))}}var b=arguments,c=0,d=b.length,e=d,g=d<=1&&a&&f.isFunction(a.promise)?a:f.Deferred();if(d>1){for(;c<d;c++)b[c]&&f.isFunction(b[c].promise)?b[c].promise().then(i(c),g.reject):--e;e||g.resolveWith(g,b)}else g!==a&&g.resolveWith(g,d?[a]:[]);return g.promise()}}),f.support=function(){var a=c.createElement("div"),b=c.documentElement,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r;a.setAttribute("className","t"),a.innerHTML=" <link/><table></table><a href='/a' style='top:1px;float:left;opacity:.55;'>a</a><input type='checkbox'/>",d=a.getElementsByTagName("*"),e=a.getElementsByTagName("a")[0];if(!d||!d.length||!e)return{};f=c.createElement("select"),g=f.appendChild(c.createElement("option")),h=a.getElementsByTagName("input")[0],j={leadingWhitespace:a.firstChild.nodeType===3,tbody:!a.getElementsByTagName("tbody").length,htmlSerialize:!!a.getElementsByTagName("link").length,style:/top/.test(e.getAttribute("style")),hrefNormalized:e.getAttribute("href")==="/a",opacity:/^0.55$/.test(e.style.opacity),cssFloat:!!e.style.cssFloat,checkOn:h.value==="on",optSelected:g.selected,getSetAttribute:a.className!=="t",submitBubbles:!0,changeBubbles:!0,focusinBubbles:!1,deleteExpando:!0,noCloneEvent:!0,inlineBlockNeedsLayout:!1,shrinkWrapBlocks:!1,reliableMarginRight:!0},h.checked=!0,j.noCloneChecked=h.cloneNode(!0).checked,f.disabled=!0,j.optDisabled=!g.disabled;try{delete a.test}catch(s){j.deleteExpando=!1}!a.addEventListener&&a.attachEvent&&a.fireEvent&&(a.attachEvent("onclick",function b(){j.noCloneEvent=!1,a.detachEvent("onclick",b)}),a.cloneNode(!0).fireEvent("onclick")),h=c.createElement("input"),h.value="t",h.setAttribute("type","radio"),j.radioValue=h.value==="t",h.setAttribute("checked","checked"),a.appendChild(h),k=c.createDocumentFragment(),k.appendChild(a.firstChild),j.checkClone=k.cloneNode(!0).cloneNode(!0).lastChild.checked,a.innerHTML="",a.style.width=a.style.paddingLeft="1px",l=c.createElement("body"),m={visibility:"hidden",width:0,height:0,border:0,margin:0,background:"none"};for(q in m)l.style[q]=m[q];l.appendChild(a),b.insertBefore(l,b.firstChild),j.appendChecked=h.checked,j.boxModel=a.offsetWidth===2,"zoom"in a.style&&(a.style.display="inline",a.style.zoom=1,j.inlineBlockNeedsLayout=a.offsetWidth===2,a.style.display="",a.innerHTML="<div style='width:4px;'></div>",j.shrinkWrapBlocks=a.offsetWidth!==2),a.innerHTML="<table><tr><td style='padding:0;border:0;display:none'></td><td>t</td></tr></table>",n=a.getElementsByTagName("td"),r=n[0].offsetHeight===0,n[0].style.display="",n[1].style.display="none",j.reliableHiddenOffsets=r&&n[0].offsetHeight===0,a.innerHTML="",c.defaultView&&c.defaultView.getComputedStyle&&(i=c.createElement("div"),i.style.width="0",i.style.marginRight="0",a.appendChild(i),j.reliableMarginRight=(parseInt((c.defaultView.getComputedStyle(i,null)||{marginRight:0}).marginRight,10)||0)===0),l.innerHTML="",b.removeChild(l);if(a.attachEvent)for(q in{submit:1,change:1,focusin:1})p="on"+q,r=p in a,r||(a.setAttribute(p,"return;"),r=typeof a[p]=="function"),j[q+"Bubbles"]=r;return j}(),f.boxModel=f.support.boxModel;var i=/^(?:\{.*\}|\[.*\])$/,j=/([a-z])([A-Z])/g;f.extend({cache:{},uuid:0,expando:"jQuery"+(f.fn.jquery+Math.random()).replace(/\D/g,""),noData:{embed:!0,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",applet:!0},hasData:function(a){a=a.nodeType?f.cache[a[f.expando]]:a[f.expando];return!!a&&!l(a)},data:function(a,c,d,e){if(!!f.acceptData(a)){var g=f.expando,h=typeof c=="string",i,j=a.nodeType,k=j?f.cache:a,l=j?a[f.expando]:a[f.expando]&&f.expando;if((!l||e&&l&&!k[l][g])&&h&&d===b)return;l||(j?a[f.expando]=l=++f.uuid:l=f.expando),k[l]||(k[l]={},j||(k[l].toJSON=f.noop));if(typeof c=="object"||typeof c=="function")e?k[l][g]=f.extend(k[l][g],c):k[l]=f.extend(k[l],c);i=k[l],e&&(i[g]||(i[g]={}),i=i[g]),d!==b&&(i[f.camelCase(c)]=d);if(c==="events"&&!i[c])return i[g]&&i[g].events;return h?i[f.camelCase(c)]:i}},removeData:function(b,c,d){if(!!f.acceptData(b)){var e=f.expando,g=b.nodeType,h=g?f.cache:b,i=g?b[f.expando]:f.expando;if(!h[i])return;if(c){var j=d?h[i][e]:h[i];if(j){delete j[c];if(!l(j))return}}if(d){delete h[i][e];if(!l(h[i]))return}var k=h[i][e];f.support.deleteExpando||h!=a?delete h[i]:h[i]=null,k?(h[i]={},g||(h[i].toJSON=f.noop),h[i][e]=k):g&&(f.support.deleteExpando?delete b[f.expando]:b.removeAttribute?b.removeAttribute(f.expando):b[f.expando]=null)}},_data:function(a,b,c){return f.data(a,b,c,!0)},acceptData:function(a){if(a.nodeName){var b=f.noData[a.nodeName.toLowerCase()];if(b)return b!==!0&&a.getAttribute("classid")===b}return!0}}),f.fn.extend({data:function(a,c){var d=null;if(typeof a=="undefined"){if(this.length){d=f.data(this[0]);if(this[0].nodeType===1){var e=this[0].attributes,g;for(var h=0,i=e.length;h<i;h++)g=e[h].name,g.indexOf("data-")===0&&(g=f.camelCase(g.substring(5)),k(this[0],g,d[g]))}}return d}if(typeof a=="object")return this.each(function(){f.data(this,a)});var j=a.split(".");j[1]=j[1]?"."+j[1]:"";if(c===b){d=this.triggerHandler("getData"+j[1]+"!",[j[0]]),d===b&&this.length&&(d=f.data(this[0],a),d=k(this[0],a,d));return d===b&&j[1]?this.data(j[0]):d}return this.each(function(){var b=f(this),d=[j[0],c];b.triggerHandler("setData"+j[1]+"!",d),f.data(this,a,c),b.triggerHandler("changeData"+j[1]+"!",d)})},removeData:function(a){return this.each(function(){f.removeData(this,a)})}}),f.extend({_mark:function(a,c){a&&(c=(c||"fx")+"mark",f.data(a,c,(f.data(a,c,b,!0)||0)+1,!0))},_unmark:function(a,c,d){a!==!0&&(d=c,c=a,a=!1);if(c){d=d||"fx";var e=d+"mark",g=a?0:(f.data(c,e,b,!0)||1)-1;g?f.data(c,e,g,!0):(f.removeData(c,e,!0),m(c,d,"mark"))}},queue:function(a,c,d){if(a){c=(c||"fx")+"queue";var e=f.data(a,c,b,!0);d&&(!e||f.isArray(d)?e=f.data(a,c,f.makeArray(d),!0):e.push(d));return e||[]}},dequeue:function(a,b){b=b||"fx";var c=f.queue(a,b),d=c.shift(),e;d==="inprogress"&&(d=c.shift()),d&&(b==="fx"&&c.unshift("inprogress"),d.call(a,function(){f.dequeue(a,b)})),c.length||(f.removeData(a,b+"queue",!0),m(a,b,"queue"))}}),f.fn.extend({queue:function(a,c){typeof a!="string"&&(c=a,a="fx");if(c===b)return f.queue(this[0],a);return this.each(function(){var b=f.queue(this,a,c);a==="fx"&&b[0]!=="inprogress"&&f.dequeue(this,a)})},dequeue:function(a){return this.each(function(){f.dequeue(this,a)})},delay:function(a,b){a=f.fx?f.fx.speeds[a]||a:a,b=b||"fx";return this.queue(b,function(){var c=this;setTimeout(function(){f.dequeue(c,b)},a)})},clearQueue:function(a){return this.queue(a||"fx",[])},promise:function(a,c){function m(){--h||d.resolveWith(e,[e])}typeof a!="string"&&(c=a,a=b),a=a||"fx";var d=f.Deferred(),e=this,g=e.length,h=1,i=a+"defer",j=a+"queue",k=a+"mark",l;while(g--)if(l=f.data(e[g],i,b,!0)||(f.data(e[g],j,b,!0)||f.data(e[g],k,b,!0))&&f.data(e[g],i,f._Deferred(),!0))h++,l.done(m);m();return d.promise()}});var n=/[\n\t\r]/g,o=/\s+/,p=/\r/g,q=/^(?:button|input)$/i,r=/^(?:button|input|object|select|textarea)$/i,s=/^a(?:rea)?$/i,t=/^(?:autofocus|autoplay|async|checked|controls|defer|disabled|hidden|loop|multiple|open|readonly|required|scoped|selected)$/i,u=/\:/,v,w;f.fn.extend({attr:function(a,b){return f.access(this,a,b,!0,f.attr)},removeAttr:function(a){return this.each(function(){f.removeAttr(this,a)})},prop:function(a,b){return f.access(this,a,b,!0,f.prop)},removeProp:function(a){a=f.propFix[a]||a;return this.each(function(){try{this[a]=b,delete this[a]}catch(c){}})},addClass:function(a){if(f.isFunction(a))return this.each(function(b){var c=f(this);c.addClass(a.call(this,b,c.attr("class")||""))});if(a&&typeof a=="string"){var b=(a||"").split(o);for(var c=0,d=this.length;c<d;c++){var e=this[c];if(e.nodeType===1)if(!e.className)e.className=a;else{var g=" "+e.className+" ",h=e.className;for(var i=0,j=b.length;i<j;i++)g.indexOf(" "+b[i]+" ")<0&&(h+=" "+b[i]);e.className=f.trim(h)}}}return this},removeClass:function(a){if(f.isFunction(a))return this.each(function(b){var c=f(this);c.removeClass(a.call(this,b,c.attr("class")))});if(a&&typeof a=="string"||a===b){var c=(a||"").split(o);for(var d=0,e=this.length;d<e;d++){var g=this[d];if(g.nodeType===1&&g.className)if(a){var h=(" "+g.className+" ").replace(n," ");for(var i=0,j=c.length;i<j;i++)h=h.replace(" "+c[i]+" "," ");g.className=f.trim(h)}else g.className=""}}return this},toggleClass:function(a,b){var c=typeof a,d=typeof b=="boolean";if(f.isFunction(a))return this.each(function(c){var d=f(this);d.toggleClass(a.call(this,c,d.attr("class"),b),b)});return this.each(function(){if(c==="string"){var e,g=0,h=f(this),i=b,j=a.split(o);while(e=j[g++])i=d?i:!h.hasClass(e),h[i?"addClass":"removeClass"](e)}else if(c==="undefined"||c==="boolean")this.className&&f._data(this,"__className__",this.className),this.className=this.className||a===!1?"":f._data(this,"__className__")||""})},hasClass:function(a){var b=" "+a+" ";for(var c=0,d=this.length;c<d;c++)if((" "+this[c].className+" ").replace(n," ").indexOf(b)>-1)return!0;return!1},val:function(a){var c,d,e=this[0];if(!arguments.length){if(e){c=f.valHooks[e.nodeName.toLowerCase()]||f.valHooks[e.type];if(c&&"get"in c&&(d=c.get(e,"value"))!==b)return d;return(e.value||"").replace(p,"")}return b}var g=f.isFunction(a);return this.each(function(d){var e=f(this),h;if(this.nodeType===1){g?h=a.call(this,d,e.val()):h=a,h==null?h="":typeof h=="number"?h+="":f.isArray(h)&&(h=f.map(h,function(a){return a==null?"":a+""})),c=f.valHooks[this.nodeName.toLowerCase()]||f.valHooks[this.type];if(!c||!("set"in c)||c.set(this,h,"value")===b)this.value=h}})}}),f.extend({valHooks:{option:{get:function(a){var b=a.attributes.value;return!b||b.specified?a.value:a.text}},select:{get:function(a){var b,c=a.selectedIndex,d=[],e=a.options,g=a.type==="select-one";if(c<0)return null;for(var h=g?c:0,i=g?c+1:e.length;h<i;h++){var j=e[h];if(j.selected&&(f.support.optDisabled?!j.disabled:j.getAttribute("disabled")===null)&&(!j.parentNode.disabled||!f.nodeName(j.parentNode,"optgroup"))){b=f(j).val();if(g)return b;d.push(b)}}if(g&&!d.length&&e.length)return f(e[c]).val();return d},set:function(a,b){var c=f.makeArray(b);f(a).find("option").each(function(){this.selected=f.inArray(f(this).val(),c)>=0}),c.length||(a.selectedIndex=-1);return c}}},attrFn:{val:!0,css:!0,html:!0,text:!0,data:!0,width:!0,height:!0,offset:!0},attrFix:{tabindex:"tabIndex"},attr:function(a,c,d,e){var g=a.nodeType;if(!a||g===3||g===8||g===2)return b;if(e&&c in f.attrFn)return f(a)[c](d);if(!("getAttribute"in a))return f.prop(a,c,d);var h,i,j=g!==1||!f.isXMLDoc(a);c=j&&f.attrFix[c]||c,i=f.attrHooks[c],i||(!t.test(c)||typeof d!="boolean"&&d!==b&&d.toLowerCase()!==c.toLowerCase()?v&&(f.nodeName(a,"form")||u.test(c))&&(i=v):i=w);if(d!==b){if(d===null){f.removeAttr(a,c);return b}if(i&&"set"in i&&j&&(h=i.set(a,d,c))!==b)return h;a.setAttribute(c,""+d);return d}if(i&&"get"in i&&j)return i.get(a,c);h=a.getAttribute(c);return h===null?b:h},removeAttr:function(a,b){var c;a.nodeType===1&&(b=f.attrFix[b]||b,f.support.getSetAttribute?a.removeAttribute(b):(f.attr(a,b,""),a.removeAttributeNode(a.getAttributeNode(b))),t.test(b)&&(c=f.propFix[b]||b)in a&&(a[c]=!1))},attrHooks:{type:{set:function(a,b){if(q.test(a.nodeName)&&a.parentNode)f.error("type property can't be changed");else if(!f.support.radioValue&&b==="radio"&&f.nodeName(a,"input")){var c=a.value;a.setAttribute("type",b),c&&(a.value=c);return b}}},tabIndex:{get:function(a){var c=a.getAttributeNode("tabIndex");return c&&c.specified?parseInt(c.value,10):r.test(a.nodeName)||s.test(a.nodeName)&&a.href?0:b}}},propFix:{tabindex:"tabIndex",readonly:"readOnly","for":"htmlFor","class":"className",maxlength:"maxLength",cellspacing:"cellSpacing",cellpadding:"cellPadding",rowspan:"rowSpan",colspan:"colSpan",usemap:"useMap",frameborder:"frameBorder",contenteditable:"contentEditable"},prop:function(a,c,d){var e=a.nodeType;if(!a||e===3||e===8||e===2)return b;var g,h,i=e!==1||!f.isXMLDoc(a);c=i&&f.propFix[c]||c,h=f.propHooks[c];return d!==b?h&&"set"in h&&(g=h.set(a,d,c))!==b?g:a[c]=d:h&&"get"in h&&(g=h.get(a,c))!==b?g:a[c]},propHooks:{}}),w={get:function(a,c){return a[f.propFix[c]||c]?c.toLowerCase():b},set:function(a,b,c){var d;b===!1?f.removeAttr(a,c):(d=f.propFix[c]||c,d in a&&(a[d]=b),a.setAttribute(c,c.toLowerCase()));return c}},f.attrHooks.value={get:function(a,b){if(v&&f.nodeName(a,"button"))return v.get(a,b);return a.value},set:function(a,b,c){if(v&&f.nodeName(a,"button"))return v.set(a,b,c);a.value=b}},f.support.getSetAttribute||(f.attrFix=f.propFix,v=f.attrHooks.name=f.valHooks.button={get:function(a,c){var d;d=a.getAttributeNode(c);return d&&d.nodeValue!==""?d.nodeValue:b},set:function(a,b,c){var d=a.getAttributeNode(c);if(d){d.nodeValue=b;return b}}},f.each(["width","height"],function(a,b){f.attrHooks[b]=f.extend(f.attrHooks[b],{set:function(a,c){if(c===""){a.setAttribute(b,"auto");return c}}})})),f.support.hrefNormalized||f.each(["href","src","width","height"],function(a,c){f.attrHooks[c]=f.extend(f.attrHooks[c],{get:function(a){var d=a.getAttribute(c,2);return d===null?b:d}})}),f.support.style||(f.attrHooks.style={get:function(a){return a.style.cssText.toLowerCase()||b},set:function(a,b){return a.style.cssText=""+b}}),f.support.optSelected||(f.propHooks.selected=f.extend(f.propHooks.selected,{get:function(a){var b=a.parentNode;b&&(b.selectedIndex,b.parentNode&&b.parentNode.selectedIndex)}})),f.support.checkOn||f.each(["radio","checkbox"],function(){f.valHooks[this]={get:function(a){return a.getAttribute("value")===null?"on":a.value}}}),f.each(["radio","checkbox"],function(){f.valHooks[this]=f.extend(f.valHooks[this],{set:function(a,b){if(f.isArray(b))return a.checked=f.inArray(f(a).val(),b)>=0}})});var x=Object.prototype.hasOwnProperty,y=/\.(.*)$/,z=/^(?:textarea|input|select)$/i,A=/\./g,B=/ /g,C=/[^\w\s.|`]/g,D=function(a){return a.replace(C,"\\$&")};f.event={add:function(a,c,d,e){if(a.nodeType!==3&&a.nodeType!==8){if(d===!1)d=E;else if(!d)return;var g,h;d.handler&&(g=d,d=g.handler),d.guid||(d.guid=f.guid++);var i=f._data(a);if(!i)return;var j=i.events,k=i.handle;j||(i.events=j={}),k||(i.handle=k=function(a){return typeof f!="undefined"&&(!a||f.event.triggered!==a.type)?f.event.handle.apply(k.elem,arguments):b}),k.elem=a,c=c.split(" ");var l,m=0,n;while(l=c[m++]){h=g?f.extend({},g):{handler:d,data:e},l.indexOf(".")>-1?(n=l.split("."),l=n.shift(),h.namespace=n.slice(0).sort().join(".")):(n=[],h.namespace=""),h.type=l,h.guid||(h.guid=d.guid);var o=j[l],p=f.event.special[l]||{};if(!o){o=j[l]=[];if(!p.setup||p.setup.call(a,e,n,k)===!1)a.addEventListener?a.addEventListener(l,k,!1):a.attachEvent&&a.attachEvent("on"+l,k)}p.add&&(p.add.call(a,h),h.handler.guid||(h.handler.guid=d.guid)),o.push(h),f.event.global[l]=!0}a=null}},global:{},remove:function(a,c,d,e){if(a.nodeType!==3&&a.nodeType!==8){d===!1&&(d=E);var g,h,i,j,k=0,l,m,n,o,p,q,r,s=f.hasData(a)&&f._data(a),t=s&&s.events;if(!s||!t)return;c&&c.type&&(d=c.handler,c=c.type);if(!c||typeof c=="string"&&c.charAt(0)==="."){c=c||"";for(h in t)f.event.remove(a,h+c);return}c=c.split(" ");while(h=c[k++]){r=h,q=null,l=h.indexOf(".")<0,m=[],l||(m=h.split("."),h=m.shift(),n=new RegExp("(^|\\.)"+f.map(m.slice(0).sort(),D).join("\\.(?:.*\\.)?")+"(\\.|$)")),p=t[h];if(!p)continue;if(!d){for(j=0;j<p.length;j++){q=p[j];if(l||n.test(q.namespace))f.event.remove(a,r,q.handler,j),p.splice(j--,1)}continue}o=f.event.special[h]||{};for(j=e||0;j<p.length;j++){q=p[j];if(d.guid===q.guid){if(l||n.test(q.namespace))e==null&&p.splice(j--,1),o.remove&&o.remove.call(a,q);if(e!=null)break}}if(p.length===0||e!=null&&p.length===1)(!o.teardown||o.teardown.call(a,m)===!1)&&f.removeEvent(a,h,s.handle),g=null,delete t[h]}if(f.isEmptyObject(t)){var u=s.handle;u&&(u.elem=null),delete s.events,delete s.handle,f.isEmptyObject(s)&&f.removeData(a,b,!0)}}},customEvent:{getData:!0,setData:!0,changeData:!0},trigger:function(c,d,e,g){var h=c.type||c,i=[],j;h.indexOf("!")>=0&&(h=h.slice(0,-1),j=!0),h.indexOf(".")>=0&&(i=h.split("."),h=i.shift(),i.sort());if(!!e&&!f.event.customEvent[h]||!!f.event.global[h]){c=typeof c=="object"?c[f.expando]?c:new f.Event(h,c):new f.Event(h),c.type=h,c.exclusive=j,c.namespace=i.join("."),c.namespace_re=new RegExp("(^|\\.)"+i.join("\\.(?:.*\\.)?")+"(\\.|$)");if(g||!e)c.preventDefault(),c.stopPropagation();if(!e){f.each(f.cache,function(){var a=f.expando,b=this[a];b&&b.events&&b.events[h]&&f.event.trigger(c,d,b.handle.elem
+)});return}if(e.nodeType===3||e.nodeType===8)return;c.result=b,c.target=e,d=d?f.makeArray(d):[],d.unshift(c);var k=e,l=h.indexOf(":")<0?"on"+h:"";do{var m=f._data(k,"handle");c.currentTarget=k,m&&m.apply(k,d),l&&f.acceptData(k)&&k[l]&&k[l].apply(k,d)===!1&&(c.result=!1,c.preventDefault()),k=k.parentNode||k.ownerDocument||k===c.target.ownerDocument&&a}while(k&&!c.isPropagationStopped());if(!c.isDefaultPrevented()){var n,o=f.event.special[h]||{};if((!o._default||o._default.call(e.ownerDocument,c)===!1)&&(h!=="click"||!f.nodeName(e,"a"))&&f.acceptData(e)){try{l&&e[h]&&(n=e[l],n&&(e[l]=null),f.event.triggered=h,e[h]())}catch(p){}n&&(e[l]=n),f.event.triggered=b}}return c.result}},handle:function(c){c=f.event.fix(c||a.event);var d=((f._data(this,"events")||{})[c.type]||[]).slice(0),e=!c.exclusive&&!c.namespace,g=Array.prototype.slice.call(arguments,0);g[0]=c,c.currentTarget=this;for(var h=0,i=d.length;h<i;h++){var j=d[h];if(e||c.namespace_re.test(j.namespace)){c.handler=j.handler,c.data=j.data,c.handleObj=j;var k=j.handler.apply(this,g);k!==b&&(c.result=k,k===!1&&(c.preventDefault(),c.stopPropagation()));if(c.isImmediatePropagationStopped())break}}return c.result},props:"altKey attrChange attrName bubbles button cancelable charCode clientX clientY ctrlKey currentTarget data detail eventPhase fromElement handler keyCode layerX layerY metaKey newValue offsetX offsetY pageX pageY prevValue relatedNode relatedTarget screenX screenY shiftKey srcElement target toElement view wheelDelta which".split(" "),fix:function(a){if(a[f.expando])return a;var d=a;a=f.Event(d);for(var e=this.props.length,g;e;)g=this.props[--e],a[g]=d[g];a.target||(a.target=a.srcElement||c),a.target.nodeType===3&&(a.target=a.target.parentNode),!a.relatedTarget&&a.fromElement&&(a.relatedTarget=a.fromElement===a.target?a.toElement:a.fromElement);if(a.pageX==null&&a.clientX!=null){var h=a.target.ownerDocument||c,i=h.documentElement,j=h.body;a.pageX=a.clientX+(i&&i.scrollLeft||j&&j.scrollLeft||0)-(i&&i.clientLeft||j&&j.clientLeft||0),a.pageY=a.clientY+(i&&i.scrollTop||j&&j.scrollTop||0)-(i&&i.clientTop||j&&j.clientTop||0)}a.which==null&&(a.charCode!=null||a.keyCode!=null)&&(a.which=a.charCode!=null?a.charCode:a.keyCode),!a.metaKey&&a.ctrlKey&&(a.metaKey=a.ctrlKey),!a.which&&a.button!==b&&(a.which=a.button&1?1:a.button&2?3:a.button&4?2:0);return a},guid:1e8,proxy:f.proxy,special:{ready:{setup:f.bindReady,teardown:f.noop},live:{add:function(a){f.event.add(this,O(a.origType,a.selector),f.extend({},a,{handler:N,guid:a.handler.guid}))},remove:function(a){f.event.remove(this,O(a.origType,a.selector),a)}},beforeunload:{setup:function(a,b,c){f.isWindow(this)&&(this.onbeforeunload=c)},teardown:function(a,b){this.onbeforeunload===b&&(this.onbeforeunload=null)}}}},f.removeEvent=c.removeEventListener?function(a,b,c){a.removeEventListener&&a.removeEventListener(b,c,!1)}:function(a,b,c){a.detachEvent&&a.detachEvent("on"+b,c)},f.Event=function(a,b){if(!this.preventDefault)return new f.Event(a,b);a&&a.type?(this.originalEvent=a,this.type=a.type,this.isDefaultPrevented=a.defaultPrevented||a.returnValue===!1||a.getPreventDefault&&a.getPreventDefault()?F:E):this.type=a,b&&f.extend(this,b),this.timeStamp=f.now(),this[f.expando]=!0},f.Event.prototype={preventDefault:function(){this.isDefaultPrevented=F;var a=this.originalEvent;!a||(a.preventDefault?a.preventDefault():a.returnValue=!1)},stopPropagation:function(){this.isPropagationStopped=F;var a=this.originalEvent;!a||(a.stopPropagation&&a.stopPropagation(),a.cancelBubble=!0)},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=F,this.stopPropagation()},isDefaultPrevented:E,isPropagationStopped:E,isImmediatePropagationStopped:E};var G=function(a){var b=a.relatedTarget;a.type=a.data;try{if(b&&b!==c&&!b.parentNode)return;while(b&&b!==this)b=b.parentNode;b!==this&&f.event.handle.apply(this,arguments)}catch(d){}},H=function(a){a.type=a.data,f.event.handle.apply(this,arguments)};f.each({mouseenter:"mouseover",mouseleave:"mouseout"},function(a,b){f.event.special[a]={setup:function(c){f.event.add(this,b,c&&c.selector?H:G,a)},teardown:function(a){f.event.remove(this,b,a&&a.selector?H:G)}}}),f.support.submitBubbles||(f.event.special.submit={setup:function(a,b){if(!f.nodeName(this,"form"))f.event.add(this,"click.specialSubmit",function(a){var b=a.target,c=b.type;(c==="submit"||c==="image")&&f(b).closest("form").length&&L("submit",this,arguments)}),f.event.add(this,"keypress.specialSubmit",function(a){var b=a.target,c=b.type;(c==="text"||c==="password")&&f(b).closest("form").length&&a.keyCode===13&&L("submit",this,arguments)});else return!1},teardown:function(a){f.event.remove(this,".specialSubmit")}});if(!f.support.changeBubbles){var I,J=function(a){var b=a.type,c=a.value;b==="radio"||b==="checkbox"?c=a.checked:b==="select-multiple"?c=a.selectedIndex>-1?f.map(a.options,function(a){return a.selected}).join("-"):"":f.nodeName(a,"select")&&(c=a.selectedIndex);return c},K=function(c){var d=c.target,e,g;if(!!z.test(d.nodeName)&&!d.readOnly){e=f._data(d,"_change_data"),g=J(d),(c.type!=="focusout"||d.type!=="radio")&&f._data(d,"_change_data",g);if(e===b||g===e)return;if(e!=null||g)c.type="change",c.liveFired=b,f.event.trigger(c,arguments[1],d)}};f.event.special.change={filters:{focusout:K,beforedeactivate:K,click:function(a){var b=a.target,c=f.nodeName(b,"input")?b.type:"";(c==="radio"||c==="checkbox"||f.nodeName(b,"select"))&&K.call(this,a)},keydown:function(a){var b=a.target,c=f.nodeName(b,"input")?b.type:"";(a.keyCode===13&&!f.nodeName(b,"textarea")||a.keyCode===32&&(c==="checkbox"||c==="radio")||c==="select-multiple")&&K.call(this,a)},beforeactivate:function(a){var b=a.target;f._data(b,"_change_data",J(b))}},setup:function(a,b){if(this.type==="file")return!1;for(var c in I)f.event.add(this,c+".specialChange",I[c]);return z.test(this.nodeName)},teardown:function(a){f.event.remove(this,".specialChange");return z.test(this.nodeName)}},I=f.event.special.change.filters,I.focus=I.beforeactivate}f.support.focusinBubbles||f.each({focus:"focusin",blur:"focusout"},function(a,b){function e(a){var c=f.event.fix(a);c.type=b,c.originalEvent={},f.event.trigger(c,null,c.target),c.isDefaultPrevented()&&a.preventDefault()}var d=0;f.event.special[b]={setup:function(){d++===0&&c.addEventListener(a,e,!0)},teardown:function(){--d===0&&c.removeEventListener(a,e,!0)}}}),f.each(["bind","one"],function(a,c){f.fn[c]=function(a,d,e){var g;if(typeof a=="object"){for(var h in a)this[c](h,d,a[h],e);return this}if(arguments.length===2||d===!1)e=d,d=b;c==="one"?(g=function(a){f(this).unbind(a,g);return e.apply(this,arguments)},g.guid=e.guid||f.guid++):g=e;if(a==="unload"&&c!=="one")this.one(a,d,e);else for(var i=0,j=this.length;i<j;i++)f.event.add(this[i],a,g,d);return this}}),f.fn.extend({unbind:function(a,b){if(typeof a=="object"&&!a.preventDefault)for(var c in a)this.unbind(c,a[c]);else for(var d=0,e=this.length;d<e;d++)f.event.remove(this[d],a,b);return this},delegate:function(a,b,c,d){return this.live(b,c,d,a)},undelegate:function(a,b,c){return arguments.length===0?this.unbind("live"):this.die(b,null,c,a)},trigger:function(a,b){return this.each(function(){f.event.trigger(a,b,this)})},triggerHandler:function(a,b){if(this[0])return f.event.trigger(a,b,this[0],!0)},toggle:function(a){var b=arguments,c=a.guid||f.guid++,d=0,e=function(c){var e=(f.data(this,"lastToggle"+a.guid)||0)%d;f.data(this,"lastToggle"+a.guid,e+1),c.preventDefault();return b[e].apply(this,arguments)||!1};e.guid=c;while(d<b.length)b[d++].guid=c;return this.click(e)},hover:function(a,b){return this.mouseenter(a).mouseleave(b||a)}});var M={focus:"focusin",blur:"focusout",mouseenter:"mouseover",mouseleave:"mouseout"};f.each(["live","die"],function(a,c){f.fn[c]=function(a,d,e,g){var h,i=0,j,k,l,m=g||this.selector,n=g?this:f(this.context);if(typeof a=="object"&&!a.preventDefault){for(var o in a)n[c](o,d,a[o],m);return this}if(c==="die"&&!a&&g&&g.charAt(0)==="."){n.unbind(g);return this}if(d===!1||f.isFunction(d))e=d||E,d=b;a=(a||"").split(" ");while((h=a[i++])!=null){j=y.exec(h),k="",j&&(k=j[0],h=h.replace(y,""));if(h==="hover"){a.push("mouseenter"+k,"mouseleave"+k);continue}l=h,M[h]?(a.push(M[h]+k),h=h+k):h=(M[h]||h)+k;if(c==="live")for(var p=0,q=n.length;p<q;p++)f.event.add(n[p],"live."+O(h,m),{data:d,selector:m,handler:e,origType:h,origHandler:e,preType:l});else n.unbind("live."+O(h,m),e)}return this}}),f.each("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error".split(" "),function(a,b){f.fn[b]=function(a,c){c==null&&(c=a,a=null);return arguments.length>0?this.bind(b,a,c):this.trigger(b)},f.attrFn&&(f.attrFn[b]=!0)}),function(){function u(a,b,c,d,e,f){for(var g=0,h=d.length;g<h;g++){var i=d[g];if(i){var j=!1;i=i[a];while(i){if(i.sizcache===c){j=d[i.sizset];break}if(i.nodeType===1){f||(i.sizcache=c,i.sizset=g);if(typeof b!="string"){if(i===b){j=!0;break}}else if(k.filter(b,[i]).length>0){j=i;break}}i=i[a]}d[g]=j}}}function t(a,b,c,d,e,f){for(var g=0,h=d.length;g<h;g++){var i=d[g];if(i){var j=!1;i=i[a];while(i){if(i.sizcache===c){j=d[i.sizset];break}i.nodeType===1&&!f&&(i.sizcache=c,i.sizset=g);if(i.nodeName.toLowerCase()===b){j=i;break}i=i[a]}d[g]=j}}}var a=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^\[\]]*\]|['"][^'"]*['"]|[^\[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,d=0,e=Object.prototype.toString,g=!1,h=!0,i=/\\/g,j=/\W/;[0,0].sort(function(){h=!1;return 0});var k=function(b,d,f,g){f=f||[],d=d||c;var h=d;if(d.nodeType!==1&&d.nodeType!==9)return[];if(!b||typeof b!="string")return f;var i,j,n,o,q,r,s,t,u=!0,w=k.isXML(d),x=[],y=b;do{a.exec(""),i=a.exec(y);if(i){y=i[3],x.push(i[1]);if(i[2]){o=i[3];break}}}while(i);if(x.length>1&&m.exec(b))if(x.length===2&&l.relative[x[0]])j=v(x[0]+x[1],d);else{j=l.relative[x[0]]?[d]:k(x.shift(),d);while(x.length)b=x.shift(),l.relative[b]&&(b+=x.shift()),j=v(b,j)}else{!g&&x.length>1&&d.nodeType===9&&!w&&l.match.ID.test(x[0])&&!l.match.ID.test(x[x.length-1])&&(q=k.find(x.shift(),d,w),d=q.expr?k.filter(q.expr,q.set)[0]:q.set[0]);if(d){q=g?{expr:x.pop(),set:p(g)}:k.find(x.pop(),x.length===1&&(x[0]==="~"||x[0]==="+")&&d.parentNode?d.parentNode:d,w),j=q.expr?k.filter(q.expr,q.set):q.set,x.length>0?n=p(j):u=!1;while(x.length)r=x.pop(),s=r,l.relative[r]?s=x.pop():r="",s==null&&(s=d),l.relative[r](n,s,w)}else n=x=[]}n||(n=j),n||k.error(r||b);if(e.call(n)==="[object Array]")if(!u)f.push.apply(f,n);else if(d&&d.nodeType===1)for(t=0;n[t]!=null;t++)n[t]&&(n[t]===!0||n[t].nodeType===1&&k.contains(d,n[t]))&&f.push(j[t]);else for(t=0;n[t]!=null;t++)n[t]&&n[t].nodeType===1&&f.push(j[t]);else p(n,f);o&&(k(o,h,f,g),k.uniqueSort(f));return f};k.uniqueSort=function(a){if(r){g=h,a.sort(r);if(g)for(var b=1;b<a.length;b++)a[b]===a[b-1]&&a.splice(b--,1)}return a},k.matches=function(a,b){return k(a,null,null,b)},k.matchesSelector=function(a,b){return k(b,null,null,[a]).length>0},k.find=function(a,b,c){var d;if(!a)return[];for(var e=0,f=l.order.length;e<f;e++){var g,h=l.order[e];if(g=l.leftMatch[h].exec(a)){var j=g[1];g.splice(1,1);if(j.substr(j.length-1)!=="\\"){g[1]=(g[1]||"").replace(i,""),d=l.find[h](g,b,c);if(d!=null){a=a.replace(l.match[h],"");break}}}}d||(d=typeof b.getElementsByTagName!="undefined"?b.getElementsByTagName("*"):[]);return{set:d,expr:a}},k.filter=function(a,c,d,e){var f,g,h=a,i=[],j=c,m=c&&c[0]&&k.isXML(c[0]);while(a&&c.length){for(var n in l.filter)if((f=l.leftMatch[n].exec(a))!=null&&f[2]){var o,p,q=l.filter[n],r=f[1];g=!1,f.splice(1,1);if(r.substr(r.length-1)==="\\")continue;j===i&&(i=[]);if(l.preFilter[n]){f=l.preFilter[n](f,j,d,i,e,m);if(!f)g=o=!0;else if(f===!0)continue}if(f)for(var s=0;(p=j[s])!=null;s++)if(p){o=q(p,f,s,j);var t=e^!!o;d&&o!=null?t?g=!0:j[s]=!1:t&&(i.push(p),g=!0)}if(o!==b){d||(j=i),a=a.replace(l.match[n],"");if(!g)return[];break}}if(a===h)if(g==null)k.error(a);else break;h=a}return j},k.error=function(a){throw"Syntax error, unrecognized expression: "+a};var l=k.selectors={order:["ID","NAME","TAG"],match:{ID:/#((?:[\w\u00c0-\uFFFF\-]|\\.)+)/,CLASS:/\.((?:[\w\u00c0-\uFFFF\-]|\\.)+)/,NAME:/\[name=['"]*((?:[\w\u00c0-\uFFFF\-]|\\.)+)['"]*\]/,ATTR:/\[\s*((?:[\w\u00c0-\uFFFF\-]|\\.)+)\s*(?:(\S?=)\s*(?:(['"])(.*?)\3|(#?(?:[\w\u00c0-\uFFFF\-]|\\.)*)|)|)\s*\]/,TAG:/^((?:[\w\u00c0-\uFFFF\*\-]|\\.)+)/,CHILD:/:(only|nth|last|first)-child(?:\(\s*(even|odd|(?:[+\-]?\d+|(?:[+\-]?\d*)?n\s*(?:[+\-]\s*\d+)?))\s*\))?/,POS:/:(nth|eq|gt|lt|first|last|even|odd)(?:\((\d*)\))?(?=[^\-]|$)/,PSEUDO:/:((?:[\w\u00c0-\uFFFF\-]|\\.)+)(?:\((['"]?)((?:\([^\)]+\)|[^\(\)]*)+)\2\))?/},leftMatch:{},attrMap:{"class":"className","for":"htmlFor"},attrHandle:{href:function(a){return a.getAttribute("href")},type:function(a){return a.getAttribute("type")}},relative:{"+":function(a,b){var c=typeof b=="string",d=c&&!j.test(b),e=c&&!d;d&&(b=b.toLowerCase());for(var f=0,g=a.length,h;f<g;f++)if(h=a[f]){while((h=h.previousSibling)&&h.nodeType!==1);a[f]=e||h&&h.nodeName.toLowerCase()===b?h||!1:h===b}e&&k.filter(b,a,!0)},">":function(a,b){var c,d=typeof b=="string",e=0,f=a.length;if(d&&!j.test(b)){b=b.toLowerCase();for(;e<f;e++){c=a[e];if(c){var g=c.parentNode;a[e]=g.nodeName.toLowerCase()===b?g:!1}}}else{for(;e<f;e++)c=a[e],c&&(a[e]=d?c.parentNode:c.parentNode===b);d&&k.filter(b,a,!0)}},"":function(a,b,c){var e,f=d++,g=u;typeof b=="string"&&!j.test(b)&&(b=b.toLowerCase(),e=b,g=t),g("parentNode",b,f,a,e,c)},"~":function(a,b,c){var e,f=d++,g=u;typeof b=="string"&&!j.test(b)&&(b=b.toLowerCase(),e=b,g=t),g("previousSibling",b,f,a,e,c)}},find:{ID:function(a,b,c){if(typeof b.getElementById!="undefined"&&!c){var d=b.getElementById(a[1]);return d&&d.parentNode?[d]:[]}},NAME:function(a,b){if(typeof b.getElementsByName!="undefined"){var c=[],d=b.getElementsByName(a[1]);for(var e=0,f=d.length;e<f;e++)d[e].getAttribute("name")===a[1]&&c.push(d[e]);return c.length===0?null:c}},TAG:function(a,b){if(typeof b.getElementsByTagName!="undefined")return b.getElementsByTagName(a[1])}},preFilter:{CLASS:function(a,b,c,d,e,f){a=" "+a[1].replace(i,"")+" ";if(f)return a;for(var g=0,h;(h=b[g])!=null;g++)h&&(e^(h.className&&(" "+h.className+" ").replace(/[\t\n\r]/g," ").indexOf(a)>=0)?c||d.push(h):c&&(b[g]=!1));return!1},ID:function(a){return a[1].replace(i,"")},TAG:function(a,b){return a[1].replace(i,"").toLowerCase()},CHILD:function(a){if(a[1]==="nth"){a[2]||k.error(a[0]),a[2]=a[2].replace(/^\+|\s*/g,"");var b=/(-?)(\d*)(?:n([+\-]?\d*))?/.exec(a[2]==="even"&&"2n"||a[2]==="odd"&&"2n+1"||!/\D/.test(a[2])&&"0n+"+a[2]||a[2]);a[2]=b[1]+(b[2]||1)-0,a[3]=b[3]-0}else a[2]&&k.error(a[0]);a[0]=d++;return a},ATTR:function(a,b,c,d,e,f){var g=a[1]=a[1].replace(i,"");!f&&l.attrMap[g]&&(a[1]=l.attrMap[g]),a[4]=(a[4]||a[5]||"").replace(i,""),a[2]==="~="&&(a[4]=" "+a[4]+" ");return a},PSEUDO:function(b,c,d,e,f){if(b[1]==="not")if((a.exec(b[3])||"").length>1||/^\w/.test(b[3]))b[3]=k(b[3],null,null,c);else{var g=k.filter(b[3],c,d,!0^f);d||e.push.apply(e,g);return!1}else if(l.match.POS.test(b[0])||l.match.CHILD.test(b[0]))return!0;return b},POS:function(a){a.unshift(!0);return a}},filters:{enabled:function(a){return a.disabled===!1&&a.type!=="hidden"},disabled:function(a){return a.disabled===!0},checked:function(a){return a.checked===!0},selected:function(a){a.parentNode&&a.parentNode.selectedIndex;return a.selected===!0},parent:function(a){return!!a.firstChild},empty:function(a){return!a.firstChild},has:function(a,b,c){return!!k(c[3],a).length},header:function(a){return/h\d/i.test(a.nodeName)},text:function(a){var b=a.getAttribute("type"),c=a.type;return a.nodeName.toLowerCase()==="input"&&"text"===c&&(b===c||b===null)},radio:function(a){return a.nodeName.toLowerCase()==="input"&&"radio"===a.type},checkbox:function(a){return a.nodeName.toLowerCase()==="input"&&"checkbox"===a.type},file:function(a){return a.nodeName.toLowerCase()==="input"&&"file"===a.type},password:function(a){return a.nodeName.toLowerCase()==="input"&&"password"===a.type},submit:function(a){var b=a.nodeName.toLowerCase();return(b==="input"||b==="button")&&"submit"===a.type},image:function(a){return a.nodeName.toLowerCase()==="input"&&"image"===a.type},reset:function(a){var b=a.nodeName.toLowerCase();return(b==="input"||b==="button")&&"reset"===a.type},button:function(a){var b=a.nodeName.toLowerCase();return b==="input"&&"button"===a.type||b==="button"},input:function(a){return/input|select|textarea|button/i.test(a.nodeName)},focus:function(a){return a===a.ownerDocument.activeElement}},setFilters:{first:function(a,b){return b===0},last:function(a,b,c,d){return b===d.length-1},even:function(a,b){return b%2===0},odd:function(a,b){return b%2===1},lt:function(a,b,c){return b<c[3]-0},gt:function(a,b,c){return b>c[3]-0},nth:function(a,b,c){return c[3]-0===b},eq:function(a,b,c){return c[3]-0===b}},filter:{PSEUDO:function(a,b,c,d){var e=b[1],f=l.filters[e];if(f)return f(a,c,b,d);if(e==="contains")return(a.textContent||a.innerText||k.getText([a])||"").indexOf(b[3])>=0;if(e==="not"){var g=b[3];for(var h=0,i=g.length;h<i;h++)if(g[h]===a)return!1;return!0}k.error(e)},CHILD:function(a,b){var c=b[1],d=a;switch(c){case"only":case"first":while(d=d.previousSibling)if(d.nodeType===1)return!1;if(c==="first")return!0;d=a;case"last":while(d=d.nextSibling)if(d.nodeType===1)return!1;return!0;case"nth":var e=b[2],f=b[3];if(e===1&&f===0)return!0;var g=b[0],h=a.parentNode;if(h&&(h.sizcache!==g||!a.nodeIndex)){var i=0;for(d=h.firstChild;d;d=d.nextSibling)d.nodeType===1&&(d.nodeIndex=++i);h.sizcache=g}var j=a.nodeIndex-f;return e===0?j===0:j%e===0&&j/e>=0}},ID:function(a,b){return a.nodeType===1&&a.getAttribute("id")===b},TAG:function(a,b){return b==="*"&&a.nodeType===1||a.nodeName.toLowerCase()===b},CLASS:function(a,b){return(" "+(a.className||a.getAttribute("class"))+" ").indexOf(b)>-1},ATTR:function(a,b){var c=b[1],d=l.attrHandle[c]?l.attrHandle[c](a):a[c]!=null?a[c]:a.getAttribute(c),e=d+"",f=b[2],g=b[4];return d==null?f==="!=":f==="="?e===g:f==="*="?e.indexOf(g)>=0:f==="~="?(" "+e+" ").indexOf(g)>=0:g?f==="!="?e!==g:f==="^="?e.indexOf(g)===0:f==="$="?e.substr(e.length-g.length)===g:f==="|="?e===g||e.substr(0,g.length+1)===g+"-":!1:e&&d!==!1},POS:function(a,b,c,d){var e=b[2],f=l.setFilters[e];if(f)return f(a,c,b,d)}}},m=l.match.POS,n=function(a,b){return"\\"+(b-0+1)};for(var o in l.match)l.match[o]=new RegExp(l.match[o].source+/(?![^\[]*\])(?![^\(]*\))/.source),l.leftMatch[o]=new RegExp(/(^(?:.|\r|\n)*?)/.source+l.match[o].source.replace(/\\(\d+)/g,n));var p=function(a,b){a=Array.prototype.slice.call(a,0);if(b){b.push.apply(b,a);return b}return a};try{Array.prototype.slice.call(c.documentElement.childNodes,0)[0].nodeType}catch(q){p=function(a,b){var c=0,d=b||[];if(e.call(a)==="[object Array]")Array.prototype.push.apply(d,a);else if(typeof a.length=="number")for(var f=a.length;c<f;c++)d.push(a[c]);else for(;a[c];c++)d.push(a[c]);return d}}var r,s;c.documentElement.compareDocumentPosition?r=function(a,b){if(a===b){g=!0;return 0}if(!a.compareDocumentPosition||!b.compareDocumentPosition)return a.compareDocumentPosition?-1:1;return a.compareDocumentPosition(b)&4?-1:1}:(r=function(a,b){if(a===b){g=!0;return 0}if(a.sourceIndex&&b.sourceIndex)return a.sourceIndex-b.sourceIndex;var c,d,e=[],f=[],h=a.parentNode,i=b.parentNode,j=h;if(h===i)return s(a,b);if(!h)return-1;if(!i)return 1;while(j)e.unshift(j),j=j.parentNode;j=i;while(j)f.unshift(j),j=j.parentNode;c=e.length,d=f.length;for(var k=0;k<c&&k<d;k++)if(e[k]!==f[k])return s(e[k],f[k]);return k===c?s(a,f[k],-1):s(e[k],b,1)},s=function(a,b,c){if(a===b)return c;var d=a.nextSibling;while(d){if(d===b)return-1;d=d.nextSibling}return 1}),k.getText=function(a){var b="",c;for(var d=0;a[d];d++)c=a[d],c.nodeType===3||c.nodeType===4?b+=c.nodeValue:c.nodeType!==8&&(b+=k.getText(c.childNodes));return b},function(){var a=c.createElement("div"),d="script"+(new Date).getTime(),e=c.documentElement;a.innerHTML="<a name='"+d+"'/>",e.insertBefore(a,e.firstChild),c.getElementById(d)&&(l.find.ID=function(a,c,d){if(typeof c.getElementById!="undefined"&&!d){var e=c.getElementById(a[1]);return e?e.id===a[1]||typeof e.getAttributeNode!="undefined"&&e.getAttributeNode("id").nodeValue===a[1]?[e]:b:[]}},l.filter.ID=function(a,b){var c=typeof a.getAttributeNode!="undefined"&&a.getAttributeNode("id");return a.nodeType===1&&c&&c.nodeValue===b}),e.removeChild(a),e=a=null}(),function(){var a=c.createElement("div");a.appendChild(c.createComment("")),a.getElementsByTagName("*").length>0&&(l.find.TAG=function(a,b){var c=b.getElementsByTagName(a[1]);if(a[1]==="*"){var d=[];for(var e=0;c[e];e++)c[e].nodeType===1&&d.push(c[e]);c=d}return c}),a.innerHTML="<a href='#'></a>",a.firstChild&&typeof a.firstChild.getAttribute!="undefined"&&a.firstChild.getAttribute("href")!=="#"&&(l.attrHandle.href=function(a){return a.getAttribute("href",2)}),a=null}(),c.querySelectorAll&&function(){var a=k,b=c.createElement("div"),d="__sizzle__";b.innerHTML="<p class='TEST'></p>";if(!b.querySelectorAll||b.querySelectorAll(".TEST").length!==0){k=function(b,e,f,g){e=e||c;if(!g&&!k.isXML(e)){var h=/^(\w+$)|^\.([\w\-]+$)|^#([\w\-]+$)/.exec(b);if(h&&(e.nodeType===1||e.nodeType===9)){if(h[1])return p(e.getElementsByTagName(b),f);if(h[2]&&l.find.CLASS&&e.getElementsByClassName)return p(e.getElementsByClassName(h[2]),f)}if(e.nodeType===9){if(b==="body"&&e.body)return p([e.body],f);if(h&&h[3]){var i=e.getElementById(h[3]);if(!i||!i.parentNode)return p([],f);if(i.id===h[3])return p([i],f)}try{return p(e.querySelectorAll(b),f)}catch(j){}}else if(e.nodeType===1&&e.nodeName.toLowerCase()!=="object"){var m=e,n=e.getAttribute("id"),o=n||d,q=e.parentNode,r=/^\s*[+~]/.test(b);n?o=o.replace(/'/g,"\\$&"):e.setAttribute("id",o),r&&q&&(e=e.parentNode);try{if(!r||q)return p(e.querySelectorAll("[id='"+o+"'] "+b),f)}catch(s){}finally{n||m.removeAttribute("id")}}}return a(b,e,f,g)};for(var e in a)k[e]=a[e];b=null}}(),function(){var a=c.documentElement,b=a.matchesSelector||a.mozMatchesSelector||a.webkitMatchesSelector||a.msMatchesSelector;if(b){var d=!b.call(c.createElement("div"),"div"),e=!1;try{b.call(c.documentElement,"[test!='']:sizzle")}catch(f){e=!0}k.matchesSelector=function(a,c){c=c.replace(/\=\s*([^'"\]]*)\s*\]/g,"='$1']");if(!k.isXML(a))try{if(e||!l.match.PSEUDO.test(c)&&!/!=/.test(c)){var f=b.call(a,c);if(f||!d||a.document&&a.document.nodeType!==11)return f}}catch(g){}return k(c,null,null,[a]).length>0}}}(),function(){var a=c.createElement("div");a.innerHTML="<div class='test e'></div><div class='test'></div>";if(!!a.getElementsByClassName&&a.getElementsByClassName("e").length!==0){a.lastChild.className="e";if(a.getElementsByClassName("e").length===1)return;l.order.splice(1,0,"CLASS"),l.find.CLASS=function(a,b,c){if(typeof b.getElementsByClassName!="undefined"&&!c)return b.getElementsByClassName(a[1])},a=null}}(),c.documentElement.contains?k.contains=function(a,b){return a!==b&&(a.contains?a.contains(b):!0)}:c.documentElement.compareDocumentPosition?k.contains=function(a,b){return!!(a.compareDocumentPosition(b)&16)}:k.contains=function(){return!1},k.isXML=function(a){var b=(a?a.ownerDocument||a:0).documentElement;return b?b.nodeName!=="HTML":!1};var v=function(a,b){var c,d=[],e="",f=b.nodeType?[b]:b;while(c=l.match.PSEUDO.exec(a))e+=c[0],a=a.replace(l.match.PSEUDO,"");a=l.relative[a]?a+"*":a;for(var g=0,h=f.length;g<h;g++)k(a,f[g],d);return k.filter(e,d)};f.find=k,f.expr=k.selectors,f.expr[":"]=f.expr.filters,f.unique=k.uniqueSort,f.text=k.getText,f.isXMLDoc=k.isXML,f.contains=k.contains}();var P=/Until$/,Q=/^(?:parents|prevUntil|prevAll)/,R=/,/,S=/^.[^:#\[\.,]*$/,T=Array.prototype.slice,U=f.expr.match.POS,V={children:!0,contents:!0,next:!0,prev:!0};f.fn.extend({find:function(a){var b=this,c,d;if(typeof a!="string")return f(a).filter(function(){for(c=0,d=b.length;c<d;c++)if(f.contains(b[c],this))return!0});var e=this.pushStack("","find",a),g,h,i;for(c=0,d=this.length;c<d;c++){g=e.length,f.find(a,this[c],e);if(c>0)for(h=g;h<e.length;h++)for(i=0;i<g;i++)if(e[i]===e[h]){e.splice(h--,1);break}}return e},has:function(a){var b=f(a);return this.filter(function(){for(var a=0,c=b.length;a<c;a++)if(f.contains(this,b[a]))return!0})},not:function(a){return this.pushStack(X(this,a,!1),"not",a)},filter:function(a){return this.pushStack(X(this,a,!0),"filter",a)},is:function(a){return!!a&&(typeof a=="string"?f.filter(a,this).length>0:this.filter(a).length>0)},closest:function(a,b){var c=[],d,e,g=this[0];if(f.isArray(a)){var h,i,j={},k=1;if(g&&a.length){for(d=0,e=a.length;d<e;d++)i=a[d],j[i]||(j[i]=U.test(i)?f(i,b||this.context):i);while(g&&g.ownerDocument&&g!==b){for(i in j)h=j[i],(h.jquery?h.index(g)>-1:f(g).is(h))&&c.push({selector:i,elem:g,level:k});g=g.parentNode,k++}}return c}var l=U.test(a)||typeof a!="string"?f(a,b||this.context):0;for(d=0,e=this.length;d<e;d++){g=this[d];while(g){if(l?l.index(g)>-1:f.find.matchesSelector(g,a)){c.push(g);break}g=g.parentNode;if(!g||!g.ownerDocument||g===b||g.nodeType===11)break}}c=c.length>1?f.unique(c):c;return this.pushStack(c,"closest",a)},index:function(a){if(!a||typeof a=="string")return f.inArray(this[0],a?f(a):this.parent().children());return f.inArray(a.jquery?a[0]:a,this)},add:function(a,b){var c=typeof a=="string"?f(a,b):f.makeArray(a&&a.nodeType?[a]:a),d=f.merge(this.get(),c);return this.pushStack(W(c[0])||W(d[0])?d:f.unique(d))},andSelf:function(){return this.add(this.prevObject)}}),f.each({parent:function(a){var b=a.parentNode;return b&&b.nodeType!==11?b:null},parents:function(a){return f.dir(a,"parentNode")},parentsUntil:function(a,b,c){return f.dir(a,"parentNode",c)},next:function(a){return f.nth(a,2,"nextSibling")},prev:function(a){return f.nth(a,2,"previousSibling")},nextAll:function(a){return f.dir(a,"nextSibling")},prevAll:function(a){return f.dir(a,"previousSibling")},nextUntil:function(a,b,c){return f.dir(a,"nextSibling",c)},prevUntil:function(a,b,c){return f.dir(a,"previousSibling",c)},siblings:function(a){return f.sibling(a.parentNode.firstChild,a)},children:function(a){return f.sibling(a.firstChild)},contents:function(a){return f.nodeName(a,"iframe")?a.contentDocument||a.contentWindow.document:f.makeArray(a.childNodes)}},function(a,b){f.fn[a]=function(c,d){var e=f.map(this,b,c),g=T.call(arguments);P.test(a)||(d=c),d&&typeof d=="string"&&(e=f.filter(d,e)),e=this.length>1&&!V[a]?f.unique(e):e,(this.length>1||R.test(d))&&Q.test(a)&&(e=e.reverse());return this.pushStack(e,a,g.join(","))}}),f.extend({filter:function(a,b,c){c&&(a=":not("+a+")");return b.length===1?f.find.matchesSelector(b[0],a)?[b[0]]:[]:f.find.matches(a,b)},dir:function(a,c,d){var e=[],g=a[c];while(g&&g.nodeType!==9&&(d===b||g.nodeType!==1||!f(g).is(d)))g.nodeType===1&&e.push(g),g=g[c];return e},nth:function(a,b,c,d){b=b||1;var e=0;for(;a;a=a[c])if(a.nodeType===1&&++e===b)break;return a},sibling:function(a,b){var c=[];for(;a;a=a.nextSibling)a.nodeType===1&&a!==b&&c.push(a);return c}});var Y=/ jQuery\d+="(?:\d+|null)"/g,Z=/^\s+/,$=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/ig,_=/<([\w:]+)/,ba=/<tbody/i,bb=/<|&#?\w+;/,bc=/<(?:script|object|embed|option|style)/i,bd=/checked\s*(?:[^=]|=\s*.checked.)/i,be=/\/(java|ecma)script/i,bf=/^\s*<!(?:\[CDATA\[|\-\-)/,bg={option:[1,"<select multiple='multiple'>","</select>"],legend:[1,"<fieldset>","</fieldset>"],thead:[1,"<table>","</table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],col:[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"],area:[1,"<map>","</map>"],_default:[0,"",""]};bg.optgroup=bg.option,bg.tbody=bg.tfoot=bg.colgroup=bg.caption=bg.thead,bg.th=bg.td,f.support.htmlSerialize||(bg._default=[1,"div<div>","</div>"]),f.fn.extend({text:function(a){if(f.isFunction(a))return this.each(function(b){var c=f(this);c.text(a.call(this,b,c.text()))});if(typeof a!="object"&&a!==b)return this.empty().append((this[0]&&this[0].ownerDocument||c).createTextNode(a));return f.text(this)},wrapAll:function(a){if(f.isFunction(a))return this.each(function(b){f(this).wrapAll(a.call(this,b))});if(this[0]){var b=f(a,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&b.insertBefore(this[0]),b.map(function(){var a=this;while(a.firstChild&&a.firstChild.nodeType===1)a=a.firstChild;return a}).append(this)}return this},wrapInner:function(a){if(f.isFunction(a))return this.each(function(b){f(this).wrapInner(a.call(this,b))});return this.each(function(){var b=f(this),c=b.contents();c.length?c.wrapAll(a):b.append(a)})},wrap:function(a){return this.each(function(){f(this).wrapAll(a)})},unwrap:function(){return this.parent().each(function(){f.nodeName(this,"body")||f(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,!0,function(a){this.nodeType===1&&this.appendChild(a)})},prepend:function(){return this.domManip(arguments,!0,function(a){this.nodeType===1&&this.insertBefore(a,this.firstChild)})},before:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this)});if(arguments.length){var a=f(arguments[0]);a.push.apply(a,this.toArray());return this.pushStack(a,"before",arguments)}},after:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this.nextSibling)});if(arguments.length){var a=this.pushStack(this,"after",arguments);a.push.apply(a,f(arguments[0]).toArray());return a}},remove:function(a,b){for(var c=0,d;(d=this[c])!=null;c++)if(!a||f.filter(a,[d]).length)!b&&d.nodeType===1&&(f.cleanData(d.getElementsByTagName("*")),f.cleanData([d])),d.parentNode&&d.parentNode.removeChild(d);return this},empty:function(){for(var a=0,b;(b=this[a])!=null;a++){b.nodeType===1&&f.cleanData(b.getElementsByTagName("*"));while(b.firstChild)b.removeChild(b.firstChild)}return this},clone:function(a,b){a=a==null?!1:a,b=b==null?a:b;return this.map(function(){return f.clone(this,a,b)})},html:function(a){if(a===b)return this[0]&&this[0].nodeType===1?this[0].innerHTML.replace(Y,""):null;if(typeof a=="string"&&!bc.test(a)&&(f.support.leadingWhitespace||!Z.test(a))&&!bg[(_.exec(a)||["",""])[1].toLowerCase()]){a=a.replace($,"<$1></$2>");try{for(var c=0,d=this.length;c<d;c++)this[c].nodeType===1&&(f.cleanData(this[c].getElementsByTagName("*")),this[c].innerHTML=a)}catch(e){this.empty().append(a)}}else f.isFunction(a)?this.each(function(b){var c=f(this);c.html(a.call(this,b,c.html()))}):this.empty().append(a);return this},replaceWith:function(a){if(this[0]&&this[0].parentNode){if(f.isFunction(a))return this.each(function(b){var c=f(this),d=c.html();c.replaceWith(a.call(this,b,d))});typeof a!="string"&&(a=f(a).detach());return this.each(function(){var b=this.nextSibling,c=this.parentNode;f(this).remove(),b?f(b).before(a):f(c).append(a)})}return this.length?this.pushStack(f(f.isFunction(a)?a():a),"replaceWith",a):this},detach:function(a){return this.remove(a,!0)},domManip:function(a,c,d){var e,g,h,i,j=a[0],k=[];if(!f.support.checkClone&&arguments.length===3&&typeof j=="string"&&bd.test(j))return this.each(function(){f(this).domManip(a,c,d,!0)});if(f.isFunction(j))return this.each(function(e){var g=f(this);a[0]=j.call(this,e,c?g.html():b),g.domManip(a,c,d)});if(this[0]){i=j&&j.parentNode,f.support.parentNode&&i&&i.nodeType===11&&i.childNodes.length===this.length?e={fragment:i}:e=f.buildFragment(a,this,k),h=e.fragment,h.childNodes.length===1?g=h=h.firstChild:g=h.firstChild;if(g){c=c&&f.nodeName(g,"tr");for(var l=0,m=this.length,n=m-1;l<m;l++)d.call(c?bh(this[l],g):this[l],e.cacheable||m>1&&l<n?f.clone(h,!0,!0):h)}k.length&&f.each(k,bn)}return this}}),f.buildFragment=function(a,b,d){var e,g,h,i=b&&b[0]?b[0].ownerDocument||b[0]:c;a.length===1&&typeof a[0]=="string"&&a[0].length<512&&i===c&&a[0].charAt(0)==="<"&&!bc.test(a[0])&&(f.support.checkClone||!bd.test(a[0]))&&(g=!0,h=f.fragments[a[0]],h&&h!==1&&(e=h)),e||(e=i.createDocumentFragment(),f.clean(a,i,e,d)),g&&(f.fragments[a[0]]=h?e:1);return{fragment:e,cacheable:g}},f.fragments={},f.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){f.fn[a]=function(c){var d=[],e=f(c),g=this.length===1&&this[0].parentNode;if(g&&g.nodeType===11&&g.childNodes.length===1&&e.length===1){e[b](this[0]);return this}for(var h=0,i=e.length;h<i;h++){var j=(h>0?this.clone(!0):this).get();f(e[h])[b](j),d=d.concat(j)}return this.pushStack(d,a,e.selector)}}),f.extend({clone:function(a,b,c){var d=a.cloneNode(!0),e,g,h;if((!f.support.noCloneEvent||!f.support.noCloneChecked)&&(a.nodeType===1||a.nodeType===11)&&!f.isXMLDoc(a)){bj(a,d),e=bk(a),g=bk(d);for(h=0;e[h];++h)bj(e[h],g[h])}if(b){bi(a,d);if(c){e=bk(a),g=bk(d);for(h=0;e[h];++h)bi(e[h],g[h])}}return d},clean:function(a,b,d,e){var g;b=b||c,typeof b.createElement=="undefined"&&(b=b.ownerDocument||
+b[0]&&b[0].ownerDocument||c);var h=[],i;for(var j=0,k;(k=a[j])!=null;j++){typeof k=="number"&&(k+="");if(!k)continue;if(typeof k=="string")if(!bb.test(k))k=b.createTextNode(k);else{k=k.replace($,"<$1></$2>");var l=(_.exec(k)||["",""])[1].toLowerCase(),m=bg[l]||bg._default,n=m[0],o=b.createElement("div");o.innerHTML=m[1]+k+m[2];while(n--)o=o.lastChild;if(!f.support.tbody){var p=ba.test(k),q=l==="table"&&!p?o.firstChild&&o.firstChild.childNodes:m[1]==="<table>"&&!p?o.childNodes:[];for(i=q.length-1;i>=0;--i)f.nodeName(q[i],"tbody")&&!q[i].childNodes.length&&q[i].parentNode.removeChild(q[i])}!f.support.leadingWhitespace&&Z.test(k)&&o.insertBefore(b.createTextNode(Z.exec(k)[0]),o.firstChild),k=o.childNodes}var r;if(!f.support.appendChecked)if(k[0]&&typeof (r=k.length)=="number")for(i=0;i<r;i++)bm(k[i]);else bm(k);k.nodeType?h.push(k):h=f.merge(h,k)}if(d){g=function(a){return!a.type||be.test(a.type)};for(j=0;h[j];j++)if(e&&f.nodeName(h[j],"script")&&(!h[j].type||h[j].type.toLowerCase()==="text/javascript"))e.push(h[j].parentNode?h[j].parentNode.removeChild(h[j]):h[j]);else{if(h[j].nodeType===1){var s=f.grep(h[j].getElementsByTagName("script"),g);h.splice.apply(h,[j+1,0].concat(s))}d.appendChild(h[j])}}return h},cleanData:function(a){var b,c,d=f.cache,e=f.expando,g=f.event.special,h=f.support.deleteExpando;for(var i=0,j;(j=a[i])!=null;i++){if(j.nodeName&&f.noData[j.nodeName.toLowerCase()])continue;c=j[f.expando];if(c){b=d[c]&&d[c][e];if(b&&b.events){for(var k in b.events)g[k]?f.event.remove(j,k):f.removeEvent(j,k,b.handle);b.handle&&(b.handle.elem=null)}h?delete j[f.expando]:j.removeAttribute&&j.removeAttribute(f.expando),delete d[c]}}}});var bo=/alpha\([^)]*\)/i,bp=/opacity=([^)]*)/,bq=/-([a-z])/ig,br=/([A-Z]|^ms)/g,bs=/^-?\d+(?:px)?$/i,bt=/^-?\d/,bu=/^[+\-]=/,bv=/[^+\-\.\de]+/g,bw={position:"absolute",visibility:"hidden",display:"block"},bx=["Left","Right"],by=["Top","Bottom"],bz,bA,bB,bC=function(a,b){return b.toUpperCase()};f.fn.css=function(a,c){if(arguments.length===2&&c===b)return this;return f.access(this,a,c,!0,function(a,c,d){return d!==b?f.style(a,c,d):f.css(a,c)})},f.extend({cssHooks:{opacity:{get:function(a,b){if(b){var c=bz(a,"opacity","opacity");return c===""?"1":c}return a.style.opacity}}},cssNumber:{zIndex:!0,fontWeight:!0,opacity:!0,zoom:!0,lineHeight:!0,widows:!0,orphans:!0},cssProps:{"float":f.support.cssFloat?"cssFloat":"styleFloat"},style:function(a,c,d,e){if(!!a&&a.nodeType!==3&&a.nodeType!==8&&!!a.style){var g,h,i=f.camelCase(c),j=a.style,k=f.cssHooks[i];c=f.cssProps[i]||i;if(d===b){if(k&&"get"in k&&(g=k.get(a,!1,e))!==b)return g;return j[c]}h=typeof d;if(h==="number"&&isNaN(d)||d==null)return;h==="string"&&bu.test(d)&&(d=+d.replace(bv,"")+parseFloat(f.css(a,c))),h==="number"&&!f.cssNumber[i]&&(d+="px");if(!k||!("set"in k)||(d=k.set(a,d))!==b)try{j[c]=d}catch(l){}}},css:function(a,c,d){var e,g;c=f.camelCase(c),g=f.cssHooks[c],c=f.cssProps[c]||c,c==="cssFloat"&&(c="float");if(g&&"get"in g&&(e=g.get(a,!0,d))!==b)return e;if(bz)return bz(a,c)},swap:function(a,b,c){var d={};for(var e in b)d[e]=a.style[e],a.style[e]=b[e];c.call(a);for(e in b)a.style[e]=d[e]},camelCase:function(a){return a.replace(bq,bC)}}),f.curCSS=f.css,f.each(["height","width"],function(a,b){f.cssHooks[b]={get:function(a,c,d){var e;if(c){a.offsetWidth!==0?e=bD(a,b,d):f.swap(a,bw,function(){e=bD(a,b,d)});if(e<=0){e=bz(a,b,b),e==="0px"&&bB&&(e=bB(a,b,b));if(e!=null)return e===""||e==="auto"?"0px":e}if(e<0||e==null){e=a.style[b];return e===""||e==="auto"?"0px":e}return typeof e=="string"?e:e+"px"}},set:function(a,b){if(!bs.test(b))return b;b=parseFloat(b);if(b>=0)return b+"px"}}}),f.support.opacity||(f.cssHooks.opacity={get:function(a,b){return bp.test((b&&a.currentStyle?a.currentStyle.filter:a.style.filter)||"")?parseFloat(RegExp.$1)/100+"":b?"1":""},set:function(a,b){var c=a.style,d=a.currentStyle;c.zoom=1;var e=f.isNaN(b)?"":"alpha(opacity="+b*100+")",g=d&&d.filter||c.filter||"";c.filter=bo.test(g)?g.replace(bo,e):g+" "+e}}),f(function(){f.support.reliableMarginRight||(f.cssHooks.marginRight={get:function(a,b){var c;f.swap(a,{display:"inline-block"},function(){b?c=bz(a,"margin-right","marginRight"):c=a.style.marginRight});return c}})}),c.defaultView&&c.defaultView.getComputedStyle&&(bA=function(a,c){var d,e,g;c=c.replace(br,"-$1").toLowerCase();if(!(e=a.ownerDocument.defaultView))return b;if(g=e.getComputedStyle(a,null))d=g.getPropertyValue(c),d===""&&!f.contains(a.ownerDocument.documentElement,a)&&(d=f.style(a,c));return d}),c.documentElement.currentStyle&&(bB=function(a,b){var c,d=a.currentStyle&&a.currentStyle[b],e=a.runtimeStyle&&a.runtimeStyle[b],f=a.style;!bs.test(d)&&bt.test(d)&&(c=f.left,e&&(a.runtimeStyle.left=a.currentStyle.left),f.left=b==="fontSize"?"1em":d||0,d=f.pixelLeft+"px",f.left=c,e&&(a.runtimeStyle.left=e));return d===""?"auto":d}),bz=bA||bB,f.expr&&f.expr.filters&&(f.expr.filters.hidden=function(a){var b=a.offsetWidth,c=a.offsetHeight;return b===0&&c===0||!f.support.reliableHiddenOffsets&&(a.style.display||f.css(a,"display"))==="none"},f.expr.filters.visible=function(a){return!f.expr.filters.hidden(a)});var bE=/%20/g,bF=/\[\]$/,bG=/\r?\n/g,bH=/#.*$/,bI=/^(.*?):[ \t]*([^\r\n]*)\r?$/mg,bJ=/^(?:color|date|datetime|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i,bK=/^(?:about|app|app\-storage|.+\-extension|file|widget):$/,bL=/^(?:GET|HEAD)$/,bM=/^\/\//,bN=/\?/,bO=/<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>/gi,bP=/^(?:select|textarea)/i,bQ=/\s+/,bR=/([?&])_=[^&]*/,bS=/^([\w\+\.\-]+:)(?:\/\/([^\/?#:]*)(?::(\d+))?)?/,bT=f.fn.load,bU={},bV={},bW,bX;try{bW=e.href}catch(bY){bW=c.createElement("a"),bW.href="",bW=bW.href}bX=bS.exec(bW.toLowerCase())||[],f.fn.extend({load:function(a,c,d){if(typeof a!="string"&&bT)return bT.apply(this,arguments);if(!this.length)return this;var e=a.indexOf(" ");if(e>=0){var g=a.slice(e,a.length);a=a.slice(0,e)}var h="GET";c&&(f.isFunction(c)?(d=c,c=b):typeof c=="object"&&(c=f.param(c,f.ajaxSettings.traditional),h="POST"));var i=this;f.ajax({url:a,type:h,dataType:"html",data:c,complete:function(a,b,c){c=a.responseText,a.isResolved()&&(a.done(function(a){c=a}),i.html(g?f("<div>").append(c.replace(bO,"")).find(g):c)),d&&i.each(d,[c,b,a])}});return this},serialize:function(){return f.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?f.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||bP.test(this.nodeName)||bJ.test(this.type))}).map(function(a,b){var c=f(this).val();return c==null?null:f.isArray(c)?f.map(c,function(a,c){return{name:b.name,value:a.replace(bG,"\r\n")}}):{name:b.name,value:c.replace(bG,"\r\n")}}).get()}}),f.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "),function(a,b){f.fn[b]=function(a){return this.bind(b,a)}}),f.each(["get","post"],function(a,c){f[c]=function(a,d,e,g){f.isFunction(d)&&(g=g||e,e=d,d=b);return f.ajax({type:c,url:a,data:d,success:e,dataType:g})}}),f.extend({getScript:function(a,c){return f.get(a,b,c,"script")},getJSON:function(a,b,c){return f.get(a,b,c,"json")},ajaxSetup:function(a,b){b?f.extend(!0,a,f.ajaxSettings,b):(b=a,a=f.extend(!0,f.ajaxSettings,b));for(var c in{context:1,url:1})c in b?a[c]=b[c]:c in f.ajaxSettings&&(a[c]=f.ajaxSettings[c]);return a},ajaxSettings:{url:bW,isLocal:bK.test(bX[1]),global:!0,type:"GET",contentType:"application/x-www-form-urlencoded",processData:!0,async:!0,accepts:{xml:"application/xml, text/xml",html:"text/html",text:"text/plain",json:"application/json, text/javascript","*":"*/*"},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText"},converters:{"* text":a.String,"text html":!0,"text json":f.parseJSON,"text xml":f.parseXML}},ajaxPrefilter:bZ(bU),ajaxTransport:bZ(bV),ajax:function(a,c){function w(a,c,l,m){if(s!==2){s=2,q&&clearTimeout(q),p=b,n=m||"",v.readyState=a?4:0;var o,r,u,w=l?ca(d,v,l):b,x,y;if(a>=200&&a<300||a===304){if(d.ifModified){if(x=v.getResponseHeader("Last-Modified"))f.lastModified[k]=x;if(y=v.getResponseHeader("Etag"))f.etag[k]=y}if(a===304)c="notmodified",o=!0;else try{r=cb(d,w),c="success",o=!0}catch(z){c="parsererror",u=z}}else{u=c;if(!c||a)c="error",a<0&&(a=0)}v.status=a,v.statusText=c,o?h.resolveWith(e,[r,c,v]):h.rejectWith(e,[v,c,u]),v.statusCode(j),j=b,t&&g.trigger("ajax"+(o?"Success":"Error"),[v,d,o?r:u]),i.resolveWith(e,[v,c]),t&&(g.trigger("ajaxComplete",[v,d]),--f.active||f.event.trigger("ajaxStop"))}}typeof a=="object"&&(c=a,a=b),c=c||{};var d=f.ajaxSetup({},c),e=d.context||d,g=e!==d&&(e.nodeType||e instanceof f)?f(e):f.event,h=f.Deferred(),i=f._Deferred(),j=d.statusCode||{},k,l={},m={},n,o,p,q,r,s=0,t,u,v={readyState:0,setRequestHeader:function(a,b){if(!s){var c=a.toLowerCase();a=m[c]=m[c]||a,l[a]=b}return this},getAllResponseHeaders:function(){return s===2?n:null},getResponseHeader:function(a){var c;if(s===2){if(!o){o={};while(c=bI.exec(n))o[c[1].toLowerCase()]=c[2]}c=o[a.toLowerCase()]}return c===b?null:c},overrideMimeType:function(a){s||(d.mimeType=a);return this},abort:function(a){a=a||"abort",p&&p.abort(a),w(0,a);return this}};h.promise(v),v.success=v.done,v.error=v.fail,v.complete=i.done,v.statusCode=function(a){if(a){var b;if(s<2)for(b in a)j[b]=[j[b],a[b]];else b=a[v.status],v.then(b,b)}return this},d.url=((a||d.url)+"").replace(bH,"").replace(bM,bX[1]+"//"),d.dataTypes=f.trim(d.dataType||"*").toLowerCase().split(bQ),d.crossDomain==null&&(r=bS.exec(d.url.toLowerCase()),d.crossDomain=!(!r||r[1]==bX[1]&&r[2]==bX[2]&&(r[3]||(r[1]==="http:"?80:443))==(bX[3]||(bX[1]==="http:"?80:443)))),d.data&&d.processData&&typeof d.data!="string"&&(d.data=f.param(d.data,d.traditional)),b$(bU,d,c,v);if(s===2)return!1;t=d.global,d.type=d.type.toUpperCase(),d.hasContent=!bL.test(d.type),t&&f.active++===0&&f.event.trigger("ajaxStart");if(!d.hasContent){d.data&&(d.url+=(bN.test(d.url)?"&":"?")+d.data),k=d.url;if(d.cache===!1){var x=f.now(),y=d.url.replace(bR,"$1_="+x);d.url=y+(y===d.url?(bN.test(d.url)?"&":"?")+"_="+x:"")}}(d.data&&d.hasContent&&d.contentType!==!1||c.contentType)&&v.setRequestHeader("Content-Type",d.contentType),d.ifModified&&(k=k||d.url,f.lastModified[k]&&v.setRequestHeader("If-Modified-Since",f.lastModified[k]),f.etag[k]&&v.setRequestHeader("If-None-Match",f.etag[k])),v.setRequestHeader("Accept",d.dataTypes[0]&&d.accepts[d.dataTypes[0]]?d.accepts[d.dataTypes[0]]+(d.dataTypes[0]!=="*"?", */*; q=0.01":""):d.accepts["*"]);for(u in d.headers)v.setRequestHeader(u,d.headers[u]);if(d.beforeSend&&(d.beforeSend.call(e,v,d)===!1||s===2)){v.abort();return!1}for(u in{success:1,error:1,complete:1})v[u](d[u]);p=b$(bV,d,c,v);if(!p)w(-1,"No Transport");else{v.readyState=1,t&&g.trigger("ajaxSend",[v,d]),d.async&&d.timeout>0&&(q=setTimeout(function(){v.abort("timeout")},d.timeout));try{s=1,p.send(l,w)}catch(z){status<2?w(-1,z):f.error(z)}}return v},param:function(a,c){var d=[],e=function(a,b){b=f.isFunction(b)?b():b,d[d.length]=encodeURIComponent(a)+"="+encodeURIComponent(b)};c===b&&(c=f.ajaxSettings.traditional);if(f.isArray(a)||a.jquery&&!f.isPlainObject(a))f.each(a,function(){e(this.name,this.value)});else for(var g in a)b_(g,a[g],c,e);return d.join("&").replace(bE,"+")}}),f.extend({active:0,lastModified:{},etag:{}});var cc=f.now(),cd=/(\=)\?(&|$)|\?\?/i;f.ajaxSetup({jsonp:"callback",jsonpCallback:function(){return f.expando+"_"+cc++}}),f.ajaxPrefilter("json jsonp",function(b,c,d){var e=b.contentType==="application/x-www-form-urlencoded"&&typeof b.data=="string";if(b.dataTypes[0]==="jsonp"||b.jsonp!==!1&&(cd.test(b.url)||e&&cd.test(b.data))){var g,h=b.jsonpCallback=f.isFunction(b.jsonpCallback)?b.jsonpCallback():b.jsonpCallback,i=a[h],j=b.url,k=b.data,l="$1"+h+"$2";b.jsonp!==!1&&(j=j.replace(cd,l),b.url===j&&(e&&(k=k.replace(cd,l)),b.data===k&&(j+=(/\?/.test(j)?"&":"?")+b.jsonp+"="+h))),b.url=j,b.data=k,a[h]=function(a){g=[a]},d.always(function(){a[h]=i,g&&f.isFunction(i)&&a[h](g[0])}),b.converters["script json"]=function(){g||f.error(h+" was not called");return g[0]},b.dataTypes[0]="json";return"script"}}),f.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/javascript|ecmascript/},converters:{"text script":function(a){f.globalEval(a);return a}}}),f.ajaxPrefilter("script",function(a){a.cache===b&&(a.cache=!1),a.crossDomain&&(a.type="GET",a.global=!1)}),f.ajaxTransport("script",function(a){if(a.crossDomain){var d,e=c.head||c.getElementsByTagName("head")[0]||c.documentElement;return{send:function(f,g){d=c.createElement("script"),d.async="async",a.scriptCharset&&(d.charset=a.scriptCharset),d.src=a.url,d.onload=d.onreadystatechange=function(a,c){if(c||!d.readyState||/loaded|complete/.test(d.readyState))d.onload=d.onreadystatechange=null,e&&d.parentNode&&e.removeChild(d),d=b,c||g(200,"success")},e.insertBefore(d,e.firstChild)},abort:function(){d&&d.onload(0,1)}}}});var ce=a.ActiveXObject?function(){for(var a in cg)cg[a](0,1)}:!1,cf=0,cg;f.ajaxSettings.xhr=a.ActiveXObject?function(){return!this.isLocal&&ch()||ci()}:ch,function(a){f.extend(f.support,{ajax:!!a,cors:!!a&&"withCredentials"in a})}(f.ajaxSettings.xhr()),f.support.ajax&&f.ajaxTransport(function(c){if(!c.crossDomain||f.support.cors){var d;return{send:function(e,g){var h=c.xhr(),i,j;c.username?h.open(c.type,c.url,c.async,c.username,c.password):h.open(c.type,c.url,c.async);if(c.xhrFields)for(j in c.xhrFields)h[j]=c.xhrFields[j];c.mimeType&&h.overrideMimeType&&h.overrideMimeType(c.mimeType),!c.crossDomain&&!e["X-Requested-With"]&&(e["X-Requested-With"]="XMLHttpRequest");try{for(j in e)h.setRequestHeader(j,e[j])}catch(k){}h.send(c.hasContent&&c.data||null),d=function(a,e){var j,k,l,m,n;try{if(d&&(e||h.readyState===4)){d=b,i&&(h.onreadystatechange=f.noop,ce&&delete cg[i]);if(e)h.readyState!==4&&h.abort();else{j=h.status,l=h.getAllResponseHeaders(),m={},n=h.responseXML,n&&n.documentElement&&(m.xml=n),m.text=h.responseText;try{k=h.statusText}catch(o){k=""}!j&&c.isLocal&&!c.crossDomain?j=m.text?200:404:j===1223&&(j=204)}}}catch(p){e||g(-1,p)}m&&g(j,k,m,l)},!c.async||h.readyState===4?d():(i=++cf,ce&&(cg||(cg={},f(a).unload(ce)),cg[i]=d),h.onreadystatechange=d)},abort:function(){d&&d(0,1)}}}});var cj={},ck,cl,cm=/^(?:toggle|show|hide)$/,cn=/^([+\-]=)?([\d+.\-]+)([a-z%]*)$/i,co,cp=[["height","marginTop","marginBottom","paddingTop","paddingBottom"],["width","marginLeft","marginRight","paddingLeft","paddingRight"],["opacity"]],cq,cr=a.webkitRequestAnimationFrame||a.mozRequestAnimationFrame||a.oRequestAnimationFrame;f.fn.extend({show:function(a,b,c){var d,e;if(a||a===0)return this.animate(cu("show",3),a,b,c);for(var g=0,h=this.length;g<h;g++)d=this[g],d.style&&(e=d.style.display,!f._data(d,"olddisplay")&&e==="none"&&(e=d.style.display=""),e===""&&f.css(d,"display")==="none"&&f._data(d,"olddisplay",cv(d.nodeName)));for(g=0;g<h;g++){d=this[g];if(d.style){e=d.style.display;if(e===""||e==="none")d.style.display=f._data(d,"olddisplay")||""}}return this},hide:function(a,b,c){if(a||a===0)return this.animate(cu("hide",3),a,b,c);for(var d=0,e=this.length;d<e;d++)if(this[d].style){var g=f.css(this[d],"display");g!=="none"&&!f._data(this[d],"olddisplay")&&f._data(this[d],"olddisplay",g)}for(d=0;d<e;d++)this[d].style&&(this[d].style.display="none");return this},_toggle:f.fn.toggle,toggle:function(a,b,c){var d=typeof a=="boolean";f.isFunction(a)&&f.isFunction(b)?this._toggle.apply(this,arguments):a==null||d?this.each(function(){var b=d?a:f(this).is(":hidden");f(this)[b?"show":"hide"]()}):this.animate(cu("toggle",3),a,b,c);return this},fadeTo:function(a,b,c,d){return this.filter(":hidden").css("opacity",0).show().end().animate({opacity:b},a,c,d)},animate:function(a,b,c,d){var e=f.speed(b,c,d);if(f.isEmptyObject(a))return this.each(e.complete,[!1]);a=f.extend({},a);return this[e.queue===!1?"each":"queue"](function(){e.queue===!1&&f._mark(this);var b=f.extend({},e),c=this.nodeType===1,d=c&&f(this).is(":hidden"),g,h,i,j,k,l,m,n,o;b.animatedProperties={};for(i in a){g=f.camelCase(i),i!==g&&(a[g]=a[i],delete a[i]),h=a[g],f.isArray(h)?(b.animatedProperties[g]=h[1],h=a[g]=h[0]):b.animatedProperties[g]=b.specialEasing&&b.specialEasing[g]||b.easing||"swing";if(h==="hide"&&d||h==="show"&&!d)return b.complete.call(this);c&&(g==="height"||g==="width")&&(b.overflow=[this.style.overflow,this.style.overflowX,this.style.overflowY],f.css(this,"display")==="inline"&&f.css(this,"float")==="none"&&(f.support.inlineBlockNeedsLayout?(j=cv(this.nodeName),j==="inline"?this.style.display="inline-block":(this.style.display="inline",this.style.zoom=1)):this.style.display="inline-block"))}b.overflow!=null&&(this.style.overflow="hidden");for(i in a)k=new f.fx(this,b,i),h=a[i],cm.test(h)?k[h==="toggle"?d?"show":"hide":h]():(l=cn.exec(h),m=k.cur(),l?(n=parseFloat(l[2]),o=l[3]||(f.cssNumber[i]?"":"px"),o!=="px"&&(f.style(this,i,(n||1)+o),m=(n||1)/k.cur()*m,f.style(this,i,m+o)),l[1]&&(n=(l[1]==="-="?-1:1)*n+m),k.custom(m,n,o)):k.custom(m,h,""));return!0})},stop:function(a,b){a&&this.queue([]),this.each(function(){var a=f.timers,c=a.length;b||f._unmark(!0,this);while(c--)a[c].elem===this&&(b&&a[c](!0),a.splice(c,1))}),b||this.dequeue();return this}}),f.each({slideDown:cu("show",1),slideUp:cu("hide",1),slideToggle:cu("toggle",1),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(a,b){f.fn[a]=function(a,c,d){return this.animate(b,a,c,d)}}),f.extend({speed:function(a,b,c){var d=a&&typeof a=="object"?f.extend({},a):{complete:c||!c&&b||f.isFunction(a)&&a,duration:a,easing:c&&b||b&&!f.isFunction(b)&&b};d.duration=f.fx.off?0:typeof d.duration=="number"?d.duration:d.duration in f.fx.speeds?f.fx.speeds[d.duration]:f.fx.speeds._default,d.old=d.complete,d.complete=function(a){d.queue!==!1?f.dequeue(this):a!==!1&&f._unmark(this),f.isFunction(d.old)&&d.old.call(this)};return d},easing:{linear:function(a,b,c,d){return c+d*a},swing:function(a,b,c,d){return(-Math.cos(a*Math.PI)/2+.5)*d+c}},timers:[],fx:function(a,b,c){this.options=b,this.elem=a,this.prop=c,b.orig=b.orig||{}}}),f.fx.prototype={update:function(){this.options.step&&this.options.step.call(this.elem,this.now,this),(f.fx.step[this.prop]||f.fx.step._default)(this)},cur:function(){if(this.elem[this.prop]!=null&&(!this.elem.style||this.elem.style[this.prop]==null))return this.elem[this.prop];var a,b=f.css(this.elem,this.prop);return isNaN(a=parseFloat(b))?!b||b==="auto"?0:b:a},custom:function(a,b,c){function h(a){return d.step(a)}var d=this,e=f.fx,g;this.startTime=cq||cs(),this.start=a,this.end=b,this.unit=c||this.unit||(f.cssNumber[this.prop]?"":"px"),this.now=this.start,this.pos=this.state=0,h.elem=this.elem,h()&&f.timers.push(h)&&!co&&(cr?(co=1,g=function(){co&&(cr(g),e.tick())},cr(g)):co=setInterval(e.tick,e.interval))},show:function(){this.options.orig[this.prop]=f.style(this.elem,this.prop),this.options.show=!0,this.custom(this.prop==="width"||this.prop==="height"?1:0,this.cur()),f(this.elem).show()},hide:function(){this.options.orig[this.prop]=f.style(this.elem,this.prop),this.options.hide=!0,this.custom(this.cur(),0)},step:function(a){var b=cq||cs(),c=!0,d=this.elem,e=this.options,g,h;if(a||b>=e.duration+this.startTime){this.now=this.end,this.pos=this.state=1,this.update(),e.animatedProperties[this.prop]=!0;for(g in e.animatedProperties)e.animatedProperties[g]!==!0&&(c=!1);if(c){e.overflow!=null&&!f.support.shrinkWrapBlocks&&f.each(["","X","Y"],function(a,b){d.style["overflow"+b]=e.overflow[a]}),e.hide&&f(d).hide();if(e.hide||e.show)for(var i in e.animatedProperties)f.style(d,i,e.orig[i]);e.complete.call(d)}return!1}e.duration==Infinity?this.now=b:(h=b-this.startTime,this.state=h/e.duration,this.pos=f.easing[e.animatedProperties[this.prop]](this.state,h,0,1,e.duration),this.now=this.start+(this.end-this.start)*this.pos),this.update();return!0}},f.extend(f.fx,{tick:function(){for(var a=f.timers,b=0;b<a.length;++b)a[b]()||a.splice(b--,1);a.length||f.fx.stop()},interval:13,stop:function(){clearInterval(co),co=null},speeds:{slow:600,fast:200,_default:400},step:{opacity:function(a){f.style(a.elem,"opacity",a.now)},_default:function(a){a.elem.style&&a.elem.style[a.prop]!=null?a.elem.style[a.prop]=(a.prop==="width"||a.prop==="height"?Math.max(0,a.now):a.now)+a.unit:a.elem[a.prop]=a.now}}}),f.expr&&f.expr.filters&&(f.expr.filters.animated=function(a){return f.grep(f.timers,function(b){return a===b.elem}).length});var cw=/^t(?:able|d|h)$/i,cx=/^(?:body|html)$/i;"getBoundingClientRect"in c.documentElement?f.fn.offset=function(a){var b=this[0],c;if(a)return this.each(function(b){f.offset.setOffset(this,a,b)});if(!b||!b.ownerDocument)return null;if(b===b.ownerDocument.body)return f.offset.bodyOffset(b);try{c=b.getBoundingClientRect()}catch(d){}var e=b.ownerDocument,g=e.documentElement;if(!c||!f.contains(g,b))return c?{top:c.top,left:c.left}:{top:0,left:0};var h=e.body,i=cy(e),j=g.clientTop||h.clientTop||0,k=g.clientLeft||h.clientLeft||0,l=i.pageYOffset||f.support.boxModel&&g.scrollTop||h.scrollTop,m=i.pageXOffset||f.support.boxModel&&g.scrollLeft||h.scrollLeft,n=c.top+l-j,o=c.left+m-k;return{top:n,left:o}}:f.fn.offset=function(a){var b=this[0];if(a)return this.each(function(b){f.offset.setOffset(this,a,b)});if(!b||!b.ownerDocument)return null;if(b===b.ownerDocument.body)return f.offset.bodyOffset(b);f.offset.initialize();var c,d=b.offsetParent,e=b,g=b.ownerDocument,h=g.documentElement,i=g.body,j=g.defaultView,k=j?j.getComputedStyle(b,null):b.currentStyle,l=b.offsetTop,m=b.offsetLeft;while((b=b.parentNode)&&b!==i&&b!==h){if(f.offset.supportsFixedPosition&&k.position==="fixed")break;c=j?j.getComputedStyle(b,null):b.currentStyle,l-=b.scrollTop,m-=b.scrollLeft,b===d&&(l+=b.offsetTop,m+=b.offsetLeft,f.offset.doesNotAddBorder&&(!f.offset.doesAddBorderForTableAndCells||!cw.test(b.nodeName))&&(l+=parseFloat(c.borderTopWidth)||0,m+=parseFloat(c.borderLeftWidth)||0),e=d,d=b.offsetParent),f.offset.subtractsBorderForOverflowNotVisible&&c.overflow!=="visible"&&(l+=parseFloat(c.borderTopWidth)||0,m+=parseFloat(c.borderLeftWidth)||0),k=c}if(k.position==="relative"||k.position==="static")l+=i.offsetTop,m+=i.offsetLeft;f.offset.supportsFixedPosition&&k.position==="fixed"&&(l+=Math.max(h.scrollTop,i.scrollTop),m+=Math.max(h.scrollLeft,i.scrollLeft));return{top:l,left:m}},f.offset={initialize:function(){var a=c.body,b=c.createElement("div"),d,e,g,h,i=parseFloat(f.css(a,"marginTop"))||0,j="<div style='position:absolute;top:0;left:0;margin:0;border:5px solid #000;padding:0;width:1px;height:1px;'><div></div></div><table style='position:absolute;top:0;left:0;margin:0;border:5px solid #000;padding:0;width:1px;height:1px;' cellpadding='0' cellspacing='0'><tr><td></td></tr></table>";f.extend(b.style,{position:"absolute",top:0,left:0,margin:0,border:0,width:"1px",height:"1px",visibility:"hidden"}),b.innerHTML=j,a.insertBefore(b,a.firstChild),d=b.firstChild,e=d.firstChild,h=d.nextSibling.firstChild.firstChild,this.doesNotAddBorder=e.offsetTop!==5,this.doesAddBorderForTableAndCells=h.offsetTop===5,e.style.position="fixed",e.style.top="20px",this.supportsFixedPosition=e.offsetTop===20||e.offsetTop===15,e.style.position=e.style.top="",d.style.overflow="hidden",d.style.position="relative",this.subtractsBorderForOverflowNotVisible=e.offsetTop===-5,this.doesNotIncludeMarginInBodyOffset=a.offsetTop!==i,a.removeChild(b),f.offset.initialize=f.noop},bodyOffset:function(a){var b=a.offsetTop,c=a.offsetLeft;f.offset.initialize(),f.offset.doesNotIncludeMarginInBodyOffset&&(b+=parseFloat(f.css(a,"marginTop"))||0,c+=parseFloat(f.css(a,"marginLeft"))||0);return{top:b,left:c}},setOffset:function(a,b,c){var d=f.css(a,"position");d==="static"&&(a.style.position="relative");var e=f(a),g=e.offset(),h=f.css(a,"top"),i=f.css(a,"left"),j=(d==="absolute"||d==="fixed")&&f.inArray("auto",[h,i])>-1,k={},l={},m,n;j?(l=e.position(),m=l.top,n=l.left):(m=parseFloat(h)||0,n=parseFloat(i)||0),f.isFunction(b)&&(b=b.call(a,c,g)),b.top!=null&&(k.top=b.top-g.top+m),b.left!=null&&(k.left=b.left-g.left+n),"using"in b?b.using.call(a,k):e.css(k)}},f.fn.extend({position:function(){if(!this[0])return null;var a=this[0],b=this.offsetParent(),c=this.offset(),d=cx.test(b[0].nodeName)?{top:0,left:0}:b.offset();c.top-=parseFloat(f.css(a,"marginTop"))||0,c.left-=parseFloat(f.css(a,"marginLeft"))||0,d.top+=parseFloat(f.css(b[0],"borderTopWidth"))||0,d.left+=parseFloat(f.css(b[0],"borderLeftWidth"))||0;return{top:c.top-d.top,left:c.left-d.left}},offsetParent:function(){return this.map(function(){var a=this.offsetParent||c.body;while(a&&!cx.test(a.nodeName)&&f.css(a,"position")==="static")a=a.offsetParent;return a})}}),f.each(["Left","Top"],function(a,c){var d="scroll"+c;f.fn[d]=function(c){var e,g;if(c===b){e=this[0];if(!e)return null;g=cy(e);return g?"pageXOffset"in g?g[a?"pageYOffset":"pageXOffset"]:f.support.boxModel&&g.document.documentElement[d]||g.document.body[d]:e[d]}return this.each(function(){g=cy(this),g?g.scrollTo(a?f(g).scrollLeft():c,a?c:f(g).scrollTop()):this[d]=c})}}),f.each(["Height","Width"],function(a,c){var d=c.toLowerCase();f.fn["inner"+c]=function(){return this[0]?parseFloat(f.css(this[0],d,"padding")):null},f.fn["outer"+c]=function(a){return this[0]?parseFloat(f.css(this[0],d,a?"margin":"border")):null},f.fn[d]=function(a){var e=this[0];if(!e)return a==null?null:this;if(f.isFunction(a))return this.each(function(b){var c=f(this);c[d](a.call(this,b,c[d]()))});if(f.isWindow(e)){var g=e.document.documentElement["client"+c];return e.document.compatMode==="CSS1Compat"&&g||e.document.body["client"+c]||g}if(e.nodeType===9)return Math.max(e.documentElement["client"+c],e.body["scroll"+c],e.documentElement["scroll"+c],e.body["offset"+c],e.documentElement["offset"+c]);if(a===b){var h=f.css(e,d),i=parseFloat(h);return f.isNaN(i)?h:i}return this.css(d,typeof a=="string"?a:a+"px")}}),a.jQuery=a.$=f})(window);
\ No newline at end of file
--- /dev/null
+// Modernizr v1.7 www.modernizr.com
+window.Modernizr=function(a,b,c){function G(){e.input=function(a){for(var b=0,c=a.length;b<c;b++)t[a[b]]=!!(a[b]in l);return t}("autocomplete autofocus list placeholder max min multiple pattern required step".split(" ")),e.inputtypes=function(a){for(var d=0,e,f,h,i=a.length;d<i;d++)l.setAttribute("type",f=a[d]),e=l.type!=="text",e&&(l.value=m,l.style.cssText="position:absolute;visibility:hidden;",/^range$/.test(f)&&l.style.WebkitAppearance!==c?(g.appendChild(l),h=b.defaultView,e=h.getComputedStyle&&h.getComputedStyle(l,null).WebkitAppearance!=="textfield"&&l.offsetHeight!==0,g.removeChild(l)):/^(search|tel)$/.test(f)||(/^(url|email)$/.test(f)?e=l.checkValidity&&l.checkValidity()===!1:/^color$/.test(f)?(g.appendChild(l),g.offsetWidth,e=l.value!=m,g.removeChild(l)):e=l.value!=m)),s[a[d]]=!!e;return s}("search tel url email datetime date month week time datetime-local number range color".split(" "))}function F(a,b){var c=a.charAt(0).toUpperCase()+a.substr(1),d=(a+" "+p.join(c+" ")+c).split(" ");return!!E(d,b)}function E(a,b){for(var d in a)if(k[a[d]]!==c&&(!b||b(a[d],j)))return!0}function D(a,b){return(""+a).indexOf(b)!==-1}function C(a,b){return typeof a===b}function B(a,b){return A(o.join(a+";")+(b||""))}function A(a){k.cssText=a}var d="1.7",e={},f=!0,g=b.documentElement,h=b.head||b.getElementsByTagName("head")[0],i="modernizr",j=b.createElement(i),k=j.style,l=b.createElement("input"),m=":)",n=Object.prototype.toString,o=" -webkit- -moz- -o- -ms- -khtml- ".split(" "),p="Webkit Moz O ms Khtml".split(" "),q={svg:"http://www.w3.org/2000/svg"},r={},s={},t={},u=[],v,w=function(a){var c=b.createElement("style"),d=b.createElement("div"),e;c.textContent=a+"{#modernizr{height:3px}}",h.appendChild(c),d.id="modernizr",g.appendChild(d),e=d.offsetHeight===3,c.parentNode.removeChild(c),d.parentNode.removeChild(d);return!!e},x=function(){function d(d,e){e=e||b.createElement(a[d]||"div");var f=(d="on"+d)in e;f||(e.setAttribute||(e=b.createElement("div")),e.setAttribute&&e.removeAttribute&&(e.setAttribute(d,""),f=C(e[d],"function"),C(e[d],c)||(e[d]=c),e.removeAttribute(d))),e=null;return f}var a={select:"input",change:"input",submit:"form",reset:"form",error:"img",load:"img",abort:"img"};return d}(),y=({}).hasOwnProperty,z;C(y,c)||C(y.call,c)?z=function(a,b){return b in a&&C(a.constructor.prototype[b],c)}:z=function(a,b){return y.call(a,b)},r.flexbox=function(){function c(a,b,c,d){a.style.cssText=o.join(b+":"+c+";")+(d||"")}function a(a,b,c,d){b+=":",a.style.cssText=(b+o.join(c+";"+b)).slice(0,-b.length)+(d||"")}var d=b.createElement("div"),e=b.createElement("div");a(d,"display","box","width:42px;padding:0;"),c(e,"box-flex","1","width:10px;"),d.appendChild(e),g.appendChild(d);var f=e.offsetWidth===42;d.removeChild(e),g.removeChild(d);return f},r.canvas=function(){var a=b.createElement("canvas");return a.getContext&&a.getContext("2d")},r.canvastext=function(){return e.canvas&&C(b.createElement("canvas").getContext("2d").fillText,"function")},r.webgl=function(){return!!a.WebGLRenderingContext},r.touch=function(){return"ontouchstart"in a||w("@media ("+o.join("touch-enabled),(")+"modernizr)")},r.geolocation=function(){return!!navigator.geolocation},r.postmessage=function(){return!!a.postMessage},r.websqldatabase=function(){var b=!!a.openDatabase;return b},r.indexedDB=function(){for(var b=-1,c=p.length;++b<c;){var d=p[b].toLowerCase();if(a[d+"_indexedDB"]||a[d+"IndexedDB"])return!0}return!1},r.hashchange=function(){return x("hashchange",a)&&(b.documentMode===c||b.documentMode>7)},r.history=function(){return !!(a.history&&history.pushState)},r.draganddrop=function(){return x("dragstart")&&x("drop")},r.websockets=function(){return"WebSocket"in a},r.rgba=function(){A("background-color:rgba(150,255,150,.5)");return D(k.backgroundColor,"rgba")},r.hsla=function(){A("background-color:hsla(120,40%,100%,.5)");return D(k.backgroundColor,"rgba")||D(k.backgroundColor,"hsla")},r.multiplebgs=function(){A("background:url(//:),url(//:),red url(//:)");return(new RegExp("(url\\s*\\(.*?){3}")).test(k.background)},r.backgroundsize=function(){return F("backgroundSize")},r.borderimage=function(){return F("borderImage")},r.borderradius=function(){return F("borderRadius","",function(a){return D(a,"orderRadius")})},r.boxshadow=function(){return F("boxShadow")},r.textshadow=function(){return b.createElement("div").style.textShadow===""},r.opacity=function(){B("opacity:.55");return/^0.55$/.test(k.opacity)},r.cssanimations=function(){return F("animationName")},r.csscolumns=function(){return F("columnCount")},r.cssgradients=function(){var a="background-image:",b="gradient(linear,left top,right bottom,from(#9f9),to(white));",c="linear-gradient(left top,#9f9, white);";A((a+o.join(b+a)+o.join(c+a)).slice(0,-a.length));return D(k.backgroundImage,"gradient")},r.cssreflections=function(){return F("boxReflect")},r.csstransforms=function(){return!!E(["transformProperty","WebkitTransform","MozTransform","OTransform","msTransform"])},r.csstransforms3d=function(){var a=!!E(["perspectiveProperty","WebkitPerspective","MozPerspective","OPerspective","msPerspective"]);a&&"webkitPerspective"in g.style&&(a=w("@media ("+o.join("transform-3d),(")+"modernizr)"));return a},r.csstransitions=function(){return F("transitionProperty")},r.fontface=function(){var a,c,d=h||g,e=b.createElement("style"),f=b.implementation||{hasFeature:function(){return!1}};e.type="text/css",d.insertBefore(e,d.firstChild),a=e.sheet||e.styleSheet;var i=f.hasFeature("CSS2","")?function(b){if(!a||!b)return!1;var c=!1;try{a.insertRule(b,0),c=/src/i.test(a.cssRules[0].cssText),a.deleteRule(a.cssRules.length-1)}catch(d){}return c}:function(b){if(!a||!b)return!1;a.cssText=b;return a.cssText.length!==0&&/src/i.test(a.cssText)&&a.cssText.replace(/\r+|\n+/g,"").indexOf(b.split(" ")[0])===0};c=i('@font-face { font-family: "font"; src: url(data:,); }'),d.removeChild(e);return c},r.video=function(){var a=b.createElement("video"),c=!!a.canPlayType;if(c){c=new Boolean(c),c.ogg=a.canPlayType('video/ogg; codecs="theora"');var d='video/mp4; codecs="avc1.42E01E';c.h264=a.canPlayType(d+'"')||a.canPlayType(d+', mp4a.40.2"'),c.webm=a.canPlayType('video/webm; codecs="vp8, vorbis"')}return c},r.audio=function(){var a=b.createElement("audio"),c=!!a.canPlayType;c&&(c=new Boolean(c),c.ogg=a.canPlayType('audio/ogg; codecs="vorbis"'),c.mp3=a.canPlayType("audio/mpeg;"),c.wav=a.canPlayType('audio/wav; codecs="1"'),c.m4a=a.canPlayType("audio/x-m4a;")||a.canPlayType("audio/aac;"));return c},r.localstorage=function(){try{return!!localStorage.getItem}catch(a){return!1}},r.sessionstorage=function(){try{return!!sessionStorage.getItem}catch(a){return!1}},r.webWorkers=function(){return!!a.Worker},r.applicationcache=function(){return!!a.applicationCache},r.svg=function(){return!!b.createElementNS&&!!b.createElementNS(q.svg,"svg").createSVGRect},r.inlinesvg=function(){var a=b.createElement("div");a.innerHTML="<svg/>";return(a.firstChild&&a.firstChild.namespaceURI)==q.svg},r.smil=function(){return!!b.createElementNS&&/SVG/.test(n.call(b.createElementNS(q.svg,"animate")))},r.svgclippaths=function(){return!!b.createElementNS&&/SVG/.test(n.call(b.createElementNS(q.svg,"clipPath")))};for(var H in r)z(r,H)&&(v=H.toLowerCase(),e[v]=r[H](),u.push((e[v]?"":"no-")+v));e.input||G(),e.crosswindowmessaging=e.postmessage,e.historymanagement=e.history,e.addTest=function(a,b){a=a.toLowerCase();if(!e[a]){b=!!b(),g.className+=" "+(b?"":"no-")+a,e[a]=b;return e}},A(""),j=l=null,f&&a.attachEvent&&function(){var a=b.createElement("div");a.innerHTML="<elem></elem>";return a.childNodes.length!==1}()&&function(a,b){function p(a,b){var c=-1,d=a.length,e,f=[];while(++c<d)e=a[c],(b=e.media||b)!="screen"&&f.push(p(e.imports,b),e.cssText);return f.join("")}function o(a){var b=-1;while(++b<e)a.createElement(d[b])}var c="abbr|article|aside|audio|canvas|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",d=c.split("|"),e=d.length,f=new RegExp("(^|\\s)("+c+")","gi"),g=new RegExp("<(/*)("+c+")","gi"),h=new RegExp("(^|[^\\n]*?\\s)("+c+")([^\\n]*)({[\\n\\w\\W]*?})","gi"),i=b.createDocumentFragment(),j=b.documentElement,k=j.firstChild,l=b.createElement("body"),m=b.createElement("style"),n;o(b),o(i),k.insertBefore(m,k.firstChild),m.media="print",a.attachEvent("onbeforeprint",function(){var a=-1,c=p(b.styleSheets,"all"),k=[],o;n=n||b.body;while((o=h.exec(c))!=null)k.push((o[1]+o[2]+o[3]).replace(f,"$1.iepp_$2")+o[4]);m.styleSheet.cssText=k.join("\n");while(++a<e){var q=b.getElementsByTagName(d[a]),r=q.length,s=-1;while(++s<r)q[s].className.indexOf("iepp_")<0&&(q[s].className+=" iepp_"+d[a])}i.appendChild(n),j.appendChild(l),l.className=n.className,l.innerHTML=n.innerHTML.replace(g,"<$1font")}),a.attachEvent("onafterprint",function(){l.innerHTML="",j.removeChild(l),j.appendChild(n),m.styleSheet.cssText=""})}(a,b),e._enableHTML5=f,e._version=d,g.className=g.className.replace(/\bno-js\b/,"")+" js "+u.join(" ");return e}(this,this.document)
\ No newline at end of file
--- /dev/null
+function dumpModernizr(){
+ var str = '';
+ dumpModernizr.old = dumpModernizr.old || {};
+
+ for (var prop in Modernizr) {
+
+ // skip previously done ones.
+ if (dumpModernizr.old[prop]) continue;
+ else dumpModernizr.old[prop] = true;
+
+ if (typeof Modernizr[prop] === 'function') continue;
+ // skip unit test items
+ if (/^test/.test(prop)) continue;
+
+ if (~TEST.inputs.indexOf(prop)) {
+ str += '<li><b>'+prop+'{}</b><ul>';
+ for (var field in Modernizr[prop]) {
+ str += '<li class="' + (Modernizr[prop][field] ? 'yes' : '') + '">' + field + ': ' + Modernizr[prop][field] + '</li>';
+ }
+ str += '</ul></li>';
+ } else {
+ str += '<li id="'+prop+'" class="' + (Modernizr[prop] ? 'yes' : '') + '">' + prop + ': ' + Modernizr[prop] + '</li>';
+ }
+ }
+ return str;
+}
+
+
+function grabFeatDetects(){
+ // thx github.js
+ $.getScript('https://api.github.com/repos/Modernizr/Modernizr/git/trees/master?recursive=1&callback=processTree');
+}
+
+
+function processTree(data){
+ var filenames = [];
+
+ for (var i = 0; i < data.data.tree.length; i++){
+ var file = data.data.tree[i];
+ var match = file.path.match(/^feature-detects\/(.*)/);
+ if (!match) continue;
+
+ var relpath = location.host == "modernizr.github.com" ?
+ '../modernizr-git/' : '../';
+
+ filenames.push(relpath + match[0]);
+ }
+
+ var jqxhrs = filenames.map(function(filename){
+ return jQuery.getScript(filename);
+ });
+
+ jQuery.when.apply(jQuery, jqxhrs).done(resultsToDOM);
+
+}
+
+function resultsToDOM(){
+
+ var modOutput = document.createElement('div'),
+ ref = document.getElementById('qunit-testresult') || document.getElementById('qunit-tests');
+
+ modOutput.className = 'output';
+ modOutput.innerHTML = dumpModernizr();
+
+ ref.parentNode.insertBefore(modOutput, ref);
+
+ // Modernizr object as text
+ document.getElementsByTagName('textarea')[0].innerHTML = JSON.stringify(Modernizr);
+
+}
+
+/* uno */ resultsToDOM();
+/* dos */ grabFeatDetects();
+/* tres */ setTimeout(resultsToDOM, 5e3);
+/* quatro */ setTimeout(resultsToDOM, 15e3);
--- /dev/null
+// https://github.com/kangax/detect-global
+
+// tweaked to run without a UI.
+
+(function () {
+ function getPropertyDescriptors(object) {
+ var props = { };
+ for (var prop in object) {
+
+ // nerfing for firefox who goes crazy over some objects like sessionStorage
+ try {
+
+ props[prop] = {
+ type: typeof object[prop],
+ value: object[prop]
+ };
+
+ } catch(e){
+ props[prop] = {};
+ }
+ }
+ return props;
+ }
+
+ function getCleanWindow() {
+ var elIframe = document.createElement('iframe');
+ elIframe.style.display = 'none';
+
+ var ref = document.getElementsByTagName('script')[0];
+ ref.parentNode.insertBefore(elIframe, ref);
+
+ elIframe.src = 'about:blank';
+ return elIframe.contentWindow;
+ }
+
+ function appendControl(el, name) {
+ var elCheckbox = document.createElement('input');
+ elCheckbox.type = 'checkbox';
+ elCheckbox.checked = true;
+ elCheckbox.id = '__' + name;
+
+ var elLabel = document.createElement('label');
+ elLabel.htmlFor = '__' + name;
+ elLabel.innerHTML = 'Exclude ' + name + ' properties?';
+ elLabel.style.marginLeft = '0.5em';
+
+ var elWrapper = document.createElement('p');
+ elWrapper.style.marginBottom = '0.5em';
+
+ elWrapper.appendChild(elCheckbox);
+ elWrapper.appendChild(elLabel);
+
+ el.appendChild(elWrapper);
+ }
+
+ function appendAnalyze(el) {
+ var elAnalyze = document.createElement('button');
+ elAnalyze.id = '__analyze';
+ elAnalyze.innerHTML = 'Analyze';
+ elAnalyze.style.marginTop = '1em';
+ el.appendChild(elAnalyze);
+ }
+
+ function appendCancel(el) {
+ var elCancel = document.createElement('a');
+ elCancel.href = '#';
+ elCancel.innerHTML = 'Cancel';
+ elCancel.style.cssText = 'color:#eee;margin-left:0.5em;';
+ elCancel.onclick = function() {
+ el.parentNode.removeChild(el);
+ return false;
+ };
+ el.appendChild(elCancel);
+ }
+
+ function initConfigPopup() {
+ var el = document.createElement('div');
+
+ el.style.cssText = 'position:fixed; left:10px; top:10px; width:300px; background:rgba(50,50,50,0.9);' +
+ '-moz-border-radius:10px; padding:1em; color: #eee; text-align: left;' +
+ 'font-family: "Helvetica Neue", Verdana, Arial, sans serif; z-index: 99999;';
+
+ for (var prop in propSets) {
+ appendControl(el, prop);
+ }
+
+ appendAnalyze(el);
+ appendCancel(el);
+
+ var ref = document.getElementsByTagName('script')[0];
+ ref.parentNode.insertBefore(el, ref);
+ }
+
+ function getPropsCount(object) {
+ var count = 0;
+ for (var prop in object) {
+ count++;
+ }
+ return count;
+ }
+
+ function shouldDeleteProperty(propToCheck) {
+ for (var prop in propSets) {
+ var elCheckbox = document.getElementById('__' + prop);
+ var isPropInSet = propSets[prop].indexOf(propToCheck) > -1;
+ if (isPropInSet && (elCheckbox ? elCheckbox.checked : true) ) {
+ return true;
+ }
+ }
+ }
+
+ function analyze() {
+ var global = (function(){ return this; })(),
+ globalProps = getPropertyDescriptors(global),
+ cleanWindow = getCleanWindow();
+
+ for (var prop in cleanWindow) {
+ if (globalProps[prop]) {
+ delete globalProps[prop];
+ }
+ }
+ for (var prop in globalProps) {
+ if (shouldDeleteProperty(prop)) {
+ delete globalProps[prop];
+ }
+ }
+
+ window.__globalsCount = getPropsCount(globalProps);
+ window.__globals = globalProps;
+
+ window.console && console.log('Total number of global properties: ' + __globalsCount);
+ window.console && console.dir(__globals);
+ }
+
+ var propSets = {
+ 'Prototype': '$$ $A $F $H $R $break $continue $w Abstract Ajax Class Enumerable Element Field Form ' +
+ 'Hash Insertion ObjectRange PeriodicalExecuter Position Prototype Selector Template Toggle Try'.split(' '),
+
+ 'Scriptaculous': 'Autocompleter Builder Control Draggable Draggables Droppables Effect Sortable SortableObserver Sound Scriptaculous'.split(' '),
+ 'Firebug': 'loadFirebugConsole console _getFirebugConsoleElement _FirebugConsole _FirebugCommandLine _firebug'.split(' '),
+ 'Mozilla': 'Components XPCNativeWrapper XPCSafeJSObjectWrapper getInterface netscape GetWeakReference GeckoActiveXObject'.split(' '),
+ 'GoogleAnalytics': 'gaJsHost gaGlobal _gat _gaq pageTracker'.split(' '),
+ 'lazyGlobals': 'onhashchange'.split(' ')
+ };
+
+ // initConfigPopup(); // disable because we're going UI-less.
+
+ var analyzeElem = document.getElementById('__analyze');
+ analyzeElem && (analyzeElem.onclick = analyze);
+
+ analyze(); // and assign total added globals to window.__globalsCount
+
+})();
\ No newline at end of file
--- /dev/null
+/*!
+ * jQuery JavaScript Library v1.7b2
+ * http://jquery.com/
+ *
+ * Copyright 2011, John Resig
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * Includes Sizzle.js
+ * http://sizzlejs.com/
+ * Copyright 2011, The Dojo Foundation
+ * Released under the MIT, BSD, and GPL Licenses.
+ *
+ * Date: Thu Oct 13 21:12:55 2011 -0400
+ */
+(function( window, undefined ) {
+
+// Use the correct document accordingly with window argument (sandbox)
+var document = window.document,
+ navigator = window.navigator,
+ location = window.location;
+var jQuery = (function() {
+
+// Define a local copy of jQuery
+var jQuery = function( selector, context ) {
+ // The jQuery object is actually just the init constructor 'enhanced'
+ return new jQuery.fn.init( selector, context, rootjQuery );
+ },
+
+ // Map over jQuery in case of overwrite
+ _jQuery = window.jQuery,
+
+ // Map over the $ in case of overwrite
+ _$ = window.$,
+
+ // A central reference to the root jQuery(document)
+ rootjQuery,
+
+ // A simple way to check for HTML strings or ID strings
+ // Prioritize #id over <tag> to avoid XSS via location.hash (#9521)
+ quickExpr = /^(?:[^#<]*(<[\w\W]+>)[^>]*$|#([\w\-]*)$)/,
+
+ // Check if a string has a non-whitespace character in it
+ rnotwhite = /\S/,
+
+ // Used for trimming whitespace
+ trimLeft = /^\s+/,
+ trimRight = /\s+$/,
+
+ // Check for digits
+ rdigit = /\d/,
+
+ // Match a standalone tag
+ rsingleTag = /^<(\w+)\s*\/?>(?:<\/\1>)?$/,
+
+ // JSON RegExp
+ rvalidchars = /^[\],:{}\s]*$/,
+ rvalidescape = /\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,
+ rvalidtokens = /"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,
+ rvalidbraces = /(?:^|:|,)(?:\s*\[)+/g,
+
+ // Useragent RegExp
+ rwebkit = /(webkit)[ \/]([\w.]+)/,
+ ropera = /(opera)(?:.*version)?[ \/]([\w.]+)/,
+ rmsie = /(msie) ([\w.]+)/,
+ rmozilla = /(mozilla)(?:.*? rv:([\w.]+))?/,
+
+ // Matches dashed string for camelizing
+ rdashAlpha = /-([a-z]|[0-9])/ig,
+ rmsPrefix = /^-ms-/,
+
+ // Used by jQuery.camelCase as callback to replace()
+ fcamelCase = function( all, letter ) {
+ return ( letter + "" ).toUpperCase();
+ },
+
+ // Keep a UserAgent string for use with jQuery.browser
+ userAgent = navigator.userAgent,
+
+ // For matching the engine and version of the browser
+ browserMatch,
+
+ // The deferred used on DOM ready
+ readyList,
+
+ // The ready event handler
+ DOMContentLoaded,
+
+ // Save a reference to some core methods
+ toString = Object.prototype.toString,
+ hasOwn = Object.prototype.hasOwnProperty,
+ push = Array.prototype.push,
+ slice = Array.prototype.slice,
+ trim = String.prototype.trim,
+ indexOf = Array.prototype.indexOf,
+
+ // [[Class]] -> type pairs
+ class2type = {};
+
+jQuery.fn = jQuery.prototype = {
+ constructor: jQuery,
+ init: function( selector, context, rootjQuery ) {
+ var match, elem, ret, doc;
+
+ // Handle $(""), $(null), or $(undefined)
+ if ( !selector ) {
+ return this;
+ }
+
+ // Handle $(DOMElement)
+ if ( selector.nodeType ) {
+ this.context = this[0] = selector;
+ this.length = 1;
+ return this;
+ }
+
+ // The body element only exists once, optimize finding it
+ if ( selector === "body" && !context && document.body ) {
+ this.context = document;
+ this[0] = document.body;
+ this.selector = selector;
+ this.length = 1;
+ return this;
+ }
+
+ // Handle HTML strings
+ if ( typeof selector === "string" ) {
+ // Are we dealing with HTML string or an ID?
+ if ( selector.charAt(0) === "<" && selector.charAt( selector.length - 1 ) === ">" && selector.length >= 3 ) {
+ // Assume that strings that start and end with <> are HTML and skip the regex check
+ match = [ null, selector, null ];
+
+ } else {
+ match = quickExpr.exec( selector );
+ }
+
+ // Verify a match, and that no context was specified for #id
+ if ( match && (match[1] || !context) ) {
+
+ // HANDLE: $(html) -> $(array)
+ if ( match[1] ) {
+ context = context instanceof jQuery ? context[0] : context;
+ doc = (context ? context.ownerDocument || context : document);
+
+ // If a single string is passed in and it's a single tag
+ // just do a createElement and skip the rest
+ ret = rsingleTag.exec( selector );
+
+ if ( ret ) {
+ if ( jQuery.isPlainObject( context ) ) {
+ selector = [ document.createElement( ret[1] ) ];
+ jQuery.fn.attr.call( selector, context, true );
+
+ } else {
+ selector = [ doc.createElement( ret[1] ) ];
+ }
+
+ } else {
+ ret = jQuery.buildFragment( [ match[1] ], [ doc ] );
+ selector = (ret.cacheable ? jQuery.clone(ret.fragment) : ret.fragment).childNodes;
+ }
+
+ return jQuery.merge( this, selector );
+
+ // HANDLE: $("#id")
+ } else {
+ elem = document.getElementById( match[2] );
+
+ // Check parentNode to catch when Blackberry 4.6 returns
+ // nodes that are no longer in the document #6963
+ if ( elem && elem.parentNode ) {
+ // Handle the case where IE and Opera return items
+ // by name instead of ID
+ if ( elem.id !== match[2] ) {
+ return rootjQuery.find( selector );
+ }
+
+ // Otherwise, we inject the element directly into the jQuery object
+ this.length = 1;
+ this[0] = elem;
+ }
+
+ this.context = document;
+ this.selector = selector;
+ return this;
+ }
+
+ // HANDLE: $(expr, $(...))
+ } else if ( !context || context.jquery ) {
+ return (context || rootjQuery).find( selector );
+
+ // HANDLE: $(expr, context)
+ // (which is just equivalent to: $(context).find(expr)
+ } else {
+ return this.constructor( context ).find( selector );
+ }
+
+ // HANDLE: $(function)
+ // Shortcut for document ready
+ } else if ( jQuery.isFunction( selector ) ) {
+ return rootjQuery.ready( selector );
+ }
+
+ if (selector.selector !== undefined) {
+ this.selector = selector.selector;
+ this.context = selector.context;
+ }
+
+ return jQuery.makeArray( selector, this );
+ },
+
+ // Start with an empty selector
+ selector: "",
+
+ // The current version of jQuery being used
+ jquery: "1.7b2",
+
+ // The default length of a jQuery object is 0
+ length: 0,
+
+ // The number of elements contained in the matched element set
+ size: function() {
+ return this.length;
+ },
+
+ toArray: function() {
+ return slice.call( this, 0 );
+ },
+
+ // Get the Nth element in the matched element set OR
+ // Get the whole matched element set as a clean array
+ get: function( num ) {
+ return num == null ?
+
+ // Return a 'clean' array
+ this.toArray() :
+
+ // Return just the object
+ ( num < 0 ? this[ this.length + num ] : this[ num ] );
+ },
+
+ // Take an array of elements and push it onto the stack
+ // (returning the new matched element set)
+ pushStack: function( elems, name, selector ) {
+ // Build a new jQuery matched element set
+ var ret = this.constructor();
+
+ if ( jQuery.isArray( elems ) ) {
+ push.apply( ret, elems );
+
+ } else {
+ jQuery.merge( ret, elems );
+ }
+
+ // Add the old object onto the stack (as a reference)
+ ret.prevObject = this;
+
+ ret.context = this.context;
+
+ if ( name === "find" ) {
+ ret.selector = this.selector + (this.selector ? " " : "") + selector;
+ } else if ( name ) {
+ ret.selector = this.selector + "." + name + "(" + selector + ")";
+ }
+
+ // Return the newly-formed element set
+ return ret;
+ },
+
+ // Execute a callback for every element in the matched set.
+ // (You can seed the arguments with an array of args, but this is
+ // only used internally.)
+ each: function( callback, args ) {
+ return jQuery.each( this, callback, args );
+ },
+
+ ready: function( fn ) {
+ // Attach the listeners
+ jQuery.bindReady();
+
+ // Add the callback
+ readyList.add( fn );
+
+ return this;
+ },
+
+ eq: function( i ) {
+ return i === -1 ?
+ this.slice( i ) :
+ this.slice( i, +i + 1 );
+ },
+
+ first: function() {
+ return this.eq( 0 );
+ },
+
+ last: function() {
+ return this.eq( -1 );
+ },
+
+ slice: function() {
+ return this.pushStack( slice.apply( this, arguments ),
+ "slice", slice.call(arguments).join(",") );
+ },
+
+ map: function( callback ) {
+ return this.pushStack( jQuery.map(this, function( elem, i ) {
+ return callback.call( elem, i, elem );
+ }));
+ },
+
+ end: function() {
+ return this.prevObject || this.constructor(null);
+ },
+
+ // For internal use only.
+ // Behaves like an Array's method, not like a jQuery method.
+ push: push,
+ sort: [].sort,
+ splice: [].splice
+};
+
+// Give the init function the jQuery prototype for later instantiation
+jQuery.fn.init.prototype = jQuery.fn;
+
+jQuery.extend = jQuery.fn.extend = function() {
+ var options, name, src, copy, copyIsArray, clone,
+ target = arguments[0] || {},
+ i = 1,
+ length = arguments.length,
+ deep = false;
+
+ // Handle a deep copy situation
+ if ( typeof target === "boolean" ) {
+ deep = target;
+ target = arguments[1] || {};
+ // skip the boolean and the target
+ i = 2;
+ }
+
+ // Handle case when target is a string or something (possible in deep copy)
+ if ( typeof target !== "object" && !jQuery.isFunction(target) ) {
+ target = {};
+ }
+
+ // extend jQuery itself if only one argument is passed
+ if ( length === i ) {
+ target = this;
+ --i;
+ }
+
+ for ( ; i < length; i++ ) {
+ // Only deal with non-null/undefined values
+ if ( (options = arguments[ i ]) != null ) {
+ // Extend the base object
+ for ( name in options ) {
+ src = target[ name ];
+ copy = options[ name ];
+
+ // Prevent never-ending loop
+ if ( target === copy ) {
+ continue;
+ }
+
+ // Recurse if we're merging plain objects or arrays
+ if ( deep && copy && ( jQuery.isPlainObject(copy) || (copyIsArray = jQuery.isArray(copy)) ) ) {
+ if ( copyIsArray ) {
+ copyIsArray = false;
+ clone = src && jQuery.isArray(src) ? src : [];
+
+ } else {
+ clone = src && jQuery.isPlainObject(src) ? src : {};
+ }
+
+ // Never move original objects, clone them
+ target[ name ] = jQuery.extend( deep, clone, copy );
+
+ // Don't bring in undefined values
+ } else if ( copy !== undefined ) {
+ target[ name ] = copy;
+ }
+ }
+ }
+ }
+
+ // Return the modified object
+ return target;
+};
+
+jQuery.extend({
+ noConflict: function( deep ) {
+ if ( window.$ === jQuery ) {
+ window.$ = _$;
+ }
+
+ if ( deep && window.jQuery === jQuery ) {
+ window.jQuery = _jQuery;
+ }
+
+ return jQuery;
+ },
+
+ // Is the DOM ready to be used? Set to true once it occurs.
+ isReady: false,
+
+ // A counter to track how many items to wait for before
+ // the ready event fires. See #6781
+ readyWait: 1,
+
+ // Hold (or release) the ready event
+ holdReady: function( hold ) {
+ if ( hold ) {
+ jQuery.readyWait++;
+ } else {
+ jQuery.ready( true );
+ }
+ },
+
+ // Handle when the DOM is ready
+ ready: function( wait ) {
+ // Either a released hold or an DOMready/load event and not yet ready
+ if ( (wait === true && !--jQuery.readyWait) || (wait !== true && !jQuery.isReady) ) {
+ // Make sure body exists, at least, in case IE gets a little overzealous (ticket #5443).
+ if ( !document.body ) {
+ return setTimeout( jQuery.ready, 1 );
+ }
+
+ // Remember that the DOM is ready
+ jQuery.isReady = true;
+
+ // If a normal DOM Ready event fired, decrement, and wait if need be
+ if ( wait !== true && --jQuery.readyWait > 0 ) {
+ return;
+ }
+
+ // If there are functions bound, to execute
+ readyList.fireWith( document, [ jQuery ] );
+
+ // Trigger any bound ready events
+ if ( jQuery.fn.trigger ) {
+ jQuery( document ).trigger( "ready" ).unbind( "ready" );
+ }
+ }
+ },
+
+ bindReady: function() {
+ if ( readyList ) {
+ return;
+ }
+
+ readyList = jQuery.Callbacks( "once memory" );
+
+ // Catch cases where $(document).ready() is called after the
+ // browser event has already occurred.
+ if ( document.readyState === "complete" ) {
+ // Handle it asynchronously to allow scripts the opportunity to delay ready
+ return setTimeout( jQuery.ready, 1 );
+ }
+
+ // Mozilla, Opera and webkit nightlies currently support this event
+ if ( document.addEventListener ) {
+ // Use the handy event callback
+ document.addEventListener( "DOMContentLoaded", DOMContentLoaded, false );
+
+ // A fallback to window.onload, that will always work
+ window.addEventListener( "load", jQuery.ready, false );
+
+ // If IE event model is used
+ } else if ( document.attachEvent ) {
+ // ensure firing before onload,
+ // maybe late but safe also for iframes
+ document.attachEvent( "onreadystatechange", DOMContentLoaded );
+
+ // A fallback to window.onload, that will always work
+ window.attachEvent( "onload", jQuery.ready );
+
+ // If IE and not a frame
+ // continually check to see if the document is ready
+ var toplevel = false;
+
+ try {
+ toplevel = window.frameElement == null;
+ } catch(e) {}
+
+ if ( document.documentElement.doScroll && toplevel ) {
+ doScrollCheck();
+ }
+ }
+ },
+
+ // See test/unit/core.js for details concerning isFunction.
+ // Since version 1.3, DOM methods and functions like alert
+ // aren't supported. They return false on IE (#2968).
+ isFunction: function( obj ) {
+ return jQuery.type(obj) === "function";
+ },
+
+ isArray: Array.isArray || function( obj ) {
+ return jQuery.type(obj) === "array";
+ },
+
+ // A crude way of determining if an object is a window
+ isWindow: function( obj ) {
+ return obj && typeof obj === "object" && "setInterval" in obj;
+ },
+
+ isNumeric: function( obj ) {
+ return obj != null && rdigit.test( obj ) && !isNaN( obj );
+ },
+
+ type: function( obj ) {
+ return obj == null ?
+ String( obj ) :
+ class2type[ toString.call(obj) ] || "object";
+ },
+
+ isPlainObject: function( obj ) {
+ // Must be an Object.
+ // Because of IE, we also have to check the presence of the constructor property.
+ // Make sure that DOM nodes and window objects don't pass through, as well
+ if ( !obj || jQuery.type(obj) !== "object" || obj.nodeType || jQuery.isWindow( obj ) ) {
+ return false;
+ }
+
+ try {
+ // Not own constructor property must be Object
+ if ( obj.constructor &&
+ !hasOwn.call(obj, "constructor") &&
+ !hasOwn.call(obj.constructor.prototype, "isPrototypeOf") ) {
+ return false;
+ }
+ } catch ( e ) {
+ // IE8,9 Will throw exceptions on certain host objects #9897
+ return false;
+ }
+
+ // Own properties are enumerated firstly, so to speed up,
+ // if last one is own, then all properties are own.
+
+ var key;
+ for ( key in obj ) {}
+
+ return key === undefined || hasOwn.call( obj, key );
+ },
+
+ isEmptyObject: function( obj ) {
+ for ( var name in obj ) {
+ return false;
+ }
+ return true;
+ },
+
+ error: function( msg ) {
+ throw msg;
+ },
+
+ parseJSON: function( data ) {
+ if ( typeof data !== "string" || !data ) {
+ return null;
+ }
+
+ // Make sure leading/trailing whitespace is removed (IE can't handle it)
+ data = jQuery.trim( data );
+
+ // Attempt to parse using the native JSON parser first
+ if ( window.JSON && window.JSON.parse ) {
+ return window.JSON.parse( data );
+ }
+
+ // Make sure the incoming data is actual JSON
+ // Logic borrowed from http://json.org/json2.js
+ if ( rvalidchars.test( data.replace( rvalidescape, "@" )
+ .replace( rvalidtokens, "]" )
+ .replace( rvalidbraces, "")) ) {
+
+ return (new Function( "return " + data ))();
+
+ }
+ jQuery.error( "Invalid JSON: " + data );
+ },
+
+ // Cross-browser xml parsing
+ parseXML: function( data ) {
+ var xml, tmp;
+ try {
+ if ( window.DOMParser ) { // Standard
+ tmp = new DOMParser();
+ xml = tmp.parseFromString( data , "text/xml" );
+ } else { // IE
+ xml = new ActiveXObject( "Microsoft.XMLDOM" );
+ xml.async = "false";
+ xml.loadXML( data );
+ }
+ } catch( e ) {
+ xml = undefined;
+ }
+ if ( !xml || !xml.documentElement || xml.getElementsByTagName( "parsererror" ).length ) {
+ jQuery.error( "Invalid XML: " + data );
+ }
+ return xml;
+ },
+
+ noop: function() {},
+
+ // Evaluates a script in a global context
+ // Workarounds based on findings by Jim Driscoll
+ // http://weblogs.java.net/blog/driscoll/archive/2009/09/08/eval-javascript-global-context
+ globalEval: function( data ) {
+ if ( data && rnotwhite.test( data ) ) {
+ // We use execScript on Internet Explorer
+ // We use an anonymous function so that context is window
+ // rather than jQuery in Firefox
+ ( window.execScript || function( data ) {
+ window[ "eval" ].call( window, data );
+ } )( data );
+ }
+ },
+
+ // Convert dashed to camelCase; used by the css and data modules
+ // Microsoft forgot to hump their vendor prefix (#9572)
+ camelCase: function( string ) {
+ return string.replace( rmsPrefix, "ms-" ).replace( rdashAlpha, fcamelCase );
+ },
+
+ nodeName: function( elem, name ) {
+ return elem.nodeName && elem.nodeName.toUpperCase() === name.toUpperCase();
+ },
+
+ // args is for internal usage only
+ each: function( object, callback, args ) {
+ var name, i = 0,
+ length = object.length,
+ isObj = length === undefined || jQuery.isFunction( object );
+
+ if ( args ) {
+ if ( isObj ) {
+ for ( name in object ) {
+ if ( callback.apply( object[ name ], args ) === false ) {
+ break;
+ }
+ }
+ } else {
+ for ( ; i < length; ) {
+ if ( callback.apply( object[ i++ ], args ) === false ) {
+ break;
+ }
+ }
+ }
+
+ // A special, fast, case for the most common use of each
+ } else {
+ if ( isObj ) {
+ for ( name in object ) {
+ if ( callback.call( object[ name ], name, object[ name ] ) === false ) {
+ break;
+ }
+ }
+ } else {
+ for ( ; i < length; ) {
+ if ( callback.call( object[ i ], i, object[ i++ ] ) === false ) {
+ break;
+ }
+ }
+ }
+ }
+
+ return object;
+ },
+
+ // Use native String.trim function wherever possible
+ trim: trim ?
+ function( text ) {
+ return text == null ?
+ "" :
+ trim.call( text );
+ } :
+
+ // Otherwise use our own trimming functionality
+ function( text ) {
+ return text == null ?
+ "" :
+ text.toString().replace( trimLeft, "" ).replace( trimRight, "" );
+ },
+
+ // results is for internal usage only
+ makeArray: function( array, results ) {
+ var ret = results || [];
+
+ if ( array != null ) {
+ // The window, strings (and functions) also have 'length'
+ // The extra typeof function check is to prevent crashes
+ // in Safari 2 (See: #3039)
+ // Tweaked logic slightly to handle Blackberry 4.7 RegExp issues #6930
+ var type = jQuery.type( array );
+
+ if ( array.length == null || type === "string" || type === "function" || type === "regexp" || jQuery.isWindow( array ) ) {
+ push.call( ret, array );
+ } else {
+ jQuery.merge( ret, array );
+ }
+ }
+
+ return ret;
+ },
+
+ inArray: function( elem, array, i ) {
+ var len;
+
+ if ( array ) {
+ if ( indexOf ) {
+ return indexOf.call( array, elem, i );
+ }
+
+ len = array.length;
+ i = i ? i < 0 ? Math.max( 0, len + i ) : i : 0;
+
+ for ( ; i < len; i++ ) {
+ // Skip accessing in sparse arrays
+ if ( i in array && array[ i ] === elem ) {
+ return i;
+ }
+ }
+ }
+
+ return -1;
+ },
+
+ merge: function( first, second ) {
+ var i = first.length,
+ j = 0;
+
+ if ( typeof second.length === "number" ) {
+ for ( var l = second.length; j < l; j++ ) {
+ first[ i++ ] = second[ j ];
+ }
+
+ } else {
+ while ( second[j] !== undefined ) {
+ first[ i++ ] = second[ j++ ];
+ }
+ }
+
+ first.length = i;
+
+ return first;
+ },
+
+ grep: function( elems, callback, inv ) {
+ var ret = [], retVal;
+ inv = !!inv;
+
+ // Go through the array, only saving the items
+ // that pass the validator function
+ for ( var i = 0, length = elems.length; i < length; i++ ) {
+ retVal = !!callback( elems[ i ], i );
+ if ( inv !== retVal ) {
+ ret.push( elems[ i ] );
+ }
+ }
+
+ return ret;
+ },
+
+ // arg is for internal usage only
+ map: function( elems, callback, arg ) {
+ var value, key, ret = [],
+ i = 0,
+ length = elems.length,
+ // jquery objects are treated as arrays
+ isArray = elems instanceof jQuery || length !== undefined && typeof length === "number" && ( ( length > 0 && elems[ 0 ] && elems[ length -1 ] ) || length === 0 || jQuery.isArray( elems ) ) ;
+
+ // Go through the array, translating each of the items to their
+ if ( isArray ) {
+ for ( ; i < length; i++ ) {
+ value = callback( elems[ i ], i, arg );
+
+ if ( value != null ) {
+ ret[ ret.length ] = value;
+ }
+ }
+
+ // Go through every key on the object,
+ } else {
+ for ( key in elems ) {
+ value = callback( elems[ key ], key, arg );
+
+ if ( value != null ) {
+ ret[ ret.length ] = value;
+ }
+ }
+ }
+
+ // Flatten any nested arrays
+ return ret.concat.apply( [], ret );
+ },
+
+ // A global GUID counter for objects
+ guid: 1,
+
+ // Bind a function to a context, optionally partially applying any
+ // arguments.
+ proxy: function( fn, context ) {
+ if ( typeof context === "string" ) {
+ var tmp = fn[ context ];
+ context = fn;
+ fn = tmp;
+ }
+
+ // Quick check to determine if target is callable, in the spec
+ // this throws a TypeError, but we will just return undefined.
+ if ( !jQuery.isFunction( fn ) ) {
+ return undefined;
+ }
+
+ // Simulated bind
+ var args = slice.call( arguments, 2 ),
+ proxy = function() {
+ return fn.apply( context, args.concat( slice.call( arguments ) ) );
+ };
+
+ // Set the guid of unique handler to the same of original handler, so it can be removed
+ proxy.guid = fn.guid = fn.guid || proxy.guid || jQuery.guid++;
+
+ return proxy;
+ },
+
+ // Mutifunctional method to get and set values to a collection
+ // The value/s can optionally be executed if it's a function
+ access: function( elems, key, value, exec, fn, pass ) {
+ var length = elems.length;
+
+ // Setting many attributes
+ if ( typeof key === "object" ) {
+ for ( var k in key ) {
+ jQuery.access( elems, k, key[k], exec, fn, value );
+ }
+ return elems;
+ }
+
+ // Setting one attribute
+ if ( value !== undefined ) {
+ // Optionally, function values get executed if exec is true
+ exec = !pass && exec && jQuery.isFunction(value);
+
+ for ( var i = 0; i < length; i++ ) {
+ fn( elems[i], key, exec ? value.call( elems[i], i, fn( elems[i], key ) ) : value, pass );
+ }
+
+ return elems;
+ }
+
+ // Getting an attribute
+ return length ? fn( elems[0], key ) : undefined;
+ },
+
+ now: function() {
+ return (new Date()).getTime();
+ },
+
+ // Use of jQuery.browser is frowned upon.
+ // More details: http://docs.jquery.com/Utilities/jQuery.browser
+ uaMatch: function( ua ) {
+ ua = ua.toLowerCase();
+
+ var match = rwebkit.exec( ua ) ||
+ ropera.exec( ua ) ||
+ rmsie.exec( ua ) ||
+ ua.indexOf("compatible") < 0 && rmozilla.exec( ua ) ||
+ [];
+
+ return { browser: match[1] || "", version: match[2] || "0" };
+ },
+
+ sub: function() {
+ function jQuerySub( selector, context ) {
+ return new jQuerySub.fn.init( selector, context );
+ }
+ jQuery.extend( true, jQuerySub, this );
+ jQuerySub.superclass = this;
+ jQuerySub.fn = jQuerySub.prototype = this();
+ jQuerySub.fn.constructor = jQuerySub;
+ jQuerySub.sub = this.sub;
+ jQuerySub.fn.init = function init( selector, context ) {
+ if ( context && context instanceof jQuery && !(context instanceof jQuerySub) ) {
+ context = jQuerySub( context );
+ }
+
+ return jQuery.fn.init.call( this, selector, context, rootjQuerySub );
+ };
+ jQuerySub.fn.init.prototype = jQuerySub.fn;
+ var rootjQuerySub = jQuerySub(document);
+ return jQuerySub;
+ },
+
+ browser: {}
+});
+
+// Populate the class2type map
+jQuery.each("Boolean Number String Function Array Date RegExp Object".split(" "), function(i, name) {
+ class2type[ "[object " + name + "]" ] = name.toLowerCase();
+});
+
+browserMatch = jQuery.uaMatch( userAgent );
+if ( browserMatch.browser ) {
+ jQuery.browser[ browserMatch.browser ] = true;
+ jQuery.browser.version = browserMatch.version;
+}
+
+// Deprecated, use jQuery.browser.webkit instead
+if ( jQuery.browser.webkit ) {
+ jQuery.browser.safari = true;
+}
+
+// IE doesn't match non-breaking spaces with \s
+if ( rnotwhite.test( "\xA0" ) ) {
+ trimLeft = /^[\s\xA0]+/;
+ trimRight = /[\s\xA0]+$/;
+}
+
+// All jQuery objects should point back to these
+rootjQuery = jQuery(document);
+
+// Cleanup functions for the document ready method
+if ( document.addEventListener ) {
+ DOMContentLoaded = function() {
+ document.removeEventListener( "DOMContentLoaded", DOMContentLoaded, false );
+ jQuery.ready();
+ };
+
+} else if ( document.attachEvent ) {
+ DOMContentLoaded = function() {
+ // Make sure body exists, at least, in case IE gets a little overzealous (ticket #5443).
+ if ( document.readyState === "complete" ) {
+ document.detachEvent( "onreadystatechange", DOMContentLoaded );
+ jQuery.ready();
+ }
+ };
+}
+
+// The DOM ready check for Internet Explorer
+function doScrollCheck() {
+ if ( jQuery.isReady ) {
+ return;
+ }
+
+ try {
+ // If IE is used, use the trick by Diego Perini
+ // http://javascript.nwbox.com/IEContentLoaded/
+ document.documentElement.doScroll("left");
+ } catch(e) {
+ setTimeout( doScrollCheck, 1 );
+ return;
+ }
+
+ // and execute any waiting functions
+ jQuery.ready();
+}
+
+// Expose jQuery as an AMD module, but only for AMD loaders that
+// understand the issues with loading multiple versions of jQuery
+// in a page that all might call define(). The loader will indicate
+// they have special allowances for multiple jQuery versions by
+// specifying define.amd.jQuery = true. Register as a named module,
+// since jQuery can be concatenated with other files that may use define,
+// but not use a proper concatenation script that understands anonymous
+// AMD modules. A named AMD is safest and most robust way to register.
+// Lowercase jquery is used because AMD module names are derived from
+// file names, and jQuery is normally delivered in a lowercase file name.
+if ( typeof define === "function" && define.amd && define.amd.jQuery ) {
+ define( "jquery", [], function () { return jQuery; } );
+}
+
+return jQuery;
+
+})();
+
+
+// String to Object flags format cache
+var flagsCache = {};
+
+// Convert String-formatted flags into Object-formatted ones and store in cache
+function createFlags( flags ) {
+ var object = flagsCache[ flags ] = {},
+ i, length;
+ flags = flags.split( /\s+/ );
+ for ( i = 0, length = flags.length; i < length; i++ ) {
+ object[ flags[i] ] = true;
+ }
+ return object;
+}
+
+/*
+ * Create a callback list using the following parameters:
+ *
+ * flags: an optional list of space-separated flags that will change how
+ * the callback list behaves
+ *
+ * By default a callback list will act like an event callback list and can be
+ * "fired" multiple times.
+ *
+ * Possible flags:
+ *
+ * once: will ensure the callback list can only be fired once (like a Deferred)
+ *
+ * memory: will keep track of previous values and will call any callback added
+ * after the list has been fired right away with the latest "memorized"
+ * values (like a Deferred)
+ *
+ * unique: will ensure a callback can only be added once (no duplicate in the list)
+ *
+ * stopOnFalse: interrupt callings when a callback returns false
+ *
+ */
+jQuery.Callbacks = function( flags ) {
+
+ // Convert flags from String-formatted to Object-formatted
+ // (we check in cache first)
+ flags = flags ? ( flagsCache[ flags ] || createFlags( flags ) ) : {};
+
+ var // Actual callback list
+ list = [],
+ // Stack of fire calls for repeatable lists
+ stack = [],
+ // Last fire value (for non-forgettable lists)
+ memory,
+ // Flag to know if list is currently firing
+ firing,
+ // First callback to fire (used internally by add and fireWith)
+ firingStart,
+ // End of the loop when firing
+ firingLength,
+ // Index of currently firing callback (modified by remove if needed)
+ firingIndex,
+ // Add one or several callbacks to the list
+ add = function( args ) {
+ var i,
+ length,
+ elem,
+ type,
+ actual;
+ for ( i = 0, length = args.length; i < length; i++ ) {
+ elem = args[ i ];
+ type = jQuery.type( elem );
+ if ( type === "array" ) {
+ // Inspect recursively
+ add( elem );
+ } else if ( type === "function" ) {
+ // Add if not in unique mode and callback is not in
+ if ( !flags.unique || !self.has( elem ) ) {
+ list.push( elem );
+ }
+ }
+ }
+ },
+ // Fire callbacks
+ fire = function( context, args ) {
+ args = args || [];
+ memory = !flags.memory || [ context, args ];
+ firing = true;
+ firingIndex = firingStart || 0;
+ firingStart = 0;
+ firingLength = list.length;
+ for ( ; list && firingIndex < firingLength; firingIndex++ ) {
+ if ( list[ firingIndex ].apply( context, args ) === false && flags.stopOnFalse ) {
+ memory = true; // Mark as halted
+ break;
+ }
+ }
+ firing = false;
+ if ( list ) {
+ if ( !flags.once ) {
+ if ( stack && stack.length ) {
+ memory = stack.shift();
+ self.fireWith( memory[ 0 ], memory[ 1 ] );
+ }
+ } else if ( memory === true ) {
+ self.disable();
+ } else {
+ list = [];
+ }
+ }
+ },
+ // Actual Callbacks object
+ self = {
+ // Add a callback or a collection of callbacks to the list
+ add: function() {
+ if ( list ) {
+ var length = list.length;
+ add( arguments );
+ // Do we need to add the callbacks to the
+ // current firing batch?
+ if ( firing ) {
+ firingLength = list.length;
+ // With memory, if we're not firing then
+ // we should call right away, unless previous
+ // firing was halted (stopOnFalse)
+ } else if ( memory && memory !== true ) {
+ firingStart = length;
+ fire( memory[ 0 ], memory[ 1 ] );
+ }
+ }
+ return this;
+ },
+ // Remove a callback from the list
+ remove: function() {
+ if ( list ) {
+ var args = arguments,
+ argIndex = 0,
+ argLength = args.length;
+ for ( ; argIndex < argLength ; argIndex++ ) {
+ for ( var i = 0; i < list.length; i++ ) {
+ if ( args[ argIndex ] === list[ i ] ) {
+ // Handle firingIndex and firingLength
+ if ( firing ) {
+ if ( i <= firingLength ) {
+ firingLength--;
+ if ( i <= firingIndex ) {
+ firingIndex--;
+ }
+ }
+ }
+ // Remove the element
+ list.splice( i--, 1 );
+ // If we have some unicity property then
+ // we only need to do this once
+ if ( flags.unique ) {
+ break;
+ }
+ }
+ }
+ }
+ }
+ return this;
+ },
+ // Control if a given callback is in the list
+ has: function( fn ) {
+ if ( list ) {
+ var i = 0,
+ length = list.length;
+ for ( ; i < length; i++ ) {
+ if ( fn === list[ i ] ) {
+ return true;
+ }
+ }
+ }
+ return false;
+ },
+ // Remove all callbacks from the list
+ empty: function() {
+ list = [];
+ return this;
+ },
+ // Have the list do nothing anymore
+ disable: function() {
+ list = stack = memory = undefined;
+ return this;
+ },
+ // Is it disabled?
+ disabled: function() {
+ return !list;
+ },
+ // Lock the list in its current state
+ lock: function() {
+ stack = undefined;
+ if ( !memory || memory === true ) {
+ self.disable();
+ }
+ return this;
+ },
+ // Is it locked?
+ locked: function() {
+ return !stack;
+ },
+ // Call all callbacks with the given context and arguments
+ fireWith: function( context, args ) {
+ if ( stack ) {
+ if ( firing ) {
+ if ( !flags.once ) {
+ stack.push( [ context, args ] );
+ }
+ } else if ( !( flags.once && memory ) ) {
+ fire( context, args );
+ }
+ }
+ return this;
+ },
+ // Call all the callbacks with the given arguments
+ fire: function() {
+ self.fireWith( this, arguments );
+ return this;
+ },
+ // To know if the callbacks have already been called at least once
+ fired: function() {
+ return !!memory;
+ }
+ };
+
+ return self;
+};
+
+
+
+
+var // Static reference to slice
+ sliceDeferred = [].slice;
+
+jQuery.extend({
+
+ Deferred: function( func ) {
+ var doneList = jQuery.Callbacks( "once memory" ),
+ failList = jQuery.Callbacks( "once memory" ),
+ progressList = jQuery.Callbacks( "memory" ),
+ state = "pending",
+ lists = {
+ resolve: doneList,
+ reject: failList,
+ notify: progressList
+ },
+ promise = {
+ done: doneList.add,
+ fail: failList.add,
+ progress: progressList.add,
+
+ state: function() {
+ return state;
+ },
+
+ // Deprecated
+ isResolved: doneList.fired,
+ isRejected: failList.fired,
+
+ then: function( doneCallbacks, failCallbacks, progressCallbacks ) {
+ deferred.done( doneCallbacks ).fail( failCallbacks ).progress( progressCallbacks );
+ return this;
+ },
+ always: function() {
+ return deferred.done.apply( deferred, arguments ).fail.apply( deferred, arguments );
+ },
+ pipe: function( fnDone, fnFail, fnProgress ) {
+ return jQuery.Deferred(function( newDefer ) {
+ jQuery.each( {
+ done: [ fnDone, "resolve" ],
+ fail: [ fnFail, "reject" ],
+ progress: [ fnProgress, "notify" ]
+ }, function( handler, data ) {
+ var fn = data[ 0 ],
+ action = data[ 1 ],
+ returned;
+ if ( jQuery.isFunction( fn ) ) {
+ deferred[ handler ](function() {
+ returned = fn.apply( this, arguments );
+ if ( returned && jQuery.isFunction( returned.promise ) ) {
+ returned.promise().then( newDefer.resolve, newDefer.reject, newDefer.notify );
+ } else {
+ newDefer[ action + "With" ]( this === deferred ? newDefer : this, [ returned ] );
+ }
+ });
+ } else {
+ deferred[ handler ]( newDefer[ action ] );
+ }
+ });
+ }).promise();
+ },
+ // Get a promise for this deferred
+ // If obj is provided, the promise aspect is added to the object
+ promise: function( obj ) {
+ if ( obj == null ) {
+ obj = promise;
+ } else {
+ for( var key in promise ) {
+ obj[ key ] = promise[ key ];
+ }
+ }
+ return obj;
+ }
+ },
+ deferred = promise.promise({}),
+ key;
+
+ for ( key in lists ) {
+ deferred[ key ] = lists[ key ].fire;
+ deferred[ key + "With" ] = lists[ key ].fireWith;
+ }
+
+ // Handle state
+ deferred.done( function() {
+ state = "resolved";
+ }, failList.disable, progressList.lock ).fail( function() {
+ state = "rejected";
+ }, doneList.disable, progressList.lock );
+
+ // Call given func if any
+ if ( func ) {
+ func.call( deferred, deferred );
+ }
+
+ // All done!
+ return deferred;
+ },
+
+ // Deferred helper
+ when: function( firstParam ) {
+ var args = sliceDeferred.call( arguments, 0 ),
+ i = 0,
+ length = args.length,
+ pValues = new Array( length ),
+ count = length,
+ pCount = length,
+ deferred = length <= 1 && firstParam && jQuery.isFunction( firstParam.promise ) ?
+ firstParam :
+ jQuery.Deferred(),
+ promise = deferred.promise();
+ function resolveFunc( i ) {
+ return function( value ) {
+ args[ i ] = arguments.length > 1 ? sliceDeferred.call( arguments, 0 ) : value;
+ if ( !( --count ) ) {
+ deferred.resolveWith( deferred, args );
+ }
+ };
+ }
+ function progressFunc( i ) {
+ return function( value ) {
+ pValues[ i ] = arguments.length > 1 ? sliceDeferred.call( arguments, 0 ) : value;
+ deferred.notifyWith( promise, pValues );
+ };
+ }
+ if ( length > 1 ) {
+ for( ; i < length; i++ ) {
+ if ( args[ i ] && args[ i ].promise && jQuery.isFunction( args[ i ].promise ) ) {
+ args[ i ].promise().then( resolveFunc(i), deferred.reject, progressFunc(i) );
+ } else {
+ --count;
+ }
+ }
+ if ( !count ) {
+ deferred.resolveWith( deferred, args );
+ }
+ } else if ( deferred !== firstParam ) {
+ deferred.resolveWith( deferred, length ? [ firstParam ] : [] );
+ }
+ return promise;
+ }
+});
+
+
+
+
+jQuery.support = (function() {
+
+ var div = document.createElement( "div" ),
+ documentElement = document.documentElement,
+ all,
+ a,
+ select,
+ opt,
+ input,
+ marginDiv,
+ support,
+ fragment,
+ body,
+ testElementParent,
+ testElement,
+ testElementStyle,
+ tds,
+ events,
+ eventName,
+ i,
+ isSupported,
+ offsetSupport;
+
+ // Preliminary tests
+ div.setAttribute("className", "t");
+ div.innerHTML = " <link/><table></table><a href='/a' style='top:1px;float:left;opacity:.55;'>a</a><input type='checkbox'/><nav></nav>";
+
+
+ all = div.getElementsByTagName( "*" );
+ a = div.getElementsByTagName( "a" )[ 0 ];
+
+ // Can't get basic test support
+ if ( !all || !all.length || !a ) {
+ return {};
+ }
+
+ // First batch of supports tests
+ select = document.createElement( "select" );
+ opt = select.appendChild( document.createElement("option") );
+ input = div.getElementsByTagName( "input" )[ 0 ];
+
+ support = {
+ // IE strips leading whitespace when .innerHTML is used
+ leadingWhitespace: ( div.firstChild.nodeType === 3 ),
+
+ // Make sure that tbody elements aren't automatically inserted
+ // IE will insert them into empty tables
+ tbody: !div.getElementsByTagName( "tbody" ).length,
+
+ // Make sure that link elements get serialized correctly by innerHTML
+ // This requires a wrapper element in IE
+ htmlSerialize: !!div.getElementsByTagName( "link" ).length,
+
+ // Get the style information from getAttribute
+ // (IE uses .cssText instead)
+ style: /top/.test( a.getAttribute("style") ),
+
+ // Make sure that URLs aren't manipulated
+ // (IE normalizes it by default)
+ hrefNormalized: ( a.getAttribute( "href" ) === "/a" ),
+
+ // Make sure that element opacity exists
+ // (IE uses filter instead)
+ // Use a regex to work around a WebKit issue. See #5145
+ opacity: /^0.55/.test( a.style.opacity ),
+
+ // Verify style float existence
+ // (IE uses styleFloat instead of cssFloat)
+ cssFloat: !!a.style.cssFloat,
+
+ // Make sure unknown elements (like HTML5 elems) are handled appropriately
+ unknownElems: !!div.getElementsByTagName( "nav" ).length,
+
+ // Make sure that if no value is specified for a checkbox
+ // that it defaults to "on".
+ // (WebKit defaults to "" instead)
+ checkOn: ( input.value === "on" ),
+
+ // Make sure that a selected-by-default option has a working selected property.
+ // (WebKit defaults to false instead of true, IE too, if it's in an optgroup)
+ optSelected: opt.selected,
+
+ // Test setAttribute on camelCase class. If it works, we need attrFixes when doing get/setAttribute (ie6/7)
+ getSetAttribute: div.className !== "t",
+
+ // Will be defined later
+ submitBubbles: true,
+ changeBubbles: true,
+ focusinBubbles: false,
+ deleteExpando: true,
+ noCloneEvent: true,
+ inlineBlockNeedsLayout: false,
+ shrinkWrapBlocks: false,
+ reliableMarginRight: true
+ };
+
+ // Make sure checked status is properly cloned
+ input.checked = true;
+ support.noCloneChecked = input.cloneNode( true ).checked;
+
+ // Make sure that the options inside disabled selects aren't marked as disabled
+ // (WebKit marks them as disabled)
+ select.disabled = true;
+ support.optDisabled = !opt.disabled;
+
+ // Test to see if it's possible to delete an expando from an element
+ // Fails in Internet Explorer
+ try {
+ delete div.test;
+ } catch( e ) {
+ support.deleteExpando = false;
+ }
+
+ if ( !div.addEventListener && div.attachEvent && div.fireEvent ) {
+ div.attachEvent( "onclick", function() {
+ // Cloning a node shouldn't copy over any
+ // bound event handlers (IE does this)
+ support.noCloneEvent = false;
+ });
+ div.cloneNode( true ).fireEvent( "onclick" );
+ }
+
+ // Check if a radio maintains its value
+ // after being appended to the DOM
+ input = document.createElement("input");
+ input.value = "t";
+ input.setAttribute("type", "radio");
+ support.radioValue = input.value === "t";
+
+ input.setAttribute("checked", "checked");
+ div.appendChild( input );
+ fragment = document.createDocumentFragment();
+ fragment.appendChild( div.firstChild );
+
+ // WebKit doesn't clone checked state correctly in fragments
+ support.checkClone = fragment.cloneNode( true ).cloneNode( true ).lastChild.checked;
+
+ div.innerHTML = "";
+
+ // Figure out if the W3C box model works as expected
+ div.style.width = div.style.paddingLeft = "1px";
+
+ // We don't want to do body-related feature tests on frameset
+ // documents, which lack a body. So we use
+ // document.getElementsByTagName("body")[0], which is undefined in
+ // frameset documents, while document.body isn’t. (7398)
+ body = document.getElementsByTagName("body")[ 0 ];
+ // We use our own, invisible, body unless the body is already present
+ // in which case we use a div (#9239)
+ testElement = document.createElement( body ? "div" : "body" );
+ testElementStyle = {
+ visibility: "hidden",
+ width: 0,
+ height: 0,
+ border: 0,
+ margin: 0,
+ background: "none"
+ };
+ if ( body ) {
+ jQuery.extend( testElementStyle, {
+ position: "absolute",
+ left: "-999px",
+ top: "-999px"
+ });
+ }
+ for ( i in testElementStyle ) {
+ testElement.style[ i ] = testElementStyle[ i ];
+ }
+ testElement.appendChild( div );
+ testElementParent = body || documentElement;
+ testElementParent.insertBefore( testElement, testElementParent.firstChild );
+
+ // Check if a disconnected checkbox will retain its checked
+ // value of true after appended to the DOM (IE6/7)
+ support.appendChecked = input.checked;
+
+ support.boxModel = div.offsetWidth === 2;
+
+ if ( "zoom" in div.style ) {
+ // Check if natively block-level elements act like inline-block
+ // elements when setting their display to 'inline' and giving
+ // them layout
+ // (IE < 8 does this)
+ div.style.display = "inline";
+ div.style.zoom = 1;
+ support.inlineBlockNeedsLayout = ( div.offsetWidth === 2 );
+
+ // Check if elements with layout shrink-wrap their children
+ // (IE 6 does this)
+ div.style.display = "";
+ div.innerHTML = "<div style='width:4px;'></div>";
+ support.shrinkWrapBlocks = ( div.offsetWidth !== 2 );
+ }
+
+ div.innerHTML = "<table><tr><td style='padding:0;border:0;display:none'></td><td>t</td></tr></table>";
+ tds = div.getElementsByTagName( "td" );
+
+ // Check if table cells still have offsetWidth/Height when they are set
+ // to display:none and there are still other visible table cells in a
+ // table row; if so, offsetWidth/Height are not reliable for use when
+ // determining if an element has been hidden directly using
+ // display:none (it is still safe to use offsets if a parent element is
+ // hidden; don safety goggles and see bug #4512 for more information).
+ // (only IE 8 fails this test)
+ isSupported = ( tds[ 0 ].offsetHeight === 0 );
+
+ tds[ 0 ].style.display = "";
+ tds[ 1 ].style.display = "none";
+
+ // Check if empty table cells still have offsetWidth/Height
+ // (IE < 8 fail this test)
+ support.reliableHiddenOffsets = isSupported && ( tds[ 0 ].offsetHeight === 0 );
+ div.innerHTML = "";
+
+ // Check if div with explicit width and no margin-right incorrectly
+ // gets computed margin-right based on width of container. For more
+ // info see bug #3333
+ // Fails in WebKit before Feb 2011 nightlies
+ // WebKit Bug 13343 - getComputedStyle returns wrong value for margin-right
+ if ( document.defaultView && document.defaultView.getComputedStyle ) {
+ marginDiv = document.createElement( "div" );
+ marginDiv.style.width = "0";
+ marginDiv.style.marginRight = "0";
+ div.appendChild( marginDiv );
+ support.reliableMarginRight =
+ ( parseInt( ( document.defaultView.getComputedStyle( marginDiv, null ) || { marginRight: 0 } ).marginRight, 10 ) || 0 ) === 0;
+ }
+
+ // Remove the body element we added
+ testElement.innerHTML = "";
+
+ // Technique from Juriy Zaytsev
+ // http://perfectionkills.com/detecting-event-support-without-browser-sniffing/
+ // We only care about the case where non-standard event systems
+ // are used, namely in IE. Short-circuiting here helps us to
+ // avoid an eval call (in setAttribute) which can cause CSP
+ // to go haywire. See: https://developer.mozilla.org/en/Security/CSP
+ if ( div.attachEvent ) {
+ for( i in {
+ submit: 1,
+ change: 1,
+ focusin: 1
+ } ) {
+ eventName = "on" + i;
+ isSupported = ( eventName in div );
+ if ( !isSupported ) {
+ div.setAttribute( eventName, "return;" );
+ isSupported = ( typeof div[ eventName ] === "function" );
+ }
+ support[ i + "Bubbles" ] = isSupported;
+ }
+ }
+
+ // Determine fixed-position support early
+ testElement.style.position = "static";
+ testElement.style.top = "0px";
+ testElement.style.marginTop = "1px";
+ offsetSupport = (function( body, container ) {
+
+ var outer, inner, table, td, supports,
+ bodyMarginTop = parseFloat( body.style.marginTop ) || 0,
+ ptlm = "position:absolute;top:0;left:0;width:1px;height:1px;margin:0;",
+ style = "style='" + ptlm + "border:5px solid #000;padding:0;'",
+ html = "<div " + style + "><div></div></div>" +
+ "<table " + style + " cellpadding='0' cellspacing='0'>" +
+ "<tr><td></td></tr></table>";
+
+ container.style.cssText = ptlm + "border:0;visibility:hidden";
+
+ container.innerHTML = html;
+ body.insertBefore( container, body.firstChild );
+ outer = container.firstChild;
+ inner = outer.firstChild;
+ td = outer.nextSibling.firstChild.firstChild;
+
+ supports = {
+ doesNotAddBorder: (inner.offsetTop !== 5),
+ doesAddBorderForTableAndCells: (td.offsetTop === 5)
+ };
+
+ inner.style.position = "fixed";
+ inner.style.top = "20px";
+
+ // safari subtracts parent border width here which is 5px
+ supports.supportsFixedPosition = (inner.offsetTop === 20 || inner.offsetTop === 15);
+ inner.style.position = inner.style.top = "";
+
+ outer.style.overflow = "hidden";
+ outer.style.position = "relative";
+
+ supports.subtractsBorderForOverflowNotVisible = (inner.offsetTop === -5);
+ supports.doesNotIncludeMarginInBodyOffset = (body.offsetTop !== bodyMarginTop);
+
+ return supports;
+
+ })( testElement, div );
+
+ jQuery.extend( support, offsetSupport );
+ testElementParent.removeChild( testElement );
+
+ // Null connected elements to avoid leaks in IE
+ testElement = fragment = select = opt = body = marginDiv = div = input = null;
+
+ return support;
+})();
+
+// Keep track of boxModel
+jQuery.boxModel = jQuery.support.boxModel;
+
+
+
+
+var rbrace = /^(?:\{.*\}|\[.*\])$/,
+ rmultiDash = /([A-Z])/g;
+
+jQuery.extend({
+ cache: {},
+
+ // Please use with caution
+ uuid: 0,
+
+ // Unique for each copy of jQuery on the page
+ // Non-digits removed to match rinlinejQuery
+ expando: "jQuery" + ( jQuery.fn.jquery + Math.random() ).replace( /\D/g, "" ),
+
+ // The following elements throw uncatchable exceptions if you
+ // attempt to add expando properties to them.
+ noData: {
+ "embed": true,
+ // Ban all objects except for Flash (which handle expandos)
+ "object": "clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",
+ "applet": true
+ },
+
+ hasData: function( elem ) {
+ elem = elem.nodeType ? jQuery.cache[ elem[jQuery.expando] ] : elem[ jQuery.expando ];
+ return !!elem && !isEmptyDataObject( elem );
+ },
+
+ data: function( elem, name, data, pvt /* Internal Use Only */ ) {
+ if ( !jQuery.acceptData( elem ) ) {
+ return;
+ }
+
+ var thisCache, ret,
+ internalKey = jQuery.expando,
+ getByName = typeof name === "string",
+
+ // We have to handle DOM nodes and JS objects differently because IE6-7
+ // can't GC object references properly across the DOM-JS boundary
+ isNode = elem.nodeType,
+
+ // Only DOM nodes need the global jQuery cache; JS object data is
+ // attached directly to the object so GC can occur automatically
+ cache = isNode ? jQuery.cache : elem,
+
+ // Only defining an ID for JS objects if its cache already exists allows
+ // the code to shortcut on the same path as a DOM node with no cache
+ id = isNode ? elem[ jQuery.expando ] : elem[ jQuery.expando ] && jQuery.expando;
+
+ // Avoid doing any more work than we need to when trying to get data on an
+ // object that has no data at all
+ if ( (!id || !cache[id] || (!pvt && !cache[id].data)) && getByName && data === undefined ) {
+ return;
+ }
+
+ if ( !id ) {
+ // Only DOM nodes need a new unique ID for each element since their data
+ // ends up in the global cache
+ if ( isNode ) {
+ elem[ jQuery.expando ] = id = ++jQuery.uuid;
+ } else {
+ id = jQuery.expando;
+ }
+ }
+
+ if ( !cache[ id ] ) {
+ cache[ id ] = {};
+
+ // Avoids exposing jQuery metadata on plain JS objects when the object
+ // is serialized using JSON.stringify
+ if ( !isNode ) {
+ cache[ id ].toJSON = jQuery.noop;
+ }
+ }
+
+ // An object can be passed to jQuery.data instead of a key/value pair; this gets
+ // shallow copied over onto the existing cache
+ if ( typeof name === "object" || typeof name === "function" ) {
+ if ( pvt ) {
+ cache[ id ] = jQuery.extend( cache[ id ], name );
+ } else {
+ cache[ id ].data = jQuery.extend( cache[ id ].data, name );
+ }
+ }
+
+ thisCache = cache[ id ];
+
+ // jQuery data() is stored in a separate object inside the object's internal data
+ // cache in order to avoid key collisions between internal data and user-defined
+ // data.
+ if ( !pvt ) {
+ if ( !thisCache.data ) {
+ thisCache.data = {};
+ }
+
+ thisCache = thisCache.data;
+ }
+
+ if ( data !== undefined ) {
+ thisCache[ jQuery.camelCase( name ) ] = data;
+ }
+
+ // TODO: This is a hack for 1.5 ONLY. It will be removed in 1.6. Users should
+ // not attempt to inspect the internal events object using jQuery.data, as this
+ // internal data object is undocumented and subject to change.
+ if ( name === "events" && !thisCache[name] ) {
+ return thisCache[ internalKey ] && thisCache[ internalKey ].events;
+ }
+
+ // Check for both converted-to-camel and non-converted data property names
+ // If a data property was specified
+ if ( getByName ) {
+
+ // First Try to find as-is property data
+ ret = thisCache[ name ];
+
+ // Test for null|undefined property data
+ if ( ret == null ) {
+
+ // Try to find the camelCased property
+ ret = thisCache[ jQuery.camelCase( name ) ];
+ }
+ } else {
+ ret = thisCache;
+ }
+
+ return ret;
+ },
+
+ removeData: function( elem, name, pvt /* Internal Use Only */ ) {
+ if ( !jQuery.acceptData( elem ) ) {
+ return;
+ }
+
+ var thisCache, i, l,
+
+ // Reference to internal data cache key
+ internalKey = jQuery.expando,
+
+ isNode = elem.nodeType,
+
+ // See jQuery.data for more information
+ cache = isNode ? jQuery.cache : elem,
+
+ // See jQuery.data for more information
+ id = isNode ? elem[ jQuery.expando ] : jQuery.expando;
+
+ // If there is already no cache entry for this object, there is no
+ // purpose in continuing
+ if ( !cache[ id ] ) {
+ return;
+ }
+
+ if ( name ) {
+
+ thisCache = pvt ? cache[ id ] : cache[ id ].data;
+
+ if ( thisCache ) {
+
+ // Support space separated names
+ if ( jQuery.isArray( name ) ) {
+ name = name;
+ } else if ( name in thisCache ) {
+ name = [ name ];
+ } else {
+
+ // split the camel cased version by spaces
+ name = jQuery.camelCase( name );
+ if ( name in thisCache ) {
+ name = [ name ];
+ } else {
+ name = name.split( " " );
+ }
+ }
+
+ for ( i = 0, l = name.length; i < l; i++ ) {
+ delete thisCache[ name[i] ];
+ }
+
+ // If there is no data left in the cache, we want to continue
+ // and let the cache object itself get destroyed
+ if ( !( pvt ? isEmptyDataObject : jQuery.isEmptyObject )( thisCache ) ) {
+ return;
+ }
+ }
+ }
+
+ // See jQuery.data for more information
+ if ( !pvt ) {
+ delete cache[ id ].data;
+
+ // Don't destroy the parent cache unless the internal data object
+ // had been the only thing left in it
+ if ( !isEmptyDataObject(cache[ id ]) ) {
+ return;
+ }
+ }
+
+ // Browsers that fail expando deletion also refuse to delete expandos on
+ // the window, but it will allow it on all other JS objects; other browsers
+ // don't care
+ // Ensure that `cache` is not a window object #10080
+ if ( jQuery.support.deleteExpando || !cache.setInterval ) {
+ delete cache[ id ];
+ } else {
+ cache[ id ] = null;
+ }
+
+ // We destroyed the cache and need to eliminate the expando on the node to avoid
+ // false lookups in the cache for entries that no longer exist
+ if ( isNode ) {
+ // IE does not allow us to delete expando properties from nodes,
+ // nor does it have a removeAttribute function on Document nodes;
+ // we must handle all of these cases
+ if ( jQuery.support.deleteExpando ) {
+ delete elem[ jQuery.expando ];
+ } else if ( elem.removeAttribute ) {
+ elem.removeAttribute( jQuery.expando );
+ } else {
+ elem[ jQuery.expando ] = null;
+ }
+ }
+ },
+
+ // For internal use only.
+ _data: function( elem, name, data ) {
+ return jQuery.data( elem, name, data, true );
+ },
+
+ // A method for determining if a DOM node can handle the data expando
+ acceptData: function( elem ) {
+ if ( elem.nodeName ) {
+ var match = jQuery.noData[ elem.nodeName.toLowerCase() ];
+
+ if ( match ) {
+ return !(match === true || elem.getAttribute("classid") !== match);
+ }
+ }
+
+ return true;
+ }
+});
+
+jQuery.fn.extend({
+ data: function( key, value ) {
+ var parts, attr, name,
+ data = null;
+
+ if ( typeof key === "undefined" ) {
+ if ( this.length ) {
+ data = jQuery.data( this[0] );
+
+ if ( this[0].nodeType === 1 && !jQuery._data( this[0], "parsedAttrs" ) ) {
+ attr = this[0].attributes;
+ for ( var i = 0, l = attr.length; i < l; i++ ) {
+ name = attr[i].name;
+
+ if ( name.indexOf( "data-" ) === 0 ) {
+ name = jQuery.camelCase( name.substring(5) );
+
+ dataAttr( this[0], name, data[ name ] );
+ }
+ }
+ jQuery._data( this[0], "parsedAttrs", true );
+ }
+ }
+
+ return data;
+
+ } else if ( typeof key === "object" ) {
+ return this.each(function() {
+ jQuery.data( this, key );
+ });
+ }
+
+ parts = key.split(".");
+ parts[1] = parts[1] ? "." + parts[1] : "";
+
+ if ( value === undefined ) {
+ data = this.triggerHandler("getData" + parts[1] + "!", [parts[0]]);
+
+ // Try to fetch any internally stored data first
+ if ( data === undefined && this.length ) {
+ data = jQuery.data( this[0], key );
+ data = dataAttr( this[0], key, data );
+ }
+
+ return data === undefined && parts[1] ?
+ this.data( parts[0] ) :
+ data;
+
+ } else {
+ return this.each(function() {
+ var $this = jQuery( this ),
+ args = [ parts[0], value ];
+
+ $this.triggerHandler( "setData" + parts[1] + "!", args );
+ jQuery.data( this, key, value );
+ $this.triggerHandler( "changeData" + parts[1] + "!", args );
+ });
+ }
+ },
+
+ removeData: function( key ) {
+ return this.each(function() {
+ jQuery.removeData( this, key );
+ });
+ }
+});
+
+function dataAttr( elem, key, data ) {
+ // If nothing was found internally, try to fetch any
+ // data from the HTML5 data-* attribute
+ if ( data === undefined && elem.nodeType === 1 ) {
+
+ var name = "data-" + key.replace( rmultiDash, "-$1" ).toLowerCase();
+
+ data = elem.getAttribute( name );
+
+ if ( typeof data === "string" ) {
+ try {
+ data = data === "true" ? true :
+ data === "false" ? false :
+ data === "null" ? null :
+ jQuery.isNumeric( data ) ? parseFloat( data ) :
+ rbrace.test( data ) ? jQuery.parseJSON( data ) :
+ data;
+ } catch( e ) {}
+
+ // Make sure we set the data so it isn't changed later
+ jQuery.data( elem, key, data );
+
+ } else {
+ data = undefined;
+ }
+ }
+
+ return data;
+}
+
+// checks a cache object for emptiness
+function isEmptyDataObject( obj ) {
+ for ( var name in obj ) {
+
+ // if the public data object is empty, the private is still empty
+ if ( name === "data" && jQuery.isEmptyObject( obj[name] ) ) {
+ continue;
+ }
+ if ( name !== "toJSON" ) {
+ return false;
+ }
+ }
+
+ return true;
+}
+
+
+
+
+function handleQueueMarkDefer( elem, type, src ) {
+ var deferDataKey = type + "defer",
+ queueDataKey = type + "queue",
+ markDataKey = type + "mark",
+ defer = jQuery._data( elem, deferDataKey );
+ if ( defer &&
+ ( src === "queue" || !jQuery._data(elem, queueDataKey) ) &&
+ ( src === "mark" || !jQuery._data(elem, markDataKey) ) ) {
+ // Give room for hard-coded callbacks to fire first
+ // and eventually mark/queue something else on the element
+ setTimeout( function() {
+ if ( !jQuery._data( elem, queueDataKey ) &&
+ !jQuery._data( elem, markDataKey ) ) {
+ jQuery.removeData( elem, deferDataKey, true );
+ defer.fire();
+ }
+ }, 0 );
+ }
+}
+
+jQuery.extend({
+
+ _mark: function( elem, type ) {
+ if ( elem ) {
+ type = (type || "fx") + "mark";
+ jQuery._data( elem, type, (jQuery._data( elem, type ) || 0) + 1 );
+ }
+ },
+
+ _unmark: function( force, elem, type ) {
+ if ( force !== true ) {
+ type = elem;
+ elem = force;
+ force = false;
+ }
+ if ( elem ) {
+ type = type || "fx";
+ var key = type + "mark",
+ count = force ? 0 : ( (jQuery._data( elem, key ) || 1) - 1 );
+ if ( count ) {
+ jQuery._data( elem, key, count );
+ } else {
+ jQuery.removeData( elem, key, true );
+ handleQueueMarkDefer( elem, type, "mark" );
+ }
+ }
+ },
+
+ queue: function( elem, type, data ) {
+ var q;
+ if ( elem ) {
+ type = (type || "fx") + "queue";
+ q = jQuery._data( elem, type );
+
+ // Speed up dequeue by getting out quickly if this is just a lookup
+ if ( data ) {
+ if ( !q || jQuery.isArray(data) ) {
+ q = jQuery._data( elem, type, jQuery.makeArray(data) );
+ } else {
+ q.push( data );
+ }
+ }
+ return q || [];
+ }
+ },
+
+ dequeue: function( elem, type ) {
+ type = type || "fx";
+
+ var queue = jQuery.queue( elem, type ),
+ fn = queue.shift(),
+ runner = {};
+
+ // If the fx queue is dequeued, always remove the progress sentinel
+ if ( fn === "inprogress" ) {
+ fn = queue.shift();
+ }
+
+ if ( fn ) {
+ // Add a progress sentinel to prevent the fx queue from being
+ // automatically dequeued
+ if ( type === "fx" ) {
+ queue.unshift( "inprogress" );
+ }
+
+ jQuery._data( elem, type + ".run", runner );
+ fn.call( elem, function() {
+ jQuery.dequeue( elem, type );
+ }, runner );
+ }
+
+ if ( !queue.length ) {
+ jQuery.removeData( elem, type + "queue " + type + ".run", true );
+ handleQueueMarkDefer( elem, type, "queue" );
+ }
+ }
+});
+
+jQuery.fn.extend({
+ queue: function( type, data ) {
+ if ( typeof type !== "string" ) {
+ data = type;
+ type = "fx";
+ }
+
+ if ( data === undefined ) {
+ return jQuery.queue( this[0], type );
+ }
+ return this.each(function() {
+ var queue = jQuery.queue( this, type, data );
+
+ if ( type === "fx" && queue[0] !== "inprogress" ) {
+ jQuery.dequeue( this, type );
+ }
+ });
+ },
+ dequeue: function( type ) {
+ return this.each(function() {
+ jQuery.dequeue( this, type );
+ });
+ },
+ // Based off of the plugin by Clint Helfers, with permission.
+ // http://blindsignals.com/index.php/2009/07/jquery-delay/
+ delay: function( time, type ) {
+ time = jQuery.fx ? jQuery.fx.speeds[ time ] || time : time;
+ type = type || "fx";
+
+ return this.queue( type, function( next, runner ) {
+ var timeout = setTimeout( next, time );
+ runner.stop = function() {
+ clearTimeout( timeout );
+ };
+ });
+ },
+ clearQueue: function( type ) {
+ return this.queue( type || "fx", [] );
+ },
+ // Get a promise resolved when queues of a certain type
+ // are emptied (fx is the type by default)
+ promise: function( type, object ) {
+ if ( typeof type !== "string" ) {
+ object = type;
+ type = undefined;
+ }
+ type = type || "fx";
+ var defer = jQuery.Deferred(),
+ elements = this,
+ i = elements.length,
+ count = 1,
+ deferDataKey = type + "defer",
+ queueDataKey = type + "queue",
+ markDataKey = type + "mark",
+ tmp;
+ function resolve() {
+ if ( !( --count ) ) {
+ defer.resolveWith( elements, [ elements ] );
+ }
+ }
+ while( i-- ) {
+ if (( tmp = jQuery.data( elements[ i ], deferDataKey, undefined, true ) ||
+ ( jQuery.data( elements[ i ], queueDataKey, undefined, true ) ||
+ jQuery.data( elements[ i ], markDataKey, undefined, true ) ) &&
+ jQuery.data( elements[ i ], deferDataKey, jQuery.Callbacks( "once memory" ), true ) )) {
+ count++;
+ tmp.add( resolve );
+ }
+ }
+ resolve();
+ return defer.promise();
+ }
+});
+
+
+
+
+var rclass = /[\n\t\r]/g,
+ rspace = /\s+/,
+ rreturn = /\r/g,
+ rtype = /^(?:button|input)$/i,
+ rfocusable = /^(?:button|input|object|select|textarea)$/i,
+ rclickable = /^a(?:rea)?$/i,
+ rboolean = /^(?:autofocus|autoplay|async|checked|controls|defer|disabled|hidden|loop|multiple|open|readonly|required|scoped|selected)$/i,
+ nodeHook, boolHook, fixSpecified;
+
+jQuery.fn.extend({
+ attr: function( name, value ) {
+ return jQuery.access( this, name, value, true, jQuery.attr );
+ },
+
+ removeAttr: function( name ) {
+ return this.each(function() {
+ jQuery.removeAttr( this, name );
+ });
+ },
+
+ prop: function( name, value ) {
+ return jQuery.access( this, name, value, true, jQuery.prop );
+ },
+
+ removeProp: function( name ) {
+ name = jQuery.propFix[ name ] || name;
+ return this.each(function() {
+ // try/catch handles cases where IE balks (such as removing a property on window)
+ try {
+ this[ name ] = undefined;
+ delete this[ name ];
+ } catch( e ) {}
+ });
+ },
+
+ addClass: function( value ) {
+ var classNames, i, l, elem,
+ setClass, c, cl;
+
+ if ( jQuery.isFunction( value ) ) {
+ return this.each(function( j ) {
+ jQuery( this ).addClass( value.call(this, j, this.className) );
+ });
+ }
+
+ if ( value && typeof value === "string" ) {
+ classNames = value.split( rspace );
+
+ for ( i = 0, l = this.length; i < l; i++ ) {
+ elem = this[ i ];
+
+ if ( elem.nodeType === 1 ) {
+ if ( !elem.className && classNames.length === 1 ) {
+ elem.className = value;
+
+ } else {
+ setClass = " " + elem.className + " ";
+
+ for ( c = 0, cl = classNames.length; c < cl; c++ ) {
+ if ( !~setClass.indexOf( " " + classNames[ c ] + " " ) ) {
+ setClass += classNames[ c ] + " ";
+ }
+ }
+ elem.className = jQuery.trim( setClass );
+ }
+ }
+ }
+ }
+
+ return this;
+ },
+
+ removeClass: function( value ) {
+ var classNames, i, l, elem, className, c, cl;
+
+ if ( jQuery.isFunction( value ) ) {
+ return this.each(function( j ) {
+ jQuery( this ).removeClass( value.call(this, j, this.className) );
+ });
+ }
+
+ if ( (value && typeof value === "string") || value === undefined ) {
+ classNames = (value || "").split( rspace );
+
+ for ( i = 0, l = this.length; i < l; i++ ) {
+ elem = this[ i ];
+
+ if ( elem.nodeType === 1 && elem.className ) {
+ if ( value ) {
+ className = (" " + elem.className + " ").replace( rclass, " " );
+ for ( c = 0, cl = classNames.length; c < cl; c++ ) {
+ className = className.replace(" " + classNames[ c ] + " ", " ");
+ }
+ elem.className = jQuery.trim( className );
+
+ } else {
+ elem.className = "";
+ }
+ }
+ }
+ }
+
+ return this;
+ },
+
+ toggleClass: function( value, stateVal ) {
+ var type = typeof value,
+ isBool = typeof stateVal === "boolean";
+
+ if ( jQuery.isFunction( value ) ) {
+ return this.each(function( i ) {
+ jQuery( this ).toggleClass( value.call(this, i, this.className, stateVal), stateVal );
+ });
+ }
+
+ return this.each(function() {
+ if ( type === "string" ) {
+ // toggle individual class names
+ var className,
+ i = 0,
+ self = jQuery( this ),
+ state = stateVal,
+ classNames = value.split( rspace );
+
+ while ( (className = classNames[ i++ ]) ) {
+ // check each className given, space seperated list
+ state = isBool ? state : !self.hasClass( className );
+ self[ state ? "addClass" : "removeClass" ]( className );
+ }
+
+ } else if ( type === "undefined" || type === "boolean" ) {
+ if ( this.className ) {
+ // store className if set
+ jQuery._data( this, "__className__", this.className );
+ }
+
+ // toggle whole className
+ this.className = this.className || value === false ? "" : jQuery._data( this, "__className__" ) || "";
+ }
+ });
+ },
+
+ hasClass: function( selector ) {
+ var className = " " + selector + " ";
+ for ( var i = 0, l = this.length; i < l; i++ ) {
+ if ( this[i].nodeType === 1 && (" " + this[i].className + " ").replace(rclass, " ").indexOf( className ) > -1 ) {
+ return true;
+ }
+ }
+
+ return false;
+ },
+
+ val: function( value ) {
+ var hooks, ret,
+ elem = this[0];
+
+ if ( !arguments.length ) {
+ if ( elem ) {
+ hooks = jQuery.valHooks[ elem.nodeName.toLowerCase() ] || jQuery.valHooks[ elem.type ];
+
+ if ( hooks && "get" in hooks && (ret = hooks.get( elem, "value" )) !== undefined ) {
+ return ret;
+ }
+
+ ret = elem.value;
+
+ return typeof ret === "string" ?
+ // handle most common string cases
+ ret.replace(rreturn, "") :
+ // handle cases where value is null/undef or number
+ ret == null ? "" : ret;
+ }
+
+ return undefined;
+ }
+
+ var isFunction = jQuery.isFunction( value );
+
+ return this.each(function( i ) {
+ var self = jQuery(this), val;
+
+ if ( this.nodeType !== 1 ) {
+ return;
+ }
+
+ if ( isFunction ) {
+ val = value.call( this, i, self.val() );
+ } else {
+ val = value;
+ }
+
+ // Treat null/undefined as ""; convert numbers to string
+ if ( val == null ) {
+ val = "";
+ } else if ( typeof val === "number" ) {
+ val += "";
+ } else if ( jQuery.isArray( val ) ) {
+ val = jQuery.map(val, function ( value ) {
+ return value == null ? "" : value + "";
+ });
+ }
+
+ hooks = jQuery.valHooks[ this.nodeName.toLowerCase() ] || jQuery.valHooks[ this.type ];
+
+ // If set returns undefined, fall back to normal setting
+ if ( !hooks || !("set" in hooks) || hooks.set( this, val, "value" ) === undefined ) {
+ this.value = val;
+ }
+ });
+ }
+});
+
+jQuery.extend({
+ valHooks: {
+ option: {
+ get: function( elem ) {
+ // attributes.value is undefined in Blackberry 4.7 but
+ // uses .value. See #6932
+ var val = elem.attributes.value;
+ return !val || val.specified ? elem.value : elem.text;
+ }
+ },
+ select: {
+ get: function( elem ) {
+ var value,
+ index = elem.selectedIndex,
+ values = [],
+ options = elem.options,
+ one = elem.type === "select-one";
+
+ // Nothing was selected
+ if ( index < 0 ) {
+ return null;
+ }
+
+ // Loop through all the selected options
+ for ( var i = one ? index : 0, max = one ? index + 1 : options.length; i < max; i++ ) {
+ var option = options[ i ];
+
+ // Don't return options that are disabled or in a disabled optgroup
+ if ( option.selected && (jQuery.support.optDisabled ? !option.disabled : option.getAttribute("disabled") === null) &&
+ (!option.parentNode.disabled || !jQuery.nodeName( option.parentNode, "optgroup" )) ) {
+
+ // Get the specific value for the option
+ value = jQuery( option ).val();
+
+ // We don't need an array for one selects
+ if ( one ) {
+ return value;
+ }
+
+ // Multi-Selects return an array
+ values.push( value );
+ }
+ }
+
+ // Fixes Bug #2551 -- select.val() broken in IE after form.reset()
+ if ( one && !values.length && options.length ) {
+ return jQuery( options[ index ] ).val();
+ }
+
+ return values;
+ },
+
+ set: function( elem, value ) {
+ var values = jQuery.makeArray( value );
+
+ jQuery(elem).find("option").each(function() {
+ this.selected = jQuery.inArray( jQuery(this).val(), values ) >= 0;
+ });
+
+ if ( !values.length ) {
+ elem.selectedIndex = -1;
+ }
+ return values;
+ }
+ }
+ },
+
+ attrFn: {
+ val: true,
+ css: true,
+ html: true,
+ text: true,
+ data: true,
+ width: true,
+ height: true,
+ offset: true
+ },
+
+ attr: function( elem, name, value, pass ) {
+ var nType = elem.nodeType;
+
+ // don't get/set attributes on text, comment and attribute nodes
+ if ( !elem || nType === 3 || nType === 8 || nType === 2 ) {
+ return undefined;
+ }
+
+ if ( pass && name in jQuery.attrFn ) {
+ return jQuery( elem )[ name ]( value );
+ }
+
+ // Fallback to prop when attributes are not supported
+ if ( !("getAttribute" in elem) ) {
+ return jQuery.prop( elem, name, value );
+ }
+
+ var ret, hooks,
+ notxml = nType !== 1 || !jQuery.isXMLDoc( elem );
+
+ // Normalize the name if needed
+ if ( notxml ) {
+ name = name.toLowerCase();
+ hooks = jQuery.attrHooks[ name ] || (rboolean.test( name ) ? boolHook : nodeHook);
+ }
+
+ if ( value !== undefined ) {
+
+ if ( value === null ) {
+ jQuery.removeAttr( elem, name );
+ return undefined;
+
+ } else if ( hooks && "set" in hooks && notxml && (ret = hooks.set( elem, value, name )) !== undefined ) {
+ return ret;
+
+ } else {
+ elem.setAttribute( name, "" + value );
+ return value;
+ }
+
+ } else if ( hooks && "get" in hooks && notxml && (ret = hooks.get( elem, name )) !== null ) {
+ return ret;
+
+ } else {
+
+ ret = elem.getAttribute( name );
+
+ // Non-existent attributes return null, we normalize to undefined
+ return ret === null ?
+ undefined :
+ ret;
+ }
+ },
+
+ removeAttr: function( elem, value ) {
+ var propName, attrNames, name, l,
+ i = 0;
+
+ if ( elem.nodeType === 1 ) {
+ attrNames = (value || "").split( rspace );
+ l = attrNames.length;
+
+ for ( ; i < l; i++ ) {
+ name = attrNames[ i ].toLowerCase();
+
+ // See #9699 for explanation of this approach (setting first, then removal)
+ jQuery.attr( elem, name, "" );
+ elem.removeAttribute( name );
+
+ // Set corresponding property to false for boolean attributes
+ if ( rboolean.test( name ) && (propName = jQuery.propFix[ name ] || name) in elem ) {
+ elem[ propName ] = false;
+ }
+ }
+ }
+ },
+
+ attrHooks: {
+ type: {
+ set: function( elem, value ) {
+ // We can't allow the type property to be changed (since it causes problems in IE)
+ if ( rtype.test( elem.nodeName ) && elem.parentNode ) {
+ jQuery.error( "type property can't be changed" );
+ } else if ( !jQuery.support.radioValue && value === "radio" && jQuery.nodeName(elem, "input") ) {
+ // Setting the type on a radio button after the value resets the value in IE6-9
+ // Reset value to it's default in case type is set after value
+ // This is for element creation
+ var val = elem.value;
+ elem.setAttribute( "type", value );
+ if ( val ) {
+ elem.value = val;
+ }
+ return value;
+ }
+ }
+ },
+ // Use the value property for back compat
+ // Use the nodeHook for button elements in IE6/7 (#1954)
+ value: {
+ get: function( elem, name ) {
+ if ( nodeHook && jQuery.nodeName( elem, "button" ) ) {
+ return nodeHook.get( elem, name );
+ }
+ return name in elem ?
+ elem.value :
+ null;
+ },
+ set: function( elem, value, name ) {
+ if ( nodeHook && jQuery.nodeName( elem, "button" ) ) {
+ return nodeHook.set( elem, value, name );
+ }
+ // Does not return so that setAttribute is also used
+ elem.value = value;
+ }
+ }
+ },
+
+ propFix: {
+ tabindex: "tabIndex",
+ readonly: "readOnly",
+ "for": "htmlFor",
+ "class": "className",
+ maxlength: "maxLength",
+ cellspacing: "cellSpacing",
+ cellpadding: "cellPadding",
+ rowspan: "rowSpan",
+ colspan: "colSpan",
+ usemap: "useMap",
+ frameborder: "frameBorder",
+ contenteditable: "contentEditable"
+ },
+
+ prop: function( elem, name, value ) {
+ var nType = elem.nodeType;
+
+ // don't get/set properties on text, comment and attribute nodes
+ if ( !elem || nType === 3 || nType === 8 || nType === 2 ) {
+ return undefined;
+ }
+
+ var ret, hooks,
+ notxml = nType !== 1 || !jQuery.isXMLDoc( elem );
+
+ if ( notxml ) {
+ // Fix name and attach hooks
+ name = jQuery.propFix[ name ] || name;
+ hooks = jQuery.propHooks[ name ];
+ }
+
+ if ( value !== undefined ) {
+ if ( hooks && "set" in hooks && (ret = hooks.set( elem, value, name )) !== undefined ) {
+ return ret;
+
+ } else {
+ return (elem[ name ] = value);
+ }
+
+ } else {
+ if ( hooks && "get" in hooks && (ret = hooks.get( elem, name )) !== null ) {
+ return ret;
+
+ } else {
+ return elem[ name ];
+ }
+ }
+ },
+
+ propHooks: {
+ tabIndex: {
+ get: function( elem ) {
+ // elem.tabIndex doesn't always return the correct value when it hasn't been explicitly set
+ // http://fluidproject.org/blog/2008/01/09/getting-setting-and-removing-tabindex-values-with-javascript/
+ var attributeNode = elem.getAttributeNode("tabindex");
+
+ return attributeNode && attributeNode.specified ?
+ parseInt( attributeNode.value, 10 ) :
+ rfocusable.test( elem.nodeName ) || rclickable.test( elem.nodeName ) && elem.href ?
+ 0 :
+ undefined;
+ }
+ }
+ }
+});
+
+// Add the tabIndex propHook to attrHooks for back-compat (different case is intentional)
+jQuery.attrHooks.tabindex = jQuery.propHooks.tabIndex;
+
+// Hook for boolean attributes
+boolHook = {
+ get: function( elem, name ) {
+ // Align boolean attributes with corresponding properties
+ // Fall back to attribute presence where some booleans are not supported
+ var attrNode,
+ property = jQuery.prop( elem, name );
+ return property === true || typeof property !== "boolean" && ( attrNode = elem.getAttributeNode(name) ) && attrNode.nodeValue !== false ?
+ name.toLowerCase() :
+ undefined;
+ },
+ set: function( elem, value, name ) {
+ var propName;
+ if ( value === false ) {
+ // Remove boolean attributes when set to false
+ jQuery.removeAttr( elem, name );
+ } else {
+ // value is true since we know at this point it's type boolean and not false
+ // Set boolean attributes to the same name and set the DOM property
+ propName = jQuery.propFix[ name ] || name;
+ if ( propName in elem ) {
+ // Only set the IDL specifically if it already exists on the element
+ elem[ propName ] = true;
+ }
+
+ elem.setAttribute( name, name.toLowerCase() );
+ }
+ return name;
+ }
+};
+
+// IE6/7 do not support getting/setting some attributes with get/setAttribute
+if ( !jQuery.support.getSetAttribute ) {
+
+ fixSpecified = {
+ name: true,
+ id: true
+ };
+
+ // Use this for any attribute in IE6/7
+ // This fixes almost every IE6/7 issue
+ nodeHook = jQuery.valHooks.button = {
+ get: function( elem, name ) {
+ var ret;
+ ret = elem.getAttributeNode( name );
+ return ret && (fixSpecified[ name ] ? ret.nodeValue !== "" : ret.specified) ?
+ ret.nodeValue :
+ undefined;
+ },
+ set: function( elem, value, name ) {
+ // Set the existing or create a new attribute node
+ var ret = elem.getAttributeNode( name );
+ if ( !ret ) {
+ ret = document.createAttribute( name );
+ elem.setAttributeNode( ret );
+ }
+ return (ret.nodeValue = value + "");
+ }
+ };
+
+ // Apply the nodeHook to tabindex
+ jQuery.attrHooks.tabindex.set = nodeHook.set;
+
+ // Set width and height to auto instead of 0 on empty string( Bug #8150 )
+ // This is for removals
+ jQuery.each([ "width", "height" ], function( i, name ) {
+ jQuery.attrHooks[ name ] = jQuery.extend( jQuery.attrHooks[ name ], {
+ set: function( elem, value ) {
+ if ( value === "" ) {
+ elem.setAttribute( name, "auto" );
+ return value;
+ }
+ }
+ });
+ });
+
+ // Set contenteditable to false on removals(#10429)
+ // Setting to empty string throws an error as an invalid value
+ jQuery.attrHooks.contenteditable = {
+ get: nodeHook.get,
+ set: function( elem, value, name ) {
+ if ( value === "" ) {
+ value = "false";
+ }
+ nodeHook.set( elem, value, name );
+ }
+ };
+}
+
+
+// Some attributes require a special call on IE
+if ( !jQuery.support.hrefNormalized ) {
+ jQuery.each([ "href", "src", "width", "height" ], function( i, name ) {
+ jQuery.attrHooks[ name ] = jQuery.extend( jQuery.attrHooks[ name ], {
+ get: function( elem ) {
+ var ret = elem.getAttribute( name, 2 );
+ return ret === null ? undefined : ret;
+ }
+ });
+ });
+}
+
+if ( !jQuery.support.style ) {
+ jQuery.attrHooks.style = {
+ get: function( elem ) {
+ // Return undefined in the case of empty string
+ // Normalize to lowercase since IE uppercases css property names
+ return elem.style.cssText.toLowerCase() || undefined;
+ },
+ set: function( elem, value ) {
+ return (elem.style.cssText = "" + value);
+ }
+ };
+}
+
+// Safari mis-reports the default selected property of an option
+// Accessing the parent's selectedIndex property fixes it
+if ( !jQuery.support.optSelected ) {
+ jQuery.propHooks.selected = jQuery.extend( jQuery.propHooks.selected, {
+ get: function( elem ) {
+ var parent = elem.parentNode;
+
+ if ( parent ) {
+ parent.selectedIndex;
+
+ // Make sure that it also works with optgroups, see #5701
+ if ( parent.parentNode ) {
+ parent.parentNode.selectedIndex;
+ }
+ }
+ return null;
+ }
+ });
+}
+
+// Radios and checkboxes getter/setter
+if ( !jQuery.support.checkOn ) {
+ jQuery.each([ "radio", "checkbox" ], function() {
+ jQuery.valHooks[ this ] = {
+ get: function( elem ) {
+ // Handle the case where in Webkit "" is returned instead of "on" if a value isn't specified
+ return elem.getAttribute("value") === null ? "on" : elem.value;
+ }
+ };
+ });
+}
+jQuery.each([ "radio", "checkbox" ], function() {
+ jQuery.valHooks[ this ] = jQuery.extend( jQuery.valHooks[ this ], {
+ set: function( elem, value ) {
+ if ( jQuery.isArray( value ) ) {
+ return (elem.checked = jQuery.inArray( jQuery(elem).val(), value ) >= 0);
+ }
+ }
+ });
+});
+
+
+
+
+var rnamespaces = /\.(.*)$/,
+ rformElems = /^(?:textarea|input|select)$/i,
+ rperiod = /\./g,
+ rspaces = / /g,
+ rescape = /[^\w\s.|`]/g,
+ rtypenamespace = /^([^\.]*)?(?:\.(.+))?$/,
+ rhoverHack = /\bhover(\.\S+)?/,
+ rkeyEvent = /^key/,
+ rmouseEvent = /^(?:mouse|contextmenu)|click/,
+ rquickIs = /^([\w\-]+)?(?:#([\w\-]+))?(?:\.([\w\-]+))?(?:\[([\w+\-]+)=["']?([\w\-]*)["']?\])?$/,
+ quickParse = function( selector ) {
+ var quick = rquickIs.exec( selector );
+ if ( quick ) {
+ // 0 1 2 3 4 5
+ // [ _, tag, id, class, attrName, attrValue ]
+ quick[1] = ( quick[1] || "" ).toLowerCase();
+ quick[3] = quick[3] && new RegExp( "\\b" + quick[3] + "\\b" );
+ }
+ return quick;
+ },
+ quickIs = function( elem, m ) {
+ return (
+ (!m[1] || elem.nodeName.toLowerCase() === m[1]) &&
+ (!m[2] || elem.id === m[2]) &&
+ (!m[3] || m[3].test( elem.className )) &&
+ (!m[4] || elem.getAttribute( m[4] ) == m[5])
+ );
+ };
+
+/*
+ * Helper functions for managing events -- not part of the public interface.
+ * Props to Dean Edwards' addEvent library for many of the ideas.
+ */
+jQuery.event = {
+
+ add: function( elem, types, handler, data, selector ) {
+
+ var elemData, eventHandle, events,
+ t, tns, type, namespaces, handleObj,
+ handleObjIn, quick, handlers, special;
+
+ // Don't attach events to noData or text/comment nodes (allow plain objects tho)
+ if ( elem.nodeType === 3 || elem.nodeType === 8 || !types || !handler || !(elemData = jQuery._data( elem )) ) {
+ return;
+ }
+
+ // Caller can pass in an object of custom data in lieu of the handler
+ if ( handler.handler ) {
+ handleObjIn = handler;
+ handler = handleObjIn.handler;
+ }
+
+ // Make sure that the handler has a unique ID, used to find/remove it later
+ if ( !handler.guid ) {
+ handler.guid = jQuery.guid++;
+ }
+
+ // Init the element's event structure and main handler, if this is the first
+ events = elemData.events;
+ if ( !events ) {
+ elemData.events = events = {};
+ }
+ eventHandle = elemData.handle;
+ if ( !eventHandle ) {
+ elemData.handle = eventHandle = function( e ) {
+ // Discard the second event of a jQuery.event.trigger() and
+ // when an event is called after a page has unloaded
+ return typeof jQuery !== "undefined" && (!e || jQuery.event.triggered !== e.type) ?
+ jQuery.event.handle.apply( eventHandle.elem, arguments ) :
+ undefined;
+ };
+ // Add elem as a property of the handle fn to prevent a memory leak with IE non-native events
+ eventHandle.elem = elem;
+ }
+
+ // Handle multiple events separated by a space
+ // jQuery(...).bind("mouseover mouseout", fn);
+ types = types.replace( rhoverHack, "mouseover$1 mouseout$1" ).split( " " );
+ for ( t = 0; t < types.length; t++ ) {
+
+ tns = rtypenamespace.exec( types[t] ) || [];
+ type = tns[1];
+ namespaces = (tns[2] || "").split( "." ).sort();
+
+ // If event changes its type, use the special event handlers for the changed type
+ special = jQuery.event.special[ type ] || {};
+
+ // If selector defined, determine special event api type, otherwise given type
+ type = ( selector ? special.delegateType : special.bindType ) || type;
+
+ // Update special based on newly reset type
+ special = jQuery.event.special[ type ] || {};
+
+ // handleObj is passed to all event handlers
+ handleObj = jQuery.extend({
+ type: type,
+ origType: tns[1],
+ data: data,
+ handler: handler,
+ guid: handler.guid,
+ selector: selector,
+ namespace: namespaces.join(".")
+ }, handleObjIn );
+
+ // Delegated event; pre-analyze selector so it's processed quickly on event dispatch
+ if ( selector ) {
+ handleObj.quick = quickParse( selector );
+ if ( !handleObj.quick && jQuery.expr.match.POS.test( selector ) ) {
+ handleObj.isPositional = true;
+ }
+ }
+
+ // Init the event handler queue if we're the first
+ handlers = events[ type ];
+ if ( !handlers ) {
+ handlers = events[ type ] = [];
+ handlers.delegateCount = 0;
+
+ // Only use addEventListener/attachEvent if the special events handler returns false
+ if ( !special.setup || special.setup.call( elem, data, namespaces, eventHandle ) === false ) {
+ // Bind the global event handler to the element
+ if ( elem.addEventListener ) {
+ elem.addEventListener( type, eventHandle, false );
+
+ } else if ( elem.attachEvent ) {
+ elem.attachEvent( "on" + type, eventHandle );
+ }
+ }
+ }
+
+ if ( special.add ) {
+ special.add.call( elem, handleObj );
+
+ if ( !handleObj.handler.guid ) {
+ handleObj.handler.guid = handler.guid;
+ }
+ }
+
+ // Add to the element's handler list, delegates in front
+ if ( selector ) {
+ handlers.splice( handlers.delegateCount++, 0, handleObj );
+ } else {
+ handlers.push( handleObj );
+ }
+
+ // Keep track of which events have ever been used, for event optimization
+ jQuery.event.global[ type ] = true;
+ }
+
+ // Nullify elem to prevent memory leaks in IE
+ elem = null;
+ },
+
+ global: {},
+
+ // Detach an event or set of events from an element
+ remove: function( elem, types, handler, selector ) {
+
+ var elemData = jQuery.hasData( elem ) && jQuery._data( elem ),
+ t, tns, type, namespaces, origCount,
+ j, events, special, handle, eventType, handleObj;
+
+ if ( !elemData || !(events = elemData.events) ) {
+ return;
+ }
+
+ // For removal, types can be an Event object
+ if ( types && types.type && types.handler ) {
+ handler = types.handler;
+ types = types.type;
+ selector = types.selector;
+ }
+
+ // Once for each type.namespace in types; type may be omitted
+ types = (types || "").replace( rhoverHack, "mouseover$1 mouseout$1" ).split(" ");
+ for ( t = 0; t < types.length; t++ ) {
+ tns = rtypenamespace.exec( types[t] ) || [];
+ type = tns[1];
+ namespaces = tns[2];
+
+ // Unbind all events (on this namespace, if provided) for the element
+ if ( !type ) {
+ namespaces = namespaces? "." + namespaces : "";
+ for ( j in events ) {
+ jQuery.event.remove( elem, j + namespaces, handler, selector );
+ }
+ return;
+ }
+
+ special = jQuery.event.special[ type ] || {};
+ type = ( selector? special.delegateType : special.bindType ) || type;
+ eventType = events[ type ] || [];
+ origCount = eventType.length;
+ namespaces = namespaces ? new RegExp("(^|\\.)" + namespaces.split(".").sort().join("\\.(?:.*\\.)?") + "(\\.|$)") : null;
+
+ // Only need to loop for special events or selective removal
+ if ( handler || namespaces || selector || special.remove ) {
+ for ( j = 0; j < eventType.length; j++ ) {
+ handleObj = eventType[ j ];
+
+ if ( !handler || handler.guid === handleObj.guid ) {
+ if ( !namespaces || namespaces.test( handleObj.namespace ) ) {
+ if ( !selector || selector === handleObj.selector || selector === "**" && handleObj.selector ) {
+ eventType.splice( j--, 1 );
+
+ if ( handleObj.selector ) {
+ eventType.delegateCount--;
+ }
+ if ( special.remove ) {
+ special.remove.call( elem, handleObj );
+ }
+ }
+ }
+ }
+ }
+ } else {
+ // Removing all events
+ eventType.length = 0;
+ }
+
+ // Remove generic event handler if we removed something and no more handlers exist
+ // (avoids potential for endless recursion during removal of special event handlers)
+ if ( eventType.length === 0 && origCount !== eventType.length ) {
+ if ( !special.teardown || special.teardown.call( elem, namespaces ) === false ) {
+ jQuery.removeEvent( elem, type, elemData.handle );
+ }
+
+ delete events[ type ];
+ }
+ }
+
+ // Remove the expando if it's no longer used
+ if ( jQuery.isEmptyObject( events ) ) {
+ handle = elemData.handle;
+ if ( handle ) {
+ handle.elem = null;
+ }
+
+ // removeData also checks for emptiness and clears the expando if empty
+ // so use it instead of delete
+ jQuery.removeData( elem, [ "events", "handle" ], true );
+ }
+ },
+
+ // Events that are safe to short-circuit if no handlers are attached.
+ // Native DOM events should not be added, they may have inline handlers.
+ customEvent: {
+ "getData": true,
+ "setData": true,
+ "changeData": true
+ },
+
+ trigger: function( event, data, elem, onlyHandlers ) {
+ // Don't do events on text and comment nodes
+ if ( elem && (elem.nodeType === 3 || elem.nodeType === 8) ) {
+ return;
+ }
+
+ // Event object or event type
+ var type = event.type || event,
+ namespaces = [],
+ cache, exclusive, i, cur, old, ontype, special, handle, eventPath, bubbleType;
+
+ if ( type.indexOf( "!" ) >= 0 ) {
+ // Exclusive events trigger only for the exact event (no namespaces)
+ type = type.slice(0, -1);
+ exclusive = true;
+ }
+
+ if ( type.indexOf( "." ) >= 0 ) {
+ // Namespaced trigger; create a regexp to match event type in handle()
+ namespaces = type.split(".");
+ type = namespaces.shift();
+ namespaces.sort();
+ }
+
+ if ( (!elem || jQuery.event.customEvent[ type ]) && !jQuery.event.global[ type ] ) {
+ // No jQuery handlers for this event type, and it can't have inline handlers
+ return;
+ }
+
+ // Caller can pass in an Event, Object, or just an event type string
+ event = typeof event === "object" ?
+ // jQuery.Event object
+ event[ jQuery.expando ] ? event :
+ // Object literal
+ new jQuery.Event( type, event ) :
+ // Just the event type (string)
+ new jQuery.Event( type );
+
+ event.type = type;
+ event.isTrigger = true;
+ event.exclusive = exclusive;
+ event.namespace = namespaces.join( "." );
+ event.namespace_re = event.namespace? new RegExp("(^|\\.)" + namespaces.join("\\.(?:.*\\.)?") + "(\\.|$)") : null;
+ ontype = type.indexOf( ":" ) < 0 ? "on" + type : "";
+
+ // triggerHandler() and global events don't bubble or run the default action
+ if ( onlyHandlers || !elem ) {
+ event.preventDefault();
+ }
+
+ // Handle a global trigger
+ if ( !elem ) {
+
+ // TODO: Stop taunting the data cache; remove global events and always attach to document
+ cache = jQuery.cache;
+ event.stopPropagation();
+ for ( i in cache ) {
+ if ( cache[ i ].events && cache[ i ].events[ type ] ) {
+ jQuery.event.trigger( event, data, cache[ i ].handle.elem );
+ }
+ }
+ return;
+ }
+
+ // Clean up the event in case it is being reused
+ event.result = undefined;
+ if ( !event.target ) {
+ event.target = elem;
+ }
+
+ // Clone any incoming data and prepend the event, creating the handler arg list
+ data = data != null ? jQuery.makeArray( data ) : [];
+ data.unshift( event );
+
+ // Allow special events to draw outside the lines
+ special = jQuery.event.special[ type ] || {};
+ if ( special.trigger && special.trigger.apply( elem, data ) === false ) {
+ return;
+ }
+
+ // Determine event propagation path in advance, per W3C events spec (#9951)
+ // Bubble up to document, then to window; watch for a global ownerDocument var (#9724)
+ eventPath = [[ elem, special.bindType || type ]];
+ if ( !onlyHandlers && !special.noBubble && !jQuery.isWindow( elem ) ) {
+
+ bubbleType = special.delegateType || type;
+ old = null;
+ for ( cur = elem.parentNode; cur; cur = cur.parentNode ) {
+ eventPath.push([ cur, bubbleType ]);
+ old = cur;
+ }
+
+ // Only add window if we got to document (e.g., not plain obj or detached DOM)
+ if ( old && old === elem.ownerDocument ) {
+ eventPath.push([ old.defaultView || old.parentWindow || window, bubbleType ]);
+ }
+ }
+
+ // Fire handlers on the event path
+ for ( i = 0; i < eventPath.length; i++ ) {
+
+ cur = eventPath[i][0];
+ event.type = eventPath[i][1];
+
+ handle = (jQuery._data( cur, "events" ) || {})[ event.type ] && jQuery._data( cur, "handle" );
+ if ( handle ) {
+ handle.apply( cur, data );
+ }
+ handle = ontype && cur[ ontype ];
+ if ( handle && jQuery.acceptData( cur ) ) {
+ handle.apply( cur, data );
+ }
+
+ if ( event.isPropagationStopped() ) {
+ break;
+ }
+ }
+ event.type = type;
+
+ // If nobody prevented the default action, do it now
+ if ( !event.isDefaultPrevented() ) {
+
+ if ( (!special._default || special._default.call( elem.ownerDocument, event, data ) === false) &&
+ !(type === "click" && jQuery.nodeName( elem, "a" )) && jQuery.acceptData( elem ) ) {
+
+ // Call a native DOM method on the target with the same name name as the event.
+ // Can't use an .isFunction() check here because IE6/7 fails that test.
+ // Don't do default actions on window, that's where global variables be (#6170)
+ // IE<9 dies on focus/blur to hidden element (#1486)
+ if ( ontype && elem[ type ] && ((type !== "focus" && type !== "blur") || event.target.offsetWidth !== 0) && !jQuery.isWindow( elem ) ) {
+
+ // Don't re-trigger an onFOO event when we call its FOO() method
+ old = elem[ ontype ];
+
+ if ( old ) {
+ elem[ ontype ] = null;
+ }
+
+ // Prevent re-triggering of the same event, since we already bubbled it above
+ jQuery.event.triggered = type;
+ elem[ type ]();
+ jQuery.event.triggered = undefined;
+
+ if ( old ) {
+ elem[ ontype ] = old;
+ }
+ }
+ }
+ }
+
+ return event.result;
+ },
+
+ handle: function( event ) {
+
+ // Make a writable jQuery.Event from the native event object
+ event = jQuery.event.fix( event || window.event );
+
+ var handlers = ((jQuery._data( this, "events" ) || {})[ event.type ] || []),
+ delegateCount = handlers.delegateCount,
+ args = [].slice.call( arguments, 0 ),
+ handlerQueue = [],
+ i, cur, selMatch, matches, handleObj, sel, hit, related;
+
+ // Use the fix-ed jQuery.Event rather than the (read-only) native event
+ args[0] = event;
+
+ // Determine handlers that should run if there are delegated events
+ // Avoid disabled elements in IE (#6911) and non-left-click bubbling in Firefox (#3861)
+ if ( delegateCount && !event.target.disabled && !(event.button && event.type === "click") ) {
+
+ for ( cur = event.target; cur != this; cur = cur.parentNode || this ) {
+ selMatch = {};
+ matches = [];
+ for ( i = 0; i < delegateCount; i++ ) {
+ handleObj = handlers[ i ];
+ sel = handleObj.selector;
+ hit = selMatch[ sel ];
+
+ if ( handleObj.isPositional ) {
+ // Since .is() does not work for positionals; see http://jsfiddle.net/eJ4yd/3/
+ hit = ( hit || (selMatch[ sel ] = jQuery( sel )) ).index( cur ) >= 0;
+ } else if ( hit === undefined ) {
+ hit = selMatch[ sel ] = ( handleObj.quick ? quickIs( cur, handleObj.quick ) : jQuery( cur ).is( sel ) );
+ }
+ if ( hit ) {
+ matches.push( handleObj );
+ }
+ }
+ if ( matches.length ) {
+ handlerQueue.push({ elem: cur, matches: matches });
+ }
+ }
+ }
+
+ // Copy the remaining (bound) handlers in case they're changed
+ handlers = handlers.slice( delegateCount );
+
+ // Run delegates first; they may want to stop propagation beneath us
+ event.delegateTarget = this;
+ for ( i = 0; i < handlerQueue.length && !event.isPropagationStopped(); i++ ) {
+ matched = handlerQueue[ i ];
+ dispatch( matched.elem, event, matched.matches, args );
+ }
+ delete event.delegateTarget;
+
+ // Run non-delegated handlers for this level
+ if ( handlers.length ) {
+ dispatch( this, event, handlers, args );
+ }
+
+ return event.result;
+ },
+
+ // Includes some event props shared by KeyEvent and MouseEvent
+ // *** attrChange attrName relatedNode srcElement are not normalized, non-W3C, deprecated, will be removed in 1.8 ***
+ props: "attrChange attrName relatedNode srcElement altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "),
+
+ fixHooks: {},
+
+ keyHooks: {
+ props: "char charCode key keyCode".split(" "),
+ filter: function( event, original ) {
+
+ // Add which for key events
+ if ( event.which == null ) {
+ event.which = original.charCode != null ? original.charCode : original.keyCode;
+ }
+
+ return event;
+ }
+ },
+
+ mouseHooks: {
+ props: "button buttons clientX clientY fromElement layerX layerY offsetX offsetY pageX pageY screenX screenY toElement wheelDelta".split(" "),
+ filter: function( event, original ) {
+ var eventDoc, doc, body,
+ button = original.button,
+ fromElement = original.fromElement;
+
+ // Calculate pageX/Y if missing and clientX/Y available
+ if ( event.pageX == null && original.clientX != null ) {
+ eventDoc = event.target.ownerDocument || document;
+ doc = eventDoc.documentElement;
+ body = eventDoc.body;
+
+ event.pageX = original.clientX + (doc && doc.scrollLeft || body && body.scrollLeft || 0) - (doc && doc.clientLeft || body && body.clientLeft || 0);
+ event.pageY = original.clientY + (doc && doc.scrollTop || body && body.scrollTop || 0) - (doc && doc.clientTop || body && body.clientTop || 0);
+ }
+
+ // Add relatedTarget, if necessary
+ if ( !event.relatedTarget && fromElement ) {
+ event.relatedTarget = fromElement === event.target ? original.toElement : fromElement;
+ }
+
+ // Add which for click: 1 === left; 2 === middle; 3 === right
+ // Note: button is not normalized, so don't use it
+ if ( !event.which && button !== undefined ) {
+ event.which = ( button & 1 ? 1 : ( button & 2 ? 3 : ( button & 4 ? 2 : 0 ) ) );
+ }
+
+ return event;
+ }
+ },
+
+ fix: function( event ) {
+ if ( event[ jQuery.expando ] ) {
+ return event;
+ }
+
+ // Create a writable copy of the event object and normalize some properties
+ var i, prop,
+ originalEvent = event,
+ fixHook = jQuery.event.fixHooks[ event.type ] || {},
+ copy = fixHook.props ? this.props.concat( fixHook.props ) : this.props;
+
+ event = jQuery.Event( originalEvent );
+
+ for ( i = copy.length; i; ) {
+ prop = copy[ --i ];
+ event[ prop ] = originalEvent[ prop ];
+ }
+
+ // Fix target property, if necessary (#1925, IE 6/7/8 & Safari2)
+ if ( !event.target ) {
+ event.target = originalEvent.srcElement || document;
+ }
+
+ // Target should not be a text node (#504, Safari)
+ if ( event.target.nodeType === 3 ) {
+ event.target = event.target.parentNode;
+ }
+
+ // For mouse/key events; add metaKey if it's not there (#3368, IE6/7/8)
+ if ( event.metaKey === undefined ) {
+ event.metaKey = event.ctrlKey;
+ }
+
+ return fixHook.filter? fixHook.filter( event, originalEvent ) : event;
+ },
+
+ special: {
+ ready: {
+ // Make sure the ready event is setup
+ setup: jQuery.bindReady
+ },
+
+ focus: {
+ delegateType: "focusin",
+ noBubble: true
+ },
+ blur: {
+ delegateType: "focusout",
+ noBubble: true
+ },
+
+ beforeunload: {
+ setup: function( data, namespaces, eventHandle ) {
+ // We only want to do this special case on windows
+ if ( jQuery.isWindow( this ) ) {
+ this.onbeforeunload = eventHandle;
+ }
+ },
+
+ teardown: function( namespaces, eventHandle ) {
+ if ( this.onbeforeunload === eventHandle ) {
+ this.onbeforeunload = null;
+ }
+ }
+ }
+ },
+
+ simulate: function( type, elem, event, bubble ) {
+ // Piggyback on a donor event to simulate a different one.
+ // Fake originalEvent to avoid donor's stopPropagation, but if the
+ // simulated event prevents default then we do the same on the donor.
+ var e = jQuery.extend(
+ new jQuery.Event(),
+ event,
+ { type: type,
+ isSimulated: true,
+ originalEvent: {}
+ }
+ );
+ if ( bubble ) {
+ jQuery.event.trigger( e, null, elem );
+ } else {
+ jQuery.event.handle.call( elem, e );
+ }
+ if ( e.isDefaultPrevented() ) {
+ event.preventDefault();
+ }
+ }
+};
+
+// Run jQuery handler functions; called from jQuery.event.handle
+function dispatch( target, event, handlers, args ) {
+ var run_all = !event.exclusive && !event.namespace,
+ specialHandle = ( jQuery.event.special[ event.type ] || {} ).handle,
+ j, handleObj, ret;
+
+ event.currentTarget = target;
+ for ( j = 0; j < handlers.length && !event.isImmediatePropagationStopped(); j++ ) {
+ handleObj = handlers[ j ];
+
+ // Triggered event must either 1) be non-exclusive and have no namespace, or
+ // 2) have namespace(s) a subset or equal to those in the bound event (both can have no namespace).
+ if ( run_all || (!event.namespace && !handleObj.namespace) || event.namespace_re && event.namespace_re.test( handleObj.namespace ) ) {
+
+ // Pass in a reference to the handler function itself
+ // So that we can later remove it
+ event.handler = handleObj.handler;
+ event.data = handleObj.data;
+ event.handleObj = handleObj;
+
+ ret = ( specialHandle || handleObj.handler ).apply( target, args );
+
+ if ( ret !== undefined ) {
+ event.result = ret;
+ if ( ret === false ) {
+ event.preventDefault();
+ event.stopPropagation();
+ }
+ }
+ }
+ }
+}
+
+jQuery.removeEvent = document.removeEventListener ?
+ function( elem, type, handle ) {
+ if ( elem.removeEventListener ) {
+ elem.removeEventListener( type, handle, false );
+ }
+ } :
+ function( elem, type, handle ) {
+ if ( elem.detachEvent ) {
+ elem.detachEvent( "on" + type, handle );
+ }
+ };
+
+jQuery.Event = function( src, props ) {
+ // Allow instantiation without the 'new' keyword
+ if ( !(this instanceof jQuery.Event) ) {
+ return new jQuery.Event( src, props );
+ }
+
+ // Event object
+ if ( src && src.type ) {
+ this.originalEvent = src;
+ this.type = src.type;
+
+ // Events bubbling up the document may have been marked as prevented
+ // by a handler lower down the tree; reflect the correct value.
+ this.isDefaultPrevented = ( src.defaultPrevented || src.returnValue === false ||
+ src.getPreventDefault && src.getPreventDefault() ) ? returnTrue : returnFalse;
+
+ // Event type
+ } else {
+ this.type = src;
+ }
+
+ // Put explicitly provided properties onto the event object
+ if ( props ) {
+ jQuery.extend( this, props );
+ }
+
+ // Create a timestamp if incoming event doesn't have one
+ this.timeStamp = src && src.timeStamp || jQuery.now();
+
+ // Mark it as fixed
+ this[ jQuery.expando ] = true;
+};
+
+function returnFalse() {
+ return false;
+}
+function returnTrue() {
+ return true;
+}
+
+// jQuery.Event is based on DOM3 Events as specified by the ECMAScript Language Binding
+// http://www.w3.org/TR/2003/WD-DOM-Level-3-Events-20030331/ecma-script-binding.html
+jQuery.Event.prototype = {
+ preventDefault: function() {
+ this.isDefaultPrevented = returnTrue;
+
+ var e = this.originalEvent;
+ if ( !e ) {
+ return;
+ }
+
+ // if preventDefault exists run it on the original event
+ if ( e.preventDefault ) {
+ e.preventDefault();
+
+ // otherwise set the returnValue property of the original event to false (IE)
+ } else {
+ e.returnValue = false;
+ }
+ },
+ stopPropagation: function() {
+ this.isPropagationStopped = returnTrue;
+
+ var e = this.originalEvent;
+ if ( !e ) {
+ return;
+ }
+ // if stopPropagation exists run it on the original event
+ if ( e.stopPropagation ) {
+ e.stopPropagation();
+ }
+ // otherwise set the cancelBubble property of the original event to true (IE)
+ e.cancelBubble = true;
+ },
+ stopImmediatePropagation: function() {
+ this.isImmediatePropagationStopped = returnTrue;
+ this.stopPropagation();
+ },
+ isDefaultPrevented: returnFalse,
+ isPropagationStopped: returnFalse,
+ isImmediatePropagationStopped: returnFalse
+};
+
+// Create mouseenter/leave events using mouseover/out and event-time checks
+jQuery.each({
+ mouseenter: "mouseover",
+ mouseleave: "mouseout"
+}, function( orig, fix ) {
+ jQuery.event.special[ orig ] = jQuery.event.special[ fix ] = {
+ delegateType: fix,
+ bindType: fix,
+
+ handle: function( event ) {
+ var target = this,
+ related = event.relatedTarget,
+ handleObj = event.handleObj,
+ selector = handleObj.selector,
+ oldType, ret;
+
+ // For a real mouseover/out, always call the handler; for
+ // mousenter/leave call the handler if related is outside the target.
+ // NB: No relatedTarget if the mouse left/entered the browser window
+ if ( !related || handleObj.origType === event.type || (related !== target && !jQuery.contains( target, related )) ) {
+ oldType = event.type;
+ event.type = handleObj.origType;
+ ret = handleObj.handler.apply( this, arguments );
+ event.type = oldType;
+ }
+ return ret;
+ }
+ };
+});
+
+// IE submit delegation
+if ( !jQuery.support.submitBubbles ) {
+
+ jQuery.event.special.submit = {
+ setup: function() {
+ // Only need this for delegated form submit events
+ if ( jQuery.nodeName( this, "form" ) ) {
+ return false;
+ }
+
+ // Lazy-add a submit handler when a descendant form may potentially be submitted
+ jQuery.event.add( this, "click._submit keypress._submit", function( e ) {
+ // Node name check avoids a VML-related crash in IE (#9807)
+ var elem = e.target,
+ form = jQuery.nodeName( elem, "input" ) || jQuery.nodeName( elem, "button" ) ? elem.form : undefined;
+ if ( form && !form._submit_attached ) {
+ jQuery.event.add( form, "submit._submit", function( event ) {
+ // Form was submitted, bubble the event up the tree
+ if ( this.parentNode ) {
+ jQuery.event.simulate( "submit", this.parentNode, event, true );
+ }
+ });
+ form._submit_attached = true;
+ }
+ });
+ // return undefined since we don't need an event listener
+ },
+
+ teardown: function() {
+ // Only need this for delegated form submit events
+ if ( jQuery.nodeName( this, "form" ) ) {
+ return false;
+ }
+
+ // Remove delegated handlers; cleanData eventually reaps submit handlers attached above
+ jQuery.event.remove( this, "._submit" );
+ }
+ };
+}
+
+// IE change delegation and checkbox/radio fix
+if ( !jQuery.support.changeBubbles ) {
+
+ jQuery.event.special.change = {
+
+ setup: function() {
+
+ if ( rformElems.test( this.nodeName ) ) {
+ // IE doesn't fire change on a check/radio until blur; trigger it on click
+ // after a propertychange. Eat the blur-change in special.change.handle.
+ // This still fires onchange a second time for check/radio after blur.
+ if ( this.type === "checkbox" || this.type === "radio" ) {
+ jQuery.event.add( this, "propertychange._change", function( event ) {
+ if ( event.originalEvent.propertyName === "checked" ) {
+ this._just_changed = true;
+ }
+ });
+ jQuery.event.add( this, "click._change", function( event ) {
+ if ( this._just_changed ) {
+ this._just_changed = false;
+ jQuery.event.simulate( "change", this, event, true );
+ }
+ });
+ }
+ return false;
+ }
+ // Delegated event; lazy-add a change handler on descendant inputs
+ jQuery.event.add( this, "beforeactivate._change", function( e ) {
+ var elem = e.target;
+
+ if ( rformElems.test( elem.nodeName ) && !elem._change_attached ) {
+ jQuery.event.add( elem, "change._change", function( event ) {
+ if ( this.parentNode && !event.isSimulated ) {
+ jQuery.event.simulate( "change", this.parentNode, event, true );
+ }
+ });
+ elem._change_attached = true;
+ }
+ });
+ },
+
+ handle: function( event ) {
+ var elem = event.target;
+
+ // Swallow native change events from checkbox/radio, we already triggered them above
+ if ( this !== elem || event.isSimulated || event.isTrigger || (elem.type !== "radio" && elem.type !== "checkbox") ) {
+ return event.handleObj.handler.apply( this, arguments );
+ }
+ },
+
+ teardown: function() {
+ jQuery.event.remove( this, "._change" );
+
+ return rformElems.test( this.nodeName );
+ }
+ };
+}
+
+// Create "bubbling" focus and blur events
+if ( !jQuery.support.focusinBubbles ) {
+ jQuery.each({ focus: "focusin", blur: "focusout" }, function( orig, fix ) {
+
+ // Attach a single capturing handler while someone wants focusin/focusout
+ var attaches = 0,
+ handler = function( event ) {
+ jQuery.event.simulate( fix, event.target, jQuery.event.fix( event ), true );
+ };
+
+ jQuery.event.special[ fix ] = {
+ setup: function() {
+ if ( attaches++ === 0 ) {
+ document.addEventListener( orig, handler, true );
+ }
+ },
+ teardown: function() {
+ if ( --attaches === 0 ) {
+ document.removeEventListener( orig, handler, true );
+ }
+ }
+ };
+ });
+}
+
+jQuery.fn.extend({
+
+ on: function( types, selector, data, fn, /*INTERNAL*/ one ) {
+ var origFn, type;
+
+ // Types can be a map of types/handlers
+ if ( typeof types === "object" ) {
+ // ( types-Object, selector, data )
+ if ( typeof selector !== "string" ) {
+ // ( types-Object, data )
+ data = selector;
+ selector = undefined;
+ }
+ for ( type in types ) {
+ this.on( type, selector, data, types[ type ], one );
+ }
+ return this;
+ }
+
+ if ( data == null && fn == null ) {
+ // ( types, fn )
+ fn = selector;
+ data = selector = undefined;
+ } else if ( fn == null ) {
+ if ( typeof selector === "string" ) {
+ // ( types, selector, fn )
+ fn = data;
+ data = undefined;
+ } else {
+ // ( types, data, fn )
+ fn = data;
+ data = selector;
+ selector = undefined;
+ }
+ }
+ if ( fn === false ) {
+ fn = returnFalse;
+ } else if ( !fn ) {
+ return this;
+ }
+
+ if ( one === 1 ) {
+ origFn = fn;
+ fn = function( event ) {
+ jQuery.event.remove( event.delegateTarget || this, event );
+ return origFn.apply( this, arguments );
+ };
+ // Use same guid so caller can remove using origFn
+ fn.guid = origFn.guid || ( origFn.guid = jQuery.guid++ );
+ }
+ return this.each( function() {
+ jQuery.event.add( this, types, fn, data, selector );
+ });
+ },
+ one: function( types, selector, data, fn ) {
+ return this.on.call( this, types, selector, data, fn, 1 );
+ },
+ off: function( types, selector, fn ) {
+ if ( types && types.preventDefault ) {
+ // ( event ) native or jQuery.Event
+ return this.off( types.type, types.handler, types.selector );
+ }
+ if ( typeof types === "object" ) {
+ // ( types-object [, selector] )
+ for ( var type in types ) {
+ this.off( type, selector, types[ type ] );
+ }
+ return this;
+ }
+ if ( selector === false || typeof selector === "function" ) {
+ // ( types [, fn] )
+ fn = selector;
+ selector = undefined;
+ }
+ if ( fn === false ) {
+ fn = returnFalse;
+ }
+ return this.each(function() {
+ jQuery.event.remove( this, types, fn, selector );
+ });
+ },
+
+ bind: function( types, data, fn ) {
+ return this.on( types, null, data, fn );
+ },
+ unbind: function( types, fn ) {
+ return this.off( types, null, fn );
+ },
+
+ live: function( types, data, fn ) {
+ jQuery( this.context ).on( types, this.selector, data, fn );
+ return this;
+ },
+ die: function( types, fn ) {
+ jQuery( this.context ).off( types, this.selector || "**", fn );
+ return this;
+ },
+
+ delegate: function( selector, types, data, fn ) {
+ return this.on( types, selector, data, fn );
+ },
+ undelegate: function( selector, types, fn ) {
+ // ( namespace ) or ( selector, types [, fn] )
+ return arguments.length == 1? this.off( selector, "**" ) : this.off( types, selector, fn );
+ },
+
+ trigger: function( type, data ) {
+ return this.each(function() {
+ jQuery.event.trigger( type, data, this );
+ });
+ },
+ triggerHandler: function( type, data ) {
+ if ( this[0] ) {
+ return jQuery.event.trigger( type, data, this[0], true );
+ }
+ },
+
+ toggle: function( fn ) {
+ // Save reference to arguments for access in closure
+ var args = arguments,
+ guid = fn.guid || jQuery.guid++,
+ i = 0,
+ toggler = function( event ) {
+ // Figure out which function to execute
+ var lastToggle = ( jQuery._data( this, "lastToggle" + fn.guid ) || 0 ) % i;
+ jQuery._data( this, "lastToggle" + fn.guid, lastToggle + 1 );
+
+ // Make sure that clicks stop
+ event.preventDefault();
+
+ // and execute the function
+ return args[ lastToggle ].apply( this, arguments ) || false;
+ };
+
+ // link all the functions, so any of them can unbind this click handler
+ toggler.guid = guid;
+ while ( i < args.length ) {
+ args[ i++ ].guid = guid;
+ }
+
+ return this.click( toggler );
+ },
+
+ hover: function( fnOver, fnOut ) {
+ return this.mouseenter( fnOver ).mouseleave( fnOut || fnOver );
+ }
+});
+
+jQuery.each( ("blur focus focusin focusout load resize scroll unload click dblclick " +
+ "mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave " +
+ "change select submit keydown keypress keyup error contextmenu").split(" "), function( i, name ) {
+
+ // Handle event binding
+ jQuery.fn[ name ] = function( data, fn ) {
+ if ( fn == null ) {
+ fn = data;
+ data = null;
+ }
+
+ return arguments.length > 0 ?
+ this.bind( name, data, fn ) :
+ this.trigger( name );
+ };
+
+ if ( jQuery.attrFn ) {
+ jQuery.attrFn[ name ] = true;
+ }
+
+ if ( rkeyEvent.test( name ) ) {
+ jQuery.event.fixHooks[ name ] = jQuery.event.keyHooks;
+ }
+
+ if ( rmouseEvent.test( name ) ) {
+ jQuery.event.fixHooks[ name ] = jQuery.event.mouseHooks;
+ }
+});
+
+
+
+/*!
+ * Sizzle CSS Selector Engine
+ * Copyright 2011, The Dojo Foundation
+ * Released under the MIT, BSD, and GPL Licenses.
+ * More information: http://sizzlejs.com/
+ */
+(function(){
+
+var chunker = /((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^\[\]]*\]|['"][^'"]*['"]|[^\[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,
+ expando = "sizcache" + (Math.random() + '').replace('.', ''),
+ done = 0,
+ toString = Object.prototype.toString,
+ hasDuplicate = false,
+ baseHasDuplicate = true,
+ rBackslash = /\\/g,
+ rReturn = /\r\n/g,
+ rNonWord = /\W/;
+
+// Here we check if the JavaScript engine is using some sort of
+// optimization where it does not always call our comparision
+// function. If that is the case, discard the hasDuplicate value.
+// Thus far that includes Google Chrome.
+[0, 0].sort(function() {
+ baseHasDuplicate = false;
+ return 0;
+});
+
+var Sizzle = function( selector, context, results, seed ) {
+ results = results || [];
+ context = context || document;
+
+ var origContext = context;
+
+ if ( context.nodeType !== 1 && context.nodeType !== 9 ) {
+ return [];
+ }
+
+ if ( !selector || typeof selector !== "string" ) {
+ return results;
+ }
+
+ var m, set, checkSet, extra, ret, cur, pop, i,
+ prune = true,
+ contextXML = Sizzle.isXML( context ),
+ parts = [],
+ soFar = selector;
+
+ // Reset the position of the chunker regexp (start from head)
+ do {
+ chunker.exec( "" );
+ m = chunker.exec( soFar );
+
+ if ( m ) {
+ soFar = m[3];
+
+ parts.push( m[1] );
+
+ if ( m[2] ) {
+ extra = m[3];
+ break;
+ }
+ }
+ } while ( m );
+
+ if ( parts.length > 1 && origPOS.exec( selector ) ) {
+
+ if ( parts.length === 2 && Expr.relative[ parts[0] ] ) {
+ set = posProcess( parts[0] + parts[1], context, seed );
+
+ } else {
+ set = Expr.relative[ parts[0] ] ?
+ [ context ] :
+ Sizzle( parts.shift(), context );
+
+ while ( parts.length ) {
+ selector = parts.shift();
+
+ if ( Expr.relative[ selector ] ) {
+ selector += parts.shift();
+ }
+
+ set = posProcess( selector, set, seed );
+ }
+ }
+
+ } else {
+ // Take a shortcut and set the context if the root selector is an ID
+ // (but not if it'll be faster if the inner selector is an ID)
+ if ( !seed && parts.length > 1 && context.nodeType === 9 && !contextXML &&
+ Expr.match.ID.test(parts[0]) && !Expr.match.ID.test(parts[parts.length - 1]) ) {
+
+ ret = Sizzle.find( parts.shift(), context, contextXML );
+ context = ret.expr ?
+ Sizzle.filter( ret.expr, ret.set )[0] :
+ ret.set[0];
+ }
+
+ if ( context ) {
+ ret = seed ?
+ { expr: parts.pop(), set: makeArray(seed) } :
+ Sizzle.find( parts.pop(), parts.length === 1 && (parts[0] === "~" || parts[0] === "+") && context.parentNode ? context.parentNode : context, contextXML );
+
+ set = ret.expr ?
+ Sizzle.filter( ret.expr, ret.set ) :
+ ret.set;
+
+ if ( parts.length > 0 ) {
+ checkSet = makeArray( set );
+
+ } else {
+ prune = false;
+ }
+
+ while ( parts.length ) {
+ cur = parts.pop();
+ pop = cur;
+
+ if ( !Expr.relative[ cur ] ) {
+ cur = "";
+ } else {
+ pop = parts.pop();
+ }
+
+ if ( pop == null ) {
+ pop = context;
+ }
+
+ Expr.relative[ cur ]( checkSet, pop, contextXML );
+ }
+
+ } else {
+ checkSet = parts = [];
+ }
+ }
+
+ if ( !checkSet ) {
+ checkSet = set;
+ }
+
+ if ( !checkSet ) {
+ Sizzle.error( cur || selector );
+ }
+
+ if ( toString.call(checkSet) === "[object Array]" ) {
+ if ( !prune ) {
+ results.push.apply( results, checkSet );
+
+ } else if ( context && context.nodeType === 1 ) {
+ for ( i = 0; checkSet[i] != null; i++ ) {
+ if ( checkSet[i] && (checkSet[i] === true || checkSet[i].nodeType === 1 && Sizzle.contains(context, checkSet[i])) ) {
+ results.push( set[i] );
+ }
+ }
+
+ } else {
+ for ( i = 0; checkSet[i] != null; i++ ) {
+ if ( checkSet[i] && checkSet[i].nodeType === 1 ) {
+ results.push( set[i] );
+ }
+ }
+ }
+
+ } else {
+ makeArray( checkSet, results );
+ }
+
+ if ( extra ) {
+ Sizzle( extra, origContext, results, seed );
+ Sizzle.uniqueSort( results );
+ }
+
+ return results;
+};
+
+Sizzle.uniqueSort = function( results ) {
+ if ( sortOrder ) {
+ hasDuplicate = baseHasDuplicate;
+ results.sort( sortOrder );
+
+ if ( hasDuplicate ) {
+ for ( var i = 1; i < results.length; i++ ) {
+ if ( results[i] === results[ i - 1 ] ) {
+ results.splice( i--, 1 );
+ }
+ }
+ }
+ }
+
+ return results;
+};
+
+Sizzle.matches = function( expr, set ) {
+ return Sizzle( expr, null, null, set );
+};
+
+Sizzle.matchesSelector = function( node, expr ) {
+ return Sizzle( expr, null, null, [node] ).length > 0;
+};
+
+Sizzle.find = function( expr, context, isXML ) {
+ var set, i, len, match, type, left;
+
+ if ( !expr ) {
+ return [];
+ }
+
+ for ( i = 0, len = Expr.order.length; i < len; i++ ) {
+ type = Expr.order[i];
+
+ if ( (match = Expr.leftMatch[ type ].exec( expr )) ) {
+ left = match[1];
+ match.splice( 1, 1 );
+
+ if ( left.substr( left.length - 1 ) !== "\\" ) {
+ match[1] = (match[1] || "").replace( rBackslash, "" );
+ set = Expr.find[ type ]( match, context, isXML );
+
+ if ( set != null ) {
+ expr = expr.replace( Expr.match[ type ], "" );
+ break;
+ }
+ }
+ }
+ }
+
+ if ( !set ) {
+ set = typeof context.getElementsByTagName !== "undefined" ?
+ context.getElementsByTagName( "*" ) :
+ [];
+ }
+
+ return { set: set, expr: expr };
+};
+
+Sizzle.filter = function( expr, set, inplace, not ) {
+ var match, anyFound,
+ type, found, item, filter, left,
+ i, pass,
+ old = expr,
+ result = [],
+ curLoop = set,
+ isXMLFilter = set && set[0] && Sizzle.isXML( set[0] );
+
+ while ( expr && set.length ) {
+ for ( type in Expr.filter ) {
+ if ( (match = Expr.leftMatch[ type ].exec( expr )) != null && match[2] ) {
+ filter = Expr.filter[ type ];
+ left = match[1];
+
+ anyFound = false;
+
+ match.splice(1,1);
+
+ if ( left.substr( left.length - 1 ) === "\\" ) {
+ continue;
+ }
+
+ if ( curLoop === result ) {
+ result = [];
+ }
+
+ if ( Expr.preFilter[ type ] ) {
+ match = Expr.preFilter[ type ]( match, curLoop, inplace, result, not, isXMLFilter );
+
+ if ( !match ) {
+ anyFound = found = true;
+
+ } else if ( match === true ) {
+ continue;
+ }
+ }
+
+ if ( match ) {
+ for ( i = 0; (item = curLoop[i]) != null; i++ ) {
+ if ( item ) {
+ found = filter( item, match, i, curLoop );
+ pass = not ^ found;
+
+ if ( inplace && found != null ) {
+ if ( pass ) {
+ anyFound = true;
+
+ } else {
+ curLoop[i] = false;
+ }
+
+ } else if ( pass ) {
+ result.push( item );
+ anyFound = true;
+ }
+ }
+ }
+ }
+
+ if ( found !== undefined ) {
+ if ( !inplace ) {
+ curLoop = result;
+ }
+
+ expr = expr.replace( Expr.match[ type ], "" );
+
+ if ( !anyFound ) {
+ return [];
+ }
+
+ break;
+ }
+ }
+ }
+
+ // Improper expression
+ if ( expr === old ) {
+ if ( anyFound == null ) {
+ Sizzle.error( expr );
+
+ } else {
+ break;
+ }
+ }
+
+ old = expr;
+ }
+
+ return curLoop;
+};
+
+Sizzle.error = function( msg ) {
+ throw "Syntax error, unrecognized expression: " + msg;
+};
+
+/**
+ * Utility function for retreiving the text value of an array of DOM nodes
+ * @param {Array|Element} elem
+ */
+var getText = Sizzle.getText = function( elem ) {
+ var i, node,
+ nodeType = elem.nodeType,
+ ret = "";
+
+ if ( nodeType ) {
+ if ( nodeType === 1 ) {
+ // Use textContent || innerText for elements
+ if ( typeof elem.textContent === 'string' ) {
+ return elem.textContent;
+ } else if ( typeof elem.innerText === 'string' ) {
+ // Replace IE's carriage returns
+ return elem.innerText.replace( rReturn, '' );
+ } else {
+ // Traverse it's children
+ for ( elem = elem.firstChild; elem; elem = elem.nextSibling) {
+ ret += getText( elem );
+ }
+ }
+ } else if ( nodeType === 3 || nodeType === 4 ) {
+ return elem.nodeValue;
+ }
+ } else {
+
+ // If no nodeType, this is expected to be an array
+ for ( i = 0; (node = elem[i]); i++ ) {
+ // Do not traverse comment nodes
+ if ( node.nodeType !== 8 ) {
+ ret += getText( node );
+ }
+ }
+ }
+ return ret;
+};
+
+var Expr = Sizzle.selectors = {
+ order: [ "ID", "NAME", "TAG" ],
+
+ match: {
+ ID: /#((?:[\w\u00c0-\uFFFF\-]|\\.)+)/,
+ CLASS: /\.((?:[\w\u00c0-\uFFFF\-]|\\.)+)/,
+ NAME: /\[name=['"]*((?:[\w\u00c0-\uFFFF\-]|\\.)+)['"]*\]/,
+ ATTR: /\[\s*((?:[\w\u00c0-\uFFFF\-]|\\.)+)\s*(?:(\S?=)\s*(?:(['"])(.*?)\3|(#?(?:[\w\u00c0-\uFFFF\-]|\\.)*)|)|)\s*\]/,
+ TAG: /^((?:[\w\u00c0-\uFFFF\*\-]|\\.)+)/,
+ CHILD: /:(only|nth|last|first)-child(?:\(\s*(even|odd|(?:[+\-]?\d+|(?:[+\-]?\d*)?n\s*(?:[+\-]\s*\d+)?))\s*\))?/,
+ POS: /:(nth|eq|gt|lt|first|last|even|odd)(?:\((\d*)\))?(?=[^\-]|$)/,
+ PSEUDO: /:((?:[\w\u00c0-\uFFFF\-]|\\.)+)(?:\((['"]?)((?:\([^\)]+\)|[^\(\)]*)+)\2\))?/
+ },
+
+ leftMatch: {},
+
+ attrMap: {
+ "class": "className",
+ "for": "htmlFor"
+ },
+
+ attrHandle: {
+ href: function( elem ) {
+ return elem.getAttribute( "href" );
+ },
+ type: function( elem ) {
+ return elem.getAttribute( "type" );
+ }
+ },
+
+ relative: {
+ "+": function(checkSet, part){
+ var isPartStr = typeof part === "string",
+ isTag = isPartStr && !rNonWord.test( part ),
+ isPartStrNotTag = isPartStr && !isTag;
+
+ if ( isTag ) {
+ part = part.toLowerCase();
+ }
+
+ for ( var i = 0, l = checkSet.length, elem; i < l; i++ ) {
+ if ( (elem = checkSet[i]) ) {
+ while ( (elem = elem.previousSibling) && elem.nodeType !== 1 ) {}
+
+ checkSet[i] = isPartStrNotTag || elem && elem.nodeName.toLowerCase() === part ?
+ elem || false :
+ elem === part;
+ }
+ }
+
+ if ( isPartStrNotTag ) {
+ Sizzle.filter( part, checkSet, true );
+ }
+ },
+
+ ">": function( checkSet, part ) {
+ var elem,
+ isPartStr = typeof part === "string",
+ i = 0,
+ l = checkSet.length;
+
+ if ( isPartStr && !rNonWord.test( part ) ) {
+ part = part.toLowerCase();
+
+ for ( ; i < l; i++ ) {
+ elem = checkSet[i];
+
+ if ( elem ) {
+ var parent = elem.parentNode;
+ checkSet[i] = parent.nodeName.toLowerCase() === part ? parent : false;
+ }
+ }
+
+ } else {
+ for ( ; i < l; i++ ) {
+ elem = checkSet[i];
+
+ if ( elem ) {
+ checkSet[i] = isPartStr ?
+ elem.parentNode :
+ elem.parentNode === part;
+ }
+ }
+
+ if ( isPartStr ) {
+ Sizzle.filter( part, checkSet, true );
+ }
+ }
+ },
+
+ "": function(checkSet, part, isXML){
+ var nodeCheck,
+ doneName = done++,
+ checkFn = dirCheck;
+
+ if ( typeof part === "string" && !rNonWord.test( part ) ) {
+ part = part.toLowerCase();
+ nodeCheck = part;
+ checkFn = dirNodeCheck;
+ }
+
+ checkFn( "parentNode", part, doneName, checkSet, nodeCheck, isXML );
+ },
+
+ "~": function( checkSet, part, isXML ) {
+ var nodeCheck,
+ doneName = done++,
+ checkFn = dirCheck;
+
+ if ( typeof part === "string" && !rNonWord.test( part ) ) {
+ part = part.toLowerCase();
+ nodeCheck = part;
+ checkFn = dirNodeCheck;
+ }
+
+ checkFn( "previousSibling", part, doneName, checkSet, nodeCheck, isXML );
+ }
+ },
+
+ find: {
+ ID: function( match, context, isXML ) {
+ if ( typeof context.getElementById !== "undefined" && !isXML ) {
+ var m = context.getElementById(match[1]);
+ // Check parentNode to catch when Blackberry 4.6 returns
+ // nodes that are no longer in the document #6963
+ return m && m.parentNode ? [m] : [];
+ }
+ },
+
+ NAME: function( match, context ) {
+ if ( typeof context.getElementsByName !== "undefined" ) {
+ var ret = [],
+ results = context.getElementsByName( match[1] );
+
+ for ( var i = 0, l = results.length; i < l; i++ ) {
+ if ( results[i].getAttribute("name") === match[1] ) {
+ ret.push( results[i] );
+ }
+ }
+
+ return ret.length === 0 ? null : ret;
+ }
+ },
+
+ TAG: function( match, context ) {
+ if ( typeof context.getElementsByTagName !== "undefined" ) {
+ return context.getElementsByTagName( match[1] );
+ }
+ }
+ },
+ preFilter: {
+ CLASS: function( match, curLoop, inplace, result, not, isXML ) {
+ match = " " + match[1].replace( rBackslash, "" ) + " ";
+
+ if ( isXML ) {
+ return match;
+ }
+
+ for ( var i = 0, elem; (elem = curLoop[i]) != null; i++ ) {
+ if ( elem ) {
+ if ( not ^ (elem.className && (" " + elem.className + " ").replace(/[\t\n\r]/g, " ").indexOf(match) >= 0) ) {
+ if ( !inplace ) {
+ result.push( elem );
+ }
+
+ } else if ( inplace ) {
+ curLoop[i] = false;
+ }
+ }
+ }
+
+ return false;
+ },
+
+ ID: function( match ) {
+ return match[1].replace( rBackslash, "" );
+ },
+
+ TAG: function( match, curLoop ) {
+ return match[1].replace( rBackslash, "" ).toLowerCase();
+ },
+
+ CHILD: function( match ) {
+ if ( match[1] === "nth" ) {
+ if ( !match[2] ) {
+ Sizzle.error( match[0] );
+ }
+
+ match[2] = match[2].replace(/^\+|\s*/g, '');
+
+ // parse equations like 'even', 'odd', '5', '2n', '3n+2', '4n-1', '-n+6'
+ var test = /(-?)(\d*)(?:n([+\-]?\d*))?/.exec(
+ match[2] === "even" && "2n" || match[2] === "odd" && "2n+1" ||
+ !/\D/.test( match[2] ) && "0n+" + match[2] || match[2]);
+
+ // calculate the numbers (first)n+(last) including if they are negative
+ match[2] = (test[1] + (test[2] || 1)) - 0;
+ match[3] = test[3] - 0;
+ }
+ else if ( match[2] ) {
+ Sizzle.error( match[0] );
+ }
+
+ // TODO: Move to normal caching system
+ match[0] = done++;
+
+ return match;
+ },
+
+ ATTR: function( match, curLoop, inplace, result, not, isXML ) {
+ var name = match[1] = match[1].replace( rBackslash, "" );
+
+ if ( !isXML && Expr.attrMap[name] ) {
+ match[1] = Expr.attrMap[name];
+ }
+
+ // Handle if an un-quoted value was used
+ match[4] = ( match[4] || match[5] || "" ).replace( rBackslash, "" );
+
+ if ( match[2] === "~=" ) {
+ match[4] = " " + match[4] + " ";
+ }
+
+ return match;
+ },
+
+ PSEUDO: function( match, curLoop, inplace, result, not ) {
+ if ( match[1] === "not" ) {
+ // If we're dealing with a complex expression, or a simple one
+ if ( ( chunker.exec(match[3]) || "" ).length > 1 || /^\w/.test(match[3]) ) {
+ match[3] = Sizzle(match[3], null, null, curLoop);
+
+ } else {
+ var ret = Sizzle.filter(match[3], curLoop, inplace, true ^ not);
+
+ if ( !inplace ) {
+ result.push.apply( result, ret );
+ }
+
+ return false;
+ }
+
+ } else if ( Expr.match.POS.test( match[0] ) || Expr.match.CHILD.test( match[0] ) ) {
+ return true;
+ }
+
+ return match;
+ },
+
+ POS: function( match ) {
+ match.unshift( true );
+
+ return match;
+ }
+ },
+
+ filters: {
+ enabled: function( elem ) {
+ return elem.disabled === false && elem.type !== "hidden";
+ },
+
+ disabled: function( elem ) {
+ return elem.disabled === true;
+ },
+
+ checked: function( elem ) {
+ return elem.checked === true;
+ },
+
+ selected: function( elem ) {
+ // Accessing this property makes selected-by-default
+ // options in Safari work properly
+ if ( elem.parentNode ) {
+ elem.parentNode.selectedIndex;
+ }
+
+ return elem.selected === true;
+ },
+
+ parent: function( elem ) {
+ return !!elem.firstChild;
+ },
+
+ empty: function( elem ) {
+ return !elem.firstChild;
+ },
+
+ has: function( elem, i, match ) {
+ return !!Sizzle( match[3], elem ).length;
+ },
+
+ header: function( elem ) {
+ return (/h\d/i).test( elem.nodeName );
+ },
+
+ text: function( elem ) {
+ var attr = elem.getAttribute( "type" ), type = elem.type;
+ // IE6 and 7 will map elem.type to 'text' for new HTML5 types (search, etc)
+ // use getAttribute instead to test this case
+ return elem.nodeName.toLowerCase() === "input" && "text" === type && ( attr === type || attr === null );
+ },
+
+ radio: function( elem ) {
+ return elem.nodeName.toLowerCase() === "input" && "radio" === elem.type;
+ },
+
+ checkbox: function( elem ) {
+ return elem.nodeName.toLowerCase() === "input" && "checkbox" === elem.type;
+ },
+
+ file: function( elem ) {
+ return elem.nodeName.toLowerCase() === "input" && "file" === elem.type;
+ },
+
+ password: function( elem ) {
+ return elem.nodeName.toLowerCase() === "input" && "password" === elem.type;
+ },
+
+ submit: function( elem ) {
+ var name = elem.nodeName.toLowerCase();
+ return (name === "input" || name === "button") && "submit" === elem.type;
+ },
+
+ image: function( elem ) {
+ return elem.nodeName.toLowerCase() === "input" && "image" === elem.type;
+ },
+
+ reset: function( elem ) {
+ var name = elem.nodeName.toLowerCase();
+ return (name === "input" || name === "button") && "reset" === elem.type;
+ },
+
+ button: function( elem ) {
+ var name = elem.nodeName.toLowerCase();
+ return name === "input" && "button" === elem.type || name === "button";
+ },
+
+ input: function( elem ) {
+ return (/input|select|textarea|button/i).test( elem.nodeName );
+ },
+
+ focus: function( elem ) {
+ return elem === elem.ownerDocument.activeElement;
+ }
+ },
+ setFilters: {
+ first: function( elem, i ) {
+ return i === 0;
+ },
+
+ last: function( elem, i, match, array ) {
+ return i === array.length - 1;
+ },
+
+ even: function( elem, i ) {
+ return i % 2 === 0;
+ },
+
+ odd: function( elem, i ) {
+ return i % 2 === 1;
+ },
+
+ lt: function( elem, i, match ) {
+ return i < match[3] - 0;
+ },
+
+ gt: function( elem, i, match ) {
+ return i > match[3] - 0;
+ },
+
+ nth: function( elem, i, match ) {
+ return match[3] - 0 === i;
+ },
+
+ eq: function( elem, i, match ) {
+ return match[3] - 0 === i;
+ }
+ },
+ filter: {
+ PSEUDO: function( elem, match, i, array ) {
+ var name = match[1],
+ filter = Expr.filters[ name ];
+
+ if ( filter ) {
+ return filter( elem, i, match, array );
+
+ } else if ( name === "contains" ) {
+ return (elem.textContent || elem.innerText || getText([ elem ]) || "").indexOf(match[3]) >= 0;
+
+ } else if ( name === "not" ) {
+ var not = match[3];
+
+ for ( var j = 0, l = not.length; j < l; j++ ) {
+ if ( not[j] === elem ) {
+ return false;
+ }
+ }
+
+ return true;
+
+ } else {
+ Sizzle.error( name );
+ }
+ },
+
+ CHILD: function( elem, match ) {
+ var first, last,
+ doneName, parent, cache,
+ count, diff,
+ type = match[1],
+ node = elem;
+
+ switch ( type ) {
+ case "only":
+ case "first":
+ while ( (node = node.previousSibling) ) {
+ if ( node.nodeType === 1 ) {
+ return false;
+ }
+ }
+
+ if ( type === "first" ) {
+ return true;
+ }
+
+ node = elem;
+
+ case "last":
+ while ( (node = node.nextSibling) ) {
+ if ( node.nodeType === 1 ) {
+ return false;
+ }
+ }
+
+ return true;
+
+ case "nth":
+ first = match[2];
+ last = match[3];
+
+ if ( first === 1 && last === 0 ) {
+ return true;
+ }
+
+ doneName = match[0];
+ parent = elem.parentNode;
+
+ if ( parent && (parent[ expando ] !== doneName || !elem.nodeIndex) ) {
+ count = 0;
+
+ for ( node = parent.firstChild; node; node = node.nextSibling ) {
+ if ( node.nodeType === 1 ) {
+ node.nodeIndex = ++count;
+ }
+ }
+
+ parent[ expando ] = doneName;
+ }
+
+ diff = elem.nodeIndex - last;
+
+ if ( first === 0 ) {
+ return diff === 0;
+
+ } else {
+ return ( diff % first === 0 && diff / first >= 0 );
+ }
+ }
+ },
+
+ ID: function( elem, match ) {
+ return elem.nodeType === 1 && elem.getAttribute("id") === match;
+ },
+
+ TAG: function( elem, match ) {
+ return (match === "*" && elem.nodeType === 1) || !!elem.nodeName && elem.nodeName.toLowerCase() === match;
+ },
+
+ CLASS: function( elem, match ) {
+ return (" " + (elem.className || elem.getAttribute("class")) + " ")
+ .indexOf( match ) > -1;
+ },
+
+ ATTR: function( elem, match ) {
+ var name = match[1],
+ result = Sizzle.attr ?
+ Sizzle.attr( elem, name ) :
+ Expr.attrHandle[ name ] ?
+ Expr.attrHandle[ name ]( elem ) :
+ elem[ name ] != null ?
+ elem[ name ] :
+ elem.getAttribute( name ),
+ value = result + "",
+ type = match[2],
+ check = match[4];
+
+ return result == null ?
+ type === "!=" :
+ !type && Sizzle.attr ?
+ result != null :
+ type === "=" ?
+ value === check :
+ type === "*=" ?
+ value.indexOf(check) >= 0 :
+ type === "~=" ?
+ (" " + value + " ").indexOf(check) >= 0 :
+ !check ?
+ value && result !== false :
+ type === "!=" ?
+ value !== check :
+ type === "^=" ?
+ value.indexOf(check) === 0 :
+ type === "$=" ?
+ value.substr(value.length - check.length) === check :
+ type === "|=" ?
+ value === check || value.substr(0, check.length + 1) === check + "-" :
+ false;
+ },
+
+ POS: function( elem, match, i, array ) {
+ var name = match[2],
+ filter = Expr.setFilters[ name ];
+
+ if ( filter ) {
+ return filter( elem, i, match, array );
+ }
+ }
+ }
+};
+
+var origPOS = Expr.match.POS,
+ fescape = function(all, num){
+ return "\\" + (num - 0 + 1);
+ };
+
+for ( var type in Expr.match ) {
+ Expr.match[ type ] = new RegExp( Expr.match[ type ].source + (/(?![^\[]*\])(?![^\(]*\))/.source) );
+ Expr.leftMatch[ type ] = new RegExp( /(^(?:.|\r|\n)*?)/.source + Expr.match[ type ].source.replace(/\\(\d+)/g, fescape) );
+}
+
+var makeArray = function( array, results ) {
+ array = Array.prototype.slice.call( array, 0 );
+
+ if ( results ) {
+ results.push.apply( results, array );
+ return results;
+ }
+
+ return array;
+};
+
+// Perform a simple check to determine if the browser is capable of
+// converting a NodeList to an array using builtin methods.
+// Also verifies that the returned array holds DOM nodes
+// (which is not the case in the Blackberry browser)
+try {
+ Array.prototype.slice.call( document.documentElement.childNodes, 0 )[0].nodeType;
+
+// Provide a fallback method if it does not work
+} catch( e ) {
+ makeArray = function( array, results ) {
+ var i = 0,
+ ret = results || [];
+
+ if ( toString.call(array) === "[object Array]" ) {
+ Array.prototype.push.apply( ret, array );
+
+ } else {
+ if ( typeof array.length === "number" ) {
+ for ( var l = array.length; i < l; i++ ) {
+ ret.push( array[i] );
+ }
+
+ } else {
+ for ( ; array[i]; i++ ) {
+ ret.push( array[i] );
+ }
+ }
+ }
+
+ return ret;
+ };
+}
+
+var sortOrder, siblingCheck;
+
+if ( document.documentElement.compareDocumentPosition ) {
+ sortOrder = function( a, b ) {
+ if ( a === b ) {
+ hasDuplicate = true;
+ return 0;
+ }
+
+ if ( !a.compareDocumentPosition || !b.compareDocumentPosition ) {
+ return a.compareDocumentPosition ? -1 : 1;
+ }
+
+ return a.compareDocumentPosition(b) & 4 ? -1 : 1;
+ };
+
+} else {
+ sortOrder = function( a, b ) {
+ // The nodes are identical, we can exit early
+ if ( a === b ) {
+ hasDuplicate = true;
+ return 0;
+
+ // Fallback to using sourceIndex (in IE) if it's available on both nodes
+ } else if ( a.sourceIndex && b.sourceIndex ) {
+ return a.sourceIndex - b.sourceIndex;
+ }
+
+ var al, bl,
+ ap = [],
+ bp = [],
+ aup = a.parentNode,
+ bup = b.parentNode,
+ cur = aup;
+
+ // If the nodes are siblings (or identical) we can do a quick check
+ if ( aup === bup ) {
+ return siblingCheck( a, b );
+
+ // If no parents were found then the nodes are disconnected
+ } else if ( !aup ) {
+ return -1;
+
+ } else if ( !bup ) {
+ return 1;
+ }
+
+ // Otherwise they're somewhere else in the tree so we need
+ // to build up a full list of the parentNodes for comparison
+ while ( cur ) {
+ ap.unshift( cur );
+ cur = cur.parentNode;
+ }
+
+ cur = bup;
+
+ while ( cur ) {
+ bp.unshift( cur );
+ cur = cur.parentNode;
+ }
+
+ al = ap.length;
+ bl = bp.length;
+
+ // Start walking down the tree looking for a discrepancy
+ for ( var i = 0; i < al && i < bl; i++ ) {
+ if ( ap[i] !== bp[i] ) {
+ return siblingCheck( ap[i], bp[i] );
+ }
+ }
+
+ // We ended someplace up the tree so do a sibling check
+ return i === al ?
+ siblingCheck( a, bp[i], -1 ) :
+ siblingCheck( ap[i], b, 1 );
+ };
+
+ siblingCheck = function( a, b, ret ) {
+ if ( a === b ) {
+ return ret;
+ }
+
+ var cur = a.nextSibling;
+
+ while ( cur ) {
+ if ( cur === b ) {
+ return -1;
+ }
+
+ cur = cur.nextSibling;
+ }
+
+ return 1;
+ };
+}
+
+// Check to see if the browser returns elements by name when
+// querying by getElementById (and provide a workaround)
+(function(){
+ // We're going to inject a fake input element with a specified name
+ var form = document.createElement("div"),
+ id = "script" + (new Date()).getTime(),
+ root = document.documentElement;
+
+ form.innerHTML = "<a name='" + id + "'/>";
+
+ // Inject it into the root element, check its status, and remove it quickly
+ root.insertBefore( form, root.firstChild );
+
+ // The workaround has to do additional checks after a getElementById
+ // Which slows things down for other browsers (hence the branching)
+ if ( document.getElementById( id ) ) {
+ Expr.find.ID = function( match, context, isXML ) {
+ if ( typeof context.getElementById !== "undefined" && !isXML ) {
+ var m = context.getElementById(match[1]);
+
+ return m ?
+ m.id === match[1] || typeof m.getAttributeNode !== "undefined" && m.getAttributeNode("id").nodeValue === match[1] ?
+ [m] :
+ undefined :
+ [];
+ }
+ };
+
+ Expr.filter.ID = function( elem, match ) {
+ var node = typeof elem.getAttributeNode !== "undefined" && elem.getAttributeNode("id");
+
+ return elem.nodeType === 1 && node && node.nodeValue === match;
+ };
+ }
+
+ root.removeChild( form );
+
+ // release memory in IE
+ root = form = null;
+})();
+
+(function(){
+ // Check to see if the browser returns only elements
+ // when doing getElementsByTagName("*")
+
+ // Create a fake element
+ var div = document.createElement("div");
+ div.appendChild( document.createComment("") );
+
+ // Make sure no comments are found
+ if ( div.getElementsByTagName("*").length > 0 ) {
+ Expr.find.TAG = function( match, context ) {
+ var results = context.getElementsByTagName( match[1] );
+
+ // Filter out possible comments
+ if ( match[1] === "*" ) {
+ var tmp = [];
+
+ for ( var i = 0; results[i]; i++ ) {
+ if ( results[i].nodeType === 1 ) {
+ tmp.push( results[i] );
+ }
+ }
+
+ results = tmp;
+ }
+
+ return results;
+ };
+ }
+
+ // Check to see if an attribute returns normalized href attributes
+ div.innerHTML = "<a href='#'></a>";
+
+ if ( div.firstChild && typeof div.firstChild.getAttribute !== "undefined" &&
+ div.firstChild.getAttribute("href") !== "#" ) {
+
+ Expr.attrHandle.href = function( elem ) {
+ return elem.getAttribute( "href", 2 );
+ };
+ }
+
+ // release memory in IE
+ div = null;
+})();
+
+if ( document.querySelectorAll ) {
+ (function(){
+ var oldSizzle = Sizzle,
+ div = document.createElement("div"),
+ id = "__sizzle__";
+
+ div.innerHTML = "<p class='TEST'></p>";
+
+ // Safari can't handle uppercase or unicode characters when
+ // in quirks mode.
+ if ( div.querySelectorAll && div.querySelectorAll(".TEST").length === 0 ) {
+ return;
+ }
+
+ Sizzle = function( query, context, extra, seed ) {
+ context = context || document;
+
+ // Only use querySelectorAll on non-XML documents
+ // (ID selectors don't work in non-HTML documents)
+ if ( !seed && !Sizzle.isXML(context) ) {
+ // See if we find a selector to speed up
+ var match = /^(\w+$)|^\.([\w\-]+$)|^#([\w\-]+$)/.exec( query );
+
+ if ( match && (context.nodeType === 1 || context.nodeType === 9) ) {
+ // Speed-up: Sizzle("TAG")
+ if ( match[1] ) {
+ return makeArray( context.getElementsByTagName( query ), extra );
+
+ // Speed-up: Sizzle(".CLASS")
+ } else if ( match[2] && Expr.find.CLASS && context.getElementsByClassName ) {
+ return makeArray( context.getElementsByClassName( match[2] ), extra );
+ }
+ }
+
+ if ( context.nodeType === 9 ) {
+ // Speed-up: Sizzle("body")
+ // The body element only exists once, optimize finding it
+ if ( query === "body" && context.body ) {
+ return makeArray( [ context.body ], extra );
+
+ // Speed-up: Sizzle("#ID")
+ } else if ( match && match[3] ) {
+ var elem = context.getElementById( match[3] );
+
+ // Check parentNode to catch when Blackberry 4.6 returns
+ // nodes that are no longer in the document #6963
+ if ( elem && elem.parentNode ) {
+ // Handle the case where IE and Opera return items
+ // by name instead of ID
+ if ( elem.id === match[3] ) {
+ return makeArray( [ elem ], extra );
+ }
+
+ } else {
+ return makeArray( [], extra );
+ }
+ }
+
+ try {
+ return makeArray( context.querySelectorAll(query), extra );
+ } catch(qsaError) {}
+
+ // qSA works strangely on Element-rooted queries
+ // We can work around this by specifying an extra ID on the root
+ // and working up from there (Thanks to Andrew Dupont for the technique)
+ // IE 8 doesn't work on object elements
+ } else if ( context.nodeType === 1 && context.nodeName.toLowerCase() !== "object" ) {
+ var oldContext = context,
+ old = context.getAttribute( "id" ),
+ nid = old || id,
+ hasParent = context.parentNode,
+ relativeHierarchySelector = /^\s*[+~]/.test( query );
+
+ if ( !old ) {
+ context.setAttribute( "id", nid );
+ } else {
+ nid = nid.replace( /'/g, "\\$&" );
+ }
+ if ( relativeHierarchySelector && hasParent ) {
+ context = context.parentNode;
+ }
+
+ try {
+ if ( !relativeHierarchySelector || hasParent ) {
+ return makeArray( context.querySelectorAll( "[id='" + nid + "'] " + query ), extra );
+ }
+
+ } catch(pseudoError) {
+ } finally {
+ if ( !old ) {
+ oldContext.removeAttribute( "id" );
+ }
+ }
+ }
+ }
+
+ return oldSizzle(query, context, extra, seed);
+ };
+
+ for ( var prop in oldSizzle ) {
+ Sizzle[ prop ] = oldSizzle[ prop ];
+ }
+
+ // release memory in IE
+ div = null;
+ })();
+}
+
+(function(){
+ var html = document.documentElement,
+ matches = html.matchesSelector || html.mozMatchesSelector || html.webkitMatchesSelector || html.msMatchesSelector;
+
+ if ( matches ) {
+ // Check to see if it's possible to do matchesSelector
+ // on a disconnected node (IE 9 fails this)
+ var disconnectedMatch = !matches.call( document.createElement( "div" ), "div" ),
+ pseudoWorks = false;
+
+ try {
+ // This should fail with an exception
+ // Gecko does not error, returns false instead
+ matches.call( document.documentElement, "[test!='']:sizzle" );
+
+ } catch( pseudoError ) {
+ pseudoWorks = true;
+ }
+
+ Sizzle.matchesSelector = function( node, expr ) {
+ // Make sure that attribute selectors are quoted
+ expr = expr.replace(/\=\s*([^'"\]]*)\s*\]/g, "='$1']");
+
+ if ( !Sizzle.isXML( node ) ) {
+ try {
+ if ( pseudoWorks || !Expr.match.PSEUDO.test( expr ) && !/!=/.test( expr ) ) {
+ var ret = matches.call( node, expr );
+
+ // IE 9's matchesSelector returns false on disconnected nodes
+ if ( ret || !disconnectedMatch ||
+ // As well, disconnected nodes are said to be in a document
+ // fragment in IE 9, so check for that
+ node.document && node.document.nodeType !== 11 ) {
+ return ret;
+ }
+ }
+ } catch(e) {}
+ }
+
+ return Sizzle(expr, null, null, [node]).length > 0;
+ };
+ }
+})();
+
+(function(){
+ var div = document.createElement("div");
+
+ div.innerHTML = "<div class='test e'></div><div class='test'></div>";
+
+ // Opera can't find a second classname (in 9.6)
+ // Also, make sure that getElementsByClassName actually exists
+ if ( !div.getElementsByClassName || div.getElementsByClassName("e").length === 0 ) {
+ return;
+ }
+
+ // Safari caches class attributes, doesn't catch changes (in 3.2)
+ div.lastChild.className = "e";
+
+ if ( div.getElementsByClassName("e").length === 1 ) {
+ return;
+ }
+
+ Expr.order.splice(1, 0, "CLASS");
+ Expr.find.CLASS = function( match, context, isXML ) {
+ if ( typeof context.getElementsByClassName !== "undefined" && !isXML ) {
+ return context.getElementsByClassName(match[1]);
+ }
+ };
+
+ // release memory in IE
+ div = null;
+})();
+
+function dirNodeCheck( dir, cur, doneName, checkSet, nodeCheck, isXML ) {
+ for ( var i = 0, l = checkSet.length; i < l; i++ ) {
+ var elem = checkSet[i];
+
+ if ( elem ) {
+ var match = false;
+
+ elem = elem[dir];
+
+ while ( elem ) {
+ if ( elem[ expando ] === doneName ) {
+ match = checkSet[elem.sizset];
+ break;
+ }
+
+ if ( elem.nodeType === 1 && !isXML ){
+ elem[ expando ] = doneName;
+ elem.sizset = i;
+ }
+
+ if ( elem.nodeName.toLowerCase() === cur ) {
+ match = elem;
+ break;
+ }
+
+ elem = elem[dir];
+ }
+
+ checkSet[i] = match;
+ }
+ }
+}
+
+function dirCheck( dir, cur, doneName, checkSet, nodeCheck, isXML ) {
+ for ( var i = 0, l = checkSet.length; i < l; i++ ) {
+ var elem = checkSet[i];
+
+ if ( elem ) {
+ var match = false;
+
+ elem = elem[dir];
+
+ while ( elem ) {
+ if ( elem[ expando ] === doneName ) {
+ match = checkSet[elem.sizset];
+ break;
+ }
+
+ if ( elem.nodeType === 1 ) {
+ if ( !isXML ) {
+ elem[ expando ] = doneName;
+ elem.sizset = i;
+ }
+
+ if ( typeof cur !== "string" ) {
+ if ( elem === cur ) {
+ match = true;
+ break;
+ }
+
+ } else if ( Sizzle.filter( cur, [elem] ).length > 0 ) {
+ match = elem;
+ break;
+ }
+ }
+
+ elem = elem[dir];
+ }
+
+ checkSet[i] = match;
+ }
+ }
+}
+
+if ( document.documentElement.contains ) {
+ Sizzle.contains = function( a, b ) {
+ return a !== b && (a.contains ? a.contains(b) : true);
+ };
+
+} else if ( document.documentElement.compareDocumentPosition ) {
+ Sizzle.contains = function( a, b ) {
+ return !!(a.compareDocumentPosition(b) & 16);
+ };
+
+} else {
+ Sizzle.contains = function() {
+ return false;
+ };
+}
+
+Sizzle.isXML = function( elem ) {
+ // documentElement is verified for cases where it doesn't yet exist
+ // (such as loading iframes in IE - #4833)
+ var documentElement = (elem ? elem.ownerDocument || elem : 0).documentElement;
+
+ return documentElement ? documentElement.nodeName !== "HTML" : false;
+};
+
+var posProcess = function( selector, context, seed ) {
+ var match,
+ tmpSet = [],
+ later = "",
+ root = context.nodeType ? [context] : context;
+
+ // Position selectors must be done after the filter
+ // And so must :not(positional) so we move all PSEUDOs to the end
+ while ( (match = Expr.match.PSEUDO.exec( selector )) ) {
+ later += match[0];
+ selector = selector.replace( Expr.match.PSEUDO, "" );
+ }
+
+ selector = Expr.relative[selector] ? selector + "*" : selector;
+
+ for ( var i = 0, l = root.length; i < l; i++ ) {
+ Sizzle( selector, root[i], tmpSet, seed );
+ }
+
+ return Sizzle.filter( later, tmpSet );
+};
+
+// EXPOSE
+// Override sizzle attribute retrieval
+Sizzle.attr = jQuery.attr;
+Sizzle.selectors.attrMap = {};
+jQuery.find = Sizzle;
+jQuery.expr = Sizzle.selectors;
+jQuery.expr[":"] = jQuery.expr.filters;
+jQuery.unique = Sizzle.uniqueSort;
+jQuery.text = Sizzle.getText;
+jQuery.isXMLDoc = Sizzle.isXML;
+jQuery.contains = Sizzle.contains;
+
+
+})();
+
+
+var runtil = /Until$/,
+ rparentsprev = /^(?:parents|prevUntil|prevAll)/,
+ // Note: This RegExp should be improved, or likely pulled from Sizzle
+ rmultiselector = /,/,
+ isSimple = /^.[^:#\[\.,]*$/,
+ slice = Array.prototype.slice,
+ POS = jQuery.expr.match.POS,
+ // methods guaranteed to produce a unique set when starting from a unique set
+ guaranteedUnique = {
+ children: true,
+ contents: true,
+ next: true,
+ prev: true
+ };
+
+jQuery.fn.extend({
+ find: function( selector ) {
+ var self = this,
+ i, l;
+
+ if ( typeof selector !== "string" ) {
+ return jQuery( selector ).filter(function() {
+ for ( i = 0, l = self.length; i < l; i++ ) {
+ if ( jQuery.contains( self[ i ], this ) ) {
+ return true;
+ }
+ }
+ });
+ }
+
+ var ret = this.pushStack( "", "find", selector ),
+ length, n, r;
+
+ for ( i = 0, l = this.length; i < l; i++ ) {
+ length = ret.length;
+ jQuery.find( selector, this[i], ret );
+
+ if ( i > 0 ) {
+ // Make sure that the results are unique
+ for ( n = length; n < ret.length; n++ ) {
+ for ( r = 0; r < length; r++ ) {
+ if ( ret[r] === ret[n] ) {
+ ret.splice(n--, 1);
+ break;
+ }
+ }
+ }
+ }
+ }
+
+ return ret;
+ },
+
+ has: function( target ) {
+ var targets = jQuery( target );
+ return this.filter(function() {
+ for ( var i = 0, l = targets.length; i < l; i++ ) {
+ if ( jQuery.contains( this, targets[i] ) ) {
+ return true;
+ }
+ }
+ });
+ },
+
+ not: function( selector ) {
+ return this.pushStack( winnow(this, selector, false), "not", selector);
+ },
+
+ filter: function( selector ) {
+ return this.pushStack( winnow(this, selector, true), "filter", selector );
+ },
+
+ is: function( selector ) {
+ return !!selector && (
+ typeof selector === "string" ?
+ // If this is a positional selector, check membership in the returned set
+ // so $("p:first").is("p:last") won't return true for a doc with two "p".
+ POS.test( selector ) ?
+ jQuery( selector, this.context ).index( this[0] ) >= 0 :
+ jQuery.filter( selector, this ).length > 0 :
+ this.filter( selector ).length > 0 );
+ },
+
+ closest: function( selectors, context ) {
+ var ret = [], i, l, cur = this[0];
+
+ // Array (deprecated as of jQuery 1.7)
+ if ( jQuery.isArray( selectors ) ) {
+ var level = 1;
+
+ while ( cur && cur.ownerDocument && cur !== context ) {
+ for ( i = 0; i < selectors.length; i++ ) {
+
+ if ( jQuery( cur ).is( selectors[ i ] ) ) {
+ ret.push({ selector: selectors[ i ], elem: cur, level: level });
+ }
+ }
+
+ cur = cur.parentNode;
+ level++;
+ }
+
+ return ret;
+ }
+
+ // String
+ var pos = POS.test( selectors ) || typeof selectors !== "string" ?
+ jQuery( selectors, context || this.context ) :
+ 0;
+
+ for ( i = 0, l = this.length; i < l; i++ ) {
+ cur = this[i];
+
+ while ( cur ) {
+ if ( pos ? pos.index(cur) > -1 : jQuery.find.matchesSelector(cur, selectors) ) {
+ ret.push( cur );
+ break;
+
+ } else {
+ cur = cur.parentNode;
+ if ( !cur || !cur.ownerDocument || cur === context || cur.nodeType === 11 ) {
+ break;
+ }
+ }
+ }
+ }
+
+ ret = ret.length > 1 ? jQuery.unique( ret ) : ret;
+
+ return this.pushStack( ret, "closest", selectors );
+ },
+
+ // Determine the position of an element within
+ // the matched set of elements
+ index: function( elem ) {
+
+ // No argument, return index in parent
+ if ( !elem ) {
+ return ( this[0] && this[0].parentNode ) ? this.prevAll().length : -1;
+ }
+
+ // index in selector
+ if ( typeof elem === "string" ) {
+ return jQuery.inArray( this[0], jQuery( elem ) );
+ }
+
+ // Locate the position of the desired element
+ return jQuery.inArray(
+ // If it receives a jQuery object, the first element is used
+ elem.jquery ? elem[0] : elem, this );
+ },
+
+ add: function( selector, context ) {
+ var set = typeof selector === "string" ?
+ jQuery( selector, context ) :
+ jQuery.makeArray( selector && selector.nodeType ? [ selector ] : selector ),
+ all = jQuery.merge( this.get(), set );
+
+ return this.pushStack( isDisconnected( set[0] ) || isDisconnected( all[0] ) ?
+ all :
+ jQuery.unique( all ) );
+ },
+
+ andSelf: function() {
+ return this.add( this.prevObject );
+ }
+});
+
+// A painfully simple check to see if an element is disconnected
+// from a document (should be improved, where feasible).
+function isDisconnected( node ) {
+ return !node || !node.parentNode || node.parentNode.nodeType === 11;
+}
+
+jQuery.each({
+ parent: function( elem ) {
+ var parent = elem.parentNode;
+ return parent && parent.nodeType !== 11 ? parent : null;
+ },
+ parents: function( elem ) {
+ return jQuery.dir( elem, "parentNode" );
+ },
+ parentsUntil: function( elem, i, until ) {
+ return jQuery.dir( elem, "parentNode", until );
+ },
+ next: function( elem ) {
+ return jQuery.nth( elem, 2, "nextSibling" );
+ },
+ prev: function( elem ) {
+ return jQuery.nth( elem, 2, "previousSibling" );
+ },
+ nextAll: function( elem ) {
+ return jQuery.dir( elem, "nextSibling" );
+ },
+ prevAll: function( elem ) {
+ return jQuery.dir( elem, "previousSibling" );
+ },
+ nextUntil: function( elem, i, until ) {
+ return jQuery.dir( elem, "nextSibling", until );
+ },
+ prevUntil: function( elem, i, until ) {
+ return jQuery.dir( elem, "previousSibling", until );
+ },
+ siblings: function( elem ) {
+ return jQuery.sibling( elem.parentNode.firstChild, elem );
+ },
+ children: function( elem ) {
+ return jQuery.sibling( elem.firstChild );
+ },
+ contents: function( elem ) {
+ return jQuery.nodeName( elem, "iframe" ) ?
+ elem.contentDocument || elem.contentWindow.document :
+ jQuery.makeArray( elem.childNodes );
+ }
+}, function( name, fn ) {
+ jQuery.fn[ name ] = function( until, selector ) {
+ var ret = jQuery.map( this, fn, until ),
+ // The variable 'args' was introduced in
+ // https://github.com/jquery/jquery/commit/52a0238
+ // to work around a bug in Chrome 10 (Dev) and should be removed when the bug is fixed.
+ // http://code.google.com/p/v8/issues/detail?id=1050
+ args = slice.call(arguments);
+
+ if ( !runtil.test( name ) ) {
+ selector = until;
+ }
+
+ if ( selector && typeof selector === "string" ) {
+ ret = jQuery.filter( selector, ret );
+ }
+
+ ret = this.length > 1 && !guaranteedUnique[ name ] ? jQuery.unique( ret ) : ret;
+
+ if ( (this.length > 1 || rmultiselector.test( selector )) && rparentsprev.test( name ) ) {
+ ret = ret.reverse();
+ }
+
+ return this.pushStack( ret, name, args.join(",") );
+ };
+});
+
+jQuery.extend({
+ filter: function( expr, elems, not ) {
+ if ( not ) {
+ expr = ":not(" + expr + ")";
+ }
+
+ return elems.length === 1 ?
+ jQuery.find.matchesSelector(elems[0], expr) ? [ elems[0] ] : [] :
+ jQuery.find.matches(expr, elems);
+ },
+
+ dir: function( elem, dir, until ) {
+ var matched = [],
+ cur = elem[ dir ];
+
+ while ( cur && cur.nodeType !== 9 && (until === undefined || cur.nodeType !== 1 || !jQuery( cur ).is( until )) ) {
+ if ( cur.nodeType === 1 ) {
+ matched.push( cur );
+ }
+ cur = cur[dir];
+ }
+ return matched;
+ },
+
+ nth: function( cur, result, dir, elem ) {
+ result = result || 1;
+ var num = 0;
+
+ for ( ; cur; cur = cur[dir] ) {
+ if ( cur.nodeType === 1 && ++num === result ) {
+ break;
+ }
+ }
+
+ return cur;
+ },
+
+ sibling: function( n, elem ) {
+ var r = [];
+
+ for ( ; n; n = n.nextSibling ) {
+ if ( n.nodeType === 1 && n !== elem ) {
+ r.push( n );
+ }
+ }
+
+ return r;
+ }
+});
+
+// Implement the identical functionality for filter and not
+function winnow( elements, qualifier, keep ) {
+
+ // Can't pass null or undefined to indexOf in Firefox 4
+ // Set to 0 to skip string check
+ qualifier = qualifier || 0;
+
+ if ( jQuery.isFunction( qualifier ) ) {
+ return jQuery.grep(elements, function( elem, i ) {
+ var retVal = !!qualifier.call( elem, i, elem );
+ return retVal === keep;
+ });
+
+ } else if ( qualifier.nodeType ) {
+ return jQuery.grep(elements, function( elem, i ) {
+ return (elem === qualifier) === keep;
+ });
+
+ } else if ( typeof qualifier === "string" ) {
+ var filtered = jQuery.grep(elements, function( elem ) {
+ return elem.nodeType === 1;
+ });
+
+ if ( isSimple.test( qualifier ) ) {
+ return jQuery.filter(qualifier, filtered, !keep);
+ } else {
+ qualifier = jQuery.filter( qualifier, filtered );
+ }
+ }
+
+ return jQuery.grep(elements, function( elem, i ) {
+ return (jQuery.inArray( elem, qualifier ) >= 0) === keep;
+ });
+}
+
+
+
+
+function createSafeFragment( document ) {
+ var nodeNames = (
+ "abbr article aside audio canvas datalist details figcaption figure footer " +
+ "header hgroup mark meter nav output progress section summary time video"
+ ).split( " " ),
+ safeFrag = document.createDocumentFragment();
+
+ if ( safeFrag.createElement ) {
+ while ( nodeNames.length ) {
+ safeFrag.createElement(
+ nodeNames.pop()
+ );
+ }
+ }
+ return safeFrag;
+}
+
+var rinlinejQuery = / jQuery\d+="(?:\d+|null)"/g,
+ rleadingWhitespace = /^\s+/,
+ rxhtmlTag = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/ig,
+ rtagName = /<([\w:]+)/,
+ rtbody = /<tbody/i,
+ rhtml = /<|&#?\w+;/,
+ rnoInnerhtml = /<(?:script|style)/i,
+ rnocache = /<(?:script|object|embed|option|style)/i,
+ // checked="checked" or checked
+ rchecked = /checked\s*(?:[^=]|=\s*.checked.)/i,
+ rscriptType = /\/(java|ecma)script/i,
+ rcleanScript = /^\s*<!(?:\[CDATA\[|\-\-)/,
+ wrapMap = {
+ option: [ 1, "<select multiple='multiple'>", "</select>" ],
+ legend: [ 1, "<fieldset>", "</fieldset>" ],
+ thead: [ 1, "<table>", "</table>" ],
+ tr: [ 2, "<table><tbody>", "</tbody></table>" ],
+ td: [ 3, "<table><tbody><tr>", "</tr></tbody></table>" ],
+ col: [ 2, "<table><tbody></tbody><colgroup>", "</colgroup></table>" ],
+ area: [ 1, "<map>", "</map>" ],
+ _default: [ 0, "", "" ]
+ },
+ safeFragment = createSafeFragment( document );
+
+wrapMap.optgroup = wrapMap.option;
+wrapMap.tbody = wrapMap.tfoot = wrapMap.colgroup = wrapMap.caption = wrapMap.thead;
+wrapMap.th = wrapMap.td;
+
+// IE can't serialize <link> and <script> tags normally
+if ( !jQuery.support.htmlSerialize ) {
+ wrapMap._default = [ 1, "div<div>", "</div>" ];
+}
+
+jQuery.fn.extend({
+ text: function( text ) {
+ if ( jQuery.isFunction(text) ) {
+ return this.each(function(i) {
+ var self = jQuery( this );
+
+ self.text( text.call(this, i, self.text()) );
+ });
+ }
+
+ if ( typeof text !== "object" && text !== undefined ) {
+ return this.empty().append( (this[0] && this[0].ownerDocument || document).createTextNode( text ) );
+ }
+
+ return jQuery.text( this );
+ },
+
+ wrapAll: function( html ) {
+ if ( jQuery.isFunction( html ) ) {
+ return this.each(function(i) {
+ jQuery(this).wrapAll( html.call(this, i) );
+ });
+ }
+
+ if ( this[0] ) {
+ // The elements to wrap the target around
+ var wrap = jQuery( html, this[0].ownerDocument ).eq(0).clone(true);
+
+ if ( this[0].parentNode ) {
+ wrap.insertBefore( this[0] );
+ }
+
+ wrap.map(function() {
+ var elem = this;
+
+ while ( elem.firstChild && elem.firstChild.nodeType === 1 ) {
+ elem = elem.firstChild;
+ }
+
+ return elem;
+ }).append( this );
+ }
+
+ return this;
+ },
+
+ wrapInner: function( html ) {
+ if ( jQuery.isFunction( html ) ) {
+ return this.each(function(i) {
+ jQuery(this).wrapInner( html.call(this, i) );
+ });
+ }
+
+ return this.each(function() {
+ var self = jQuery( this ),
+ contents = self.contents();
+
+ if ( contents.length ) {
+ contents.wrapAll( html );
+
+ } else {
+ self.append( html );
+ }
+ });
+ },
+
+ wrap: function( html ) {
+ return this.each(function() {
+ jQuery( this ).wrapAll( html );
+ });
+ },
+
+ unwrap: function() {
+ return this.parent().each(function() {
+ if ( !jQuery.nodeName( this, "body" ) ) {
+ jQuery( this ).replaceWith( this.childNodes );
+ }
+ }).end();
+ },
+
+ append: function() {
+ return this.domManip(arguments, true, function( elem ) {
+ if ( this.nodeType === 1 ) {
+ this.appendChild( elem );
+ }
+ });
+ },
+
+ prepend: function() {
+ return this.domManip(arguments, true, function( elem ) {
+ if ( this.nodeType === 1 ) {
+ this.insertBefore( elem, this.firstChild );
+ }
+ });
+ },
+
+ before: function() {
+ if ( this[0] && this[0].parentNode ) {
+ return this.domManip(arguments, false, function( elem ) {
+ this.parentNode.insertBefore( elem, this );
+ });
+ } else if ( arguments.length ) {
+ var set = jQuery(arguments[0]);
+ set.push.apply( set, this.toArray() );
+ return this.pushStack( set, "before", arguments );
+ }
+ },
+
+ after: function() {
+ if ( this[0] && this[0].parentNode ) {
+ return this.domManip(arguments, false, function( elem ) {
+ this.parentNode.insertBefore( elem, this.nextSibling );
+ });
+ } else if ( arguments.length ) {
+ var set = this.pushStack( this, "after", arguments );
+ set.push.apply( set, jQuery(arguments[0]).toArray() );
+ return set;
+ }
+ },
+
+ // keepData is for internal use only--do not document
+ remove: function( selector, keepData ) {
+ for ( var i = 0, elem; (elem = this[i]) != null; i++ ) {
+ if ( !selector || jQuery.filter( selector, [ elem ] ).length ) {
+ if ( !keepData && elem.nodeType === 1 ) {
+ jQuery.cleanData( elem.getElementsByTagName("*") );
+ jQuery.cleanData( [ elem ] );
+ }
+
+ if ( elem.parentNode ) {
+ elem.parentNode.removeChild( elem );
+ }
+ }
+ }
+
+ return this;
+ },
+
+ empty: function() {
+ for ( var i = 0, elem; (elem = this[i]) != null; i++ ) {
+ // Remove element nodes and prevent memory leaks
+ if ( elem.nodeType === 1 ) {
+ jQuery.cleanData( elem.getElementsByTagName("*") );
+ }
+
+ // Remove any remaining nodes
+ while ( elem.firstChild ) {
+ elem.removeChild( elem.firstChild );
+ }
+ }
+
+ return this;
+ },
+
+ clone: function( dataAndEvents, deepDataAndEvents ) {
+ dataAndEvents = dataAndEvents == null ? false : dataAndEvents;
+ deepDataAndEvents = deepDataAndEvents == null ? dataAndEvents : deepDataAndEvents;
+
+ return this.map( function () {
+ return jQuery.clone( this, dataAndEvents, deepDataAndEvents );
+ });
+ },
+
+ html: function( value ) {
+ if ( value === undefined ) {
+ return this[0] && this[0].nodeType === 1 ?
+ this[0].innerHTML.replace(rinlinejQuery, "") :
+ null;
+
+ // See if we can take a shortcut and just use innerHTML
+ } else if ( typeof value === "string" && !rnoInnerhtml.test( value ) &&
+ (jQuery.support.leadingWhitespace || !rleadingWhitespace.test( value )) &&
+ !wrapMap[ (rtagName.exec( value ) || ["", ""])[1].toLowerCase() ] ) {
+
+ value = value.replace(rxhtmlTag, "<$1></$2>");
+
+ try {
+ for ( var i = 0, l = this.length; i < l; i++ ) {
+ // Remove element nodes and prevent memory leaks
+ if ( this[i].nodeType === 1 ) {
+ jQuery.cleanData( this[i].getElementsByTagName("*") );
+ this[i].innerHTML = value;
+ }
+ }
+
+ // If using innerHTML throws an exception, use the fallback method
+ } catch(e) {
+ this.empty().append( value );
+ }
+
+ } else if ( jQuery.isFunction( value ) ) {
+ this.each(function(i){
+ var self = jQuery( this );
+
+ self.html( value.call(this, i, self.html()) );
+ });
+
+ } else {
+ this.empty().append( value );
+ }
+
+ return this;
+ },
+
+ replaceWith: function( value ) {
+ if ( this[0] && this[0].parentNode ) {
+ // Make sure that the elements are removed from the DOM before they are inserted
+ // this can help fix replacing a parent with child elements
+ if ( jQuery.isFunction( value ) ) {
+ return this.each(function(i) {
+ var self = jQuery(this), old = self.html();
+ self.replaceWith( value.call( this, i, old ) );
+ });
+ }
+
+ if ( typeof value !== "string" ) {
+ value = jQuery( value ).detach();
+ }
+
+ return this.each(function() {
+ var next = this.nextSibling,
+ parent = this.parentNode;
+
+ jQuery( this ).remove();
+
+ if ( next ) {
+ jQuery(next).before( value );
+ } else {
+ jQuery(parent).append( value );
+ }
+ });
+ } else {
+ return this.length ?
+ this.pushStack( jQuery(jQuery.isFunction(value) ? value() : value), "replaceWith", value ) :
+ this;
+ }
+ },
+
+ detach: function( selector ) {
+ return this.remove( selector, true );
+ },
+
+ domManip: function( args, table, callback ) {
+ var results, first, fragment, parent,
+ value = args[0],
+ scripts = [];
+
+ // We can't cloneNode fragments that contain checked, in WebKit
+ if ( !jQuery.support.checkClone && arguments.length === 3 && typeof value === "string" && rchecked.test( value ) ) {
+ return this.each(function() {
+ jQuery(this).domManip( args, table, callback, true );
+ });
+ }
+
+ if ( jQuery.isFunction(value) ) {
+ return this.each(function(i) {
+ var self = jQuery(this);
+ args[0] = value.call(this, i, table ? self.html() : undefined);
+ self.domManip( args, table, callback );
+ });
+ }
+
+ if ( this[0] ) {
+ parent = value && value.parentNode;
+
+ // If we're in a fragment, just use that instead of building a new one
+ if ( jQuery.support.parentNode && parent && parent.nodeType === 11 && parent.childNodes.length === this.length ) {
+ results = { fragment: parent };
+
+ } else {
+ results = jQuery.buildFragment( args, this, scripts );
+ }
+
+ fragment = results.fragment;
+
+ if ( fragment.childNodes.length === 1 ) {
+ first = fragment = fragment.firstChild;
+ } else {
+ first = fragment.firstChild;
+ }
+
+ if ( first ) {
+ table = table && jQuery.nodeName( first, "tr" );
+
+ for ( var i = 0, l = this.length, lastIndex = l - 1; i < l; i++ ) {
+ callback.call(
+ table ?
+ root(this[i], first) :
+ this[i],
+ // Make sure that we do not leak memory by inadvertently discarding
+ // the original fragment (which might have attached data) instead of
+ // using it; in addition, use the original fragment object for the last
+ // item instead of first because it can end up being emptied incorrectly
+ // in certain situations (Bug #8070).
+ // Fragments from the fragment cache must always be cloned and never used
+ // in place.
+ results.cacheable || (l > 1 && i < lastIndex) ?
+ jQuery.clone( fragment, true, true ) :
+ fragment
+ );
+ }
+ }
+
+ if ( scripts.length ) {
+ jQuery.each( scripts, evalScript );
+ }
+ }
+
+ return this;
+ }
+});
+
+function root( elem, cur ) {
+ return jQuery.nodeName(elem, "table") ?
+ (elem.getElementsByTagName("tbody")[0] ||
+ elem.appendChild(elem.ownerDocument.createElement("tbody"))) :
+ elem;
+}
+
+function cloneCopyEvent( src, dest ) {
+
+ if ( dest.nodeType !== 1 || !jQuery.hasData( src ) ) {
+ return;
+ }
+
+ var type, i, l,
+ oldData = jQuery._data( src ),
+ curData = jQuery._data( dest, oldData ),
+ events = oldData.events;
+
+ if ( events ) {
+ delete curData.handle;
+ curData.events = {};
+
+ for ( type in events ) {
+ for ( i = 0, l = events[ type ].length; i < l; i++ ) {
+ jQuery.event.add( dest, type + ( events[ type ][ i ].namespace ? "." : "" ) + events[ type ][ i ].namespace, events[ type ][ i ], events[ type ][ i ].data );
+ }
+ }
+ }
+
+ // make the cloned public data object a copy from the original
+ if ( curData.data ) {
+ curData.data = jQuery.extend( {}, curData.data );
+ }
+}
+
+function cloneFixAttributes( src, dest ) {
+ var nodeName;
+
+ // We do not need to do anything for non-Elements
+ if ( dest.nodeType !== 1 ) {
+ return;
+ }
+
+ // clearAttributes removes the attributes, which we don't want,
+ // but also removes the attachEvent events, which we *do* want
+ if ( dest.clearAttributes ) {
+ dest.clearAttributes();
+ }
+
+ // mergeAttributes, in contrast, only merges back on the
+ // original attributes, not the events
+ if ( dest.mergeAttributes ) {
+ dest.mergeAttributes( src );
+ }
+
+ nodeName = dest.nodeName.toLowerCase();
+
+ // IE6-8 fail to clone children inside object elements that use
+ // the proprietary classid attribute value (rather than the type
+ // attribute) to identify the type of content to display
+ if ( nodeName === "object" ) {
+ dest.outerHTML = src.outerHTML;
+
+ } else if ( nodeName === "input" && (src.type === "checkbox" || src.type === "radio") ) {
+ // IE6-8 fails to persist the checked state of a cloned checkbox
+ // or radio button. Worse, IE6-7 fail to give the cloned element
+ // a checked appearance if the defaultChecked value isn't also set
+ if ( src.checked ) {
+ dest.defaultChecked = dest.checked = src.checked;
+ }
+
+ // IE6-7 get confused and end up setting the value of a cloned
+ // checkbox/radio button to an empty string instead of "on"
+ if ( dest.value !== src.value ) {
+ dest.value = src.value;
+ }
+
+ // IE6-8 fails to return the selected option to the default selected
+ // state when cloning options
+ } else if ( nodeName === "option" ) {
+ dest.selected = src.defaultSelected;
+
+ // IE6-8 fails to set the defaultValue to the correct value when
+ // cloning other types of input fields
+ } else if ( nodeName === "input" || nodeName === "textarea" ) {
+ dest.defaultValue = src.defaultValue;
+ }
+
+ // Event data gets referenced instead of copied if the expando
+ // gets copied too
+ dest.removeAttribute( jQuery.expando );
+}
+
+jQuery.buildFragment = function( args, nodes, scripts ) {
+ var fragment, cacheable, cacheresults, doc;
+
+ // nodes may contain either an explicit document object,
+ // a jQuery collection or context object.
+ // If nodes[0] contains a valid object to assign to doc
+ if ( nodes && nodes[0] ) {
+ doc = nodes[0].ownerDocument || nodes[0];
+ }
+
+ // Ensure that an attr object doesn't incorrectly stand in as a document object
+ // Chrome and Firefox seem to allow this to occur and will throw exception
+ // Fixes #8950
+ if ( !doc.createDocumentFragment ) {
+ doc = document;
+ }
+
+ // Only cache "small" (1/2 KB) HTML strings that are associated with the main document
+ // Cloning options loses the selected state, so don't cache them
+ // IE 6 doesn't like it when you put <object> or <embed> elements in a fragment
+ // Also, WebKit does not clone 'checked' attributes on cloneNode, so don't cache
+ if ( args.length === 1 && typeof args[0] === "string" && args[0].length < 512 && doc === document &&
+ args[0].charAt(0) === "<" && !rnocache.test( args[0] ) && (jQuery.support.checkClone || !rchecked.test( args[0] )) ) {
+
+ cacheable = true;
+
+ cacheresults = jQuery.fragments[ args[0] ];
+ if ( cacheresults && cacheresults !== 1 ) {
+ fragment = cacheresults;
+ }
+ }
+
+ if ( !fragment ) {
+ fragment = doc.createDocumentFragment();
+ jQuery.clean( args, doc, fragment, scripts );
+ }
+
+ if ( cacheable ) {
+ jQuery.fragments[ args[0] ] = cacheresults ? fragment : 1;
+ }
+
+ return { fragment: fragment, cacheable: cacheable };
+};
+
+jQuery.fragments = {};
+
+jQuery.each({
+ appendTo: "append",
+ prependTo: "prepend",
+ insertBefore: "before",
+ insertAfter: "after",
+ replaceAll: "replaceWith"
+}, function( name, original ) {
+ jQuery.fn[ name ] = function( selector ) {
+ var ret = [],
+ insert = jQuery( selector ),
+ parent = this.length === 1 && this[0].parentNode;
+
+ if ( parent && parent.nodeType === 11 && parent.childNodes.length === 1 && insert.length === 1 ) {
+ insert[ original ]( this[0] );
+ return this;
+
+ } else {
+ for ( var i = 0, l = insert.length; i < l; i++ ) {
+ var elems = (i > 0 ? this.clone(true) : this).get();
+ jQuery( insert[i] )[ original ]( elems );
+ ret = ret.concat( elems );
+ }
+
+ return this.pushStack( ret, name, insert.selector );
+ }
+ };
+});
+
+function getAll( elem ) {
+ if ( typeof elem.getElementsByTagName !== "undefined" ) {
+ return elem.getElementsByTagName( "*" );
+
+ } else if ( typeof elem.querySelectorAll !== "undefined" ) {
+ return elem.querySelectorAll( "*" );
+
+ } else {
+ return [];
+ }
+}
+
+// Used in clean, fixes the defaultChecked property
+function fixDefaultChecked( elem ) {
+ if ( elem.type === "checkbox" || elem.type === "radio" ) {
+ elem.defaultChecked = elem.checked;
+ }
+}
+// Finds all inputs and passes them to fixDefaultChecked
+function findInputs( elem ) {
+ var nodeName = (elem.nodeName || "").toLowerCase();
+ if ( nodeName === "input" ) {
+ fixDefaultChecked( elem );
+ // Skip scripts, get other children
+ } else if ( nodeName !== "script" && typeof elem.getElementsByTagName !== "undefined" ) {
+ jQuery.grep( elem.getElementsByTagName("input"), fixDefaultChecked );
+ }
+}
+
+jQuery.extend({
+ clone: function( elem, dataAndEvents, deepDataAndEvents ) {
+ var clone = elem.cloneNode(true),
+ srcElements,
+ destElements,
+ i;
+
+ if ( (!jQuery.support.noCloneEvent || !jQuery.support.noCloneChecked) &&
+ (elem.nodeType === 1 || elem.nodeType === 11) && !jQuery.isXMLDoc(elem) ) {
+ // IE copies events bound via attachEvent when using cloneNode.
+ // Calling detachEvent on the clone will also remove the events
+ // from the original. In order to get around this, we use some
+ // proprietary methods to clear the events. Thanks to MooTools
+ // guys for this hotness.
+
+ cloneFixAttributes( elem, clone );
+
+ // Using Sizzle here is crazy slow, so we use getElementsByTagName
+ // instead
+ srcElements = getAll( elem );
+ destElements = getAll( clone );
+
+ // Weird iteration because IE will replace the length property
+ // with an element if you are cloning the body and one of the
+ // elements on the page has a name or id of "length"
+ for ( i = 0; srcElements[i]; ++i ) {
+ // Ensure that the destination node is not null; Fixes #9587
+ if ( destElements[i] ) {
+ cloneFixAttributes( srcElements[i], destElements[i] );
+ }
+ }
+ }
+
+ // Copy the events from the original to the clone
+ if ( dataAndEvents ) {
+ cloneCopyEvent( elem, clone );
+
+ if ( deepDataAndEvents ) {
+ srcElements = getAll( elem );
+ destElements = getAll( clone );
+
+ for ( i = 0; srcElements[i]; ++i ) {
+ cloneCopyEvent( srcElements[i], destElements[i] );
+ }
+ }
+ }
+
+ srcElements = destElements = null;
+
+ // Return the cloned set
+ return clone;
+ },
+
+ clean: function( elems, context, fragment, scripts ) {
+ var checkScriptType;
+
+ context = context || document;
+
+ // !context.createElement fails in IE with an error but returns typeof 'object'
+ if ( typeof context.createElement === "undefined" ) {
+ context = context.ownerDocument || context[0] && context[0].ownerDocument || document;
+ }
+
+ var ret = [], j;
+
+ for ( var i = 0, elem; (elem = elems[i]) != null; i++ ) {
+ if ( typeof elem === "number" ) {
+ elem += "";
+ }
+
+ if ( !elem ) {
+ continue;
+ }
+
+ // Convert html string into DOM nodes
+ if ( typeof elem === "string" ) {
+ if ( !rhtml.test( elem ) ) {
+ elem = context.createTextNode( elem );
+ } else {
+ // Fix "XHTML"-style tags in all browsers
+ elem = elem.replace(rxhtmlTag, "<$1></$2>");
+
+ // Trim whitespace, otherwise indexOf won't work as expected
+ var tag = (rtagName.exec( elem ) || ["", ""])[1].toLowerCase(),
+ wrap = wrapMap[ tag ] || wrapMap._default,
+ depth = wrap[0],
+ div = context.createElement("div");
+
+ // Append wrapper element to unknown element safe doc fragment
+ if ( context === document ) {
+ // Use the fragment we've already created for this document
+ safeFragment.appendChild( div );
+ } else {
+ // Use a fragment created with the owner document
+ createSafeFragment( context ).appendChild( div );
+ }
+
+ // Go to html and back, then peel off extra wrappers
+ div.innerHTML = wrap[1] + elem + wrap[2];
+
+ // Move to the right depth
+ while ( depth-- ) {
+ div = div.lastChild;
+ }
+
+ // Remove IE's autoinserted <tbody> from table fragments
+ if ( !jQuery.support.tbody ) {
+
+ // String was a <table>, *may* have spurious <tbody>
+ var hasBody = rtbody.test(elem),
+ tbody = tag === "table" && !hasBody ?
+ div.firstChild && div.firstChild.childNodes :
+
+ // String was a bare <thead> or <tfoot>
+ wrap[1] === "<table>" && !hasBody ?
+ div.childNodes :
+ [];
+
+ for ( j = tbody.length - 1; j >= 0 ; --j ) {
+ if ( jQuery.nodeName( tbody[ j ], "tbody" ) && !tbody[ j ].childNodes.length ) {
+ tbody[ j ].parentNode.removeChild( tbody[ j ] );
+ }
+ }
+ }
+
+ // IE completely kills leading whitespace when innerHTML is used
+ if ( !jQuery.support.leadingWhitespace && rleadingWhitespace.test( elem ) ) {
+ div.insertBefore( context.createTextNode( rleadingWhitespace.exec(elem)[0] ), div.firstChild );
+ }
+
+ elem = div.childNodes;
+ }
+ }
+
+ // Resets defaultChecked for any radios and checkboxes
+ // about to be appended to the DOM in IE 6/7 (#8060)
+ var len;
+ if ( !jQuery.support.appendChecked ) {
+ if ( elem[0] && typeof (len = elem.length) === "number" ) {
+ for ( j = 0; j < len; j++ ) {
+ findInputs( elem[j] );
+ }
+ } else {
+ findInputs( elem );
+ }
+ }
+
+ if ( elem.nodeType ) {
+ ret.push( elem );
+ } else {
+ ret = jQuery.merge( ret, elem );
+ }
+ }
+
+ if ( fragment ) {
+ checkScriptType = function( elem ) {
+ return !elem.type || rscriptType.test( elem.type );
+ };
+ for ( i = 0; ret[i]; i++ ) {
+ if ( scripts && jQuery.nodeName( ret[i], "script" ) && (!ret[i].type || ret[i].type.toLowerCase() === "text/javascript") ) {
+ scripts.push( ret[i].parentNode ? ret[i].parentNode.removeChild( ret[i] ) : ret[i] );
+
+ } else {
+ if ( ret[i].nodeType === 1 ) {
+ var jsTags = jQuery.grep( ret[i].getElementsByTagName( "script" ), checkScriptType );
+
+ ret.splice.apply( ret, [i + 1, 0].concat( jsTags ) );
+ }
+ fragment.appendChild( ret[i] );
+ }
+ }
+ }
+
+ return ret;
+ },
+
+ cleanData: function( elems ) {
+ var data, id,
+ cache = jQuery.cache,
+ special = jQuery.event.special,
+ deleteExpando = jQuery.support.deleteExpando;
+
+ for ( var i = 0, elem; (elem = elems[i]) != null; i++ ) {
+ if ( elem.nodeName && jQuery.noData[elem.nodeName.toLowerCase()] ) {
+ continue;
+ }
+
+ id = elem[ jQuery.expando ];
+
+ if ( id ) {
+ data = cache[ id ];
+
+ if ( data && data.events ) {
+ for ( var type in data.events ) {
+ if ( special[ type ] ) {
+ jQuery.event.remove( elem, type );
+
+ // This is a shortcut to avoid jQuery.event.remove's overhead
+ } else {
+ jQuery.removeEvent( elem, type, data.handle );
+ }
+ }
+
+ // Null the DOM reference to avoid IE6/7/8 leak (#7054)
+ if ( data.handle ) {
+ data.handle.elem = null;
+ }
+ }
+
+ if ( deleteExpando ) {
+ delete elem[ jQuery.expando ];
+
+ } else if ( elem.removeAttribute ) {
+ elem.removeAttribute( jQuery.expando );
+ }
+
+ delete cache[ id ];
+ }
+ }
+ }
+});
+
+function evalScript( i, elem ) {
+ if ( elem.src ) {
+ jQuery.ajax({
+ url: elem.src,
+ async: false,
+ dataType: "script"
+ });
+ } else {
+ jQuery.globalEval( ( elem.text || elem.textContent || elem.innerHTML || "" ).replace( rcleanScript, "/*$0*/" ) );
+ }
+
+ if ( elem.parentNode ) {
+ elem.parentNode.removeChild( elem );
+ }
+}
+
+
+
+
+var ralpha = /alpha\([^)]*\)/i,
+ ropacity = /opacity=([^)]*)/,
+ // fixed for IE9, see #8346
+ rupper = /([A-Z]|^ms)/g,
+ rnumpx = /^-?\d+(?:px)?$/i,
+ rnum = /^-?\d/,
+ rrelNum = /^([\-+])=([\-+.\de]+)/,
+
+ cssShow = { position: "absolute", visibility: "hidden", display: "block" },
+ cssWidth = [ "Left", "Right" ],
+ cssHeight = [ "Top", "Bottom" ],
+ curCSS,
+
+ getComputedStyle,
+ currentStyle;
+
+jQuery.fn.css = function( name, value ) {
+ // Setting 'undefined' is a no-op
+ if ( arguments.length === 2 && value === undefined ) {
+ return this;
+ }
+
+ return jQuery.access( this, name, value, true, function( elem, name, value ) {
+ return value !== undefined ?
+ jQuery.style( elem, name, value ) :
+ jQuery.css( elem, name );
+ });
+};
+
+jQuery.extend({
+ // Add in style property hooks for overriding the default
+ // behavior of getting and setting a style property
+ cssHooks: {
+ opacity: {
+ get: function( elem, computed ) {
+ if ( computed ) {
+ // We should always get a number back from opacity
+ var ret = curCSS( elem, "opacity", "opacity" );
+ return ret === "" ? "1" : ret;
+
+ } else {
+ return elem.style.opacity;
+ }
+ }
+ }
+ },
+
+ // Exclude the following css properties to add px
+ cssNumber: {
+ "fillOpacity": true,
+ "fontWeight": true,
+ "lineHeight": true,
+ "opacity": true,
+ "orphans": true,
+ "widows": true,
+ "zIndex": true,
+ "zoom": true
+ },
+
+ // Add in properties whose names you wish to fix before
+ // setting or getting the value
+ cssProps: {
+ // normalize float css property
+ "float": jQuery.support.cssFloat ? "cssFloat" : "styleFloat"
+ },
+
+ // Get and set the style property on a DOM Node
+ style: function( elem, name, value, extra ) {
+ // Don't set styles on text and comment nodes
+ if ( !elem || elem.nodeType === 3 || elem.nodeType === 8 || !elem.style ) {
+ return;
+ }
+
+ // Make sure that we're working with the right name
+ var ret, type, origName = jQuery.camelCase( name ),
+ style = elem.style, hooks = jQuery.cssHooks[ origName ];
+
+ name = jQuery.cssProps[ origName ] || origName;
+
+ // Check if we're setting a value
+ if ( value !== undefined ) {
+ type = typeof value;
+
+ // convert relative number strings (+= or -=) to relative numbers. #7345
+ if ( type === "string" && (ret = rrelNum.exec( value )) ) {
+ value = ( +( ret[1] + 1) * +ret[2] ) + parseFloat( jQuery.css( elem, name ) );
+ // Fixes bug #9237
+ type = "number";
+ }
+
+ // Make sure that NaN and null values aren't set. See: #7116
+ if ( value == null || type === "number" && isNaN( value ) ) {
+ return;
+ }
+
+ // If a number was passed in, add 'px' to the (except for certain CSS properties)
+ if ( type === "number" && !jQuery.cssNumber[ origName ] ) {
+ value += "px";
+ }
+
+ // If a hook was provided, use that value, otherwise just set the specified value
+ if ( !hooks || !("set" in hooks) || (value = hooks.set( elem, value )) !== undefined ) {
+ // Wrapped to prevent IE from throwing errors when 'invalid' values are provided
+ // Fixes bug #5509
+ try {
+ style[ name ] = value;
+ } catch(e) {}
+ }
+
+ } else {
+ // If a hook was provided get the non-computed value from there
+ if ( hooks && "get" in hooks && (ret = hooks.get( elem, false, extra )) !== undefined ) {
+ return ret;
+ }
+
+ // Otherwise just get the value from the style object
+ return style[ name ];
+ }
+ },
+
+ css: function( elem, name, extra ) {
+ var ret, hooks;
+
+ // Make sure that we're working with the right name
+ name = jQuery.camelCase( name );
+ hooks = jQuery.cssHooks[ name ];
+ name = jQuery.cssProps[ name ] || name;
+
+ // cssFloat needs a special treatment
+ if ( name === "cssFloat" ) {
+ name = "float";
+ }
+
+ // If a hook was provided get the computed value from there
+ if ( hooks && "get" in hooks && (ret = hooks.get( elem, true, extra )) !== undefined ) {
+ return ret;
+
+ // Otherwise, if a way to get the computed value exists, use that
+ } else if ( curCSS ) {
+ return curCSS( elem, name );
+ }
+ },
+
+ // A method for quickly swapping in/out CSS properties to get correct calculations
+ swap: function( elem, options, callback ) {
+ var old = {};
+
+ // Remember the old values, and insert the new ones
+ for ( var name in options ) {
+ old[ name ] = elem.style[ name ];
+ elem.style[ name ] = options[ name ];
+ }
+
+ callback.call( elem );
+
+ // Revert the old values
+ for ( name in options ) {
+ elem.style[ name ] = old[ name ];
+ }
+ }
+});
+
+// DEPRECATED, Use jQuery.css() instead
+jQuery.curCSS = jQuery.css;
+
+jQuery.each(["height", "width"], function( i, name ) {
+ jQuery.cssHooks[ name ] = {
+ get: function( elem, computed, extra ) {
+ var val;
+
+ if ( computed ) {
+ if ( elem.offsetWidth !== 0 ) {
+ return getWH( elem, name, extra );
+ } else {
+ jQuery.swap( elem, cssShow, function() {
+ val = getWH( elem, name, extra );
+ });
+ }
+
+ return val;
+ }
+ },
+
+ set: function( elem, value ) {
+ if ( rnumpx.test( value ) ) {
+ // ignore negative width and height values #1599
+ value = parseFloat( value );
+
+ if ( value >= 0 ) {
+ return value + "px";
+ }
+
+ } else {
+ return value;
+ }
+ }
+ };
+});
+
+if ( !jQuery.support.opacity ) {
+ jQuery.cssHooks.opacity = {
+ get: function( elem, computed ) {
+ // IE uses filters for opacity
+ return ropacity.test( (computed && elem.currentStyle ? elem.currentStyle.filter : elem.style.filter) || "" ) ?
+ ( parseFloat( RegExp.$1 ) / 100 ) + "" :
+ computed ? "1" : "";
+ },
+
+ set: function( elem, value ) {
+ var style = elem.style,
+ currentStyle = elem.currentStyle,
+ opacity = jQuery.isNumeric( value ) ? "alpha(opacity=" + value * 100 + ")" : "",
+ filter = currentStyle && currentStyle.filter || style.filter || "";
+
+ // IE has trouble with opacity if it does not have layout
+ // Force it by setting the zoom level
+ style.zoom = 1;
+
+ // if setting opacity to 1, and no other filters exist - attempt to remove filter attribute #6652
+ if ( value >= 1 && jQuery.trim( filter.replace( ralpha, "" ) ) === "" ) {
+
+ // Setting style.filter to null, "" & " " still leave "filter:" in the cssText
+ // if "filter:" is present at all, clearType is disabled, we want to avoid this
+ // style.removeAttribute is IE Only, but so apparently is this code path...
+ style.removeAttribute( "filter" );
+
+ // if there there is no filter style applied in a css rule, we are done
+ if ( currentStyle && !currentStyle.filter ) {
+ return;
+ }
+ }
+
+ // otherwise, set new filter values
+ style.filter = ralpha.test( filter ) ?
+ filter.replace( ralpha, opacity ) :
+ filter + " " + opacity;
+ }
+ };
+}
+
+jQuery(function() {
+ // This hook cannot be added until DOM ready because the support test
+ // for it is not run until after DOM ready
+ if ( !jQuery.support.reliableMarginRight ) {
+ jQuery.cssHooks.marginRight = {
+ get: function( elem, computed ) {
+ // WebKit Bug 13343 - getComputedStyle returns wrong value for margin-right
+ // Work around by temporarily setting element display to inline-block
+ var ret;
+ jQuery.swap( elem, { "display": "inline-block" }, function() {
+ if ( computed ) {
+ ret = curCSS( elem, "margin-right", "marginRight" );
+ } else {
+ ret = elem.style.marginRight;
+ }
+ });
+ return ret;
+ }
+ };
+ }
+});
+
+if ( document.defaultView && document.defaultView.getComputedStyle ) {
+ getComputedStyle = function( elem, name ) {
+ var ret, defaultView, computedStyle;
+
+ name = name.replace( rupper, "-$1" ).toLowerCase();
+
+ if ( !(defaultView = elem.ownerDocument.defaultView) ) {
+ return undefined;
+ }
+
+ if ( (computedStyle = defaultView.getComputedStyle( elem, null )) ) {
+ ret = computedStyle.getPropertyValue( name );
+ if ( ret === "" && !jQuery.contains( elem.ownerDocument.documentElement, elem ) ) {
+ ret = jQuery.style( elem, name );
+ }
+ }
+
+ return ret;
+ };
+}
+
+if ( document.documentElement.currentStyle ) {
+ currentStyle = function( elem, name ) {
+ var left,
+ ret = elem.currentStyle && elem.currentStyle[ name ],
+ rsLeft = elem.runtimeStyle && elem.runtimeStyle[ name ],
+ style = elem.style;
+
+ // From the awesome hack by Dean Edwards
+ // http://erik.eae.net/archives/2007/07/27/18.54.15/#comment-102291
+
+ // If we're not dealing with a regular pixel number
+ // but a number that has a weird ending, we need to convert it to pixels
+ if ( !rnumpx.test( ret ) && rnum.test( ret ) ) {
+ // Remember the original values
+ left = style.left;
+
+ // Put in the new values to get a computed value out
+ if ( rsLeft ) {
+ elem.runtimeStyle.left = elem.currentStyle.left;
+ }
+ style.left = name === "fontSize" ? "1em" : (ret || 0);
+ ret = style.pixelLeft + "px";
+
+ // Revert the changed values
+ style.left = left;
+ if ( rsLeft ) {
+ elem.runtimeStyle.left = rsLeft;
+ }
+ }
+
+ return ret === "" ? "auto" : ret;
+ };
+}
+
+curCSS = getComputedStyle || currentStyle;
+
+function getWH( elem, name, extra ) {
+
+ // Start with offset property
+ var val = name === "width" ? elem.offsetWidth : elem.offsetHeight,
+ which = name === "width" ? cssWidth : cssHeight;
+
+ if ( val > 0 ) {
+ if ( extra !== "border" ) {
+ jQuery.each( which, function() {
+ if ( !extra ) {
+ val -= parseFloat( jQuery.css( elem, "padding" + this ) ) || 0;
+ }
+ if ( extra === "margin" ) {
+ val += parseFloat( jQuery.css( elem, extra + this ) ) || 0;
+ } else {
+ val -= parseFloat( jQuery.css( elem, "border" + this + "Width" ) ) || 0;
+ }
+ });
+ }
+
+ return val + "px";
+ }
+
+ // Fall back to computed then uncomputed css if necessary
+ val = curCSS( elem, name, name );
+ if ( val < 0 || val == null ) {
+ val = elem.style[ name ] || 0;
+ }
+ // Normalize "", auto, and prepare for extra
+ val = parseFloat( val ) || 0;
+
+ // Add padding, border, margin
+ if ( extra ) {
+ jQuery.each( which, function() {
+ val += parseFloat( jQuery.css( elem, "padding" + this ) ) || 0;
+ if ( extra !== "padding" ) {
+ val += parseFloat( jQuery.css( elem, "border" + this + "Width" ) ) || 0;
+ }
+ if ( extra === "margin" ) {
+ val += parseFloat( jQuery.css( elem, extra + this ) ) || 0;
+ }
+ });
+ }
+
+ return val + "px";
+}
+
+if ( jQuery.expr && jQuery.expr.filters ) {
+ jQuery.expr.filters.hidden = function( elem ) {
+ var width = elem.offsetWidth,
+ height = elem.offsetHeight;
+
+ return (width === 0 && height === 0) || (!jQuery.support.reliableHiddenOffsets && ((elem.style && elem.style.display) || jQuery.css( elem, "display" )) === "none");
+ };
+
+ jQuery.expr.filters.visible = function( elem ) {
+ return !jQuery.expr.filters.hidden( elem );
+ };
+}
+
+
+
+
+var r20 = /%20/g,
+ rbracket = /\[\]$/,
+ rCRLF = /\r?\n/g,
+ rhash = /#.*$/,
+ rheaders = /^(.*?):[ \t]*([^\r\n]*)\r?$/mg, // IE leaves an \r character at EOL
+ rinput = /^(?:color|date|datetime|datetime-local|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i,
+ // #7653, #8125, #8152: local protocol detection
+ rlocalProtocol = /^(?:about|app|app\-storage|.+\-extension|file|res|widget):$/,
+ rnoContent = /^(?:GET|HEAD)$/,
+ rprotocol = /^\/\//,
+ rquery = /\?/,
+ rscript = /<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>/gi,
+ rselectTextarea = /^(?:select|textarea)/i,
+ rspacesAjax = /\s+/,
+ rts = /([?&])_=[^&]*/,
+ rurl = /^([\w\+\.\-]+:)(?:\/\/([^\/?#:]*)(?::(\d+))?)?/,
+
+ // Keep a copy of the old load method
+ _load = jQuery.fn.load,
+
+ /* Prefilters
+ * 1) They are useful to introduce custom dataTypes (see ajax/jsonp.js for an example)
+ * 2) These are called:
+ * - BEFORE asking for a transport
+ * - AFTER param serialization (s.data is a string if s.processData is true)
+ * 3) key is the dataType
+ * 4) the catchall symbol "*" can be used
+ * 5) execution will start with transport dataType and THEN continue down to "*" if needed
+ */
+ prefilters = {},
+
+ /* Transports bindings
+ * 1) key is the dataType
+ * 2) the catchall symbol "*" can be used
+ * 3) selection will start with transport dataType and THEN go to "*" if needed
+ */
+ transports = {},
+
+ // Document location
+ ajaxLocation,
+
+ // Document location segments
+ ajaxLocParts,
+
+ // Avoid comment-prolog char sequence (#10098); must appease lint and evade compression
+ allTypes = ["*/"] + ["*"];
+
+// #8138, IE may throw an exception when accessing
+// a field from window.location if document.domain has been set
+try {
+ ajaxLocation = location.href;
+} catch( e ) {
+ // Use the href attribute of an A element
+ // since IE will modify it given document.location
+ ajaxLocation = document.createElement( "a" );
+ ajaxLocation.href = "";
+ ajaxLocation = ajaxLocation.href;
+}
+
+// Segment location into parts
+ajaxLocParts = rurl.exec( ajaxLocation.toLowerCase() ) || [];
+
+// Base "constructor" for jQuery.ajaxPrefilter and jQuery.ajaxTransport
+function addToPrefiltersOrTransports( structure ) {
+
+ // dataTypeExpression is optional and defaults to "*"
+ return function( dataTypeExpression, func ) {
+
+ if ( typeof dataTypeExpression !== "string" ) {
+ func = dataTypeExpression;
+ dataTypeExpression = "*";
+ }
+
+ if ( jQuery.isFunction( func ) ) {
+ var dataTypes = dataTypeExpression.toLowerCase().split( rspacesAjax ),
+ i = 0,
+ length = dataTypes.length,
+ dataType,
+ list,
+ placeBefore;
+
+ // For each dataType in the dataTypeExpression
+ for(; i < length; i++ ) {
+ dataType = dataTypes[ i ];
+ // We control if we're asked to add before
+ // any existing element
+ placeBefore = /^\+/.test( dataType );
+ if ( placeBefore ) {
+ dataType = dataType.substr( 1 ) || "*";
+ }
+ list = structure[ dataType ] = structure[ dataType ] || [];
+ // then we add to the structure accordingly
+ list[ placeBefore ? "unshift" : "push" ]( func );
+ }
+ }
+ };
+}
+
+// Base inspection function for prefilters and transports
+function inspectPrefiltersOrTransports( structure, options, originalOptions, jqXHR,
+ dataType /* internal */, inspected /* internal */ ) {
+
+ dataType = dataType || options.dataTypes[ 0 ];
+ inspected = inspected || {};
+
+ inspected[ dataType ] = true;
+
+ var list = structure[ dataType ],
+ i = 0,
+ length = list ? list.length : 0,
+ executeOnly = ( structure === prefilters ),
+ selection;
+
+ for(; i < length && ( executeOnly || !selection ); i++ ) {
+ selection = list[ i ]( options, originalOptions, jqXHR );
+ // If we got redirected to another dataType
+ // we try there if executing only and not done already
+ if ( typeof selection === "string" ) {
+ if ( !executeOnly || inspected[ selection ] ) {
+ selection = undefined;
+ } else {
+ options.dataTypes.unshift( selection );
+ selection = inspectPrefiltersOrTransports(
+ structure, options, originalOptions, jqXHR, selection, inspected );
+ }
+ }
+ }
+ // If we're only executing or nothing was selected
+ // we try the catchall dataType if not done already
+ if ( ( executeOnly || !selection ) && !inspected[ "*" ] ) {
+ selection = inspectPrefiltersOrTransports(
+ structure, options, originalOptions, jqXHR, "*", inspected );
+ }
+ // unnecessary when only executing (prefilters)
+ // but it'll be ignored by the caller in that case
+ return selection;
+}
+
+// A special extend for ajax options
+// that takes "flat" options (not to be deep extended)
+// Fixes #9887
+function ajaxExtend( target, src ) {
+ var key, deep,
+ flatOptions = jQuery.ajaxSettings.flatOptions || {};
+ for( key in src ) {
+ if ( src[ key ] !== undefined ) {
+ ( flatOptions[ key ] ? target : ( deep || ( deep = {} ) ) )[ key ] = src[ key ];
+ }
+ }
+ if ( deep ) {
+ jQuery.extend( true, target, deep );
+ }
+}
+
+jQuery.fn.extend({
+ load: function( url, params, callback ) {
+ if ( typeof url !== "string" && _load ) {
+ return _load.apply( this, arguments );
+
+ // Don't do a request if no elements are being requested
+ } else if ( !this.length ) {
+ return this;
+ }
+
+ var off = url.indexOf( " " );
+ if ( off >= 0 ) {
+ var selector = url.slice( off, url.length );
+ url = url.slice( 0, off );
+ }
+
+ // Default to a GET request
+ var type = "GET";
+
+ // If the second parameter was provided
+ if ( params ) {
+ // If it's a function
+ if ( jQuery.isFunction( params ) ) {
+ // We assume that it's the callback
+ callback = params;
+ params = undefined;
+
+ // Otherwise, build a param string
+ } else if ( typeof params === "object" ) {
+ params = jQuery.param( params, jQuery.ajaxSettings.traditional );
+ type = "POST";
+ }
+ }
+
+ var self = this;
+
+ // Request the remote document
+ jQuery.ajax({
+ url: url,
+ type: type,
+ dataType: "html",
+ data: params,
+ // Complete callback (responseText is used internally)
+ complete: function( jqXHR, status, responseText ) {
+ // Store the response as specified by the jqXHR object
+ responseText = jqXHR.responseText;
+ // If successful, inject the HTML into all the matched elements
+ if ( jqXHR.isResolved() ) {
+ // #4825: Get the actual response in case
+ // a dataFilter is present in ajaxSettings
+ jqXHR.done(function( r ) {
+ responseText = r;
+ });
+ // See if a selector was specified
+ self.html( selector ?
+ // Create a dummy div to hold the results
+ jQuery("<div>")
+ // inject the contents of the document in, removing the scripts
+ // to avoid any 'Permission Denied' errors in IE
+ .append(responseText.replace(rscript, ""))
+
+ // Locate the specified elements
+ .find(selector) :
+
+ // If not, just inject the full result
+ responseText );
+ }
+
+ if ( callback ) {
+ self.each( callback, [ responseText, status, jqXHR ] );
+ }
+ }
+ });
+
+ return this;
+ },
+
+ serialize: function() {
+ return jQuery.param( this.serializeArray() );
+ },
+
+ serializeArray: function() {
+ return this.map(function(){
+ return this.elements ? jQuery.makeArray( this.elements ) : this;
+ })
+ .filter(function(){
+ return this.name && !this.disabled &&
+ ( this.checked || rselectTextarea.test( this.nodeName ) ||
+ rinput.test( this.type ) );
+ })
+ .map(function( i, elem ){
+ var val = jQuery( this ).val();
+
+ return val == null ?
+ null :
+ jQuery.isArray( val ) ?
+ jQuery.map( val, function( val, i ){
+ return { name: elem.name, value: val.replace( rCRLF, "\r\n" ) };
+ }) :
+ { name: elem.name, value: val.replace( rCRLF, "\r\n" ) };
+ }).get();
+ }
+});
+
+// Attach a bunch of functions for handling common AJAX events
+jQuery.each( "ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split( " " ), function( i, o ){
+ jQuery.fn[ o ] = function( f ){
+ return this.bind( o, f );
+ };
+});
+
+jQuery.each( [ "get", "post" ], function( i, method ) {
+ jQuery[ method ] = function( url, data, callback, type ) {
+ // shift arguments if data argument was omitted
+ if ( jQuery.isFunction( data ) ) {
+ type = type || callback;
+ callback = data;
+ data = undefined;
+ }
+
+ return jQuery.ajax({
+ type: method,
+ url: url,
+ data: data,
+ success: callback,
+ dataType: type
+ });
+ };
+});
+
+jQuery.extend({
+
+ getScript: function( url, callback ) {
+ return jQuery.get( url, undefined, callback, "script" );
+ },
+
+ getJSON: function( url, data, callback ) {
+ return jQuery.get( url, data, callback, "json" );
+ },
+
+ // Creates a full fledged settings object into target
+ // with both ajaxSettings and settings fields.
+ // If target is omitted, writes into ajaxSettings.
+ ajaxSetup: function( target, settings ) {
+ if ( settings ) {
+ // Building a settings object
+ ajaxExtend( target, jQuery.ajaxSettings );
+ } else {
+ // Extending ajaxSettings
+ settings = target;
+ target = jQuery.ajaxSettings;
+ }
+ ajaxExtend( target, settings );
+ return target;
+ },
+
+ ajaxSettings: {
+ url: ajaxLocation,
+ isLocal: rlocalProtocol.test( ajaxLocParts[ 1 ] ),
+ global: true,
+ type: "GET",
+ contentType: "application/x-www-form-urlencoded",
+ processData: true,
+ async: true,
+ /*
+ timeout: 0,
+ data: null,
+ dataType: null,
+ username: null,
+ password: null,
+ cache: null,
+ traditional: false,
+ headers: {},
+ */
+
+ accepts: {
+ xml: "application/xml, text/xml",
+ html: "text/html",
+ text: "text/plain",
+ json: "application/json, text/javascript",
+ "*": allTypes
+ },
+
+ contents: {
+ xml: /xml/,
+ html: /html/,
+ json: /json/
+ },
+
+ responseFields: {
+ xml: "responseXML",
+ text: "responseText"
+ },
+
+ // List of data converters
+ // 1) key format is "source_type destination_type" (a single space in-between)
+ // 2) the catchall symbol "*" can be used for source_type
+ converters: {
+
+ // Convert anything to text
+ "* text": window.String,
+
+ // Text to html (true = no transformation)
+ "text html": true,
+
+ // Evaluate text as a json expression
+ "text json": jQuery.parseJSON,
+
+ // Parse text as xml
+ "text xml": jQuery.parseXML
+ },
+
+ // For options that shouldn't be deep extended:
+ // you can add your own custom options here if
+ // and when you create one that shouldn't be
+ // deep extended (see ajaxExtend)
+ flatOptions: {
+ context: true,
+ url: true
+ }
+ },
+
+ ajaxPrefilter: addToPrefiltersOrTransports( prefilters ),
+ ajaxTransport: addToPrefiltersOrTransports( transports ),
+
+ // Main method
+ ajax: function( url, options ) {
+
+ // If url is an object, simulate pre-1.5 signature
+ if ( typeof url === "object" ) {
+ options = url;
+ url = undefined;
+ }
+
+ // Force options to be an object
+ options = options || {};
+
+ var // Create the final options object
+ s = jQuery.ajaxSetup( {}, options ),
+ // Callbacks context
+ callbackContext = s.context || s,
+ // Context for global events
+ // It's the callbackContext if one was provided in the options
+ // and if it's a DOM node or a jQuery collection
+ globalEventContext = callbackContext !== s &&
+ ( callbackContext.nodeType || callbackContext instanceof jQuery ) ?
+ jQuery( callbackContext ) : jQuery.event,
+ // Deferreds
+ deferred = jQuery.Deferred(),
+ completeDeferred = jQuery.Callbacks( "once memory" ),
+ // Status-dependent callbacks
+ statusCode = s.statusCode || {},
+ // ifModified key
+ ifModifiedKey,
+ // Headers (they are sent all at once)
+ requestHeaders = {},
+ requestHeadersNames = {},
+ // Response headers
+ responseHeadersString,
+ responseHeaders,
+ // transport
+ transport,
+ // timeout handle
+ timeoutTimer,
+ // Cross-domain detection vars
+ parts,
+ // The jqXHR state
+ state = 0,
+ // To know if global events are to be dispatched
+ fireGlobals,
+ // Loop variable
+ i,
+ // Fake xhr
+ jqXHR = {
+
+ readyState: 0,
+
+ // Caches the header
+ setRequestHeader: function( name, value ) {
+ if ( !state ) {
+ var lname = name.toLowerCase();
+ name = requestHeadersNames[ lname ] = requestHeadersNames[ lname ] || name;
+ requestHeaders[ name ] = value;
+ }
+ return this;
+ },
+
+ // Raw string
+ getAllResponseHeaders: function() {
+ return state === 2 ? responseHeadersString : null;
+ },
+
+ // Builds headers hashtable if needed
+ getResponseHeader: function( key ) {
+ var match;
+ if ( state === 2 ) {
+ if ( !responseHeaders ) {
+ responseHeaders = {};
+ while( ( match = rheaders.exec( responseHeadersString ) ) ) {
+ responseHeaders[ match[1].toLowerCase() ] = match[ 2 ];
+ }
+ }
+ match = responseHeaders[ key.toLowerCase() ];
+ }
+ return match === undefined ? null : match;
+ },
+
+ // Overrides response content-type header
+ overrideMimeType: function( type ) {
+ if ( !state ) {
+ s.mimeType = type;
+ }
+ return this;
+ },
+
+ // Cancel the request
+ abort: function( statusText ) {
+ statusText = statusText || "abort";
+ if ( transport ) {
+ transport.abort( statusText );
+ }
+ done( 0, statusText );
+ return this;
+ }
+ };
+
+ // Callback for when everything is done
+ // It is defined here because jslint complains if it is declared
+ // at the end of the function (which would be more logical and readable)
+ function done( status, nativeStatusText, responses, headers ) {
+
+ // Called once
+ if ( state === 2 ) {
+ return;
+ }
+
+ // State is "done" now
+ state = 2;
+
+ // Clear timeout if it exists
+ if ( timeoutTimer ) {
+ clearTimeout( timeoutTimer );
+ }
+
+ // Dereference transport for early garbage collection
+ // (no matter how long the jqXHR object will be used)
+ transport = undefined;
+
+ // Cache response headers
+ responseHeadersString = headers || "";
+
+ // Set readyState
+ jqXHR.readyState = status > 0 ? 4 : 0;
+
+ var isSuccess,
+ success,
+ error,
+ statusText = nativeStatusText,
+ response = responses ? ajaxHandleResponses( s, jqXHR, responses ) : undefined,
+ lastModified,
+ etag;
+
+ // If successful, handle type chaining
+ if ( status >= 200 && status < 300 || status === 304 ) {
+
+ // Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode.
+ if ( s.ifModified ) {
+
+ if ( ( lastModified = jqXHR.getResponseHeader( "Last-Modified" ) ) ) {
+ jQuery.lastModified[ ifModifiedKey ] = lastModified;
+ }
+ if ( ( etag = jqXHR.getResponseHeader( "Etag" ) ) ) {
+ jQuery.etag[ ifModifiedKey ] = etag;
+ }
+ }
+
+ // If not modified
+ if ( status === 304 ) {
+
+ statusText = "notmodified";
+ isSuccess = true;
+
+ // If we have data
+ } else {
+
+ try {
+ success = ajaxConvert( s, response );
+ statusText = "success";
+ isSuccess = true;
+ } catch(e) {
+ // We have a parsererror
+ statusText = "parsererror";
+ error = e;
+ }
+ }
+ } else {
+ // We extract error from statusText
+ // then normalize statusText and status for non-aborts
+ error = statusText;
+ if( !statusText || status ) {
+ statusText = "error";
+ if ( status < 0 ) {
+ status = 0;
+ }
+ }
+ }
+
+ // Set data for the fake xhr object
+ jqXHR.status = status;
+ jqXHR.statusText = "" + ( nativeStatusText || statusText );
+
+ // Success/Error
+ if ( isSuccess ) {
+ deferred.resolveWith( callbackContext, [ success, statusText, jqXHR ] );
+ } else {
+ deferred.rejectWith( callbackContext, [ jqXHR, statusText, error ] );
+ }
+
+ // Status-dependent callbacks
+ jqXHR.statusCode( statusCode );
+ statusCode = undefined;
+
+ if ( fireGlobals ) {
+ globalEventContext.trigger( "ajax" + ( isSuccess ? "Success" : "Error" ),
+ [ jqXHR, s, isSuccess ? success : error ] );
+ }
+
+ // Complete
+ completeDeferred.fireWith( callbackContext, [ jqXHR, statusText ] );
+
+ if ( fireGlobals ) {
+ globalEventContext.trigger( "ajaxComplete", [ jqXHR, s ] );
+ // Handle the global AJAX counter
+ if ( !( --jQuery.active ) ) {
+ jQuery.event.trigger( "ajaxStop" );
+ }
+ }
+ }
+
+ // Attach deferreds
+ deferred.promise( jqXHR );
+ jqXHR.success = jqXHR.done;
+ jqXHR.error = jqXHR.fail;
+ jqXHR.complete = completeDeferred.add;
+
+ // Status-dependent callbacks
+ jqXHR.statusCode = function( map ) {
+ if ( map ) {
+ var tmp;
+ if ( state < 2 ) {
+ for( tmp in map ) {
+ statusCode[ tmp ] = [ statusCode[tmp], map[tmp] ];
+ }
+ } else {
+ tmp = map[ jqXHR.status ];
+ jqXHR.then( tmp, tmp );
+ }
+ }
+ return this;
+ };
+
+ // Remove hash character (#7531: and string promotion)
+ // Add protocol if not provided (#5866: IE7 issue with protocol-less urls)
+ // We also use the url parameter if available
+ s.url = ( ( url || s.url ) + "" ).replace( rhash, "" ).replace( rprotocol, ajaxLocParts[ 1 ] + "//" );
+
+ // Extract dataTypes list
+ s.dataTypes = jQuery.trim( s.dataType || "*" ).toLowerCase().split( rspacesAjax );
+
+ // Determine if a cross-domain request is in order
+ if ( s.crossDomain == null ) {
+ parts = rurl.exec( s.url.toLowerCase() );
+ s.crossDomain = !!( parts &&
+ ( parts[ 1 ] != ajaxLocParts[ 1 ] || parts[ 2 ] != ajaxLocParts[ 2 ] ||
+ ( parts[ 3 ] || ( parts[ 1 ] === "http:" ? 80 : 443 ) ) !=
+ ( ajaxLocParts[ 3 ] || ( ajaxLocParts[ 1 ] === "http:" ? 80 : 443 ) ) )
+ );
+ }
+
+ // Convert data if not already a string
+ if ( s.data && s.processData && typeof s.data !== "string" ) {
+ s.data = jQuery.param( s.data, s.traditional );
+ }
+
+ // Apply prefilters
+ inspectPrefiltersOrTransports( prefilters, s, options, jqXHR );
+
+ // If request was aborted inside a prefiler, stop there
+ if ( state === 2 ) {
+ return false;
+ }
+
+ // We can fire global events as of now if asked to
+ fireGlobals = s.global;
+
+ // Uppercase the type
+ s.type = s.type.toUpperCase();
+
+ // Determine if request has content
+ s.hasContent = !rnoContent.test( s.type );
+
+ // Watch for a new set of requests
+ if ( fireGlobals && jQuery.active++ === 0 ) {
+ jQuery.event.trigger( "ajaxStart" );
+ }
+
+ // More options handling for requests with no content
+ if ( !s.hasContent ) {
+
+ // If data is available, append data to url
+ if ( s.data ) {
+ s.url += ( rquery.test( s.url ) ? "&" : "?" ) + s.data;
+ // #9682: remove data so that it's not used in an eventual retry
+ delete s.data;
+ }
+
+ // Get ifModifiedKey before adding the anti-cache parameter
+ ifModifiedKey = s.url;
+
+ // Add anti-cache in url if needed
+ if ( s.cache === false ) {
+
+ var ts = jQuery.now(),
+ // try replacing _= if it is there
+ ret = s.url.replace( rts, "$1_=" + ts );
+
+ // if nothing was replaced, add timestamp to the end
+ s.url = ret + ( (ret === s.url ) ? ( rquery.test( s.url ) ? "&" : "?" ) + "_=" + ts : "" );
+ }
+ }
+
+ // Set the correct header, if data is being sent
+ if ( s.data && s.hasContent && s.contentType !== false || options.contentType ) {
+ jqXHR.setRequestHeader( "Content-Type", s.contentType );
+ }
+
+ // Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode.
+ if ( s.ifModified ) {
+ ifModifiedKey = ifModifiedKey || s.url;
+ if ( jQuery.lastModified[ ifModifiedKey ] ) {
+ jqXHR.setRequestHeader( "If-Modified-Since", jQuery.lastModified[ ifModifiedKey ] );
+ }
+ if ( jQuery.etag[ ifModifiedKey ] ) {
+ jqXHR.setRequestHeader( "If-None-Match", jQuery.etag[ ifModifiedKey ] );
+ }
+ }
+
+ // Set the Accepts header for the server, depending on the dataType
+ jqXHR.setRequestHeader(
+ "Accept",
+ s.dataTypes[ 0 ] && s.accepts[ s.dataTypes[0] ] ?
+ s.accepts[ s.dataTypes[0] ] + ( s.dataTypes[ 0 ] !== "*" ? ", " + allTypes + "; q=0.01" : "" ) :
+ s.accepts[ "*" ]
+ );
+
+ // Check for headers option
+ for ( i in s.headers ) {
+ jqXHR.setRequestHeader( i, s.headers[ i ] );
+ }
+
+ // Allow custom headers/mimetypes and early abort
+ if ( s.beforeSend && ( s.beforeSend.call( callbackContext, jqXHR, s ) === false || state === 2 ) ) {
+ // Abort if not done already
+ jqXHR.abort();
+ return false;
+
+ }
+
+ // Install callbacks on deferreds
+ for ( i in { success: 1, error: 1, complete: 1 } ) {
+ jqXHR[ i ]( s[ i ] );
+ }
+
+ // Get transport
+ transport = inspectPrefiltersOrTransports( transports, s, options, jqXHR );
+
+ // If no transport, we auto-abort
+ if ( !transport ) {
+ done( -1, "No Transport" );
+ } else {
+ jqXHR.readyState = 1;
+ // Send global event
+ if ( fireGlobals ) {
+ globalEventContext.trigger( "ajaxSend", [ jqXHR, s ] );
+ }
+ // Timeout
+ if ( s.async && s.timeout > 0 ) {
+ timeoutTimer = setTimeout( function(){
+ jqXHR.abort( "timeout" );
+ }, s.timeout );
+ }
+
+ try {
+ state = 1;
+ transport.send( requestHeaders, done );
+ } catch (e) {
+ // Propagate exception as error if not done
+ if ( state < 2 ) {
+ done( -1, e );
+ // Simply rethrow otherwise
+ } else {
+ jQuery.error( e );
+ }
+ }
+ }
+
+ return jqXHR;
+ },
+
+ // Serialize an array of form elements or a set of
+ // key/values into a query string
+ param: function( a, traditional ) {
+ var s = [],
+ add = function( key, value ) {
+ // If value is a function, invoke it and return its value
+ value = jQuery.isFunction( value ) ? value() : value;
+ s[ s.length ] = encodeURIComponent( key ) + "=" + encodeURIComponent( value );
+ };
+
+ // Set traditional to true for jQuery <= 1.3.2 behavior.
+ if ( traditional === undefined ) {
+ traditional = jQuery.ajaxSettings.traditional;
+ }
+
+ // If an array was passed in, assume that it is an array of form elements.
+ if ( jQuery.isArray( a ) || ( a.jquery && !jQuery.isPlainObject( a ) ) ) {
+ // Serialize the form elements
+ jQuery.each( a, function() {
+ add( this.name, this.value );
+ });
+
+ } else {
+ // If traditional, encode the "old" way (the way 1.3.2 or older
+ // did it), otherwise encode params recursively.
+ for ( var prefix in a ) {
+ buildParams( prefix, a[ prefix ], traditional, add );
+ }
+ }
+
+ // Return the resulting serialization
+ return s.join( "&" ).replace( r20, "+" );
+ }
+});
+
+function buildParams( prefix, obj, traditional, add ) {
+ if ( jQuery.isArray( obj ) ) {
+ // Serialize array item.
+ jQuery.each( obj, function( i, v ) {
+ if ( traditional || rbracket.test( prefix ) ) {
+ // Treat each array item as a scalar.
+ add( prefix, v );
+
+ } else {
+ // If array item is non-scalar (array or object), encode its
+ // numeric index to resolve deserialization ambiguity issues.
+ // Note that rack (as of 1.0.0) can't currently deserialize
+ // nested arrays properly, and attempting to do so may cause
+ // a server error. Possible fixes are to modify rack's
+ // deserialization algorithm or to provide an option or flag
+ // to force array serialization to be shallow.
+ buildParams( prefix + "[" + ( typeof v === "object" || jQuery.isArray(v) ? i : "" ) + "]", v, traditional, add );
+ }
+ });
+
+ } else if ( !traditional && obj != null && typeof obj === "object" ) {
+ // Serialize object item.
+ for ( var name in obj ) {
+ buildParams( prefix + "[" + name + "]", obj[ name ], traditional, add );
+ }
+
+ } else {
+ // Serialize scalar item.
+ add( prefix, obj );
+ }
+}
+
+// This is still on the jQuery object... for now
+// Want to move this to jQuery.ajax some day
+jQuery.extend({
+
+ // Counter for holding the number of active queries
+ active: 0,
+
+ // Last-Modified header cache for next request
+ lastModified: {},
+ etag: {}
+
+});
+
+/* Handles responses to an ajax request:
+ * - sets all responseXXX fields accordingly
+ * - finds the right dataType (mediates between content-type and expected dataType)
+ * - returns the corresponding response
+ */
+function ajaxHandleResponses( s, jqXHR, responses ) {
+
+ var contents = s.contents,
+ dataTypes = s.dataTypes,
+ responseFields = s.responseFields,
+ ct,
+ type,
+ finalDataType,
+ firstDataType;
+
+ // Fill responseXXX fields
+ for( type in responseFields ) {
+ if ( type in responses ) {
+ jqXHR[ responseFields[type] ] = responses[ type ];
+ }
+ }
+
+ // Remove auto dataType and get content-type in the process
+ while( dataTypes[ 0 ] === "*" ) {
+ dataTypes.shift();
+ if ( ct === undefined ) {
+ ct = s.mimeType || jqXHR.getResponseHeader( "content-type" );
+ }
+ }
+
+ // Check if we're dealing with a known content-type
+ if ( ct ) {
+ for ( type in contents ) {
+ if ( contents[ type ] && contents[ type ].test( ct ) ) {
+ dataTypes.unshift( type );
+ break;
+ }
+ }
+ }
+
+ // Check to see if we have a response for the expected dataType
+ if ( dataTypes[ 0 ] in responses ) {
+ finalDataType = dataTypes[ 0 ];
+ } else {
+ // Try convertible dataTypes
+ for ( type in responses ) {
+ if ( !dataTypes[ 0 ] || s.converters[ type + " " + dataTypes[0] ] ) {
+ finalDataType = type;
+ break;
+ }
+ if ( !firstDataType ) {
+ firstDataType = type;
+ }
+ }
+ // Or just use first one
+ finalDataType = finalDataType || firstDataType;
+ }
+
+ // If we found a dataType
+ // We add the dataType to the list if needed
+ // and return the corresponding response
+ if ( finalDataType ) {
+ if ( finalDataType !== dataTypes[ 0 ] ) {
+ dataTypes.unshift( finalDataType );
+ }
+ return responses[ finalDataType ];
+ }
+}
+
+// Chain conversions given the request and the original response
+function ajaxConvert( s, response ) {
+
+ // Apply the dataFilter if provided
+ if ( s.dataFilter ) {
+ response = s.dataFilter( response, s.dataType );
+ }
+
+ var dataTypes = s.dataTypes,
+ converters = {},
+ i,
+ key,
+ length = dataTypes.length,
+ tmp,
+ // Current and previous dataTypes
+ current = dataTypes[ 0 ],
+ prev,
+ // Conversion expression
+ conversion,
+ // Conversion function
+ conv,
+ // Conversion functions (transitive conversion)
+ conv1,
+ conv2;
+
+ // For each dataType in the chain
+ for( i = 1; i < length; i++ ) {
+
+ // Create converters map
+ // with lowercased keys
+ if ( i === 1 ) {
+ for( key in s.converters ) {
+ if( typeof key === "string" ) {
+ converters[ key.toLowerCase() ] = s.converters[ key ];
+ }
+ }
+ }
+
+ // Get the dataTypes
+ prev = current;
+ current = dataTypes[ i ];
+
+ // If current is auto dataType, update it to prev
+ if( current === "*" ) {
+ current = prev;
+ // If no auto and dataTypes are actually different
+ } else if ( prev !== "*" && prev !== current ) {
+
+ // Get the converter
+ conversion = prev + " " + current;
+ conv = converters[ conversion ] || converters[ "* " + current ];
+
+ // If there is no direct converter, search transitively
+ if ( !conv ) {
+ conv2 = undefined;
+ for( conv1 in converters ) {
+ tmp = conv1.split( " " );
+ if ( tmp[ 0 ] === prev || tmp[ 0 ] === "*" ) {
+ conv2 = converters[ tmp[1] + " " + current ];
+ if ( conv2 ) {
+ conv1 = converters[ conv1 ];
+ if ( conv1 === true ) {
+ conv = conv2;
+ } else if ( conv2 === true ) {
+ conv = conv1;
+ }
+ break;
+ }
+ }
+ }
+ }
+ // If we found no converter, dispatch an error
+ if ( !( conv || conv2 ) ) {
+ jQuery.error( "No conversion from " + conversion.replace(" "," to ") );
+ }
+ // If found converter is not an equivalence
+ if ( conv !== true ) {
+ // Convert with 1 or 2 converters accordingly
+ response = conv ? conv( response ) : conv2( conv1(response) );
+ }
+ }
+ }
+ return response;
+}
+
+
+
+
+var jsc = jQuery.now(),
+ jsre = /(\=)\?(&|$)|\?\?/i;
+
+// Default jsonp settings
+jQuery.ajaxSetup({
+ jsonp: "callback",
+ jsonpCallback: function() {
+ return jQuery.expando + "_" + ( jsc++ );
+ }
+});
+
+// Detect, normalize options and install callbacks for jsonp requests
+jQuery.ajaxPrefilter( "json jsonp", function( s, originalSettings, jqXHR ) {
+
+ var inspectData = s.contentType === "application/x-www-form-urlencoded" &&
+ ( typeof s.data === "string" );
+
+ if ( s.dataTypes[ 0 ] === "jsonp" ||
+ s.jsonp !== false && ( jsre.test( s.url ) ||
+ inspectData && jsre.test( s.data ) ) ) {
+
+ var responseContainer,
+ jsonpCallback = s.jsonpCallback =
+ jQuery.isFunction( s.jsonpCallback ) ? s.jsonpCallback() : s.jsonpCallback,
+ previous = window[ jsonpCallback ],
+ url = s.url,
+ data = s.data,
+ replace = "$1" + jsonpCallback + "$2";
+
+ if ( s.jsonp !== false ) {
+ url = url.replace( jsre, replace );
+ if ( s.url === url ) {
+ if ( inspectData ) {
+ data = data.replace( jsre, replace );
+ }
+ if ( s.data === data ) {
+ // Add callback manually
+ url += (/\?/.test( url ) ? "&" : "?") + s.jsonp + "=" + jsonpCallback;
+ }
+ }
+ }
+
+ s.url = url;
+ s.data = data;
+
+ // Install callback
+ window[ jsonpCallback ] = function( response ) {
+ responseContainer = [ response ];
+ };
+
+ // Clean-up function
+ jqXHR.always(function() {
+ // Set callback back to previous value
+ window[ jsonpCallback ] = previous;
+ // Call if it was a function and we have a response
+ if ( responseContainer && jQuery.isFunction( previous ) ) {
+ window[ jsonpCallback ]( responseContainer[ 0 ] );
+ }
+ });
+
+ // Use data converter to retrieve json after script execution
+ s.converters["script json"] = function() {
+ if ( !responseContainer ) {
+ jQuery.error( jsonpCallback + " was not called" );
+ }
+ return responseContainer[ 0 ];
+ };
+
+ // force json dataType
+ s.dataTypes[ 0 ] = "json";
+
+ // Delegate to script
+ return "script";
+ }
+});
+
+
+
+
+// Install script dataType
+jQuery.ajaxSetup({
+ accepts: {
+ script: "text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"
+ },
+ contents: {
+ script: /javascript|ecmascript/
+ },
+ converters: {
+ "text script": function( text ) {
+ jQuery.globalEval( text );
+ return text;
+ }
+ }
+});
+
+// Handle cache's special case and global
+jQuery.ajaxPrefilter( "script", function( s ) {
+ if ( s.cache === undefined ) {
+ s.cache = false;
+ }
+ if ( s.crossDomain ) {
+ s.type = "GET";
+ s.global = false;
+ }
+});
+
+// Bind script tag hack transport
+jQuery.ajaxTransport( "script", function(s) {
+
+ // This transport only deals with cross domain requests
+ if ( s.crossDomain ) {
+
+ var script,
+ head = document.head || document.getElementsByTagName( "head" )[0] || document.documentElement;
+
+ return {
+
+ send: function( _, callback ) {
+
+ script = document.createElement( "script" );
+
+ script.async = "async";
+
+ if ( s.scriptCharset ) {
+ script.charset = s.scriptCharset;
+ }
+
+ script.src = s.url;
+
+ // Attach handlers for all browsers
+ script.onload = script.onreadystatechange = function( _, isAbort ) {
+
+ if ( isAbort || !script.readyState || /loaded|complete/.test( script.readyState ) ) {
+
+ // Handle memory leak in IE
+ script.onload = script.onreadystatechange = null;
+
+ // Remove the script
+ if ( head && script.parentNode ) {
+ head.removeChild( script );
+ }
+
+ // Dereference the script
+ script = undefined;
+
+ // Callback if not abort
+ if ( !isAbort ) {
+ callback( 200, "success" );
+ }
+ }
+ };
+ // Use insertBefore instead of appendChild to circumvent an IE6 bug.
+ // This arises when a base node is used (#2709 and #4378).
+ head.insertBefore( script, head.firstChild );
+ },
+
+ abort: function() {
+ if ( script ) {
+ script.onload( 0, 1 );
+ }
+ }
+ };
+ }
+});
+
+
+
+
+var // #5280: Internet Explorer will keep connections alive if we don't abort on unload
+ xhrOnUnloadAbort = window.ActiveXObject ? function() {
+ // Abort all pending requests
+ for ( var key in xhrCallbacks ) {
+ xhrCallbacks[ key ]( 0, 1 );
+ }
+ } : false,
+ xhrId = 0,
+ xhrCallbacks;
+
+// Functions to create xhrs
+function createStandardXHR() {
+ try {
+ return new window.XMLHttpRequest();
+ } catch( e ) {}
+}
+
+function createActiveXHR() {
+ try {
+ return new window.ActiveXObject( "Microsoft.XMLHTTP" );
+ } catch( e ) {}
+}
+
+// Create the request object
+// (This is still attached to ajaxSettings for backward compatibility)
+jQuery.ajaxSettings.xhr = window.ActiveXObject ?
+ /* Microsoft failed to properly
+ * implement the XMLHttpRequest in IE7 (can't request local files),
+ * so we use the ActiveXObject when it is available
+ * Additionally XMLHttpRequest can be disabled in IE7/IE8 so
+ * we need a fallback.
+ */
+ function() {
+ return !this.isLocal && createStandardXHR() || createActiveXHR();
+ } :
+ // For all other browsers, use the standard XMLHttpRequest object
+ createStandardXHR;
+
+// Determine support properties
+(function( xhr ) {
+ jQuery.extend( jQuery.support, {
+ ajax: !!xhr,
+ cors: !!xhr && ( "withCredentials" in xhr )
+ });
+})( jQuery.ajaxSettings.xhr() );
+
+// Create transport if the browser can provide an xhr
+if ( jQuery.support.ajax ) {
+
+ jQuery.ajaxTransport(function( s ) {
+ // Cross domain only allowed if supported through XMLHttpRequest
+ if ( !s.crossDomain || jQuery.support.cors ) {
+
+ var callback;
+
+ return {
+ send: function( headers, complete ) {
+
+ // Get a new xhr
+ var xhr = s.xhr(),
+ handle,
+ i;
+
+ // Open the socket
+ // Passing null username, generates a login popup on Opera (#2865)
+ if ( s.username ) {
+ xhr.open( s.type, s.url, s.async, s.username, s.password );
+ } else {
+ xhr.open( s.type, s.url, s.async );
+ }
+
+ // Apply custom fields if provided
+ if ( s.xhrFields ) {
+ for ( i in s.xhrFields ) {
+ xhr[ i ] = s.xhrFields[ i ];
+ }
+ }
+
+ // Override mime type if needed
+ if ( s.mimeType && xhr.overrideMimeType ) {
+ xhr.overrideMimeType( s.mimeType );
+ }
+
+ // X-Requested-With header
+ // For cross-domain requests, seeing as conditions for a preflight are
+ // akin to a jigsaw puzzle, we simply never set it to be sure.
+ // (it can always be set on a per-request basis or even using ajaxSetup)
+ // For same-domain requests, won't change header if already provided.
+ if ( !s.crossDomain && !headers["X-Requested-With"] ) {
+ headers[ "X-Requested-With" ] = "XMLHttpRequest";
+ }
+
+ // Need an extra try/catch for cross domain requests in Firefox 3
+ try {
+ for ( i in headers ) {
+ xhr.setRequestHeader( i, headers[ i ] );
+ }
+ } catch( _ ) {}
+
+ // Do send the request
+ // This may raise an exception which is actually
+ // handled in jQuery.ajax (so no try/catch here)
+ xhr.send( ( s.hasContent && s.data ) || null );
+
+ // Listener
+ callback = function( _, isAbort ) {
+
+ var status,
+ statusText,
+ responseHeaders,
+ responses,
+ xml;
+
+ // Firefox throws exceptions when accessing properties
+ // of an xhr when a network error occured
+ // http://helpful.knobs-dials.com/index.php/Component_returned_failure_code:_0x80040111_(NS_ERROR_NOT_AVAILABLE)
+ try {
+
+ // Was never called and is aborted or complete
+ if ( callback && ( isAbort || xhr.readyState === 4 ) ) {
+
+ // Only called once
+ callback = undefined;
+
+ // Do not keep as active anymore
+ if ( handle ) {
+ xhr.onreadystatechange = jQuery.noop;
+ if ( xhrOnUnloadAbort ) {
+ delete xhrCallbacks[ handle ];
+ }
+ }
+
+ // If it's an abort
+ if ( isAbort ) {
+ // Abort it manually if needed
+ if ( xhr.readyState !== 4 ) {
+ xhr.abort();
+ }
+ } else {
+ status = xhr.status;
+ responseHeaders = xhr.getAllResponseHeaders();
+ responses = {};
+ xml = xhr.responseXML;
+
+ // Construct response list
+ if ( xml && xml.documentElement /* #4958 */ ) {
+ responses.xml = xml;
+ }
+ responses.text = xhr.responseText;
+
+ // Firefox throws an exception when accessing
+ // statusText for faulty cross-domain requests
+ try {
+ statusText = xhr.statusText;
+ } catch( e ) {
+ // We normalize with Webkit giving an empty statusText
+ statusText = "";
+ }
+
+ // Filter status for non standard behaviors
+
+ // If the request is local and we have data: assume a success
+ // (success with no data won't get notified, that's the best we
+ // can do given current implementations)
+ if ( !status && s.isLocal && !s.crossDomain ) {
+ status = responses.text ? 200 : 404;
+ // IE - #1450: sometimes returns 1223 when it should be 204
+ } else if ( status === 1223 ) {
+ status = 204;
+ }
+ }
+ }
+ } catch( firefoxAccessException ) {
+ if ( !isAbort ) {
+ complete( -1, firefoxAccessException );
+ }
+ }
+
+ // Call complete if needed
+ if ( responses ) {
+ complete( status, statusText, responses, responseHeaders );
+ }
+ };
+
+ // if we're in sync mode or it's in cache
+ // and has been retrieved directly (IE6 & IE7)
+ // we need to manually fire the callback
+ if ( !s.async || xhr.readyState === 4 ) {
+ callback();
+ } else {
+ handle = ++xhrId;
+ if ( xhrOnUnloadAbort ) {
+ // Create the active xhrs callbacks list if needed
+ // and attach the unload handler
+ if ( !xhrCallbacks ) {
+ xhrCallbacks = {};
+ jQuery( window ).unload( xhrOnUnloadAbort );
+ }
+ // Add to list of active xhrs callbacks
+ xhrCallbacks[ handle ] = callback;
+ }
+ xhr.onreadystatechange = callback;
+ }
+ },
+
+ abort: function() {
+ if ( callback ) {
+ callback(0,1);
+ }
+ }
+ };
+ }
+ });
+}
+
+
+
+
+var elemdisplay = {},
+ iframe, iframeDoc,
+ rfxtypes = /^(?:toggle|show|hide)$/,
+ rfxnum = /^([+\-]=)?([\d+.\-]+)([a-z%]*)$/i,
+ timerId,
+ fxAttrs = [
+ // height animations
+ [ "height", "marginTop", "marginBottom", "paddingTop", "paddingBottom" ],
+ // width animations
+ [ "width", "marginLeft", "marginRight", "paddingLeft", "paddingRight" ],
+ // opacity animations
+ [ "opacity" ]
+ ],
+ fxNow;
+
+jQuery.fn.extend({
+ show: function( speed, easing, callback ) {
+ var elem, display;
+
+ if ( speed || speed === 0 ) {
+ return this.animate( genFx("show", 3), speed, easing, callback);
+
+ } else {
+ for ( var i = 0, j = this.length; i < j; i++ ) {
+ elem = this[i];
+
+ if ( elem.style ) {
+ display = elem.style.display;
+
+ // Reset the inline display of this element to learn if it is
+ // being hidden by cascaded rules or not
+ if ( !jQuery._data(elem, "olddisplay") && display === "none" ) {
+ display = elem.style.display = "";
+ }
+
+ // Set elements which have been overridden with display: none
+ // in a stylesheet to whatever the default browser style is
+ // for such an element
+ if ( display === "none" || ( display === "" && jQuery.css( elem, "display" ) === "none" ) ) {
+ jQuery._data(elem, "olddisplay", defaultDisplay(elem.nodeName));
+ }
+ }
+ }
+
+ // Set the display of most of the elements in a second loop
+ // to avoid the constant reflow
+ for ( i = 0; i < j; i++ ) {
+ elem = this[i];
+
+ if ( elem.style ) {
+ display = elem.style.display;
+
+ if ( display === "" || display === "none" ) {
+ elem.style.display = jQuery._data(elem, "olddisplay") || "";
+ }
+ }
+ }
+
+ return this;
+ }
+ },
+
+ hide: function( speed, easing, callback ) {
+ if ( speed || speed === 0 ) {
+ return this.animate( genFx("hide", 3), speed, easing, callback);
+
+ } else {
+ for ( var i = 0, j = this.length; i < j; i++ ) {
+ if ( this[i].style ) {
+ var display = jQuery.css( this[i], "display" );
+
+ if ( display !== "none" && !jQuery._data( this[i], "olddisplay" ) ) {
+ jQuery._data( this[i], "olddisplay", display );
+ }
+ }
+ }
+
+ // Set the display of the elements in a second loop
+ // to avoid the constant reflow
+ for ( i = 0; i < j; i++ ) {
+ if ( this[i].style ) {
+ this[i].style.display = "none";
+ }
+ }
+
+ return this;
+ }
+ },
+
+ // Save the old toggle function
+ _toggle: jQuery.fn.toggle,
+
+ toggle: function( fn, fn2, callback ) {
+ var bool = typeof fn === "boolean";
+
+ if ( jQuery.isFunction(fn) && jQuery.isFunction(fn2) ) {
+ this._toggle.apply( this, arguments );
+
+ } else if ( fn == null || bool ) {
+ this.each(function() {
+ var state = bool ? fn : jQuery(this).is(":hidden");
+ jQuery(this)[ state ? "show" : "hide" ]();
+ });
+
+ } else {
+ this.animate(genFx("toggle", 3), fn, fn2, callback);
+ }
+
+ return this;
+ },
+
+ fadeTo: function( speed, to, easing, callback ) {
+ return this.filter(":hidden").css("opacity", 0).show().end()
+ .animate({opacity: to}, speed, easing, callback);
+ },
+
+ animate: function( prop, speed, easing, callback ) {
+ var optall = jQuery.speed( speed, easing, callback );
+
+ if ( jQuery.isEmptyObject( prop ) ) {
+ return this.each( optall.complete, [ false ] );
+ }
+
+ // Do not change referenced properties as per-property easing will be lost
+ prop = jQuery.extend( {}, prop );
+
+ function doAnimation() {
+ // XXX 'this' does not always have a nodeName when running the
+ // test suite
+
+ if ( optall.queue === false ) {
+ jQuery._mark( this );
+ }
+
+ var opt = jQuery.extend( {}, optall ),
+ isElement = this.nodeType === 1,
+ hidden = isElement && jQuery(this).is(":hidden"),
+ name, val, p, e,
+ parts, start, end, unit,
+ method;
+
+ // will store per property easing and be used to determine when an animation is complete
+ opt.animatedProperties = {};
+
+ for ( p in prop ) {
+
+ // property name normalization
+ name = jQuery.camelCase( p );
+ if ( p !== name ) {
+ prop[ name ] = prop[ p ];
+ delete prop[ p ];
+ }
+
+ val = prop[ name ];
+
+ // easing resolution: per property > opt.specialEasing > opt.easing > 'swing' (default)
+ if ( jQuery.isArray( val ) ) {
+ opt.animatedProperties[ name ] = val[ 1 ];
+ val = prop[ name ] = val[ 0 ];
+ } else {
+ opt.animatedProperties[ name ] = opt.specialEasing && opt.specialEasing[ name ] || opt.easing || 'swing';
+ }
+
+ if ( val === "hide" && hidden || val === "show" && !hidden ) {
+ return opt.complete.call( this );
+ }
+
+ if ( isElement && ( name === "height" || name === "width" ) ) {
+ // Make sure that nothing sneaks out
+ // Record all 3 overflow attributes because IE does not
+ // change the overflow attribute when overflowX and
+ // overflowY are set to the same value
+ opt.overflow = [ this.style.overflow, this.style.overflowX, this.style.overflowY ];
+
+ // Set display property to inline-block for height/width
+ // animations on inline elements that are having width/height animated
+ if ( jQuery.css( this, "display" ) === "inline" &&
+ jQuery.css( this, "float" ) === "none" ) {
+
+ // inline-level elements accept inline-block;
+ // block-level elements need to be inline with layout
+ if ( !jQuery.support.inlineBlockNeedsLayout || defaultDisplay( this.nodeName ) === "inline" ) {
+ this.style.display = "inline-block";
+
+ } else {
+ this.style.zoom = 1;
+ }
+ }
+ }
+ }
+
+ if ( opt.overflow != null ) {
+ this.style.overflow = "hidden";
+ }
+
+ for ( p in prop ) {
+ e = new jQuery.fx( this, opt, p );
+ val = prop[ p ];
+
+ if ( rfxtypes.test( val ) ) {
+
+ // Tracks whether to show or hide based on private
+ // data attached to the element
+ method = jQuery._data( this, "toggle" + p ) || (val === "toggle" ? hidden ? "show" : "hide" : 0);
+ if ( method ) {
+ jQuery._data( this, "toggle" + p, method === "show" ? "hide" : "show" );
+ e[ method ]();
+ } else {
+ e[ val ]();
+ }
+
+ } else {
+ parts = rfxnum.exec( val );
+ start = e.cur();
+
+ if ( parts ) {
+ end = parseFloat( parts[2] );
+ unit = parts[3] || ( jQuery.cssNumber[ p ] ? "" : "px" );
+
+ // We need to compute starting value
+ if ( unit !== "px" ) {
+ jQuery.style( this, p, (end || 1) + unit);
+ start = ((end || 1) / e.cur()) * start;
+ jQuery.style( this, p, start + unit);
+ }
+
+ // If a +=/-= token was provided, we're doing a relative animation
+ if ( parts[1] ) {
+ end = ( (parts[ 1 ] === "-=" ? -1 : 1) * end ) + start;
+ }
+
+ e.custom( start, end, unit );
+
+ } else {
+ e.custom( start, val, "" );
+ }
+ }
+ }
+
+ // For JS strict compliance
+ return true;
+ }
+
+ return optall.queue === false ?
+ this.each( doAnimation ) :
+ this.queue( optall.queue, doAnimation );
+ },
+
+ stop: function( type, clearQueue, gotoEnd ) {
+ if ( typeof type !== "string" ) {
+ gotoEnd = clearQueue;
+ clearQueue = type;
+ type = undefined;
+ }
+ if ( clearQueue && type !== false ) {
+ this.queue( type || "fx", [] );
+ }
+
+ return this.each(function() {
+ var i,
+ hadTimers = false,
+ timers = jQuery.timers,
+ data = jQuery._data( this );
+
+ // clear marker counters if we know they won't be
+ if ( !gotoEnd ) {
+ jQuery._unmark( true, this );
+ }
+
+ function stopQueue( elem, data, i ) {
+ var runner = data[ i ];
+ jQuery.removeData( elem, i, true );
+ runner.stop( gotoEnd );
+ }
+
+ if ( type == null ) {
+ for ( i in data ) {
+ if ( data[ i ].stop && i.indexOf(".run") === i.length - 4 ) {
+ stopQueue( this, data, i );
+ }
+ }
+ } else if ( data[ i = type + ".run" ] && data[ i ].stop ){
+ stopQueue( this, data, i );
+ }
+
+ for ( i = timers.length; i--; ) {
+ if ( timers[ i ].elem === this && (type == null || timers[ i ].queue === type) ) {
+ if ( gotoEnd ) {
+
+ // force the next step to be the last
+ timers[ i ]( true );
+ } else {
+ timers[ i ].saveState();
+ }
+ hadTimers = true;
+ timers.splice( i, 1 );
+ }
+ }
+
+ // start the next in the queue if the last step wasn't forced
+ // timers currently will call their complete callbacks, which will dequeue
+ // but only if they were gotoEnd
+ if ( !( gotoEnd && hadTimers ) ) {
+ jQuery.dequeue( this, type );
+ }
+ });
+ }
+
+});
+
+// Animations created synchronously will run synchronously
+function createFxNow() {
+ setTimeout( clearFxNow, 0 );
+ return ( fxNow = jQuery.now() );
+}
+
+function clearFxNow() {
+ fxNow = undefined;
+}
+
+// Generate parameters to create a standard animation
+function genFx( type, num ) {
+ var obj = {};
+
+ jQuery.each( fxAttrs.concat.apply([], fxAttrs.slice( 0, num )), function() {
+ obj[ this ] = type;
+ });
+
+ return obj;
+}
+
+// Generate shortcuts for custom animations
+jQuery.each({
+ slideDown: genFx( "show", 1 ),
+ slideUp: genFx( "hide", 1 ),
+ slideToggle: genFx( "toggle", 1 ),
+ fadeIn: { opacity: "show" },
+ fadeOut: { opacity: "hide" },
+ fadeToggle: { opacity: "toggle" }
+}, function( name, props ) {
+ jQuery.fn[ name ] = function( speed, easing, callback ) {
+ return this.animate( props, speed, easing, callback );
+ };
+});
+
+jQuery.extend({
+ speed: function( speed, easing, fn ) {
+ var opt = speed && typeof speed === "object" ? jQuery.extend( {}, speed ) : {
+ complete: fn || !fn && easing ||
+ jQuery.isFunction( speed ) && speed,
+ duration: speed,
+ easing: fn && easing || easing && !jQuery.isFunction( easing ) && easing
+ };
+
+ opt.duration = jQuery.fx.off ? 0 : typeof opt.duration === "number" ? opt.duration :
+ opt.duration in jQuery.fx.speeds ? jQuery.fx.speeds[ opt.duration ] : jQuery.fx.speeds._default;
+
+ // normalize opt.queue - true/undefined/null -> "fx"
+ if ( opt.queue == null || opt.queue === true ) {
+ opt.queue = "fx";
+ }
+
+ // Queueing
+ opt.old = opt.complete;
+
+ opt.complete = function( noUnmark ) {
+ if ( jQuery.isFunction( opt.old ) ) {
+ opt.old.call( this );
+ }
+
+ if ( opt.queue ) {
+ jQuery.dequeue( this, opt.queue );
+ } else if ( noUnmark !== false ) {
+ jQuery._unmark( this );
+ }
+ };
+
+ return opt;
+ },
+
+ easing: {
+ linear: function( p, n, firstNum, diff ) {
+ return firstNum + diff * p;
+ },
+ swing: function( p, n, firstNum, diff ) {
+ return ((-Math.cos(p*Math.PI)/2) + 0.5) * diff + firstNum;
+ }
+ },
+
+ timers: [],
+
+ fx: function( elem, options, prop ) {
+ this.options = options;
+ this.elem = elem;
+ this.prop = prop;
+
+ options.orig = options.orig || {};
+ }
+
+});
+
+jQuery.fx.prototype = {
+ // Simple function for setting a style value
+ update: function() {
+ if ( this.options.step ) {
+ this.options.step.call( this.elem, this.now, this );
+ }
+
+ (jQuery.fx.step[ this.prop ] || jQuery.fx.step._default)( this );
+ },
+
+ // Get the current size
+ cur: function() {
+ if ( this.elem[ this.prop ] != null && (!this.elem.style || this.elem.style[ this.prop ] == null) ) {
+ return this.elem[ this.prop ];
+ }
+
+ var parsed,
+ r = jQuery.css( this.elem, this.prop );
+ // Empty strings, null, undefined and "auto" are converted to 0,
+ // complex values such as "rotate(1rad)" are returned as is,
+ // simple values such as "10px" are parsed to Float.
+ return isNaN( parsed = parseFloat( r ) ) ? !r || r === "auto" ? 0 : r : parsed;
+ },
+
+ // Start an animation from one number to another
+ custom: function( from, to, unit ) {
+ var self = this,
+ fx = jQuery.fx;
+
+ this.startTime = fxNow || createFxNow();
+ this.end = to;
+ this.now = this.start = from;
+ this.pos = this.state = 0;
+ this.unit = unit || this.unit || ( jQuery.cssNumber[ this.prop ] ? "" : "px" );
+
+ function t( gotoEnd ) {
+ return self.step( gotoEnd );
+ }
+
+ t.queue = this.options.queue;
+ t.elem = this.elem;
+ t.saveState = function() {
+ if ( self.options.hide && jQuery._data( self.elem, "fxshow" + self.prop ) === undefined ) {
+ jQuery._data( self.elem, "fxshow" + self.prop, self.start );
+ }
+ };
+
+ if ( t() && jQuery.timers.push(t) && !timerId ) {
+ timerId = setInterval( fx.tick, fx.interval );
+ }
+ },
+
+ // Simple 'show' function
+ show: function() {
+ var dataShow = jQuery._data( this.elem, "fxshow" + this.prop );
+
+ // Remember where we started, so that we can go back to it later
+ this.options.orig[ this.prop ] = dataShow || jQuery.style( this.elem, this.prop );
+ this.options.show = true;
+
+ // Begin the animation
+ // Make sure that we start at a small width/height to avoid any flash of content
+ if ( dataShow !== undefined ) {
+ // This show is picking up where a previous hide or show left off
+ this.custom( this.cur(), dataShow );
+ } else {
+ this.custom( this.prop === "width" || this.prop === "height" ? 1 : 0, this.cur() );
+ }
+
+ // Start by showing the element
+ jQuery( this.elem ).show();
+ },
+
+ // Simple 'hide' function
+ hide: function() {
+ // Remember where we started, so that we can go back to it later
+ this.options.orig[ this.prop ] = jQuery._data( this.elem, "fxshow" + this.prop ) || jQuery.style( this.elem, this.prop );
+ this.options.hide = true;
+
+ // Begin the animation
+ this.custom( this.cur(), 0 );
+ },
+
+ // Each step of an animation
+ step: function( gotoEnd ) {
+ var p, n, complete,
+ t = fxNow || createFxNow(),
+ done = true,
+ elem = this.elem,
+ options = this.options;
+
+ if ( gotoEnd || t >= options.duration + this.startTime ) {
+ this.now = this.end;
+ this.pos = this.state = 1;
+ this.update();
+
+ options.animatedProperties[ this.prop ] = true;
+
+ for ( p in options.animatedProperties ) {
+ if ( options.animatedProperties[ p ] !== true ) {
+ done = false;
+ }
+ }
+
+ if ( done ) {
+ // Reset the overflow
+ if ( options.overflow != null && !jQuery.support.shrinkWrapBlocks ) {
+
+ jQuery.each( [ "", "X", "Y" ], function( index, value ) {
+ elem.style[ "overflow" + value ] = options.overflow[ index ];
+ });
+ }
+
+ // Hide the element if the "hide" operation was done
+ if ( options.hide ) {
+ jQuery( elem ).hide();
+ }
+
+ // Reset the properties, if the item has been hidden or shown
+ if ( options.hide || options.show ) {
+ for ( p in options.animatedProperties ) {
+ jQuery.style( elem, p, options.orig[ p ] );
+ jQuery.removeData( elem, "fxshow" + p, true );
+ // Toggle data is no longer needed
+ jQuery.removeData( elem, "toggle" + p, true );
+ }
+ }
+
+ // Execute the complete function
+ // in the event that the complete function throws an exception
+ // we must ensure it won't be called twice. #5684
+
+ complete = options.complete;
+ if ( complete ) {
+
+ options.complete = false;
+ complete.call( elem );
+ }
+ }
+
+ return false;
+
+ } else {
+ // classical easing cannot be used with an Infinity duration
+ if ( options.duration == Infinity ) {
+ this.now = t;
+ } else {
+ n = t - this.startTime;
+ this.state = n / options.duration;
+
+ // Perform the easing function, defaults to swing
+ this.pos = jQuery.easing[ options.animatedProperties[this.prop] ]( this.state, n, 0, 1, options.duration );
+ this.now = this.start + ( (this.end - this.start) * this.pos );
+ }
+ // Perform the next step of the animation
+ this.update();
+ }
+
+ return true;
+ }
+};
+
+jQuery.extend( jQuery.fx, {
+ tick: function() {
+ var timer,
+ timers = jQuery.timers,
+ i = 0;
+
+ for ( ; i < timers.length; i++ ) {
+ timer = timers[ i ];
+ // Checks the timer has not already been removed
+ if ( !timer() && timers[ i ] === timer ) {
+ timers.splice( i--, 1 );
+ }
+ }
+
+ if ( !timers.length ) {
+ jQuery.fx.stop();
+ }
+ },
+
+ interval: 13,
+
+ stop: function() {
+ clearInterval( timerId );
+ timerId = null;
+ },
+
+ speeds: {
+ slow: 600,
+ fast: 200,
+ // Default speed
+ _default: 400
+ },
+
+ step: {
+ opacity: function( fx ) {
+ jQuery.style( fx.elem, "opacity", fx.now );
+ },
+
+ _default: function( fx ) {
+ if ( fx.elem.style && fx.elem.style[ fx.prop ] != null ) {
+ fx.elem.style[ fx.prop ] = fx.now + fx.unit;
+ } else {
+ fx.elem[ fx.prop ] = fx.now;
+ }
+ }
+ }
+});
+
+// Adds width/height step functions
+// Do not set anything below 0
+jQuery.each([ "width", "height" ], function( i, prop ) {
+ jQuery.fx.step[ prop ] = function( fx ) {
+ jQuery.style( fx.elem, prop, Math.max(0, fx.now) );
+ };
+});
+
+if ( jQuery.expr && jQuery.expr.filters ) {
+ jQuery.expr.filters.animated = function( elem ) {
+ return jQuery.grep(jQuery.timers, function( fn ) {
+ return elem === fn.elem;
+ }).length;
+ };
+}
+
+// Try to restore the default display value of an element
+function defaultDisplay( nodeName ) {
+
+ if ( !elemdisplay[ nodeName ] ) {
+
+ var body = document.body,
+ elem = jQuery( "<" + nodeName + ">" ).appendTo( body ),
+ display = elem.css( "display" );
+
+ elem.remove();
+
+ // If the simple way fails,
+ // get element's real default display by attaching it to a temp iframe
+ if ( display === "none" || display === "" ) {
+ // No iframe to use yet, so create it
+ if ( !iframe ) {
+ iframe = document.createElement( "iframe" );
+ iframe.frameBorder = iframe.width = iframe.height = 0;
+ }
+
+ body.appendChild( iframe );
+
+ // Create a cacheable copy of the iframe document on first call.
+ // IE and Opera will allow us to reuse the iframeDoc without re-writing the fake HTML
+ // document to it; WebKit & Firefox won't allow reusing the iframe document.
+ if ( !iframeDoc || !iframe.createElement ) {
+ iframeDoc = ( iframe.contentWindow || iframe.contentDocument ).document;
+ iframeDoc.write( ( document.compatMode === "CSS1Compat" ? "<!doctype html>" : "" ) + "<html><body>" );
+ iframeDoc.close();
+ }
+
+ elem = iframeDoc.createElement( nodeName );
+
+ iframeDoc.body.appendChild( elem );
+
+ display = jQuery.css( elem, "display" );
+
+ body.removeChild( iframe );
+ }
+
+ // Store the correct default display
+ elemdisplay[ nodeName ] = display;
+ }
+
+ return elemdisplay[ nodeName ];
+}
+
+
+
+
+var rtable = /^t(?:able|d|h)$/i,
+ rroot = /^(?:body|html)$/i;
+
+if ( "getBoundingClientRect" in document.documentElement ) {
+ jQuery.fn.offset = function( options ) {
+ var elem = this[0], box;
+
+ if ( options ) {
+ return this.each(function( i ) {
+ jQuery.offset.setOffset( this, options, i );
+ });
+ }
+
+ if ( !elem || !elem.ownerDocument ) {
+ return null;
+ }
+
+ if ( elem === elem.ownerDocument.body ) {
+ return jQuery.offset.bodyOffset( elem );
+ }
+
+ try {
+ box = elem.getBoundingClientRect();
+ } catch(e) {}
+
+ var doc = elem.ownerDocument,
+ docElem = doc.documentElement;
+
+ // Make sure we're not dealing with a disconnected DOM node
+ if ( !box || !jQuery.contains( docElem, elem ) ) {
+ return box ? { top: box.top, left: box.left } : { top: 0, left: 0 };
+ }
+
+ var body = doc.body,
+ win = getWindow(doc),
+ clientTop = docElem.clientTop || body.clientTop || 0,
+ clientLeft = docElem.clientLeft || body.clientLeft || 0,
+ scrollTop = win.pageYOffset || jQuery.support.boxModel && docElem.scrollTop || body.scrollTop,
+ scrollLeft = win.pageXOffset || jQuery.support.boxModel && docElem.scrollLeft || body.scrollLeft,
+ top = box.top + scrollTop - clientTop,
+ left = box.left + scrollLeft - clientLeft;
+
+ return { top: top, left: left };
+ };
+
+} else {
+ jQuery.fn.offset = function( options ) {
+ var elem = this[0];
+
+ if ( options ) {
+ return this.each(function( i ) {
+ jQuery.offset.setOffset( this, options, i );
+ });
+ }
+
+ if ( !elem || !elem.ownerDocument ) {
+ return null;
+ }
+
+ if ( elem === elem.ownerDocument.body ) {
+ return jQuery.offset.bodyOffset( elem );
+ }
+
+ var computedStyle,
+ offsetParent = elem.offsetParent,
+ prevOffsetParent = elem,
+ doc = elem.ownerDocument,
+ docElem = doc.documentElement,
+ body = doc.body,
+ defaultView = doc.defaultView,
+ prevComputedStyle = defaultView ? defaultView.getComputedStyle( elem, null ) : elem.currentStyle,
+ top = elem.offsetTop,
+ left = elem.offsetLeft;
+
+ while ( (elem = elem.parentNode) && elem !== body && elem !== docElem ) {
+ if ( jQuery.offset.supportsFixedPosition && prevComputedStyle.position === "fixed" ) {
+ break;
+ }
+
+ computedStyle = defaultView ? defaultView.getComputedStyle(elem, null) : elem.currentStyle;
+ top -= elem.scrollTop;
+ left -= elem.scrollLeft;
+
+ if ( elem === offsetParent ) {
+ top += elem.offsetTop;
+ left += elem.offsetLeft;
+
+ if ( jQuery.offset.doesNotAddBorder && !(jQuery.offset.doesAddBorderForTableAndCells && rtable.test(elem.nodeName)) ) {
+ top += parseFloat( computedStyle.borderTopWidth ) || 0;
+ left += parseFloat( computedStyle.borderLeftWidth ) || 0;
+ }
+
+ prevOffsetParent = offsetParent;
+ offsetParent = elem.offsetParent;
+ }
+
+ if ( jQuery.offset.subtractsBorderForOverflowNotVisible && computedStyle.overflow !== "visible" ) {
+ top += parseFloat( computedStyle.borderTopWidth ) || 0;
+ left += parseFloat( computedStyle.borderLeftWidth ) || 0;
+ }
+
+ prevComputedStyle = computedStyle;
+ }
+
+ if ( prevComputedStyle.position === "relative" || prevComputedStyle.position === "static" ) {
+ top += body.offsetTop;
+ left += body.offsetLeft;
+ }
+
+ if ( jQuery.offset.supportsFixedPosition && prevComputedStyle.position === "fixed" ) {
+ top += Math.max( docElem.scrollTop, body.scrollTop );
+ left += Math.max( docElem.scrollLeft, body.scrollLeft );
+ }
+
+ return { top: top, left: left };
+ };
+}
+
+jQuery.offset = {};
+
+jQuery.each(
+ ( "doesAddBorderForTableAndCells doesNotAddBorder " +
+ "doesNotIncludeMarginInBodyOffset subtractsBorderForOverflowNotVisible " +
+ "supportsFixedPosition" ).split(" "), function( i, prop ) {
+
+ jQuery.offset[ prop ] = jQuery.support[ prop ];
+});
+
+jQuery.extend( jQuery.offset, {
+
+ bodyOffset: function( body ) {
+ var top = body.offsetTop,
+ left = body.offsetLeft;
+
+ if ( jQuery.offset.doesNotIncludeMarginInBodyOffset ) {
+ top += parseFloat( jQuery.css(body, "marginTop") ) || 0;
+ left += parseFloat( jQuery.css(body, "marginLeft") ) || 0;
+ }
+
+ return { top: top, left: left };
+ },
+
+ setOffset: function( elem, options, i ) {
+ var position = jQuery.css( elem, "position" );
+
+ // set position first, in-case top/left are set even on static elem
+ if ( position === "static" ) {
+ elem.style.position = "relative";
+ }
+
+ var curElem = jQuery( elem ),
+ curOffset = curElem.offset(),
+ curCSSTop = jQuery.css( elem, "top" ),
+ curCSSLeft = jQuery.css( elem, "left" ),
+ calculatePosition = (position === "absolute" || position === "fixed") && jQuery.inArray("auto", [curCSSTop, curCSSLeft]) > -1,
+ props = {}, curPosition = {}, curTop, curLeft;
+
+ // need to be able to calculate position if either top or left is auto and position is either absolute or fixed
+ if ( calculatePosition ) {
+ curPosition = curElem.position();
+ curTop = curPosition.top;
+ curLeft = curPosition.left;
+ } else {
+ curTop = parseFloat( curCSSTop ) || 0;
+ curLeft = parseFloat( curCSSLeft ) || 0;
+ }
+
+ if ( jQuery.isFunction( options ) ) {
+ options = options.call( elem, i, curOffset );
+ }
+
+ if (options.top != null) {
+ props.top = (options.top - curOffset.top) + curTop;
+ }
+ if (options.left != null) {
+ props.left = (options.left - curOffset.left) + curLeft;
+ }
+
+ if ( "using" in options ) {
+ options.using.call( elem, props );
+ } else {
+ curElem.css( props );
+ }
+ }
+});
+
+
+jQuery.fn.extend({
+
+ position: function() {
+ if ( !this[0] ) {
+ return null;
+ }
+
+ var elem = this[0],
+
+ // Get *real* offsetParent
+ offsetParent = this.offsetParent(),
+
+ // Get correct offsets
+ offset = this.offset(),
+ parentOffset = rroot.test(offsetParent[0].nodeName) ? { top: 0, left: 0 } : offsetParent.offset();
+
+ // Subtract element margins
+ // note: when an element has margin: auto the offsetLeft and marginLeft
+ // are the same in Safari causing offset.left to incorrectly be 0
+ offset.top -= parseFloat( jQuery.css(elem, "marginTop") ) || 0;
+ offset.left -= parseFloat( jQuery.css(elem, "marginLeft") ) || 0;
+
+ // Add offsetParent borders
+ parentOffset.top += parseFloat( jQuery.css(offsetParent[0], "borderTopWidth") ) || 0;
+ parentOffset.left += parseFloat( jQuery.css(offsetParent[0], "borderLeftWidth") ) || 0;
+
+ // Subtract the two offsets
+ return {
+ top: offset.top - parentOffset.top,
+ left: offset.left - parentOffset.left
+ };
+ },
+
+ offsetParent: function() {
+ return this.map(function() {
+ var offsetParent = this.offsetParent || document.body;
+ while ( offsetParent && (!rroot.test(offsetParent.nodeName) && jQuery.css(offsetParent, "position") === "static") ) {
+ offsetParent = offsetParent.offsetParent;
+ }
+ return offsetParent;
+ });
+ }
+});
+
+
+// Create scrollLeft and scrollTop methods
+jQuery.each( ["Left", "Top"], function( i, name ) {
+ var method = "scroll" + name;
+
+ jQuery.fn[ method ] = function( val ) {
+ var elem, win;
+
+ if ( val === undefined ) {
+ elem = this[ 0 ];
+
+ if ( !elem ) {
+ return null;
+ }
+
+ win = getWindow( elem );
+
+ // Return the scroll offset
+ return win ? ("pageXOffset" in win) ? win[ i ? "pageYOffset" : "pageXOffset" ] :
+ jQuery.support.boxModel && win.document.documentElement[ method ] ||
+ win.document.body[ method ] :
+ elem[ method ];
+ }
+
+ // Set the scroll offset
+ return this.each(function() {
+ win = getWindow( this );
+
+ if ( win ) {
+ win.scrollTo(
+ !i ? val : jQuery( win ).scrollLeft(),
+ i ? val : jQuery( win ).scrollTop()
+ );
+
+ } else {
+ this[ method ] = val;
+ }
+ });
+ };
+});
+
+function getWindow( elem ) {
+ return jQuery.isWindow( elem ) ?
+ elem :
+ elem.nodeType === 9 ?
+ elem.defaultView || elem.parentWindow :
+ false;
+}
+
+
+
+
+// Create width, height, innerHeight, innerWidth, outerHeight and outerWidth methods
+jQuery.each([ "Height", "Width" ], function( i, name ) {
+
+ var type = name.toLowerCase();
+
+ // innerHeight and innerWidth
+ jQuery.fn[ "inner" + name ] = function() {
+ var elem = this[0];
+ return elem ?
+ elem.style ?
+ parseFloat( jQuery.css( elem, type, "padding" ) ) :
+ this[ type ]() :
+ null;
+ };
+
+ // outerHeight and outerWidth
+ jQuery.fn[ "outer" + name ] = function( margin ) {
+ var elem = this[0];
+ return elem ?
+ elem.style ?
+ parseFloat( jQuery.css( elem, type, margin ? "margin" : "border" ) ) :
+ this[ type ]() :
+ null;
+ };
+
+ jQuery.fn[ type ] = function( size ) {
+ // Get window width or height
+ var elem = this[0];
+ if ( !elem ) {
+ return size == null ? null : this;
+ }
+
+ if ( jQuery.isFunction( size ) ) {
+ return this.each(function( i ) {
+ var self = jQuery( this );
+ self[ type ]( size.call( this, i, self[ type ]() ) );
+ });
+ }
+
+ if ( jQuery.isWindow( elem ) ) {
+ // Everyone else use document.documentElement or document.body depending on Quirks vs Standards mode
+ // 3rd condition allows Nokia support, as it supports the docElem prop but not CSS1Compat
+ var docElemProp = elem.document.documentElement[ "client" + name ],
+ body = elem.document.body;
+ return elem.document.compatMode === "CSS1Compat" && docElemProp ||
+ body && body[ "client" + name ] || docElemProp;
+
+ // Get document width or height
+ } else if ( elem.nodeType === 9 ) {
+ // Either scroll[Width/Height] or offset[Width/Height], whichever is greater
+ return Math.max(
+ elem.documentElement["client" + name],
+ elem.body["scroll" + name], elem.documentElement["scroll" + name],
+ elem.body["offset" + name], elem.documentElement["offset" + name]
+ );
+
+ // Get or set width or height on the element
+ } else if ( size === undefined ) {
+ var orig = jQuery.css( elem, type ),
+ ret = parseFloat( orig );
+
+ return jQuery.isNumeric( ret ) ? ret : orig;
+
+ // Set the width or height on the element (default to pixels if value is unitless)
+ } else {
+ return this.css( type, typeof size === "string" ? size : size + "px" );
+ }
+ };
+
+});
+
+
+// Expose jQuery to the global object
+window.jQuery = window.$ = jQuery;
+})(window);
--- /dev/null
+/*! Copyright (c) 2011, Lloyd Hilaiel, ISC License */
+/*
+ * This is the JSONSelect reference implementation, in javascript.
+ */
+(function(exports) {
+
+ var // localize references
+ toString = Object.prototype.toString;
+
+ function jsonParse(str) {
+ try {
+ if(JSON && JSON.parse){
+ return JSON.parse(str);
+ }
+ return (new Function("return " + str))();
+ } catch(e) {
+ te("ijs");
+ }
+ }
+
+ // emitted error codes.
+ var errorCodes = {
+ "ijs": "invalid json string",
+ "mpc": "multiple pseudo classes (:xxx) not allowed",
+ "mepf": "malformed expression in pseudo-function",
+ "nmi": "multiple ids not allowed",
+ "se": "selector expected",
+ "sra": "string required after '.'",
+ "uc": "unrecognized char",
+ "ujs": "unclosed json string",
+ "upc": "unrecognized pseudo class"
+ };
+
+ // throw an error message
+ function te(ec) {
+ throw new Error(errorCodes[ec]);
+ }
+
+ // THE LEXER
+ var toks = {
+ psc: 1, // pseudo class
+ psf: 2, // pseudo class function
+ typ: 3, // type
+ str: 4 // string
+ };
+
+ var pat = /^(?:([\r\n\t\ ]+)|([*.,>])|(string|boolean|null|array|object|number)|(:(?:root|first-child|last-child|only-child))|(:(?:nth-child|nth-last-child))|(:\w+)|(\"(?:[^\\]|\\[^\"])*\")|(\")|((?:[_a-zA-Z]|[^\0-\0177]|\\[^\r\n\f0-9a-fA-F])(?:[_a-zA-Z0-9\-]|[^\u0000-\u0177]|(?:\\[^\r\n\f0-9a-fA-F]))*))/;
+ var exprPat = /^\s*\(\s*(?:([+\-]?)([0-9]*)n\s*(?:([+\-])\s*([0-9]))?|(odd|even)|([+\-]?[0-9]+))\s*\)/;
+ var lex = function (str, off) {
+ if (!off) off = 0;
+ var m = pat.exec(str.substr(off));
+ if (!m) return undefined;
+ off+=m[0].length;
+ var a;
+ if (m[1]) a = [off, " "];
+ else if (m[2]) a = [off, m[0]];
+ else if (m[3]) a = [off, toks.typ, m[0]];
+ else if (m[4]) a = [off, toks.psc, m[0]];
+ else if (m[5]) a = [off, toks.psf, m[0]];
+ else if (m[6]) te("upc");
+ else if (m[7]) a = [off, toks.str, jsonParse(m[0])];
+ else if (m[8]) te("ujs");
+ else if (m[9]) a = [off, toks.str, m[0].replace(/\\([^\r\n\f0-9a-fA-F])/g,"$1")];
+ return a;
+ };
+
+ // THE PARSER
+
+ var parse = function (str) {
+ var a = [], off = 0, am;
+
+ while (true) {
+ var s = parse_selector(str, off);
+ a.push(s[1]);
+ s = lex(str, off = s[0]);
+ if (s && s[1] === " ") s = lex(str, off = s[0]);
+ if (!s) break;
+ // now we've parsed a selector, and have something else...
+ if (s[1] === ">") {
+ a.push(">");
+ off = s[0];
+ } else if (s[1] === ",") {
+ if (am === undefined) am = [ ",", a ];
+ else am.push(a);
+ a = [];
+ off = s[0];
+ }
+ }
+ if (am) am.push(a);
+ return am ? am : a;
+ };
+
+ var parse_selector = function(str, off) {
+ var soff = off;
+ var s = { };
+ var l = lex(str, off);
+ // skip space
+ if (l && l[1] === " ") { soff = off = l[0]; l = lex(str, off); }
+ if (l && l[1] === toks.typ) {
+ s.type = l[2];
+ l = lex(str, (off = l[0]));
+ } else if (l && l[1] === "*") {
+ // don't bother representing the universal sel, '*' in the
+ // parse tree, cause it's the default
+ l = lex(str, (off = l[0]));
+ }
+
+ // now support either an id or a pc
+ while (true) {
+ if (l === undefined) {
+ break;
+ } else if (l[1] === ".") {
+ l = lex(str, (off = l[0]));
+ if (!l || l[1] !== toks.str) te("sra");
+ if (s.id) te("nmi");
+ s.id = l[2];
+ } else if (l[1] === toks.psc) {
+ if (s.pc || s.pf) te("mpc");
+ // collapse first-child and last-child into nth-child expressions
+ if (l[2] === ":first-child") {
+ s.pf = ":nth-child";
+ s.a = 0;
+ s.b = 1;
+ } else if (l[2] === ":last-child") {
+ s.pf = ":nth-last-child";
+ s.a = 0;
+ s.b = 1;
+ } else {
+ s.pc = l[2];
+ }
+ } else if (l[1] === toks.psf) {
+ if (s.pc || s.pf ) te("mpc");
+ s.pf = l[2];
+ var m = exprPat.exec(str.substr(l[0]));
+ if (!m) te("mepf");
+ if (m[5]) {
+ s.a = 2;
+ s.b = (m[5] === "odd") ? 1 : 0;
+ } else if (m[6]) {
+ s.a = 0;
+ s.b = parseInt(m[6], 10);
+ } else {
+ s.a = parseInt((m[1] ? m[1] : "+") + (m[2] ? m[2] : "1"),10);
+ s.b = m[3] ? parseInt(m[3] + m[4],10) : 0;
+ }
+ l[0] += m[0].length;
+ } else {
+ break;
+ }
+ l = lex(str, (off = l[0]));
+ }
+
+ // now if we didn't actually parse anything it's an error
+ if (soff === off) te("se");
+
+ return [off, s];
+ };
+
+ // THE EVALUATOR
+
+ function isArray(o) {
+ return Array.isArray ? Array.isArray(o) :
+ toString.call(o) === "[object Array]";
+ }
+
+ function mytypeof(o) {
+ if (o === null) return "null";
+ var to = typeof o;
+ if (to === "object" && isArray(o)) to = "array";
+ return to;
+ }
+
+ function mn(node, sel, id, num, tot) {
+ var sels = [];
+ var cs = (sel[0] === ">") ? sel[1] : sel[0];
+ var m = true, mod;
+ if (cs.type) m = m && (cs.type === mytypeof(node));
+ if (cs.id) m = m && (cs.id === id);
+ if (m && cs.pf) {
+ if (cs.pf === ":nth-last-child") num = tot - num;
+ else num++;
+ if (cs.a === 0) {
+ m = cs.b === num;
+ } else {
+ mod = ((num - cs.b) % cs.a);
+
+ m = (!mod && ((num*cs.a + cs.b) >= 0));
+ }
+ }
+
+ // should we repeat this selector for descendants?
+ if (sel[0] !== ">" && sel[0].pc !== ":root") sels.push(sel);
+
+ if (m) {
+ // is there a fragment that we should pass down?
+ if (sel[0] === ">") { if (sel.length > 2) { m = false; sels.push(sel.slice(2)); } }
+ else if (sel.length > 1) { m = false; sels.push(sel.slice(1)); }
+ }
+
+ return [m, sels];
+ }
+
+ function forEach(sel, obj, fun, id, num, tot) {
+ var a = (sel[0] === ",") ? sel.slice(1) : [sel],
+ a0 = [],
+ call = false,
+ i = 0, j = 0, l = 0, k, x;
+ for (i = 0; i < a.length; i++) {
+ x = mn(obj, a[i], id, num, tot);
+ if (x[0]) {
+ call = true;
+ }
+ for (j = 0; j < x[1].length; j++) {
+ a0.push(x[1][j]);
+ }
+ }
+ if (a0.length && typeof obj === "object") {
+ if (a0.length >= 1) {
+ a0.unshift(",");
+ }
+ if (isArray(obj)) {
+ for (i = 0; i < obj.length; i++) {
+ forEach(a0, obj[i], fun, undefined, i, obj.length);
+ }
+ } else {
+ // it's a shame to do this for :last-child and other
+ // properties which count from the end when we don't
+ // even know if they're present. Also, the stream
+ // parser is going to be pissed.
+ l = 0;
+ for (k in obj) {
+ if (obj.hasOwnProperty(k)) {
+ l++;
+ }
+ }
+ i = 0;
+ for (k in obj) {
+ if (obj.hasOwnProperty(k)) {
+ forEach(a0, obj[k], fun, k, i++, l);
+ }
+ }
+ }
+ }
+ if (call && fun) {
+ fun(obj);
+ }
+ }
+
+ function match(sel, obj) {
+ var a = [];
+ forEach(sel, obj, function(x) {
+ a.push(x);
+ });
+ return a;
+ }
+
+ function compile(sel) {
+ return {
+ sel: parse(sel),
+ match: function(obj){
+ return match(this.sel, obj);
+ },
+ forEach: function(obj, fun) {
+ return forEach(this.sel, obj, fun);
+ }
+ };
+ }
+
+ exports._lex = lex;
+ exports._parse = parse;
+ exports.match = function (sel, obj) {
+ return compile(sel).match(obj);
+ };
+ exports.forEach = function(sel, obj, fun) {
+ return compile(sel).forEach(obj, fun);
+ };
+ exports.compile = compile;
+})(typeof exports === "undefined" ? (window.JSONSelect = {}) : exports);
+
--- /dev/null
+
+// Array.prototype.indexOf polyfill
+if (!Array.prototype.indexOf){
+ Array.prototype.indexOf = function(searchElement /*, fromIndex */)
+ {
+ "use strict";
+
+ if (this === void 0 || this === null)
+ throw new TypeError();
+
+ var t = Object(this);
+ var len = t.length >>> 0;
+ if (len === 0)
+ return -1;
+
+ var n = 0;
+ if (arguments.length > 0)
+ {
+ n = Number(arguments[1]);
+ if (n !== n) // shortcut for verifying if it's NaN
+ n = 0;
+ else if (n !== 0 && n !== (1 / 0) && n !== -(1 / 0))
+ n = (n > 0 || -1) * Math.floor(Math.abs(n));
+ }
+
+ if (n >= len)
+ return -1;
+
+ var k = n >= 0
+ ? n
+ : Math.max(len - Math.abs(n), 0);
+
+ for (; k < len; k++)
+ {
+ if (k in t && t[k] === searchElement)
+ return k;
+ }
+ return -1;
+ };
+}
+
+
+// Object.keys()
+if (!Object.keys) Object.keys = function(o){
+ if (o !== Object(o)) throw new TypeError('Object.keys called on non-object');
+ var ret=[], p;
+ for (p in o) if(Object.prototype.hasOwnProperty.call(o,p)) ret.push(p);
+ return ret;
+};
+
+
+
+if (!Array.prototype.map)
+{
+ Array.prototype.map = function(fun /*, thisp */)
+ {
+ "use strict";
+
+ if (this === void 0 || this === null)
+ throw new TypeError();
+
+ var t = Object(this);
+ var len = t.length >>> 0;
+ if (typeof fun !== "function")
+ throw new TypeError();
+
+ var res = new Array(len);
+ var thisp = arguments[1];
+ for (var i = 0; i < len; i++)
+ {
+ if (i in t)
+ res[i] = fun.call(thisp, t[i], i, t);
+ }
+
+ return res;
+ };
+}
+
+
+
+
+/*!
+ http://www.JSON.org/json2.js
+ 2011-10-19
+
+ Public Domain.
+
+ NO WARRANTY EXPRESSED OR IMPLIED. USE AT YOUR OWN RISK.
+
+ See http://www.JSON.org/js.html
+
+ This code should be minified before deployment.
+ See http://javascript.crockford.com/jsmin.html
+
+*/
+var JSON;if(!JSON){JSON={}}(function(){function f(n){return n<10?"0"+n:n}if(typeof Date.prototype.toJSON!=="function"){Date.prototype.toJSON=function(key){return isFinite(this.valueOf())?this.getUTCFullYear()+"-"+f(this.getUTCMonth()+1)+"-"+f(this.getUTCDate())+"T"+f(this.getUTCHours())+":"+f(this.getUTCMinutes())+":"+f(this.getUTCSeconds())+"Z":null};String.prototype.toJSON=Number.prototype.toJSON=Boolean.prototype.toJSON=function(key){return this.valueOf()}}var cx=/[\u0000\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,escapable=/[\\\"\x00-\x1f\x7f-\x9f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,gap,indent,meta={"\b":"\\b","\t":"\\t","\n":"\\n","\f":"\\f","\r":"\\r",'"':'\\"',"\\":"\\\\"},rep;function quote(string){escapable.lastIndex=0;return escapable.test(string)?'"'+string.replace(escapable,function(a){var c=meta[a];return typeof c==="string"?c:"\\u"+("0000"+a.charCodeAt(0).toString(16)).slice(-4)})+'"':'"'+string+'"'}function str(key,holder){var i,k,v,length,mind=gap,partial,value=holder[key];if(value&&typeof value==="object"&&typeof value.toJSON==="function"){value=value.toJSON(key)}if(typeof rep==="function"){value=rep.call(holder,key,value)}switch(typeof value){case"string":return quote(value);case"number":return isFinite(value)?String(value):"null";case"boolean":case"null":return String(value);case"object":if(!value){return"null"}gap+=indent;partial=[];if(Object.prototype.toString.apply(value)==="[object Array]"){length=value.length;for(i=0;i<length;i+=1){partial[i]=str(i,value)||"null"}v=partial.length===0?"[]":gap?"[\n"+gap+partial.join(",\n"+gap)+"\n"+mind+"]":"["+partial.join(",")+"]";gap=mind;return v}if(rep&&typeof rep==="object"){length=rep.length;for(i=0;i<length;i+=1){if(typeof rep[i]==="string"){k=rep[i];v=str(k,value);if(v){partial.push(quote(k)+(gap?": ":":")+v)}}}}else{for(k in value){if(Object.prototype.hasOwnProperty.call(value,k)){v=str(k,value);if(v){partial.push(quote(k)+(gap?": ":":")+v)}}}}v=partial.length===0?"{}":gap?"{\n"+gap+partial.join(",\n"+gap)+"\n"+mind+"}":"{"+partial.join(",")+"}";gap=mind;return v}}if(typeof JSON.stringify!=="function"){JSON.stringify=function(value,replacer,space){var i;gap="";indent="";if(typeof space==="number"){for(i=0;i<space;i+=1){indent+=" "}}else{if(typeof space==="string"){indent=space}}rep=replacer;if(replacer&&typeof replacer!=="function"&&(typeof replacer!=="object"||typeof replacer.length!=="number")){throw new Error("JSON.stringify")}return str("",{"":value})}}if(typeof JSON.parse!=="function"){JSON.parse=function(text,reviver){var j;function walk(holder,key){var k,v,value=holder[key];if(value&&typeof value==="object"){for(k in value){if(Object.prototype.hasOwnProperty.call(value,k)){v=walk(value,k);if(v!==undefined){value[k]=v}else{delete value[k]}}}}return reviver.call(holder,key,value)}text=String(text);cx.lastIndex=0;if(cx.test(text)){text=text.replace(cx,function(a){return"\\u"+("0000"+a.charCodeAt(0).toString(16)).slice(-4)})}if(/^[\],:{}\s]*$/.test(text.replace(/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,"@").replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,"]").replace(/(?:^|:|,)(?:\s*\[)+/g,""))){j=eval("("+text+")");return typeof reviver==="function"?walk({"":j},""):j}throw new SyntaxError("JSON.parse")}}}());
--- /dev/null
+// uaparser by lindsey simon,
+// ported to node by tobie
+// https://github.com/tobie/ua-parser/
+
+// browserized by paul irish
+
+(function(exports){
+
+ exports.uaparse = parse;
+
+ function parse(ua) {
+ for (var i=0; i < parsers.length; i++) {
+ var result = parsers[i](ua);
+ if (result) { return result; }
+ }
+ return new UserAgent();
+ }
+
+ function UserAgent(family) {
+ this.family = family || 'Other';
+ }
+
+ UserAgent.prototype.toVersionString = function() {
+ var output = '';
+ if (this.major != null) {
+ output += this.major;
+ if (this.minor != null) {
+ output += '.' + this.minor;
+ if (this.patch != null) {
+ output += '.' + this.patch;
+ }
+ }
+ }
+ return output;
+ };
+
+ UserAgent.prototype.toString = function() {
+ var suffix = this.toVersionString();
+ if (suffix) { suffix = ' ' + suffix; }
+ return this.family + suffix;
+ };
+
+
+ var regexes = [
+ {"pattern":"^(Opera)/(\\d+)\\.(\\d+) \\(Nintendo Wii",
+ "v1_replacement":null,
+ "family_replacement":"Wii"},
+ {"pattern":"(Namoroka|Shiretoko|Minefield)/(\\d+)\\.(\\d+)\\.(\\d+(?:pre)?)",
+ "v1_replacement":null,
+ "family_replacement":"Firefox ($1)"},
+ {"pattern":"(Namoroka|Shiretoko|Minefield)/(\\d+)\\.(\\d+)([ab]\\d+[a-z]*)?",
+ "v1_replacement":null,
+ "family_replacement":"Firefox ($1)"},
+ {"pattern":"(SeaMonkey|Fennec|Camino)/(\\d+)\\.(\\d+)([ab]?\\d+[a-z]*)",
+ "v1_replacement":null,
+ "family_replacement":null},
+ {"pattern":"(Flock)/(\\d+)\\.(\\d+)(b\\d+?)",
+ "v1_replacement":null,
+ "family_replacement":null},
+ {"pattern":"(Fennec)/(\\d+)\\.(\\d+)(pre)",
+ "v1_replacement":null,
+ "family_replacement":null},
+ {"pattern":"(Navigator)/(\\d+)\\.(\\d+)\\.(\\d+)",
+ "v1_replacement":null,
+ "family_replacement":"Netscape"},
+ {"pattern":"(Navigator)/(\\d+)\\.(\\d+)([ab]\\d+)",
+ "v1_replacement":null,
+ "family_replacement":"Netscape"},
+ {"pattern":"(Netscape6)/(\\d+)\\.(\\d+)\\.(\\d+)",
+ "v1_replacement":null,
+ "family_replacement":"Netscape"},
+ {"pattern":"(MyIBrow)/(\\d+)\\.(\\d+)",
+ "v1_replacement":null,
+ "family_replacement":"My Internet Browser"},
+ {"pattern":"(Firefox).*Tablet browser (\\d+)\\.(\\d+)\\.(\\d+)",
+ "v1_replacement":null,
+ "family_replacement":"MicroB"},
+ {"pattern":"(Opera)/9.80.*Version\\/(\\d+)\\.(\\d+)(?:\\.(\\d+))?",
+ "v1_replacement":null,
+ "family_replacement":null},
+ {"pattern":"(Firefox)/(\\d+)\\.(\\d+)\\.(\\d+(?:pre)?) \\(Swiftfox\\)",
+ "v1_replacement":null,
+ "family_replacement":"Swiftfox"},
+ {"pattern":"(Firefox)/(\\d+)\\.(\\d+)([ab]\\d+[a-z]*)? \\(Swiftfox\\)",
+ "v1_replacement":null,
+ "family_replacement":"Swiftfox"},
+ {"pattern":"(konqueror)/(\\d+)\\.(\\d+)\\.(\\d+)",
+ "v1_replacement":null,
+ "family_replacement":"Konqueror"},
+ {"pattern":"(Jasmine|ANTGalio|Midori|Fresco|Lobo|Maxthon|Lynx|OmniWeb|Dillo|Camino|Demeter|Fluid|Fennec|Shiira|Sunrise|Chrome|Flock|Netscape|Lunascape|Epiphany|WebPilot|Vodafone|NetFront|Konqueror|SeaMonkey|Kazehakase|Vienna|Iceape|Iceweasel|IceWeasel|Iron|K-Meleon|Sleipnir|Galeon|GranParadiso|Opera Mini|iCab|NetNewsWire|Iron|Iris)/(\\d+)\\.(\\d+)\\.(\\d+)",
+ "v1_replacement":null,
+ "family_replacement":null},
+ {"pattern":"(Bolt|Jasmine|Maxthon|Lynx|Arora|IBrowse|Dillo|Camino|Shiira|Fennec|Phoenix|Chrome|Flock|Netscape|Lunascape|Epiphany|WebPilot|Opera Mini|Opera|Vodafone|NetFront|Konqueror|SeaMonkey|Kazehakase|Vienna|Iceape|Iceweasel|IceWeasel|Iron|K-Meleon|Sleipnir|Galeon|GranParadiso|iCab|NetNewsWire|Iron|Space Bison|Stainless|Orca)/(\\d+)\\.(\\d+)",
+ "v1_replacement":null,
+ "family_replacement":null},
+ {"pattern":"(iRider|Crazy Browser|SkipStone|iCab|Lunascape|Sleipnir|Maemo Browser) (\\d+)\\.(\\d+)\\.(\\d+)",
+ "v1_replacement":null,
+ "family_replacement":null},
+ {"pattern":"(iCab|Lunascape|Opera|Android) (\\d+)\\.(\\d+)",
+ "v1_replacement":null,
+ "family_replacement":null},
+ {"pattern":"(IEMobile) (\\d+)\\.(\\d+)",
+ "v1_replacement":null,
+ "family_replacement":"IE Mobile"},
+ {"pattern":"(Firefox)/(\\d+)\\.(\\d+)\\.(\\d+)",
+ "v1_replacement":null,
+ "family_replacement":null},
+ {"pattern":"(Firefox)/(\\d+)\\.(\\d+)(pre|[ab]\\d+[a-z]*)?",
+ "v1_replacement":null,
+ "family_replacement":null},
+ {"pattern":"(Obigo|OBIGO)[^\\d]*(\\d+)(?:.(\\d+))?",
+ "v1_replacement":null,
+ "family_replacement":"Obigo"},
+ {"pattern":"(MAXTHON|Maxthon) (\\d+)\\.(\\d+)",
+ "v1_replacement":null,
+ "family_replacement":"Maxthon"},
+ {"pattern":"(Maxthon|MyIE2|Uzbl|Shiira)",
+ "v1_replacement":"0",
+ "family_replacement":null},
+ {"pattern":"(PLAYSTATION) (\\d+)",
+ "v1_replacement":null,
+ "family_replacement":"PlayStation"},
+ {"pattern":"(PlayStation Portable)[^\\d]+(\\d+).(\\d+)",
+ "v1_replacement":null,
+ "family_replacement":null},
+ {"pattern":"(BrowseX) \\((\\d+)\\.(\\d+)\\.(\\d+)",
+ "v1_replacement":null,
+ "family_replacement":null},
+ {"pattern":"(Opera)/(\\d+)\\.(\\d+).*Opera Mobi",
+ "v1_replacement":null,
+ "family_replacement":"Opera Mobile"},
+ {"pattern":"(POLARIS)/(\\d+)\\.(\\d+)",
+ "v1_replacement":null,
+ "family_replacement":"Polaris"},
+ {"pattern":"(BonEcho)/(\\d+)\\.(\\d+)\\.(\\d+)",
+ "v1_replacement":null,
+ "family_replacement":"Bon Echo"},
+ {"pattern":"(iPhone) OS (\\d+)_(\\d+)(?:_(\\d+))?",
+ "v1_replacement":null,
+ "family_replacement":null},
+ {"pattern":"(Avant)",
+ "v1_replacement":"1",
+ "family_replacement":null},
+ {"pattern":"(Nokia)[EN]?(\\d+)",
+ "v1_replacement":null,
+ "family_replacement":null},
+ {"pattern":"(Black[bB]erry)(\\d+)",
+ "v1_replacement":null,
+ "family_replacement":"Blackberry"},
+ {"pattern":"(OmniWeb)/v(\\d+)\\.(\\d+)",
+ "v1_replacement":null,
+ "family_replacement":null},
+ {"pattern":"(Blazer)/(\\d+)\\.(\\d+)",
+ "v1_replacement":null,
+ "family_replacement":"Palm Blazer"},
+ {"pattern":"(Pre)/(\\d+)\\.(\\d+)",
+ "v1_replacement":null,
+ "family_replacement":"Palm Pre"},
+ {"pattern":"(Links) \\((\\d+)\\.(\\d+)",
+ "v1_replacement":null,
+ "family_replacement":null},
+ {"pattern":"(QtWeb) Internet Browser/(\\d+)\\.(\\d+)",
+ "v1_replacement":null,
+ "family_replacement":null},
+ {"pattern":"(Version)/(\\d+)\\.(\\d+)(?:\\.(\\d+))?.*Safari/",
+ "v1_replacement":null,
+ "family_replacement":"Safari"},
+ {"pattern":"(OLPC)/Update(\\d+)\\.(\\d+)",
+ "v1_replacement":null,
+ "family_replacement":null},
+ {"pattern":"(OLPC)/Update()\\.(\\d+)",
+ "v1_replacement":"0",
+ "family_replacement":null},
+ {"pattern":"(SamsungSGHi560)",
+ "v1_replacement":null,
+ "family_replacement":"Samsung SGHi560"},
+ {"pattern":"^(SonyEricssonK800i)",
+ "v1_replacement":null,
+ "family_replacement":"Sony Ericsson K800i"},
+ {"pattern":"(Teleca Q7)",
+ "v1_replacement":null,
+ "family_replacement":null},
+ {"pattern":"(MSIE) (\\d+)\\.(\\d+)",
+ "v1_replacement":null,
+ "family_replacement":"IE"}
+
+ ];
+
+ var parsers = regexes.map(function(obj) {
+ var regexp = new RegExp(obj.pattern),
+ famRep = obj.family_replacement,
+ v1Rep = obj.v1_replacement;
+
+ function parser(ua) {
+ var m = ua.match(regexp);
+
+ if (!m) { return null; }
+
+ var familly = famRep ? famRep.replace('$1', m[1]) : m[1];
+
+ var obj = new UserAgent(familly);
+ obj.major = parseInt(v1Rep ? v1Rep : m[2]);
+ obj.minor = m[3] ? parseInt(m[3]) : null;
+ obj.patch = m[4] ? parseInt(m[4]) : null;
+
+ return obj;
+ }
+
+ return parser;
+ });
+
+
+})(window);
+
+
--- /dev/null
+
+// Avoid `console` errors in browsers that lack a console
+if (!(window.console && console.log)) {
+ (function() {
+ var noop = function() {};
+ var methods = ['assert', 'clear', 'count', 'debug', 'dir', 'dirxml', 'error', 'exception', 'group', 'groupCollapsed', 'groupEnd', 'info', 'log', 'markTimeline', 'profile', 'profileEnd', 'markTimeline', 'table', 'time', 'timeEnd', 'timeStamp', 'trace', 'warn'];
+ var length = methods.length;
+ var console = window.console = {};
+ while (length--) {
+ console[methods[length]] = noop;
+ }
+ }());
+}
+
+// test helper object
+window.TEST = {
+ // note some unique members of the Modernizr object
+ inputs : ['input','inputtypes', 'textarea'],
+ audvid : ['video','audio'],
+ API : ['addTest', 'mq', 'hasEvent', 'testProp', 'testAllProps', 'testStyles', '_prefixes', '_domPrefixes', '_cssomPrefixes', 'prefixed'],
+ extraclass: ['js'],
+ privates : ['_enableHTML5','_version','_fontfaceready'],
+ deprecated : [
+ { oldish : 'crosswindowmessaging', newish : 'postmessage'},
+ { oldish : 'historymanagement', newish : 'history'},
+ ],
+
+ // utility methods
+ inArray: function(elem, array) {
+ if (array.indexOf) {
+ return array.indexOf(elem);
+ }
+ for (var i = 0, length = array.length; i < length; i++) {
+ if (array[i] === elem) {
+ return i;
+ }
+ }
+ return -1;
+ },
+ trim : function(str){
+ return str.replace(/^\s*/, "").replace(/\s*$/, "");
+ }
+};
+
--- /dev/null
+
+
+var myscript = document.createElement('script'),
+ ref = document.getElementsByTagName('script')[0];
+
+myscript.src = 'http://caniuse.com/jsonp.php?callback=caniusecb';
+
+setTimeout(function(){
+ ref.parentNode.insertBefore(myscript, ref);
+}, 100);
+
+// mapping Modernizr terms over to caniuse terms
+var map = {
+ audio : 'audio',
+ borderimage : 'border-image',
+ borderradius : 'border-radius',
+ canvas : 'canvas',
+ canvastext : 'canvas-text',
+ cssanimations : 'css-animation',
+ boxshadow : 'css-boxshadow',
+ cssgradients : 'css-gradients',
+ opacity : 'css-opacity',
+ cssreflections : 'css-reflections',
+ textshadow : 'css-textshadow',
+ csstransitions : 'css-transitions',
+ hsla : 'css3-colors',
+ rgba : 'css3-colors',
+ draganddrop : 'dragndrop',
+ flexbox : 'flexbox',
+ fontface : 'fontface',
+ geolocation : 'geolocation',
+ hashchange : 'hashchange',
+ history : 'history',
+ indexeddb : 'indexeddb',
+ multiplebgs : 'multibackgrounds',
+ csscolumns : 'multicolumn',
+ localstorage : 'namevalue-storage',
+ applicationcache : 'offline-apps',
+ websqldatabase : 'sql-storage',
+ svg : 'svg',
+ touch : 'touch',
+ csstransforms : 'transforms2d',
+ csstransforms3d : 'transforms3d',
+ video: 'video',
+ webgl: 'webgl',
+ websockets : 'websockets',
+ webworkers : 'webworkers',
+ postmessage : 'x-doc-messaging'
+};
+
+window.caniusecb = function(scriptdata) {
+
+ window.doo = scriptdata;
+
+ // quit if JSONSelect didn't make it.
+ if (!window.JSONSelect) return;
+
+ var testdata = scriptdata.data,
+
+ // parse the current UA with uaparser
+ ua = uaparse(navigator.userAgent),
+
+ // match the UA from uaparser into the browser used by caniuse
+ browserKey = JSONSelect.match('.agents .browser', scriptdata).indexOf(ua.family),
+ currBrowser = Object.keys(scriptdata.agents)[browserKey];
+
+ // So Phantom doesn't kill the caniuse.com matching exit out as it's useless anyway within PhantomJS
+ if(navigator.userAgent.indexOf("PhantomJS") != -1) {
+ return;
+ }
+
+ // translate 'y' 'n' or 'a' into a boolean that Modernizr uses
+ function bool(ciuresult){
+ if (ciuresult == 'y' || ciuresult == 'a') return true;
+ // 'p' is for polyfill
+ if (ciuresult == 'n' || ciuresult == 'p') return false;
+ throw 'unknown return value from can i use';
+ }
+
+ function testify(o){
+
+ var ciubool = bool(o.ciuresult);
+
+ // caniuse says audio/video are yes/no, Modernizr has more detail which we'll dumb down.
+ if (~TEST.audvid.indexOf(o.feature))
+ o.result = !!o.result;
+
+ // if caniuse gave us a 'partial', lets let it pass with a note.
+ if (o.ciuresult == 'a'){
+ return ok(true,
+ o.browser + o.version + ': Caniuse reported partial support for ' + o.ciufeature +
+ '. So.. Modernizr\'s ' + o.result + ' is good enough...'
+ );
+ }
+
+
+ // change the *documented* false positives
+ if ((o.feature == 'textshadow' && o.browser == 'firefox' && o.version == 3)
+ && ciubool == false
+ ) {
+ ciubool = o.fp = true;
+ }
+
+ // where we actually do most our assertions
+ equal(o.result, ciubool,
+ o.browser + o.version + ': Caniuse result for ' + o.ciufeature +
+ ' matches Modernizr\'s ' + (o.fp ? '*false positive*' : 'result') + ' for ' + o.feature
+ );
+ }
+
+
+ module('caniuse.com data matches', {
+ setup:function() {
+ },
+ teardown:function() {
+ }
+ });
+
+
+ test("we match caniuse data", function() {
+
+ for (var feature in Modernizr){
+
+ var ciufeatname = map[feature];
+
+ if (ciufeatname === undefined) continue;
+
+ var ciufeatdata = testdata[ciufeatname];
+
+ if (ciufeatdata === undefined) throw 'unknown key of caniusedata';
+
+ // get results for this feature for all versions of this browser
+ var browserResults = ciufeatdata.stats[currBrowser];
+
+ // let's get our versions in order..
+ var minorver = ua.minor && // caniuse doesn't use two digit minors
+ ua.minor.toString().replace(/(\d)\d$/,'$1'), // but opera does.
+
+ majorminor = (ua.major + '.' + minorver)
+ // opera gets grouped in some cases by caniuse
+ .replace(/(9\.(6|5))/ , ua.family == 'opera' ? '9.5-9.6' : "$1")
+ .replace(/(10\.(0|1))/, ua.family == 'opera' ? '10.0-10.1' : "$1"),
+
+ mmResult = browserResults[majorminor],
+ mResult = browserResults[ua.major];
+
+
+ // check it against the major.minor: eg. FF 3.6
+ if (mmResult && mmResult != 'u'){ // 'y' 'n' or 'a'
+
+ // data ends w/ ` x` if its still prefixed in the imp
+ mmResult = mmResult.replace(' x','');
+
+ // match it against our data.
+ testify({ feature : feature
+ , ciufeature : ciufeatname
+ , result : Modernizr[feature]
+ , ciuresult : mmResult
+ , browser : currBrowser
+ , version : majorminor
+ });
+
+ continue; // don't check the major version
+ }
+
+ // check it against just the major version: eg. FF 3
+ if (mResult){
+
+ // unknown support from caniuse... He would probably like to know our data, though!
+ if (mResult == 'u') continue;
+
+ // data ends w/ ` x` if its still prefixed in the imp
+ mResult = mResult.replace(' x','');
+
+ testify({ feature : feature
+ , ciufeature : ciufeatname
+ , result : Modernizr[feature]
+ , ciuresult : mResult
+ , browser : currBrowser
+ , version : ua.major
+ });
+
+
+ }
+
+ } // for in loop
+
+ }); // eo test()
+
+
+}; // eo caniusecallback()
--- /dev/null
+QUnit.begin = function() {
+ console.log("Starting test suite");
+ console.log("================================================\n");
+};
+
+QUnit.moduleDone = function(opts) {
+ if(opts.failed === 0) {
+ console.log("\u2714 All tests passed in '"+opts.name+"' module");
+ } else {
+ console.log("\u2716 "+ opts.failed +" tests failed in '"+opts.name+"' module");
+ }
+};
+
+QUnit.done = function(opts) {
+ console.log("\n================================================");
+ console.log("Tests completed in "+opts.runtime+" milliseconds");
+ console.log(opts.passed + " tests of "+opts.total+" passed, "+opts.failed+" failed.");
+};
+
+module('Basics', {
+ setup:function() {
+ },
+ teardown:function() {
+ }
+});
+
+test("globals set up", function() {
+
+ ok(window.Modernizr, 'global modernizr object created');
+
+});
+
+test("bind is implemented", function() {
+
+ ok(Function.prototype.bind, 'bind is a member of Function.prototype');
+
+ var a = function(){
+ return this.modernizr;
+ };
+ a = a.bind({modernizr: 'just awsome'});
+
+ equal("just awsome", a(), 'bind works as expected');
+
+
+ // thank you webkit layoutTests
+
+
+ var result;
+
+ function F(x, y)
+ {
+ result = this + " -> x:" + x + ", y:" + y;
+ }
+
+ G = F.bind("'a'", "'b'");
+ H = G.bind("'Cannot rebind this!'", "'c'");
+
+ G(1,2);
+ equal(result, "\'a\' -> x:\'b\', y:1");
+ H(1,2);
+ equal(result, "\'a\' -> x:\'b\', y:\'c\'");
+
+ var f = new F(1,2);
+ equal(result, "[object Object] -> x:1, y:2");
+ var g = new G(1,2);
+ equal(result, "[object Object] -> x:\'b\', y:1");
+ var h = new H(1,2);
+ equal(result, "[object Object] -> x:\'b\', y:\'c\'");
+
+ ok(f instanceof F, "f instanceof F");
+ ok(g instanceof F, "g instanceof F");
+ ok(h instanceof F, "h instanceof F");
+
+ // Bound functions don't have a 'prototype' property.
+ ok("prototype" in F, '"prototype" in F');
+
+ // The object passed to bind as 'this' must be callable.
+ raises(function(){
+ Function.bind.call(undefined);
+ });
+
+ // Objects that allow call but not construct can be bound, but should throw if used with new.
+ var abcAt = String.prototype.charAt.bind("abc");
+ equal(abcAt(1), "b", 'Objects that allow call but not construct can be bound...');
+
+ equal(1, Function.bind.length, 'it exists');
+
+
+});
+
+
+
+test("document.documentElement is valid and correct",1, function() {
+ equal(document.documentElement,document.getElementsByTagName('html')[0]);
+});
+
+
+test("no-js class is gone.", function() {
+
+ ok(!/(?:^|\s)no-js(?:^|\s)/.test(document.documentElement.className),
+ 'no-js class is gone');
+
+ ok(/(?:^|\s)js(?:^|\s)/.test(document.documentElement.className),
+ 'html.js class is present');
+
+ ok(/(?:^|\s)\+no-js(?:\s|$)/.test(document.documentElement.className),
+ 'html.+no-js class is still present');
+
+ ok(/(?:^|\s)no-js-(?:\s|$)/.test(document.documentElement.className),
+ 'html.no-js- class is still present');
+
+ ok(/(?:^|\s)i-has-no-js(?:\s|$)/.test(document.documentElement.className),
+ 'html.i-has-no-js class is still present');
+
+ if (document.querySelector){
+ ok(document.querySelector('html.js') == document.documentElement,
+ "document.querySelector('html.js') matches.");
+ }
+});
+
+test('html shim worked', function(){
+ expect(2);
+
+ // the exact test we use in the script
+ var elem = document.getElementsByTagName("section")[0];
+ elem.id = "html5section";
+
+ ok( elem.childNodes.length === 1 , 'unknown elements dont collapse');
+
+ elem.style.color = 'red';
+ ok( /red|#ff0000/i.test(elem.style.color), 'unknown elements are styleable')
+
+});
+
+
+module('Modernizr classes and bools', {
+ setup:function() {
+ },
+ teardown:function() {
+ }
+});
+
+
+test('html classes are looking good',function(){
+
+ var classes = TEST.trim(document.documentElement.className).split(/\s+/);
+
+ var modprops = Object.keys(Modernizr),
+ newprops = modprops;
+
+ // decrement for the properties that are private
+ for (var i = -1, len = TEST.privates.length; ++i < len; ){
+ var item = TEST.privates[i];
+ equal(-1, TEST.inArray(item, classes), 'private Modernizr object '+ item +'should not have matching classes');
+ equal(-1, TEST.inArray('no-' + item, classes), 'private Modernizr object no-'+item+' should not have matching classes');
+ }
+
+ // decrement for the non-boolean objects
+// for (var i = -1, len = TEST.inputs.length; ++i < len; ){
+// if (Modernizr[TEST.inputs[i]] != undefined) newprops--;
+// }
+
+ // TODO decrement for the extraclasses
+
+ // decrement for deprecated ones.
+ $.each( TEST.deprecated, function(key, val){
+ newprops.splice( TEST.inArray(item, newprops), 1);
+ });
+
+
+ //equal(classes,newprops,'equal number of classes and global object props');
+
+ if (classes.length !== newprops){
+ //window.console && console.log(classes, newprops);
+
+ }
+
+ for (var i = 0, len = classes.length, aclass; i <len; i++){
+ aclass = classes[i];
+
+ // Skip js related classes.
+ if (/^(?:js|\+no-js|no-js-|i-has-no-js)$/.test(aclass)) continue;
+
+ if (aclass.indexOf('no-') === 0){
+ aclass = aclass.replace('no-','');
+
+ equal(Modernizr[aclass], false,
+ aclass + ' is correctly false in the classes and object')
+
+ } else {
+ equal(Modernizr[aclass], true,
+ aclass + ' is correctly true in the classes and object')
+ }
+ }
+
+
+ for (var i = 0, len = classes.length, aclass; i <len; i++){
+ equal(classes[i],classes[i].toLowerCase(),'all classes are lowerCase.');
+ }
+
+ // Remove fake no-js classes before test.
+ var docElClass = document.documentElement.className;
+ $.each(['\\+no-js', 'no-js-', 'i-has-no-js'], function(i, fakeClass) {
+ docElClass = docElClass.replace(new RegExp('(^|\\s)' + fakeClass + '(\\s|$)', 'g'), '$1$2');
+ });
+ equal(/[^\s]no-/.test(docElClass), false, 'whitespace between all classes.');
+
+
+})
+
+
+test('Modernizr properties are looking good',function(){
+
+ var count = 0,
+ nobool = TEST.API.concat(TEST.inputs)
+ .concat(TEST.audvid)
+ .concat(TEST.privates)
+ .concat(['textarea']); // due to forms-placeholder.js test
+
+ for (var prop in window.Modernizr){
+ if (Modernizr.hasOwnProperty(prop)){
+
+ if (TEST.inArray(prop,nobool) >= 0) continue;
+
+ ok(Modernizr[prop] === true || Modernizr[prop] === false,
+ 'Modernizr.'+prop+' is a straight up boolean');
+
+
+ equal(prop,prop.toLowerCase(),'all properties are lowerCase.')
+ }
+ }
+})
+
+
+
+test('Modernizr.audio and Modernizr.video',function(){
+
+ for (var i = -1, len = TEST.audvid.length; ++i < len;){
+ var prop = TEST.audvid[i];
+
+ if (Modernizr[prop].toString() == 'true'){
+
+ ok(Modernizr[prop], 'Modernizr.'+prop+' is truthy.');
+ equal(Modernizr[prop] == true,true, 'Modernizr.'+prop+' is == true')
+ equal(typeof Modernizr[prop] === 'object',true,'Moderizr.'+prop+' is truly an object');
+ equal(Modernizr[prop] !== true,true, 'Modernizr.'+prop+' is !== true')
+
+ } else {
+
+ equal(Modernizr[prop] != true,true, 'Modernizr.'+prop+' is != true')
+ }
+ }
+
+
+});
+
+
+test('Modernizr results match expected values',function(){
+
+ // i'm bringing over a few tests from inside Modernizr.js
+ equal(!!document.createElement('canvas').getContext,Modernizr.canvas,'canvas test consistent');
+
+ equal(!!window.Worker,Modernizr.webworkers,'web workers test consistent')
+
+});
+
+
+
+module('Modernizr\'s API methods', {
+ setup:function() {
+ },
+ teardown:function() {
+ }
+});
+
+test('Modernizr.addTest()',22,function(){
+
+ var docEl = document.documentElement;
+
+
+ Modernizr.addTest('testtrue',function(){
+ return true;
+ });
+
+ Modernizr.addTest('testtruthy',function(){
+ return 100;
+ });
+
+ Modernizr.addTest('testfalse',function(){
+ return false;
+ });
+
+ Modernizr.addTest('testfalsy',function(){
+ return undefined;
+ });
+
+ ok(docEl.className.indexOf(' testtrue') >= 0,'positive class added');
+ equal(Modernizr.testtrue,true,'positive prop added');
+
+ ok(docEl.className.indexOf(' testtruthy') >= 0,'positive class added');
+ equal(Modernizr.testtruthy,100,'truthy value is not casted to straight boolean');
+
+ ok(docEl.className.indexOf(' no-testfalse') >= 0,'negative class added');
+ equal(Modernizr.testfalse,false,'negative prop added');
+
+ ok(docEl.className.indexOf(' no-testfalsy') >= 0,'negative class added');
+ equal(Modernizr.testfalsy,undefined,'falsy value is not casted to straight boolean');
+
+
+
+ Modernizr.addTest('testcamelCase',function(){
+ return true;
+ });
+
+ ok(docEl.className.indexOf(' testcamelCase') === -1,
+ 'camelCase test name toLowerCase()\'d');
+
+
+ // okay new signature for this API! woo
+
+ Modernizr.addTest('testboolfalse', false);
+
+ ok(~docEl.className.indexOf(' no-testboolfalse'), 'Modernizr.addTest(feature, bool): negative class added');
+ equal(Modernizr.testboolfalse, false, 'Modernizr.addTest(feature, bool): negative prop added');
+
+
+
+ Modernizr.addTest('testbooltrue', true);
+
+ ok(~docEl.className.indexOf(' testbooltrue'), 'Modernizr.addTest(feature, bool): positive class added');
+ equal(Modernizr.testbooltrue, true, 'Modernizr.addTest(feature, bool): positive prop added');
+
+
+
+ Modernizr.addTest({'testobjboolfalse': false,
+ 'testobjbooltrue' : true });
+
+ ok(~docEl.className.indexOf(' no-testobjboolfalse'), 'Modernizr.addTest({feature: bool}): negative class added');
+ equal(Modernizr.testobjboolfalse, false, 'Modernizr.addTest({feature: bool}): negative prop added');
+
+ ok(~docEl.className.indexOf(' testobjbooltrue'), 'Modernizr.addTest({feature: bool}): positive class added');
+ equal(Modernizr.testobjbooltrue, true, 'Modernizr.addTest({feature: bool}): positive prop added');
+
+
+
+
+ Modernizr.addTest({'testobjfnfalse': function(){ return false },
+ 'testobjfntrue' : function(){ return true } });
+
+
+ ok(~docEl.className.indexOf(' no-testobjfnfalse'), 'Modernizr.addTest({feature: bool}): negative class added');
+ equal(Modernizr.testobjfnfalse, false, 'Modernizr.addTest({feature: bool}): negative prop added');
+
+ ok(~docEl.className.indexOf(' testobjfntrue'), 'Modernizr.addTest({feature: bool}): positive class added');
+ equal(Modernizr.testobjfntrue, true, 'Modernizr.addTest({feature: bool}): positive prop added');
+
+
+ Modernizr
+ .addTest('testchainone', true)
+ .addTest({ testchaintwo: true })
+ .addTest('testchainthree', function(){ return true; });
+
+ ok( Modernizr.testchainone == Modernizr.testchaintwo == Modernizr.testchainthree, 'addTest is chainable');
+
+
+}); // eo addTest
+
+
+
+
+
+test('Modernizr.mq: media query testing',function(){
+
+ var $html = $('html');
+ $.mobile = {};
+
+ // from jquery mobile
+
+ $.mobile.media = (function() {
+ // TODO: use window.matchMedia once at least one UA implements it
+ var cache = {},
+ testDiv = $( "<div id='jquery-mediatest'>" ),
+ fakeBody = $( "<body>" ).append( testDiv );
+
+ return function( query ) {
+ if ( !( query in cache ) ) {
+ var styleBlock = document.createElement('style'),
+ cssrule = "@media " + query + " { #jquery-mediatest { position:absolute; } }";
+ //must set type for IE!
+ styleBlock.type = "text/css";
+ if (styleBlock.styleSheet){
+ styleBlock.styleSheet.cssText = cssrule;
+ }
+ else {
+ styleBlock.appendChild(document.createTextNode(cssrule));
+ }
+
+ $html.prepend( fakeBody ).prepend( styleBlock );
+ cache[ query ] = testDiv.css( "position" ) === "absolute";
+ fakeBody.add( styleBlock ).remove();
+ }
+ return cache[ query ];
+ };
+ })();
+
+
+ ok(Modernizr.mq,'Modernizr.mq() doesn\' freak out.');
+
+ equal($.mobile.media('only screen'), Modernizr.mq('only screen'),'screen media query matches jQuery mobile\'s result');
+
+ equal(Modernizr.mq('only all'), Modernizr.mq('only all'), 'Cache hit matches');
+
+
+});
+
+
+
+
+test('Modernizr.hasEvent()',function(){
+
+ ok(typeof Modernizr.hasEvent == 'function','Modernizr.hasEvent() is a function');
+
+
+ equal(Modernizr.hasEvent('click'), true,'click event is supported');
+
+ equal(Modernizr.hasEvent('modernizrcustomevent'), false,'random event is definitely not supported');
+
+ /* works fine in webkit but not gecko
+ equal( Modernizr.hasEvent('resize', window),
+ !Modernizr.hasEvent('resize', document.createElement('div')),
+ 'Resize is supported in window but not a div, typically...');
+ */
+
+});
+
+
+
+
+
+test('Modernizr.testStyles()',function(){
+
+ equal(typeof Modernizr.testStyles, 'function','Modernizr.testStyles() is a function');
+
+ var style = '#modernizr{ width: 9px; height: 4px; font-size: 0; color: papayawhip; }';
+
+ Modernizr.testStyles(style, function(elem, rule){
+ equal(style, rule, 'rule passsed back matches what i gave it.')
+ equal(elem.offsetWidth, 9, 'width was set through the style');
+ equal(elem.offsetHeight, 4, 'height was set through the style');
+ equal(elem.id, 'modernizr', 'element is indeed the modernizr element');
+ });
+
+});
+
+
+test('Modernizr._[properties]',function(){
+
+ equal(6, Modernizr._prefixes.length, 'Modernizr._prefixes has 6 items');
+
+ equal(4, Modernizr._domPrefixes.length, 'Modernizr.domPrefixes has 4 items');
+
+});
+
+test('Modernizr.testProp()',function(){
+
+ equal(true, Modernizr.testProp('margin'), 'Everyone supports margin');
+
+ equal(false, Modernizr.testProp('happiness'), 'Nobody supports the happiness style. :(');
+ equal(true, Modernizr.testProp('fontSize'), 'Everyone supports fontSize');
+ equal(false, Modernizr.testProp('font-size'), 'Nobody supports font-size');
+
+ equal('pointerEvents' in document.createElement('div').style,
+ Modernizr.testProp('pointerEvents'),
+ 'results for `pointer-events` are consistent with a homegrown feature test');
+
+});
+
+
+
+test('Modernizr.testAllProps()',function(){
+
+ equal(true, Modernizr.testAllProps('margin'), 'Everyone supports margin');
+
+ equal(false, Modernizr.testAllProps('happiness'), 'Nobody supports the happiness style. :(');
+ equal(true, Modernizr.testAllProps('fontSize'), 'Everyone supports fontSize');
+ equal(false, Modernizr.testAllProps('font-size'), 'Nobody supports font-size');
+
+ equal(Modernizr.csstransitions, Modernizr.testAllProps('transition'), 'Modernizr result matches API result: csstransitions');
+
+ equal(Modernizr.csscolumns, Modernizr.testAllProps('columnCount'), 'Modernizr result matches API result: csscolumns')
+
+});
+
+
+
+
+
+
+test('Modernizr.prefixed() - css and DOM resolving', function(){
+ // https://gist.github.com/523692
+
+ function gimmePrefix(prop, obj){
+ var prefixes = ['Moz','Khtml','Webkit','O','ms'],
+ domPrefixes = ['moz','khtml','webkit','o','ms'],
+ elem = document.createElement('div'),
+ upper = prop.charAt(0).toUpperCase() + prop.slice(1);
+
+ if(!obj) {
+ if (prop in elem.style)
+ return prop;
+
+ for (var len = prefixes.length; len--; ){
+ if ((prefixes[len] + upper) in elem.style)
+ return (prefixes[len] + upper);
+ }
+ } else {
+ if (prop in obj)
+ return prop;
+
+ for (var len = domPrefixes.length; len--; ){
+ if ((domPrefixes[len] + upper) in obj)
+ return (domPrefixes[len] + upper);
+ }
+ }
+
+
+ return false;
+ }
+
+ var propArr = ['transition', 'backgroundSize', 'boxSizing', 'borderImage',
+ 'borderRadius', 'boxShadow', 'columnCount'];
+
+ var domPropArr = [{ 'prop': 'requestAnimationFrame', 'obj': window },
+ { 'prop': 'querySelectorAll', 'obj': document },
+ { 'prop': 'matchesSelector', 'obj': document.createElement('div') }];
+
+ for (var i = -1, len = propArr.length; ++i < len; ){
+ var prop = propArr[i];
+ equal(Modernizr.prefixed(prop), gimmePrefix(prop), 'results for ' + prop + ' match the homebaked prefix finder');
+ }
+
+ for (var i = -1, len = domPropArr.length; ++i < len; ){
+ var prop = domPropArr[i];
+ ok(!!~Modernizr.prefixed(prop.prop, prop.obj, false).toString().indexOf(gimmePrefix(prop.prop, prop.obj)), 'results for ' + prop.prop + ' match the homebaked prefix finder');
+ }
+
+
+
+
+});
+
+
+// FIXME: so a few of these are whitelisting for webkit. i'd like to improve that.
+test('Modernizr.prefixed autobind', function(){
+
+ var rAFName;
+
+ // quick sniff to find the local rAF prefixed name.
+ var vendors = ['ms', 'moz', 'webkit', 'o'];
+ for(var x = 0; x < vendors.length && !rAFName; ++x) {
+ rAFName = window[vendors[x]+'RequestAnimationFrame'] && vendors[x]+'RequestAnimationFrame';
+ }
+
+ if (rAFName){
+ // rAF returns a function
+ equal(
+ 'function',
+ typeof Modernizr.prefixed('requestAnimationFrame', window),
+ "Modernizr.prefixed('requestAnimationFrame', window) returns a function")
+
+ // unless we false it to a string
+ equal(
+ rAFName,
+ Modernizr.prefixed('requestAnimationFrame', window, false),
+ "Modernizr.prefixed('requestAnimationFrame', window, false) returns a string (the prop name)")
+
+ }
+
+ if (document.body.webkitMatchesSelector || document.body.mozMatchesSelector){
+
+ var fn = Modernizr.prefixed('matchesSelector', HTMLElement.prototype, document.body);
+
+ //returns function
+ equal(
+ 'function',
+ typeof fn,
+ "Modernizr.prefixed('matchesSelector', HTMLElement.prototype, document.body) returns a function");
+
+ // fn scoping
+ equal(
+ true,
+ fn('body'),
+ "Modernizr.prefixed('matchesSelector', HTMLElement.prototype, document.body) is scoped to the body")
+
+ }
+
+ // Webkit only: are there other objects that are prefixed?
+ if (window.webkitNotifications){
+ // should be an object.
+
+ equal(
+ 'object',
+ typeof Modernizr.prefixed('Notifications', window),
+ "Modernizr.prefixed('Notifications') returns an object");
+
+ }
+
+ // Webkit only:
+ if (typeof document.webkitIsFullScreen !== 'undefined'){
+ // boolean
+
+ equal(
+ 'boolean',
+ typeof Modernizr.prefixed('isFullScreen', document),
+ "Modernizr.prefixed('isFullScreen') returns a boolean");
+ }
+
+
+
+ // Moz only:
+ if (typeof document.mozFullScreen !== 'undefined'){
+ // boolean
+
+ equal(
+ 'boolean',
+ typeof Modernizr.prefixed('fullScreen', document),
+ "Modernizr.prefixed('fullScreen') returns a boolean");
+ }
+
+
+ // Webkit-only.. takes advantage of Webkit's mixed case of prefixes
+ if (document.body.style.WebkitAnimation){
+ // string
+
+ equal(
+ 'string',
+ typeof Modernizr.prefixed('animation', document.body.style),
+ "Modernizr.prefixed('animation', document.body.style) returns value of that, as a string");
+
+ equal(
+ animationStyle.toLowerCase(),
+ Modernizr.prefixed('animation', document.body.style, false).toLowerCase(),
+ "Modernizr.prefixed('animation', document.body.style, false) returns the (case-normalized) name of the property: webkitanimation");
+
+ }
+
+ equal(
+ false,
+ Modernizr.prefixed('doSomethingAmazing$#$', window),
+ "Modernizr.prefixed('doSomethingAmazing$#$', window) : Gobbledygook with prefixed(str,obj) returns false");
+
+ equal(
+ false,
+ Modernizr.prefixed('doSomethingAmazing$#$', window, document.body),
+ "Modernizr.prefixed('doSomethingAmazing$#$', window) : Gobbledygook with prefixed(str,obj, scope) returns false");
+
+
+ equal(
+ false,
+ Modernizr.prefixed('doSomethingAmazing$#$', window, false),
+ "Modernizr.prefixed('doSomethingAmazing$#$', window) : Gobbledygook with prefixed(str,obj, false) returns false");
+
+
+});
+
+
+
+
+
--- /dev/null
+/**
+ * QUnit v1.9.0 - A JavaScript Unit Testing Framework
+ *
+ * http://docs.jquery.com/QUnit
+ *
+ * Copyright (c) 2012 John Resig, Jörn Zaefferer
+ * Dual licensed under the MIT (MIT-LICENSE.txt)
+ * or GPL (GPL-LICENSE.txt) licenses.
+ */
+
+(function( window ) {
+
+var QUnit,
+ config,
+ onErrorFnPrev,
+ testId = 0,
+ fileName = (sourceFromStacktrace( 0 ) || "" ).replace(/(:\d+)+\)?/, "").replace(/.+\//, ""),
+ toString = Object.prototype.toString,
+ hasOwn = Object.prototype.hasOwnProperty,
+ defined = {
+ setTimeout: typeof window.setTimeout !== "undefined",
+ sessionStorage: (function() {
+ var x = "qunit-test-string";
+ try {
+ sessionStorage.setItem( x, x );
+ sessionStorage.removeItem( x );
+ return true;
+ } catch( e ) {
+ return false;
+ }
+ }())
+};
+
+function Test( settings ) {
+ extend( this, settings );
+ this.assertions = [];
+ this.testNumber = ++Test.count;
+}
+
+Test.count = 0;
+
+Test.prototype = {
+ init: function() {
+ var a, b, li,
+ tests = id( "qunit-tests" );
+
+ if ( tests ) {
+ b = document.createElement( "strong" );
+ b.innerHTML = this.name;
+
+ // `a` initialized at top of scope
+ a = document.createElement( "a" );
+ a.innerHTML = "Rerun";
+ a.href = QUnit.url({ testNumber: this.testNumber });
+
+ li = document.createElement( "li" );
+ li.appendChild( b );
+ li.appendChild( a );
+ li.className = "running";
+ li.id = this.id = "qunit-test-output" + testId++;
+
+ tests.appendChild( li );
+ }
+ },
+ setup: function() {
+ if ( this.module !== config.previousModule ) {
+ if ( config.previousModule ) {
+ runLoggingCallbacks( "moduleDone", QUnit, {
+ name: config.previousModule,
+ failed: config.moduleStats.bad,
+ passed: config.moduleStats.all - config.moduleStats.bad,
+ total: config.moduleStats.all
+ });
+ }
+ config.previousModule = this.module;
+ config.moduleStats = { all: 0, bad: 0 };
+ runLoggingCallbacks( "moduleStart", QUnit, {
+ name: this.module
+ });
+ } else if ( config.autorun ) {
+ runLoggingCallbacks( "moduleStart", QUnit, {
+ name: this.module
+ });
+ }
+
+ config.current = this;
+
+ this.testEnvironment = extend({
+ setup: function() {},
+ teardown: function() {}
+ }, this.moduleTestEnvironment );
+
+ runLoggingCallbacks( "testStart", QUnit, {
+ name: this.testName,
+ module: this.module
+ });
+
+ // allow utility functions to access the current test environment
+ // TODO why??
+ QUnit.current_testEnvironment = this.testEnvironment;
+
+ if ( !config.pollution ) {
+ saveGlobal();
+ }
+ if ( config.notrycatch ) {
+ this.testEnvironment.setup.call( this.testEnvironment );
+ return;
+ }
+ try {
+ this.testEnvironment.setup.call( this.testEnvironment );
+ } catch( e ) {
+ QUnit.pushFailure( "Setup failed on " + this.testName + ": " + e.message, extractStacktrace( e, 1 ) );
+ }
+ },
+ run: function() {
+ config.current = this;
+
+ var running = id( "qunit-testresult" );
+
+ if ( running ) {
+ running.innerHTML = "Running: <br/>" + this.name;
+ }
+
+ if ( this.async ) {
+ QUnit.stop();
+ }
+
+ if ( config.notrycatch ) {
+ this.callback.call( this.testEnvironment, QUnit.assert );
+ return;
+ }
+
+ try {
+ this.callback.call( this.testEnvironment, QUnit.assert );
+ } catch( e ) {
+ QUnit.pushFailure( "Died on test #" + (this.assertions.length + 1) + " " + this.stack + ": " + e.message, extractStacktrace( e, 0 ) );
+ // else next test will carry the responsibility
+ saveGlobal();
+
+ // Restart the tests if they're blocking
+ if ( config.blocking ) {
+ QUnit.start();
+ }
+ }
+ },
+ teardown: function() {
+ config.current = this;
+ if ( config.notrycatch ) {
+ this.testEnvironment.teardown.call( this.testEnvironment );
+ return;
+ } else {
+ try {
+ this.testEnvironment.teardown.call( this.testEnvironment );
+ } catch( e ) {
+ QUnit.pushFailure( "Teardown failed on " + this.testName + ": " + e.message, extractStacktrace( e, 1 ) );
+ }
+ }
+ checkPollution();
+ },
+ finish: function() {
+ config.current = this;
+ if ( config.requireExpects && this.expected == null ) {
+ QUnit.pushFailure( "Expected number of assertions to be defined, but expect() was not called.", this.stack );
+ } else if ( this.expected != null && this.expected != this.assertions.length ) {
+ QUnit.pushFailure( "Expected " + this.expected + " assertions, but " + this.assertions.length + " were run", this.stack );
+ } else if ( this.expected == null && !this.assertions.length ) {
+ QUnit.pushFailure( "Expected at least one assertion, but none were run - call expect(0) to accept zero assertions.", this.stack );
+ }
+
+ var assertion, a, b, i, li, ol,
+ test = this,
+ good = 0,
+ bad = 0,
+ tests = id( "qunit-tests" );
+
+ config.stats.all += this.assertions.length;
+ config.moduleStats.all += this.assertions.length;
+
+ if ( tests ) {
+ ol = document.createElement( "ol" );
+
+ for ( i = 0; i < this.assertions.length; i++ ) {
+ assertion = this.assertions[i];
+
+ li = document.createElement( "li" );
+ li.className = assertion.result ? "pass" : "fail";
+ li.innerHTML = assertion.message || ( assertion.result ? "okay" : "failed" );
+ ol.appendChild( li );
+
+ if ( assertion.result ) {
+ good++;
+ } else {
+ bad++;
+ config.stats.bad++;
+ config.moduleStats.bad++;
+ }
+ }
+
+ // store result when possible
+ if ( QUnit.config.reorder && defined.sessionStorage ) {
+ if ( bad ) {
+ sessionStorage.setItem( "qunit-test-" + this.module + "-" + this.testName, bad );
+ } else {
+ sessionStorage.removeItem( "qunit-test-" + this.module + "-" + this.testName );
+ }
+ }
+
+ if ( bad === 0 ) {
+ ol.style.display = "none";
+ }
+
+ // `b` initialized at top of scope
+ b = document.createElement( "strong" );
+ b.innerHTML = this.name + " <b class='counts'>(<b class='failed'>" + bad + "</b>, <b class='passed'>" + good + "</b>, " + this.assertions.length + ")</b>";
+
+ addEvent(b, "click", function() {
+ var next = b.nextSibling.nextSibling,
+ display = next.style.display;
+ next.style.display = display === "none" ? "block" : "none";
+ });
+
+ addEvent(b, "dblclick", function( e ) {
+ var target = e && e.target ? e.target : window.event.srcElement;
+ if ( target.nodeName.toLowerCase() == "span" || target.nodeName.toLowerCase() == "b" ) {
+ target = target.parentNode;
+ }
+ if ( window.location && target.nodeName.toLowerCase() === "strong" ) {
+ window.location = QUnit.url({ testNumber: test.testNumber });
+ }
+ });
+
+ // `li` initialized at top of scope
+ li = id( this.id );
+ li.className = bad ? "fail" : "pass";
+ li.removeChild( li.firstChild );
+ a = li.firstChild;
+ li.appendChild( b );
+ li.appendChild ( a );
+ li.appendChild( ol );
+
+ } else {
+ for ( i = 0; i < this.assertions.length; i++ ) {
+ if ( !this.assertions[i].result ) {
+ bad++;
+ config.stats.bad++;
+ config.moduleStats.bad++;
+ }
+ }
+ }
+
+ runLoggingCallbacks( "testDone", QUnit, {
+ name: this.testName,
+ module: this.module,
+ failed: bad,
+ passed: this.assertions.length - bad,
+ total: this.assertions.length
+ });
+
+ QUnit.reset();
+
+ config.current = undefined;
+ },
+
+ queue: function() {
+ var bad,
+ test = this;
+
+ synchronize(function() {
+ test.init();
+ });
+ function run() {
+ // each of these can by async
+ synchronize(function() {
+ test.setup();
+ });
+ synchronize(function() {
+ test.run();
+ });
+ synchronize(function() {
+ test.teardown();
+ });
+ synchronize(function() {
+ test.finish();
+ });
+ }
+
+ // `bad` initialized at top of scope
+ // defer when previous test run passed, if storage is available
+ bad = QUnit.config.reorder && defined.sessionStorage &&
+ +sessionStorage.getItem( "qunit-test-" + this.module + "-" + this.testName );
+
+ if ( bad ) {
+ run();
+ } else {
+ synchronize( run, true );
+ }
+ }
+};
+
+// Root QUnit object.
+// `QUnit` initialized at top of scope
+QUnit = {
+
+ // call on start of module test to prepend name to all tests
+ module: function( name, testEnvironment ) {
+ config.currentModule = name;
+ config.currentModuleTestEnviroment = testEnvironment;
+ },
+
+ asyncTest: function( testName, expected, callback ) {
+ if ( arguments.length === 2 ) {
+ callback = expected;
+ expected = null;
+ }
+
+ QUnit.test( testName, expected, callback, true );
+ },
+
+ test: function( testName, expected, callback, async ) {
+ var test,
+ name = "<span class='test-name'>" + escapeInnerText( testName ) + "</span>";
+
+ if ( arguments.length === 2 ) {
+ callback = expected;
+ expected = null;
+ }
+
+ if ( config.currentModule ) {
+ name = "<span class='module-name'>" + config.currentModule + "</span>: " + name;
+ }
+
+ test = new Test({
+ name: name,
+ testName: testName,
+ expected: expected,
+ async: async,
+ callback: callback,
+ module: config.currentModule,
+ moduleTestEnvironment: config.currentModuleTestEnviroment,
+ stack: sourceFromStacktrace( 2 )
+ });
+
+ if ( !validTest( test ) ) {
+ return;
+ }
+
+ test.queue();
+ },
+
+ // Specify the number of expected assertions to gurantee that failed test (no assertions are run at all) don't slip through.
+ expect: function( asserts ) {
+ config.current.expected = asserts;
+ },
+
+ start: function( count ) {
+ config.semaphore -= count || 1;
+ // don't start until equal number of stop-calls
+ if ( config.semaphore > 0 ) {
+ return;
+ }
+ // ignore if start is called more often then stop
+ if ( config.semaphore < 0 ) {
+ config.semaphore = 0;
+ }
+ // A slight delay, to avoid any current callbacks
+ if ( defined.setTimeout ) {
+ window.setTimeout(function() {
+ if ( config.semaphore > 0 ) {
+ return;
+ }
+ if ( config.timeout ) {
+ clearTimeout( config.timeout );
+ }
+
+ config.blocking = false;
+ process( true );
+ }, 13);
+ } else {
+ config.blocking = false;
+ process( true );
+ }
+ },
+
+ stop: function( count ) {
+ config.semaphore += count || 1;
+ config.blocking = true;
+
+ if ( config.testTimeout && defined.setTimeout ) {
+ clearTimeout( config.timeout );
+ config.timeout = window.setTimeout(function() {
+ QUnit.ok( false, "Test timed out" );
+ config.semaphore = 1;
+ QUnit.start();
+ }, config.testTimeout );
+ }
+ }
+};
+
+// Asssert helpers
+// All of these must call either QUnit.push() or manually do:
+// - runLoggingCallbacks( "log", .. );
+// - config.current.assertions.push({ .. });
+QUnit.assert = {
+ /**
+ * Asserts rough true-ish result.
+ * @name ok
+ * @function
+ * @example ok( "asdfasdf".length > 5, "There must be at least 5 chars" );
+ */
+ ok: function( result, msg ) {
+ if ( !config.current ) {
+ throw new Error( "ok() assertion outside test context, was " + sourceFromStacktrace(2) );
+ }
+ result = !!result;
+
+ var source,
+ details = {
+ result: result,
+ message: msg
+ };
+
+ msg = escapeInnerText( msg || (result ? "okay" : "failed" ) );
+ msg = "<span class='test-message'>" + msg + "</span>";
+
+ if ( !result ) {
+ source = sourceFromStacktrace( 2 );
+ if ( source ) {
+ details.source = source;
+ msg += "<table><tr class='test-source'><th>Source: </th><td><pre>" + escapeInnerText( source ) + "</pre></td></tr></table>";
+ }
+ }
+ runLoggingCallbacks( "log", QUnit, details );
+ config.current.assertions.push({
+ result: result,
+ message: msg
+ });
+ },
+
+ /**
+ * Assert that the first two arguments are equal, with an optional message.
+ * Prints out both actual and expected values.
+ * @name equal
+ * @function
+ * @example equal( format( "Received {0} bytes.", 2), "Received 2 bytes.", "format() replaces {0} with next argument" );
+ */
+ equal: function( actual, expected, message ) {
+ QUnit.push( expected == actual, actual, expected, message );
+ },
+
+ /**
+ * @name notEqual
+ * @function
+ */
+ notEqual: function( actual, expected, message ) {
+ QUnit.push( expected != actual, actual, expected, message );
+ },
+
+ /**
+ * @name deepEqual
+ * @function
+ */
+ deepEqual: function( actual, expected, message ) {
+ QUnit.push( QUnit.equiv(actual, expected), actual, expected, message );
+ },
+
+ /**
+ * @name notDeepEqual
+ * @function
+ */
+ notDeepEqual: function( actual, expected, message ) {
+ QUnit.push( !QUnit.equiv(actual, expected), actual, expected, message );
+ },
+
+ /**
+ * @name strictEqual
+ * @function
+ */
+ strictEqual: function( actual, expected, message ) {
+ QUnit.push( expected === actual, actual, expected, message );
+ },
+
+ /**
+ * @name notStrictEqual
+ * @function
+ */
+ notStrictEqual: function( actual, expected, message ) {
+ QUnit.push( expected !== actual, actual, expected, message );
+ },
+
+ throws: function( block, expected, message ) {
+ var actual,
+ ok = false;
+
+ // 'expected' is optional
+ if ( typeof expected === "string" ) {
+ message = expected;
+ expected = null;
+ }
+
+ config.current.ignoreGlobalErrors = true;
+ try {
+ block.call( config.current.testEnvironment );
+ } catch (e) {
+ actual = e;
+ }
+ config.current.ignoreGlobalErrors = false;
+
+ if ( actual ) {
+ // we don't want to validate thrown error
+ if ( !expected ) {
+ ok = true;
+ // expected is a regexp
+ } else if ( QUnit.objectType( expected ) === "regexp" ) {
+ ok = expected.test( actual );
+ // expected is a constructor
+ } else if ( actual instanceof expected ) {
+ ok = true;
+ // expected is a validation function which returns true is validation passed
+ } else if ( expected.call( {}, actual ) === true ) {
+ ok = true;
+ }
+
+ QUnit.push( ok, actual, null, message );
+ } else {
+ QUnit.pushFailure( message, null, 'No exception was thrown.' );
+ }
+ }
+};
+
+/**
+ * @deprecate since 1.8.0
+ * Kept assertion helpers in root for backwards compatibility
+ */
+extend( QUnit, QUnit.assert );
+
+/**
+ * @deprecated since 1.9.0
+ * Kept global "raises()" for backwards compatibility
+ */
+QUnit.raises = QUnit.assert.throws;
+
+/**
+ * @deprecated since 1.0.0, replaced with error pushes since 1.3.0
+ * Kept to avoid TypeErrors for undefined methods.
+ */
+QUnit.equals = function() {
+ QUnit.push( false, false, false, "QUnit.equals has been deprecated since 2009 (e88049a0), use QUnit.equal instead" );
+};
+QUnit.same = function() {
+ QUnit.push( false, false, false, "QUnit.same has been deprecated since 2009 (e88049a0), use QUnit.deepEqual instead" );
+};
+
+// We want access to the constructor's prototype
+(function() {
+ function F() {}
+ F.prototype = QUnit;
+ QUnit = new F();
+ // Make F QUnit's constructor so that we can add to the prototype later
+ QUnit.constructor = F;
+}());
+
+/**
+ * Config object: Maintain internal state
+ * Later exposed as QUnit.config
+ * `config` initialized at top of scope
+ */
+config = {
+ // The queue of tests to run
+ queue: [],
+
+ // block until document ready
+ blocking: true,
+
+ // when enabled, show only failing tests
+ // gets persisted through sessionStorage and can be changed in UI via checkbox
+ hidepassed: false,
+
+ // by default, run previously failed tests first
+ // very useful in combination with "Hide passed tests" checked
+ reorder: true,
+
+ // by default, modify document.title when suite is done
+ altertitle: true,
+
+ // when enabled, all tests must call expect()
+ requireExpects: false,
+
+ // add checkboxes that are persisted in the query-string
+ // when enabled, the id is set to `true` as a `QUnit.config` property
+ urlConfig: [
+ {
+ id: "noglobals",
+ label: "Check for Globals",
+ tooltip: "Enabling this will test if any test introduces new properties on the `window` object. Stored as query-strings."
+ },
+ {
+ id: "notrycatch",
+ label: "No try-catch",
+ tooltip: "Enabling this will run tests outside of a try-catch block. Makes debugging exceptions in IE reasonable. Stored as query-strings."
+ }
+ ],
+
+ // logging callback queues
+ begin: [],
+ done: [],
+ log: [],
+ testStart: [],
+ testDone: [],
+ moduleStart: [],
+ moduleDone: []
+};
+
+// Initialize more QUnit.config and QUnit.urlParams
+(function() {
+ var i,
+ location = window.location || { search: "", protocol: "file:" },
+ params = location.search.slice( 1 ).split( "&" ),
+ length = params.length,
+ urlParams = {},
+ current;
+
+ if ( params[ 0 ] ) {
+ for ( i = 0; i < length; i++ ) {
+ current = params[ i ].split( "=" );
+ current[ 0 ] = decodeURIComponent( current[ 0 ] );
+ // allow just a key to turn on a flag, e.g., test.html?noglobals
+ current[ 1 ] = current[ 1 ] ? decodeURIComponent( current[ 1 ] ) : true;
+ urlParams[ current[ 0 ] ] = current[ 1 ];
+ }
+ }
+
+ QUnit.urlParams = urlParams;
+
+ // String search anywhere in moduleName+testName
+ config.filter = urlParams.filter;
+
+ // Exact match of the module name
+ config.module = urlParams.module;
+
+ config.testNumber = parseInt( urlParams.testNumber, 10 ) || null;
+
+ // Figure out if we're running the tests from a server or not
+ QUnit.isLocal = location.protocol === "file:";
+}());
+
+// Export global variables, unless an 'exports' object exists,
+// in that case we assume we're in CommonJS (dealt with on the bottom of the script)
+if ( typeof exports === "undefined" ) {
+ extend( window, QUnit );
+
+ // Expose QUnit object
+ window.QUnit = QUnit;
+}
+
+// Extend QUnit object,
+// these after set here because they should not be exposed as global functions
+extend( QUnit, {
+ config: config,
+
+ // Initialize the configuration options
+ init: function() {
+ extend( config, {
+ stats: { all: 0, bad: 0 },
+ moduleStats: { all: 0, bad: 0 },
+ started: +new Date(),
+ updateRate: 1000,
+ blocking: false,
+ autostart: true,
+ autorun: false,
+ filter: "",
+ queue: [],
+ semaphore: 0
+ });
+
+ var tests, banner, result,
+ qunit = id( "qunit" );
+
+ if ( qunit ) {
+ qunit.innerHTML =
+ "<h1 id='qunit-header'>" + escapeInnerText( document.title ) + "</h1>" +
+ "<h2 id='qunit-banner'></h2>" +
+ "<div id='qunit-testrunner-toolbar'></div>" +
+ "<h2 id='qunit-userAgent'></h2>" +
+ "<ol id='qunit-tests'></ol>";
+ }
+
+ tests = id( "qunit-tests" );
+ banner = id( "qunit-banner" );
+ result = id( "qunit-testresult" );
+
+ if ( tests ) {
+ tests.innerHTML = "";
+ }
+
+ if ( banner ) {
+ banner.className = "";
+ }
+
+ if ( result ) {
+ result.parentNode.removeChild( result );
+ }
+
+ if ( tests ) {
+ result = document.createElement( "p" );
+ result.id = "qunit-testresult";
+ result.className = "result";
+ tests.parentNode.insertBefore( result, tests );
+ result.innerHTML = "Running...<br/> ";
+ }
+ },
+
+ // Resets the test setup. Useful for tests that modify the DOM.
+ // If jQuery is available, uses jQuery's html(), otherwise just innerHTML.
+ reset: function() {
+ var fixture;
+
+ if ( window.jQuery ) {
+ jQuery( "#qunit-fixture" ).html( config.fixture );
+ } else {
+ fixture = id( "qunit-fixture" );
+ if ( fixture ) {
+ fixture.innerHTML = config.fixture;
+ }
+ }
+ },
+
+ // Trigger an event on an element.
+ // @example triggerEvent( document.body, "click" );
+ triggerEvent: function( elem, type, event ) {
+ if ( document.createEvent ) {
+ event = document.createEvent( "MouseEvents" );
+ event.initMouseEvent(type, true, true, elem.ownerDocument.defaultView,
+ 0, 0, 0, 0, 0, false, false, false, false, 0, null);
+
+ elem.dispatchEvent( event );
+ } else if ( elem.fireEvent ) {
+ elem.fireEvent( "on" + type );
+ }
+ },
+
+ // Safe object type checking
+ is: function( type, obj ) {
+ return QUnit.objectType( obj ) == type;
+ },
+
+ objectType: function( obj ) {
+ if ( typeof obj === "undefined" ) {
+ return "undefined";
+ // consider: typeof null === object
+ }
+ if ( obj === null ) {
+ return "null";
+ }
+
+ var type = toString.call( obj ).match(/^\[object\s(.*)\]$/)[1] || "";
+
+ switch ( type ) {
+ case "Number":
+ if ( isNaN(obj) ) {
+ return "nan";
+ }
+ return "number";
+ case "String":
+ case "Boolean":
+ case "Array":
+ case "Date":
+ case "RegExp":
+ case "Function":
+ return type.toLowerCase();
+ }
+ if ( typeof obj === "object" ) {
+ return "object";
+ }
+ return undefined;
+ },
+
+ push: function( result, actual, expected, message ) {
+ if ( !config.current ) {
+ throw new Error( "assertion outside test context, was " + sourceFromStacktrace() );
+ }
+
+ var output, source,
+ details = {
+ result: result,
+ message: message,
+ actual: actual,
+ expected: expected
+ };
+
+ message = escapeInnerText( message ) || ( result ? "okay" : "failed" );
+ message = "<span class='test-message'>" + message + "</span>";
+ output = message;
+
+ if ( !result ) {
+ expected = escapeInnerText( QUnit.jsDump.parse(expected) );
+ actual = escapeInnerText( QUnit.jsDump.parse(actual) );
+ output += "<table><tr class='test-expected'><th>Expected: </th><td><pre>" + expected + "</pre></td></tr>";
+
+ if ( actual != expected ) {
+ output += "<tr class='test-actual'><th>Result: </th><td><pre>" + actual + "</pre></td></tr>";
+ output += "<tr class='test-diff'><th>Diff: </th><td><pre>" + QUnit.diff( expected, actual ) + "</pre></td></tr>";
+ }
+
+ source = sourceFromStacktrace();
+
+ if ( source ) {
+ details.source = source;
+ output += "<tr class='test-source'><th>Source: </th><td><pre>" + escapeInnerText( source ) + "</pre></td></tr>";
+ }
+
+ output += "</table>";
+ }
+
+ runLoggingCallbacks( "log", QUnit, details );
+
+ config.current.assertions.push({
+ result: !!result,
+ message: output
+ });
+ },
+
+ pushFailure: function( message, source, actual ) {
+ if ( !config.current ) {
+ throw new Error( "pushFailure() assertion outside test context, was " + sourceFromStacktrace(2) );
+ }
+
+ var output,
+ details = {
+ result: false,
+ message: message
+ };
+
+ message = escapeInnerText( message ) || "error";
+ message = "<span class='test-message'>" + message + "</span>";
+ output = message;
+
+ output += "<table>";
+
+ if ( actual ) {
+ output += "<tr class='test-actual'><th>Result: </th><td><pre>" + escapeInnerText( actual ) + "</pre></td></tr>";
+ }
+
+ if ( source ) {
+ details.source = source;
+ output += "<tr class='test-source'><th>Source: </th><td><pre>" + escapeInnerText( source ) + "</pre></td></tr>";
+ }
+
+ output += "</table>";
+
+ runLoggingCallbacks( "log", QUnit, details );
+
+ config.current.assertions.push({
+ result: false,
+ message: output
+ });
+ },
+
+ url: function( params ) {
+ params = extend( extend( {}, QUnit.urlParams ), params );
+ var key,
+ querystring = "?";
+
+ for ( key in params ) {
+ if ( !hasOwn.call( params, key ) ) {
+ continue;
+ }
+ querystring += encodeURIComponent( key ) + "=" +
+ encodeURIComponent( params[ key ] ) + "&";
+ }
+ return window.location.pathname + querystring.slice( 0, -1 );
+ },
+
+ extend: extend,
+ id: id,
+ addEvent: addEvent
+ // load, equiv, jsDump, diff: Attached later
+});
+
+/**
+ * @deprecated: Created for backwards compatibility with test runner that set the hook function
+ * into QUnit.{hook}, instead of invoking it and passing the hook function.
+ * QUnit.constructor is set to the empty F() above so that we can add to it's prototype here.
+ * Doing this allows us to tell if the following methods have been overwritten on the actual
+ * QUnit object.
+ */
+extend( QUnit.constructor.prototype, {
+
+ // Logging callbacks; all receive a single argument with the listed properties
+ // run test/logs.html for any related changes
+ begin: registerLoggingCallback( "begin" ),
+
+ // done: { failed, passed, total, runtime }
+ done: registerLoggingCallback( "done" ),
+
+ // log: { result, actual, expected, message }
+ log: registerLoggingCallback( "log" ),
+
+ // testStart: { name }
+ testStart: registerLoggingCallback( "testStart" ),
+
+ // testDone: { name, failed, passed, total }
+ testDone: registerLoggingCallback( "testDone" ),
+
+ // moduleStart: { name }
+ moduleStart: registerLoggingCallback( "moduleStart" ),
+
+ // moduleDone: { name, failed, passed, total }
+ moduleDone: registerLoggingCallback( "moduleDone" )
+});
+
+if ( typeof document === "undefined" || document.readyState === "complete" ) {
+ config.autorun = true;
+}
+
+QUnit.load = function() {
+ runLoggingCallbacks( "begin", QUnit, {} );
+
+ // Initialize the config, saving the execution queue
+ var banner, filter, i, label, len, main, ol, toolbar, userAgent, val, urlConfigCheckboxes,
+ urlConfigHtml = "",
+ oldconfig = extend( {}, config );
+
+ QUnit.init();
+ extend(config, oldconfig);
+
+ config.blocking = false;
+
+ len = config.urlConfig.length;
+
+ for ( i = 0; i < len; i++ ) {
+ val = config.urlConfig[i];
+ if ( typeof val === "string" ) {
+ val = {
+ id: val,
+ label: val,
+ tooltip: "[no tooltip available]"
+ };
+ }
+ config[ val.id ] = QUnit.urlParams[ val.id ];
+ urlConfigHtml += "<input id='qunit-urlconfig-" + val.id + "' name='" + val.id + "' type='checkbox'" + ( config[ val.id ] ? " checked='checked'" : "" ) + " title='" + val.tooltip + "'><label for='qunit-urlconfig-" + val.id + "' title='" + val.tooltip + "'>" + val.label + "</label>";
+ }
+
+ // `userAgent` initialized at top of scope
+ userAgent = id( "qunit-userAgent" );
+ if ( userAgent ) {
+ userAgent.innerHTML = navigator.userAgent;
+ }
+
+ // `banner` initialized at top of scope
+ banner = id( "qunit-header" );
+ if ( banner ) {
+ banner.innerHTML = "<a href='" + QUnit.url({ filter: undefined, module: undefined, testNumber: undefined }) + "'>" + banner.innerHTML + "</a> ";
+ }
+
+ // `toolbar` initialized at top of scope
+ toolbar = id( "qunit-testrunner-toolbar" );
+ if ( toolbar ) {
+ // `filter` initialized at top of scope
+ filter = document.createElement( "input" );
+ filter.type = "checkbox";
+ filter.id = "qunit-filter-pass";
+
+ addEvent( filter, "click", function() {
+ var tmp,
+ ol = document.getElementById( "qunit-tests" );
+
+ if ( filter.checked ) {
+ ol.className = ol.className + " hidepass";
+ } else {
+ tmp = " " + ol.className.replace( /[\n\t\r]/g, " " ) + " ";
+ ol.className = tmp.replace( / hidepass /, " " );
+ }
+ if ( defined.sessionStorage ) {
+ if (filter.checked) {
+ sessionStorage.setItem( "qunit-filter-passed-tests", "true" );
+ } else {
+ sessionStorage.removeItem( "qunit-filter-passed-tests" );
+ }
+ }
+ });
+
+ if ( config.hidepassed || defined.sessionStorage && sessionStorage.getItem( "qunit-filter-passed-tests" ) ) {
+ filter.checked = true;
+ // `ol` initialized at top of scope
+ ol = document.getElementById( "qunit-tests" );
+ ol.className = ol.className + " hidepass";
+ }
+ toolbar.appendChild( filter );
+
+ // `label` initialized at top of scope
+ label = document.createElement( "label" );
+ label.setAttribute( "for", "qunit-filter-pass" );
+ label.setAttribute( "title", "Only show tests and assertons that fail. Stored in sessionStorage." );
+ label.innerHTML = "Hide passed tests";
+ toolbar.appendChild( label );
+
+ urlConfigCheckboxes = document.createElement( 'span' );
+ urlConfigCheckboxes.innerHTML = urlConfigHtml;
+ addEvent( urlConfigCheckboxes, "change", function( event ) {
+ var params = {};
+ params[ event.target.name ] = event.target.checked ? true : undefined;
+ window.location = QUnit.url( params );
+ });
+ toolbar.appendChild( urlConfigCheckboxes );
+ }
+
+ // `main` initialized at top of scope
+ main = id( "qunit-fixture" );
+ if ( main ) {
+ config.fixture = main.innerHTML;
+ }
+
+ if ( config.autostart ) {
+ QUnit.start();
+ }
+};
+
+addEvent( window, "load", QUnit.load );
+
+// `onErrorFnPrev` initialized at top of scope
+// Preserve other handlers
+onErrorFnPrev = window.onerror;
+
+// Cover uncaught exceptions
+// Returning true will surpress the default browser handler,
+// returning false will let it run.
+window.onerror = function ( error, filePath, linerNr ) {
+ var ret = false;
+ if ( onErrorFnPrev ) {
+ ret = onErrorFnPrev( error, filePath, linerNr );
+ }
+
+ // Treat return value as window.onerror itself does,
+ // Only do our handling if not surpressed.
+ if ( ret !== true ) {
+ if ( QUnit.config.current ) {
+ if ( QUnit.config.current.ignoreGlobalErrors ) {
+ return true;
+ }
+ QUnit.pushFailure( error, filePath + ":" + linerNr );
+ } else {
+ QUnit.test( "global failure", function() {
+ QUnit.pushFailure( error, filePath + ":" + linerNr );
+ });
+ }
+ return false;
+ }
+
+ return ret;
+};
+
+function done() {
+ config.autorun = true;
+
+ // Log the last module results
+ if ( config.currentModule ) {
+ runLoggingCallbacks( "moduleDone", QUnit, {
+ name: config.currentModule,
+ failed: config.moduleStats.bad,
+ passed: config.moduleStats.all - config.moduleStats.bad,
+ total: config.moduleStats.all
+ });
+ }
+
+ var i, key,
+ banner = id( "qunit-banner" ),
+ tests = id( "qunit-tests" ),
+ runtime = +new Date() - config.started,
+ passed = config.stats.all - config.stats.bad,
+ html = [
+ "Tests completed in ",
+ runtime,
+ " milliseconds.<br/>",
+ "<span class='passed'>",
+ passed,
+ "</span> tests of <span class='total'>",
+ config.stats.all,
+ "</span> passed, <span class='failed'>",
+ config.stats.bad,
+ "</span> failed."
+ ].join( "" );
+
+ if ( banner ) {
+ banner.className = ( config.stats.bad ? "qunit-fail" : "qunit-pass" );
+ }
+
+ if ( tests ) {
+ id( "qunit-testresult" ).innerHTML = html;
+ }
+
+ if ( config.altertitle && typeof document !== "undefined" && document.title ) {
+ // show ✖ for good, ✔ for bad suite result in title
+ // use escape sequences in case file gets loaded with non-utf-8-charset
+ document.title = [
+ ( config.stats.bad ? "\u2716" : "\u2714" ),
+ document.title.replace( /^[\u2714\u2716] /i, "" )
+ ].join( " " );
+ }
+
+ // clear own sessionStorage items if all tests passed
+ if ( config.reorder && defined.sessionStorage && config.stats.bad === 0 ) {
+ // `key` & `i` initialized at top of scope
+ for ( i = 0; i < sessionStorage.length; i++ ) {
+ key = sessionStorage.key( i++ );
+ if ( key.indexOf( "qunit-test-" ) === 0 ) {
+ sessionStorage.removeItem( key );
+ }
+ }
+ }
+
+ runLoggingCallbacks( "done", QUnit, {
+ failed: config.stats.bad,
+ passed: passed,
+ total: config.stats.all,
+ runtime: runtime
+ });
+}
+
+/** @return Boolean: true if this test should be ran */
+function validTest( test ) {
+ var include,
+ filter = config.filter && config.filter.toLowerCase(),
+ module = config.module && config.module.toLowerCase(),
+ fullName = (test.module + ": " + test.testName).toLowerCase();
+
+ if ( config.testNumber ) {
+ return test.testNumber === config.testNumber;
+ }
+
+ if ( module && ( !test.module || test.module.toLowerCase() !== module ) ) {
+ return false;
+ }
+
+ if ( !filter ) {
+ return true;
+ }
+
+ include = filter.charAt( 0 ) !== "!";
+ if ( !include ) {
+ filter = filter.slice( 1 );
+ }
+
+ // If the filter matches, we need to honour include
+ if ( fullName.indexOf( filter ) !== -1 ) {
+ return include;
+ }
+
+ // Otherwise, do the opposite
+ return !include;
+}
+
+// so far supports only Firefox, Chrome and Opera (buggy), Safari (for real exceptions)
+// Later Safari and IE10 are supposed to support error.stack as well
+// See also https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Error/Stack
+function extractStacktrace( e, offset ) {
+ offset = offset === undefined ? 3 : offset;
+
+ var stack, include, i, regex;
+
+ if ( e.stacktrace ) {
+ // Opera
+ return e.stacktrace.split( "\n" )[ offset + 3 ];
+ } else if ( e.stack ) {
+ // Firefox, Chrome
+ stack = e.stack.split( "\n" );
+ if (/^error$/i.test( stack[0] ) ) {
+ stack.shift();
+ }
+ if ( fileName ) {
+ include = [];
+ for ( i = offset; i < stack.length; i++ ) {
+ if ( stack[ i ].indexOf( fileName ) != -1 ) {
+ break;
+ }
+ include.push( stack[ i ] );
+ }
+ if ( include.length ) {
+ return include.join( "\n" );
+ }
+ }
+ return stack[ offset ];
+ } else if ( e.sourceURL ) {
+ // Safari, PhantomJS
+ // hopefully one day Safari provides actual stacktraces
+ // exclude useless self-reference for generated Error objects
+ if ( /qunit.js$/.test( e.sourceURL ) ) {
+ return;
+ }
+ // for actual exceptions, this is useful
+ return e.sourceURL + ":" + e.line;
+ }
+}
+function sourceFromStacktrace( offset ) {
+ try {
+ throw new Error();
+ } catch ( e ) {
+ return extractStacktrace( e, offset );
+ }
+}
+
+function escapeInnerText( s ) {
+ if ( !s ) {
+ return "";
+ }
+ s = s + "";
+ return s.replace( /[\&<>]/g, function( s ) {
+ switch( s ) {
+ case "&": return "&";
+ case "<": return "<";
+ case ">": return ">";
+ default: return s;
+ }
+ });
+}
+
+function synchronize( callback, last ) {
+ config.queue.push( callback );
+
+ if ( config.autorun && !config.blocking ) {
+ process( last );
+ }
+}
+
+function process( last ) {
+ function next() {
+ process( last );
+ }
+ var start = new Date().getTime();
+ config.depth = config.depth ? config.depth + 1 : 1;
+
+ while ( config.queue.length && !config.blocking ) {
+ if ( !defined.setTimeout || config.updateRate <= 0 || ( ( new Date().getTime() - start ) < config.updateRate ) ) {
+ config.queue.shift()();
+ } else {
+ window.setTimeout( next, 13 );
+ break;
+ }
+ }
+ config.depth--;
+ if ( last && !config.blocking && !config.queue.length && config.depth === 0 ) {
+ done();
+ }
+}
+
+function saveGlobal() {
+ config.pollution = [];
+
+ if ( config.noglobals ) {
+ for ( var key in window ) {
+ // in Opera sometimes DOM element ids show up here, ignore them
+ if ( !hasOwn.call( window, key ) || /^qunit-test-output/.test( key ) ) {
+ continue;
+ }
+ config.pollution.push( key );
+ }
+ }
+}
+
+function checkPollution( name ) {
+ var newGlobals,
+ deletedGlobals,
+ old = config.pollution;
+
+ saveGlobal();
+
+ newGlobals = diff( config.pollution, old );
+ if ( newGlobals.length > 0 ) {
+ QUnit.pushFailure( "Introduced global variable(s): " + newGlobals.join(", ") );
+ }
+
+ deletedGlobals = diff( old, config.pollution );
+ if ( deletedGlobals.length > 0 ) {
+ QUnit.pushFailure( "Deleted global variable(s): " + deletedGlobals.join(", ") );
+ }
+}
+
+// returns a new Array with the elements that are in a but not in b
+function diff( a, b ) {
+ var i, j,
+ result = a.slice();
+
+ for ( i = 0; i < result.length; i++ ) {
+ for ( j = 0; j < b.length; j++ ) {
+ if ( result[i] === b[j] ) {
+ result.splice( i, 1 );
+ i--;
+ break;
+ }
+ }
+ }
+ return result;
+}
+
+function extend( a, b ) {
+ for ( var prop in b ) {
+ if ( b[ prop ] === undefined ) {
+ delete a[ prop ];
+
+ // Avoid "Member not found" error in IE8 caused by setting window.constructor
+ } else if ( prop !== "constructor" || a !== window ) {
+ a[ prop ] = b[ prop ];
+ }
+ }
+
+ return a;
+}
+
+function addEvent( elem, type, fn ) {
+ if ( elem.addEventListener ) {
+ elem.addEventListener( type, fn, false );
+ } else if ( elem.attachEvent ) {
+ elem.attachEvent( "on" + type, fn );
+ } else {
+ fn();
+ }
+}
+
+function id( name ) {
+ return !!( typeof document !== "undefined" && document && document.getElementById ) &&
+ document.getElementById( name );
+}
+
+function registerLoggingCallback( key ) {
+ return function( callback ) {
+ config[key].push( callback );
+ };
+}
+
+// Supports deprecated method of completely overwriting logging callbacks
+function runLoggingCallbacks( key, scope, args ) {
+ //debugger;
+ var i, callbacks;
+ if ( QUnit.hasOwnProperty( key ) ) {
+ QUnit[ key ].call(scope, args );
+ } else {
+ callbacks = config[ key ];
+ for ( i = 0; i < callbacks.length; i++ ) {
+ callbacks[ i ].call( scope, args );
+ }
+ }
+}
+
+// Test for equality any JavaScript type.
+// Author: Philippe Rathé <prathe@gmail.com>
+QUnit.equiv = (function() {
+
+ // Call the o related callback with the given arguments.
+ function bindCallbacks( o, callbacks, args ) {
+ var prop = QUnit.objectType( o );
+ if ( prop ) {
+ if ( QUnit.objectType( callbacks[ prop ] ) === "function" ) {
+ return callbacks[ prop ].apply( callbacks, args );
+ } else {
+ return callbacks[ prop ]; // or undefined
+ }
+ }
+ }
+
+ // the real equiv function
+ var innerEquiv,
+ // stack to decide between skip/abort functions
+ callers = [],
+ // stack to avoiding loops from circular referencing
+ parents = [],
+
+ getProto = Object.getPrototypeOf || function ( obj ) {
+ return obj.__proto__;
+ },
+ callbacks = (function () {
+
+ // for string, boolean, number and null
+ function useStrictEquality( b, a ) {
+ if ( b instanceof a.constructor || a instanceof b.constructor ) {
+ // to catch short annotaion VS 'new' annotation of a
+ // declaration
+ // e.g. var i = 1;
+ // var j = new Number(1);
+ return a == b;
+ } else {
+ return a === b;
+ }
+ }
+
+ return {
+ "string": useStrictEquality,
+ "boolean": useStrictEquality,
+ "number": useStrictEquality,
+ "null": useStrictEquality,
+ "undefined": useStrictEquality,
+
+ "nan": function( b ) {
+ return isNaN( b );
+ },
+
+ "date": function( b, a ) {
+ return QUnit.objectType( b ) === "date" && a.valueOf() === b.valueOf();
+ },
+
+ "regexp": function( b, a ) {
+ return QUnit.objectType( b ) === "regexp" &&
+ // the regex itself
+ a.source === b.source &&
+ // and its modifers
+ a.global === b.global &&
+ // (gmi) ...
+ a.ignoreCase === b.ignoreCase &&
+ a.multiline === b.multiline;
+ },
+
+ // - skip when the property is a method of an instance (OOP)
+ // - abort otherwise,
+ // initial === would have catch identical references anyway
+ "function": function() {
+ var caller = callers[callers.length - 1];
+ return caller !== Object && typeof caller !== "undefined";
+ },
+
+ "array": function( b, a ) {
+ var i, j, len, loop;
+
+ // b could be an object literal here
+ if ( QUnit.objectType( b ) !== "array" ) {
+ return false;
+ }
+
+ len = a.length;
+ if ( len !== b.length ) {
+ // safe and faster
+ return false;
+ }
+
+ // track reference to avoid circular references
+ parents.push( a );
+ for ( i = 0; i < len; i++ ) {
+ loop = false;
+ for ( j = 0; j < parents.length; j++ ) {
+ if ( parents[j] === a[i] ) {
+ loop = true;// dont rewalk array
+ }
+ }
+ if ( !loop && !innerEquiv(a[i], b[i]) ) {
+ parents.pop();
+ return false;
+ }
+ }
+ parents.pop();
+ return true;
+ },
+
+ "object": function( b, a ) {
+ var i, j, loop,
+ // Default to true
+ eq = true,
+ aProperties = [],
+ bProperties = [];
+
+ // comparing constructors is more strict than using
+ // instanceof
+ if ( a.constructor !== b.constructor ) {
+ // Allow objects with no prototype to be equivalent to
+ // objects with Object as their constructor.
+ if ( !(( getProto(a) === null && getProto(b) === Object.prototype ) ||
+ ( getProto(b) === null && getProto(a) === Object.prototype ) ) ) {
+ return false;
+ }
+ }
+
+ // stack constructor before traversing properties
+ callers.push( a.constructor );
+ // track reference to avoid circular references
+ parents.push( a );
+
+ for ( i in a ) { // be strict: don't ensures hasOwnProperty
+ // and go deep
+ loop = false;
+ for ( j = 0; j < parents.length; j++ ) {
+ if ( parents[j] === a[i] ) {
+ // don't go down the same path twice
+ loop = true;
+ }
+ }
+ aProperties.push(i); // collect a's properties
+
+ if (!loop && !innerEquiv( a[i], b[i] ) ) {
+ eq = false;
+ break;
+ }
+ }
+
+ callers.pop(); // unstack, we are done
+ parents.pop();
+
+ for ( i in b ) {
+ bProperties.push( i ); // collect b's properties
+ }
+
+ // Ensures identical properties name
+ return eq && innerEquiv( aProperties.sort(), bProperties.sort() );
+ }
+ };
+ }());
+
+ innerEquiv = function() { // can take multiple arguments
+ var args = [].slice.apply( arguments );
+ if ( args.length < 2 ) {
+ return true; // end transition
+ }
+
+ return (function( a, b ) {
+ if ( a === b ) {
+ return true; // catch the most you can
+ } else if ( a === null || b === null || typeof a === "undefined" ||
+ typeof b === "undefined" ||
+ QUnit.objectType(a) !== QUnit.objectType(b) ) {
+ return false; // don't lose time with error prone cases
+ } else {
+ return bindCallbacks(a, callbacks, [ b, a ]);
+ }
+
+ // apply transition with (1..n) arguments
+ }( args[0], args[1] ) && arguments.callee.apply( this, args.splice(1, args.length - 1 )) );
+ };
+
+ return innerEquiv;
+}());
+
+/**
+ * jsDump Copyright (c) 2008 Ariel Flesler - aflesler(at)gmail(dot)com |
+ * http://flesler.blogspot.com Licensed under BSD
+ * (http://www.opensource.org/licenses/bsd-license.php) Date: 5/15/2008
+ *
+ * @projectDescription Advanced and extensible data dumping for Javascript.
+ * @version 1.0.0
+ * @author Ariel Flesler
+ * @link {http://flesler.blogspot.com/2008/05/jsdump-pretty-dump-of-any-javascript.html}
+ */
+QUnit.jsDump = (function() {
+ function quote( str ) {
+ return '"' + str.toString().replace( /"/g, '\\"' ) + '"';
+ }
+ function literal( o ) {
+ return o + "";
+ }
+ function join( pre, arr, post ) {
+ var s = jsDump.separator(),
+ base = jsDump.indent(),
+ inner = jsDump.indent(1);
+ if ( arr.join ) {
+ arr = arr.join( "," + s + inner );
+ }
+ if ( !arr ) {
+ return pre + post;
+ }
+ return [ pre, inner + arr, base + post ].join(s);
+ }
+ function array( arr, stack ) {
+ var i = arr.length, ret = new Array(i);
+ this.up();
+ while ( i-- ) {
+ ret[i] = this.parse( arr[i] , undefined , stack);
+ }
+ this.down();
+ return join( "[", ret, "]" );
+ }
+
+ var reName = /^function (\w+)/,
+ jsDump = {
+ parse: function( obj, type, stack ) { //type is used mostly internally, you can fix a (custom)type in advance
+ stack = stack || [ ];
+ var inStack, res,
+ parser = this.parsers[ type || this.typeOf(obj) ];
+
+ type = typeof parser;
+ inStack = inArray( obj, stack );
+
+ if ( inStack != -1 ) {
+ return "recursion(" + (inStack - stack.length) + ")";
+ }
+ //else
+ if ( type == "function" ) {
+ stack.push( obj );
+ res = parser.call( this, obj, stack );
+ stack.pop();
+ return res;
+ }
+ // else
+ return ( type == "string" ) ? parser : this.parsers.error;
+ },
+ typeOf: function( obj ) {
+ var type;
+ if ( obj === null ) {
+ type = "null";
+ } else if ( typeof obj === "undefined" ) {
+ type = "undefined";
+ } else if ( QUnit.is( "regexp", obj) ) {
+ type = "regexp";
+ } else if ( QUnit.is( "date", obj) ) {
+ type = "date";
+ } else if ( QUnit.is( "function", obj) ) {
+ type = "function";
+ } else if ( typeof obj.setInterval !== undefined && typeof obj.document !== "undefined" && typeof obj.nodeType === "undefined" ) {
+ type = "window";
+ } else if ( obj.nodeType === 9 ) {
+ type = "document";
+ } else if ( obj.nodeType ) {
+ type = "node";
+ } else if (
+ // native arrays
+ toString.call( obj ) === "[object Array]" ||
+ // NodeList objects
+ ( typeof obj.length === "number" && typeof obj.item !== "undefined" && ( obj.length ? obj.item(0) === obj[0] : ( obj.item( 0 ) === null && typeof obj[0] === "undefined" ) ) )
+ ) {
+ type = "array";
+ } else {
+ type = typeof obj;
+ }
+ return type;
+ },
+ separator: function() {
+ return this.multiline ? this.HTML ? "<br />" : "\n" : this.HTML ? " " : " ";
+ },
+ indent: function( extra ) {// extra can be a number, shortcut for increasing-calling-decreasing
+ if ( !this.multiline ) {
+ return "";
+ }
+ var chr = this.indentChar;
+ if ( this.HTML ) {
+ chr = chr.replace( /\t/g, " " ).replace( / /g, " " );
+ }
+ return new Array( this._depth_ + (extra||0) ).join(chr);
+ },
+ up: function( a ) {
+ this._depth_ += a || 1;
+ },
+ down: function( a ) {
+ this._depth_ -= a || 1;
+ },
+ setParser: function( name, parser ) {
+ this.parsers[name] = parser;
+ },
+ // The next 3 are exposed so you can use them
+ quote: quote,
+ literal: literal,
+ join: join,
+ //
+ _depth_: 1,
+ // This is the list of parsers, to modify them, use jsDump.setParser
+ parsers: {
+ window: "[Window]",
+ document: "[Document]",
+ error: "[ERROR]", //when no parser is found, shouldn"t happen
+ unknown: "[Unknown]",
+ "null": "null",
+ "undefined": "undefined",
+ "function": function( fn ) {
+ var ret = "function",
+ name = "name" in fn ? fn.name : (reName.exec(fn) || [])[1];//functions never have name in IE
+
+ if ( name ) {
+ ret += " " + name;
+ }
+ ret += "( ";
+
+ ret = [ ret, QUnit.jsDump.parse( fn, "functionArgs" ), "){" ].join( "" );
+ return join( ret, QUnit.jsDump.parse(fn,"functionCode" ), "}" );
+ },
+ array: array,
+ nodelist: array,
+ "arguments": array,
+ object: function( map, stack ) {
+ var ret = [ ], keys, key, val, i;
+ QUnit.jsDump.up();
+ if ( Object.keys ) {
+ keys = Object.keys( map );
+ } else {
+ keys = [];
+ for ( key in map ) {
+ keys.push( key );
+ }
+ }
+ keys.sort();
+ for ( i = 0; i < keys.length; i++ ) {
+ key = keys[ i ];
+ val = map[ key ];
+ ret.push( QUnit.jsDump.parse( key, "key" ) + ": " + QUnit.jsDump.parse( val, undefined, stack ) );
+ }
+ QUnit.jsDump.down();
+ return join( "{", ret, "}" );
+ },
+ node: function( node ) {
+ var a, val,
+ open = QUnit.jsDump.HTML ? "<" : "<",
+ close = QUnit.jsDump.HTML ? ">" : ">",
+ tag = node.nodeName.toLowerCase(),
+ ret = open + tag;
+
+ for ( a in QUnit.jsDump.DOMAttrs ) {
+ val = node[ QUnit.jsDump.DOMAttrs[a] ];
+ if ( val ) {
+ ret += " " + a + "=" + QUnit.jsDump.parse( val, "attribute" );
+ }
+ }
+ return ret + close + open + "/" + tag + close;
+ },
+ functionArgs: function( fn ) {//function calls it internally, it's the arguments part of the function
+ var args,
+ l = fn.length;
+
+ if ( !l ) {
+ return "";
+ }
+
+ args = new Array(l);
+ while ( l-- ) {
+ args[l] = String.fromCharCode(97+l);//97 is 'a'
+ }
+ return " " + args.join( ", " ) + " ";
+ },
+ key: quote, //object calls it internally, the key part of an item in a map
+ functionCode: "[code]", //function calls it internally, it's the content of the function
+ attribute: quote, //node calls it internally, it's an html attribute value
+ string: quote,
+ date: quote,
+ regexp: literal, //regex
+ number: literal,
+ "boolean": literal
+ },
+ DOMAttrs: {
+ //attributes to dump from nodes, name=>realName
+ id: "id",
+ name: "name",
+ "class": "className"
+ },
+ HTML: false,//if true, entities are escaped ( <, >, \t, space and \n )
+ indentChar: " ",//indentation unit
+ multiline: true //if true, items in a collection, are separated by a \n, else just a space.
+ };
+
+ return jsDump;
+}());
+
+// from Sizzle.js
+function getText( elems ) {
+ var i, elem,
+ ret = "";
+
+ for ( i = 0; elems[i]; i++ ) {
+ elem = elems[i];
+
+ // Get the text from text nodes and CDATA nodes
+ if ( elem.nodeType === 3 || elem.nodeType === 4 ) {
+ ret += elem.nodeValue;
+
+ // Traverse everything else, except comment nodes
+ } else if ( elem.nodeType !== 8 ) {
+ ret += getText( elem.childNodes );
+ }
+ }
+
+ return ret;
+}
+
+// from jquery.js
+function inArray( elem, array ) {
+ if ( array.indexOf ) {
+ return array.indexOf( elem );
+ }
+
+ for ( var i = 0, length = array.length; i < length; i++ ) {
+ if ( array[ i ] === elem ) {
+ return i;
+ }
+ }
+
+ return -1;
+}
+
+/*
+ * Javascript Diff Algorithm
+ * By John Resig (http://ejohn.org/)
+ * Modified by Chu Alan "sprite"
+ *
+ * Released under the MIT license.
+ *
+ * More Info:
+ * http://ejohn.org/projects/javascript-diff-algorithm/
+ *
+ * Usage: QUnit.diff(expected, actual)
+ *
+ * QUnit.diff( "the quick brown fox jumped over", "the quick fox jumps over" ) == "the quick <del>brown </del> fox <del>jumped </del><ins>jumps </ins> over"
+ */
+QUnit.diff = (function() {
+ function diff( o, n ) {
+ var i,
+ ns = {},
+ os = {};
+
+ for ( i = 0; i < n.length; i++ ) {
+ if ( ns[ n[i] ] == null ) {
+ ns[ n[i] ] = {
+ rows: [],
+ o: null
+ };
+ }
+ ns[ n[i] ].rows.push( i );
+ }
+
+ for ( i = 0; i < o.length; i++ ) {
+ if ( os[ o[i] ] == null ) {
+ os[ o[i] ] = {
+ rows: [],
+ n: null
+ };
+ }
+ os[ o[i] ].rows.push( i );
+ }
+
+ for ( i in ns ) {
+ if ( !hasOwn.call( ns, i ) ) {
+ continue;
+ }
+ if ( ns[i].rows.length == 1 && typeof os[i] != "undefined" && os[i].rows.length == 1 ) {
+ n[ ns[i].rows[0] ] = {
+ text: n[ ns[i].rows[0] ],
+ row: os[i].rows[0]
+ };
+ o[ os[i].rows[0] ] = {
+ text: o[ os[i].rows[0] ],
+ row: ns[i].rows[0]
+ };
+ }
+ }
+
+ for ( i = 0; i < n.length - 1; i++ ) {
+ if ( n[i].text != null && n[ i + 1 ].text == null && n[i].row + 1 < o.length && o[ n[i].row + 1 ].text == null &&
+ n[ i + 1 ] == o[ n[i].row + 1 ] ) {
+
+ n[ i + 1 ] = {
+ text: n[ i + 1 ],
+ row: n[i].row + 1
+ };
+ o[ n[i].row + 1 ] = {
+ text: o[ n[i].row + 1 ],
+ row: i + 1
+ };
+ }
+ }
+
+ for ( i = n.length - 1; i > 0; i-- ) {
+ if ( n[i].text != null && n[ i - 1 ].text == null && n[i].row > 0 && o[ n[i].row - 1 ].text == null &&
+ n[ i - 1 ] == o[ n[i].row - 1 ]) {
+
+ n[ i - 1 ] = {
+ text: n[ i - 1 ],
+ row: n[i].row - 1
+ };
+ o[ n[i].row - 1 ] = {
+ text: o[ n[i].row - 1 ],
+ row: i - 1
+ };
+ }
+ }
+
+ return {
+ o: o,
+ n: n
+ };
+ }
+
+ return function( o, n ) {
+ o = o.replace( /\s+$/, "" );
+ n = n.replace( /\s+$/, "" );
+
+ var i, pre,
+ str = "",
+ out = diff( o === "" ? [] : o.split(/\s+/), n === "" ? [] : n.split(/\s+/) ),
+ oSpace = o.match(/\s+/g),
+ nSpace = n.match(/\s+/g);
+
+ if ( oSpace == null ) {
+ oSpace = [ " " ];
+ }
+ else {
+ oSpace.push( " " );
+ }
+
+ if ( nSpace == null ) {
+ nSpace = [ " " ];
+ }
+ else {
+ nSpace.push( " " );
+ }
+
+ if ( out.n.length === 0 ) {
+ for ( i = 0; i < out.o.length; i++ ) {
+ str += "<del>" + out.o[i] + oSpace[i] + "</del>";
+ }
+ }
+ else {
+ if ( out.n[0].text == null ) {
+ for ( n = 0; n < out.o.length && out.o[n].text == null; n++ ) {
+ str += "<del>" + out.o[n] + oSpace[n] + "</del>";
+ }
+ }
+
+ for ( i = 0; i < out.n.length; i++ ) {
+ if (out.n[i].text == null) {
+ str += "<ins>" + out.n[i] + nSpace[i] + "</ins>";
+ }
+ else {
+ // `pre` initialized at top of scope
+ pre = "";
+
+ for ( n = out.n[i].row + 1; n < out.o.length && out.o[n].text == null; n++ ) {
+ pre += "<del>" + out.o[n] + oSpace[n] + "</del>";
+ }
+ str += " " + out.n[i].text + nSpace[i] + pre;
+ }
+ }
+ }
+
+ return str;
+ };
+}());
+
+// for CommonJS enviroments, export everything
+if ( typeof exports !== "undefined" ) {
+ extend(exports, QUnit);
+}
+
+// get at whatever the global object is, like window in browsers
+}( (function() {return this;}.call()) ));
--- /dev/null
+/**
+* Wait until the test condition is true or a timeout occurs. Useful for waiting
+* on a server response or for a ui change (fadeIn, etc.) to occur.
+*
+* @param testFx javascript condition that evaluates to a boolean,
+* it can be passed in as a string (e.g.: "1 == 1" or "$('#bar').is(':visible')" or
+* as a callback function.
+* @param onReady what to do when testFx condition is fulfilled,
+* it can be passed in as a string (e.g.: "1 == 1" or "$('#bar').is(':visible')" or
+* as a callback function.
+* @param timeOutMillis the max amount of time to wait. If not specified, 3 sec is used.
+*/
+function waitFor(testFx, onReady, timeOutMillis) {
+ var maxtimeOutMillis = timeOutMillis ? timeOutMillis : 3001, //< Default Max Timout is 3s
+ start = new Date().getTime(),
+ condition = false,
+ interval = setInterval(function() {
+ if ( (new Date().getTime() - start < maxtimeOutMillis) && !condition ) {
+ // If not time-out yet and condition not yet fulfilled
+ condition = (typeof(testFx) === "string" ? eval(testFx) : testFx()); //< defensive code
+ } else {
+ if(!condition) {
+ // If condition still not fulfilled (timeout but condition is 'false')
+ console.log("'waitFor()' timeout");
+ phantom.exit(1);
+ } else {
+ // Condition fulfilled (timeout and/or condition is 'true')
+ typeof(onReady) === "string" ? eval(onReady) : onReady(); //< Do what it's supposed to do once the condition is fulfilled
+ clearInterval(interval); //< Stop this interval
+ }
+ }
+ }, 100); //< repeat check every 250ms
+};
+
+
+if (phantom.args.length === 0 || phantom.args.length > 2) {
+ console.log('Usage: run-qunit.js URL');
+ phantom.exit();
+}
+
+var page = new WebPage();
+
+// Route "console.log()" calls from within the Page context to the main Phantom context (i.e. current "this")
+page.onConsoleMessage = function(msg) {
+ console.log(msg);
+};
+
+page.open(phantom.args[0], function(status){
+ if (status !== "success") {
+ console.log("Unable to access network");
+ phantom.exit();
+ } else {
+ waitFor(function(){
+ return page.evaluate(function(){
+ var el = document.getElementById('qunit-testresult');
+ if (el && el.innerText.match('completed')) {
+ return true;
+ }
+ return false;
+ });
+ }, function(){
+ var failedNum = page.evaluate(function(){
+ var el = document.getElementById('qunit-testresult');
+ try {
+ return el.getElementsByClassName('failed')[0].innerHTML;
+ } catch (e) { }
+ return 10000;
+ });
+ phantom.exit((parseInt(failedNum, 10) > 0) ? 1 : 0);
+ });
+ }
+});
\ No newline at end of file
--- /dev/null
+# editorconfig.org
+root = true
+
+[*]
+end_of_line = lf
+charset = utf-8
+indent_style = space
+indent_size = 2
+insert_final_newline = true
+trim_trailing_whitespace = true
--- /dev/null
+node_modules/**
+jqvmap/data/**
+jqvmap/maps/**
+jqvmap/jquery.vmap.min.js
--- /dev/null
+{
+ "globals": {
+ "jQuery": true,
+ "JQVMap": true,
+ "VectorCanvas": true,
+ "ColorScale": true
+ },
+ "env": {
+ "browser": true
+ },
+ "rules": {
+ "quotes": [2, "single"],
+ "strict": [2, "never"],
+ "brace-style": [2, "1tbs"],
+ "indent": [2, 2],
+ "linebreak-style": [2, "unix"],
+ "semi": [2, "always"],
+ "new-cap": 0
+ }
+}
--- /dev/null
+#### What does this PR do ?
+
+_type_response_here_
+
+#### How should this be tested ?
+
+_type_response_here_
+
+#### What are the relevant issues ?
+
+_github_issue_numbers_this_addresses_
+
+#### This Pull Request includes:
+
+- [ ] Bug Fix with passing `npm test`
+- [ ] New Feature with passing `npm test`
+- [ ] Code Improvement with passing `npm test`
+- [ ] Updated Documentation
+- [ ] New Map File & Example HTML
+
+#### What gif best describes how you feel about this work ?
+
+_drag_and_drop_asset_here_
--- /dev/null
+############################################
+## Generic System Ignores
+syntax: glob
+
+!.gitignore
+.DS_Store
+Thumbs.db
+.idea
+node_modules
--- /dev/null
+
+
+Change Log
+======
+
+Version 1.5.1
+---
+
+`Released on May 17th, 2016`
+
+1. Added a minified css file
+
+2. Removed Post Install Script
+
+3. Updated README.md
+
+4. Added Turkey Map and Example File
+
+5. Moved Github files into `.github` folder
+
+Version 1.5.0
+---
+
+`Released on March 15th, 2016`
+
+1. Updated LICENSE path in packaged dist files
+
+2. Fixed bugs in labels and pins where mouse events were not passing through to clickable region
+
+3. Removed -merc suffix from map files created by map creator ( fixes #204 )
+
+4. Added new example for custom placement of pins `./examples/pins_custom.html`
+
+5. Fixed `onRegionSelect` issue not returning region ( fixes #201 )
+
+6. Added better support to make regions disabled ( see #197 and new `./examples/inactive_regions.html` )
+
+Version 1.4.0
+---
+
+`Released on December 6th, 2015`
+
+1. Added Touch Support for Mobile Devices
+
+2. Added `showLabels` config option to place ISO codes by default
+
+3. Added `onResize` event handler and fixed resize event binding issues
+
+4. Fixed issue when dragging a map and releasing outside map
+
+5. Added `onLoad` event handler
+
+6. Updated `README.md` & `CONTRIBUTING.md` files
+
+Version 1.3.1
+---
+
+`Released on December 5th, 2015`
+
+1. Fixes issue with scaleColors not working.
+
+Version 1.3.0
+---
+
+`Released on December 4th, 2015`
+
+__IMPORTANT:__ This is a backwards breaking change. You will need to use the new map files with this version of JQVMap. Our focus was to make any file you create here compatible with the other vector map libraries as well as allow theirs to work with ours. Everybody wins ... except our old map files.
+
+1. Added `./create` folder for users wishing to create custom maps. Folder has detailed writeup on how to create your own maps.
+
+2. Added Unit Tests to `./tests` folder and added them as part of of the `npm test` suite and build process. These tests can also be run in the browser.
+
+3. Renamed `WorldMap` to `JQVMap` as "WorldMap" did not really make sense as a variable name
+
+4. Removed case sensitivity for reference regions by code.
+
+5. Fixed incorrect license header in distributed files
+
+6. Updated `README.md` & `CONTRIBUTING.md` files
+
+Version 1.2.0
+---
+
+`Released on November 18th, 2015`
+
+1. Switched to using Grunt to build source code. JS files in `./dist` are now generated from `./src` folder.
+
+2. Moved source files to `./src` folder
+
+3. Renamed `./samples` to `./examples`
+
+4. Renamed `./jqvmap` to `./dist`
+
+5. Removed `./website` folder as it is not really needed in this project
+
+6. Updated `README.md` & `CONTRIBUTING.md` files
+
+Version 1.1.0
+---
+
+`Released on October 17th, 2015`
+
+1. Added new maps for Russia, France, Germany, Algeria, Iraq, Iran & Brazil
+
+2. Fixed `regionClickEvent` bug
+
+3. Added event handling for deselecting a region
+
+4. Added Touch Event code example
+
+5. Added sample HTML pages for each map.
+
+Version 1.0.0
+---
+
+`Released on May 6th, 2012`
+
+Initial Release
--- /dev/null
+
+
+Contributing to JQVMap
+===
+
+Please review the following if you intend to submit an issue or pull request. Not following the guidelines below most likely means your submission will be rejected.
+
+Reporting an Issue
+---
+
+**ATTENTION:** While creating tickets is the only way to assign a task to be completed, it is equally important to not flood the development team with tickets that are not actually necessary ( might be a duplicate, already being worked on, not actually an issue, etc ). So before you create a ticket, please check that your issue has not already been reported.
+
+#### Creating a New Issue
+
+To submit a ticket, visit the project's repo on [Github](https://github.com/manifestinteractive/jqvmap), select the **Issues** tab in the right column, and click the green **New issue** button.
+
+**Please use our [Ticket Template](https://github.com/manifestinteractive/culture/blob/master/templates/ticket-template.md) to make sure you are entering all the information we will need to complete the item you are about to create.**
+
+Map Specific Issues
+---
+
+So you want to create your own maps, or change some existing ones. Awesome. Make sure to check out the `./create` folder for details on how to do this.
+
+Making Code Changes
+---
+
+All source code for this project is contained in the `./src` folder. Do not make any changes to the javascript files in the `./dist` folder, these are automatically generated by the `grunt build` terminal command. Any Pull Requests that were not generated using the following Grunt Terminal Commands will be automatically rejected in order to maintain structural integrity of this project.
+
+#### Requirements
+
+* [Node.js v0.10](http://nodejs.org/) ( For Application Development )
+
+Grunt Terminal Commands:
+---
+
+You can use the following build commands via terminal:
+
+#### Build for Distribution:
+
+The following command will Concat JS files and generate minified files for Distribution.
+
+This is the most common command you will want to use and is required to view any changes you made in a browser.
+
+```bash
+grunt build
+```
+
+#### Create a Major Release:
+
+The following will:
+
+1. Increase the build's major number ( e.g. v __1__.0.1 => v __2__.0.0 )
+2. Build & Package Distribution Files
+3. Perform a git commit
+
+```bash
+grunt release-major
+```
+
+#### Create a Minor Release:
+
+The following will:
+
+1. Increase the build's minor number ( e.g. v 1.__0__.1 => v 1.__1__.0 )
+2. Build & Package Distribution Files
+3. Perform a git commit
+
+```bash
+grunt release-minor
+```
+
+#### Create a Release Patch:
+
+The following will:
+
+1. Increase the build's patch number ( e.g. v 1.1.__1__ => v 1.1.__2__ )
+2. Build & Package Distribution Files
+3. Perform a git commit
+
+```bash
+grunt release-patch
+```
+
+Submitting a Pull Request
+---
+
+Code will not be merged into the master branch unless it has been submitted as a Pull Request.
+
+All Pull Requests must be reviewed by one of your peers before it can be merged into master.
+
+#### Creating a Pull Request Assumes:
+
+1. You have read and understand our [Coding Culture](https://github.com/manifestinteractive/culture)
+2. You are working off a git branch named after a corresponding Github ticket
+3. You have merged in the latest master branch and resolved all merge conflicts
+
+#### Create Pull Request:
+
+1. Commit and push your Github ticket branch using [Git Best Practices](https://github.com/manifestinteractive/culture/blob/master/docs/git-best-practices.md)
+2. Visit the project's repo on [Github](https://github.com/manifestinteractive/jqvmap) and click **Compare & pull request**
+3. Add a Title that briefly explains the PR
+4. Use the text from our [Pull Request Template](https://github.com/manifestinteractive/culture/blob/master/templates/pr-template.md) as the base of your PR comment
+5. Update the PR comment to complete as much information as you can provide
+6. Add a Label of **Ready for Code Review**
+7. Click **Create pull request**
+
+#### Review Pull Request:
+
+1. Visit the PR you are being asked to review
+2. Before starting your PR Review, remove the Label **Ready for Review** and add the Label **In Code Review**
+3. Review the **Files changed** tab and add any inline comments ( click line number ) you have feedback with
+4. Add any overall feedback as a new comment on the main **Conversation** tab
+5. Once code review is complete, check off the items in the **PR Reviewer** once you have completed them
+6. If the PR fails, remove the Label **In Code Review** and select a new label showing what action is needed
+7. If the PR Passes, remove all Labels and click **Merge pull request**
+8. If you are 100% certain you will never need that branch again, you can delete the branch after merging into master
+9. Contact the PR Author and let them know the results of your review
+10. Stay on top of any PR's you are reviewing until they are able to be successfully merged into master
--- /dev/null
+All code in this Github Repository are available under both the MIT and GPL license.
+
+MIT License
+
+Copyright (c) 2016 Manifest Interactive
+
+Permission is hereby granted, free of charge, to any person
+obtaining a copy of this software and associated documentation
+files (the "Software"), to deal in the Software without
+restriction, including without limitation the rights to use,
+copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the
+Software is furnished to do so, subject to the following
+conditions:
+
+The above copyright notice and this permission notice shall be
+included in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
+OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
+HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+OTHER DEALINGS IN THE SOFTWARE.
+
+GPL License
+
+Copyright (c) 2016 Manifest Interactive
+
+This program is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program. If not, see <http://www.gnu.org/licenses/>.
--- /dev/null
+
+
+This project is a heavily modified version of [jVectorMap](https://github.com/bjornd/jvectormap) as it was in April of 2012. I chose to start fresh rather than fork their project as my intentions were to take it in such a different direction that it would become incompatibale with the original source, rendering it near impossible to merge our projects together without extreme complications.
+
+**Tests:** [](https://circleci.com/gh/manifestinteractive/jqvmap/tree/master)
+
+
+jQuery Vector Map
+======
+
+To get started, all you need to do is include the JavaScript and CSS files for the map you want to load ( contained in the `./dist` folder ).
+
+#### Here is a sample HTML page for loading the World Map with default settings:
+
+```html
+<html>
+ <head>
+ <title>JQVMap - World Map</title>
+ <link href="../dist/jqvmap.css" media="screen" rel="stylesheet" type="text/css">
+
+ <script type="text/javascript" src="http://code.jquery.com/jquery-1.11.3.min.js"></script>
+ <script type="text/javascript" src="../dist/jquery.vmap.js"></script>
+ <script type="text/javascript" src="../dist/maps/jquery.vmap.world.js" charset="utf-8"></script>
+
+ <script type="text/javascript">
+ jQuery(document).ready(function() {
+ jQuery('#vmap').vectorMap({ map: 'world_en' });
+ });
+ </script>
+ </head>
+ <body>
+ <div id="vmap" style="width: 600px; height: 400px;"></div>
+ </body>
+</html>
+```
+
+Making it Pretty
+======
+
+While initializing a map you can provide parameters to change its look and feel.
+
+```js
+jQuery('#vmap').vectorMap(
+{
+ map: 'world_en',
+ backgroundColor: '#a5bfdd',
+ borderColor: '#818181',
+ borderOpacity: 0.25,
+ borderWidth: 1,
+ color: '#f4f3f0',
+ enableZoom: true,
+ hoverColor: '#c9dfaf',
+ hoverOpacity: null,
+ normalizeFunction: 'linear',
+ scaleColors: ['#b6d6ff', '#005ace'],
+ selectedColor: '#c9dfaf',
+ selectedRegions: null,
+ showTooltip: true,
+ onRegionClick: function(element, code, region)
+ {
+ var message = 'You clicked "'
+ + region
+ + '" which has the code: '
+ + code.toUpperCase();
+
+ alert(message);
+ }
+});
+```
+
+More Examples
+------
+
+You can see a variety of examples in the `./examples` folder.
+
+
+Configuration Settings
+------
+
+**map** *'world_en'*
+
+Map you want to load. Must include the javascript file with the name of the map you want. Available maps with this library are world_en, usa_en, europe_en and germany_en
+
+**backgroundColor** *'#a5bfdd'*
+
+Background color of map container in any CSS compatible format.
+
+**borderColor** *'#818181'*
+
+Border Color to use to outline map objects
+
+**borderOpacity** *0.5*
+
+Border Opacity to use to outline map objects ( use anything from 0-1, e.g. 0.5, defaults to 0.25 )
+
+**borderWidth** *3*
+
+Border Width to use to outline map objects ( defaults to 1 )
+
+**color** *'#f4f3f0'*
+
+Color of map regions.
+
+**colors**
+
+Colors of individual map regions. Keys of the colors objects are country codes according to ISO 3166-1 alpha-2 standard. Keys of colors must be in lower case.
+
+**enableZoom** *boolean*
+
+Whether to Enable Map Zoom ( true or false, defaults to true)
+
+**hoverColor** *'#c9dfaf'*
+
+Color of the region when mouse pointer is over it.
+
+**hoverColors**
+
+Colors of individual map regions when mouse pointer is over it. Keys of the colors objects are country codes according to ISO 3166-1 alpha-2 standard. Keys of colors must be in lower case.
+
+**hoverOpacity** *0.5*
+
+Opacity of the region when mouse pointer is over it.
+
+**normalizeFunction** *'linear'*
+
+This function can be used to improve results of visualizations for data with non-linear nature. Function gets raw value as the first parameter and should return value which will be used in calculations of color, with which particular region will be painted.
+
+**scaleColors** *['#b6d6ff', '#005ace']*
+
+This option defines colors, with which regions will be painted when you set option values. Array scaleColors can have more then two elements. Elements should be strings representing colors in RGB hex format.
+
+**selectedColor** *'#333333'*
+
+Color for a region when you select it
+
+**selectedRegions** *['MO', 'FL', 'OR']*
+
+This is the Region that you are looking to have preselected (two letter ISO code, defaults to null ). See [REGIONS.md](REGIONS.md)
+
+**multiSelectRegion** *boolean*
+
+Whether to enable more than one region to be selected at a time.
+
+**showLabels** *boolean*
+
+Whether to show ISO Code Labels ( true or false, defaults to false )
+
+**showTooltip** *boolean*
+
+Whether to show Tooltips on Mouseover ( true or false, defaults to true )
+
+**onLoad** *function(event, map)*
+
+Callback function which will be called when map is loading, returning the map event and map details.
+
+**onLabelShow** *function(event, label, code)*
+
+Callback function which will be called before label is shown. Label DOM object and country code will be passed to the callback as arguments.
+
+**onRegionOver** *function(event, code, region)*
+
+Callback function which will be called when the mouse cursor enters the region path. Country code will be passed to the callback as argument.
+
+**onRegionOut** *function(event, code, region)*
+
+Callback function which will be called when the mouse cursor leaves the region path. Country code will be passed to the callback as argument.
+
+**onRegionClick** *function(event, code, region)*
+
+Callback function which will be called when the user clicks the region path. Country code will be passed to the callback as argument. This callback may be called while the user is moving the map. If you need to distinguish between a "real" click and a click resulting from moving the map, you can inspect **$(event.currentTarget).data('mapObject').isMoving**.
+
+**onRegionSelect** *function(event, code, region)*
+
+Callback function which will be called when the selects a region. Country code will be passed to the callback as argument.
+
+**onRegionDeselect** *function(event, code, region)*
+
+Callback function which will be called when the deselects a region. Country code will be passed to the callback as argument.
+
+**onResize** *function(event, width, height)*
+
+Callback function which will be called when the map is resized. Return event, width & height.
+
+**pins** *{ "pk" : "pk_pin_metadata", "ru" : "ru_pin_metadata", ... }*
+
+This option defines pins, which will be placed on the regions. The JSON can have only one element against one country code. Elements should be strings containing the HTML or id of the pin (depends on the 'pinMode' option explained next).
+
+**pinMode** *content*
+
+This option defines if the "pins" JSON contains the HTML strings of the pins or the ids of HTML DOM elements which are to be placed as pins.
+
+If the pin mode is "content" (or not specified) then the parameter "pins" contains the stringified html content to be placed as the pins.
+
+Example:
+
+```js
+jQuery('#vmap').vectorMap({
+ map: 'world_en',
+ pins: { "pk" : "\u003cimg src=\"pk.png\" /\u003e" /*serialized <img src="pk.png" />*/, ... },
+ pinMode: 'content'
+});
+```
+
+If the pin mode is "id" then the parameter "pins" contains the value of "id" attribute of the html (DOM) elements to be placed as pins.
+Example:
+
+```html
+<script>
+ jQuery('#vmap').vectorMap({
+ map: 'world_en',
+ pins: { "pk" : "pin_for_pk", "ru" : "pin_for_ru", ... },
+ pinMode: 'id'
+ });
+</script>
+<div style="display:none">
+ <img id="pin_for_pk" src="pk.png" />
+ <div id="pin_for_ru">...</div>
+</div>
+```
+
+*Note:*
+
+1) The pin is placed at the center of the rectangle bounding the country. So depending on the shape of the country, the pin might not land on the country itself. For instance, the pin for 'US' lands in the center of Alaska and rest of the US, which happens to be in the ocean between them.
+
+2) If the "pinMode" is set to "id", then the html DOM elements having those ids are NOT COPIED to the desired position, they are TRANSFERRED. This means that the elements will be removed from their original positions and placed on the map.
+
+Dynamic Updating
+======
+
+Most of the options can be changed after initialization using the following code:
+
+```js
+jQuery('#vmap').vectorMap('set', 'colors', {us: '#0000ff'});
+```
+
+Instead of colors can be used any parameter except callbacks. Callbacks can be added and deleted using standard jQuery patterns of working with events.
+You can define callback function when you initialize JQVMap:
+
+```js
+jQuery('#vmap').vectorMap(
+{
+ onLoad: function(event, map)
+ {
+
+ },
+ onLabelShow: function(event, label, code)
+ {
+
+ },
+ onRegionOver: function(event, code, region)
+ {
+
+ },
+ onRegionOut: function(event, code, region)
+ {
+
+ },
+ onRegionClick: function(event, code, region)
+ {
+
+ },
+ onResize: function(event, width, height)
+ {
+
+ }
+});
+```
+
+Or later using standard jQuery mechanism:
+
+```js
+jQuery('#vmap').bind('load.jqvmap',
+ function(event, map)
+ {
+
+ }
+);
+jQuery('#vmap').bind('labelShow.jqvmap',
+ function(event, label, code)
+ {
+
+ }
+);
+jQuery('#vmap').bind('regionMouseOver.jqvmap',
+ function(event, code, region)
+ {
+
+ }
+);
+jQuery('#vmap').bind('regionMouseOut.jqvmap',
+ function(event, code, region)
+ {
+
+ }
+);
+jQuery('#vmap').bind('regionClick.jqvmap',
+ function(event, code, region)
+ {
+
+ }
+);
+jQuery('#vmap').bind('resize.jqvmap',
+ function(event, width, height)
+ {
+
+ }
+);
+```
+
+Consider that fact that you can use standard features of jQuery events like event.preventDefault() or returning false from the callback to prevent default behavior of JQVMap (showing label or changing country color on hover). In the following example, when user moves mouse cursor over Canada label won't be shown and color of country won't be changed. At the same label for Russia will have custom text.
+
+```js
+jQuery('#vmap').vectorMap(
+{
+ onLabelShow: function(event, label, code)
+ {
+ if (code == 'ca')
+ {
+ // Hide the label
+ event.preventDefault();
+ }
+ else if (code == 'ru')
+ {
+ // Plain TEXT labels
+ label.text('Bears, vodka, balalaika');
+ }
+ else if (code == 'us')
+ {
+ // HTML Based Labels. You can use any HTML you want, this is just an example
+ label.html('<div class="map-tooltip"><h1 class="header">Header</h1><p class="description">Some Description</p></div>');
+ }
+ },
+ onRegionOver: function(event, code)
+ {
+ if (code == 'ca')
+ {
+ event.preventDefault();
+ }
+ },
+});
+```
+
+Data Visualization
+======
+
+Here I want to demonstrate how visualization of some geographical-related data can be done using JQVMap. Let's visualize information about GDP in 2010 for every country. At first we need some data. Let it be site of International Monetary Fond. There we can get information in xsl format, which can be converted first to csv and then to json with any scripting language. Now we have file gdp-data.js with such content (globals are evil, I know, but just for the sake of simplification):
+
+```js
+var gdpData = {"af":16.63,"al":11.58,"dz":158.97,...};
+```
+
+Then connect it to the page and add some code to make visualization:
+
+```js
+var max = 0,
+ min = Number.MAX_VALUE,
+ cc,
+ startColor = [200, 238, 255],
+ endColor = [0, 100, 145],
+ colors = {},
+ hex;
+
+//find maximum and minimum values
+for (cc in gdpData)
+{
+ if (parseFloat(gdpData[cc]) > max)
+ {
+ max = parseFloat(gdpData[cc]);
+ }
+ if (parseFloat(gdpData[cc]) < min)
+ {
+ min = parseFloat(gdpData[cc]);
+ }
+}
+
+//set colors according to values of GDP
+for (cc in gdpData)
+{
+ if (gdpData[cc] > 0)
+ {
+ colors[cc] = '#';
+ for (var i = 0; i<3; i++)
+ {
+ hex = Math.round(startColor[i]
+ + (endColor[i]
+ - startColor[i])
+ * (gdpData[cc] / (max - min))).toString(16);
+
+ if (hex.length == 1)
+ {
+ hex = '0'+hex;
+ }
+
+ colors[cc] += (hex.length == 1 ? '0' : '') + hex;
+ }
+ }
+}
+
+//initialize JQVMap
+jQuery('#vmap').vectorMap(
+{
+ colors: colors,
+ hoverOpacity: 0.7,
+ hoverColor: false
+});
+```
+
+Functions
+======
+
+There are seven functions that can be called on map container:
+
+**zoomIn()** *Zoom one step in*
+
+Usage:
+
+```js
+jQuery('#vmap').vectorMap('zoomIn');
+```
+
+**zoomOut()** *Zoom one step out*
+
+Usage:
+
+```js
+jQuery('#vmap').vectorMap('zoomOut');
+```
+
+**getPinId(cc)** *Returns the html attribute "id" of the pin placed on the country whose country code is provided in "cc".*
+
+Usage:
+
+```js
+var pinId = jQuery('#vmap').vectorMap('getPinId', 'pk');
+```
+
+**getPin(cc)** *Returns stringified HTML of the pin placed on the country whose country code is provided in "cc".*
+
+Usage:
+
+```js
+var pinContent = jQuery('#vmap').vectorMap('getPin', 'pk');
+```
+
+**getPins()** *Returns an associative JSON string containing stringified HTML of all the pins.*
+
+Usage:
+
+```js
+var pins = jQuery('#vmap').vectorMap('getPins');
+```
+
+**removePin(cc)** *Removes the pin from the country whose country code is specified in "cc".*
+
+Usage:
+
+```js
+jQuery('#vmap').vectorMap('removePin', 'pk');
+```
+
+**removePins()** *Removes all the pins from the map.*
+
+Usage:
+
+```js
+jQuery('#vmap').vectorMap('removePins');
+```
+
+Events
+======
+
+There are three events which you can use to bind your own callbacks to:
+
+**drag** *When the map is dragged, this event is triggered.*
+
+**zoomIn** *When the map is zoomed in, this event is triggered.*
+
+**zoomOut** *When the map is zoomed out, this event is triggered.*
+
+You can bind your routines to any of these events by using jQuery on()
+For example:
+
+```js
+//Do something when the map is dragged
+jQuery('#vmap').on('drag', function(event)
+{
+ console.log('The map is being dragged');
+ //Do something
+});
+```
+
+Custom Maps
+======
+
+So you want to create your own maps, or change some existing ones. Awesome. Make sure to check out [./create/README.md](./create) for details on how to do this.
--- /dev/null
+ WORLD
+ ------------------------------
+ AE = United Arab Emirates
+ AF = Afghanistan
+ AG = Antigua and Barbuda
+ AL = Albania
+ AM = Armenia
+ AO = Angola
+ AR = Argentina
+ AT = Austria
+ AU = Australia
+ AZ = Azerbaijan
+ BA = Bosnia and Herzegovina
+ BB = Barbados
+ BD = Bangladesh
+ BE = Belgium
+ BF = Burkina Faso
+ BG = Bulgaria
+ BI = Burundi
+ BJ = Benin
+ BN = Brunei Darussalam
+ BO = Bolivia
+ BR = Brazil
+ BS = Bahamas
+ BT = Bhutan
+ BW = Botswana
+ BY = Belarus
+ BZ = Belize
+ CA = Canada
+ CD = Congo
+ CF = Central African Republic
+ CG = Congo
+ CH = Switzerland
+ CI = Cote d'Ivoire
+ CL = Chile
+ CM = Cameroon
+ CN = China
+ CO = Colombia
+ CR = Costa Rica
+ CU = Cuba
+ CV = Cape Verde
+ CY = Cyprus
+ CZ = Czech Republic
+ DE = Germany
+ DJ = Djibouti
+ DK = Denmark
+ DM = Dominica
+ DO = Dominican Republic
+ DZ = Algeria
+ EC = Ecuador
+ EE = Estonia
+ EG = Egypt
+ ER = Eritrea
+ ES = Spain
+ ET = Ethiopia
+ FI = Finland
+ FJ = Fiji
+ FK = Falkland Islands
+ FR = France
+ GA = Gabon
+ GB = United Kingdom
+ GD = Grenada
+ GE = Georgia
+ GF = French Guiana
+ GH = Ghana
+ GL = Greenland
+ GM = Gambia
+ GN = Guinea
+ GQ = Equatorial Guinea
+ GR = Greece
+ GT = Guatemala
+ GW = Guinea-Bissau
+ GY = Guyana
+ HN = Honduras
+ HR = Croatia
+ HT = Haiti
+ HU = Hungary
+ ID = Indonesia
+ IE = Ireland
+ IL = Israel
+ IN = India
+ IQ = Iraq
+ IR = Iran
+ IS = Iceland
+ IT = Italy
+ JM = Jamaica
+ JO = Jordan
+ JP = Japan
+ KE = Kenya
+ KG = Kyrgyz Republic
+ KH = Cambodia
+ KM = Comoros
+ KN = Saint Kitts and Nevis
+ KP = North Korea
+ KR = South Korea
+ KW = Kuwait
+ KZ = Kazakhstan
+ LA = Lao People's Democratic Republic
+ LB = Lebanon
+ LC = Saint Lucia
+ LK = Sri Lanka
+ LR = Liberia
+ LS = Lesotho
+ LT = Lithuania
+ LV = Latvia
+ LY = Libya
+ MA = Morocco
+ MD = Moldova
+ MG = Madagascar
+ MK = Macedonia
+ ML = Mali
+ MM = Myanmar
+ MN = Mongolia
+ MR = Mauritania
+ MT = Malta
+ MU = Mauritius
+ MV = Maldives
+ MW = Malawi
+ MX = Mexico
+ MY = Malaysia
+ MZ = Mozambique
+ NA = Namibia
+ NC = New Caledonia
+ NE = Niger
+ NG = Nigeria
+ NI = Nicaragua
+ NL = Netherlands
+ NO = Norway
+ NP = Nepal
+ NZ = New Zealand
+ OM = Oman
+ PA = Panama
+ PE = Peru
+ PF = French Polynesia
+ PG = Papua New Guinea
+ PH = Philippines
+ PK = Pakistan
+ PL = Poland
+ PT = Portugal
+ PY = Paraguay
+ QA = Qatar
+ RE = Reunion
+ RO = Romania
+ RS = Serbia
+ RU = Russian Federationß
+ RW = Rwanda
+ SA = Saudi Arabia
+ SB = Solomon Islands
+ SC = Seychelles
+ SD = Sudan
+ SE = Sweden
+ SI = Slovenia
+ SK = Slovakia
+ SL = Sierra Leone
+ SN = Senegal
+ SO = Somalia
+ SR = Suriname
+ ST = Sao Tome and Principe
+ SV = El Salvador
+ SY = Syrian Arab Republic
+ SZ = Swaziland
+ TD = Chad
+ TG = Togo
+ TH = Thailand
+ TJ = Tajikistan
+ TL = Timor-Leste
+ TM = Turkmenistan
+ TN = Tunisia
+ TR = Turkey
+ TT = Trinidad and Tobago
+ TW = Taiwan
+ TZ = Tanzania
+ UA = Ukraine
+ UG = Uganda
+ US = United States of America
+ UY = Uruguay
+ UZ = Uzbekistan
+ VE = Venezuela
+ VN = Vietnam
+ VU = Vanuatu
+ YE = Yemen
+ ZA = South Africa
+ ZM = Zambia
+ ZW = Zimbabwe
+
+ USA
+ ------------------------------
+ AK = Alaska
+ AL = Alabama
+ AR = Arkansas
+ AZ = Arizona
+ CA = California
+ CO = Colorado
+ CT = Connecticut
+ DC = District of Columbia
+ DE = Delaware
+ FL = Florida
+ GA = Georgia
+ HI = Hawaii
+ IA = Iowa
+ ID = Idaho
+ IL = Illinois
+ IN = Indiana
+ KS = Kansas
+ KY = Kentucky
+ LA = Louisiana
+ MA = Massachusetts
+ MD = Maryland
+ ME = Maine
+ MI = Michigan
+ MN = Minnesota
+ MO = Missouri
+ MS = Mississippi
+ MT = Montana
+ NC = North Carolina
+ ND = North Dakota
+ NE = Nebraska
+ NH = New Hampshire
+ NJ = New Jersey
+ NM = New Mexico
+ NV = Nevada
+ NY = New York
+ OH = Ohio
+ OK = Oklahoma
+ OR = Oregon
+ PA = Pennsylvania
+ RI = Rhode Island
+ SC = South Carolina
+ SD = South Dakota
+ TN = Tennessee
+ TX = Texas
+ UT = Utah
+ VA = Virginia
+ VT = Vermont
+ WA = Washington
+ WI = Wisconsin
+ WV = West Virginia
+ WY = Wyoming
+
+ EUROPE
+ ------------------------------
+ AD = Andorra
+ AL = Albania
+ AM = Armenia
+ AT = Austria
+ AZ = Azerbaijan
+ BA = Bosnia and Herzegovina
+ BE = Belgium
+ BG = Bulgaria
+ BY = Belarus
+ CH = Switzerland
+ CY = Cyprus
+ CZ = Czech Republic
+ DE = Germany
+ DK = Denmark
+ DZ = Algeria
+ EE = Estonia
+ ES = Spain
+ FI = Finland
+ FR = France
+ GB = United Kingdom
+ GE = Georgia
+ GL = Greenland
+ GR = Greece
+ HR = Croatia
+ HU = Hungary
+ IE = Ireland
+ IL = Israel
+ IQ = Iraq
+ IR = Iran
+ IS = Iceland
+ IT = Italy
+ JO = Jordan
+ KZ = Kazakhstan
+ LB = Lebanon
+ LI = Liechtenstein
+ LT = Lithuania
+ LU = Luxembourg
+ LV = Latvia
+ MA = Morocco
+ MC = Monaco
+ MD = Moldova
+ ME = Montenegro
+ MK = Macedonia
+ MT = Malta
+ NL = Netherlands
+ NO = Norway
+ PL = Poland
+ PT = Portugal
+ RO = Romania
+ RU = Russian Federation
+ SA = Saudi Arabia
+ SE = Sweden
+ SI = Slovenia
+ SK = Slovakia
+ SM = San Marino
+ SR = Suriname
+ SY = Syrian Arab Republic
+ TM = Turkmenistan
+ TN = Tunisia
+ TR = Turkey
+ UA = Ukraine
+
+ GERMANY
+ ------------------------------
+ BB = Brandenburg
+ BE = Berlin
+ BW = Baden-WÃrttemberg
+ BY = Bayern
+ HB = Bremen
+ HE = Hessen
+ HH = Hamburg
+ MV = Mecklenburg-Vorpommern
+ NI = Niedersachsen
+ NW = Nordrhein-Westfalen
+ RP = Rheinland-Pfalz
+ SH = Schleswig-Holstein
+ SL = Saarland
+ SN = Sachsen
+ ST = Sachsen-Anhalt
+ TH = ThÃri
+
+ RUSSIA
+ ------------------------------
+ CH = Chukotka Autonomous Okrug
+ KA = Kamchatka Krai
+ MA = Magadan Oblast
+ SA = Sakha Republic
+ AM = Amur Oblast
+ PR = Primorsky Krai
+ EU = Jewish Autonomous Oblast
+ HA = Khabarovsk Krai
+ SH = Sakhalin Oblast
+ OM = Omsk Oblast
+ NV = Novosibirsk Oblast
+ AL = Altai Krai
+ LT = Altai Republic
+ TV = Tuva Republic
+ HK = Republic of Khakassia
+ KM = Kemerovo Oblast
+ TM = Tomsk Oblast
+ ZB = Zabaykalsky Krai
+ BR = Buryat Republic
+ IR = Irkutsk Oblast
+ KR = Krasnoyarsk Krai
+ YA = Yamalo-Nenets Autonomous Okrug
+ HT = Khanty–Mansi Autonomous Okrug
+ TU = Tyumen Oblast
+ KU = Kurgan Oblast
+ CL = Chelyabinsk Oblast
+ SV = Sverdlovsk Oblast
+ AR = Arkhangelsk Oblast
+ NE = Nenets Autonomous Okrug
+ KO = Komi Republic
+ MU = Murmansk Oblast
+ VO = Vologda Oblast
+ NO = Novgorod Oblast
+ PS = Pskov Oblast
+ LE = Leningrad Oblast
+ KL = Republic of Karelia
+ KN = Kaliningrad Oblast
+ DA = Republic of Dagestan
+ ST = Stavropol Krai
+ SO = Republic of North Ossetia–Alania
+ KB = Kabardino-Balkar Republic
+ KH = Karachay–Cherkess Republic
+ CC = Chechen Republic
+ IN = Republic of Ingushetia
+ AD = Republic of Adygea
+ KS = Krasnodar Krai
+ RO = Rostov Oblast
+ KK = Republic of Kalmykia
+ AS = Astrakhan Oblast
+ VL = Volgograd Oblast
+ TR = Tver Oblast
+ SM = Smolensk Oblast
+ BN = Bryansk Oblast
+ KY = Kursk Oblast
+ BL = Belgorod Oblast
+ OR = Oryol Oblast
+ KJ = Kaluga Oblast
+ TL = Tula Oblast
+ LP = Lipetsk Oblast
+ MC = Moscow Oblast
+ RZ = Ryazan Oblast
+ TB = Tambov Oblast
+ VM = Vladimir Oblast
+ IV = Ivanovo Oblast
+ YR = Yaroslavl Oblast
+ KT = Kostroma Oblast
+ NN = Nizhny Novgorod Oblast
+ MR = Republic of Mordovia
+ PZ = Penza Oblast
+ SR = Saratov Oblast
+ SS = Samara Oblast
+ OB = Orenburg Oblast
+ BS = Republic of Bashkortostan
+ UL = Ulyanovsk Oblast
+ CU = Chuvash Republic
+ TA = Republic of Tatarstan
+ ML = Mari El Republic
+ UD = Udmurt Republic
+ KI = Kirov Oblast
+ PE = Perm Krai
+ VN = Voronezh Oblast
--- /dev/null
+{
+ "name": "jqvmap",
+ "version": "1.5.0",
+ "homepage": "http://jqvmap.com",
+ "authors": [
+ "JQVMap"
+ ],
+ "license": "(MIT OR GPL-3.0)",
+ "description": "jQuery Vector Map Library",
+ "main": "dist/jquery.vmap.min.js",
+ "keywords": [
+ "jquery",
+ "map",
+ "svg",
+ "vml",
+ "vector"
+ ],
+ "repository": {
+ "type": "git",
+ "url": "https://github.com/manifestinteractive/jqvmap.git"
+ },
+ "dependencies": {
+ "jquery": ">=1.11.3"
+ },
+ "ignore": [
+ "**/.*",
+ "node_modules",
+ "bower_components",
+ "test",
+ "tests"
+ ]
+}
--- /dev/null
+
+
+Creating Custom Maps for JQVMaps
+===
+
+Special thanks again to [jvectormap](http://jvectormap.com) for creating the base converter for this. I have flushed out the documentation a little more for any Python newbies out there ( like myself ).
+
+Creating maps is actually a bit of work, and should really only be done by those familiar with Python & a Terminal Window, as these are the tools you will need to create maps. If you are OK with this, here is what you need to know to get started:
+
+Requirements
+---
+
+#### Overview:
+
+You will need to have the following installed:
+
+1. [Python](https://www.python.org/downloads/) _( 2.7+ )_
+2. [GDAL](http://trac.osgeo.org/gdal/wiki/DownloadingGdalBinaries) _( OS Binary )_
+3. [GDAL](https://pypi.python.org/pypi/GDAL/) _( Python Package )_
+4. [Shapely](https://pypi.python.org/pypi/Shapely/1.2.16) _( Python Package )_
+5. [Booleano](http://code.gustavonarea.net/booleano/index.html) _( Python Package )_
+
+
+Installing Software:
+---
+
+#### Step #1:
+
+Download & Install Python by clicking one of the Download Python buttons on the [Python Website](https://www.python.org/downloads/). We are using `v2.7.10`.
+
+#### Step #2:
+
+Open a Terminal window and make sure Python installed correctly by typing the following:
+
+```bash
+which pip
+```
+
+which should return something like ( if it did not, you did not install Python correctly ):
+
+```
+/Library/Frameworks/Python.framework/Versions/2.7/bin/pip
+```
+
+You may also wish to update PIP to disable upgrade warnings in the future:
+
+```bash
+pip install --upgrade pip
+```
+
+#### Step #3:
+
+Now we need to install the [GDAL/OGR binaries](http://trac.osgeo.org/gdal/wiki/DownloadingGdalBinaries) and follow the steps they layout for your designated OS.
+
+__OSX:__
+
+Download and install the [GDAL 1.11 Complete](http://www.kyngchaos.com/files/software/frameworks/GDAL_Complete-1.11.dmg) Package.
+
+Alternatively, If you have [Homebew](http://brew.sh/) installed, you can run the following, though I personally had issues with it working 100%
+
+```bash
+brew update
+brew install gdal
+```
+
+__Windows:__
+
+You should be able to run [Maptools](http://www.maptools.org/ms4w/index.phtml?page=downloads.html) custom [MS4W installer](http://www.maptools.org/dl/ms4w/ms4w-3.0.6-setup.exe) to get everything you need.
+
+#### Step #4:
+
+With Python & GDAL Binaries installed, we can now install the required Python packages via the following Terminal Commands:
+
+
+```bash
+sudo easy_install GDAL
+pip install shapely
+pip install booleano
+```
+
+Note: If you have issues installing a Python Package, please visit the links in the Requirements Overview for detailed install instructions.
+
+
+Downloading Map Sources
+---
+
+Before you can create custom maps, you need to download the vector data from the source. You will need to use a search engine to find the Shapefile for the map you want to create. This can usually be done by just searching for something like "New York Shapefile" or "Syria Shapefile" in Google.
+
+Once you have the Shapefile you want, just download it and copy the unzipped directory of files you want to the `./create/source` folder in this project.
+
+If you would like to test the sample map config files we have in this project, you will need to download the following ( which are also good sources for maps in general ):
+
+1. [SHP/GeoDB Vector Themes](http://naciscdn.org/naturalearth/packages/natural_earth_vector.zip) from [Natural Earth](http://www.naturalearthdata.com/downloads/). Unzip the `natural_earth_vector.zip` file and copy the entire `natural_earth_vector` folder to the `./create/source` folder in this project. __TIP:__ If you plan on using this source, `code_field` is `iso_a3` and `name_field` is `name_long`.
+
+2. [Global Administrative Areas](http://www.gadm.org/country) has an updated Shapefile for pretty much every country. Just select the `Country` you want ( for this example, `Syria` ) and set `File format` to `Shapefile` and press the `OK` button to download. This will take you to a download page. Click the `download` link and save the zip file. For this example, unzip the `SYR_adm_shp.zip` file and copy the entire `SYR_adm_shp` folder to the `./create/source` folder in this project. __TIP:__ If you plan on using this source, `code_field` is `ISO` and `name_field` is `NAME_ENGLI`.
+
+3. [New York - Borough Boundaries (Clipped to Shoreline)](http://www.nyc.gov/html/dcp/download/bytes/nybb_15d.zip) from the [NYC.gov](http://www.nyc.gov/html/dcp/html/bytes/districts_download_metadata.shtml) website. Unzip the `nybb_15d.zip` file and copy the entire `nybb_15d` folder to the `./create/source` folder in this project.
+
+
+Creating Maps
+---
+
+#### Setup Environment
+
+As detected by [@andreasspeck](https://github.com/andreasspeck) you will need to add the following Environmental Variable to create more complex maps without issues. In a Terminal Window, run the following command before attempting to create a map:
+
+```bash
+export OGR_ENABLE_PARTIAL_REPROJECTION=TRUE
+```
+
+If you plan on creating multiple maps in the future, you may wish to just add that line above to your profile by editing your `.bash_profile`, `.profile` or `.zshrc` file ( whatever you are using OS ).
+
+If you choose to edit your profile, make sure you run the source command to add it to your current Terminal session.
+
+```bash
+source .bash_profile
+```
+
+#### Map Configurations
+
+You can create a custom JSON file and save it in the `./create/config` folder.
+
+A sample `my-map.json` configuration file would look something like this:
+
+```json
+[
+ {
+ "name": "read_data",
+ "file_name": "./source/some-folder/some-file.shp"
+ },
+ {
+ "name": "write_data",
+ "format": "jqvmap",
+ "file_name": "./output/jquery.vmap.my-map.js",
+ "params": {
+ "code_field": "iso_column",
+ "name_field": "name_column",
+ "name": "my-map"
+ }
+ }
+]
+```
+
+You will need to pay special attention to what the `code_field` and `name_field` parameters are, as these are what are used in the map creator. These are usually found along side your `.shp` file as either an `.csv` file or `.xml`. You might need to use a DBF Viewer to view the `.dbf` file if a CSV & XML don't exists.
+
+For `code_field` you are just looking for the column name that has the ISO Code ( 2-3 letters ).
+
+For `name_field` you are just looking for the column name that has the ISO Name ( English Name ).
+
+Once you have created a config file, and set the `file_name` for `read_data` and `write_data`, you can run the following command in a Terminal Window.
+
+```bash
+cd /path/to/jqvmap/create
+python jqvmap.py config/my-map.json
+```
+
+The map creator will output the new JQVMap files into the `./create/output` folder.
+
+#### Sample Map Configurations
+
+We have already setup a few custom config files for you to play with. With a Terminal Window open, run the following commands ( make sure to change `/path/to/jqvmap` to wherever you have this project installed. ):
+
+```bash
+cd /path/to/jqvmap/create
+python jqvmap.py config/continent.json
+python jqvmap.py config/new-york.json
+python jqvmap.py config/syria.json
+```
+
+#### Map Configuration JSON Options:
+
+The following are the complete list of JSON configuration options for you to use. Make sure to look at the samples in the config folder to get an idea on how to use these with your map.
+
+|Command|Config|Option|Description|
+|---|---|---|---|
+|`read_data`| | |Read geometries from GIS data file|
+| |`file_name`| |The name of the file to read|
+| |`longitude0`| |Central meridian coordinate|
+| |`projection`| |The map projection to use, currently implemented projections are `merc` (Mercator), `mill` (Miller Cylindrical), `aea` (Albers Equal Area) & `lcc` (Lambert Conformal Conic)|
+|`write_data`| | |Writes geometries to file|
+| |`file_name`| |The name of the file to write|
+| |`format`| |Format of data to write, `jqvmap` for JQVMap compatible format, no value for OGR format|
+| |`params`| |Hash with parameters to supply to writer, the following parameters are used in case of jqvmap format:|
+| | |`code_field`|Name of field to use as a region code|
+| | |`name_field`|Name of field to use as a region name|
+| | |`name`|Map base name|
+|`union`| | |Merges geometries with the same value for one field|
+| |`by`| |The name of the field to merge geometries by|
+|`join_data`| | |Adds or rewrites properties for geoemtry based on equal values in another field, works similar to JOIN operation from SQL|
+| |`data`| |This could raw data to join or file name of CSv file with data to load|
+| |`fields`| |Array describing fields, which data contains|
+| |`on`| |Field to match to join data|
+|`remove`| | |Removes geometries and their properties based on logical expression|
+| |`where `| |Expression to evaluate for each geometry|
+|`remove_fields`| | |Removes fields and associated properties|
+| |`fields`| |Array with field names to remove|
+|`remove_other_fields`| | |Removes all fields and associated properties except the ones provided|
+| |`fields`| |Array with field names to preserve|
+|`buffer`| | |Removes (erosion) or adds (dilation) zone around every geoemtry|
+| |`distance`| | |
+| |`resolution`| | |
+|`simplify_adjancent_polygons`| | |Simplifies polygons taking topology into account (shared borders remain shared after operation)|
+| |`tolerance`| |Simplification tolerance|
+|`intersect_rect`| | |Cuts out everything beyond boubdaries of supplied rectangle|
+| |`rect`| |Array with four values, defining left-top and right-bottom corners of rectange|
+|`remove_small_polygons`| | |Removes polygons which area is less than supplied value|
+| |`minimal_area`| | |
--- /dev/null
+*
+!continent.json
+!new-york.json
+!syria.json
+!fr_regions_2016_mill.json
+!.gitignore
--- /dev/null
+[
+ {
+ "name": "read_data",
+ "file_name": "./source/natural_earth_vector/110m_cultural/ne_110m_admin_0_countries_lakes.shp",
+ "filter": "continent != \"Antarctica\" AND continent != \"Seven seas (open ocean)\"",
+ "longitude0": 11.5
+ },
+ {
+ "name": "join_data",
+ "data": [
+ [
+ "Africa",
+ "AF"
+ ],
+ [
+ "Asia",
+ "AS"
+ ],
+ [
+ "Europe",
+ "EU"
+ ],
+ [
+ "North America",
+ "NA"
+ ],
+ [
+ "South America",
+ "SA"
+ ],
+ [
+ "Oceania",
+ "OC"
+ ]
+ ],
+ "fields": [
+ {
+ "name": "continent",
+ "type": 4,
+ "width": 100
+ },
+ {
+ "name": "cont_code",
+ "type": 4,
+ "width": 4
+ }
+ ],
+ "on": "continent"
+ },
+ {
+ "name": "union",
+ "by": "cont_code"
+ },
+ {
+ "name": "write_data",
+ "format": "jqvmap",
+ "file_name": "./output/jquery.vmap.world.js",
+ "params": {
+ "code_field": "cont_code",
+ "name_field": "continent",
+ "name": "continents"
+ }
+ }
+]
--- /dev/null
+[{
+ "name": "read_data",
+ "file_name": "./source/ne_10m_admin_1_states_provinces_lakes/ne_10m_admin_1_states_provinces_lakes.shp",
+ "filter": "iso_a2 = \"FR\""
+},{
+ "name": "join_data",
+ "data": [
+ ["FR-D", "FR-X1"],
+ ["FR-I", "FR-X1"],
+ ["FR-B", "FR-X2"],
+ ["FR-L", "FR-X2"],
+ ["FR-T", "FR-X2"],
+ ["FR-P", "FR-X3"],
+ ["FR-Q", "FR-X3"],
+ ["FR-A", "FR-X4"],
+ ["FR-G", "FR-X4"],
+ ["FR-M", "FR-X4"],
+ ["FR-K", "FR-X5"],
+ ["FR-N", "FR-X5"],
+ ["FR-O", "FR-X6"],
+ ["FR-S", "FR-X6"],
+ ["FR-C", "FR-X7"],
+ ["FR-V", "FR-X7"],
+ ["FR-E", "FR-E"],
+ ["FR-F", "FR-F"],
+ ["FR-H", "FR-H"],
+ ["FR-J", "FR-J"],
+ ["FR-R", "FR-R"],
+ ["FR-U", "FR-U"],
+ ["FR-GF", "FR-GF"],
+ ["FR-GP", "FR-GP"],
+ ["FR-MQ", "FR-MQ"],
+ ["FR-RE", "FR-RE"],
+ ["FR-YT", "FR-YT"]
+ ],
+ "fields": [{
+ "name": "region_cod",
+ "type": 4,
+ "width": 10
+ },{
+ "name": "iso_new",
+ "type": 4,
+ "width": 5
+ }],
+ "on": "region_cod"
+},{
+ "name": "union",
+ "by": "iso_new"
+},{
+ "name": "join_data",
+ "data": [
+ ["FR-X1", "Bourgogne-Franche-Comté"],
+ ["FR-X2", "Aquitaine-Limousin-Poitou-Charentes"],
+ ["FR-X3", "Normandy"],
+ ["FR-X4", "Alsace-Champagne-Ardenne-Lorraine"],
+ ["FR-X5", "Languedoc-Roussillon-Midi-Pyrénées"],
+ ["FR-X6", "Nord-Pas-de-Calais-Picardie"],
+ ["FR-X7", "Auvergne-Rhône-Alpes"]
+ ],
+ "fields": [{
+ "name": "iso_new",
+ "type": 4,
+ "width": 5
+ },{
+ "name": "region",
+ "type": 4,
+ "width": 100
+ }],
+ "on": "iso_new"
+},{
+ "name": "write_data",
+ "format": "jvectormap",
+ "params": {
+ "code_field": "iso_new",
+ "name_field": "region",
+ "name": "fr_regions_2016",
+ "insets": [{
+ "codes": ["FR-GF"],
+ "width": 100,
+ "left": 0,
+ "top": 600
+ },{
+ "codes": ["FR-GP"],
+ "width": 50,
+ "left": 0,
+ "top": 440
+ },{
+ "codes": ["FR-MQ"],
+ "width": 50,
+ "left": 0,
+ "top": 510
+ },{
+ "codes": ["FR-RE"],
+ "width": 50,
+ "left": 740,
+ "top": 700
+ },{
+ "codes": ["FR-YT"],
+ "width": 40,
+ "left": 640,
+ "top": 690
+ }]
+ }
+}]
\ No newline at end of file
--- /dev/null
+[
+ {
+ "name": "read_data",
+ "file_name": "./source/nybb_15d/nybb.shp"
+ },
+ {
+ "name": "write_data",
+ "format": "jqvmap",
+ "file_name": "./output/jquery.vmap.new-york.js",
+ "params": {
+ "code_field": "BoroCode",
+ "name_field": "BoroName",
+ "name": "us-ny-new-york"
+ }
+ }
+]
--- /dev/null
+[
+ {
+ "name": "read_data",
+ "file_name": "./source/SYR_adm_shp/SYR_adm0.shp"
+ },
+ {
+ "name": "write_data",
+ "format": "jqvmap",
+ "file_name": "./output/jquery.vmap.syria.js",
+ "params": {
+ "code_field": "ISO",
+ "name_field": "NAME_ENGLI",
+ "name": "syria"
+ }
+ }
+]
--- /dev/null
+import sys
+import json
+import csv
+import shapely.wkb
+import shapely.geometry
+import shapely.ops
+import os
+import copy
+from osgeo import ogr
+from osgeo import osr
+from booleano.parser import Grammar, EvaluableParseManager, SymbolTable, Bind
+from booleano.operations import Variable
+
+
+class JQVMap:
+ def __init__(self, name, language):
+ self.paths = {}
+ self.name = name
+ self.language = language
+ self.width = 0
+ self.height = 0
+ self.bbox = []
+
+ def addPath(self, path, code, name, desc, post_id):
+ self.paths[code] = {"path": path, "name": name, "desc": desc, "post_id": post_id}
+
+ def getJSCode(self):
+ map = {"paths": self.paths, "width": self.width, "height": self.height, "insets": self.insets, "projection": self.projection}
+ header = "/** JQVMap " + self.projection['type'] + " map for " + self.name + " */"
+ js = "jQuery.fn.vectorMap('addMap', '" + self.name + "'," + json.dumps(map) + ");"
+ return header + "\n" + js
+
+
+class Converter:
+ def __init__(self, config):
+ args = {
+ 'buffer_distance': -0.4,
+ 'simplify_tolerance': 0.2,
+ 'longitude0': 0,
+ 'projection': 'mill',
+ 'name': 'world',
+ 'width': 900,
+ 'left': 0,
+ 'top': 0,
+ 'language': 'en',
+ 'precision': 2,
+ 'insets': []
+ }
+ args.update(config)
+
+ self.config = args
+
+ self.map = JQVMap(args['name'], args.get('language'))
+
+ if args.get('sources'):
+ self.sources = args['sources']
+ else:
+ self.sources = [{
+ 'input_file': args.get('input_file'),
+ 'where': args.get('where'),
+ 'name_field': args.get('name_field'),
+ 'code_field': args.get('code_field'),
+ 'input_file_encoding': args.get('input_file_encoding')
+ }]
+
+ default_source = {
+ 'where': '',
+ 'name_field': 0,
+ 'code_field': 1,
+ 'input_file_encoding': 'iso-8859-1'
+ }
+
+ for index in range(len(self.sources)):
+ for key in default_source:
+ if self.sources[index].get(key) is None:
+ self.sources[index][key] = default_source[key]
+
+ self.features = {}
+ self.width = args.get('width')
+ self.left = args.get('left')
+ self.top = args.get('top')
+ self.minimal_area = args.get('minimal_area')
+ self.longitude0 = float(args.get('longitude0'))
+ self.projection = args.get('projection')
+ self.precision = args.get('precision')
+ self.buffer_distance = args.get('buffer_distance')
+ self.simplify_tolerance = args.get('simplify_tolerance')
+ self.for_each = args.get('for_each')
+ self.emulate_longitude0 = args.get('emulate_longitude0')
+ if args.get('emulate_longitude0') is None and (self.projection == 'merc' or self.projection =='mill') and self.longitude0 != 0:
+ self.emulate_longitude0 = True
+
+ if args.get('viewport'):
+ self.viewport = map(lambda s: float(s), args.get('viewport').split(' '))
+ else:
+ self.viewport = False
+
+ # spatial reference to convert to
+ self.spatialRef = osr.SpatialReference()
+ projString = '+proj='+str(self.projection)+' +a=6381372 +b=6381372 +lat_0=0'
+ if not self.emulate_longitude0:
+ projString += ' +lon_0='+str(self.longitude0)
+ self.spatialRef.ImportFromProj4(projString)
+
+ # handle map insets
+ if args.get('insets'):
+ self.insets = args.get('insets')
+ else:
+ self.insets = []
+
+
+ def convert(self, data_source, output_file):
+ codes = map(lambda g: g.properties[self.config['code_field']], data_source.geometries)
+ main_codes = copy.copy(codes)
+ self.map.insets = []
+ envelope = []
+ for inset in self.insets:
+ insetBbox = self.renderMapInset(data_source, inset['codes'], inset['left'], inset['top'], inset['width'])
+ insetHeight = (insetBbox[3] - insetBbox[1]) * (inset['width'] / (insetBbox[2] - insetBbox[0]))
+ self.map.insets.append({
+ "bbox": [{"x": insetBbox[0], "y": -insetBbox[3]}, {"x": insetBbox[2], "y": -insetBbox[1]}],
+ "left": inset['left'],
+ "top": inset['top'],
+ "width": inset['width'],
+ "height": insetHeight
+ })
+ envelope.append(
+ shapely.geometry.box(
+ inset['left'], inset['top'], inset['left'] + inset['width'], inset['top'] + insetHeight
+ )
+ )
+ for code in inset['codes']:
+ main_codes.remove(code)
+
+ insetBbox = self.renderMapInset(data_source, main_codes, self.left, self.top, self.width)
+ insetHeight = (insetBbox[3] - insetBbox[1]) * (self.width / (insetBbox[2] - insetBbox[0]))
+ envelope.append( shapely.geometry.box( self.left, self.top, self.left + self.width, self.top + insetHeight ) )
+ mapBbox = shapely.geometry.MultiPolygon( envelope ).bounds
+
+ self.map.width = mapBbox[2] + mapBbox[0]
+ self.map.height = mapBbox[3] + mapBbox[1]
+ self.map.insets.append({
+ "bbox": [{"x": insetBbox[0], "y": -insetBbox[3]}, {"x": insetBbox[2], "y": -insetBbox[1]}],
+ "left": self.left,
+ "top": self.top,
+ "width": self.width,
+ "height": insetHeight
+ })
+ self.map.projection = {"type": self.projection, "centralMeridian": float(self.longitude0)}
+
+ open(output_file, 'w').write( self.map.getJSCode() )
+
+ if self.for_each is not None:
+ for code in codes:
+ childConfig = copy.deepcopy(self.for_each)
+ for param in ('input_file', 'output_file', 'where', 'name'):
+ childConfig[param] = childConfig[param].replace('{{code}}', code.lower())
+ converter = Converter(childConfig)
+ converter.convert(childConfig['output_file'])
+
+ def renderMapInset(self, data_source, codes, left, top, width):
+ envelope = []
+ geometries = filter(lambda g: g.properties[self.config['code_field']] in codes, data_source.geometries)
+ for geometry in geometries:
+ envelope.append( geometry.geom.envelope )
+
+ bbox = shapely.geometry.MultiPolygon( envelope ).bounds
+
+ scale = (bbox[2]-bbox[0]) / width
+
+ # generate SVG paths
+ for geometry in geometries:
+ geom = geometry.geom
+ if self.buffer_distance:
+ geom = geom.buffer(self.buffer_distance*scale, 1)
+ if geom.is_empty:
+ continue
+ if self.simplify_tolerance:
+ geom = geom.simplify(self.simplify_tolerance*scale, preserve_topology=True)
+ if isinstance(geom, shapely.geometry.multipolygon.MultiPolygon):
+ polygons = geom.geoms
+ else:
+ polygons = [geom]
+ path = ''
+ for polygon in polygons:
+ rings = []
+ rings.append(polygon.exterior)
+ rings.extend(polygon.interiors)
+ for ring in rings:
+ for pointIndex in range( len(ring.coords) ):
+ point = ring.coords[pointIndex]
+ if pointIndex == 0:
+ path += 'M'+str( round( (point[0]-bbox[0]) / scale + left, self.precision) )
+ path += ','+str( round( (bbox[3] - point[1]) / scale + top, self.precision) )
+ else:
+ path += 'l' + str( round(point[0]/scale - ring.coords[pointIndex-1][0]/scale, self.precision) )
+ path += ',' + str( round(ring.coords[pointIndex-1][1]/scale - point[1]/scale, self.precision) )
+ path += 'Z'
+ self.map.addPath(path, geometry.properties[self.config['code_field']].lower(), geometry.properties[self.config['name_field']])
+ return bbox
+
+
+class Geometry:
+ def __init__(self, geometry, properties):
+ self.geom = geometry
+ self.properties = properties
+
+
+class GeometryProperty(Variable):
+ operations = set(["equality", "membership"])
+
+ def __init__(self, name):
+ self.name = name
+
+ def equals(self, value, context):
+ return context[self.name] == value
+
+ def belongs_to(self, value, context):
+ return value in context[self.name]
+
+ def is_subset(self, value, context):
+ return set(value).issubset(set(context[self.name]))
+
+ def to_python(self, value):
+ return unicode(value[self.name])
+
+
+class DataSource:
+ def __init__(self, config):
+ default_config = {
+ "projection": "merc",
+ "longitude0": 0
+ }
+ default_config.update(config)
+ self.config = default_config
+
+ self.spatialRef = osr.SpatialReference()
+ projString = '+proj='+str(self.config['projection'])+' +a=6381372 +b=6381372 +lat_0=0'
+ #if 'emulate_longitude0' in self.config and not self.config['emulate_longitude0']:
+ projString += ' +lon_0='+str(self.config['longitude0'])
+ self.spatialRef.ImportFromProj4(projString)
+
+ def load_data(self):
+ self.source = ogr.Open( self.config['file_name'], update = 0 )
+ self.layer = self.source.GetLayer(0)
+ if 'filter' in self.config and self.config['filter'] is not None:
+ self.layer.SetAttributeFilter( self.config['filter'].encode('ascii') )
+ self.layer_dfn = self.layer.GetLayerDefn()
+
+ self.fields = []
+ field_count = self.layer_dfn.GetFieldCount()
+ for field_index in range(field_count):
+ field = self.layer_dfn.GetFieldDefn( field_index )
+ self.fields.append({
+ 'name': field.GetName(),
+ 'type': field.GetType(),
+ 'width': field.GetWidth(),
+ 'precision': field.GetPrecision()
+ })
+
+ self.geometries = []
+
+ for feature in self.layer:
+ geometry = feature.GetGeometryRef()
+ geometry.TransformTo( self.spatialRef )
+ geometry = shapely.wkb.loads( geometry.ExportToWkb() )
+ if not geometry.is_valid:
+ geometry = geometry.buffer(0)
+ properties = {}
+ for field in self.fields:
+ properties[field['name']] = feature.GetFieldAsString(field['name']).decode('utf-8')
+ self.geometries.append( Geometry(geometry, properties) )
+
+ self.layer.ResetReading()
+
+ self.create_grammar()
+
+ def create_grammar(self):
+ root_table = SymbolTable("root",
+ map( lambda f: Bind(f['name'], GeometryProperty(f['name'])), self.fields )
+ )
+
+ tokens = {
+ 'not': 'not',
+ 'eq': '==',
+ 'ne': '!=',
+ 'belongs_to': 'in',
+ 'is_subset': 'are included in',
+ 'or': "or",
+ 'and': 'and'
+ }
+ grammar = Grammar(**tokens)
+ self.parse_manager = EvaluableParseManager(root_table, grammar)
+
+ def output(self, output):
+ if output.get('format') == 'jqvmap':
+ self.output_jvm(output)
+ else:
+ self.output_ogr(output)
+
+ def output_ogr(self, output):
+ driver = ogr.GetDriverByName( 'ESRI Shapefile' )
+ if os.path.exists( output['file_name'] ):
+ driver.DeleteDataSource( output['file_name'] )
+ source = driver.CreateDataSource( output['file_name'] )
+ layer = source.CreateLayer( self.layer_dfn.GetName(),
+ geom_type = self.layer_dfn.GetGeomType(),
+ srs = self.layer.GetSpatialRef() )
+
+ for field in self.fields:
+ fd = ogr.FieldDefn( str(field['name']), field['type'] )
+ fd.SetWidth( field['width'] )
+ if 'precision' in field:
+ fd.SetPrecision( field['precision'] )
+ layer.CreateField( fd )
+
+ for geometry in self.geometries:
+ if geometry.geom is not None:
+ feature = ogr.Feature( feature_def = layer.GetLayerDefn() )
+ for index, field in enumerate(self.fields):
+ if field['name'] in geometry.properties:
+ feature.SetField( index, geometry.properties[field['name']].encode('utf-8') )
+ else:
+ feature.SetField( index, '' )
+ feature.SetGeometryDirectly(
+ ogr.CreateGeometryFromWkb(
+ shapely.wkb.dumps(
+ geometry.geom
+ )
+ )
+ )
+ layer.CreateFeature( feature )
+ feature.Destroy()
+
+ source.Destroy()
+
+ def output_jvm(self, output):
+ params = copy.deepcopy(output['params'])
+ params.update({
+ "projection": self.config["projection"],
+ "longitude0": self.config["longitude0"]
+ })
+ converter = Converter(params)
+ converter.convert(self, output['file_name'])
+
+class PolygonSimplifier:
+ def __init__(self, geometries):
+ self.format = '%.8f %.8f'
+ self.tolerance = 0.05
+ self.geometries = geometries
+
+ connections = {}
+ counter = 0
+ for geom in geometries:
+ counter += 1
+ polygons = []
+
+ if isinstance(geom, shapely.geometry.Polygon):
+ polygons.append(geom)
+ else:
+ for polygon in geom:
+ polygons.append(polygon)
+
+ for polygon in polygons:
+ if polygon.area > 0:
+ lines = []
+ lines.append(polygon.exterior)
+ for line in polygon.interiors:
+ lines.append(line)
+
+ for line in lines:
+ for i in range(len(line.coords)-1):
+ indexFrom = i
+ indexTo = i+1
+ pointFrom = self.format % line.coords[indexFrom]
+ pointTo = self.format % line.coords[indexTo]
+ if pointFrom == pointTo:
+ continue
+ if not (pointFrom in connections):
+ connections[pointFrom] = {}
+ connections[pointFrom][pointTo] = 1
+ if not (pointTo in connections):
+ connections[pointTo] = {}
+ connections[pointTo][pointFrom] = 1
+ self.connections = connections
+ self.simplifiedLines = {}
+ self.pivotPoints = {}
+
+ def simplifyRing(self, ring):
+ coords = list(ring.coords)[0:-1]
+ simpleCoords = []
+
+ isPivot = False
+ pointIndex = 0
+ while not isPivot and pointIndex < len(coords):
+ pointStr = self.format % coords[pointIndex]
+ pointIndex += 1
+ isPivot = ((len(self.connections[pointStr]) > 2) or (pointStr in self.pivotPoints))
+ pointIndex = pointIndex - 1
+
+ if not isPivot:
+ simpleRing = shapely.geometry.LineString(coords).simplify(self.tolerance)
+ if len(simpleRing.coords) <= 2:
+ return None
+ else:
+ self.pivotPoints[self.format % coords[0]] = True
+ self.pivotPoints[self.format % coords[-1]] = True
+ simpleLineKey = self.format % coords[0]+':'+self.format % coords[1]+':'+self.format % coords[-1]
+ self.simplifiedLines[simpleLineKey] = simpleRing.coords
+ return simpleRing
+ else:
+ points = coords[pointIndex:len(coords)]
+ points.extend(coords[0:pointIndex+1])
+ iFrom = 0
+ for i in range(1, len(points)):
+ pointStr = self.format % points[i]
+ if ((len(self.connections[pointStr]) > 2) or (pointStr in self.pivotPoints)):
+ line = points[iFrom:i+1]
+ lineKey = self.format % line[-1]+':'+self.format % line[-2]+':'+self.format % line[0]
+ if lineKey in self.simplifiedLines:
+ simpleLine = self.simplifiedLines[lineKey]
+ simpleLine = list(reversed(simpleLine))
+ else:
+ simpleLine = shapely.geometry.LineString(line).simplify(self.tolerance).coords
+ lineKey = self.format % line[0]+':'+self.format % line[1]+':'+self.format % line[-1]
+ self.simplifiedLines[lineKey] = simpleLine
+ simpleCoords.extend( simpleLine[0:-1] )
+ iFrom = i
+ if len(simpleCoords) <= 2:
+ return None
+ else:
+ return shapely.geometry.LineString(simpleCoords)
+
+ def simplifyPolygon(self, polygon):
+ simpleExtRing = self.simplifyRing(polygon.exterior)
+ if simpleExtRing is None:
+ return None
+ simpleIntRings = []
+ for ring in polygon.interiors:
+ simpleIntRing = self.simplifyRing(ring)
+ if simpleIntRing is not None:
+ simpleIntRings.append(simpleIntRing)
+ return shapely.geometry.Polygon(simpleExtRing, simpleIntRings)
+
+ def simplify(self):
+ results = []
+ for geom in self.geometries:
+ polygons = []
+ simplePolygons = []
+
+ if isinstance(geom, shapely.geometry.Polygon):
+ polygons.append(geom)
+ else:
+ for polygon in geom:
+ polygons.append(polygon)
+
+ for polygon in polygons:
+ simplePolygon = self.simplifyPolygon(polygon)
+ if not (simplePolygon is None or simplePolygon._geom is None):
+ simplePolygons.append(simplePolygon)
+
+ if len(simplePolygons) > 0:
+ results.append(shapely.geometry.MultiPolygon(simplePolygons))
+ else:
+ results.append(None)
+ return results
+
+
+class Processor:
+ def __init__(self, config):
+ self.config = config
+
+ def process(self):
+ self.data_sources = {}
+ for action in self.config:
+ getattr(self, action['name'])( action, self.data_sources.get(".") )
+
+ def read_data(self, config, data_source):
+ self.data_sources["."] = DataSource( config )
+ self.data_sources["."].load_data()
+
+ def write_data(self, config, data_source):
+ data_source.output( config )
+
+ def union(self, config, data_source):
+ groups = {}
+ geometries = []
+ for geometry in data_source.geometries:
+ if geometry.properties[config['by']] in groups:
+ groups[geometry.properties[config['by']]]['geoms'].append(geometry.geom)
+ else:
+ groups[geometry.properties[config['by']]] = {
+ 'geoms': [geometry.geom],
+ 'properties': geometry.properties
+ }
+ for key in groups:
+ geometries.append( Geometry(shapely.ops.cascaded_union( groups[key]['geoms'] ), groups[key]['properties']) )
+ data_source.geometries = geometries
+
+ def merge(self, config, data_source):
+ new_geometries = []
+ for rule in config['rules']:
+ expression = data_source.parse_manager.parse( rule['where'] )
+ geometries = filter(lambda g: expression(g.properties), data_source.geometries)
+ geometries = map(lambda g: g.geom, geometries)
+ new_geometries.append( Geometry(shapely.ops.cascaded_union( geometries ), rule['fields']) )
+ data_source.fields = config['fields']
+ data_source.geometries = new_geometries
+
+ def join_data(self, config, data_source):
+ field_names = [f['name'] for f in config['fields']]
+ if 'data' in config:
+ data_col = config['data']
+ else:
+ data_file = open(config['file_name'], 'rb')
+ data_col = csv.reader(data_file, delimiter='\t', quotechar='"')
+ data = {}
+ for row in data_col:
+ row_dict = dict(zip(field_names, row))
+ data[row_dict.pop(config['on'])] = row_dict
+ for geometry in data_source.geometries:
+ if geometry.properties[config['on']] in data:
+ geometry.properties.update( data[geometry.properties[config['on']]] )
+ field_names = map(lambda f: f['name'], data_source.fields)
+ data_source.fields = data_source.fields + filter(lambda f: f['name'] not in field_names, config['fields'])
+
+ def remove(self, config, data_source):
+ expression = data_source.parse_manager.parse( config['where'] )
+ data_source.geometries = filter(lambda g: not expression(g.properties), data_source.geometries)
+
+ def remove_fields(self, config, data_source):
+ data_source.fields = filter(lambda f: f.name not in config['fields'], data_source.fields)
+
+ def remove_other_fields(self, config, data_source):
+ data_source.fields = filter(lambda f: f['name'] in config['fields'], data_source.fields)
+
+ def buffer(self, config, data_source):
+ for geometry in data_source.geometries:
+ geometry.geom = geometry.geom.buffer(config['distance'], config['resolution'])
+
+ def simplify_adjancent_polygons(self, config, data_source):
+ simple_geometries = PolygonSimplifier( map( lambda g: g.geom, data_source.geometries ) ).simplify()
+ for i in range(len(data_source.geometries)):
+ data_source.geometries[i].geom = simple_geometries[i]
+
+ def intersect_rect(self, config, data_source):
+ transform = osr.CoordinateTransformation( data_source.layer.GetSpatialRef(), data_source.spatialRef )
+ point1 = transform.TransformPoint(config['rect'][0], config['rect'][1])
+ point2 = transform.TransformPoint(config['rect'][2], config['rect'][3])
+ rect = shapely.geometry.box(point1[0], point1[1], point2[0], point2[1])
+ for geometry in data_source.geometries:
+ geometry.geom = geometry.geom.intersection(rect)
+
+ def remove_small_polygons(self, config, data_source):
+ for geometry in data_source.geometries:
+ if isinstance(geometry.geom, shapely.geometry.multipolygon.MultiPolygon):
+ polygons = geometry.geom.geoms
+ else:
+ polygons = [geometry.geom]
+ polygons = filter(lambda p: p.area > config['minimal_area'], polygons)
+ if len(polygons) > 0:
+ geometry.geom = shapely.geometry.multipolygon.MultiPolygon(polygons)
+
+
+args = {}
+if len(sys.argv) > 1:
+ paramsJson = open(sys.argv[1], 'r').read()
+else:
+ paramsJson = sys.stdin.read()
+paramsJson = json.loads(paramsJson)
+
+processor = Processor(paramsJson)
+processor.process()
--- /dev/null
+*
+
+!.gitignore
--- /dev/null
+*
+!ne_10m_admin_1_states_provinces_lakes
+!.gitignore
--- /dev/null
+/*!
+ * JQVMap: jQuery Vector Map Library
+ * @author JQVMap <me@peterschmalfeldt.com>
+ * @version 1.5.1
+ * @link http://jqvmap.com
+ * @license https://github.com/manifestinteractive/jqvmap/blob/master/LICENSE
+ * @builddate 2016/06/02
+ */
+
+var VectorCanvas = function (width, height, params) {
+ this.mode = window.SVGAngle ? 'svg' : 'vml';
+ this.params = params;
+
+ if (this.mode === 'svg') {
+ this.createSvgNode = function (nodeName) {
+ return document.createElementNS(this.svgns, nodeName);
+ };
+ } else {
+ try {
+ if (!document.namespaces.rvml) {
+ document.namespaces.add('rvml', 'urn:schemas-microsoft-com:vml');
+ }
+ this.createVmlNode = function (tagName) {
+ return document.createElement('<rvml:' + tagName + ' class="rvml">');
+ };
+ } catch (e) {
+ this.createVmlNode = function (tagName) {
+ return document.createElement('<' + tagName + ' xmlns="urn:schemas-microsoft.com:vml" class="rvml">');
+ };
+ }
+
+ document.createStyleSheet().addRule('.rvml', 'behavior:url(#default#VML)');
+ }
+
+ if (this.mode === 'svg') {
+ this.canvas = this.createSvgNode('svg');
+ } else {
+ this.canvas = this.createVmlNode('group');
+ this.canvas.style.position = 'absolute';
+ }
+
+ this.setSize(width, height);
+};
+
+VectorCanvas.prototype = {
+ svgns: 'http://www.w3.org/2000/svg',
+ mode: 'svg',
+ width: 0,
+ height: 0,
+ canvas: null
+};
+
+var ColorScale = function (colors, normalizeFunction, minValue, maxValue) {
+ if (colors) {
+ this.setColors(colors);
+ }
+ if (normalizeFunction) {
+ this.setNormalizeFunction(normalizeFunction);
+ }
+ if (minValue) {
+ this.setMin(minValue);
+ }
+ if (minValue) {
+ this.setMax(maxValue);
+ }
+};
+
+ColorScale.prototype = {
+ colors: []
+};
+
+var JQVMap = function (params) {
+ params = params || {};
+ var map = this;
+ var mapData = JQVMap.maps[params.map];
+ var mapPins;
+
+ if( !mapData){
+ throw new Error('Invalid "' + params.map + '" map parameter. Please make sure you have loaded this map file in your HTML.');
+ }
+
+ this.selectedRegions = [];
+ this.multiSelectRegion = params.multiSelectRegion;
+
+ this.container = params.container;
+
+ this.defaultWidth = mapData.width;
+ this.defaultHeight = mapData.height;
+
+ this.color = params.color;
+ this.selectedColor = params.selectedColor;
+ this.hoverColor = params.hoverColor;
+ this.hoverColors = params.hoverColors;
+ this.hoverOpacity = params.hoverOpacity;
+ this.setBackgroundColor(params.backgroundColor);
+
+ this.width = params.container.width();
+ this.height = params.container.height();
+
+ this.resize();
+
+ jQuery(window).resize(function () {
+ var newWidth = params.container.width();
+ var newHeight = params.container.height();
+
+ if(newWidth && newHeight){
+ map.width = newWidth;
+ map.height = newHeight;
+ map.resize();
+ map.canvas.setSize(map.width, map.height);
+ map.applyTransform();
+
+ var resizeEvent = jQuery.Event('resize.jqvmap');
+ jQuery(params.container).trigger(resizeEvent, [newWidth, newHeight]);
+
+ if(mapPins){
+ jQuery('.jqvmap-pin').remove();
+ map.pinHandlers = false;
+ map.placePins(mapPins.pins, mapPins.mode);
+ }
+ }
+ });
+
+ this.canvas = new VectorCanvas(this.width, this.height, params);
+ params.container.append(this.canvas.canvas);
+
+ this.makeDraggable();
+
+ this.rootGroup = this.canvas.createGroup(true);
+
+ this.index = JQVMap.mapIndex;
+ this.image_container = jQuery('<div/>').addClass('jqvmap-image_container').appendTo(jQuery('#interactive-map #mapRegionData')).hide();
+ this.image = jQuery('<img/>').addClass('jqvmap-image').appendTo(jQuery('#interactive-map #mapRegionData .jqvmap-image_container'));
+ this.label = jQuery('<div/>').addClass('jqvmap-label').appendTo(jQuery('#interactive-map #mapRegionData')).hide();
+ this.content = jQuery('<div/>').addClass('jqvmap-content').appendTo(jQuery('#interactive-map #mapRegionData')).hide();
+// this.region_button = jQuery('<a/>').addClass('jqvmap-region_button glm-button button').appendTo(jQuery('#interactive-map #mapRegionData')).hide();
+
+ if (params.enableZoom) {
+ jQuery('<div/>').addClass('jqvmap-zoomin').text('+').appendTo(params.container);
+ jQuery('<div/>').addClass('jqvmap-zoomout').html('−').appendTo(params.container);
+ }
+
+ map.countries = [];
+
+ for (var key in mapData.paths) {
+ var path = this.canvas.createPath({
+ path: mapData.paths[key].path
+ });
+
+ path.setFill(this.color);
+ path.id = map.getCountryId(key);
+// path.setRegionName(mapData.paths[key].regionName);
+
+// path.regionLabel = jQuery('<div/>').addClass('jqvmap-namelabel').appendTo(jQuery('#map'));
+// path.regionLabel.text("tourData[currentRegionId]['title']");
+// path.regionLabel.show();
+
+ map.countries[key] = path;
+
+ if (this.canvas.mode === 'svg') {
+ path.setAttribute('class', 'jqvmap-region');
+ } else {
+ jQuery(path).addClass('jqvmap-region');
+ }
+
+ jQuery(this.rootGroup).append(path);
+
+ }
+ jQuery("#interactive-map").find("li").on("hover", function () {
+ jQuery(".jqvmap-label").css("display", "inherit");
+ jQuery(".jqvmap-image, .jqvmap-image_container").css("display", "inherit");
+ jQuery(".jqvmap-content").css("display", "inherit");
+
+ map.image.attr('src', tourData[592]['image']);
+ map.label.text(tourData[592]['title']);
+ map.content.html(tourData[592]['content']);
+ });
+ jQuery(params.container).delegate(this.canvas.mode === 'svg' ? 'path' : 'shape', 'mouseover mouseout', function (e) {
+ var containerPath = e.target,
+ code = e.target.id.split('_').pop(),
+ labelShowEvent = jQuery.Event('labelShow.jqvmap'),
+ regionMouseOverEvent = jQuery.Event('regionMouseOver.jqvmap');
+
+ code = code.toLowerCase();
+
+ if (e.type === 'mouseover') {
+ jQuery(params.container).trigger(regionMouseOverEvent, [code, mapData.paths[code].regionName, mapData.paths[code].content, mapData.paths[code].post_id]);
+ if (!regionMouseOverEvent.isDefaultPrevented()) {
+ map.highlight(code, containerPath);
+ }
+ params.showTooltip = true;
+ if (params.showTooltip) {
+ var currentRegionId = mapData.paths[code].post_id;
+ map.image.attr('src', tourData[currentRegionId]['image']);
+ map.label.text(tourData[currentRegionId]['title']);
+ map.content.html(tourData[currentRegionId]['content']);
+// map.region_button.attr('href', tourData[currentRegionId]['url']).text("find out more...");
+// map.content.text(mapData.paths[code].content);
+ //map.post_id.text(mapData.paths[code].post_id);
+
+ jQuery(params.container).trigger(labelShowEvent, [map.label, map.content, map.post_id, code]);
+
+ if (!labelShowEvent.isDefaultPrevented()) {
+ map.image_container.show();
+ map.label.show();
+ map.content.show();
+// map.region_button.show();
+ map.labelWidth = map.label.width();
+ map.labelHeight = map.label.height();
+ }
+ }
+ } else {
+ map.unhighlight(code, containerPath);
+ //map.image_container.hide();
+// map.label.hide();
+// map.content.hide();
+// map.post_id.hide();
+ jQuery(params.container).trigger('regionMouseOut.jqvmap', [code, mapData.paths[code].regionName, mapData.paths[code].content, mapData.paths[code].post_id]);
+ }
+ });
+
+ jQuery(params.container).delegate(this.canvas.mode === 'svg' ? 'path' : 'shape', 'click', function (regionClickEvent) {
+
+ var targetPath = regionClickEvent.target;
+ var code = regionClickEvent.target.id.split('_').pop();
+ var mapClickEvent = jQuery.Event('regionClick.jqvmap');
+
+ code = code.toLowerCase();
+
+ jQuery(params.container).trigger(mapClickEvent, [code, mapData.paths[code].regionName, mapData.paths[code].content, mapData.paths[code].post_id]);
+
+ if ( !params.multiSelectRegion && !mapClickEvent.isDefaultPrevented()) {
+ for (var keyPath in mapData.paths) {
+ map.countries[keyPath].currentFillColor = map.countries[keyPath].getOriginalFill();
+ map.countries[keyPath].setFill(map.countries[keyPath].getOriginalFill());
+ }
+ }
+
+ var currentRegionId = mapData.paths[code].post_id;
+ var win = window.open(tourData[currentRegionId]['url'], '_self');
+ if (win) {
+ win.focus();
+ } else {
+ alert('Please allow popups for this website');
+ }
+
+ if ( !mapClickEvent.isDefaultPrevented()) {
+ if (map.isSelected(code)) {
+ map.deselect(code, targetPath);
+ } else {
+ map.select(code, targetPath);
+ }
+ }
+ });
+
+ if (params.showTooltip) {
+ params.container.mousemove(function (e) {
+ if (map.label.is(':visible')) {
+// var left = e.pageX - 15 - map.labelWidth;
+// var top = e.pageY - 15 - map.labelHeight;
+//
+// if(left < 0) {
+// left = e.pageX + 15;
+// }
+// if(top < 0) {
+// top = e.pageY + 15;
+// }
+
+// map.label.css({
+// left: left,
+// top: top
+// });
+ }
+ });
+ }
+
+ this.setColors(params.colors);
+
+ this.canvas.canvas.appendChild(this.rootGroup);
+
+ this.applyTransform();
+
+ this.colorScale = new ColorScale(params.scaleColors, params.normalizeFunction, params.valueMin, params.valueMax);
+
+ if (params.values) {
+ this.values = params.values;
+ this.setValues(params.values);
+ }
+
+ if (params.selectedRegions) {
+ if (params.selectedRegions instanceof Array) {
+ for(var k in params.selectedRegions) {
+ this.select(params.selectedRegions[k].toLowerCase());
+ }
+ } else {
+ this.select(params.selectedRegions.toLowerCase());
+ }
+ }
+
+ this.bindZoomButtons();
+
+ if(params.pins) {
+ mapPins = {
+ pins: params.pins,
+ mode: params.pinMode
+ };
+
+ this.pinHandlers = false;
+ this.placePins(params.pins, params.pinMode);
+ }
+
+ if(params.showLabels){
+ this.pinHandlers = false;
+
+ var pins = {};
+ for (key in map.countries){
+ if (typeof map.countries[key] !== 'function') {
+ if( !params.pins || !params.pins[key] ){
+ pins[key] = key.toUpperCase();
+ }
+ }
+ }
+
+ mapPins = {
+ pins: pins,
+ mode: 'content'
+ };
+
+ this.placePins(pins, 'content');
+ }
+
+ JQVMap.mapIndex++;
+};
+
+JQVMap.prototype = {
+ transX: 0,
+ transY: 0,
+ scale: 1,
+ baseTransX: 0,
+ baseTransY: 0,
+ baseScale: 1,
+ width: 0,
+ height: 0,
+ countries: {},
+ countriesColors: {},
+ countriesData: {},
+ zoomStep: 1.4,
+ zoomMaxStep: 4,
+ zoomCurStep: 1
+};
+
+JQVMap.xlink = 'http://www.w3.org/1999/xlink';
+JQVMap.mapIndex = 1;
+JQVMap.maps = {};
+
+(function(){
+
+ var apiParams = {
+ colors: 1,
+ values: 1,
+ backgroundColor: 1,
+ scaleColors: 1,
+ normalizeFunction: 1,
+ enableZoom: 1,
+ showTooltip: 1,
+ borderColor: 1,
+ borderWidth: 1,
+ borderOpacity: 1,
+ selectedRegions: 1,
+ multiSelectRegion: 1
+ };
+
+ var apiEvents = {
+ onLabelShow: 'labelShow',
+ onLoad: 'load',
+ onRegionOver: 'regionMouseOver',
+ onRegionOut: 'regionMouseOut',
+ onRegionClick: 'regionClick',
+ onRegionSelect: 'regionSelect',
+ onRegionDeselect: 'regionDeselect',
+ onResize: 'resize'
+ };
+
+ jQuery.fn.vectorMap = function (options) {
+
+ var defaultParams = {
+ map: 'world_en',
+ backgroundColor: '#a5bfdd',
+ color: '#f4f3f0',
+ hoverColor: '#c9dfaf',
+ hoverColors: {},
+ selectedColor: '#c9dfaf',
+ scaleColors: ['#b6d6ff', '#005ace'],
+ normalizeFunction: 'linear',
+ enableZoom: true,
+ showTooltip: true,
+ borderColor: '#818181',
+ borderWidth: 1,
+ borderOpacity: 0.25,
+ selectedRegions: null,
+ multiSelectRegion: false
+ }, map = this.data('mapObject');
+
+ if (options === 'addMap') {
+ JQVMap.maps[arguments[1]] = arguments[2];
+ } else if (options === 'set' && apiParams[arguments[1]]) {
+ map['set' + arguments[1].charAt(0).toUpperCase() + arguments[1].substr(1)].apply(map, Array.prototype.slice.call(arguments, 2));
+ } else if (typeof options === 'string' &&
+ typeof map[options] === 'function') {
+ return map[options].apply(map, Array.prototype.slice.call(arguments, 1));
+ } else {
+ jQuery.extend(defaultParams, options);
+ defaultParams.container = this;
+ this.css({ position: 'relative', overflow: 'hidden' });
+
+ map = new JQVMap(defaultParams);
+
+ this.data('mapObject', map);
+
+ this.unbind('.jqvmap');
+
+ for (var e in apiEvents) {
+ if (defaultParams[e]) {
+ this.bind(apiEvents[e] + '.jqvmap', defaultParams[e]);
+ }
+ }
+
+ var loadEvent = jQuery.Event('load.jqvmap');
+ jQuery(defaultParams.container).trigger(loadEvent, map);
+
+ return map;
+ }
+ };
+
+})(jQuery);
+
+ColorScale.arrayToRgb = function (ar) {
+ var rgb = '#';
+ var d;
+ for (var i = 0; i < ar.length; i++) {
+ d = ar[i].toString(16);
+ rgb += d.length === 1 ? '0' + d : d;
+ }
+ return rgb;
+};
+
+ColorScale.prototype.getColor = function (value) {
+ if (typeof this.normalize === 'function') {
+ value = this.normalize(value);
+ }
+
+ var lengthes = [];
+ var fullLength = 0;
+ var l;
+
+ for (var i = 0; i < this.colors.length - 1; i++) {
+ l = this.vectorLength(this.vectorSubtract(this.colors[i + 1], this.colors[i]));
+ lengthes.push(l);
+ fullLength += l;
+ }
+
+ var c = (this.maxValue - this.minValue) / fullLength;
+
+ for (i = 0; i < lengthes.length; i++) {
+ lengthes[i] *= c;
+ }
+
+ i = 0;
+ value -= this.minValue;
+
+ while (value - lengthes[i] >= 0) {
+ value -= lengthes[i];
+ i++;
+ }
+
+ var color;
+ if (i === this.colors.length - 1) {
+ color = this.vectorToNum(this.colors[i]).toString(16);
+ } else {
+ color = (this.vectorToNum(this.vectorAdd(this.colors[i], this.vectorMult(this.vectorSubtract(this.colors[i + 1], this.colors[i]), (value) / (lengthes[i]))))).toString(16);
+ }
+
+ while (color.length < 6) {
+ color = '0' + color;
+ }
+ return '#' + color;
+};
+
+ColorScale.rgbToArray = function (rgb) {
+ rgb = rgb.substr(1);
+ return [parseInt(rgb.substr(0, 2), 16), parseInt(rgb.substr(2, 2), 16), parseInt(rgb.substr(4, 2), 16)];
+};
+
+ColorScale.prototype.setColors = function (colors) {
+ for (var i = 0; i < colors.length; i++) {
+ colors[i] = ColorScale.rgbToArray(colors[i]);
+ }
+ this.colors = colors;
+};
+
+ColorScale.prototype.setMax = function (max) {
+ this.clearMaxValue = max;
+ if (typeof this.normalize === 'function') {
+ this.maxValue = this.normalize(max);
+ } else {
+ this.maxValue = max;
+ }
+};
+
+ColorScale.prototype.setMin = function (min) {
+ this.clearMinValue = min;
+
+ if (typeof this.normalize === 'function') {
+ this.minValue = this.normalize(min);
+ } else {
+ this.minValue = min;
+ }
+};
+
+ColorScale.prototype.setNormalizeFunction = function (f) {
+ if (f === 'polynomial') {
+ this.normalize = function (value) {
+ return Math.pow(value, 0.2);
+ };
+ } else if (f === 'linear') {
+ delete this.normalize;
+ } else {
+ this.normalize = f;
+ }
+ this.setMin(this.clearMinValue);
+ this.setMax(this.clearMaxValue);
+};
+
+ColorScale.prototype.vectorAdd = function (vector1, vector2) {
+ var vector = [];
+ for (var i = 0; i < vector1.length; i++) {
+ vector[i] = vector1[i] + vector2[i];
+ }
+ return vector;
+};
+
+ColorScale.prototype.vectorLength = function (vector) {
+ var result = 0;
+ for (var i = 0; i < vector.length; i++) {
+ result += vector[i] * vector[i];
+ }
+ return Math.sqrt(result);
+};
+
+ColorScale.prototype.vectorMult = function (vector, num) {
+ var result = [];
+ for (var i = 0; i < vector.length; i++) {
+ result[i] = vector[i] * num;
+ }
+ return result;
+};
+
+ColorScale.prototype.vectorSubtract = function (vector1, vector2) {
+ var vector = [];
+ for (var i = 0; i < vector1.length; i++) {
+ vector[i] = vector1[i] - vector2[i];
+ }
+ return vector;
+};
+
+ColorScale.prototype.vectorToNum = function (vector) {
+ var num = 0;
+ for (var i = 0; i < vector.length; i++) {
+ num += Math.round(vector[i]) * Math.pow(256, vector.length - i - 1);
+ }
+ return num;
+};
+
+JQVMap.prototype.applyTransform = function () {
+ var maxTransX, maxTransY, minTransX, minTransY;
+ if (this.defaultWidth * this.scale <= this.width) {
+ maxTransX = (this.width - this.defaultWidth * this.scale) / (2 * this.scale);
+ minTransX = (this.width - this.defaultWidth * this.scale) / (2 * this.scale);
+ } else {
+ maxTransX = 0;
+ minTransX = (this.width - this.defaultWidth * this.scale) / this.scale;
+ }
+
+ if (this.defaultHeight * this.scale <= this.height) {
+ maxTransY = (this.height - this.defaultHeight * this.scale) / (2 * this.scale);
+ minTransY = (this.height - this.defaultHeight * this.scale) / (2 * this.scale);
+ } else {
+ maxTransY = 0;
+ minTransY = (this.height - this.defaultHeight * this.scale) / this.scale;
+ }
+
+ if (this.transY > maxTransY) {
+ this.transY = maxTransY;
+ } else if (this.transY < minTransY) {
+ this.transY = minTransY;
+ }
+ if (this.transX > maxTransX) {
+ this.transX = maxTransX;
+ } else if (this.transX < minTransX) {
+ this.transX = minTransX;
+ }
+
+ this.canvas.applyTransformParams(this.scale, this.transX, this.transY);
+};
+
+JQVMap.prototype.bindZoomButtons = function () {
+ var map = this;
+ this.container.find('.jqvmap-zoomin').click(function(){
+ map.zoomIn();
+ });
+ this.container.find('.jqvmap-zoomout').click(function(){
+ map.zoomOut();
+ });
+};
+
+JQVMap.prototype.deselect = function (cc, path) {
+ cc = cc.toLowerCase();
+ path = path || jQuery('#' + this.getCountryId(cc))[0];
+
+ if (this.isSelected(cc)) {
+ this.selectedRegions.splice(this.selectIndex(cc), 1);
+
+ jQuery(this.container).trigger('regionDeselect.jqvmap', [cc]);
+ path.currentFillColor = path.getOriginalFill();
+ path.setFill(path.getOriginalFill());
+ } else {
+ for (var key in this.countries) {
+ this.selectedRegions.splice(this.selectedRegions.indexOf(key), 1);
+ this.countries[key].currentFillColor = this.color;
+ this.countries[key].setFill(this.color);
+ }
+ }
+};
+
+JQVMap.prototype.getCountryId = function (cc) {
+ return 'jqvmap' + this.index + '_' + cc;
+};
+
+JQVMap.prototype.getPin = function(cc){
+ var pinObj = jQuery('#' + this.getPinId(cc));
+ return pinObj.html();
+};
+
+JQVMap.prototype.getPinId = function (cc) {
+ return this.getCountryId(cc) + '_pin';
+};
+
+JQVMap.prototype.getPins = function(){
+ var pins = this.container.find('.jqvmap-pin');
+ var ret = {};
+ jQuery.each(pins, function(index, pinObj){
+ pinObj = jQuery(pinObj);
+ var cc = pinObj.attr('for').toLowerCase();
+ var pinContent = pinObj.html();
+ ret[cc] = pinContent;
+ });
+ return JSON.stringify(ret);
+};
+
+JQVMap.prototype.highlight = function (cc, path) {
+ path = path || jQuery('#' + this.getCountryId(cc))[0];
+ if (this.hoverOpacity) {
+ path.setOpacity(this.hoverOpacity);
+ } else if (this.hoverColors && (cc in this.hoverColors)) {
+ path.currentFillColor = path.getFill() + '';
+ path.setFill(this.hoverColors[cc]);
+ } else if (this.hoverColor) {
+ path.currentFillColor = path.getFill() + '';
+ path.setFill(this.hoverColor);
+ }
+};
+
+JQVMap.prototype.isSelected = function(cc) {
+ return this.selectIndex(cc) >= 0;
+};
+
+JQVMap.prototype.makeDraggable = function () {
+ var mouseDown = false;
+ var oldPageX, oldPageY;
+ var self = this;
+
+ self.isMoving = false;
+ self.isMovingTimeout = false;
+
+ var lastTouchCount;
+ var touchCenterX;
+ var touchCenterY;
+ var touchStartDistance;
+ var touchStartScale;
+ var touchX;
+ var touchY;
+
+ this.container.mousemove(function (e) {
+
+ if (mouseDown) {
+ self.transX -= (oldPageX - e.pageX) / self.scale;
+ self.transY -= (oldPageY - e.pageY) / self.scale;
+
+ self.applyTransform();
+
+ oldPageX = e.pageX;
+ oldPageY = e.pageY;
+
+ self.isMoving = true;
+ if (self.isMovingTimeout) {
+ clearTimeout(self.isMovingTimeout);
+ }
+
+ self.container.trigger('drag');
+ }
+
+ return false;
+
+ }).mousedown(function (e) {
+
+ mouseDown = true;
+ oldPageX = e.pageX;
+ oldPageY = e.pageY;
+
+ return false;
+
+ }).mouseup(function () {
+
+ mouseDown = false;
+
+ clearTimeout(self.isMovingTimeout);
+ self.isMovingTimeout = setTimeout(function () {
+ self.isMoving = false;
+ }, 100);
+
+ return false;
+
+ }).mouseout(function () {
+
+ if(mouseDown && self.isMoving){
+
+ clearTimeout(self.isMovingTimeout);
+ self.isMovingTimeout = setTimeout(function () {
+ mouseDown = false;
+ self.isMoving = false;
+ }, 100);
+
+ return false;
+ }
+ });
+
+ jQuery(this.container).bind('touchmove', function (e) {
+
+ var offset;
+ var scale;
+ var touches = e.originalEvent.touches;
+ var transformXOld;
+ var transformYOld;
+
+ if (touches.length === 1) {
+ if (lastTouchCount === 1) {
+
+ if(touchX === touches[0].pageX && touchY === touches[0].pageY){
+ return;
+ }
+
+ transformXOld = self.transX;
+ transformYOld = self.transY;
+
+ self.transX -= (touchX - touches[0].pageX) / self.scale;
+ self.transY -= (touchY - touches[0].pageY) / self.scale;
+
+ self.applyTransform();
+
+ if (transformXOld !== self.transX || transformYOld !== self.transY) {
+ e.preventDefault();
+ }
+
+ self.isMoving = true;
+ if (self.isMovingTimeout) {
+ clearTimeout(self.isMovingTimeout);
+ }
+ }
+
+ touchX = touches[0].pageX;
+ touchY = touches[0].pageY;
+
+ } else if (touches.length === 2) {
+
+ if (lastTouchCount === 2) {
+ scale = Math.sqrt(
+ Math.pow(touches[0].pageX - touches[1].pageX, 2) +
+ Math.pow(touches[0].pageY - touches[1].pageY, 2)
+ ) / touchStartDistance;
+
+ self.setScale(
+ touchStartScale * scale,
+ touchCenterX,
+ touchCenterY
+ );
+
+ e.preventDefault();
+
+ } else {
+
+ offset = jQuery(self.container).offset();
+ if (touches[0].pageX > touches[1].pageX) {
+ touchCenterX = touches[1].pageX + (touches[0].pageX - touches[1].pageX) / 2;
+ } else {
+ touchCenterX = touches[0].pageX + (touches[1].pageX - touches[0].pageX) / 2;
+ }
+
+ if (touches[0].pageY > touches[1].pageY) {
+ touchCenterY = touches[1].pageY + (touches[0].pageY - touches[1].pageY) / 2;
+ } else {
+ touchCenterY = touches[0].pageY + (touches[1].pageY - touches[0].pageY) / 2;
+ }
+
+ touchCenterX -= offset.left;
+ touchCenterY -= offset.top;
+ touchStartScale = self.scale;
+
+ touchStartDistance = Math.sqrt(
+ Math.pow(touches[0].pageX - touches[1].pageX, 2) +
+ Math.pow(touches[0].pageY - touches[1].pageY, 2)
+ );
+ }
+ }
+
+ lastTouchCount = touches.length;
+ });
+
+ jQuery(this.container).bind('touchstart', function () {
+ lastTouchCount = 0;
+ });
+
+ jQuery(this.container).bind('touchend', function () {
+ lastTouchCount = 0;
+ });
+};
+
+JQVMap.prototype.placePins = function(pins, pinMode){
+ var map = this;
+
+ if(!pinMode || (pinMode !== 'content' && pinMode !== 'id')) {
+ pinMode = 'content';
+ }
+
+ if(pinMode === 'content') {//treat pin as content
+ jQuery.each(pins, function(index, pin){
+ if(jQuery('#' + map.getCountryId(index)).length === 0){
+ return;
+ }
+
+ var pinIndex = map.getPinId(index);
+ var $pin = jQuery('#' + pinIndex);
+ if($pin.length > 0){
+ $pin.remove();
+ }
+ map.container.append('<div id="' + pinIndex + '" for="' + index + '" class="jqvmap-pin" style="position:absolute">' + pin + '</div>');
+ });
+ } else { //treat pin as id of an html content
+ jQuery.each(pins, function(index, pin){
+ if(jQuery('#' + map.getCountryId(index)).length === 0){
+ return;
+ }
+ var pinIndex = map.getPinId(index);
+ var $pin = jQuery('#' + pinIndex);
+ if($pin.length > 0){
+ $pin.remove();
+ }
+ map.container.append('<div id="' + pinIndex + '" for="' + index + '" class="jqvmap-pin" style="position:absolute"></div>');
+ $pin.append(jQuery('#' + pin));
+ });
+ }
+
+ this.positionPins();
+ if(!this.pinHandlers){
+ this.pinHandlers = true;
+ var positionFix = function(){
+ map.positionPins();
+ };
+ this.container.bind('zoomIn', positionFix)
+ .bind('zoomOut', positionFix)
+ .bind('drag', positionFix);
+ }
+};
+
+JQVMap.prototype.positionPins = function(){
+ var map = this;
+ var pins = this.container.find('.jqvmap-pin');
+ jQuery.each(pins, function(index, pinObj){
+ pinObj = jQuery(pinObj);
+ var countryId = map.getCountryId(pinObj.attr('for').toLowerCase());
+ var countryObj = jQuery('#' + countryId);
+ var bbox = countryObj[0].getBBox();
+
+ var scale = map.scale;
+ var rootCoords = map.canvas.rootGroup.getBoundingClientRect();
+ var mapCoords = map.container[0].getBoundingClientRect();
+ var coords = {
+ left: rootCoords.left - mapCoords.left,
+ top: rootCoords.top - mapCoords.top
+ };
+
+ var middleX = (bbox.x * scale) + ((bbox.width * scale) / 2);
+ var middleY = (bbox.y * scale) + ((bbox.height * scale) / 2);
+
+ pinObj.css({
+ left: coords.left + middleX - (pinObj.width() / 2),
+ top: coords.top + middleY - (pinObj.height() / 2)
+ });
+ });
+};
+
+JQVMap.prototype.removePin = function(cc) {
+ cc = cc.toLowerCase();
+ jQuery('#' + this.getPinId(cc)).remove();
+};
+
+JQVMap.prototype.removePins = function(){
+ this.container.find('.jqvmap-pin').remove();
+};
+
+JQVMap.prototype.reset = function () {
+ for (var key in this.countries) {
+ this.countries[key].setFill(this.color);
+ }
+ this.scale = this.baseScale;
+ this.transX = this.baseTransX;
+ this.transY = this.baseTransY;
+ this.applyTransform();
+};
+
+JQVMap.prototype.resize = function () {
+ var curBaseScale = this.baseScale;
+ if (this.width / this.height > this.defaultWidth / this.defaultHeight) {
+ this.baseScale = this.height / this.defaultHeight;
+ this.baseTransX = Math.abs(this.width - this.defaultWidth * this.baseScale) / (2 * this.baseScale);
+ } else {
+ this.baseScale = this.width / this.defaultWidth;
+ this.baseTransY = Math.abs(this.height - this.defaultHeight * this.baseScale) / (2 * this.baseScale);
+ }
+ this.scale *= this.baseScale / curBaseScale;
+ this.transX *= this.baseScale / curBaseScale;
+ this.transY *= this.baseScale / curBaseScale;
+};
+
+JQVMap.prototype.select = function (cc, path) {
+ cc = cc.toLowerCase();
+ path = path || jQuery('#' + this.getCountryId(cc))[0];
+
+ if (!this.isSelected(cc)) {
+ if (this.multiSelectRegion) {
+ this.selectedRegions.push(cc);
+ } else {
+ this.selectedRegions = [cc];
+ }
+
+ jQuery(this.container).trigger('regionSelect.jqvmap', [cc]);
+ if (this.selectedColor && path) {
+ path.currentFillColor = this.selectedColor;
+ path.setFill(this.selectedColor);
+ }
+ }
+};
+
+JQVMap.prototype.selectIndex = function (cc) {
+ cc = cc.toLowerCase();
+ for (var i = 0; i < this.selectedRegions.length; i++) {
+ if (cc === this.selectedRegions[i]) {
+ return i;
+ }
+ }
+ return -1;
+};
+
+JQVMap.prototype.setBackgroundColor = function (backgroundColor) {
+ this.container.css('background-color', backgroundColor);
+};
+
+JQVMap.prototype.setColors = function (key, color) {
+ if (typeof key === 'string') {
+ this.countries[key].setFill(color);
+ this.countries[key].setAttribute('original', color);
+ } else {
+ var colors = key;
+
+ for (var code in colors) {
+ if (this.countries[code]) {
+ this.countries[code].setFill(colors[code]);
+ this.countries[code].setAttribute('original', colors[code]);
+ }
+ }
+ }
+};
+
+JQVMap.prototype.setNormalizeFunction = function (f) {
+ this.colorScale.setNormalizeFunction(f);
+
+ if (this.values) {
+ this.setValues(this.values);
+ }
+};
+
+JQVMap.prototype.setScale = function (scale) {
+ this.scale = scale;
+ this.applyTransform();
+};
+
+JQVMap.prototype.setScaleColors = function (colors) {
+ this.colorScale.setColors(colors);
+
+ if (this.values) {
+ this.setValues(this.values);
+ }
+};
+
+JQVMap.prototype.setValues = function (values) {
+ var max = 0,
+ min = Number.MAX_VALUE,
+ val;
+
+ for (var cc in values) {
+ cc = cc.toLowerCase();
+ val = parseFloat(values[cc]);
+
+ if (isNaN(val)) {
+ continue;
+ }
+ if (val > max) {
+ max = values[cc];
+ }
+ if (val < min) {
+ min = val;
+ }
+ }
+
+ if (min === max) {
+ max++;
+ }
+
+ this.colorScale.setMin(min);
+ this.colorScale.setMax(max);
+
+ var colors = {};
+ for (cc in values) {
+ cc = cc.toLowerCase();
+ val = parseFloat(values[cc]);
+ colors[cc] = isNaN(val) ? this.color : this.colorScale.getColor(val);
+ }
+ this.setColors(colors);
+ this.values = values;
+};
+
+JQVMap.prototype.unhighlight = function (cc, path) {
+ cc = cc.toLowerCase();
+ path = path || jQuery('#' + this.getCountryId(cc))[0];
+ path.setOpacity(1);
+ if (path.currentFillColor) {
+ path.setFill(path.currentFillColor);
+ }
+};
+
+JQVMap.prototype.zoomIn = function () {
+ var map = this;
+ var sliderDelta = (jQuery('#zoom').innerHeight() - 6 * 2 - 15 * 2 - 3 * 2 - 7 - 6) / (this.zoomMaxStep - this.zoomCurStep);
+
+ if (map.zoomCurStep < map.zoomMaxStep) {
+ map.transX -= (map.width / map.scale - map.width / (map.scale * map.zoomStep)) / 2;
+ map.transY -= (map.height / map.scale - map.height / (map.scale * map.zoomStep)) / 2;
+ map.setScale(map.scale * map.zoomStep);
+ map.zoomCurStep++;
+
+ var $slider = jQuery('#zoomSlider');
+
+ $slider.css('top', parseInt($slider.css('top'), 10) - sliderDelta);
+
+ map.container.trigger('zoomIn');
+ }
+};
+
+JQVMap.prototype.zoomOut = function () {
+ var map = this;
+ var sliderDelta = (jQuery('#zoom').innerHeight() - 6 * 2 - 15 * 2 - 3 * 2 - 7 - 6) / (this.zoomMaxStep - this.zoomCurStep);
+
+ if (map.zoomCurStep > 1) {
+ map.transX += (map.width / (map.scale / map.zoomStep) - map.width / map.scale) / 2;
+ map.transY += (map.height / (map.scale / map.zoomStep) - map.height / map.scale) / 2;
+ map.setScale(map.scale / map.zoomStep);
+ map.zoomCurStep--;
+
+ var $slider = jQuery('#zoomSlider');
+
+ $slider.css('top', parseInt($slider.css('top'), 10) + sliderDelta);
+
+ map.container.trigger('zoomOut');
+ }
+};
+
+VectorCanvas.prototype.applyTransformParams = function (scale, transX, transY) {
+ if (this.mode === 'svg') {
+ this.rootGroup.setAttribute('transform', 'scale(' + scale + ') translate(' + transX + ', ' + transY + ')');
+ } else {
+ this.rootGroup.coordorigin = (this.width - transX) + ',' + (this.height - transY);
+ this.rootGroup.coordsize = this.width / scale + ',' + this.height / scale;
+ }
+};
+
+VectorCanvas.prototype.createGroup = function (isRoot) {
+ var node;
+ if (this.mode === 'svg') {
+ node = this.createSvgNode('g');
+ } else {
+ node = this.createVmlNode('group');
+ node.style.width = this.width + 'px';
+ node.style.height = this.height + 'px';
+ node.style.left = '0px';
+ node.style.top = '0px';
+ node.coordorigin = '0 0';
+ node.coordsize = this.width + ' ' + this.height;
+ }
+
+ if (isRoot) {
+ this.rootGroup = node;
+ }
+ return node;
+};
+
+VectorCanvas.prototype.createPath = function (config) {
+ var node;
+ if (this.mode === 'svg') {
+ node = this.createSvgNode('path');
+ node.setAttribute('d', config.path);
+ node.setAttribute('url', config.url);
+
+ if (this.params.borderColor !== null) {
+ node.setAttribute('stroke', this.params.borderColor);
+ }
+ if (this.params.borderWidth > 0) {
+ node.setAttribute('stroke-width', this.params.borderWidth);
+ node.setAttribute('stroke-linecap', 'round');
+ node.setAttribute('stroke-linejoin', 'round');
+ }
+ if (this.params.borderOpacity > 0) {
+ node.setAttribute('stroke-opacity', this.params.borderOpacity);
+ }
+
+ node.setFill = function (color) {
+ this.setAttribute('fill', color);
+ if (this.getAttribute('original') === null) {
+ this.setAttribute('original', color);
+ }
+ };
+
+ node.setRegionName = function (regionName) {
+ this.setAttribute('regionName', regionName);
+ };
+
+ node.getRegionName = function() {
+ return this.getAttribute('regionName');
+ };
+
+ node.getFill = function () {
+ return this.getAttribute('fill');
+ };
+
+ node.getOriginalFill = function () {
+ return this.getAttribute('original');
+ };
+
+ node.setOpacity = function (opacity) {
+ this.setAttribute('fill-opacity', opacity);
+ };
+ } else {
+ node = this.createVmlNode('shape');
+ node.coordorigin = '0 0';
+ node.coordsize = this.width + ' ' + this.height;
+ node.style.width = this.width + 'px';
+ node.style.height = this.height + 'px';
+ node.fillcolor = JQVMap.defaultFillColor;
+ node.stroked = false;
+ node.path = VectorCanvas.pathSvgToVml(config.path);
+ node.url = 'www.gaslightmedia.com';
+ node.regionName = 'region';
+
+ var scale = this.createVmlNode('skew');
+ scale.on = true;
+ scale.matrix = '0.01,0,0,0.01,0,0';
+ scale.offset = '0,0';
+
+ node.appendChild(scale);
+
+ var fill = this.createVmlNode('fill');
+ node.appendChild(fill);
+
+ node.setFill = function (color) {
+ this.getElementsByTagName('fill')[0].color = color;
+ if (this.getAttribute('original') === null) {
+ this.setAttribute('original', color);
+ }
+ };
+
+ node.getFill = function () {
+ return this.getElementsByTagName('fill')[0].color;
+ };
+ node.getOriginalFill = function () {
+ return this.getAttribute('original');
+ };
+ node.setOpacity = function (opacity) {
+ this.getElementsByTagName('fill')[0].opacity = parseInt(opacity * 100, 10) + '%';
+ };
+
+ node.setRegionName = function (regionName) {
+ this.setAttribute('regionName', regionName);
+ };
+
+ node.getRegionName = function() {
+ return this.getAttribute('regionName');
+ };
+ }
+ return node;
+};
+
+VectorCanvas.prototype.pathSvgToVml = function (path) {
+ var result = '';
+ var cx = 0, cy = 0, ctrlx, ctrly;
+
+ return path.replace(/([MmLlHhVvCcSs])((?:-?(?:\d+)?(?:\.\d+)?,?\s?)+)/g, function (segment, letter, coords) {
+ coords = coords.replace(/(\d)-/g, '$1,-').replace(/\s+/g, ',').split(',');
+ if (!coords[0]) {
+ coords.shift();
+ }
+
+ for (var i = 0, l = coords.length; i < l; i++) {
+ coords[i] = Math.round(100 * coords[i]);
+ }
+
+ switch (letter) {
+ case 'm':
+ cx += coords[0];
+ cy += coords[1];
+ result = 't' + coords.join(',');
+ break;
+
+ case 'M':
+ cx = coords[0];
+ cy = coords[1];
+ result = 'm' + coords.join(',');
+ break;
+
+ case 'l':
+ cx += coords[0];
+ cy += coords[1];
+ result = 'r' + coords.join(',');
+ break;
+
+ case 'L':
+ cx = coords[0];
+ cy = coords[1];
+ result = 'l' + coords.join(',');
+ break;
+
+ case 'h':
+ cx += coords[0];
+ result = 'r' + coords[0] + ',0';
+ break;
+
+ case 'H':
+ cx = coords[0];
+ result = 'l' + cx + ',' + cy;
+ break;
+
+ case 'v':
+ cy += coords[0];
+ result = 'r0,' + coords[0];
+ break;
+
+ case 'V':
+ cy = coords[0];
+ result = 'l' + cx + ',' + cy;
+ break;
+
+ case 'c':
+ ctrlx = cx + coords[coords.length - 4];
+ ctrly = cy + coords[coords.length - 3];
+ cx += coords[coords.length - 2];
+ cy += coords[coords.length - 1];
+ result = 'v' + coords.join(',');
+ break;
+
+ case 'C':
+ ctrlx = coords[coords.length - 4];
+ ctrly = coords[coords.length - 3];
+ cx = coords[coords.length - 2];
+ cy = coords[coords.length - 1];
+ result = 'c' + coords.join(',');
+ break;
+
+ case 's':
+ coords.unshift(cy - ctrly);
+ coords.unshift(cx - ctrlx);
+ ctrlx = cx + coords[coords.length - 4];
+ ctrly = cy + coords[coords.length - 3];
+ cx += coords[coords.length - 2];
+ cy += coords[coords.length - 1];
+ result = 'v' + coords.join(',');
+ break;
+
+ case 'S':
+ coords.unshift(cy + cy - ctrly);
+ coords.unshift(cx + cx - ctrlx);
+ ctrlx = coords[coords.length - 4];
+ ctrly = coords[coords.length - 3];
+ cx = coords[coords.length - 2];
+ cy = coords[coords.length - 1];
+ result = 'c' + coords.join(',');
+ break;
+
+ default:
+ break;
+ }
+
+ return result;
+
+ }).replace(/z/g, '');
+};
+
+VectorCanvas.prototype.setSize = function (width, height) {
+ if (this.mode === 'svg') {
+ this.canvas.setAttribute('width', width);
+ this.canvas.setAttribute('height', height);
+ } else {
+ this.canvas.style.width = width + 'px';
+ this.canvas.style.height = height + 'px';
+ this.canvas.coordsize = width + ' ' + height;
+ this.canvas.coordorigin = '0 0';
+ if (this.rootGroup) {
+ var paths = this.rootGroup.getElementsByTagName('shape');
+ for (var i = 0, l = paths.length; i < l; i++) {
+ paths[i].coordsize = width + ' ' + height;
+ paths[i].style.width = width + 'px';
+ paths[i].style.height = height + 'px';
+ }
+ this.rootGroup.coordsize = width + ' ' + height;
+ this.rootGroup.style.width = width + 'px';
+ this.rootGroup.style.height = height + 'px';
+ }
+ }
+ this.width = width;
+ this.height = height;
+};
--- /dev/null
+/*!
+ * JQVMap: jQuery Vector Map Library
+ * @author JQVMap <me@peterschmalfeldt.com>
+ * @version 1.5.1
+ * @link http://jqvmap.com
+ * @license https://github.com/manifestinteractive/jqvmap/blob/master/LICENSE
+ * @builddate 2016/06/02
+ */
+
+var VectorCanvas=function(a,b,c){if(this.mode=window.SVGAngle?"svg":"vml",this.params=c,"svg"===this.mode)this.createSvgNode=function(a){return document.createElementNS(this.svgns,a)};else{try{document.namespaces.rvml||document.namespaces.add("rvml","urn:schemas-microsoft-com:vml"),this.createVmlNode=function(a){return document.createElement("<rvml:"+a+' class="rvml">')}}catch(d){this.createVmlNode=function(a){return document.createElement("<"+a+' xmlns="urn:schemas-microsoft.com:vml" class="rvml">')}}document.createStyleSheet().addRule(".rvml","behavior:url(#default#VML)")}"svg"===this.mode?this.canvas=this.createSvgNode("svg"):(this.canvas=this.createVmlNode("group"),this.canvas.style.position="absolute"),this.setSize(a,b)};VectorCanvas.prototype={svgns:"http://www.w3.org/2000/svg",mode:"svg",width:0,height:0,canvas:null};var ColorScale=function(a,b,c,d){a&&this.setColors(a),b&&this.setNormalizeFunction(b),c&&this.setMin(c),c&&this.setMax(d)};ColorScale.prototype={colors:[]};var JQVMap=function(a){a=a||{};var b,c=this,d=JQVMap.maps[a.map];if(!d)throw new Error('Invalid "'+a.map+'" map parameter. Please make sure you have loaded this map file in your HTML.');this.selectedRegions=[],this.multiSelectRegion=a.multiSelectRegion,this.container=a.container,this.defaultWidth=d.width,this.defaultHeight=d.height,this.color=a.color,this.selectedColor=a.selectedColor,this.hoverColor=a.hoverColor,this.hoverColors=a.hoverColors,this.hoverOpacity=a.hoverOpacity,this.setBackgroundColor(a.backgroundColor),this.width=a.container.width(),this.height=a.container.height(),this.resize(),jQuery(window).resize(function(){var d=a.container.width(),e=a.container.height();if(d&&e){c.width=d,c.height=e,c.resize(),c.canvas.setSize(c.width,c.height),c.applyTransform();var f=jQuery.Event("resize.jqvmap");jQuery(a.container).trigger(f,[d,e]),b&&(jQuery(".jqvmap-pin").remove(),c.pinHandlers=!1,c.placePins(b.pins,b.mode))}}),this.canvas=new VectorCanvas(this.width,this.height,a),a.container.append(this.canvas.canvas),this.makeDraggable(),this.rootGroup=this.canvas.createGroup(!0),this.index=JQVMap.mapIndex,this.label=jQuery("<div/>").addClass("jqvmap-label").appendTo(jQuery("body")).hide(),a.enableZoom&&(jQuery("<div/>").addClass("jqvmap-zoomin").text("+").appendTo(a.container),jQuery("<div/>").addClass("jqvmap-zoomout").html("−").appendTo(a.container)),c.countries=[];for(var e in d.paths){var f=this.canvas.createPath({path:d.paths[e].path});f.setFill(this.color),f.id=c.getCountryId(e),c.countries[e]=f,"svg"===this.canvas.mode?f.setAttribute("class","jqvmap-region"):jQuery(f).addClass("jqvmap-region"),jQuery(this.rootGroup).append(f)}if(jQuery(a.container).delegate("svg"===this.canvas.mode?"path":"shape","mouseover mouseout",function(b){var e=b.target,f=b.target.id.split("_").pop(),g=jQuery.Event("labelShow.jqvmap"),h=jQuery.Event("regionMouseOver.jqvmap");f=f.toLowerCase(),"mouseover"===b.type?(jQuery(a.container).trigger(h,[f,d.paths[f].name]),h.isDefaultPrevented()||c.highlight(f,e),a.showTooltip&&(c.label.text(d.paths[f].name),jQuery(a.container).trigger(g,[c.label,f]),g.isDefaultPrevented()||(c.label.show(),c.labelWidth=c.label.width(),c.labelHeight=c.label.height()))):(c.unhighlight(f,e),c.label.hide(),jQuery(a.container).trigger("regionMouseOut.jqvmap",[f,d.paths[f].name]))}),jQuery(a.container).delegate("svg"===this.canvas.mode?"path":"shape","click",function(b){var e=b.target,f=b.target.id.split("_").pop(),g=jQuery.Event("regionClick.jqvmap");if(f=f.toLowerCase(),jQuery(a.container).trigger(g,[f,d.paths[f].name]),!a.multiSelectRegion&&!g.isDefaultPrevented())for(var h in d.paths)c.countries[h].currentFillColor=c.countries[h].getOriginalFill(),c.countries[h].setFill(c.countries[h].getOriginalFill());g.isDefaultPrevented()||(c.isSelected(f)?c.deselect(f,e):c.select(f,e))}),a.showTooltip&&a.container.mousemove(function(a){if(c.label.is(":visible")){var b=a.pageX-15-c.labelWidth,d=a.pageY-15-c.labelHeight;0>b&&(b=a.pageX+15),0>d&&(d=a.pageY+15),c.label.css({left:b,top:d})}}),this.setColors(a.colors),this.canvas.canvas.appendChild(this.rootGroup),this.applyTransform(),this.colorScale=new ColorScale(a.scaleColors,a.normalizeFunction,a.valueMin,a.valueMax),a.values&&(this.values=a.values,this.setValues(a.values)),a.selectedRegions)if(a.selectedRegions instanceof Array)for(var g in a.selectedRegions)this.select(a.selectedRegions[g].toLowerCase());else this.select(a.selectedRegions.toLowerCase());if(this.bindZoomButtons(),a.pins&&(b={pins:a.pins,mode:a.pinMode},this.pinHandlers=!1,this.placePins(a.pins,a.pinMode)),a.showLabels){this.pinHandlers=!1;var h={};for(e in c.countries)"function"!=typeof c.countries[e]&&(a.pins&&a.pins[e]||(h[e]=e.toUpperCase()));b={pins:h,mode:"content"},this.placePins(h,"content")}JQVMap.mapIndex++};JQVMap.prototype={transX:0,transY:0,scale:1,baseTransX:0,baseTransY:0,baseScale:1,width:0,height:0,countries:{},countriesColors:{},countriesData:{},zoomStep:1.4,zoomMaxStep:4,zoomCurStep:1},JQVMap.xlink="http://www.w3.org/1999/xlink",JQVMap.mapIndex=1,JQVMap.maps={},function(){var a={colors:1,values:1,backgroundColor:1,scaleColors:1,normalizeFunction:1,enableZoom:1,showTooltip:1,borderColor:1,borderWidth:1,borderOpacity:1,selectedRegions:1,multiSelectRegion:1},b={onLabelShow:"labelShow",onLoad:"load",onRegionOver:"regionMouseOver",onRegionOut:"regionMouseOut",onRegionClick:"regionClick",onRegionSelect:"regionSelect",onRegionDeselect:"regionDeselect",onResize:"resize"};jQuery.fn.vectorMap=function(c){var d={map:"world_en",backgroundColor:"#a5bfdd",color:"#f4f3f0",hoverColor:"#c9dfaf",hoverColors:{},selectedColor:"#c9dfaf",scaleColors:["#b6d6ff","#005ace"],normalizeFunction:"linear",enableZoom:!0,showTooltip:!0,borderColor:"#818181",borderWidth:1,borderOpacity:.25,selectedRegions:null,multiSelectRegion:!1},e=this.data("mapObject");if("addMap"===c)JQVMap.maps[arguments[1]]=arguments[2];else{if("set"!==c||!a[arguments[1]]){if("string"==typeof c&&"function"==typeof e[c])return e[c].apply(e,Array.prototype.slice.call(arguments,1));jQuery.extend(d,c),d.container=this,this.css({position:"relative",overflow:"hidden"}),e=new JQVMap(d),this.data("mapObject",e),this.unbind(".jqvmap");for(var f in b)d[f]&&this.bind(b[f]+".jqvmap",d[f]);var g=jQuery.Event("load.jqvmap");return jQuery(d.container).trigger(g,e),e}e["set"+arguments[1].charAt(0).toUpperCase()+arguments[1].substr(1)].apply(e,Array.prototype.slice.call(arguments,2))}}}(jQuery),ColorScale.arrayToRgb=function(a){for(var b,c="#",d=0;d<a.length;d++)b=a[d].toString(16),c+=1===b.length?"0"+b:b;return c},ColorScale.prototype.getColor=function(a){"function"==typeof this.normalize&&(a=this.normalize(a));for(var b,c=[],d=0,e=0;e<this.colors.length-1;e++)b=this.vectorLength(this.vectorSubtract(this.colors[e+1],this.colors[e])),c.push(b),d+=b;var f=(this.maxValue-this.minValue)/d;for(e=0;e<c.length;e++)c[e]*=f;for(e=0,a-=this.minValue;a-c[e]>=0;)a-=c[e],e++;var g;for(g=e===this.colors.length-1?this.vectorToNum(this.colors[e]).toString(16):this.vectorToNum(this.vectorAdd(this.colors[e],this.vectorMult(this.vectorSubtract(this.colors[e+1],this.colors[e]),a/c[e]))).toString(16);g.length<6;)g="0"+g;return"#"+g},ColorScale.rgbToArray=function(a){return a=a.substr(1),[parseInt(a.substr(0,2),16),parseInt(a.substr(2,2),16),parseInt(a.substr(4,2),16)]},ColorScale.prototype.setColors=function(a){for(var b=0;b<a.length;b++)a[b]=ColorScale.rgbToArray(a[b]);this.colors=a},ColorScale.prototype.setMax=function(a){this.clearMaxValue=a,"function"==typeof this.normalize?this.maxValue=this.normalize(a):this.maxValue=a},ColorScale.prototype.setMin=function(a){this.clearMinValue=a,"function"==typeof this.normalize?this.minValue=this.normalize(a):this.minValue=a},ColorScale.prototype.setNormalizeFunction=function(a){"polynomial"===a?this.normalize=function(a){return Math.pow(a,.2)}:"linear"===a?delete this.normalize:this.normalize=a,this.setMin(this.clearMinValue),this.setMax(this.clearMaxValue)},ColorScale.prototype.vectorAdd=function(a,b){for(var c=[],d=0;d<a.length;d++)c[d]=a[d]+b[d];return c},ColorScale.prototype.vectorLength=function(a){for(var b=0,c=0;c<a.length;c++)b+=a[c]*a[c];return Math.sqrt(b)},ColorScale.prototype.vectorMult=function(a,b){for(var c=[],d=0;d<a.length;d++)c[d]=a[d]*b;return c},ColorScale.prototype.vectorSubtract=function(a,b){for(var c=[],d=0;d<a.length;d++)c[d]=a[d]-b[d];return c},ColorScale.prototype.vectorToNum=function(a){for(var b=0,c=0;c<a.length;c++)b+=Math.round(a[c])*Math.pow(256,a.length-c-1);return b},JQVMap.prototype.applyTransform=function(){var a,b,c,d;this.defaultWidth*this.scale<=this.width?(a=(this.width-this.defaultWidth*this.scale)/(2*this.scale),c=(this.width-this.defaultWidth*this.scale)/(2*this.scale)):(a=0,c=(this.width-this.defaultWidth*this.scale)/this.scale),this.defaultHeight*this.scale<=this.height?(b=(this.height-this.defaultHeight*this.scale)/(2*this.scale),d=(this.height-this.defaultHeight*this.scale)/(2*this.scale)):(b=0,d=(this.height-this.defaultHeight*this.scale)/this.scale),this.transY>b?this.transY=b:this.transY<d&&(this.transY=d),this.transX>a?this.transX=a:this.transX<c&&(this.transX=c),this.canvas.applyTransformParams(this.scale,this.transX,this.transY)},JQVMap.prototype.bindZoomButtons=function(){var a=this;this.container.find(".jqvmap-zoomin").click(function(){a.zoomIn()}),this.container.find(".jqvmap-zoomout").click(function(){a.zoomOut()})},JQVMap.prototype.deselect=function(a,b){if(a=a.toLowerCase(),b=b||jQuery("#"+this.getCountryId(a))[0],this.isSelected(a))this.selectedRegions.splice(this.selectIndex(a),1),jQuery(this.container).trigger("regionDeselect.jqvmap",[a]),b.currentFillColor=b.getOriginalFill(),b.setFill(b.getOriginalFill());else for(var c in this.countries)this.selectedRegions.splice(this.selectedRegions.indexOf(c),1),this.countries[c].currentFillColor=this.color,this.countries[c].setFill(this.color)},JQVMap.prototype.getCountryId=function(a){return"jqvmap"+this.index+"_"+a},JQVMap.prototype.getPin=function(a){var b=jQuery("#"+this.getPinId(a));return b.html()},JQVMap.prototype.getPinId=function(a){return this.getCountryId(a)+"_pin"},JQVMap.prototype.getPins=function(){var a=this.container.find(".jqvmap-pin"),b={};return jQuery.each(a,function(a,c){c=jQuery(c);var d=c.attr("for").toLowerCase(),e=c.html();b[d]=e}),JSON.stringify(b)},JQVMap.prototype.highlight=function(a,b){b=b||jQuery("#"+this.getCountryId(a))[0],this.hoverOpacity?b.setOpacity(this.hoverOpacity):this.hoverColors&&a in this.hoverColors?(b.currentFillColor=b.getFill()+"",b.setFill(this.hoverColors[a])):this.hoverColor&&(b.currentFillColor=b.getFill()+"",b.setFill(this.hoverColor))},JQVMap.prototype.isSelected=function(a){return this.selectIndex(a)>=0},JQVMap.prototype.makeDraggable=function(){var a,b,c=!1,d=this;d.isMoving=!1,d.isMovingTimeout=!1;var e,f,g,h,i,j,k;this.container.mousemove(function(e){return c&&(d.transX-=(a-e.pageX)/d.scale,d.transY-=(b-e.pageY)/d.scale,d.applyTransform(),a=e.pageX,b=e.pageY,d.isMoving=!0,d.isMovingTimeout&&clearTimeout(d.isMovingTimeout),d.container.trigger("drag")),!1}).mousedown(function(d){return c=!0,a=d.pageX,b=d.pageY,!1}).mouseup(function(){return c=!1,clearTimeout(d.isMovingTimeout),d.isMovingTimeout=setTimeout(function(){d.isMoving=!1},100),!1}).mouseout(function(){return c&&d.isMoving?(clearTimeout(d.isMovingTimeout),d.isMovingTimeout=setTimeout(function(){c=!1,d.isMoving=!1},100),!1):void 0}),jQuery(this.container).bind("touchmove",function(a){var b,c,l,m,n=a.originalEvent.touches;if(1===n.length){if(1===e){if(j===n[0].pageX&&k===n[0].pageY)return;l=d.transX,m=d.transY,d.transX-=(j-n[0].pageX)/d.scale,d.transY-=(k-n[0].pageY)/d.scale,d.applyTransform(),(l!==d.transX||m!==d.transY)&&a.preventDefault(),d.isMoving=!0,d.isMovingTimeout&&clearTimeout(d.isMovingTimeout)}j=n[0].pageX,k=n[0].pageY}else 2===n.length&&(2===e?(c=Math.sqrt(Math.pow(n[0].pageX-n[1].pageX,2)+Math.pow(n[0].pageY-n[1].pageY,2))/h,d.setScale(i*c,f,g),a.preventDefault()):(b=jQuery(d.container).offset(),f=n[0].pageX>n[1].pageX?n[1].pageX+(n[0].pageX-n[1].pageX)/2:n[0].pageX+(n[1].pageX-n[0].pageX)/2,g=n[0].pageY>n[1].pageY?n[1].pageY+(n[0].pageY-n[1].pageY)/2:n[0].pageY+(n[1].pageY-n[0].pageY)/2,f-=b.left,g-=b.top,i=d.scale,h=Math.sqrt(Math.pow(n[0].pageX-n[1].pageX,2)+Math.pow(n[0].pageY-n[1].pageY,2))));e=n.length}),jQuery(this.container).bind("touchstart",function(){e=0}),jQuery(this.container).bind("touchend",function(){e=0})},JQVMap.prototype.placePins=function(a,b){var c=this;if((!b||"content"!==b&&"id"!==b)&&(b="content"),"content"===b?jQuery.each(a,function(a,b){if(0!==jQuery("#"+c.getCountryId(a)).length){var d=c.getPinId(a),e=jQuery("#"+d);e.length>0&&e.remove(),c.container.append('<div id="'+d+'" for="'+a+'" class="jqvmap-pin" style="position:absolute">'+b+"</div>")}}):jQuery.each(a,function(a,b){if(0!==jQuery("#"+c.getCountryId(a)).length){var d=c.getPinId(a),e=jQuery("#"+d);e.length>0&&e.remove(),c.container.append('<div id="'+d+'" for="'+a+'" class="jqvmap-pin" style="position:absolute"></div>'),e.append(jQuery("#"+b))}}),this.positionPins(),!this.pinHandlers){this.pinHandlers=!0;var d=function(){c.positionPins()};this.container.bind("zoomIn",d).bind("zoomOut",d).bind("drag",d)}},JQVMap.prototype.positionPins=function(){var a=this,b=this.container.find(".jqvmap-pin");jQuery.each(b,function(b,c){c=jQuery(c);var d=a.getCountryId(c.attr("for").toLowerCase()),e=jQuery("#"+d),f=e[0].getBBox(),g=a.scale,h=a.canvas.rootGroup.getBoundingClientRect(),i=a.container[0].getBoundingClientRect(),j={left:h.left-i.left,top:h.top-i.top},k=f.x*g+f.width*g/2,l=f.y*g+f.height*g/2;c.css({left:j.left+k-c.width()/2,top:j.top+l-c.height()/2})})},JQVMap.prototype.removePin=function(a){a=a.toLowerCase(),jQuery("#"+this.getPinId(a)).remove()},JQVMap.prototype.removePins=function(){this.container.find(".jqvmap-pin").remove()},JQVMap.prototype.reset=function(){for(var a in this.countries)this.countries[a].setFill(this.color);this.scale=this.baseScale,this.transX=this.baseTransX,this.transY=this.baseTransY,this.applyTransform()},JQVMap.prototype.resize=function(){var a=this.baseScale;this.width/this.height>this.defaultWidth/this.defaultHeight?(this.baseScale=this.height/this.defaultHeight,this.baseTransX=Math.abs(this.width-this.defaultWidth*this.baseScale)/(2*this.baseScale)):(this.baseScale=this.width/this.defaultWidth,this.baseTransY=Math.abs(this.height-this.defaultHeight*this.baseScale)/(2*this.baseScale)),this.scale*=this.baseScale/a,this.transX*=this.baseScale/a,this.transY*=this.baseScale/a},JQVMap.prototype.select=function(a,b){a=a.toLowerCase(),b=b||jQuery("#"+this.getCountryId(a))[0],this.isSelected(a)||(this.multiSelectRegion?this.selectedRegions.push(a):this.selectedRegions=[a],jQuery(this.container).trigger("regionSelect.jqvmap",[a]),this.selectedColor&&b&&(b.currentFillColor=this.selectedColor,b.setFill(this.selectedColor)))},JQVMap.prototype.selectIndex=function(a){a=a.toLowerCase();for(var b=0;b<this.selectedRegions.length;b++)if(a===this.selectedRegions[b])return b;return-1},JQVMap.prototype.setBackgroundColor=function(a){this.container.css("background-color",a)},JQVMap.prototype.setColors=function(a,b){if("string"==typeof a)this.countries[a].setFill(b),this.countries[a].setAttribute("original",b);else{var c=a;for(var d in c)this.countries[d]&&(this.countries[d].setFill(c[d]),this.countries[d].setAttribute("original",c[d]))}},JQVMap.prototype.setNormalizeFunction=function(a){this.colorScale.setNormalizeFunction(a),this.values&&this.setValues(this.values)},JQVMap.prototype.setScale=function(a){this.scale=a,this.applyTransform()},JQVMap.prototype.setScaleColors=function(a){this.colorScale.setColors(a),this.values&&this.setValues(this.values)},JQVMap.prototype.setValues=function(a){var b,c=0,d=Number.MAX_VALUE;for(var e in a)e=e.toLowerCase(),b=parseFloat(a[e]),isNaN(b)||(b>c&&(c=a[e]),d>b&&(d=b));d===c&&c++,this.colorScale.setMin(d),this.colorScale.setMax(c);var f={};for(e in a)e=e.toLowerCase(),b=parseFloat(a[e]),f[e]=isNaN(b)?this.color:this.colorScale.getColor(b);this.setColors(f),this.values=a},JQVMap.prototype.unhighlight=function(a,b){a=a.toLowerCase(),b=b||jQuery("#"+this.getCountryId(a))[0],b.setOpacity(1),b.currentFillColor&&b.setFill(b.currentFillColor)},JQVMap.prototype.zoomIn=function(){var a=this,b=(jQuery("#zoom").innerHeight()-12-30-6-7-6)/(this.zoomMaxStep-this.zoomCurStep);if(a.zoomCurStep<a.zoomMaxStep){a.transX-=(a.width/a.scale-a.width/(a.scale*a.zoomStep))/2,a.transY-=(a.height/a.scale-a.height/(a.scale*a.zoomStep))/2,a.setScale(a.scale*a.zoomStep),a.zoomCurStep++;var c=jQuery("#zoomSlider");c.css("top",parseInt(c.css("top"),10)-b),a.container.trigger("zoomIn")}},JQVMap.prototype.zoomOut=function(){var a=this,b=(jQuery("#zoom").innerHeight()-12-30-6-7-6)/(this.zoomMaxStep-this.zoomCurStep);if(a.zoomCurStep>1){a.transX+=(a.width/(a.scale/a.zoomStep)-a.width/a.scale)/2,a.transY+=(a.height/(a.scale/a.zoomStep)-a.height/a.scale)/2,a.setScale(a.scale/a.zoomStep),a.zoomCurStep--;var c=jQuery("#zoomSlider");c.css("top",parseInt(c.css("top"),10)+b),a.container.trigger("zoomOut")}},VectorCanvas.prototype.applyTransformParams=function(a,b,c){"svg"===this.mode?this.rootGroup.setAttribute("transform","scale("+a+") translate("+b+", "+c+")"):(this.rootGroup.coordorigin=this.width-b+","+(this.height-c),this.rootGroup.coordsize=this.width/a+","+this.height/a)},VectorCanvas.prototype.createGroup=function(a){var b;return"svg"===this.mode?b=this.createSvgNode("g"):(b=this.createVmlNode("group"),b.style.width=this.width+"px",b.style.height=this.height+"px",b.style.left="0px",b.style.top="0px",b.coordorigin="0 0",b.coordsize=this.width+" "+this.height),a&&(this.rootGroup=b),b},VectorCanvas.prototype.createPath=function(a){var b;if("svg"===this.mode)b=this.createSvgNode("path"),b.setAttribute("d",a.path),null!==this.params.borderColor&&b.setAttribute("stroke",this.params.borderColor),this.params.borderWidth>0&&(b.setAttribute("stroke-width",this.params.borderWidth),b.setAttribute("stroke-linecap","round"),b.setAttribute("stroke-linejoin","round")),this.params.borderOpacity>0&&b.setAttribute("stroke-opacity",this.params.borderOpacity),b.setFill=function(a){this.setAttribute("fill",a),null===this.getAttribute("original")&&this.setAttribute("original",a)},b.getFill=function(){return this.getAttribute("fill")},b.getOriginalFill=function(){return this.getAttribute("original")},b.setOpacity=function(a){this.setAttribute("fill-opacity",a)};else{b=this.createVmlNode("shape"),b.coordorigin="0 0",b.coordsize=this.width+" "+this.height,b.style.width=this.width+"px",b.style.height=this.height+"px",b.fillcolor=JQVMap.defaultFillColor,b.stroked=!1,b.path=VectorCanvas.pathSvgToVml(a.path);var c=this.createVmlNode("skew");c.on=!0,c.matrix="0.01,0,0,0.01,0,0",c.offset="0,0",b.appendChild(c);var d=this.createVmlNode("fill");b.appendChild(d),b.setFill=function(a){this.getElementsByTagName("fill")[0].color=a,null===this.getAttribute("original")&&this.setAttribute("original",a)},b.getFill=function(){return this.getElementsByTagName("fill")[0].color},b.getOriginalFill=function(){return this.getAttribute("original")},b.setOpacity=function(a){this.getElementsByTagName("fill")[0].opacity=parseInt(100*a,10)+"%"}}return b},VectorCanvas.prototype.pathSvgToVml=function(a){var b,c,d="",e=0,f=0;return a.replace(/([MmLlHhVvCcSs])((?:-?(?:\d+)?(?:\.\d+)?,?\s?)+)/g,function(a,g,h){h=h.replace(/(\d)-/g,"$1,-").replace(/\s+/g,",").split(","),h[0]||h.shift();for(var i=0,j=h.length;j>i;i++)h[i]=Math.round(100*h[i]);switch(g){case"m":e+=h[0],f+=h[1],d="t"+h.join(",");break;case"M":e=h[0],f=h[1],d="m"+h.join(",");break;case"l":e+=h[0],f+=h[1],d="r"+h.join(",");break;case"L":e=h[0],f=h[1],d="l"+h.join(",");break;case"h":e+=h[0],d="r"+h[0]+",0";break;case"H":e=h[0],d="l"+e+","+f;break;case"v":f+=h[0],d="r0,"+h[0];break;case"V":f=h[0],d="l"+e+","+f;break;case"c":b=e+h[h.length-4],c=f+h[h.length-3],e+=h[h.length-2],f+=h[h.length-1],d="v"+h.join(",");break;case"C":b=h[h.length-4],c=h[h.length-3],e=h[h.length-2],f=h[h.length-1],d="c"+h.join(",");break;case"s":h.unshift(f-c),h.unshift(e-b),b=e+h[h.length-4],c=f+h[h.length-3],e+=h[h.length-2],f+=h[h.length-1],d="v"+h.join(",");break;case"S":h.unshift(f+f-c),h.unshift(e+e-b),b=h[h.length-4],c=h[h.length-3],e=h[h.length-2],f=h[h.length-1],d="c"+h.join(",")}return d}).replace(/z/g,"")},VectorCanvas.prototype.setSize=function(a,b){if("svg"===this.mode)this.canvas.setAttribute("width",a),this.canvas.setAttribute("height",b);else if(this.canvas.style.width=a+"px",this.canvas.style.height=b+"px",this.canvas.coordsize=a+" "+b,this.canvas.coordorigin="0 0",this.rootGroup){for(var c=this.rootGroup.getElementsByTagName("shape"),d=0,e=c.length;e>d;d++)c[d].coordsize=a+" "+b,c[d].style.width=a+"px",c[d].style.height=b+"px";this.rootGroup.coordsize=a+" "+b,this.rootGroup.style.width=a+"px",this.rootGroup.style.height=b+"px"}this.width=a,this.height=b};
\ No newline at end of file
--- /dev/null
+/*#mapRegionData {
+ background: white none repeat scroll 0 0;
+ border-radius: 3px;
+ color: black;
+ float: left;
+ font-family: sans-serif,Verdana;
+ font-size: smaller;
+ padding: 40px;
+ pointer-events: auto;
+ position: relative;
+ text-align: center;
+ width: 34%;
+ z-index: 99;
+}*/
+#mapRegionData {
+ background: white none repeat scroll 0 0;
+ border-radius: 3px;
+ bottom: 60px;
+ color: black;
+ float: left;
+ font-family: sans-serif,Verdana;
+ font-size: smaller;
+ padding: 40px;
+ pointer-events: auto;
+ position: absolute;
+ right: 0;
+ text-align: center;
+ overflow: hidden;
+ top: 0;
+ width: 34%;
+ z-index: 99;
+
+}
+.jqvmap-image_container {
+
+}
+.jqvmap-header {
+ color: #006a71;
+ display: block;
+ font-family: "Josefin Sans",sans-serif;
+ font-size: 1.25rem;
+ font-weight: 600;
+ padding: 12px 0 12px 1.04167rem;
+ text-transform: uppercase;
+ width: 100%;
+}
+.jqvmap-label {
+ color: #006a71;
+ font-size: 19px;
+ font-weight: bold;
+ line-height: 1;
+ padding: 12px 0;
+ text-align: left;
+ font-family: "josefin sans";
+}
+.jqvmap-label {
+ text-align: left;
+}
+.jqvmap-content {
+ text-align: left;
+}
+/*.glm-button.jqvmap-region_button {
+ background-color: #572700;
+ border-radius: 6px;
+ font-size: 18px;
+ height: 40px;
+ line-height: 1;
+ padding: 12px 24px 8px 20px;
+ position: absolute;
+ text-align: center;
+ bottom: 20px;
+
+}*/
+.glm-button.jqvmap-region_button {
+ background-color: #572700;
+ border-radius: 6px;
+ bottom: 10px;
+ float: none;
+ font-size: 15px;
+ height: 45px;
+ left: inherit;
+ line-height: 1;
+ padding: 12px 24px 8px 20px;
+ position: absolute;
+/* right: 40px;*/
+ left: 175px;
+ text-align: center;
+ top: initial;
+ cursor: default;
+}
+#interactive-map .dropdown {
+ width: 600px;
+ overflow: hidden;
+ right: -323px !important;
+}
+#interactive-map #map {
+ float: left;
+ width: 66%;
+ height: 560px;
+ margin-top: -20px;
+ margin-left: -10px;
+}
+.jqvmap-pin {
+ pointer-events:none;
+ color: white;
+ font-size: 14px;
+ font-weight: bold;
+ line-height: 1;
+ text-align: center;
+}
+#jqvmap1_fr-e_pin {
+ margin-left: 10px;
+}
+#jqvmap1_fr-x1_pin {
+ margin-top: 10px;
+}
+#jqvmap1_fr-f_pin {
+ margin-top: 10px;
+ margin-left: 5px;
+}
+#jqvmap1_fr-x4_pin {
+ margin-top: 10px;
+}
+#jqvmap1_fr-x6_pin {
+ margin-left: 7px;
+}
+#jqvmap1_fr-x5_pin {
+ margin-top: 5px;
+ margin-left: -10px;
+}
+#jqvmap1_fr-x3_pin {
+ margin-left: 5px;
+ margin-top: 5px;
+}
+#jqvmap1_fr-r_pin {
+ margin-left: 10px;
+ margin-top: -5px;
+}
+#jqvmap1_fr-u_pin {
+ margin-top: 10px;
+ margin-left: 5px;
+}
+#jqvmap1_fr-j_pin {
+ margin-left: 0px;
+ margin-top: 0px;
+}
+#jqvmap1_fr-x2_pin {
+ margin-top: -32px;
+ margin-left: 10px;
+}
+.jqvmap-zoomin, .jqvmap-zoomout
+{
+ background: #006a71 none repeat scroll 0 0;
+ border-radius: 3px;
+ color: white;
+ cursor: pointer;
+ font-size: 24px;
+ height: 15px;
+ left: 10px;
+ line-height: 11px;
+ padding: 1px;
+ position: absolute;
+ text-align: center;
+ width: 15px;
+}
+.jqvmap-zoomin
+{
+ top: 10px;
+}
+.jqvmap-zoomout
+{
+ top: 30px;
+}
+.jqvmap-region
+{
+ cursor: pointer;
+}
+.jqvmap-ajax_response
+{
+ width: 100%;
+ height: 500px;
+}
--- /dev/null
+.jqvmap-label,.jqvmap-pin{pointer-events:none}.jqvmap-label{position:absolute;display:none;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;background:#292929;color:#fff;font-family:sans-serif,Verdana;font-size:smaller;padding:3px}.jqvmap-zoomin,.jqvmap-zoomout{position:absolute;left:10px;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;background:#000;padding:3px;color:#fff;width:10px;height:10px;cursor:pointer;line-height:10px;text-align:center}.jqvmap-zoomin{top:10px}.jqvmap-zoomout{top:30px}.jqvmap-region{cursor:pointer}.jqvmap-ajax_response{width:100%;height:500px}
--- /dev/null
+/** Add World Map Data Points */
+jQuery.fn.vectorMap('addMap', 'africa_en', {"width":950,"height":550,"paths":{"dz":{"path":"m 419.83634,8.1546547 -9.8215,-3.2979062 -40.87478,7.6790665 -8.90675,6.764318 5.44034,28.092384 -16.24881,0.649952 -9.77336,15.719217 -23.27792,5.584776 0.0722,11.434346 76.6703,58.616072 13.07126,1.10732 43.59495,-34.06231 -4.35709,-5.48849 -8.18458,-1.107324 -4.91075,-8.232729 V 57.551031 l -3.27383,-3.297906 0.55366,-8.786393 -8.71418,-8.786392 -1.08325,-9.340056 3.80342,-2.744243 -1.63691,-9.893719 -2.14244,-6.5476673 0,0 z","name":"Algeria"},"ma":{"path":"m 358.23531,19.68529 h -27.80352 l -5.44034,12.084299 -12.54167,6.042149 -10.3511,28.020167 -20.17259,12.084298 -28.33311,46.676207 27.80352,-0.55366 1.08325,-13.72122 h 7.07726 V 91.637419 h 24.52968 l 0.55367,-24.168597 23.44642,-5.488487 9.82151,-15.935868 15.26184,-0.553663 -4.93482,-25.805514 0,0 z","name":"Morocco"},"mr":{"path":"m 253.78556,126.51819 5.24776,6.86061 -1.08325,29.65708 7.63092,-5.48848 5.44034,-1.10733 7.63093,2.74425 8.71417,12.08429 8.18459,-5.48848 39.79152,-0.55367 -9.8215,-66.463638 10.54367,-0.04815 -19.643,-15.045192 0.0241,9.773357 -24.8667,0.02407 -0.12036,18.656033 -7.14947,-0.0241 -0.91475,13.76936 -29.60894,0.64995 0,0 z","name":"Mauritania"},"sn":{"path":"m 270.94912,158.2455 -4.59781,1.13139 -9.48449,6.90876 -2.16651,3.85157 -0.67403,3.82749 3.44234,2.47945 11.67507,-0.14443 7.51056,-2.02208 0.84253,3.68307 -0.69809,4.88667 0.1685,0.0722 -18.65604,0.28887 3.00904,7.22169 1.63692,-4.4293 22.36317,1.87764 0.14444,0.14443 2.33501,0.0963 7.14948,0.28887 0.28887,-4.21266 -8.64196,-10.37516 -9.62893,-13.09534 -6.01807,-2.47944 z","name":"Senegal"},"gm":{"path":"m 258.57595,178.70696 -0.31294,2.67202 16.65804,-0.24072 0.84253,-2.47945 -0.36109,-2.50352 -4.79039,1.94986 -12.03615,0.60181 0,0 z","name":"Gambia"},"gw":{"path":"m 262.69231,193.60772 3.37013,6.66802 9.46042,-8.13644 0.0963,-2.50352 -11.14547,-1.61284 -1.78136,5.58478 0,0 z","name":"Guinea-Bissau"},"gn":{"path":"m 267.07347,201.81637 7.31799,11.26584 9.53263,-8.28087 9.77336,-0.4333 8.13644,10.80846 6.90875,4.54967 2.59981,-5.05518 2.31094,-1.29991 -0.16851,-11.12141 -4.59781,-13.19162 -14.10637,1.5647 -17.45242,-1.39619 -0.0963,4.47744 -10.15852,8.11237 0,0 z","name":"Guinea"},"sl":{"path":"m 275.52286,214.3099 13.60085,13.14348 9.70114,-11.77136 -6.06622,-9.50856 -8.35309,0.84253 -8.88268,7.29391 0,0 z","name":"Sierra Leone"},"lr":{"path":"m 290.54398,228.89772 26.43139,17.66907 -0.62588,-13.3842 -7.99201,-9.41227 -7.79942,-6.90875 -10.01408,12.03615 0,0 z","name":"Liberia"},"ci":{"path":"m 319.19002,247.09638 10.30295,-7.29391 12.80647,-2.23872 13.07126,2.81646 -6.66803,-10.0863 -1.94986,-6.16251 1.94986,-18.22274 -11.67507,0.55367 -5.29591,-5.05519 -11.1214,0.28887 -5.29591,0.84253 0.55366,12.32502 -2.79238,1.1314 -3.34606,6.16251 8.61789,10.0863 0.84253,14.85261 0,0 z","name":"Cote d'Ivoire"},"ml":{"path":"m 288.83484,172.68888 7.41427,-5.07926 41.21179,-0.24072 -9.53263,-66.29514 10.88068,-0.31294 52.64614,40.17669 7.07726,1.01103 -2.67203,22.3391 -33.09942,3.00904 -25.54072,19.06527 -4.64595,13.04719 -17.7413,0.74624 -4.52559,-13.02312 -13.60085,0.9629 0.52959,-4.2608 -8.40124,-11.14548 0,0 z","name":"Mali"},"bf":{"path":"m 363.77194,168.9336 8.76232,-0.6981 14.37116,20.31703 -13.33605,10.06223 -9.653,-2.47945 -12.97497,0.1685 -2.09429,7.60685 -10.88069,0.52959 -2.98496,-4.06822 3.85157,-12.37316 24.93891,-19.06527 0,0 z","name":"Burkina Faso"},"ne":{"path":"m 388.56641,187.51742 6.13844,-0.14443 5.53663,-8.30495 9.29191,-1.66099 9.89372,6.04215 21.11142,0.60181 16.32102,-6.64396 6.13844,-5.27183 0.45737,-6.93283 11.38621,-11.48249 3.00903,-25.34814 -7.48648,-15.69514 -19.16156,-4.67003 -44.34119,34.56783 -6.28287,-0.60181 -2.6961,24.0001 -22.62797,2.26279 13.31198,19.28192 0,0 z","name":"Niger"},"gh":{"path":"m 348.72674,223.74625 2.6961,6.33101 7.02912,11.02512 3.89971,-0.14443 10.63996,-6.04215 -0.74624,-34.39933 -8.23273,-2.40723 -11.53064,0.31294 -3.75528,25.32407 0,0 z","name":"Ghana"},"tg":{"path":"m 374.91741,233.85661 6.45138,-3.77935 -0.14443,-24.91484 -4.18858,-6.78839 -2.6961,2.2628 0.57773,33.21978 0,0 z","name":"Togo"},"bj":{"path":"m 383.31865,229.61989 h 5.10333 l 0.28887,-14.49153 6.45138,-9.36413 -0.28887,-16.29695 -5.84957,-0.14444 -10.03816,7.84758 4.18859,7.992 0.14443,24.45747 0,0 z","name":"Benin"},"ng":{"path":"m 390.20333,229.33102 9.43635,0.45737 11.3862,12.68611 5.53663,1.51656 4.33301,-2.11837 6.59582,-0.91474 2.23872,-9.19563 8.97897,-5.89771 9.72521,-0.45738 17.81351,-32.76241 -0.28887,-7.3902 -8.23273,-6.33101 -16.46545,7.24576 -22.02617,-0.31294 -10.49552,-6.64395 -7.48649,1.66098 -3.89971,6.7884 -0.28887,19.16155 -6.28287,8.90676 -0.57774,13.60085 0,0 z","name":"Nigeria"},"tn":{"path":"m 422.31579,7.7694978 13.31199,-5.3681247 4.38116,2.8405323 0.1685,3.4664124 -2.04614,2.6720262 0.31294,4.742245 2.04614,1.107326 v 8.521597 l -2.35908,3.947858 0.31294,2.527593 8.93082,3.153472 -7.19762,11.193623 -2.81646,-0.168506 -0.48144,9.003043 -3.1294,0.481446 -2.67203,-2.359086 0.62588,-9.147477 -8.76232,-8.521597 -1.10733,-7.414271 4.23673,-3.321978 -3.75528,-17.3561342 0,0 z","name":"Tunisia"},"ly":{"path":"m 434.68896,57.599175 3.75528,-0.62588 1.10732,-8.666031 h 1.87764 l 7.67907,-12.613889 18.9449,5.512559 5.17555,8.04015 18.63197,8.521597 9.70114,-4.092292 -0.93882,-4.092292 -4.23673,-4.092293 0.48145,-2.840532 6.88468,-5.825498 h 13.62492 l 5.17555,6.932824 10.9529,1.588773 1.42027,88.802739 -8.13644,-0.31294 -49.15566,-25.56479 -5.31998,3.00904 -20.19666,-5.05518 -5.48849,-7.245767 -7.99201,-1.107326 -4.06822,-7.245765 0.12037,-33.027207 0,0 z","name":"Libya"},"eg":{"path":"m 535.50378,45.635238 6.42731,0.168506 12.5176,3.466413 5.94586,0.168506 7.36612,-6.162511 h 3.44234 l 6.2588,3.466412 h 7.91979 l 1.42027,-0.09629 5.00704,14.39524 1.42027,4.645956 1.32397,6.956897 -2.35908,1.733206 -4.06822,-2.046146 -4.6941,-15.309988 -4.23673,-0.31294 -0.31294,5.199618 2.81646,9.003044 22.55575,27.923877 0.48145,11.988012 -6.57174,7.58278 -61.7214,-0.6981 -0.93882,-72.072493 0,0 z","name":"Egypt"},"td":{"path":"m 465.35708,173.07404 0.31294,-7.10133 11.41027,-11.09734 3.05718,-27.24985 -7.60685,-14.53967 5.31998,-2.72018 51.51474,26.84063 -0.31294,26.3351 -9.07526,7.72721 v 13.57679 l 5.94586,11.50656 h -10.49552 l -17.38021,17.18763 -0.45737,5.19962 -12.83054,-0.16851 -0.16851,2.35909 -7.31798,-0.9629 -5.00704,-9.46041 -3.75528,-1.85357 0.48144,-2.88868 4.71818,-3.61085 v -16.89876 l -6.5236,-1.01103 -7.87164,-5.84957 6.04215,-5.31998 0,0 0,0 z","name":"Chad"},"sd":{"path":"m 531.21891,164.48022 0.4333,-28.47754 5.92179,0.16851 -0.67402,-15.81551 62.10655,0.55367 8.88268,-8.9549 19.16156,30.64404 -10.49553,12.37317 v 18.89676 l -16.5136,35.50666 -5.68107,2.50352 1.80543,9.89372 h 7.07726 l 9.60485,13.93786 -7.70314,0.98697 -1.97393,3.58677 -0.19258,5.17555 -23.10941,-0.40923 -2.35909,-3.58678 -16.15252,-0.91474 -29.65708,-30.52369 2.96089,-1.78135 0.79439,-7.17355 -7.10133,-4.18858 -6.47545,-12.7824 0.36108,-11.89172 8.97897,-7.72721 0,0 z","name":"Sudan"},"cm":{"path":"m 429.32083,241.15052 7.75128,7.12541 -0.55366,11.02511 42.5117,-0.98696 3.46641,-3.89971 -12.18059,-13.11941 -1.80542,-4.74225 7.75128,-14.5156 -5.27183,-9.62892 -4.42931,-2.38316 v -4.88668 l 5.1274,-3.34605 0.28887,-15.2137 -4.06822,-0.45737 -0.0722,7.992 -17.86165,33.34015 -10.92883,0.55366 -7.48648,5.15148 -2.23873,7.992 0,0 z","name":"Cameroon"},"er":{"path":"m 619.22727,169.94464 -0.60181,-14.17859 9.53263,-11.12141 2.57574,1.97393 4.6941,15.69515 22.53168,16.77839 -4.09229,5.03112 -16.48953,-14.17859 h -18.15052 l 0,0 z","name":"Eritrea"},"dj":{"path":"m 654.78207,186.4101 -1.37212,8.08829 9.53263,-0.14443 0.14443,-11.89172 -3.49048,-2.14244 -4.81446,6.0903 0,0 z","name":"Djibouti"},"et":{"path":"m 601.84706,211.01199 17.52464,-38.99713 17.40428,0.0963 15.43035,13.40828 -1.08325,11.04919 h 11.96393 l 1.22769,6.64396 19.35414,11.57878 11.93986,0.6018 -22.70018,24.38525 -31.17364,9.60485 h -7.72721 l -13.76936,-11.74728 -5.44035,-2.28687 -10.54367,-15.52664 -6.95689,0.0963 -0.81846,-7.1254 5.36812,-1.78136 0,0 z","name":"Ethiopia"},"so":{"path":"m 665.03687,194.8354 9.8215,6.6921 2.91275,-0.14443 24.38525,-8.37716 2.76832,8.93082 -1.94986,7.53464 -5.27184,4.18858 -13.16755,-0.84253 -18.84862,-11.57878 -0.64995,-6.40324 0,0 m 39.06936,-2.38316 10.5196,-4.04414 3.7312,2.23872 -0.40923,9.34006 -9.70114,27.63501 -52.5017,56.23291 -6.09029,-4.18858 -0.40923,-23.7353 7.89571,-9.07526 16.75433,-5.17555 24.57783,-25.94994 6.4273,-5.72921 1.80543,-8.37717 -2.59981,-9.17155 0,0 z","name":"Somalia"},"cf":{"path":"m 472.26583,240.59686 11.21769,12.13244 4.42931,-5.72921 7.05318,0.28887 1.51656,-5.58477 6.93282,-4.33302 14.39525,9.91779 8.30494,-8.23273 32.23282,1.42027 -29.8978,-30.8607 4.02007,-2.50352 0.55366,-5.44034 -6.78839,-3.20162 h -9.96593 l -16.05623,15.9118 -0.55367,6.54767 -12.73425,-0.40923 -0.40923,2.79238 -8.30494,-0.84253 -7.48649,14.22674 1.54063,3.89971 0,0 z","name":"Central African Republic"},"gq":{"path":"m 426.96174,248.68516 -1.10732,4.74224 3.32198,1.80542 3.17754,-2.38315 -1.10732,-4.88668 -4.28488,0.72217 0,0 m 9.99001,12.71017 -0.14443,3.34606 10.92883,0.55366 -0.14444,-3.77935 -10.63996,-0.12037 0,0 z","name":"Equatorial Guinea"},"ga":{"path":"m 449.9508,261.2509 -0.28887,5.99401 -13.57678,-0.28887 -8.30495,16.05623 19.52264,21.35213 4.83854,-4.04414 -0.14444,-4.18858 -3.32197,-1.54063 v -2.93682 l 7.48648,-4.74225 6.64396,5.03111 7.34206,0.14444 -0.14444,-25.25185 -11.62692,-0.55367 -0.14444,-5.2959 -8.28087,0.26479 0,0 z","name":"Gabon"},"cg":{"path":"m 461.04813,260.98611 -0.14443,3.49048 11.50656,0.28887 0.40923,29.87373 -10.5196,-0.28887 -6.09029,-4.74224 -4.71817,2.64795 -0.21665,1.32398 2.4313,1.17954 0.6981,6.13844 -6.49953,5.58478 1.3962,2.93682 7.19762,-5.58478 h 3.46641 l 1.10733,3.34605 4.57373,1.94986 14.68411,-12.42131 -0.28887,-9.07526 3.05719,-7.3902 9.41227,-6.98097 2.52759,-23.61493 -6.6921,0.0241 -7.75128,10.61589 -19.54672,0.6981 0,0 z","name":"Congo"},"ao":{"path":"m 450.33596,310.83986 4.18858,5.44034 5.41627,-5.1274 -1.58878,-5.31998 -1.34804,-0.0963 -6.66803,5.10333 0,0 m 4.98296,8.37716 8.20866,30.64405 -0.19258,9.67706 -12.01208,12.90276 -1.80542,20.96698 46.21883,0.40923 15.02112,5.44034 12.39724,-1.61284 -7.22169,-9.05119 0.0241,-25.85366 14.20266,-0.60181 v -10.08629 l -11.53064,-0.48145 -2.31094,-23.87973 -4.8626,0.0722 -2.62389,-2.35909 -2.8646,0.14444 -3.80343,7.36612 H 487.5277 l -3.39419,-3.41827 1.01103,-4.83853 -3.996,-5.84957 -25.82959,0.40923 0,0 z","name":"Angola"},"cd":{"path":"m 457.14842,316.80979 24.81855,-0.4333 5.03111,7.14947 -0.19258,5.27184 1.85357,1.68506 h 12.32502 l 3.53863,-6.9569 h 5.03111 l 2.04615,2.07022 6.90875,-0.19258 2.04615,24.26489 11.93986,0.38516 v 1.87764 l 32.08839,14.46745 1.49248,2.81646 h 6.71618 l -0.74625,-10.15851 -12.13244,-5.8255 0.74624,-7.70314 5.22369,-12.22873 11.93987,-0.38516 -10.2548,-34.03824 0.19257,-14.46746 16.22474,-25.37221 0.19258,-3.5627 -2.4313,-1.32398 0.0963,-6.88468 -2.96089,-0.2648 -2.98497,-3.80342 -48.98714,-2.21465 -8.97897,8.73825 -14.70818,-9.67707 -5.17555,3.17754 -3.75528,31.60694 -9.29191,7.17355 -2.79239,6.35509 0.50552,9.41227 -16.75433,13.69715 -4.45337,-2.02208 0.6018,2.62388 -4.95889,4.74225 0,0 z","name":"Congo"},"rw":{"path":"m 573.75468,278.75147 6.76432,6.23473 -0.28887,6.66803 -10.49553,0.21665 v -7.36613 l 4.02008,-5.75328 0,0 z","name":"Rwanda"},"bi":{"path":"m 569.87904,293.9411 10.27887,-0.21666 -2.67202,9.00305 -2.59981,2.26279 h -3.17755 l -2.26279,-6.09029 0.4333,-4.95889 0,0 z","name":"Burundi"},"ug":{"path":"m 574.91015,276.80161 7.29391,6.83654 4.57374,-2.91275 12.37316,-2.02208 2.11837,0.21666 0.79438,-4.6941 6.98097,-14.68411 -5.87364,-12.22874 -19.0412,0.12037 -0.12036,5.03111 2.55167,2.45537 -0.38516,5.03112 -11.26584,16.85061 0,0 z","name":"Uganda"},"ke":{"path":"m 605.07275,246.54272 6.40324,12.49353 -7.67907,16.10437 -1.01104,4.88668 38.34719,23.71122 11.89172,-18.68011 -6.01808,-4.88667 -0.12036,-24.6019 7.53463,-8.23273 -12.01208,3.996 -9.07526,0.12036 -14.20266,-11.98801 -4.47745,-1.92578 -8.30495,0.77031 -1.46841,2.45538 0.19258,5.77735 0,0 z","name":"Kenya"},"tz":{"path":"m 604.44687,354.62738 42.05432,-5.15147 -9.46041,-18.29495 -0.50552,-17.52464 3.05718,-8.37717 -40.00817,-25.13149 -12.54168,2.07022 -4.35708,3.22569 -0.38516,7.34205 -2.81646,10.18259 -2.93682,3.49049 -4.21266,0.38515 8.06423,27.94795 13.16755,6.18659 9.07526,0.26479 1.80542,13.3842 0,0 z","name":"Tanzania"},"zm":{"path":"m 517.73842,386.59541 7.63092,10.59181 11.8195,0.72217 4.18858,2.31095 12.37317,0.14443 10.66403,-14.9489 29.80152,-13.33606 2.59981,-11.74729 -3.46641,-16.82654 -15.55071,-8.85861 -10.37517,0.72217 -5.17554,11.45842 0.14443,5.22369 12.22873,5.94586 0.72217,12.92683 -10.5196,0.57773 -2.59981,-4.35709 -29.22378,-12.46945 -0.8666,9.58078 -13.81751,0.4333 -0.57773,21.9058 0,0 z","name":"Zambia"},"mw":{"path":"m 596.23821,373.83709 7.48649,7.8235 -0.14443,10.01408 1.44434,4.21265 9.94186,-10.73625 -1.15547,-13.649 -5.31998,-4.06822 -4.74225,-23.95194 -8.20865,-0.28887 3.73121,17.25984 -3.03312,13.38421 0,0 z","name":"Malawi"},"mz":{"path":"m 581.8189,455.39407 6.47545,5.36812 15.26185,-9.29191 2.45537,-13.79343 v -22.77241 l 24.48154,-20.02816 4.18858,0.14444 14.82854,-14.22674 -2.31094,-29.32007 -39.31008,4.9589 1.15547,8.85861 6.76432,5.22369 1.58877,15.95994 -13.23977,12.92683 -3.17754,-7.24577 0.57773,-9.58078 -7.63092,-8.28087 -18.72825,8.71417 17.42835,8.85861 0.57773,25.82959 -11.53063,17.11541 0.14443,20.58183 0,0 z","name":"Mozambique"},"zw":{"path":"m 542.07552,404.89036 21.59286,24.38525 16.56175,4.21265 11.09733,-17.40427 -0.8666,-23.06128 -18.00609,-9.29191 -6.76431,3.05719 -10.0863,15.3822 -13.96194,-0.14443 0.4333,2.8646 0,0 z","name":"Zimbabwe"},"na":{"path":"m 474.40826,476.28883 8.06423,0.57773 4.74224,4.79039 11.24177,0.14444 2.74424,-31.91988 v -20.89477 l 7.19762,-1.44434 2.74425,-21.9058 18.29495,-0.57773 6.47545,-5.36813 -10.9529,-0.4333 -14.82854,2.02208 -15.98401,-5.80143 h -44.91893 l 1.15547,12.75832 14.97298,22.05024 -2.59981,11.31398 0.14443,5.94586 11.50656,28.74234 0,0 z","name":"Namibia"},"bw":{"path":"m 503.19874,450.45924 5.17555,1.58877 -0.72217,14.80447 5.31998,0.72217 12.22873,-11.02511 14.68411,1.58877 3.89972,-9.86965 18.58382,-16.97098 -22.31503,-25.68515 -0.28887,-4.21265 -2.45538,-0.72217 -6.76431,6.23473 -17.57279,0.4333 -2.45537,21.9058 -6.90876,1.58877 -0.40923,19.61893 0,0 z","name":"Botswana"},"sz":{"path":"m 581.09673,457.12727 -6.04215,1.01104 -2.59981,7.10133 4.62189,4.21265 h 5.60885 l 4.74224,-6.81246 -6.33102,-5.51256 0,0 z","name":"Swaziland"},"ls":{"path":"m 548.69541,484.54563 7.34205,-5.65699 3.46641,0.14443 4.18858,5.22369 -0.4333,5.22369 -7.05318,2.59981 v 2.02208 l -7.77536,-0.43331 -1.87764,-5.65699 2.14244,-3.46641 0,0 z","name":"Lesotho"},"za":{"path":"m 564.94421,432.16429 -19.01712,17.57278 -4.52559,10.85661 -15.06927,-1.87764 -12.54167,11.14548 -8.32902,-0.81846 0.67403,-15.40627 -2.9609,-1.03511 -2.07022,31.51065 -14.78039,-0.14444 -4.45338,-5.24776 -6.5236,-0.0722 5.94586,17.06727 10.61589,10.03815 -7.58278,8.83454 4.91076,11.07326 11.36212,4.33302 9.05119,-7.70314 25.92588,0.14443 1.85357,-2.31094 11.50656,-2.02207 38.92492,-38.75642 -0.14443,-12.20466 -4.16451,5.3922 h -6.23473 l -7.58278,-6.35509 3.85157,-9.58078 6.61989,-1.34805 -0.60181,-19.69115 -14.66004,-3.39419 0,0 z m -9.1234,44.53377 3.63492,-0.14444 5.89771,6.40324 -0.1685,7.41427 -6.90876,3.49048 -0.4333,2.45538 -10.54367,0.12036 -3.2979,-7.94386 3.00903,-5.8255 8.81047,-5.96993 0,0 z","name":"South Africa"},"mg":{"path":"m 704.90061,358.23823 -5.1274,12.18059 -8.78639,15.50256 -15.38221,1.10733 -6.59581,7.75128 1.10733,23.63901 -9.53264,11.07326 1.10733,18.82455 8.06422,9.21969 9.53264,-1.10733 9.53263,-7.02911 -2.19058,-11.07326 21.97802,-38.03425 -4.40523,-4.79039 4.40523,-9.21969 4.76632,1.46841 1.46841,-3.68306 -4.40524,-18.82455 -2.57573,-7.75128 -2.9609,0.74624 0,0 z","name":"Madagascar"}}});
--- /dev/null
+/** Add World Map Data Points */
+jQuery.fn.vectorMap('addMap', 'asia_en', {"width":950,"height":550,"paths":{"id":{"path":"m 615.27242,460.80117 -3.29462,12.37981 -17.87084,6.03301 -5.34842,-6.27548 -2.59577,0.71313 4.84924,18.71232 7.25958,0.81296 9.6842,3.66545 v 3.66545 l 4.43562,-0.81296 6.46089,-8.94255 v -7.31664 l 3.63692,-7.31663 4.03627,0.81296 -4.84923,-10.16912 -0.74165,-6.54647 -5.66219,0.58476 0,0 m -84.43367,-9.74124 -0.39934,3.25183 9.6842,16.27345 h 2.82396 l 20.18136,33.75921 8.07254,0.81296 4.03627,-11.79505 -6.46088,-4.06479 -1.21231,-6.50368 -36.7258,-31.73393 0,0 m 95.62969,44.98374 3.22331,3.9507 -2.09658,5.93318 v 1.12673 h 4.76366 l 1.68297,-14.83294 1.54034,0.42787 2.79544,13.54932 2.66708,0.71313 2.52445,-5.79056 -2.52445,-8.75714 -2.09658,-3.80807 6.58925,-4.80644 -1.54035,-2.12511 -6.304,4.09332 h -1.68296 l -3.08069,-4.52119 0.98411,-1.98248 5.19153,-2.53872 7.84434,2.3961 2.38183,-0.14263 5.89039,-5.5053 -2.38183,-2.39609 -5.46252,4.23594 h -3.50856 l -5.31989,-2.53871 -3.77955,0.14262 -4.20742,6.77466 -2.66707,11.72373 -1.42625,4.67808 0,0 m 35.17119,-26.5424 -2.66708,6.48941 4.20742,5.5053 h 1.39772 l 1.82559,-3.66545 0.98411,-1.26935 -1.82559,-1.98248 -2.66708,-0.98411 -1.25509,-4.09332 0,0 m 8.27222,21.32235 -5.74777,1.26936 -1.68297,1.83985 1.39772,2.39609 3.77955,-1.41198 2.38183,-1.41198 3.50856,2.82396 1.54034,-1.26935 -2.79544,-3.39447 -2.38182,-0.84148 0,0 m -95.30166,18.35576 -3.92217,2.68134 0.84149,2.25347 12.47964,2.82396 6.304,1.12674 2.66707,2.82396 7.14549,0.5705 3.36593,2.82396 3.08069,-0.71312 2.8097,-2.53871 -5.19153,-2.39609 -4.4784,-3.80808 -11.63816,-2.82396 -13.46375,-2.82397 0,0 m 40.79059,12.27997 -3.08068,1.69723 1.82559,1.98248 4.47841,-1.69723 -3.22332,-1.98248 0,0 m 5.3199,-1.26936 0.55623,2.68134 3.22331,0.84149 1.2551,-1.55461 -1.39772,-2.12511 -3.63692,0.15689 0,0 m 7.71598,7.05991 -3.92217,0.5705 3.50856,2.96659 h 2.79544 l -2.38183,-3.53709 0,0 m 1.11247,-4.66382 -0.84149,1.69723 6.30401,0.98411 4.90628,-2.82396 -2.79544,-0.84149 -4.47841,1.26936 -1.68297,-1.41198 -1.41198,1.12673 0,0 m 57.39207,-40.47681 -5.94744,0.67033 -3.82233,2.79544 1.58313,3.19479 6.47515,1.19804 v 1.19805 l -4.09332,3.32315 1.98248,6.91728 1.98248,0.12836 1.71149,-6.78892 h 3.16626 l 1.32641,6.6463 15.44623,12.77915 0.39935,9.98371 5.2771,5.71924 2.38183,-0.12836 0.52771,-35.25676 -8.97108,-6.24695 -8.45763,5.71924 -3.0379,1.86838 -5.02038,-3.19479 -0.12836,-10.11207 -2.78118,-0.41361 0,0 z","name":"Indonesia"},"ye":{"path":"m 355.61037,425.50163 3.0379,3.39446 4.10758,-2.48167 1.4833,-0.49918 -1.88265,-1.8256 -3.6084,1.06969 -3.13773,0.3423 0,0 m -39.40714,-14.86147 2.0538,6.10433 v 5.9617 l 4.9348,4.4784 34.77184,-14.1626 0.32804,-3.89365 -5.57662,-10.01224 -13.99146,4.46415 -8.02975,7.90139 -9.31338,-5.5053 -5.17727,4.66382 0,0 z","name":"Yemen"},"my":{"path":"m 590.2561,472.95278 4.30725,4.97759 16.51591,-5.71924 3.2661,-12.608 7.35942,-0.52771 6.73188,-4.87776 -8.72862,-6.36105 -1.99674,-3.4943 -4.30726,7.94419 1.58313,4.56398 -2.62429,3.80807 -4.94906,-1.26936 -11.99472,8.79993 0.31377,5.09169 -5.47677,-0.32803 0,0 m -44.82687,-24.91649 2.86676,6.43236 0.64181,8.35779 3.83659,5.94744 9.25633,5.6194 3.50856,0.32804 -0.64181,-5.79055 -3.0379,-7.38795 -4.44988,-9.456 -0.37083,1.65444 -5.36268,-0.24246 -3.85086,-5.53382 -2.39609,0.0713 0,0 z","name":"Malaysia"},"bn":{"path":"m 612.5483,453.45602 -4.10759,4.97759 3.36594,1.05542 1.8969,-2.65281 -1.15525,-3.3802 0,0 z","name":"Brunei Darussalam"},"tl":{"path":"m 650.15836,523.58445 -7.28811,6.0758 0.69886,1.55461 3.08069,-0.5705 3.63692,-3.39446 7.14549,-0.98411 -1.39772,-2.39609 -5.87613,-0.28525 0,0 z","name":"Timor-Leste"},"ph":{"path":"m 626.24024,422.47799 -1.22657,2.33904 -0.6846,2.88101 -6.81744,8.65731 0.41361,1.7828 2.86675,-0.41361 8.85698,-9.89814 -3.40873,-5.34841 0,0 m 11.03913,-3.29463 -0.14262,7.14549 2.59576,2.61002 0.95559,5.07743 2.59576,0.55624 1.22657,-3.16626 -2.03953,-1.51182 -0.54197,-8.92829 -4.64956,-1.78281 0,0 m 7.37369,2.75265 -0.14263,6.31827 1.49756,2.4674 2.59576,-3.02364 -0.68459,-5.49104 -3.2661,-0.27099 0,0 m 1.62592,-5.5053 2.59576,3.43725 1.22657,3.29463 h 2.32478 l -0.41361,-5.63367 -2.59577,-1.78281 -3.13773,0.6846 0,0 m 5.0489,12.92178 0.54197,4.12184 -4.77791,3.85086 -3.9507,0.41361 -4.22169,4.53546 0.14263,2.06805 3.9507,-1.24083 2.72412,-1.7828 2.32478,5.90465 4.09332,2.88101 1.64018,-0.55623 1.49756,-1.78281 -3.2661,-3.29462 1.91117,-1.51182 2.18215,1.7828 1.49756,-2.4674 -1.49756,-3.02364 -0.27098,-6.73187 -4.5212,-3.16626 0,0 m -22.22089,-41.90306 -3.67971,2.61002 -0.41361,8.2437 5.7335,11.1247 1.91117,1.51182 2.45314,-1.65444 4.22169,0.68459 0.81295,3.70824 3.13774,0.27099 1.49756,-2.0538 -1.91117,-2.61002 -2.32478,-2.19642 -4.90628,-0.54197 -2.59576,-4.26447 2.99511,-4.53546 0.27099,-3.97922 -2.03953,-5.07743 -5.16301,-1.24083 0,0 m 1.91117,24.58845 1.08395,3.85086 1.91116,1.24083 1.3692,-1.7828 -2.18216,-3.02364 -2.18215,-0.28525 0,0 z","name":"Philippines"},"cn":{"path":"m 584.10898,383.45594 -3.40872,0.95558 -2.45314,3.02364 2.03953,3.97922 2.99511,0.27099 3.40872,-3.02364 0.81296,-3.97922 -3.39446,-1.22657 0,0 m -127.54903,-142.76706 -4.93481,12.40832 -6.80319,-0.35656 -7.174,15.70295 6.09006,7.75877 -12.55095,17.32887 -6.44663,-1.08394 -4.30725,5.41972 1.06968,3.25184 5.02038,0.35656 2.51019,5.77629 5.02038,1.08395 15.4177,19.86758 v 10.11208 l 7.53057,4.69234 8.24369,-1.44051 10.39733,6.13285 12.55095,3.6084 6.09006,-0.72738 6.81745,-0.72739 14.33375,-9.38469 4.66382,0.72739 1.78281,4.23595 3.9507,1.18378 5.37694,7.94418 -3.57988,7.94418 2.15363,5.41973 6.09007,2.16789 1.06968,6.50368 7.17401,0.72738 1.06968,-3.25184 10.39732,-5.41973 6.44663,0.35657 7.53057,8.30074 5.02038,-2.16789 3.22331,0.35656 1.44051,3.97922 2.51019,0.35656 3.57987,-5.04891 14.33376,-5.41972 12.90751,-15.53181 4.30726,-14.80441 -0.35656,-9.75551 -5.37694,-1.08395 3.22331,-3.6084 -0.71312,-5.77629 -13.62064,-13.72047 v -6.86023 l 3.93644,-5.04891 3.93643,-1.81133 0.35656,-3.97922 H 598.2288 l -1.79707,5.41973 -4.66382,-1.08395 -5.7335,-6.13285 3.57988,-9.38469 5.02038,-5.41973 4.66382,0.35656 -0.71313,8.30075 2.51019,2.16789 6.09007,-6.13285 2.15363,-0.35656 -0.71313,-4.69235 5.73351,-6.86023 4.30725,0.35656 2.51019,-7.94418 2.93807,-1.55461 0.29951,-4.94907 -2.85249,-2.99511 -0.24246,-7.81582 5.49104,-0.35656 -0.35656,-20.15284 -3.85086,2.31052 -1.44051,5.16301 -6.43236,-0.0143 -18.64101,-10.48289 -13.46375,-16.23066 -13.66342,-0.14263 -3.48004,3.02364 4.42136,10.12633 -1.54035,9.49879 -5.5053,2.28199 -3.09495,-0.24246 -0.2282,9.39895 3.22331,0.72739 5.73351,-2.52446 7.53057,3.6084 v 3.6084 l -5.37694,0.35656 -4.30726,9.38469 -3.93644,0.35656 -13.97719,18.41282 -14.69032,6.50367 -10.04076,0.72739 -6.80319,-4.69235 -9.6842,5.06317 -10.39732,-3.25184 -2.51019,-6.86023 -17.55707,-1.08395 -9.31337,-15.16098 h -3.93644 l -3.16626,-7.03138 -3.76528,-0.29951 z","name":"China"},"tw":{"path":"m 623.51612,352.27824 -5.04891,3.85086 -0.27099,7.41647 4.36431,5.07743 1.08395,-0.95558 -0.12836,-15.38918 0,0 z","name":"Taiwan"},"jp":{"path":"m 646.00799,306.7953 -2.32478,2.33905 0.95558,3.29462 2.03953,0.14262 1.3692,7.14549 1.64018,1.7828 2.86675,-2.61002 1.22657,-4.67808 -3.55135,-5.07743 -4.22168,-2.33905 0,0 m 12.55095,-4.66381 -3.9507,3.70823 -0.14262,4.26447 0.95558,1.24083 5.31989,-4.53545 -0.41361,-4.53546 -1.76854,-0.14262 0,0 m -5.46252,-8.79993 -6.96007,7.9727 1.22657,1.92543 3.40873,0.41361 6.40383,-4.94906 4.50694,-0.82723 4.09332,4.80645 3.13773,-1.09821 1.22657,-4.67808 5.86187,-0.14263 5.7335,-6.87449 -2.99511,-11.40996 -1.3692,-6.04728 2.99512,-2.4674 -6.81745,-10.29748 -1.76854,0.14262 -3.67971,4.12185 v 3.43725 l 1.64018,1.92543 0.54197,9.07091 -4.22168,5.22006 -2.45314,-1.51182 -1.91117,4.26447 -0.41361,3.97922 1.49755,2.33904 -0.95558,1.78281 -3.13774,-2.61003 h -2.18215 l -1.91117,1.09821 -1.49756,0.41361 0,0 m 11.738,-62.09868 -2.18216,1.92543 1.09821,4.12184 1.91117,1.92543 -0.14263,6.31827 -2.45314,0.95558 -1.91117,4.26447 5.59088,7.68746 3.67971,-1.24084 0.6846,-1.92543 -3.9507,-3.56561 2.45314,-3.16626 2.59577,0.41361 2.03953,2.19642 0.14262,-4.53546 5.59088,-4.53546 3.13774,-0.82722 -2.59577,-4.39283 -1.22657,-1.92543 -2.03953,1.36919 -1.76854,2.19642 -3.82233,-0.82722 -3.9507,-2.61003 -2.88101,-3.82233 0,0 z","name":"Japan"},"ru":{"path":"m 222.95538,214.51729 -2.13937,-0.21393 -3.85086,4.60676 v 2.15363 l 1.28362,0.49919 2.49593,0.0713 4.13611,-3.3802 0.57049,-1.15526 -2.49592,-2.5815 0,0 m 462.45974,12.45112 -3.82233,5.36267 0.27098,2.61003 1.91117,-0.82722 4.49267,-5.63367 -2.85249,-1.51181 0,0 m 5.04891,-7.83009 -1.3692,3.70824 0.14263,2.4674 2.32478,-1.51182 2.18215,-4.39283 v -1.64018 l -3.28036,1.36919 0,0 m 8.04402,-32.70378 -1.76855,2.19642 0.14263,3.43724 1.64018,-0.14262 2.72413,-4.80644 -2.73839,-0.6846 0,0 m -3.2661,8.38632 v 6.04727 l 1.91116,0.6846 1.3692,-2.19642 v -4.66382 l -3.28036,0.12837 0,0 m -55.78042,-21.85007 -0.12836,8.79993 11.03913,17.04362 3.95069,14.83294 6.96008,13.19276 2.72412,0.95559 2.32478,-1.92543 1.08395,-3.16627 -9.95519,-10.85372 0.27099,-5.63366 2.18215,-0.95558 0.54198,-3.29463 -19.49677,-27.61209 -1.49755,-1.38346 0,0 m 76.91736,-27.3411 -2.72413,0.27098 1.64018,2.33904 3.40873,2.33905 0.95558,-1.09821 -3.28036,-3.85086 0,0 m 5.30563,1.65444 0.41361,2.33904 4.22168,1.24083 0.41361,-1.65444 -5.0489,-1.92543 0,0 m -439.95361,-93.832618 2.45314,0.984108 -1.72576,2.966589 v 4.207421 l -3.67971,2.224941 h -3.92217 l -2.21068,-2.724127 0.24246,-2.966588 1.72576,-2.224942 h 3.43725 l 3.67971,-2.467402 0,0 m 9.32764,-2.724127 v 2.966588 l 2.45314,1.98248 3.43724,-0.242462 2.95233,-2.724126 v -1.98248 h -2.6956 l -2.21068,0.741647 -1.72576,-1.98248 -2.21067,1.240833 0,0 m 14.00572,0.256724 1.72575,3.708235 3.43725,0.242462 2.45314,-0.984109 -1.22657,-3.465774 -3.19479,-0.741647 -3.19478,1.240833 0,0 m 13.99145,-4.949068 -2.6956,-0.499186 -2.45314,2.481666 1.22657,2.224941 0.74165,3.465774 3.19479,-2.467403 0.74164,-2.724127 -0.75591,-2.481665 0,0 m 14.97557,26.228634 -0.74165,3.465774 -5.64793,4.949068 -12.0375,2.724127 -9.82682,16.330498 -1.72576,4.706608 9.82683,2.48166 1.46903,-5.93317 2.95232,-9.156492 7.61615,-3.964959 6.38957,-4.949068 4.66382,-1.98248 h 2.45314 v -6.674824 l -5.3912,-1.996742 0,0 m -31.67689,36.126775 6.63204,0.74164 2.21068,7.6732 5.64792,5.93317 -1.96821,3.96496 h -3.43725 l -3.19479,-3.70823 -7.11696,-0.24246 -2.95232,-3.96496 v -2.72413 l 4.42135,-1.24083 -0.24246,-6.43236 0,0 m 103.64518,-84.376623 -3.19479,-1.982479 h -3.67971 l -0.74164,2.224941 -3.92218,2.224941 -2.95232,0.984109 -0.48492,2.966588 6.87449,0.499186 8.10107,-6.917286 0,0 m 7.60188,0.741647 -1.72575,3.708236 -3.43725,-0.242462 -5.40547,3.96496 -1.46903,4.949068 h 3.43725 l 1.96822,-3.223313 4.66382,3.465774 4.42135,-1.982479 3.19479,-2.724127 -1.22657,-4.207421 -1.72575,-2.966589 -2.69561,-0.741647 0,0 m 7.13123,2.724127 1.72575,6.931548 2.6956,6.432362 2.95233,-5.191529 5.64793,-1.240833 v -3.708236 l -3.67971,-2.724126 -9.3419,-0.499186 0,0 m 134.75157,-11.096181 3.83659,3.223312 2.72413,-1.126733 0.7987,-4.521195 -5.59088,-3.865122 -3.67971,2.424615 -8.95681,0.81296 v 4.036271 l -9.44174,0.156887 v 6.603512 l 11.03913,8.215168 2.88101,-2.09658 -0.64181,-5.804814 7.04565,-1.768543 -1.44051,-2.73839 -2.55297,-2.581502 3.97922,-0.969846 0,0 m 10.24043,-3.865123 2.55298,4.834969 9.92666,-1.126733 2.72413,-3.551349 -0.64181,-3.0664252 -2.72413,-1.1267331 -2.55298,1.9396923 -7.35942,1.611656 -1.92543,0.484923 0,0 m -0.64181,18.854951 -4.96333,-1.28362 -2.86675,3.066426 -1.28362,4.193158 6.71761,-0.64181 5.12022,-2.581502 -2.72413,-2.752652 0,0 m 128.63298,-27.8830777 -4.16463,-1.2836199 -4.79218,1.768543 -2.39609,3.5513486 3.0379,4.036272 8.00123,-3.5513489 1.59739,-1.7685431 -1.28362,-2.7526517 0,0 m -26.68503,98.6533297 2.51019,8.67156 5.02038,1.44051 5.02038,-7.94418 -2.86675,-5.419732 1.06968,-4.692344 h 7.53058 l -1.79707,3.608399 0.71312,13.007347 -10.75388,26.72782 1.06968,5.77629 -0.35656,9.75551 20.06726,29.25228 3.93643,1.08394 0.35656,-23.83254 3.93644,-3.6084 -4.30726,-9.38469 3.57987,-3.97922 -7.88713,-10.46863 -4.30726,0.35656 -1.42624,-17.32887 11.11044,-2.89528 0.71313,-5.06317 5.7335,-1.4405 3.22331,2.89527 3.93643,-15.88836 6.80319,-11.55258 5.37694,-2.895276 4.66382,0.356561 v -5.419729 l -7.53057,-1.440506 -10.39732,-8.671566 5.02038,-5.77629 -4.30726,-9.755512 3.57987,-3.608398 4.30726,5.77629 10.75389,3.979221 11.82356,1.083946 1.44051,-5.048905 -6.09007,-6.132851 6.80319,-9.384688 -15.4177,-5.419729 -3.93644,7.944182 -5.02038,-6.503675 -28.31095,-9.755512 -26.8847,4.692344 -3.93644,2.167892 v 2.167891 l 5.7335,2.895277 -0.71312,6.860235 -10.39732,-4.335783 -22.93401,9.028127 -3.93644,-8.300742 h -15.77426 l -7.17401,7.58762 -25.4442,-5.77629 -23.29057,4.692344 -2.86675,7.216797 3.57987,1.083946 -0.35656,5.419728 -22.57745,2.524453 1.44051,7.216797 -20.79464,-3.608399 5.02038,-9.384688 -21.15121,-1.083946 1.79707,9.755512 -6.80318,3.251837 -5.73351,-5.419728 -23.29057,3.979221 -8.95681,8.300743 -0.35656,5.048905 -5.73351,0.356561 -0.71312,-5.77629 18.28445,-15.888362 V 44.380597 l -11.82356,-3.251837 -15.4177,5.048905 -6.44663,-6.503674 h -2.86675 l -3.57987,7.216796 2.86675,3.251838 -20.43808,11.196018 -17.55707,13.36391 -10.75389,14.804417 v 6.132851 l 11.46701,4.692349 -5.7335,4.33578 -12.18013,-4.33578 -5.02038,4.33578 -7.53057,-8.671568 -1.44051,3.251837 8.24369,26.000431 2.15363,0.72739 5.73351,-2.89528 2.86675,2.16789 v 4.69235 l -5.37694,-2.16789 -3.22332,2.52445 2.15363,4.69234 -1.79707,12.27997 -11.11044,1.08394 -0.71312,-3.97922 6.44662,-3.97922 1.44051,-10.83946 -7.17401,-9.38469 -2.51019,-16.24492 -11.467,-1.81133 -1.06969,5.77629 2.15363,2.89528 -4.66382,3.97922 1.79707,10.83946 6.80319,2.89527 1.4405,7.94418 -6.81745,-4.33578 -17.55706,-3.25184 -2.15363,5.77629 -13.9772,5.04891 -2.15363,-3.6084 -18.28445,10.11207 -0.35656,6.86024 -7.17401,1.08394 2.15363,-5.0489 v -5.04891 l -7.17401,-2.52445 -4.66382,1.81133 3.93643,7.58762 2.86676,5.04891 v 3.97922 l -5.37695,-1.08395 -1.06968,-1.08394 -5.37694,5.77629 2.86675,5.0489 -12.18013,-0.35656 3.93644,5.06317 -1.06969,2.16789 h -6.44662 l -4.66382,-3.25184 -1.06968,-9.02812 -7.53057,-2.89528 v -3.6084 l 15.77426,3.25184 8.60025,0.72738 3.57988,-5.41973 -3.22331,-5.77629 -22.93401,-9.02812 -7.91566,1.96821 -2.70987,2.32478 0.84149,5.34842 3.36594,0.58476 -0.78444,8.41484 10.38306,24.38878 -7.50205,11.89488 -0.51344,2.68134 3.80807,2.68134 -3.43725,2.26773 -2.28199,0.0428 0.42787,10.4829 3.152,4.46415 0.0428,4.33578 4.03627,0.37082 6.17564,2.35331 6.5322,8.98534 0.0713,2.36756 -2.1251,3.63692 4.87775,-0.27098 4.7494,1.36919 6.4181,9.08518 15.80278,1.44051 -0.68459,10.81093 -5.44826,4.66382 1.12674,1.82559 -5.37694,5.77629 -1.42625,5.41973 3.22331,4.69234 10.39733,3.6084 4.30725,-2.52445 27.59783,10.46863 1.06969,-2.89527 -5.73351,-5.41973 v -6.86024 l -3.57987,-1.08394 0.71312,-5.77629 5.7335,-6.86024 -10.28322,-7.70172 0.71312,-10.71109 10.99635,-7.23106 12.90751,0.72738 2.15363,3.97922 13.26407,0.72739 9.6842,-5.41973 -5.02038,-5.41973 1.06969,-10.11207 25.08763,-12.27997 19.29709,8.70009 6.44663,-5.77629 18.99757,18.05626 14.33376,-1.44051 5.02038,5.04891 13.62063,1.4405 8.95682,-12.27996 11.467,5.06317 6.09006,1.08394 6.09007,-5.41973 -5.37694,-3.60839 4.66382,-7.2168 13.26407,4.33578 2.86675,5.77629 5.7335,0.35656 3.57988,-2.52445 9.6842,-0.35656 1.06968,2.52445 11.11044,0.72739 7.53057,-7.94418 15.41771,1.81133 4.66381,-1.81133 1.42625,-8.67157 -4.66382,-10.46863 4.66382,-3.97923 h 14.69032 l 13.97719,16.61575 17.91363,10.11207 h 5.37694 l 0.71312,-4.33578 6.44663,-3.97922 0.71312,23.47598 -5.7335,0.35656 v 5.77629 l 3.22331,3.97922 -0.59902,5.16301 2.38183,0.98411 1.4405,-3.6084 2.15363,0.72738 1.42625,1.44051 6.44662,-1.44051 6.44663,-18.78363 0.71312,-23.47599 -8.24369,-18.78364 -10.39733,-12.63652 -5.02038,0.72738 v 3.97922 l -12.18012,-4.69234 4.66382,-10.11207 3.93643,-26.72782 16.48739,-5.04891 7.88713,-5.0489 h 8.60025 l -2.15363,2.89527 2.15363,3.6084 7.53057,-7.94418 4.30726,0.35656 -0.71312,-4.69234 -6.81745,-1.44051 4.66382,-16.97231 6.14711,-5.81907 0,0 z","name":"Russian Federation"},"mv":{"path":"m 436.59252,455.60965 0.42788,3.72249 2.38183,0.87001 0.42787,-3.28036 -3.23758,-1.31214 0,0 m 3.0379,7.87286 -0.21393,4.59251 1.74002,0.87001 1.52608,-3.06643 -3.05217,-2.39609 0,0 m 0.44214,8.97108 -1.52608,1.52608 1.74002,1.52608 2.16789,-1.52608 -2.38183,-1.52608 0,0 z","name":"Maldives"},"lk":{"path":"m 471.02206,437.48208 0.35657,3.87938 0.35656,2.82397 -2.09658,0.35656 1.05542,6.34679 3.152,1.76854 4.89202,-2.82396 -1.39772,-6.68909 0.35656,-2.4674 -4.54972,-4.22169 -2.12511,1.0269 0,0 z","name":"Sri Lanka"},"mn":{"path":"m 461.40918,240.8315 8.30074,-11.01061 9.96945,4.60677 6.77466,1.81133 8.30074,-7.61614 -5.63366,-4.15037 3.70823,-5.23432 11.06766,3.90791 3.83659,6.28974 6.93155,0.18541 3.62266,-2.6956 7.45926,-0.29951 1.62592,2.76691 12.39406,0.62755 7.84435,-8.00123 10.85372,1.14099 -0.62755,10.89651 4.74939,1.08395 5.83334,-2.65282 6.17564,3.05216 -0.14262,1.54035 -4.47841,0.12836 -4.66382,9.78404 -3.62266,0.35656 -14.09129,18.41281 -14.39081,6.34679 -8.9996,0.69886 -7.47352,-4.82071 -9.55584,5.10596 -9.41321,-2.9238 -2.66708,-6.83171 -17.82806,-1.2551 -9.12796,-15.47475 -4.43562,-0.28525 -2.29625,-5.49104 0,0 z","name":"Mongolia"},"kp":{"path":"m 610.42319,275.20399 2.62429,1.09821 0.7987,9.18501 5.20579,0.29951 4.90628,-5.74776 -1.69723,-1.51182 0.19967,-6.16138 4.50694,-5.44825 -2.29626,-4.13611 1.49756,-1.71149 0.82722,-4.27873 -2.61003,-1.18379 -2.22494,1.12674 -2.75265,8.35779 -4.44988,-0.38509 -5.14874,6.0758 0.61328,4.42136 0,0 z","name":"North Korea"},"kr":{"path":"m 624.77121,280.80913 8.81419,7.18827 1.49756,6.96008 -0.29951,3.73676 -4.30726,4.84923 -3.70824,0.19967 -4.20742,-9.08518 -1.59739,-4.33578 1.69723,-1.31214 -0.39935,-1.81133 -2.09658,-0.94132 4.60677,-5.44826 0,0 z","name":"South Korea"},"kz":{"path":"m 322.90658,267.14571 5.84761,-2.49593 6.53219,-0.2282 0.4564,9.98371 h -3.82233 l -2.9238,4.76366 3.82233,6.34679 5.63367,3.18052 0.51344,3.63693 2.06806,-0.6846 1.91117,-2.26773 3.152,0.6846 1.58313,3.18052 h 4.05053 v -4.07906 l -2.48166,-7.25958 -1.12674,-5.89039 7.20254,-3.18052 9.6842,1.58313 6.0758,6.11859 13.73473,-1.35494 7.65893,10.88225 8.99961,0.4564 2.48166,-4.07906 3.152,-0.6846 0.4564,-4.53546 4.72087,-0.2282 2.48166,2.95233 2.48167,-5.89039 21.3794,2.95233 3.59414,-4.76366 -6.0758,-7.48778 8.10107,-17.68543 6.5322,0.45639 4.50693,-10.88224 -8.9996,-0.9128 -5.17727,-4.99185 -14.26245,1.65444 -18.37002,-17.75674 -6.47515,5.74776 -19.63939,-8.91402 -24.08927,11.79504 -0.67033,8.38631 5.63366,6.57499 -10.98208,6.20416 -14.24818,-0.31377 -2.98085,-4.37857 -11.16749,-0.61329 -10.58274,6.80319 -0.2282,9.29911 9.85535,7.91566 0,0 z","name":"Kazakhstan"},"tm":{"path":"m 347.38094,294.20157 -0.88427,3.75102 h -5.91892 v 5.07743 l 6.36105,4.19316 -1.96822,5.74776 v 2.65282 l 2.63856,0.44213 3.50856,-4.63529 7.90139,-1.76854 16.88673,6.40383 0.21394,4.6353 9.42748,0.88427 10.52568,-11.0534 -1.31214,-3.53708 -7.01713,-1.54035 -19.73922,-12.82193 -0.88427,-4.6353 h -7.45926 l -3.29462,6.1899 h -3.29463 l -5.69071,0.0143 0,0 z","name":"Turkmenistan"},"uz":{"path":"m 397.39933,310.56059 4.39283,0.2282 v -7.51631 l -4.16463,-2.42461 7.01712,-8.84272 h 2.85249 l 2.85249,3.32315 7.45926,-2.86675 -10.31175,-3.53709 -0.39935,-2.13936 -2.45314,0.59902 -2.41035,4.19316 -10.39733,-0.3423 -7.6304,-10.79667 -13.4067,1.32641 -6.38957,-6.33253 -8.84272,-1.49756 -6.4181,2.61003 3.7225,12.3798 0.0428,4.16464 2.70986,0.0571 3.32315,-6.33253 8.84271,0.1141 1.31215,4.86349 18.95479,12.57948 7.33089,1.68297 2.01101,4.50693 0,0 z","name":"Uzbekistan"},"tj":{"path":"m 399.21066,300.26311 5.86186,-7.27385 h 2.21068 l 0.77017,1.62592 -2.70986,1.96821 v 1.62592 l 1.7828,1.28362 8.57173,0.51345 2.79544,-1.19804 1.26936,0.25672 0.85575,2.73839 5.09169,0.51345 2.55298,5.3912 -0.77018,1.62592 -1.01263,0.0856 -1.01263,-2.05379 -2.21068,-0.17115 -3.82234,0.51345 -0.25672,3.59414 -3.82233,-0.25673 0.17114,-4.53545 -2.79543,-2.73839 -4.25021,3.50856 0.0856,2.31051 -3.73676,1.28362 h -2.21068 l 0.17115,-7.95844 -3.57987,-2.65281 0,0 z","name":"Tajikistan"},"kg":{"path":"m 408.6524,282.24964 -0.44214,3.6084 0.35656,2.22494 12.40833,4.16463 -10.89651,4.39283 -1.24083,-1.02689 -2.35331,1.51182 0.1141,0.82722 1.2551,0.5705 7.64467,0.19967 3.87938,-1.16952 4.9776,-6.27547 6.23269,1.08394 7.5163,-10.41158 -20.11004,-2.73839 -2.78118,6.74613 -3.50856,-3.76528 -3.05216,0.0571 0,0 z","name":"Kyrgyz Republic"},"af":{"path":"m 376.29091,321.95628 2.26773,17.77101 5.64793,1.24083 0.52771,3.19479 -4.05054,3.3802 7.54484,6.09006 14.66179,-5.2771 1.16952,-6.24695 9.2278,-5.76203 3.53709,-13.34965 2.63855,-2.83823 -2.73839,-4.76365 8.92829,-5.51957 -1.141,-1.59739 -4.12184,0.25672 -0.37083,3.79381 -5.53382,-0.0571 -0.0998,-5.06316 -1.78281,-2.12511 -2.99511,2.72413 0.0856,2.49593 -4.52119,1.71149 -8.34353,-0.52771 -10.83946,11.3529 -9.69846,-0.88427 0,0 z","name":"Afghanistan"},"pk":{"path":"m 389.14137,354.46039 3.70824,5.50531 -0.35656,2.83822 -4.93481,1.95396 -0.35656,4.62103 h 5.64793 l 1.93969,-1.5974 h 10.75388 l 9.69847,8.52895 1.24083,-4.09332 h 7.23106 l 0.17115,-5.14875 -7.40221,-7.10269 1.58313,-3.90791 7.58762,-0.52771 10.22617,-21.32236 -5.64793,-4.43562 -2.11084,-7.45926 13.749,-1.24083 -8.11533,-11.55258 -4.32152,-1.16952 -1.76855,2.13937 -1.3264,0.0998 -8.11533,5.14875 2.65281,4.44988 -2.99511,3.19479 -3.70824,13.67768 -9.17075,5.86187 -1.24083,6.40383 -14.61901,5.13448 0,0 z","name":"Pakistan"},"in":{"path":"m 457.38717,444.55625 6.5322,-3.19479 3.87938,-14.03424 -0.17115,-17.22903 22.22089,-23.98943 v -5.69072 l 4.57824,-1.78281 -0.17114,-6.57498 -4.93481,-9.59863 2.82396,-5.14874 6.17564,5.69072 7.92992,0.35656 v 3.19478 l -2.4674,2.66708 0.52771,1.42625 4.23594,0.17115 0.88428,4.79218 h 1.24083 l 3.18052,-5.69072 1.58313,-14.91851 5.29137,-3.73677 0.17115,-5.14874 -2.11084,-4.09332 -3.35168,-0.17115 -13.12144,8.67157 0.82722,5.57661 -9.21354,-0.0285 -3.25184,-3.97922 -1.76854,0.2282 0.59902,5.53382 -19.92463,-1.42624 -12.35128,-5.5053 -0.65607,-6.77466 -8.22943,-5.10596 -0.0998,-10.51142 -5.64793,-6.46089 -12.97882,1.24083 1.41198,5.64793 6.36105,5.14874 -10.99634,22.50614 -7.35942,0.55624 -1.21231,2.70986 7.24532,6.70335 -0.35656,6.77466 -7.40221,-0.1141 -0.7987,3.36594 6.14712,-0.27099 0.17115,2.66708 -4.4071,2.31051 2.82396,5.33416 5.46252,1.7828 3.35167,-2.48166 1.58314,-4.43562 1.93969,-0.88427 2.29625,2.31051 -0.69886,5.69072 -1.58313,2.66708 0.35656,4.62103 23.4332,48.63493 0,0 z","name":"India"},"np":{"path":"m 457.68668,344.07733 0.65607,6.09007 11.52406,5.22005 18.46986,1.3692 -0.69886,-4.46415 -12.33701,-3.39446 -10.46864,-6.23269 -7.14548,1.41198 0,0 z","name":"Nepal"},"bt":{"path":"m 492.21606,351.9502 2.21067,3.02364 7.47353,0.0571 -0.75591,-4.13611 -8.92829,1.05542 0,0 z","name":"Bhutan"},"bd":{"path":"m 492.45852,359.12421 -1.86838,3.3802 4.84923,9.21354 0.14262,7.18827 0.88427,1.92543 5.69072,0.0998 3.22331,-3.09495 2.33904,1.41198 0.47066,4.37857 1.86838,-1.16952 0.1141,-5.59088 -1.56887,-0.18541 -0.9841,-4.74939 -3.96496,-0.14263 -0.98411,-2.63855 2.42461,-3.23758 0.0428,-1.59739 h -7.04565 l -5.63366,-5.19153 0,0 z","name":"Bangladesh"},"mm":{"path":"m 540.76542,431.2066 -3.9507,-6.33252 2.86675,-4.02201 -2.70986,-4.97759 -2.55298,-0.48493 -0.48493,-8.35779 -3.82233,-7.40221 -1.11247,1.76855 -2.55298,4.33578 -3.19479,0.48492 -1.59739,-2.09658 -0.7987,-5.63366 -2.39609,-4.50694 -9.75551,-9.19927 2.39609,-1.58313 0.44214,-6.66056 3.56561,-5.99023 1.54034,-14.90425 5.16301,-3.52283 0.17115,-5.43399 3.09495,1.0269 4.87775,7.05991 -3.62266,7.75877 2.43888,6.09006 6.03301,2.36756 1.09821,6.63204 8.10107,1.2551 -2.2392,3.86512 -10.21191,4.02201 -1.11247,6.58925 7.50204,9.64141 0.31377,5.14874 -1.75428,1.76854 0.15689,1.61166 5.59088,8.20091 0.15689,8.51468 -1.64018,2.96658 0,0 z","name":"Myanmar"},"th":{"path":"m 541.6069,383.88381 4.62103,5.94744 v 7.23106 l 1.59739,0.7987 7.34516,-3.53709 1.44051,0.48493 8.7714,10.12633 -0.31377,6.91729 -2.86675,-0.48493 -2.55298,-1.61165 -1.91117,0.15688 -3.35167,5.61941 0.64181,3.05216 2.70986,1.44051 -0.15688,3.3802 -1.91117,0.96984 -6.54646,-4.50693 v -4.02201 l -2.70987,-0.15689 -1.11247,1.76855 -0.5705,17.9992 4.23595,7.73025 7.50205,7.23106 -0.31378,2.09657 -3.99348,-0.15688 -3.66545,-5.46252 h -3.8366 l -4.79218,-3.86512 -1.44051,-4.02201 2.06806,-3.3802 0.71312,-3.05216 2.25347,-3.99349 -0.0998,-9.18501 -5.5053,-7.95844 -0.2282,-0.96985 1.7828,-1.79707 -0.41361,-6.31826 -7.33089,-9.28485 0.85574,-5.34842 9.08518,-3.8366 0,0 z","name":"Thailand"},"kh":{"path":"m 556.51115,425.2449 5.83334,6.23269 10.85372,-8.04402 0.95559,-12.69357 -5.60514,3.86512 -2.90954,-1.62592 -3.9507,-0.52771 -2.21068,-1.55461 -1.06968,0.0571 -2.89528,4.7494 0.47066,2.19641 2.93807,1.64018 -0.35656,4.46415 -2.0538,1.24083 0,0 z","name":"Cambodia"},"la":{"path":"m 549.36567,373.12993 -3.45151,1.75428 -2.86675,8.35779 4.79218,6.10433 -0.7987,6.74614 0.7987,0.32803 7.9727,-3.86512 10.69684,11.95193 -0.25673,7.53057 2.32478,1.25509 5.74777,-4.66382 -0.47066,-3.69397 -16.58723,-15.76 0.15689,-2.41035 2.06805,-1.44051 -1.4405,-4.02201 -6.86024,-1.12673 -1.82559,-7.04565 0,0 z","name":"Lao People's Democratic Republic"},"vn":{"path":"m 563.04335,432.3476 1.69723,2.66708 0.31378,3.05216 4.46414,0.48492 5.41973,-7.23106 5.10596,-1.4405 2.70986,-7.38795 -1.26936,-11.89488 -5.26284,-7.23106 -5.54809,-4.43562 -7.05991,-12.12307 5.06317,-8.4719 -7.24532,-8.315 -5.80482,-0.25673 -5.22005,2.80971 1.5546,6.71761 6.96008,1.22657 1.86838,5.17726 -2.45314,1.5974 0.15688,1.28362 16.3305,15.97394 0.64181,4.69234 -0.98411,14.83294 -11.43848,8.27222 0,0 z","name":"Vietnam"},"ir":{"path":"m 312.86582,308.97746 -1.74002,1.81133 0.17115,2.86675 2.1679,3.0379 7.68745,8.41484 -1.16952,3.36594 h -1.34067 l -0.67033,3.36594 4.35004,5.56235 4.00775,0.3423 8.02976,11.11044 4.50693,0.3423 3.50856,2.52445 0.17115,5.04891 13.87736,8.0868 h 5.17726 l 3.18053,-2.6956 4.00775,-0.17115 2.33904,5.39121 14.98982,2.08231 0.44214,-5.5053 4.96333,-1.79707 0.2282,-1.96822 -3.9507,-5.3912 -8.79992,-7.07417 4.62103,-4.20742 -0.32804,-1.85412 -5.79055,-0.89853 -2.45314,-19.53955 -0.28525,-4.49267 -15.70295,-6.00449 -6.96007,1.56887 -3.89365,4.77792 -3.45151,-0.2282 -0.99837,0.84148 -7.68746,-0.49918 -9.69846,-7.07418 -3.6084,-3.95069 -1.65444,0.39935 -2.98086,3.40872 -5.26284,-0.99837 0,0 z","name":"Iran"},"tr":{"path":"m 297.24845,296.48356 -3.18053,3.36593 -11.6952,-0.34229 -7.01713,-4.20743 -6.84597,-0.17114 -7.85861,5.56235 -7.35942,0.3423 -0.67033,4.20742 h -8.35779 l -3.33742,3.0379 v 1.68297 l 2.01101,1.68297 v 1.85411 l -0.84148,2.19642 0.84148,1.85412 2.68134,-1.34067 2.68134,2.86675 -0.67034,2.02527 -0.99837,1.35493 1.49756,1.68297 7.35942,1.51182 5.17727,-2.19642 v -3.19479 l 2.51019,0.49919 6.01875,3.53708 6.51794,-1.01263 2.83822,-2.6956 1.83986,0.67033 v 3.0379 h 2.51019 l 2.16789,-4.20742 19.05462,-2.02526 8.31501,-1.01264 -2.19642,-2.88101 -0.0428,-3.89365 1.6687,-1.99674 -6.0758,-4.87776 0.32804,-4.20742 h -3.33742 l -5.53382,-2.70986 0,0 m -50.8884,0.72738 -0.2282,5.06317 4.42135,-1.35493 2.02527,-1.35493 -0.59902,-2.19642 -2.09658,-1.66871 -3.52282,1.51182 0,0 z","name":"Turkey"},"om":{"path":"m 353.84182,398.67397 10.53995,-6.0758 1.86838,-8.91403 -2.31052,-1.32641 0.95559,-9.55583 2.011,-1.16953 2.15363,3.3802 12.82194,6.70335 v 3.7225 l -15.5318,22.8627 -7.14549,0.24246 -5.36268,-9.86961 0,0 z","name":"Oman"},"ae":{"path":"m 347.60914,375.99668 1.24083,4.96333 14.06277,1.24084 0.98411,-10.18339 2.70986,-1.48329 0.74165,-3.7225 -4.43562,1.24083 -4.93481,7.45926 -10.36879,0.48492 0,0 z","name":"United Arab Emirates"},"qa":{"path":"m 345.64092,367.55332 -0.74165,5.71924 2.19642,1.6687 1.99674,-0.18541 0.74165,-7.20253 -1.72576,-1.24084 -2.4674,1.24084 0,0 z","name":"Qatar"},"kw":{"path":"m 332.3198,350.65232 -3.20905,-1.74002 -2.22495,2.23921 0.24247,4.4784 5.17726,1.98248 0.0143,-6.96007 0,0 z","name":"Kuwait"},"sa":{"path":"m 333.33243,359.30962 9.99797,13.93441 3.22332,2.56724 1.4405,6.24695 15.38918,1.21231 1.74002,0.9128 -1.72576,7.70172 -10.11207,5.9617 -14.79016,4.4784 -7.88713,7.70172 -9.37042,-5.46251 -5.67646,4.96333 -7.90139,-12.90751 -5.41973,-2.48167 -1.96822,-2.98085 v -6.46089 l -19.72496,-23.8468 -0.74164,-4.22169 h 5.67645 l 6.90302,-5.9617 0.24246,-2.98085 -1.96821,-1.98248 3.95069,-3.22331 8.38632,0.49918 14.30523,11.92341 8.44337,-0.38509 0.54197,2.08232 7.04565,2.70986 0,0 z","name":"Saudi Arabia"},"sy":{"path":"m 280.09073,324.92287 -0.49919,3.62266 4.02201,1.68297 -0.17115,10.04076 4.02201,-0.0856 4.02201,-3.0379 1.51182,-0.25673 9.12796,-7.25958 1.83986,-10.53995 -18.24167,1.85412 -1.92543,4.22168 -3.70823,-0.24246 0,0 z","name":"Syrian Arab Republic"},"iq":{"path":"m 305.24968,319.07527 -2.22494,10.99634 -9.21354,7.6732 0.58476,3.62266 8.9996,0.61328 14.33376,11.66668 8.01549,-0.2282 0.21394,-2.6956 2.93806,-3.152 4.10758,2.32478 0.54198,-0.51345 -7.94419,-10.56847 -3.76528,-0.2282 -5.00612,-6.43236 0.99837,-4.73513 1.52608,-0.19968 0.52771,-2.09658 -6.81744,-7.174 -7.81582,1.12673 0,0 z","name":"Iraq"},"jo":{"path":"m 283.27125,341.53862 -3.50856,12.23717 -0.15689,1.86839 h 5.51957 l 6.17564,-5.44826 0.15688,-2.06805 -2.52445,-2.58151 4.5212,-3.75102 -0.65608,-3.48003 -1.24083,0.28524 -3.76528,2.69561 -4.5212,0.24246 0,0 z","name":"Jordan"},"lb":{"path":"m 279.42039,329.64374 0.0856,2.78118 -1.16952,4.22168 4.022,0.3423 0.25673,-5.99023 -3.19479,-1.35493 0,0 z","name":"Lebanon"},"il":{"path":"m 278.1653,337.65923 -2.25347,7.17401 2.9238,8.60026 3.35168,-12.56522 v -2.6956 l -4.02201,-0.51345 0,0 z","name":"Israel"}}});
--- /dev/null
+/** Add World Map Data Points */
+jQuery.fn.vectorMap('addMap', 'australia_en', {"width":950,"height":550,"paths":{"pg":{"path":"m 484.34788,3.4935749 -1.05721,69.8328711 10.05776,-0.54289 13.22939,-15.458095 11.11497,0.542891 7.1433,6.400394 2.37157,19.715499 22.74426,12.000739 5.82893,-2.142989 v -7.200443 l -18.25827,-15.200936 -9.00055,-20.801281 7.1433,-3.457356 -5.28604,-11.457848 -10.57208,-0.257159 -2.65731,-12.257897 -28.0303,-18.9154509 -4.77172,-0.8000492 0,0 m 79.20488,2.0286963 -2.51444,3.5716485 13.7437,12.1721783 1.88583,7.143297 3.74309,-0.428598 0.4286,-7.343309 -4.17169,-3.771661 -13.11509,-11.3435558 0,0 m 6.88614,17.2296328 -2.71446,0.62861 -1.65724,7.343309 -5.20032,3.371636 -15.62954,2.743026 0.62861,5.886077 16.45816,-0.828622 10.42921,-6.514687 -0.62861,-11.343556 -1.68581,-1.285793 0,0 m 18.54399,12.800788 3.54308,9.85775 6.25753,6.086089 1.88583,-1.685818 -0.62861,-6.514687 -7.08615,-8.60053 -3.97168,0.857196 0,0 z","name":"Papua New Guinea"},"au":{"path":"m 222.64605,231.19331 -1.00006,72.51875 -11.14354,8.17193 -1.00007,7.1433 15.20094,10.20063 37.5166,-7.1433 h 19.25833 l 7.08615,-10.2292 42.57405,-8.17193 30.40187,9.20056 -2.0287,12.2579 4.05739,12.2579 23.31573,-4.08597 1.00006,6.11467 -15.20094,11.22926 5.05746,4.08596 11.14354,-4.08596 -3.02876,33.71636 21.28703,16.34386 12.17217,-4.08596 6.08609,6.11466 35.4879,-5.1146 33.45921,-54.14619 12.17217,-3.05733 24.31579,-44.94563 6.08609,-38.80239 -15.20094,-19.40119 6.08609,-4.08597 -12.17218,-37.80232 -13.17224,-9.20057 2.0287,-51.06029 -12.17218,-9.20056 -3.02876,-28.601766 h -6.08609 l -20.28696,67.404146 -11.14354,1.02864 -25.34442,-25.54443 14.20087,-37.80233 -26.34448,-5.114599 -29.40181,8.171929 -8.11478,23.48716 -13.17224,3.05733 -1.00006,-16.34386 -53.7176,32.68773 1.00006,12.2579 -8.11478,11.22926 h -20.28696 l -43.60269,18.37256 -15.22951,40.97395 0,0 m 184.49708,195.09773 -5.05746,20.42983 1.00006,14.28659 15.20094,-1.02863 17.22963,-26.5445 -28.37317,-7.14329 0,0 z","name":"Australia"},"nz":{"path":"m 656.52991,385.43138 3.02876,33.71636 -4.05739,15.31523 -15.20094,11.22926 1.00006,13.28653 v 14.2866 l 4.05739,5.1146 41.57399,-35.74506 v -8.17193 H 676.7883 l -14.20087,-48.00296 -6.05752,-1.02863 0,0 m -30.40187,73.54738 8.11478,15.31523 -22.31566,21.45847 -2.02869,11.22926 -15.20094,2.0287 -25.34442,23.48716 -23.31572,-11.22927 -2.02869,-8.17193 42.57405,-18.37256 39.54529,-35.74506 0,0 z","name":"New Zealand"},"nc":{"path":"m 638.30022,209.73485 -1.00006,5.1146 13.17223,18.37256 7.08616,3.05733 1.00006,-7.1433 -20.25839,-19.40119 0,0 z","name":"New Caledonia"},"sb":{"path":"m 606.26967,50.23931 0.4286,6.514687 3.97167,3.771661 3.74309,-2.314428 -3.34306,-6.943285 -4.8003,-1.028635 0,0 m 5.00031,16.172425 -3.34306,3.571648 3.54307,6.514687 4.17169,1.25722 -0.20001,-4.40027 -4.17169,-6.943285 0,0 m 8.14336,-3.771661 2.91446,7.143297 5.62892,6.714699 3.11448,-5.028881 -4.17169,-7.143297 -7.48617,-1.685818 0,0 m 14.6009,10.714946 1.65724,8.829115 3.97168,5.457479 3.34306,-6.914712 -8.97198,-7.371882 0,0 m 4.57171,19.744072 -1.45723,2.514441 4.80029,6.314677 3.34306,0.20001 -2.08584,-8.200505 -4.60028,-0.828623 0,0 m -10.62923,12.572208 -5.00031,2.31442 4.3717,6.08609 3.74309,-2.11441 -3.11448,-6.2861 0,0 z","name":"Solomon Islands"},"vu":{"path":"m 678.95986,143.30218 -3.54307,4.74315 1.4858,5.34319 1.77154,1.20007 3.22877,-4.17168 -2.94304,-7.11473 0,0 m 1.77154,14.54376 0.28573,3.85738 3.82881,1.20007 2.65731,-1.48581 -2.65731,-4.17168 -4.11454,0.60004 0,0 m 5.60035,34.45926 -1.77154,2.68588 2.6573,2.97161 4.42885,-1.4858 -5.31461,-4.17169 0,0 z","name":"Vanuatu"},"fj":{"path":"m 758.25046,186.36198 -3.54308,4.74315 -0.28573,5.34318 4.11454,4.17169 -0.28573,-14.25802 0,0 z","name":"Fiji"}}});
--- /dev/null
+/** Add World Map Data Points */
+jQuery.fn.vectorMap('addMap', 'europe_en', {"width":950,"height":550,"paths":{"ee":{"path":"m 579.52752,247.70418 -14.10713,-0.50382 -8.94292,5.46651 -0.12596,4.0558 5.79401,5.46652 18.01178,3.04815 -0.62978,-17.53316 0,0 m -27.73563,10.02615 -3.90466,-0.12596 -2.26721,2.29241 1.63743,2.41836 3.90465,0.25192 2.01531,-2.92219 -1.38552,-1.91454 0,0 z","name":"Estonia"},"pt":{"path":"m 213.92602,432.50764 -3.42602,3.45121 6.14668,3.45121 0.68017,-4.81154 -3.40083,-2.09088 0,0 m 18.46523,-2.06569 -4.10618,2.74586 3.42602,2.74585 5.46651,-1.38552 -4.78635,-4.10619 0,0 m 2.72067,9.64828 -2.0405,5.51689 2.72066,3.45121 3.42602,-2.74585 -4.10618,-6.22225 0,0 m 16.39954,11.0086 -1.36033,3.45121 2.04049,2.06569 5.46652,-3.45121 -6.14668,-2.06569 0,0 m 51.94448,30.27995 -2.72066,3.45121 2.72066,3.45121 4.10619,-2.06568 -4.10619,-4.83674 0,0 m 57.31023,-63.43172 -1.56186,21.79049 -4.45886,4.03061 0.45345,2.46875 3.12372,5.16421 -2.01531,6.29783 3.35045,1.13361 7.8093,-0.90689 -0.45344,-6.29782 5.11384,-29.19673 -1.10842,-4.03061 -10.25287,-0.45345 0,0 z","name":"Portugal"},"es":{"path":"m 322.19828,524.98494 -4.40848,2.54433 2.04049,2.06568 2.36799,-4.61001 0,0 m -15.31632,0.47864 -5.46651,1.38552 2.72066,4.13138 h 4.10618 l -1.36033,-5.5169 0,0 m -12.99872,-4.13138 -3.42601,3.45121 4.78635,4.13138 2.72066,-6.19706 -4.081,-1.38553 0,0 M 404.67463,402.22769 H 372.5809 l -6.47417,-2.9222 -3.12372,0.22673 -3.7787,7.85968 1.33514,8.08642 12.26817,1.1336 1.56186,5.16422 -5.34056,30.10362 0.22673,5.39094 8.691,4.71078 10.02614,0.68016 20.05228,-4.9375 9.79942,-12.34374 0.22673,-12.57046 17.382,-15.71938 0.8817,-6.9528 -15.82015,-0.22672 -15.82014,-7.68335 0,0 m 32.09373,30.75859 -4.00542,1.36033 0.8817,3.60235 h 5.794 l 2.44356,-2.69547 -5.11384,-2.26721 0,0 z","name":"Spain"},"is":{"path":"m 298.87112,181.32508 -4.93749,-2.79624 -6.65051,4.20695 -5.71843,5.29018 0.15115,2.94738 7.40625,0.93208 -0.45345,5.29018 -2.61989,2.64508 0.62978,1.71301 7.40624,0.47864 v 8.56504 l 10.65593,1.86416 6.32302,3.57717 7.10395,0.30229 12.19259,-6.0711 9.42155,-12.44451 0.15115,-8.4139 -5.71843,-4.83673 -4.78635,-4.0558 -2.16645,1.56186 -3.24968,4.20695 -3.70312,-0.47864 -3.70312,-4.0558 -4.78635,0.45345 -6.9528,5.76881 -4.18176,4.50924 -2.3176,-2.0153 -0.15115,-4.98788 2.3176,-1.56187 -1.66263,-2.5947 0,0 z","name":"Iceland"},"no":{"path":"m 505.18796,21.738124 -4.15657,-4.181757 -9.22002,4.484053 h -16.92856 l -2.67028,9.874994 9.49713,8.388706 4.15657,-0.604591 5.94514,-10.17729 5.03827,3.602358 -3.57717,7.179523 -1.78858,10.479586 4.15656,6.574932 8.91773,-14.963639 11.588,-14.081943 -4.45886,-3.879462 -6.49936,-2.69547 0,0 m 5.03826,-17.9614046 -7.43143,6.8772276 4.45886,6.877228 h 8.01084 l 3.27487,4.484054 9.79942,5.088644 11.2857,-6.574932 7.73374,-6.574932 -2.67028,-5.3909405 -7.73374,-4.4840534 -5.64285,5.0886449 -3.85427,-4.7863491 -2.97257,0.3022957 -3.85428,8.3887064 -5.64285,-5.6932361 -0.60459,-3.8794619 -4.15657,0.2771044 0,0 m 16.92856,30.8341646 -5.94515,5.390941 -5.03826,3.879462 2.36799,4.181757 4.76115,1.486288 7.73374,-3.602358 3.57716,-4.484053 -3.27487,-5.390941 -4.18176,-1.461096 0,0 m 46.55355,108.498976 5.08864,-3.72831 -0.45344,-4.18176 -3.22449,-1.86416 0.45344,-5.11383 h 2.77105 v -2.79624 l -12.01626,-3.24968 -18.01178,1.86416 -1.83897,7.91007 -4.15657,-1.38552 -2.77104,-4.66039 -8.79177,0.45344 -0.93208,8.84215 -4.15656,1.86416 -2.3176,-4.6604 -18.49043,14.88807 3.70313,4.18176 -6.92761,3.24967 -15.71938,31.18685 -5.54209,3.72831 0.45344,2.79624 5.54209,2.79623 -1.38552,6.04592 -9.24521,-0.47864 -2.77105,-3.24968 -5.99553,6.978 -3.70312,2.79623 -0.93208,6.52455 -3.22449,1.86416 -8.31313,1.86416 -4.15657,13.04909 2.77105,21.41262 3.22449,9.77423 3.70312,3.72831 8.31313,-0.45344 12.01626,-11.63839 4.61001,-7.91007 1.38552,11.63839 7.85969,-13.95599 0.45344,-39.12211 6.39859,-4.03061 1.91454,-21.58895 19.39731,-27.93716 9.24521,-3.24968 4.15657,-5.11384 13.85522,3.24968 6.92761,4.18176 2.3176,-11.63839 11.56281,-6.97799 6.95281,12.11702 0,0 z","name":"Norway"},"ge":{"path":"m 674.47357,400.11162 8.23756,10.75669 10.27805,4.73596 6.32302,-0.0252 10.85746,-2.94738 2.72066,-4.25733 -32.11892,-12.01626 -6.29783,3.75351 0,0 z","name":"Georgia"},"am":{"path":"m 710.39638,414.54624 12.09183,15.76976 -3.55198,4.15656 -8.56504,-1.48628 -10.63073,-9.52232 0.5794,-6.24744 10.07652,-2.67028 0,0 z","name":"Armenia"},"az":{"path":"m 714.65371,409.07972 -2.54432,4.33291 11.86511,15.56823 4.13137,-1.33514 6.80166,7.12914 2.94738,-12.49489 7.38105,1.18399 -0.30229,-3.57717 -12.14221,-10.63073 -2.3176,6.24745 -15.82015,-6.42379 0,0 z","name":"Azerbaijan"},"cy":{"path":"m 643.61421,464.8029 3.09854,2.24203 -9.59789,9.09406 -4.58482,-0.15115 -3.40083,-2.39317 0.45344,-4.45886 6.95281,-0.45345 7.07875,-3.87946 0,0 z","name":"Cyprus"},"gb":{"path":"m 399.03178,261.35787 -4.61001,6.978 1.83896,2.79623 h 10.63074 v 4.6604 l -2.77105,3.72831 1.83897,9.77423 5.99553,11.63838 4.61001,10.70631 7.38105,2.79624 3.22449,5.59247 -0.45344,5.11383 -4.61001,2.79624 -0.45345,2.3176 3.22449,1.86416 -2.77104,3.72831 -6.47417,2.79624 -12.4697,-1.38553 -19.4225,8.84215 -6.47417,-3.24967 18.49043,-10.70631 -2.3176,-1.38552 -9.69866,-0.93208 5.99553,-8.84215 0.93208,-7.45663 7.85969,-0.93208 -1.38552,-14.43462 -9.24521,-0.45344 -2.77105,-3.24968 0.45345,-10.70631 -5.54209,0.45344 5.54209,-18.61638 10.17729,-7.45662 3.27487,3.22448 0,0 m -19.39731,31.21204 -8.31314,0.93208 -0.45344,7.45663 5.54209,3.72831 5.99553,-1.38552 2.3176,-4.18176 -5.08864,-6.54974 0,0 z","name":"United Kingdom"},"ie":{"path":"m 382.38032,305.36709 -2.29241,15.11479 -20.32939,7.45663 h -6.47416 l -4.61001,-3.24968 v -2.79624 l 10.17729,-6.52454 -2.77105,-5.59248 0.45344,-7.91007 8.79177,0.45345 4.03061,-9.47194 -0.52902,8.4139 6.82685,5.41613 6.72608,-1.30995 0,0 z","name":"Ireland"},"se":{"path":"m 529.01894,149.25654 4.9375,4.55963 h 9.24521 l 5.08864,9.77423 1.38553,16.75222 -12.4697,8.84215 v 8.84215 l -8.79177,12.11702 -5.08865,0.45344 -6.92761,11.63839 0.45345,11.18494 12.01625,8.84215 -0.93208,5.11384 -4.61001,6.97799 -6.92761,6.04591 0.45345,20.0271 -10.63074,3.72831 -3.70312,7.91007 h -5.08864 l -2.77105,-13.95598 -11.56281,-17.73469 9.49713,-15.89571 0.65497,-39.27326 6.54974,-3.60236 1.58705,-22.47064 18.66676,-26.72799 8.96811,-3.14891 0,0 m 1.93973,114.84719 -5.31536,4.20695 2.67027,6.17187 4.71078,-4.58482 -2.06569,-5.794 0,0 z","name":"Sweden"},"fi":{"path":"m 551.86746,180.393 5.2146,2.29241 3.22449,6.04591 -3.22449,4.18176 -16.17282,17.6843 -2.77104,9.32079 3.70312,13.50254 12.4697,9.32079 16.62626,-7.91008 13.40178,-1.86415 12.4697,-20.0271 -9.24521,-21.89124 -8.79177,-20.95918 1.38552,-13.50254 -5.54209,-0.93208 -1.4359,-9.8498 -7.45663,-12.1674 -8.26275,5.71843 -3.24968,13.27582 -8.76657,-5.26499 -12.1926,-2.97257 -2.72066,3.1741 4.68558,4.23214 8.53986,-0.15115 6.87723,11.10937 1.23437,17.63392 0,0 z","name":"Finland"},"lv":{"path":"m 580.28326,267.12668 -17.25605,-2.79623 0.37787,9.64827 15.99648,9.77423 6.54974,-1.91454 -0.37787,-7.35586 -5.29017,-7.35587 0,0 z","name":"Latvia"},"lt":{"path":"m 561.99437,275.51539 -5.41613,-0.12596 -7.43144,7.10395 h -6.29783 l 0.37787,8.89254 -3.7787,6.97799 13.60331,0.12596 3.90465,-0.50383 3.90466,4.71078 8.94291,-0.37787 8.56505,-10.90784 -0.50383,-6.47417 -15.87052,-9.42155 0,0 z","name":"Lithuania"},"by":{"path":"m 561.6165,304.71212 3.77869,6.22225 -1.51147,4.96269 0.25191,3.92985 1.38552,4.71077 7.80931,-4.43367 9.69865,0.25191 6.80166,2.79624 h 17.25604 l 5.03827,-12.06664 3.02295,-4.55962 v -3.04815 l -10.83226,-15.24075 -9.5727,-3.80388 -7.8093,-0.8817 -6.80166,2.16645 0.25191,6.85204 -9.44674,11.94068 -9.32078,0.20153 0,0 z","name":"Belarus"},"pl":{"path":"m 563.6318,326.04916 2.14126,3.92985 0.50383,4.18175 -1.76339,4.0558 -4.03061,7.75893 -3.40083,1.53667 -4.40848,-1.91454 -2.64509,0.12595 -6.42378,2.41837 -7.30548,-2.16645 -11.83992,-8.38871 -11.588,-6.22225 -4.66039,-7.10395 -0.8817,-16.75222 9.06887,-7.88488 11.83992,-3.92985 4.40848,-0.50382 -1.76339,3.55197 1.13361,1.38552 19.92632,0.37787 4.28253,-0.12595 7.05356,10.80707 -1.76339,4.43367 0.75574,5.2146 1.36033,5.2146 0,0 z","name":"Poland"},"it":{"path":"m 478.23326,423.338 -6.6757,3.37564 0.8817,13.02391 5.34055,0.90688 4.00542,-3.82907 v -12.34375 l -3.55197,-1.13361 0,0 m -13.32621,-41.31375 -1.56186,3.95504 0.42826,4.30771 6.02072,7.02838 9.47193,-0.32749 20.90879,24.28443 13.0491,3.77869 7.70854,7.28029 1.83897,16.60108 4.13137,-2.41837 3.57717,-9.04368 -0.8817,-6.49936 6.12149,-0.55421 0.8817,-3.67793 -17.25605,-8.26275 -16.37435,-16.09725 -6.52455,-9.62308 -1.58706,-9.14444 8.33833,-1.99012 -2.14126,-6.02072 -5.11384,-4.30771 -4.40848,-0.20153 -6.14668,1.68781 -5.794,8.11161 -3.50159,2.3176 -5.41614,-3.32526 -5.76881,2.14126 0,0 m 50.81088,65.59818 -3.65274,-1.96492 -12.4697,1.96492 0.42825,3.37563 11.21014,5.64286 1.68781,1.83896 2.94739,0.42826 -0.15115,-11.28571 0,0 z","name":"Italy"},"fr":{"path":"m 478.91342,407.16518 -4.9123,4.9375 -0.45345,4.48405 4.00542,2.46875 1.56186,-0.22672 0.8817,-6.52455 -1.08323,-5.13903 0,0 m -43.90845,-71.19064 -5.56728,1.36033 -11.13456,12.11702 -3.35045,0.22672 -4.45886,-3.14891 -2.897,0.68016 -2.21683,6.9528 -16.27359,0.45345 0.45344,3.60236 11.13456,7.40624 12.92315,10.32844 -0.22673,12.34374 -6.90242,12.11702 14.93845,7.17952 15.16517,0.45345 4.68558,-5.39094 9.5727,0.22672 2.67028,2.46875 9.5727,-0.68017 4.91231,-6.29783 -6.24745,-7.40624 -0.45344,-4.71078 1.33514,-5.16421 -3.12373,-4.48406 -5.34055,1.56186 -0.68017,-4.03061 11.81473,-13.0239 v -7.85969 l -7.80931,-4.48406 -4.00542,-0.68016 -18.49042,-12.11702 0,0 z","name":"France"},"nl":{"path":"m 459.41535,309.7 -11.41167,5.61766 2.41837,2.19165 0.25191,5.61766 -2.41836,-0.47864 -2.67028,-4.15656 -6.3734,10.10171 9.79942,2.0405 3.65274,3.85427 1.93973,0.0504 1.28476,-8.71619 6.17187,-2.59471 -2.64509,-13.52773 0,0 z","name":"Netherlands"},"be":{"path":"m 438.05312,330.48283 -1.61225,4.03061 17.33163,11.43686 4.98787,1.18399 0.17634,-5.41613 -4.35809,-4.88712 h -2.67028 l -3.65274,-4.15656 -10.20248,-2.19165 0,0 z","name":"Belgium"},"de":{"path":"m 462.06044,308.71754 8.99329,-1.4611 v -6.34821 l 7.53221,-1.23437 4.13137,4.15656 4.3581,0.47864 6.80165,-2.94738 6.07111,1.71301 5.34056,4.6352 0.73054,17.35681 5.34056,7.10395 -7.02837,0.98246 -11.66358,7.33067 0.98246,2.44356 10.4292,9.77423 -0.73054,4.88711 -9.69866,4.88712 -8.9933,0.25191 -2.19164,4.6352 h -4.61001 l -2.19165,-4.88711 -8.01083,-1.96493 -0.25192,-8.06122 -6.80165,-4.6352 0.73055,-5.86957 -4.61001,-6.34821 1.20918,-8.31313 6.29783,-2.94739 -2.16645,-15.61861 0,0 z","name":"Germany"},"dk":{"path":"m 476.24314,267.45417 -10.45439,11.56281 -0.37787,7.53221 4.76116,12.41931 7.45663,-1.41071 -0.93208,-10.1521 5.13903,-5.74362 -0.10077,-4.50924 -3.62755,-9.39636 -1.86416,-0.3023 0,0 m 11.76435,20.50573 -2.3428,-0.10077 -3.07334,2.82143 0.37787,4.40848 7.28029,0.20153 0.37787,-4.98788 -2.61989,-2.34279 0,0 z","name":"Denmark"},"ch":{"path":"m 466.5193,362.87886 -10.98341,11.68877 0.22672,1.18399 4.50924,-1.41072 4.0558,5.64286 6.85204,-2.41837 4.73597,3.67793 1.93973,-1.10841 5.84438,-9.16964 -1.48628,-1.41071 -5.76881,-0.15115 -2.79624,-5.71843 -7.12914,-0.80612 0,0 z","name":"Switzerland"},"cz":{"path":"m 505.61621,351.51758 h 7.48182 3.67793 l 5.97034,4.25733 11.05899,-9.19483 -10.7315,-7.65816 -10.63073,-5.13903 -7.28029,1.30995 -9.87499,6.34821 10.32843,10.07653 0,0 z","name":"Czech Republic"},"sk":{"path":"m 524.28297,357.21081 1.73821,1.53667 0.22672,2.6199 19.22097,-0.42825 14.2079,-6.12149 -0.22673,-6.22226 -2.72066,1.20919 -3.90465,-2.09088 -2.39317,-0.10077 -6.29783,2.51913 -8.56505,-2.06568 -11.28571,9.14444 0,0 z","name":"Slovakia"},"at":{"path":"m 485.96699,364.74301 -1.63743,3.40083 1.41071,2.41837 5.86957,-1.20919 h 4.98788 l 5.41614,4.58482 11.51242,-2.09088 8.46429,-5.03826 2.16645,-3.40082 -0.32749,-4.38329 -7.60777,-5.69324 -10.20249,0.10077 -0.8565,5.794 -10.7315,5.23979 -8.46428,0.2771 0,0 z","name":"Austria"},"hu":{"path":"m 526.55019,363.43307 -2.92219,4.58482 0.22672,7.00318 4.66039,2.39317 14.33386,0.42826 19.97671,-16.8278 0.10077,-3.72831 -2.16646,-1.08323 -14.43462,6.54974 -19.77518,0.68017 0,0 z","name":"Hungary"},"si":{"path":"m 521.66308,369.45379 -6.39859,3.82908 -11.94069,2.6199 2.39318,6.90241 8.36351,0.10077 7.70854,-6.44898 -0.12595,-7.00318 0,0 z","name":"Slovenia"},"hr":{"path":"m 523.72877,377.43944 -8.89254,7.33067 h -9.01849 l -1.08322,6.34821 4.13137,1.08322 2.06569,-3.07334 3.24968,2.84662 2.5947,9.06887 17.81026,8.31314 1.76339,-2.01531 -18.06217,-18.64157 1.83897,-3.40083 17.15528,-0.65497 1.7382,-5.46651 -11.18494,0.32748 -4.10618,-2.06568 0,0 z","name":"Croatia"},"ba":{"path":"m 521.66308,386.96175 -0.93208,1.53667 16.90337,17.43239 6.19706,-9.11926 -0.22672,-3.60235 -5.41613,-6.57494 -16.5255,0.32749 0,0 z","name":"Bosnia and Herzegovina"},"mt":{"path":"m 516.14618,466.38995 -4.20695,0.85651 0.15115,4.66039 3.7787,1.25957 1.68781,-1.41072 -1.41071,-5.36575 0,0 z","name":"Malta"},"ua":{"path":"m 573.98543,321.99336 -7.30548,4.10618 1.81378,7.75893 -6.75128,14.23309 0.0504,6.27263 3.1741,2.01531 20.35458,1.00765 5.69324,-4.71077 6.09629,2.04049 8.74139,11.66358 -6.39859,11.48724 7.60777,2.21683 9.95057,-11.46204 5.69324,1.03284 5.29017,3.67793 -4.66039,6.14668 6.29783,9.82461 h 6.70089 l 3.45121,-6.54974 7.10395,-1.4359 0.20153,-5.31537 -13.20025,-2.0405 0.40306,-5.71842 h 12.79719 l 13.80483,-11.05899 6.0963,-5.31537 1.00765,-16.77741 -27.20661,-2.44356 -11.15975,-15.74456 -7.70854,-2.64509 -9.34598,0.40306 -4.20695,10.40401 -19.1454,0.25191 -6.22225,-2.87181 -9.01849,-0.45344 0,0 z","name":"Ukraine"},"md":{"path":"m 587.03453,358.67191 7.80931,12.01625 -0.65498,6.80166 2.79624,0.12595 6.62531,-11.21013 -7.96045,-9.87499 -4.50925,-1.86416 -4.10618,4.00542 0,0 z","name":"Moldova"},"ro":{"path":"m 565.44558,358.3948 -0.65498,3.72832 -14.58577,12.14221 12.1926,17.88583 7.8093,5.46652 h 14.05676 l 4.6352,-3.87947 6.22225,-0.80612 4.6352,2.79624 8.21237,-9.34598 -1.58705,-4.68558 -8.33833,-2.14126 -5.69323,-0.27711 0.2771,-8.01084 -7.55739,-11.89029 -19.62403,-0.98247 0,0 z","name":"Romania"},"rs":{"path":"m 548.74374,375.87757 -5.16422,3.87947 h -2.51913 l -1.71301,5.34055 6.0963,7.07876 0.40306,5.61766 -7.5574,10.68112 1.05804,3.1993 4.38329,0.80612 3.45121,-4.68558 1.86415,-0.12596 3.17411,3.07334 9.67346,-2.94738 -0.80612,-13.75446 -12.34374,-18.16294 0,0 z","name":"Serbia"},"bg":{"path":"m 563.58142,395.65275 0.40306,12.54528 4.23214,8.81696 15.89572,0.2771 7.15433,-5.06345 7.02838,-2.79624 -1.71301,-8.01084 1.58705,-4.28252 -3.57717,-1.86416 -4.9123,0.40306 -3.85427,3.87947 -16.17282,0.12595 -6.07111,-4.03061 0,0 z","name":"Bulgaria"},"al":{"path":"m 544.88947,414.21875 v 11.61319 l 3.32525,6.27264 2.39317,-0.2771 4.10619,-7.48182 -2.39318,-3.35045 -0.93207,-8.28794 -3.17411,-2.94738 -3.32525,4.45886 0,0 z","name":"Albania"},"mk":{"path":"m 562.27147,409.81027 -8.48947,2.79624 0.40306,7.20471 1.99011,2.54432 10.07653,-4.68558 -3.98023,-7.85969 0,0 z","name":"Macedonia"},"gr":{"path":"m 551.66593,433.96874 -0.2771,3.35044 11.66357,5.86958 5.56728,2.14126 -2.92219,3.07334 -6.49936,0.65497 -0.93208,2.94739 2.24203,5.06345 7.28029,3.87946 3.1741,0.27711 0.40306,-8.69101 4.76116,-5.74362 -12.99871,-15.3667 1.71301,-5.2146 3.04814,-0.12595 4.63521,3.72831 2.92219,-1.46109 0.93208,-5.21461 13.65369,0.12596 0.52901,-8.01084 -5.69323,4.00542 -16.70184,-0.40306 -10.85746,5.61766 -5.64285,9.49713 0,0 m 25.31727,32.72351 4.10618,0.12596 1.71301,2.54432 h 5.97034 l 3.98023,-1.4611 1.33514,1.61225 -2.64509,3.4764 -11.66358,0.40306 -2.11607,-2.79624 -2.24202,-1.33514 1.56186,-2.56951 0,0 z","name":"Greece"}}});
--- /dev/null
+/** Add World Map Data Points */
+jQuery.fn.vectorMap('addMap', 'north-america_en', {"width":950,"height":550,"paths":{"mx":{"path":"m 330.70592,371.79351 8.52959,26.86025 -3.97341,2.22511 0.44149,5.3332 7.50533,5.77469 v 10.68406 l 9.27129,8.90044 -3.97341,-26.24217 -5.29788,-17.35939 1.32447,-12.00853 4.4149,0.44149 1.76596,4.00873 -1.76596,10.22491 22.95748,44.92603 v 16.01726 l 18.54259,21.79195 20.30854,9.34193 8.38831,-4.89171 11.92023,9.78342 7.06384,-7.11682 -3.09043,-8.01745 10.15428,-3.10809 3.09043,1.78361 3.09043,-3.10809 h 4.85639 l 8.8298,-15.57577 -4.4149,-4.00872 -17.21811,4.00872 -3.97342,11.56704 -10.15427,1.78362 -11.92023,-4.89171 -5.29788,-16.90024 4.00873,-21.31514 -8.19406,-5.10362 -3.90277,-20.46748 -3.26702,-1.39511 -5.96895,6.05724 -6.85193,-3.65553 -2.68426,-13.65088 -27.14281,-2.84319 -14.02172,-10.54279 -13.35066,0.68873 0,0 z","name":"Mexico"},"gl":{"path":"m 655.00687,62.11471 -2.40171,3.832134 4.32661,4.326603 -1.9249,4.326603 6.2515,8.158736 7.68193,-2.401706 10.08363,-0.953618 11.53172,12.485339 7.68193,20.644079 -6.23384,12.96215 8.63554,-1.44809 4.80342,2.87851 0.4768,6.2515 -10.56044,0.47681 5.75703,5.75703 7.20512,1.44809 -15.84066,21.12089 -1.9249,12.96214 3.35532,10.56045 -2.4017,6.2515 4.3266,13.43895 8.15874,9.13002 2.4017,-0.47681 5.28023,-1.44809 0.4768,7.68193 3.35533,4.80341 6.23384,-0.47681 4.80341,-17.76556 14.41024,-17.76556 21.61535,-8.63555 13.43896,-16.81194 6.23384,2.87852 h 12.96215 l 10.56044,-10.56044 12.96215,-5.28023 1.44809,-8.15873 -8.15874,-7.20512 -7.20512,-2.40171 -3.84979,-10.08363 9.13001,-5.28022 14.41024,7.68193 4.80341,-5.28023 -7.68193,-4.3266 16.33514,-22.092161 -2.87852,-9.606824 -7.68193,-0.47681 2.87852,-8.635545 9.60682,-4.326603 19.69046,-17.288752 -5.75703,-6.233839 -22.09216,1.924896 -11.53172,11.531721 6.7283,-14.887045 -7.68192,-1.924897 -4.32661,7.681927 -6.23384,-5.280221 -17.28875,1.924897 4.80342,-7.681928 28.326,-0.953618 -7.20512,-9.606824 -30.72771,-5.757031 -12.48534,1.924897 0.47681,6.251499 -12.96215,-4.326602 0.47681,-4.326603 -9.13001,1.924897 -1.9249,4.803412 9.60682,3.355324 -10.08363,7.205118 -7.20512,-8.158736 -10.08363,-2.878516 -1.44809,7.681928 h -10.08363 l -3.84979,-8.158737 -15.84067,-2.401706 -8.63554,4.326603 -0.47681,5.757031 -11.03726,-1.448088 -6.7283,2.878515 0.47681,6.728309 v 3.355325 l -12.48534,2.401706 -5.75703,-3.832134 -3.8498,6.23384 5.75703,6.251499 12.00853,-1.448087 0.95362,3.849793 -9.13001,4.326603 -8.14108,-3.885113 0,0 m 38.4273,74.91204 2.87851,4.3266 -1.44809,5.28022 h -2.87851 l -3.8498,-4.3266 0.95362,-3.35533 4.34427,-1.92489 0,0 m 120.04998,-12.00853 8.15873,2.4017 -0.47681,6.72831 -8.63554,-4.3266 -1.9249,-2.40171 2.87852,-2.4017 0,0 z","name":"Greenland"},"us":{"path":"m 210.05551,67.90706 6.11022,11.425763 3.92044,-0.88298 v -3.955751 l -10.03066,-6.587032 0,0 m -34.45388,100.5008 -0.30022,5.31554 3.81448,-0.88298 v -2.36639 l -3.51426,-2.06617 0,0 m -5.86299,2.36639 -7.62895,3.84979 1.18319,4.13235 2.9315,-2.36639 5.86299,-2.6666 -2.34873,-2.94915 0,0 m -31.69899,5.01532 -5.28022,-1.18319 -0.88298,2.36639 0.58277,4.43256 5.58043,-5.61576 0,0 m -11.16087,-0.28255 -4.99767,-2.06617 -1.76596,3.24936 3.23171,3.24937 3.53192,-4.43256 0,0 m -17.30641,-4.73277 -2.34873,-3.24937 -2.34872,0.88298 v 4.43256 l 2.64894,1.76596 2.04851,-3.83213 0,0 M 90.5,149.77698 l 2.931494,2.06617 -0.88298,2.36639 H 90.5 v -4.43256 l 0,0 m 15.06364,263.11042 -0.24723,4.11469 3.60256,2.41937 2.15447,-1.9249 -5.5098,-4.60916 0,0 m 9.34193,6.05725 -3.35532,2.41936 2.87851,3.62022 3.35533,-2.89617 -2.87852,-3.14341 0,0 m 6.72831,5.79235 -2.87852,3.86745 0.95362,2.41937 4.07937,-1.9249 -2.15447,-4.36192 0,0 m 4.78575,7.48767 -1.67766,9.6598 1.67766,3.62022 5.5098,-1.69532 2.87851,-4.83873 -6.00426,-5.56278 -2.38405,-1.18319 0,0 m 440.14795,37.80921 -4.66214,-1.5717 -3.74383,2.34872 1.87191,2.18979 6.37512,0.93596 0.15894,-3.90277 0,0 M 252.3326,52.967036 l -14.81641,3.514261 3.05512,16.688325 16.12321,4.397241 0.86532,3.514261 -23.96408,7.470012 -13.50959,22.392374 4.78575,23.71685 7.84086,5.26256 6.11023,-5.70405 1.7483,3.51426 -7.41704,8.77682 -28.76749,13.17407 -18.31301,4.39724 -0.44149,6.58703 42.27709,-12.29108 17.43003,-4.83874 16.12322,-19.76109 17.87151,-11.84959 -9.14767,15.36385 10.03065,1.32447 17.0062,-7.47001 3.05511,12.29108 11.7613,2.63128 12.20278,11.8496 0.86533,8.77682 -1.74831,2.18979 2.17214,8.33533 h 3.05511 l 0.44149,-14.05704 h 3.47894 l 0.86532,34.68346 8.72384,-7.47001 -6.11022,-36.00793 h -9.14767 L 316.80781,141.6359 366.06044,58.194278 317.2493,19.996557 262.76943,30.53934 l -2.17213,16.688325 11.76129,7.028522 -4.36192,11.425763 -15.66407,-12.714914 0,0 m 98.27569,200.348194 -1.76596,7.09916 -6.1632,-3.99107 h -3.07277 l -1.76596,7.54065 -21.56238,48.31668 5.72172,42.10049 7.04618,3.54958 1.32447,11.53172 h 14.51619 l 14.0747,10.63108 27.70792,2.6666 3.07277,14.18066 4.39724,3.10809 6.16321,-6.19852 4.83873,2.20745 4.39724,20.37918 7.47001,4.87406 6.1632,-11.53173 18.91344,-13.73917 12.30874,5.75703 10.56044,0.88298 0.44149,-6.64001 21.98621,0.44149 4.39724,4.87405 0.88298,11.07257 -2.63128,6.19853 3.07277,10.63108 h 6.60469 l 6.60469,-10.18959 -2.63128,-4.87405 -2.63128,-10.63109 3.95575,-11.97321 18.03046,-15.50513 13.63321,-3.99107 -1.76596,-12.85619 18.91343,-20.39684 18.91344,-3.10809 -3.07277,-10.61342 18.47194,-10.63108 v -14.18066 l -1.76596,-0.88298 -6.60469,2.20745 -0.88298,8.68852 -21.95089,0.26489 -17.20045,11.42577 -27.00153,8.8298 -4.30895,-5.28022 12.25577,-18.54259 -6.05724,-5.77469 -4.11469,-7.84086 -8.52959,-6.85193 -9.27129,-0.77702 -17.51833,-11.95555 -124.57084,-20.5028 0,0 z","name":"United States of America"},"bb":{"path":"m 586.02846,499.68435 -2.17213,1.57171 1.71298,3.14341 2.80788,-1.57171 -2.34873,-3.14341 0,0 z","name":"Barbados"},"tt":{"path":"m 586.32867,511.92246 -1.87191,1.73064 -2.03086,0.31787 v 2.50767 l 3.74384,3.44362 1.55404,-2.50767 0.93596,-2.82553 -0.31787,-2.34873 -2.0132,-0.31787 0,0 z","name":"Trinidad and Tobago"},"do":{"path":"m 552.54585,468.93898 -9.34193,-6.11022 -4.4149,-1.50106 -1.4834,10.59576 1.55404,2.98447 2.03085,-2.34873 5.91597,-1.5717 5.13895,1.09489 0.60042,-3.14341 0,0 z","name":"Dominican Republic"},"ht":{"path":"m 530.91284,460.00323 6.0749,0.63574 -0.72404,7.45235 -0.60043,3.92044 -7.0815,-0.38852 -1.25383,1.88958 -2.17213,-0.15893 -0.77702,-4.07937 7.47001,-0.61809 -0.45915,-4.2383 -3.42596,-1.41277 2.94915,-3.00213 0,0 z","name":"Haiti"},"cu":{"path":"m 477.91637,445.0632 v 2.24277 l 9.39491,0.1766 4.43256,-2.57831 0.68872,1.88958 9.21832,2.24277 8.19405,7.39938 -1.87192,2.5783 0.33554,2.93149 6.83426,1.71298 6.83427,-3.09043 3.07277,-3.09043 -4.43256,-2.24277 -22.86919,-13.4213 -8.01746,-0.86532 -11.81427,4.11469 0,0 z","name":"Cuba"},"bs":{"path":"m 511.04579,431.30637 -2.22511,-0.68872 -0.1766,4.29128 2.73724,2.7549 1.87192,-2.7549 -2.20745,-3.60256 0,0 m 4.43256,6.71065 -3.07278,1.71298 2.89618,4.13235 1.53639,-2.06618 -1.35979,-3.77915 0,0 m 9.90703,3.09043 -3.24936,-0.1766 0.33553,2.06618 2.38405,3.44362 2.04851,-2.24277 -1.51873,-3.09043 0,0 m -1.53638,-4.11469 -5.29788,-2.24277 -1.02426,-5.3332 2.04851,-0.86532 2.04852,4.13235 2.04851,1.55404 0.1766,2.7549 0,0 m -5.12129,-10.84299 -2.73724,-0.68873 -0.51212,-3.44362 -2.89618,-1.02426 1.87192,-1.88958 3.4083,1.20086 2.56064,1.55404 -1.69532,4.29129 0,0 z","name":"Bahamas"},"jm":{"path":"m 509.84493,467.43792 -6.14554,1.55404 v 1.71298 l 3.5849,2.06618 h 3.7615 l 2.38404,-2.7549 -3.5849,-2.5783 0,0 z","name":"Jamaica"},"ca":{"path":"m 447.68313,37.073393 0.38851,7.099161 -14.09236,14.604491 3.53192,11.831934 10.17193,-2.754898 5.88065,-8.688524 14.86938,-5.527456 12.13215,-0.794682 -9.39491,-10.26023 -4.69745,3.549581 -3.53192,-1.183194 -1.96022,-4.344262 -4.30894,-4.344263 -8.98874,0.812342 0,0 m 18.40131,-20.90897 -3.12575,5.527456 15.27555,5.527456 5.47448,-8.282354 2.34873,5.527456 h 3.92043 l 7.43469,-8.282354 -9.0064,-2.366387 -3.53192,-2.754898 -4.69745,4.732774 -14.09236,0.370851 0,0 m 26.63068,11.054912 -12.13215,5.121285 v 3.938091 l 15.66407,5.915967 -3.53192,3.938092 2.34872,5.121284 9.78342,-4.344262 h 8.22938 l 3.92043,6.304478 6.65767,-6.710649 -1.5717,-6.322138 -5.47448,1.977876 -0.77702,-7.893843 2.73724,-4.732773 h -2.73724 l -4.30895,2.754898 -1.96021,1.571704 1.18319,5.527456 -3.12575,2.366387 -4.69745,-0.388511 -1.1832,-7.099161 -9.02405,-7.046181 0,0 m 16.05258,-12.238105 -1.1832,3.938091 7.4347,3.54958 5.47447,-3.161068 -0.38851,-2.366387 -11.33746,-1.960216 0,0 m 5.86298,-6.7106493 -5.47447,1.9778753 0.38851,2.754898 12.13215,-0.794682 -0.38851,-2.7548979 -6.65768,-1.1831934 0,0 m 26.24217,6.7106493 -0.77702,2.754898 -1.96021,2.754898 v 3.938091 l 7.43469,-1.183193 7.8232,6.710649 h 2.73724 v -6.710649 l -7.8232,-8.688525 -7.4347,0.423831 0,0 m 19.97302,7.893842 3.12575,3.549581 -2.73724,4.732773 1.96021,5.121285 8.61789,-4.732774 v -3.54958 l -5.08597,-5.915967 -5.88064,0.794682 0,0 m 11.35512,-9.077036 0.38851,6.304479 h 10.5781 l 2.73724,2.366386 -0.38851,2.754899 -9.39491,1.183193 6.65767,9.077036 9.0064,1.571705 12.52066,-5.527456 -18.0128,-27.231108 -5.47447,3.5495802 0.38851,4.7327738 -6.26916,-2.366387 -2.73724,3.584899 0,0 m -91.22951,44.590498 -14.86938,3.938091 -8.61789,7.505332 0.77702,8.282354 15.66407,4.732773 -3.53192,7.893843 -11.35513,-7.099161 -3.12575,5.915967 7.4347,5.121285 -0.38851,8.282352 11.35512,3.16107 13.70385,-0.79468 2.34873,-4.34426 10.17193,11.44342 7.04618,-2.36639 1.1832,-7.89384 5.08596,3.54958 0.77702,-7.893843 -6.26915,-3.938091 0.38851,-24.847061 -5.47448,-4.344263 -5.86299,7.893843 -16.44109,-14.198321 0,0 m 47.76923,17.35939 -5.08597,-2.366387 -2.73724,3.54958 5.47448,8.688525 0.38851,8.282354 11.74364,-7.099161 V 76.542606 l 4.30894,-4.344262 -4.30894,-3.161069 h -7.04618 l -2.73724,6.710649 0,0 m 25.05897,-3.54958 -8.22937,6.710649 1.96022,8.282353 h 5.08596 l 2.34873,-4.344262 3.53192,3.54958 3.53192,-0.388511 9.39491,-7.893842 -17.62429,-5.915967 0,0 m -0.79468,-13.032787 -1.96021,3.938091 8.61788,3.161069 2.34873,-3.54958 -9.0064,-3.54958 0,0 m -5.08596,-14.993003 -8.61789,1.183193 -5.08597,4.732774 9.39491,0.388511 -2.73724,7.09916 1.96022,3.161069 2.73724,-0.388511 6.65767,-10.648741 -4.30894,-5.527455 0,0 m 14.88704,-2.754898 -4.69745,1.571704 0.77702,6.304478 7.8232,5.121285 0.38852,3.938092 -2.34873,2.366387 1.18319,7.893842 30.14494,9.854059 8.22938,2.754898 8.22937,-7.099161 -9.78342,-7.893842 -9.00639,2.366387 -12.52066,-1.183194 -4.69746,-4.732773 -1.18319,-13.015128 -7.8232,-3.938091 -4.71512,-4.308943 0,0 m 24.65281,41.040917 -8.61789,-0.794682 -10.17193,3.938091 -5.47448,7.487672 1.57171,20.520456 16.8296,0.79468 16.05258,7.89385 11.35512,13.01512 8.61789,-0.38851 -2.34873,12.22045 -7.8232,13.01513 -8.61789,3.93809 -6.26916,-1.1832 -3.12575,-2.75489 -4.69745,6.30447 1.96021,6.30448 6.65768,0.38851 8.22937,-3.93809 7.04618,18.15407 17.62429,11.44343 12.13214,-15.38152 -10.17193,-16.5647 5.88065,-6.71065 8.22937,13.80981 14.86939,-13.01513 -2.73724,-5.91597 -10.17193,3.16107 -7.04618,-19.33727 6.65767,-11.03725 -13.31534,-14.19832 -7.43469,5.12129 -7.04619,-15.38152 -14.86938,1.97788 -3.92043,-18.542585 -12.13215,8.282354 -1.18319,10.260231 h -6.65767 l 0.77702,-9.077038 9.34193,-13.809809 0,0 m 17.62428,7.09916 -3.12575,3.161069 2.73724,4.344263 12.92683,1.571704 -8.22938,-8.688524 -4.30894,-0.388512 0,0 M 592.56251,44.967236 v 3.54958 l -8.61788,1.977875 2.34872,3.938092 9.78342,3.938091 10.96662,1.183194 7.8232,5.527456 7.82321,-4.344263 -5.47448,-5.527456 h 7.04618 l 4.30894,-4.732773 10.57811,-1.571705 V 46.53894 l -5.88065,-3.938091 0.77702,-4.344262 16.44109,2.754898 24.28195,-9.465548 -9.00639,-2.754898 2.34872,-3.161069 h 18.78982 l 3.12575,-3.161069 -37.9858,-13.4212978 -9.0064,-3.1610689 -9.78342,7.0991607 -10.96662,-9.0770363 -5.88064,-0.3885112 -1.1832,7.5053315 -7.43469,-6.7106494 -8.61789,2.7548981 1.57171,4.3442623 12.92683,2.754898 -0.77702,6.304478 7.04618,4.344263 17.23577,-4.344263 0.38851,5.915967 -14.09236,6.710649 -8.61789,-6.710649 -7.8232,0.794682 7.8232,11.054912 -3.92043,1.977876 -5.88065,-5.121285 -4.30894,2.754898 3.92043,7.487671 h 6.65767 l -1.5717,7.099161 -5.47448,-0.794682 -7.04618,-7.505332 -4.66214,0.830002 0,0 m -34.89537,108.588894 -7.47001,9.39491 -0.45915,10.34853 6.53405,-3.76149 h 7.92916 l 5.59809,5.17426 5.13895,-4.23831 -17.27109,-16.9179 0,0 m 90.96461,122.20446 -18.6662,17.87152 1.87192,4.2383 22.85153,8.45895 3.26702,-5.63341 -1.87192,-9.39491 -7.47001,0.93596 -4.20298,-4.69746 6.9932,-7.04618 -2.77256,-4.73277 0,0 M 367.31428,59.624706 l 3.51426,5.315541 1.76596,7.09916 8.79448,2.20745 6.1632,-6.64001 5.28022,2.6666 14.95769,1.32447 10.56044,-4.43256 1.76596,14.622151 h 6.1632 v -6.198521 l 6.1632,0.44149 15.39918,18.171732 10.11895,6.198521 -5.28022,8.42363 2.20745,2.20745 19.76109,3.99107 0.44149,8.86512 5.28023,0.88298 1.32447,-13.29768 8.35299,-2.20745 6.1632,9.30661 13.19172,6.19852 6.60469,1.32447 4.39725,-5.31554 0.44149,-8.42363 7.9115,-4.87405 2.63128,7.09916 -7.04618,12.4147 0.88298,6.19852 3.95575,-6.19852 7.9115,-7.09916 0.44149,-9.30661 -4.39724,-7.09916 1.32447,-5.757031 10.56044,-5.31554 4.83873,3.54958 0.88298,31.027921 7.47002,-6.64001 4.39724,2.6666 -6.16321,10.63108 7.91151,1.76596 11.44342,-17.73024 9.67746,10.18959 -3.95575,18.17173 -9.67746,5.31554 -9.23597,-4.43256 -16.70599,3.54958 1.76596,5.75703 -4.39724,7.09916 -13.63321,3.10809 -15.39918,11.97322 -13.63321,18.17173 -1.76596,5.75703 9.23597,3.54958 3.51426,8.86512 12.75024,12.85619 20.2379,8.86512 -4.39724,20.37918 -0.44149,5.75703 5.28022,3.54958 7.04618,-9.30661 0.88298,-17.73024 11.00194,-0.44149 5.28022,-10.18959 0.88298,-15.50513 14.0747,-27.47834 17.58897,6.19852 9.23597,12.85619 -3.95575,12.85619 7.04618,3.99107 17.14747,-11.53172 4.83873,31.46941 15.84067,19.05471 0.44149,9.7481 -17.58897,4.43256 -8.35299,8.86512 -17.58896,-3.99107 -8.79449,-0.44149 -15.39917,11.97321 9.23597,-2.20745 11.44343,-2.20745 2.20745,2.6666 -3.07277,9.7481 0.44149,8.86513 5.28022,3.54958 5.28022,-1.32447 2.64894,-3.99107 h 3.51426 l -5.72171,10.63108 -11.00193,0.44149 -4.83874,7.09916 h -6.1632 l -1.76596,-5.31554 8.79448,-8.86512 -10.56044,3.54958 -0.47681,-15.06365 -3.03745,-1.76596 -9.23597,3.99107 -0.88298,7.54065 h -21.12089 l -18.03045,12.41471 -24.19366,7.98214 -2.63128,-3.54958 12.18513,-18.18939 -6.92257,-6.65768 -4.39724,-8.44129 -8.95342,-6.83426 -9.60682,-0.79468 -17.21811,-12.06151 -124.87106,-20.52046 -2.06617,-8.45895 -11.44342,-10.63108 v -8.86512 l 1.76596,-7.98214 -0.88298,-4.43256 -4.39724,-4.43256 -0.88298,-7.09916 11.44342,-7.98215 -7.04618,-38.10942 -9.67746,-0.44149 -8.79449,-11.53172 48.31668,-82.099494 0,0 m -43.07178,140.835334 -3.00213,5.75703 1.04192,4.07937 1.96021,1.21851 -0.45914,1.66 -2.1015,0.60043 0.60043,6.05724 2.26043,2.27809 1.80128,-1.96021 -2.26043,-5.89831 1.34213,-4.69745 3.30234,-4.39725 -2.4017,-4.07936 -2.08384,-0.61809 0,0 m 9.9247,34.50686 -2.70192,1.05958 4.96235,5.75703 1.20085,6.81661 4.96235,5.29788 4.20299,-0.75936 v -6.95789 l -5.10363,-3.17873 -7.52299,-8.03512 0,0 z","name":"Canada"},"gt":{"path":"m 432.05438,488.50582 10.47215,7.66427 10.56044,-13.12108 -1.80128,-2.71958 -3.60256,-0.12362 v -7.68193 l -2.70192,-1.64234 -8.1764,2.43703 3.12575,7.20511 -7.87618,7.98214 0,0 z","name":"Guatemala"},"hn":{"path":"m 454.4291,483.66709 16.31747,-0.61808 4.83873,5.75703 -3.01979,-0.68873 -5.81001,0.24724 -7.59363,7.13448 -3.24937,7.22278 -2.13681,-1.13022 -0.0177,-7.9115 -4.69745,-3.14341 5.36852,-6.86959 0,0 z","name":"Honduras"},"sv":{"path":"m 444.00993,496.89414 8.30002,4.13234 -0.12362,-6.55171 -4.25597,-2.59596 -3.92043,5.01533 0,0 z","name":"El Salvador"},"ni":{"path":"m 472.42423,489.54774 3.86746,0.77702 0.12361,7.92917 -4.50319,12.85619 -12.13215,-1.20086 -2.70192,-6.19852 3.60256,-7.52299 6.83426,-6.35746 4.90937,-0.28255 0,0 z","name":"Nicaragua"},"cr":{"path":"m 471.78849,512.27565 2.45468,4.80341 1.99554,2.64894 -2.68426,7.96448 -5.12129,-3.60256 -8.37065,-7.66426 v -5.06831 l 11.72598,0.9183 0,0 z","name":"Costa Rica"},"pa":{"path":"m 477.45722,520.45205 -2.5783,8.05278 8.51193,2.20745 5.28022,1.04191 0.90064,-6.23384 5.66873,-2.86085 5.03299,2.59596 1.97787,3.16107 2.40171,-0.28256 1.88958,-5.73937 -6.28682,-2.59596 -4.76809,-2.59596 -4.7681,3.24937 -5.66873,2.86085 -5.79235,-2.33107 -1.80128,-0.52978 0,0 z","name":"Panama"},"bz":{"path":"m 449.14888,472.40027 -0.0883,6.44575 h 1.48341 l 5.05064,-9.43023 h -3.42596 l -3.01979,2.98448 0,0 z","name":"Belize"}}});
--- /dev/null
+/** Add World Map Data Points */
+jQuery.fn.vectorMap('addMap', 'south-america_en', {"width":950,"height":550,"paths":{"fk":{"path":"m 534.552,493.51923 -6.16906,-0.68024 -6.14561,4.12835 4.45674,4.83204 7.85793,-8.28015 0,0 m 6.14561,-3.09626 -2.04072,6.54437 -5.81721,5.16043 0.35184,1.71233 9.92211,-3.79996 4.10489,-5.16043 -6.52091,-4.45674 0,0 z","name":"Falkland Islands"},"ec":{"path":"m 352.17758,89.293073 -11.09493,6.896216 -0.79752,10.227041 -2.22837,3.35428 6.99004,6.70857 -3.02589,3.30737 0.70369,8.44434 12.50233,2.97898 18.92941,-22.40097 -0.0469,-7.81102 -9.07767,-0.58642 -12.85417,-11.118387 0,0 z","name":"Ecuador"},"co":{"path":"m 407.37077,4.6854166 -4.83205,-0.4925868 -31.94777,26.3416682 -3.37774,9.265325 -4.36291,0.492586 1.94689,20.47754 -11.14185,27.326842 12.10356,10.250498 15.50476,0.985174 10.64926,15.622037 15.4813,0.49259 -0.49258,11.7048 h 5.79376 l 6.28634,-21.46271 -5.81721,-7.318434 1.4543,-13.651693 12.10356,-0.985174 -1.4543,-31.713211 -27.11574,-8.772737 -6.28634,-17.076345 15.50476,-21.4861694 0,0 z","name":"Colombia"},"ve":{"path":"m 399.70048,19.087718 1.03209,6.075238 7.62337,2.416021 1.73578,-11.188758 8.04559,-8.3270639 8.04558,9.4295199 18.50719,5.043151 15.66896,-3.283912 10.67271,13.159106 8.04559,5.043151 -8.81965,13.440584 2.95552,10.180128 -5.04315,6.239434 -5.23081,4.386369 -11.32949,-5.699934 -2.60368,2.62713 v 8.115955 l 8.28015,3.940695 -6.09869,6.591281 -6.09869,6.591281 -8.04559,-0.656782 -8.0925,-8.89002 -1.71232,-33.448993 -27.63178,-9.42952 -5.0197,-14.707236 5.11352,-7.646825 0,0 z","name":"Venezuela"},"gy":{"path":"m 480.83658,38.345519 16.9356,15.340562 -6.73202,7.787563 -0.5395,4.620934 8.84311,9.124585 -0.21111,8.772738 -15.38747,5.864129 -9.21842,-12.455411 1.97035,-14.965258 -3.94069,-11.141845 8.28015,-12.947997 0,0 z","name":"Guyana"},"sr":{"path":"m 499.78944,54.788537 4.78513,4.386369 7.41226,-4.597478 6.75548,0.211109 -0.86789,2.62713 -2.83824,5.911042 -0.44567,14.707236 -13.4875,5.488825 0.65678,-9.42952 -8.70237,-8.115954 0.44568,-4.17526 6.28634,-7.013499 0,0 z","name":"Suriname"},"gf":{"path":"m 520.90031,56.336667 13.72206,8.561629 -7.17769,14.261562 -2.60368,3.283912 -7.62337,-4.386368 0.21111,-15.364019 3.47157,-6.356716 0,0 z","name":"French Guiana"},"pe":{"path":"m 340.05056,121.35813 -4.55056,4.59748 0.30493,7.34189 39.73534,72.43372 41.26002,26.59969 6.38017,-10.69617 1.52467,-23.52688 -3.33082,-14.66033 -11.23568,-18.95286 -6.6851,2.13454 -3.02589,3.35428 -13.34676,-15.29365 3.33082,-18.03806 15.48131,-10.0863 -1.21974,-9.47643 -15.76278,-0.60987 -8.18633,-13.74552 -4.55056,-1.52468 0.30493,8.2567 -20.31334,24.13675 -15.17637,-3.65921 -0.93826,-8.58509 0,0 z","name":"Peru"},"bo":{"path":"m 419.05211,175.94145 19.30471,-8.42089 6.38018,0.60987 4.24563,17.73312 29.41447,9.78137 4.8555,14.98872 12.12702,1.52467 5.16043,12.83071 -3.63576,11.61098 -19.72693,1.52467 -7.27152,18.64793 -15.4813,-0.30493 -4.8555,-0.9148 -8.93693,8.67891 -4.40983,-0.42222 -15.17636,-35.16132 4.19871,-6.28635 1.47776,-24.8639 -3.75304,-14.80107 -3.91724,-6.75547 0,0 z","name":"Bolivia"},"py":{"path":"m 496.5759,238.61726 5.16043,5.62956 -0.60987,11.91592 14.87144,-0.91481 11.23567,14.37885 -0.91481,12.83071 -7.27152,11.00111 -14.87143,0.60987 -0.60987,-6.12215 4.24563,-10.08631 -14.5665,-9.17149 h -12.12701 l -9.10113,-9.78137 6.61473,-18.90595 17.94424,-1.38394 0,0 z","name":"Paraguay"},"uy":{"path":"m 516.7485,314.66329 -4.80858,5.13698 1.9938,27.63177 15.106,4.38637 19.21089,-19.2578 -31.50211,-17.89732 0,0 z","name":"Uruguay"},"ar":{"path":"m 528.73478,282.45749 4.55057,4.26909 -17.28745,25.68488 -6.07524,6.73202 2.11108,29.34411 13.34676,16.20845 -11.21221,19.56273 -8.49126,3.65922 h -9.711 l 2.72096,15.27019 -15.17637,5.20735 3.63576,12.83072 -9.10113,29.03916 11.23567,9.1715 -6.07523,14.96526 -10.32087,16.20845 5.46537,11.30604 -13.34676,2.13455 -10.93074,-13.44059 -1.82961,-41.86988 -16.98252,-71.12016 5.13698,-24.86391 -10.93074,-31.78358 7.27153,-41.26001 6.6851,-7.95176 -1.64195,-6.02833 8.58508,-7.83447 19.14052,1.31356 10.69617,11.42333 12.36159,0.21111 12.66651,7.74065 -3.72958,8.72582 0.89135,8.81965 17.94423,-0.84443 8.39743,-12.83072 0,0 m -38.82053,235.94911 0.60987,13.44058 10.32087,-0.9148 8.79619,-5.81722 -14.87143,-3.04935 -4.8555,-3.65921 0,0 z","name":"Argentina"},"cl":{"path":"m 480.81312,507.40549 -10.01593,22.00221 17.28745,1.82961 0.30494,-14.66032 -7.57646,-9.1715 0,0 m -3.40119,-3.44811 -7.52955,8.32706 -0.9148,9.78137 -14.5665,-8.25669 -15.4813,-22.30715 -4.55056,-7.95176 6.38017,-8.25669 -0.60987,-10.39124 -7.27152,-3.04935 -5.7703,-4.26908 1.21974,-5.81722 7.57645,-2.13454 1.52467,-33.61319 -11.82208,-6.73202 -7.71719,-174.96216 1.9938,-3.47157 15.106,34.83293 4.83204,0.0938 1.57159,5.55919 -6.42709,7.78757 -7.3888,41.91679 10.50852,32.27617 -4.8555,24.44169 17.12325,71.87077 1.80616,42.03408 12.26776,14.19119 12.99491,-1.89998 0,0 m -49.98584,-87.93848 -3.02589,4.57402 1.52467,7.95176 3.02589,0.30493 1.52468,-10.0863 -3.04935,-2.74441 0,0 z","name":"Chile"},"br":{"path":"m 549.30615,330.8952 14.66032,-28.19473 0.5395,-23.69109 27.3503,-17.6393 h 15.31711 l 12.03319,-20.38371 2.18146,-39.12547 -4.92587,-10.46161 28.99225,-26.45895 1.10246,-29.20336 -39.38349,-19.28126 -47.56982,-14.87143 -22.42443,-2.204914 6.02833,-12.666519 -1.64196,-19.281257 -4.90241,-1.6185 -7.24807,14.402301 -3.79995,4.761673 -9.75791,-4.315999 -32.81567,11.564063 -10.93074,-13.768975 1.75924,-14.378845 -10.32087,10.508519 -11.39986,-6.145607 -1.14937,1.6185 0.0235,4.996238 9.82828,5.277716 -14.75414,15.551671 -9.31224,-0.09383 -9.42952,-9.593716 -10.67272,0.328391 -1.31356,11.399868 6.12215,7.435722 -7.22461,23.15158 -8.44434,0.65678 -13.44059,8.49126 -3.28391,16.67759 11.65789,12.47886 2.13454,-2.41602 8.18633,-2.20491 6.99004,11.77517 20.00841,-8.58509 7.7641,0.44568 5.34809,18.92941 28.54658,9.05421 4.92587,15.106 12.15048,1.4543 5.79375,14.42576 -3.91723,12.83072 5.11352,6.70856 -0.75061,9.99248 13.6986,-1.29011 12.54924,15.8566 -0.98517,11.14185 7.43571,6.28635 -17.82695,26.99845 31.38482,17.56893 0,0 z","name":"Brazil"}}});
--- /dev/null
+/** Add Algeria Map Data Points */
+jQuery.fn.vectorMap('addMap', 'dz_fr', {"width": 600, "height": 400, "paths": {"1": {"path":"M 268.306 457.87 c 0 0 2.249 -0.725 2.249 -0.725 c 0 0 -0.496 -2.893 -0.496 -2.893 c 0 0 -3.133 -7.454 -3.133 -7.454 c 0 0 -2.249 -3.262 -2.249 -3.262 c 0 0 0.031 -6.131 0.031 -6.131 c 0 0 -1.682 -5.848 -1.682 -5.848 c 0 0 -2.49 -5.061 -2.49 -5.061 c 0 0 -6.095 -6.187 -6.095 -6.187 c 0 0 -1.521 -7.254 -1.521 -7.254 c 0 0 -4.417 -0.47 -4.417 -0.47 c 0 0 -4.163 0.675 -4.163 0.675 c 0 0 0.63 -56.826 0.63 -56.826 c 0 0 -0.259 -38.388 -0.259 -38.388 c 0 0 -8.571 -12.135 -8.571 -12.135 c 0 0 -2.714 -6.038 -2.714 -6.038 c 0 0 7.482 -7.683 7.482 -7.683 c 0 0 1.19 -2.448 1.19 -2.448 c 0 0 2.635 -0.807 2.635 -0.807 c 0 0 0.883 0.813 0.883 0.813 c 0 0 1.749 -0.209 1.749 -0.209 c 0 0 0.138 0.823 0.138 0.823 c 0 0 2.35 -1.681 2.35 -1.681 c 0 0 0.465 -8.884 0.465 -8.884 c 0 0 2.565 -6.436 2.565 -6.436 c 0 0 -1.848 -2.78 -1.848 -2.78 c 0 0 -0.051 -6.214 -0.051 -6.214 c 0 0 1.856 -3.176 1.856 -3.176 c 0 0 0.81 -10.075 0.81 -10.075 c 0 0 3.164 -5.032 3.164 -5.032 c 0 0 1.104 -3.51 1.104 -3.51 c 0 0 0.784 -10.595 0.784 -10.595 c 0 0 1.118 -4.885 1.118 -4.885 c 0 0 -4.273 -23.743 -4.273 -23.743 c 0 0 2.643 -13.284 2.643 -13.284 c 0 0 0.684 -28.618 0.684 -28.618 c 0 0 -21.085 13.188 -21.085 13.188 c 0 0 -15.816 11.178 -15.816 11.178 c 0 0 -8.624 9.693 -8.624 9.693 c 0 0 -3.966 6.909 -3.966 6.909 c 0 0 -10.189 7.171 -10.189 7.171 c 0 0 -1.53 5.245 -1.53 5.245 c 0 0 1.021 6.805 1.021 6.805 c 0 0 -0.608 2.721 -0.608 2.721 c 0 0 -5.818 4.933 -5.818 4.933 c 0 0 -11.195 0.456 -11.195 0.456 c 0 0 -13.243 3.621 -13.243 3.621 c 0 0 -6.827 9.299 -6.827 9.299 c 0 0 -6.535 4.925 -6.535 4.925 c 0 0 -1.732 3.77 -1.732 3.77 c 0 0 -6.146 7.528 -6.146 7.528 c 0 0 -3.367 10.625 -3.367 10.625 c 0 0 1.165 1.254 1.165 1.254 c 0 0 -3.322 10.957 -3.322 10.957 c 0 0 -1.78 1.059 -1.78 1.059 c 0 0 -7.687 -0.561 -7.687 -0.561 c 0 0 -3.857 1.585 -3.857 1.585 c 0 0 -2.317 1.98 -2.317 1.98 c 0 0 -7.18 9.722 -7.18 9.722 c 0 0 -3.038 6.72 -3.038 6.72 c 0 0 -14.179 -0.237 -14.179 -0.237 c 0 0 -7.204 6.951 -7.204 6.951 c -0.001 0 -12.962 4.238 -12.962 4.238 c 0 0 37.868 29.441 37.868 29.441 c 0 0 91.412 67.584 91.412 67.584 c 0 0 0.398 1.977 0.398 1.977 c 0 0 27.738 18.602 27.738 18.602 c 0 0 0.568 2.959 0.568 2.959 c 0 0 -0.822 5.766 -0.822 5.766 c 0 0 0.463 1.174 0.463 1.174 c 0 0 3.119 -0.263 3.119 -0.263 c 0 0 1.575 2.019 1.575 2.019 c 0 0 6.354 2.238 6.354 2.238 c 0 0 0.896 4.331 0.896 4.331 c 0 0 3.206 2.918 3.206 2.918 c 0 0 1.768 -0.039 1.768 -0.039 c 0 0 0.994 1.532 0.994 1.532 c 0 0 1.018 -0.565 1.018 -0.565 c 0 0 1.242 0.478 1.242 0.478 c 0 0 0.795 -0.395 0.795 -0.395 c 0 0 1.279 1.151 1.279 1.151 c 0 0 1.88 -1.958 1.88 -1.958 c 0 0 1.563 0.354 1.563 0.354 c 0 0 2.465 2.305 2.465 2.305 c 0 0 1.674 3.077 1.674 3.077 c 0 0 0 0 0 0 c 0 0 0 0 0 0","name":"Adrar"},"2":{"path":"M 251.147 52.1578 c 0 0 0.255 -1.759 0.255 -1.759 c 0 0 -1.269 -0.908 -1.269 -0.908 c 0 0 -0.683 -1.607 -0.683 -1.607 c 0 0 0.258 -1.099 0.258 -1.099 c 0 0 -0.801 0.179 -0.801 0.179 c 0 0 -0.68 -0.703 -0.68 -0.703 c 0 0 -0.004 -1.019 -0.004 -1.019 c 0 0 1.33 -0.886 1.33 -0.886 c 0 0 -1.829 -0.536 -1.829 -0.536 c 0 0 1.196 -1.169 1.196 -1.169 c 0 0 -1.496 -1.623 -1.496 -1.623 c 0 0 0.13 -1.172 0.13 -1.172 c 0 0 2.229 -1.641 2.229 -1.641 c 0 0 1.099 -2.467 1.099 -2.467 c 0 0 -4.333 0.653 -4.333 0.653 c 0 0 -2.668 -0.688 -2.668 -0.688 c 0 0 -1.591 1.201 -1.591 1.201 c 0 0 -4.207 0.314 -4.207 0.314 c 0 0 -3.056 1.182 -3.056 1.182 c 0 0 -0.989 1.688 -0.989 1.688 c 0 0 -3.115 1.248 -3.115 1.248 c 0 0 -1 3.282 -1 3.282 c 0 0 2.055 0.32 2.055 0.32 c 0 0 2.173 -0.8 2.173 -0.8 c 0 0 0.468 1.895 0.468 1.895 c 0 0 0.537 0.021 0.537 0.021 c 0 0 -0.826 1.687 -0.826 1.687 c 0 0 0.509 -0.155 0.509 -0.155 c 0 0 0.519 1.997 0.519 1.997 c 0 0 1.774 -0.663 1.774 -0.663 c 0 0 -0.347 0.243 -0.347 0.243 c 0 0 0.593 0.041 0.593 0.041 c 0 0 0.541 1.18 0.541 1.18 c 0 0 1.563 0.984 1.563 0.984 c 0 0 2.838 -0.813 2.838 -0.813 c 0 0 2.173 3.286 2.173 3.286 c 0 0 0.06 -1.414 0.06 -1.414 c 0 0 0.518 -0.333 0.518 -0.333 c 0 0 -0.384 -0.349 -0.384 -0.349 c 0 0 2.264 -0.619 2.264 -0.619 c 0 0 0.035 -0.865 0.035 -0.865 c 0 0 1.22 -1.163 1.22 -1.163 c 0 0 1.035 1.876 1.035 1.876 c 0 0 1.906 1.174 1.906 1.174 c 0 0 0 0 0 0 c 0 0 0 0 0 0","name":"Chlef"},"3":{"path":"M 311.039 126.689 c 0 0 -3.193 -5.374 -3.193 -5.374 c 0 0 -4.008 -3.915 -4.008 -3.915 c 0 0 -1.49 -1.064 -1.49 -1.064 c 0 0 -8.125 -3.061 -8.125 -3.061 c 0 0 -1.408 -2.328 -1.408 -2.328 c 0 0 -3.983 -3.588 -3.983 -3.588 c 0 0 -5.242 -1.505 -5.242 -1.505 c 0 0 -1.604 -3.201 -1.604 -3.201 c 0 0 0.146 -1.212 0.146 -1.212 c 0 0 -2.38 -6.709 -2.38 -6.709 c 0 0 -1.252 0.433 -1.252 0.433 c 0 0 0.124 -0.432 0.124 -0.432 c 0 0 -1.456 -0.758 -1.456 -0.758 c 0 0 -2.267 2.288 -2.267 2.288 c 0 0 0.026 1.448 0.026 1.448 c 0 0 -0.695 -0.262 -0.695 -0.262 c 0 0 -2.258 1.064 -2.258 1.064 c 0 0 -1.209 -0.324 -1.209 -0.324 c 0 0 -3.377 -4.766 -3.377 -4.766 c 0 0 -0.441 0.087 -0.441 0.087 c 0 0 -1.244 -3.591 -1.244 -3.591 c 0 0 -0.566 -6.331 -0.566 -6.331 c 0 0 -3.015 0.373 -3.015 0.373 c 0 0 -0.437 1.043 -0.437 1.043 c 0 0 -1.978 0.888 -1.978 0.888 c 0 0 -2.349 2.563 -2.349 2.563 c 0 0 -4.876 1.753 -4.876 1.753 c 0 0 -1.839 2.088 -1.839 2.088 c 0 0 -0.366 2.438 -0.366 2.438 c 0 0 -1.644 0.977 -1.644 0.977 c 0 0 -0.273 -1.14 -0.273 -1.14 c 0 0 -3.773 2.229 -3.773 2.229 c 0 0 0.808 1.346 0.808 1.346 c 0 0 -2.194 1.46 -2.194 1.46 c 0 0 0.863 1.461 0.863 1.461 c 0 0 -0.165 0.989 -0.165 0.989 c 0 0 2.206 0.969 2.206 0.969 c 0 0 1.613 1.795 1.613 1.795 c 0 0 3.495 -0.817 3.495 -0.817 c 0 0 1.828 1.584 1.828 1.584 c 0 0 0.565 1.551 0.565 1.551 c 0 0 -0.247 2.655 -0.247 2.655 c 0 0 1.457 0.411 1.457 0.411 c 0 0 0.124 0.991 0.124 0.991 c 0 0 1.142 1.009 1.142 1.009 c 0 0 -0.82 1.435 -0.82 1.435 c 0 0 -0.285 2.856 -0.285 2.856 c 0 0 3.122 0.287 3.122 0.287 c 0 0 -0.206 1.673 -0.206 1.673 c 0 0 3.521 1.138 3.521 1.138 c 0 0 2.073 -0.452 2.073 -0.452 c 0 0 -0.203 3.901 -0.203 3.901 c 0 0 -3.998 0.134 -3.998 0.134 c 0 0 0.641 0.886 0.641 0.886 c 0 0 -0.146 1.528 -0.146 1.528 c 0 0 3.112 6.564 3.112 6.564 c 0 0 10.825 -0.946 10.825 -0.946 c 0 0 5.37 -1.604 5.37 -1.604 c 0 0 8.55 2.039 8.55 2.039 c 0 0 -0.331 -2.903 -0.331 -2.903 c 0 0 -3.66 -2.23 -3.66 -2.23 c 0 0 7.853 -0.362 7.853 -0.362 c 0 0 0.945 -0.734 0.945 -0.734 c 0 0 0.439 0.318 0.439 0.318 c 0 0 0.417 -0.754 0.417 -0.754 c 0 0 0.305 0.512 0.305 0.512 c 0 0 0.903 -0.387 0.903 -0.387 c 0 0 2.684 1.107 2.684 1.107 c 0 0 0.77 -0.422 0.77 -0.422 c 0 0 13.076 0.901 13.076 0.901 c 0 0 0 0 0 0","name":"Laghouat"},"4":{"path":"M 377.235 49.5529 c 0 0 0.701 0.387 0.701 0.387 c 0 0 0.531 2.116 0.531 2.116 c 0 0 1.615 0.739 1.615 0.739 c 0 0 -0.772 0.688 -0.772 0.688 c 0 0 0.142 1.093 0.142 1.093 c 0 0 1.311 2.659 1.311 2.659 c 0 0 -4.046 1.621 -4.046 1.621 c 0 0 -1.879 2.798 -1.879 2.798 c 0 0 -0.624 0.112 -0.624 0.112 c 0 0 -0.659 -1.052 -0.659 -1.052 c 0 0 -0.692 -0.06 -0.692 -0.06 c 0 0 -0.333 -1.191 -0.333 -1.191 c 0 0 -0.393 -0.313 -0.393 -0.313 c 0 0 -0.6 0.601 -0.6 0.601 c 0 0 0.179 -0.579 0.179 -0.579 c 0 0 -1.313 -0.926 -1.313 -0.926 c 0 0 -0.409 1.399 -0.409 1.399 c 0 0 -1.049 0.308 -1.049 0.308 c 0 0 0.063 -2.163 0.063 -2.163 c 0 0 -1.771 -0.877 -1.771 -0.877 c 0 0 -0.118 0.548 -0.118 0.548 c 0 0 -1.816 -0.27 -1.816 -0.27 c 0 0 -0.957 2.009 -0.957 2.009 c 0 0 -1.647 -0.482 -1.647 -0.482 c 0 0 0.408 -1.016 0.408 -1.016 c 0 0 -0.614 -0.53 -0.614 -0.53 c 0 0 -4.031 0.608 -4.031 0.608 c 0 0 -0.774 -1.596 -0.774 -1.596 c 0 0 -2.106 -2.413 -2.106 -2.413 c 0 0 -1.569 -0.717 -1.569 -0.717 c 0 0 -2.67 1.215 -2.67 1.215 c 0 0 -0.353 -0.517 -0.353 -0.517 c 0 0 0.464 -0.385 0.464 -0.385 c 0 0 -0.535 -0.365 -0.535 -0.365 c 0 0 0.359 -0.917 0.359 -0.917 c 0 0 -2.605 -0.267 -2.605 -0.267 c 0 0 -0.109 -0.587 -0.109 -0.587 c 0 0 -1.551 1.313 -1.551 1.313 c 0 0 -2.433 -1.298 -2.433 -1.298 c 0 0 0.803 -2.113 0.803 -2.113 c 0 0 1.65 -0.227 1.65 -0.227 c 0 0 0.715 0.51 0.715 0.51 c 0 0 -0.213 -0.771 -0.213 -0.771 c 0 0 0.78 0.116 0.78 0.116 c 0 0 1.221 -1.532 1.221 -1.532 c 0 0 0.161 -2.791 0.161 -2.791 c 0 0 2.365 -0.863 2.365 -0.863 c 0 0 -0.381 0.438 -0.381 0.438 c 0 0 0.595 1.16 0.595 1.16 c 0 0 1.011 0.369 1.011 0.369 c 0 0 -0.465 -0.805 -0.465 -0.805 c 0 0 1.122 0.603 1.122 0.603 c 0 0 0.375 -1.067 0.375 -1.067 c 0 0 2.243 -0.16 2.243 -0.16 c 0 0 0.264 -1.443 0.264 -1.443 c 0 0 1.445 1.166 1.445 1.166 c 0 0 3.62 0.066 3.62 0.066 c 0 0 -0.201 1.256 -0.201 1.256 c 0 0 1.267 0.551 1.267 0.551 c 0 0 -0.196 0.957 -0.196 0.957 c 0 0 0.998 0.166 0.998 0.166 c 0 0 2.784 -1.372 2.784 -1.372 c 0 0 0.683 -1.773 0.683 -1.773 c 0 0 1.257 -0.076 1.257 -0.076 c 0 0 0.424 2.263 0.424 2.263 c 0 0 0.736 0.045 0.736 0.045 c 0 0 0.649 2.12 0.649 2.12 c 0 0 1.024 1.332 1.024 1.332 c 0 0 2.675 0.939 2.675 0.939 c 0 0 -0.031 1.478 -0.031 1.478 c 0 0 2.814 -0.213 2.814 -0.213 c 0 0 -0.354 -1.537 -0.354 -1.537 c 0 0 0.815 -0.485 0.815 -0.485 c 0 0 0 0 0 0 c 0 0 0 0 0 0","name":"Oum El-Bouaghi"},"5":{"path":"M 354.598 79.5648 c 0 0 -0.634 -2.146 -0.634 -2.146 c 0 0 0.812 -0.795 0.812 -0.795 c 0 0 -0.611 -0.482 -0.611 -0.482 c 0 0 0.499 -0.58 0.499 -0.58 c 0 0 -1.347 -2.257 -1.347 -2.257 c 0 0 -0.802 -0.146 -0.802 -0.146 c 0 0 0.401 -0.844 0.401 -0.844 c 0 0 -0.438 -1.353 -0.438 -1.353 c 0 0 1.308 -1.429 1.308 -1.429 c 0 0 -0.23 -2.636 -0.23 -2.636 c 0 0 1.644 -1.396 1.644 -1.396 c 0 0 -1.052 -0.219 -1.052 -0.219 c 0 0 0.178 -1.438 0.178 -1.438 c 0 0 -0.634 -1.333 -0.634 -1.333 c 0 0 1.491 -1.386 1.491 -1.386 c 0 0 2.418 -0.599 2.418 -0.599 c 0 0 0.612 -1.514 0.612 -1.514 c 0 0 -0.74 -1.491 -0.74 -1.491 c 0 0 0.214 -1.337 0.214 -1.337 c 0 0 -2.106 -2.414 -2.106 -2.414 c 0 0 -1.569 -0.716 -1.569 -0.716 c 0 0 -2.67 1.214 -2.67 1.214 c 0 0 -0.353 -0.518 -0.353 -0.518 c 0 0 0.464 -0.385 0.464 -0.385 c 0 0 -0.535 -0.365 -0.535 -0.365 c 0 0 0.36 -0.917 0.36 -0.917 c 0 0 -2.606 -0.267 -2.606 -0.267 c 0 0 -0.11 -0.587 -0.11 -0.587 c 0 0 -1.55 1.313 -1.55 1.313 c 0 0 -2.433 -1.298 -2.433 -1.298 c 0 0 -3.583 -0.418 -3.583 -0.418 c 0 0 -0.49 0.384 -0.49 0.384 c 0 0 -0.965 0.569 -0.965 0.569 c 0 0 0.445 1.163 0.445 1.163 c 0 0 -2.807 -2.418 -2.807 -2.418 c 0 0 -1.214 0.316 -1.214 0.316 c 0 0 -1.424 1.56 -1.424 1.56 c 0 0 0.121 0.773 0.121 0.773 c 0 0 1.212 0.402 1.212 0.402 c 0 0 -0.792 1.303 -0.792 1.303 c 0 0 -0.682 -0.238 -0.682 -0.238 c 0 0 -0.502 0.541 -0.502 0.541 c 0 0 -2.294 -0.948 -2.294 -0.948 c 0 0 -0.241 0.685 -0.241 0.685 c 0 0 -0.797 -0.078 -0.797 -0.078 c 0 0 -1.382 1.093 -1.382 1.093 c 0 0 0.234 1.001 0.234 1.001 c 0 0 -0.78 1.759 -0.78 1.759 c 0 0 -1.127 -0.332 -1.127 -0.332 c 0 0 -2.661 2.963 -2.661 2.963 c 0 0 -1.817 0.906 -1.817 0.906 c 0 0 -0.723 -1.068 -0.723 -1.068 c 0 0 -1.061 -0.012 -1.061 -0.012 c 0 0 -0.828 0.921 -0.828 0.921 c 0 0 -0.075 -0.786 -0.075 -0.786 c 0 0 -0.958 1.506 -0.958 1.506 c 0 0 -1.945 -1.698 -1.945 -1.698 c 0 0 0.822 4.4 0.822 4.4 c 0 0 -0.38 2.546 -0.38 2.546 c 0 0 -0.915 1.547 -0.915 1.547 c 0 0 -0.525 -0.186 -0.525 -0.186 c 0 0 -1.186 1.173 -1.186 1.173 c 0 0 0.194 0.605 0.194 0.605 c 0 0 2.929 0.061 2.929 0.061 c 0 0 2.126 1.396 2.126 1.396 c 0 0 0.583 -0.342 0.583 -0.342 c 0 0 2.02 0.968 2.02 0.968 c 0 0 0.73 1.103 0.73 1.103 c 0 0 1.017 -0.474 1.017 -0.474 c 0 0 1.503 0.709 1.503 0.709 c 0 0 0.559 -0.079 0.559 -0.079 c 0 0 0.341 -1.11 0.341 -1.11 c 0 0 3.911 -0.103 3.911 -0.103 c 0 0 1.787 -0.953 1.787 -0.953 c 0 0 0.162 -0.935 0.162 -0.935 c 0 0 -0.656 -0.975 -0.656 -0.975 c 0 0 -1.454 -0.28 -1.454 -0.28 c 0 0 -0.321 -0.952 -0.321 -0.952 c 0 0 2.216 0.152 2.216 0.152 c 0 0 3.561 -2.397 3.561 -2.397 c 0 0 2.817 1.882 2.817 1.882 c 0 0 1.857 -0.219 1.857 -0.219 c 0 0 -2.247 2.121 -2.247 2.121 c 0 0 0.993 1.373 0.993 1.373 c 0 0 -0.826 1.425 -0.826 1.425 c 0 0 0.764 -0.211 0.764 -0.211 c 0 0 0.976 1.769 0.976 1.769 c 0 0 2.263 -2.836 2.263 -2.836 c 0 0 1.025 0.388 1.025 0.388 c 0 0 -0.085 1.186 -0.085 1.186 c 0 0 2.13 0.699 2.13 0.699 c 0 0 0.685 -1.448 0.685 -1.448 c 0 0 2.061 -0.262 2.061 -0.262 c 0 0 1.65 -1.111 1.65 -1.111 c 0 0 1.29 1.626 1.29 1.626 c 0 0 -0.779 1.125 -0.779 1.125 c 0 0 0.506 0.944 0.506 0.944 c 0 0 -0.438 2.539 -0.438 2.539 c 0 0 2.456 1.971 2.456 1.971 c 0 0 1.033 -0.363 1.033 -0.363 c 0 0 0 0 0 0 c 0 0 0 0 0 0","name":"Batna"},"6":{"path":"M 314.203 38.1218 c 0 0 -0.336 1.124 -0.336 1.124 c 0 0 -2.016 0.919 -2.016 0.919 c 0 0 -0.034 2.49 -0.034 2.49 c 0 0 -4.18 1.099 -4.18 1.099 c 0 0 -0.776 -1.701 -0.776 -1.701 c 0 0 0.222 -0.601 0.222 -0.601 c 0 0 -0.75 -0.99 -0.75 -0.99 c 0 0 0.743 -0.487 0.743 -0.487 c 0 0 0.148 -1.306 0.148 -1.306 c 0 0 -0.678 -1.324 -0.678 -1.324 c 0 0 1.795 -0.83 1.795 -0.83 c 0 0 2.18 -2.443 2.18 -2.443 c 0 0 -0.406 -0.66 -0.406 -0.66 c 0 0 1.259 -1.582 1.259 -1.582 c 0 0 -1.778 -0.942 -1.778 -0.942 c 0 0 0.148 -0.646 0.148 -0.646 c 0 0 1.229 -0.36 1.229 -0.36 c 0 0 0.704 0.539 0.704 0.539 c 0 0 0.672 -0.653 0.672 -0.653 c 0 0 -0.069 -1.338 -0.069 -1.338 c 0 0 -1.397 -1.952 -1.397 -1.952 c 0 0 3.611 -0.405 3.611 -0.405 c 0 0 3.398 1.061 3.398 1.061 c 0 0 2.038 1.439 2.038 1.439 c 0 0 1.871 0.364 1.871 0.364 c 0 0 -0.442 1.715 -0.442 1.715 c 0 0 2.887 1.563 2.887 1.563 c 0 0 4.324 -0.311 4.324 -0.311 c 0 0 0.029 1.315 0.029 1.315 c 0 0 0.916 0.194 0.916 0.194 c 0 0 -0.184 1.479 -0.184 1.479 c 0 0 -2.389 1.071 -2.389 1.071 c 0 0 0.252 0.685 0.252 0.685 c 0 0 -1.314 1.474 -1.314 1.474 c 0 0 0.471 0.919 0.471 0.919 c 0 0 -0.748 0.375 -0.748 0.375 c 0 0 -1.656 0.241 -1.656 0.241 c 0 0 0.025 -0.935 0.025 -0.935 c 0 0 -0.569 0.197 -0.569 0.197 c 0 0 0.023 -2.689 0.023 -2.689 c 0 0 0.535 -0.694 0.535 -0.694 c 0 0 -2.159 -1.465 -2.159 -1.465 c 0 0 -0.039 0.448 -0.039 0.448 c 0 0 -0.928 -0.088 -0.928 -0.088 c 0 0 -0.447 1.378 -0.447 1.378 c 0 0 -3.62 -0.479 -3.62 -0.479 c 0 0 -0.048 1.35 -0.048 1.35 c 0 0 -2.517 1.442 -2.517 1.442 c 0 0 0 0 0 0 c 0 0 0 0 0 0","name":"Béjaïa"},"7":{"path":"M 354.598 79.5648 c 0 0 -1.037 0.363 -1.037 0.363 c 0 0 -2.456 -1.971 -2.456 -1.971 c 0 0 0.438 -2.539 0.438 -2.539 c 0 0 -0.506 -0.943 -0.506 -0.943 c 0 0 0.779 -1.125 0.779 -1.125 c 0 0 -1.289 -1.626 -1.289 -1.626 c 0 0 -1.651 1.111 -1.651 1.111 c 0 0 -2.061 0.261 -2.061 0.261 c 0 0 -0.685 1.448 -0.685 1.448 c 0 0 -2.13 -0.699 -2.13 -0.699 c 0 0 0.085 -1.186 0.085 -1.186 c 0 0 -1.025 -0.387 -1.025 -0.387 c 0 0 -2.263 2.835 -2.263 2.835 c 0 0 -0.975 -1.768 -0.975 -1.768 c 0 0 -0.765 0.21 -0.765 0.21 c 0 0 0.826 -1.425 0.826 -1.425 c 0 0 -0.993 -1.373 -0.993 -1.373 c 0 0 2.247 -2.121 2.247 -2.121 c 0 0 -1.857 0.22 -1.857 0.22 c 0 0 -2.817 -1.883 -2.817 -1.883 c 0 0 -3.56 2.397 -3.56 2.397 c 0 0 -2.217 -0.152 -2.217 -0.152 c 0 0 0.321 0.952 0.321 0.952 c 0 0 1.454 0.28 1.454 0.28 c 0 0 0.656 0.975 0.656 0.975 c 0 0 -0.162 0.935 -0.162 0.935 c 0 0 -1.787 0.954 -1.787 0.954 c 0 0 -3.911 0.102 -3.911 0.102 c 0 0 -0.341 1.11 -0.341 1.11 c 0 0 -0.558 0.08 -0.558 0.08 c 0 0 -1.503 -0.709 -1.503 -0.709 c 0 0 -1.018 0.473 -1.018 0.473 c 0 0 -0.729 -1.102 -0.729 -1.102 c 0 0 -2.02 -0.969 -2.02 -0.969 c 0 0 -0.584 0.343 -0.584 0.343 c 0 0 0.446 3.492 0.446 3.492 c 0 0 0.547 0.305 0.547 0.305 c 0 0 -0.537 0.065 -0.537 0.065 c 0 0 -0.684 1.586 -0.684 1.586 c 0 0 -5.437 1.63 -5.437 1.63 c 0 0 -0.941 1.502 -0.941 1.502 c 0 0 -1.002 0.173 -1.002 0.173 c 0 0 1.299 1.086 1.299 1.086 c 0 0 -1.021 0.547 -1.021 0.547 c 0 0 -0.658 -0.445 -0.658 -0.445 c 0 0 -1.831 1.14 -1.831 1.14 c 0 0 -4.807 0.046 -4.807 0.046 c 0 0 -0.876 1.823 -0.876 1.823 c 0 0 -2.192 1.835 -2.192 1.835 c 0 0 0.522 0.302 0.522 0.302 c 0 0 0.418 3.083 0.418 3.083 c 0 0 1.216 1.271 1.216 1.271 c 0 0 -0.307 0.725 -0.307 0.725 c 0 0 1.814 0.933 1.814 0.933 c 0 0 -0.773 1.006 -0.773 1.006 c 0 0 -1.99 0.525 -1.99 0.525 c 0 0 -0.442 0.687 -0.442 0.687 c 0 0 0.935 1.143 0.935 1.143 c 0 0 1.888 0.264 1.888 0.264 c 0 0 0.385 1.491 0.385 1.491 c 0 0 2.354 0.396 2.354 0.396 c 0 0 0.57 0.73 0.57 0.73 c 0 0 -1.197 -0.003 -1.197 -0.003 c 0 0 -1.375 1.475 -1.375 1.475 c 0 0 -1.342 0.124 -1.342 0.124 c 0 0 -0.397 0.525 -0.397 0.525 c 0 0 0.45 0.688 0.45 0.688 c 0 0 6.57 2.831 6.57 2.831 c 0 0 1.081 1.471 1.081 1.471 c 0 0 3.26 0.627 3.26 0.627 c 0 0 0.39 0.95 0.39 0.95 c 0 0 1.965 -0.327 1.965 -0.327 c 0 0 0.724 1.225 0.724 1.225 c 0 0 4.001 0.998 4.001 0.998 c 0 0 -0.522 0.879 -0.522 0.879 c 0 0 0.117 1.904 0.117 1.904 c 0 0 3.919 3.499 3.919 3.499 c 0 0 0.91 -1.858 0.91 -1.858 c 0 0 0.663 -1.724 0.663 -1.724 c 0 0 -0.688 -1.585 -0.688 -1.585 c 0 0 -0.35 -4.63 -0.35 -4.63 c 0 0 -1.083 -2.091 -1.083 -2.091 c 0 0 0.858 -4.001 0.858 -4.001 c 0 0 1.969 -4.693 1.969 -4.693 c 0 0 -3.667 -3.257 -3.667 -3.257 c 0 0 0.702 -1.852 0.702 -1.852 c 0 0 -1.199 -1.354 -1.199 -1.354 c 0 0 1.889 -1.327 1.889 -1.327 c 0 0 -0.72 -0.627 -0.72 -0.627 c 0 0 1.104 -0.631 1.104 -0.631 c 0 0 2.287 1.521 2.287 1.521 c 0 0 11.929 1.271 11.929 1.271 c 0 0 5.31 -1.304 5.31 -1.304 c 0 0 5.733 2.047 5.733 2.047 c 0 0 1.45 1.393 1.45 1.393 c 0 0 1.654 -0.581 1.654 -0.581 c 0 0 1.726 -2.196 1.726 -2.196 c 0 0 -0.517 -1.926 -0.517 -1.926 c 0 0 1.047 -2.039 1.047 -2.039 c 0 0 -0.163 -3.493 -0.163 -3.493 c 0 0 0.727 -2.389 0.727 -2.389 c 0 0 -0.822 0.197 -0.822 0.197 c 0 0 0.415 -0.997 0.415 -0.997 c 0 0 -1.047 -1.056 -1.047 -1.056 c 0 0 0.4 -0.473 0.4 -0.473 c 0 0 -1.139 0.062 -1.139 0.062 c 0 0 -0.737 1.719 -0.737 1.719 c 0 0 -1.087 0.596 -1.087 0.596 c 0 0 0 0 0 0 c 0 0 0 0 0 0","name":"Biskra"},"8":{"path":"M 189.561 141.431 c 0 0 0.163 2.393 0.163 2.393 c 0 0 1.428 0.123 1.428 0.123 c 0 0 -0.542 2.863 -0.542 2.863 c 0 0 1.384 0.042 1.384 0.042 c 0 0 0.298 1.563 0.298 1.563 c 0 0 5.834 -3.103 5.834 -3.103 c 0 0 6.79 1.902 6.79 1.902 c 0 0 1.803 -1.33 1.803 -1.33 c 0 0 2.417 0.518 2.417 0.518 c 0 0 1.629 -2.4 1.629 -2.4 c 0 0 -0.953 4.385 -0.953 4.385 c 0 0 -2.081 -0.471 -2.081 -0.471 c 0 0 -1.103 0.817 -1.103 0.817 c 0 0 -1.05 2.219 -1.05 2.219 c 0 0 -0.139 4.177 -0.139 4.177 c 0 0 0.68 2.281 0.68 2.281 c 0 0 -0.686 0.065 -0.686 0.065 c 0 0 0.179 0.967 0.179 0.967 c 0 0 -0.602 0.846 -0.602 0.846 c 0 0 0.955 1.182 0.955 1.182 c 0 0 -1.242 1.209 -1.242 1.209 c 0 0 1.247 2.015 1.247 2.015 c 0 0 -1.014 1.204 -1.014 1.204 c 0 0 0.036 1.863 0.036 1.863 c 0 0 0.853 1.823 0.853 1.823 c 0 0 2.917 2.352 2.917 2.352 c 0 0 -0.818 2.98 -0.818 2.98 c 0 0 14.029 11.903 14.029 11.903 c 0 0 -8.624 9.693 -8.624 9.693 c 0 0 -3.966 6.909 -3.966 6.909 c 0 0 -10.189 7.171 -10.189 7.171 c 0 0 -1.53 5.245 -1.53 5.245 c 0 0 1.021 6.804 1.021 6.804 c 0 0 -0.608 2.722 -0.608 2.722 c 0 0 -5.818 4.933 -5.818 4.933 c 0 0 -11.195 0.456 -11.195 0.456 c 0 0 -13.243 3.621 -13.243 3.621 c 0 0 -6.827 9.299 -6.827 9.299 c 0 0 -6.535 4.925 -6.535 4.925 c 0 0 -1.732 3.771 -1.732 3.771 c 0 0 -6.146 7.526 -6.146 7.526 c 0 0 -3.367 10.625 -3.367 10.625 c 0 0 1.165 1.256 1.165 1.256 c 0 0 -13.244 -1.684 -13.244 -1.684 c 0 0 -3.001 -2.418 -3.001 -2.418 c 0 0 -5.835 -7.1 -5.835 -7.1 c 0 0 -0.084 -7.644 -0.084 -7.644 c 0 0 -6.775 -12.676 -6.775 -12.676 c 0 0 -5.777 -21.184 -5.777 -21.184 c 0 0 -5.817 -3.173 -5.817 -3.173 c 0 0 -8.409 -0.352 -8.409 -0.352 c 0 0 -4.977 -4.181 -4.977 -4.181 c 0 0 4.214 -5.384 4.214 -5.384 c 0 0 0.024 -1.372 0.024 -1.372 c 0 0 1.014 -1.498 1.014 -1.498 c 0 0 8.097 -5.763 8.097 -5.763 c 0 0 7.482 -3.241 7.482 -3.241 c 0 0 6.645 -5.965 6.645 -5.965 c 0 0 3.927 -1.254 3.927 -1.254 c 0 0 6.729 -0.776 6.729 -0.776 c 0 0 4.574 -1.715 4.574 -1.715 c 0 0 0.583 -0.765 0.583 -0.765 c 0 0 -1.006 -1.718 -1.006 -1.718 c 0 0 0.712 -1.927 0.712 -1.927 c 0 0 0.439 0.271 0.439 0.271 c 0 0 1.753 -2.209 1.753 -2.209 c 0 0 0.06 -2.135 0.06 -2.135 c 0 0 -0.201 -0.656 -0.201 -0.656 c 0 0 -0.495 0.514 -0.495 0.514 c 0 0 -0.386 -0.407 -0.386 -0.407 c 0 0 -0.456 -1.584 -0.456 -1.584 c 0 0 -0.47 0.188 -0.47 0.188 c 0 0 0.021 -1.495 0.021 -1.495 c 0 0 -0.024 1.793 -0.024 1.793 c 0 0 -0.667 0.211 -0.667 0.211 c 0 0 0.487 0.234 0.487 0.234 c 0 0 -0.779 -0.15 -0.779 -0.15 c 0 0 0.248 -1.646 0.248 -1.646 c 0 0 -0.643 -0.663 -0.643 -0.663 c 0 0 -0.118 0.998 -0.118 0.998 c 0 0 -0.614 -0.265 -0.614 -0.265 c 0 0 0.041 0.743 0.041 0.743 c 0 0 -0.644 -0.249 -0.644 -0.249 c 0 0 -0.354 0.62 -0.354 0.62 c 0 0 0.437 -2.005 0.437 -2.005 c 0 0 -0.625 -1.467 -0.625 -1.467 c 0 0 0.73 -0.664 0.73 -0.664 c 0 0 -0.554 -0.775 -0.554 -0.775 c 0 0 0.872 -1.707 0.872 -1.707 c 0 0 0.565 0.509 0.565 0.509 c 0 0 1.714 -1.251 1.714 -1.251 c 0 0 -0.12 -6.14 -0.12 -6.14 c 0 0 18.347 -3.483 18.347 -3.483 c 0 0 -2.126 -6.029 -2.126 -6.029 c 0 0 0.609 -2.241 0.609 -2.241 c 0 0 6.877 0.41 6.877 0.41 c 0 0 3.008 -1.097 3.008 -1.097 c 0 0 4.058 -0.094 4.058 -0.094 c 0 0 2.286 0.737 2.286 0.737 c 0 0 3.44 -0.906 3.44 -0.906 c 0 0 9.396 2.568 9.396 2.568 c 0 0 7.359 0.568 7.359 0.568 c 0 0 1.897 -1.269 1.897 -1.269 c 0 0 -1.222 -1.218 -1.222 -1.218 c 0 0 -1.895 0.225 -1.895 0.225 c 0 0 1.267 -1.027 1.267 -1.027 c 0 0 -0.083 -3.115 -0.083 -3.115 c 0 0 1.147 -1.937 1.147 -1.937 c 0 0 1.524 -0.259 1.524 -0.259 c 0 0 0 0 0 0 c 0 0 0 0 0 0","name":"Béchar"},"9":{"path":"M 284.26 36.7689 c 0 0 0.247 -1.279 0.247 -1.279 c 0 0 -0.585 -0.271 -0.585 -0.271 c 0 0 0.385 -0.414 0.385 -0.414 c 0 0 -0.471 -0.855 -0.471 -0.855 c 0 0 0.536 -0.479 0.536 -0.479 c 0 0 -0.888 0.351 -0.888 0.351 c 0 0 -0.756 -1.312 -0.756 -1.312 c 0 0 -1.009 0.771 -1.009 0.771 c 0 0 -0.61 -0.303 -0.61 -0.303 c 0 0 -0.7 1.808 -0.7 1.808 c 0 0 -1.118 0.075 -1.118 0.075 c 0 0 0.107 -1.082 0.107 -1.082 c 0 0 -1.49 1.068 -1.49 1.068 c 0 0 -3.771 -1.583 -3.771 -1.583 c 0 0 0.339 1.023 0.339 1.023 c 0 0 -2.109 0.599 -2.109 0.599 c 0 0 -1.479 1.646 -1.479 1.646 c 0 0 -1.06 0.141 -1.06 0.141 c 0 0 0.442 0.803 0.442 0.803 c 0 0 -0.447 0.64 -0.447 0.64 c 0 0 -1.568 -0.302 -1.568 -0.302 c 0 0 -1.037 1.464 -1.037 1.464 c 0 0 2.993 2.104 2.993 2.104 c 0 0 1.509 -1.087 1.509 -1.087 c 0 0 2.894 0.205 2.894 0.205 c 0 0 1.567 -1.178 1.567 -1.178 c 0 0 0.671 1.507 0.671 1.507 c 0 0 1.48 0.008 1.48 0.008 c 0 0 0.866 -0.967 0.866 -0.967 c 0 0 -0.188 -1.356 -0.188 -1.356 c 0 0 0.474 0.955 0.474 0.955 c 0 0 0.732 -0.597 0.732 -0.597 c 0 0 0.693 0.698 0.693 0.698 c 0 0 1.156 -1.154 1.156 -1.154 c 0 0 0.085 -1.381 0.085 -1.381 c 0 0 1.631 0.27 1.631 0.27 c 0 0 0.479 -0.536 0.479 -0.536 c 0 0 0 0 0 0 c 0 0 0 0 0 0","name":"Blida"},"10":{"path":"M 300.562 48.4998 c 0 0 1.468 -1.134 1.468 -1.134 c 0 0 0.186 -2.385 0.186 -2.385 c 0 0 1.708 -0.861 1.708 -0.861 c 0 0 0.796 -1.241 0.796 -1.241 c 0 0 1.361 0.091 1.361 0.091 c 0 0 0.781 -0.917 0.781 -0.917 c 0 0 0.224 -0.601 0.224 -0.601 c 0 0 -0.75 -0.99 -0.75 -0.99 c 0 0 0.742 -0.488 0.742 -0.488 c 0 0 0.148 -1.305 0.148 -1.305 c 0 0 -0.679 -1.324 -0.679 -1.324 c 0 0 -2.513 0.268 -2.513 0.268 c 0 0 -0.274 -0.535 -0.274 -0.535 c 0 0 -1.008 0.543 -1.008 0.543 c 0 0 -5.654 0.163 -5.654 0.163 c 0 0 -1.333 -0.33 -1.333 -0.33 c 0 0 -0.937 -1.637 -0.937 -1.637 c 0 0 -0.781 0.04 -0.781 0.04 c 0 0 -0.892 -1.236 -0.892 -1.236 c 0 0 -4.715 -0.709 -4.715 -0.709 c 0 0 -0.479 0.983 -0.479 0.983 c 0 0 -1.366 0.715 -1.366 0.715 c 0 0 -2.088 -0.118 -2.088 -0.118 c 0 0 -0.247 1.278 -0.247 1.278 c 0 0 2.723 2.63 2.723 2.63 c 0 0 1.561 -1.479 1.561 -1.479 c 0 0 1.357 0.704 1.357 0.704 c 0 0 -0.438 0.687 -0.438 0.687 c 0 0 0.997 1.391 0.997 1.391 c 0 0 -1.07 0.599 -1.07 0.599 c 0 0 -0.442 1.267 -0.442 1.267 c 0 0 1.07 0.978 1.07 0.978 c 0 0 -0.182 0.811 -0.182 0.811 c 0 0 -1.427 0.413 -1.427 0.413 c 0 0 -0.228 0.854 -0.228 0.854 c 0 0 0.655 1.041 0.655 1.041 c 0 0 -0.407 0.485 -0.407 0.485 c 0 0 -0.899 0.935 -0.899 0.935 c 0 0 -1.014 -0.015 -1.014 -0.015 c 0 0 0.479 0.781 0.479 0.781 c 0 0 2.788 0.435 2.788 0.435 c 0 0 1.405 2.648 1.405 2.648 c 0 0 0.532 -0.81 0.532 -0.81 c 0 0 1.537 0.153 1.537 0.153 c 0 0 0.654 0.925 0.654 0.925 c 0 0 1.071 0.222 1.071 0.222 c 0 0 0.351 1.005 0.351 1.005 c 0 0 0.802 0.049 0.802 0.049 c 0 0 1.27 -1.216 1.27 -1.216 c 0 0 2.542 0.892 2.542 0.892 c 0 0 -0.443 -1.387 -0.443 -1.387 c 0 0 1.058 -3.268 1.058 -3.268 c 0 0 0 0 0 0 c 0 0 0 0 0 0","name":"Bouira"},"11":{"path":"M 340.615 208.544 c 0 0 -43.124 33.261 -43.124 33.261 c 0 0 0.146 -0.413 0.146 -0.413 c 0 0 -17.526 -14.179 -17.526 -14.179 c 0 0 -11.145 0.971 -11.145 0.971 c 0 0 -10.264 3.806 -10.264 3.806 c 0 0 -0.784 10.595 -0.784 10.595 c 0 0 -1.104 3.51 -1.104 3.51 c 0 0 -3.164 5.032 -3.164 5.032 c 0 0 -0.81 10.075 -0.81 10.075 c 0 0 -1.856 3.177 -1.856 3.177 c 0 0 0.051 6.213 0.051 6.213 c 0 0 1.848 2.781 1.848 2.781 c 0 0 -2.565 6.435 -2.565 6.435 c 0 0 -0.465 8.885 -0.465 8.885 c 0 0 -2.35 1.68 -2.35 1.68 c 0 0 -0.139 -0.823 -0.139 -0.823 c 0 0 -1.748 0.209 -1.748 0.209 c 0 0 -0.883 -0.813 -0.883 -0.813 c 0 0 -2.635 0.807 -2.635 0.807 c 0 0 -1.19 2.448 -1.19 2.448 c 0 0 -7.482 7.684 -7.482 7.684 c 0 0 2.714 6.037 2.714 6.037 c 0 0 8.571 12.137 8.571 12.137 c 0 0 0.259 38.387 0.259 38.387 c 0 0 -0.63 56.825 -0.63 56.825 c 0 0 4.163 -0.675 4.163 -0.675 c 0 0 4.417 0.47 4.417 0.47 c 0 0 1.521 7.254 1.521 7.254 c 0 0 6.095 6.187 6.095 6.187 c 0 0 2.49 5.061 2.49 5.061 c 0 0 1.682 5.848 1.682 5.848 c 0 0 -0.031 6.131 -0.031 6.131 c 0 0 2.249 3.263 2.249 3.263 c 0 0 3.133 7.454 3.133 7.454 c 0 0 0.496 2.892 0.496 2.892 c 0 0 -2.249 0.725 -2.249 0.725 c 0 0 1.485 0.058 1.485 0.058 c 0 0 2.693 1.431 2.693 1.431 c 0 0 3.086 -0.021 3.086 -0.021 c 0 0 6.312 1.33 6.312 1.33 c 0 0 6.54 3.166 6.54 3.166 c 0 0 -0.412 3.706 -0.412 3.706 c 0 0 0.537 0.907 0.537 0.907 c 0 0 -0.542 1.742 -0.542 1.742 c 0 0 0.979 1.557 0.979 1.557 c 0 0 -0.357 0.987 -0.357 0.987 c 0 0 0.917 2.147 0.917 2.147 c 0 0 -1.474 1.56 -1.474 1.56 c 0 0 -0.373 1.711 -0.373 1.711 c 0 0 -2.086 2.864 -2.086 2.864 c 0 0 0.506 1.159 0.506 1.159 c 0 0 5.114 3.9 5.114 3.9 c 0 0 60.512 -13.771 60.512 -13.771 c 0 0 38.057 -37.723 38.057 -37.723 c 0 0 64.331 -46.843 64.331 -46.843 c 0 0 -0.719 -20.563 -0.719 -20.563 c 0 0 -7.48 -4.23 -7.48 -4.23 c 0 0 -2.209 0.049 -2.209 0.049 c 0 0 -1.657 -1.011 -1.657 -1.011 c 0 0 -13.903 0.818 -13.903 0.818 c 0 0 -12.891 9.613 -12.891 9.613 c 0 0 -17.177 4.161 -17.177 4.161 c 0 0 -6.243 -4.392 -6.243 -4.392 c 0 0 1.974 -2.233 1.974 -2.233 c 0 0 -5.578 -12.361 -5.578 -12.361 c 0 0 -1.04 -10.938 -1.04 -10.938 c 0 0 0.237 -3.784 0.237 -3.784 c 0 0 -5.594 -8.032 -5.594 -8.032 c 0 0 -4.477 -0.141 -4.477 -0.141 c 0 0 -2.836 -2.179 -2.836 -2.179 c 0 0 -3.687 -6.237 -3.687 -6.237 c 0 0 -1.628 -4.169 -1.628 -4.169 c 0 0 -5.061 -6.142 -5.061 -6.142 c 0 0 -5.932 -16.141 -5.932 -16.141 c 0 0 -1.532 -1.132 -1.532 -1.132 c 0 0 -0.138 -1.005 -0.138 -1.005 c 0 0 -2.248 -0.6 -2.248 -0.6 c 0 0 -1.181 -1.556 -1.181 -1.556 c 0 0 1.06 -3.062 1.06 -3.062 c 0 0 2.819 -2.351 2.819 -2.351 c 0 0 -0.418 -1.914 -0.418 -1.914 c 0 0 -12.688 -11.21 -12.688 -11.21 c 0 0 -0.039 -8.717 -0.039 -8.717 c 0 0 -3.73 -17.581 -3.73 -17.581 c 0 0 1.772 -8.354 1.772 -8.354 c 0 0 -1.292 -33.81 -1.292 -33.81 c 0 0 0 0 0 0 c 0 0 0 0 0 0","name":"Tamanrasset"},"12":{"path":"M 377.235 49.5529 c 0 0 0.397 -1.363 0.397 -1.363 c 0 0 1.877 1.4 1.877 1.4 c 0 0 1.622 -0.03 1.622 -0.03 c 0 0 2.103 -2.353 2.103 -2.353 c 0 0 1.256 0.156 1.256 0.156 c 0 0 2.499 -1.112 2.499 -1.112 c 0 0 2.176 1.081 2.176 1.081 c 0 0 -0.663 1.284 -0.663 1.284 c 0 0 0.469 0.414 0.469 0.414 c 0 0 -0.029 4.161 -0.029 4.161 c 0 0 1.961 1.389 1.961 1.389 c 0 0 0.321 3.785 0.321 3.785 c 0 0 0.61 0.972 0.61 0.972 c 0 0 -1.389 1.917 -1.389 1.917 c 0 0 0.063 2.599 0.063 2.599 c 0 0 2.079 1.616 2.079 1.616 c 0 0 1.524 0.072 1.524 0.072 c 0 0 -2.348 3.782 -2.348 3.782 c 0 0 -0.661 3.932 -0.661 3.932 c 0 0 -1.401 0.803 -1.401 0.803 c 0 0 0.931 3.721 0.931 3.721 c 0 0 0.876 0.981 0.876 0.981 c 0 0 -1.63 1.313 -1.63 1.313 c 0 0 0.909 0.787 0.909 0.787 c 0 0 -1.388 1.372 -1.388 1.372 c 0 0 0.229 0.686 0.229 0.686 c 0 0 -1.096 0.116 -1.096 0.116 c 0 0 -1.104 1.673 -1.104 1.673 c 0 0 -5.352 2.981 -5.352 2.981 c 0 0 -0.735 4.246 -0.735 4.246 c 0 0 -8.26 -0.416 -8.26 -0.416 c 0 0 -4.263 -1.484 -4.263 -1.484 c 0 0 0.773 -5.083 0.773 -5.083 c 0 0 2.108 -3.938 2.108 -3.938 c 0 0 0.024 -1.697 0.024 -1.697 c 0 0 -0.637 -0.956 -0.637 -0.956 c 0 0 0.749 -2.004 0.749 -2.004 c 0 0 -0.869 -2.387 -0.869 -2.387 c 0 0 -1.271 -0.098 -1.271 -0.098 c 0 0 -0.661 0.97 -0.661 0.97 c 0 0 -0.441 1.352 -0.441 1.352 c 0 0 0.5 -0.146 0.5 -0.146 c 0 0 -0.088 1.582 -0.088 1.582 c 0 0 -0.908 -2.111 -0.908 -2.111 c 0 0 1.39 -3.602 1.39 -3.602 c 0 0 1.306 -0.817 1.306 -0.817 c 0 0 1.429 -2.436 1.429 -2.436 c 0 0 -1.051 -1.558 -1.051 -1.558 c 0 0 0.787 -1.188 0.787 -1.188 c 0 0 -0.763 -0.573 -0.763 -0.573 c 0 0 -0.117 -2.443 -0.117 -2.443 c 0 0 3.133 -1.132 3.133 -1.132 c 0 0 0.624 -0.112 0.624 -0.112 c 0 0 1.879 -2.798 1.879 -2.798 c 0 0 4.046 -1.621 4.046 -1.621 c 0 0 -1.311 -2.658 -1.311 -2.658 c 0 0 -0.142 -1.094 -0.142 -1.094 c 0 0 0.772 -0.688 0.772 -0.688 c 0 0 -1.615 -0.739 -1.615 -0.739 c 0 0 -0.531 -2.116 -0.531 -2.116 c 0 0 -0.698 -0.39 -0.698 -0.39 c 0 0 0 0 0 0 c 0 0 0 0 0 0","name":"Tébessa"},"13":{"path":"M 193.764 72.7758 c 0 0 -0.686 0.069 -0.686 0.069 c 0 0 -0.264 -0.909 -0.264 -0.909 c 0 0 -3.488 -1.748 -3.488 -1.748 c 0 0 -0.331 0.33 -0.331 0.33 c 0 0 -0.372 -0.771 -0.372 -0.771 c 0 0 -1.081 0.455 -1.081 0.455 c 0 0 -2.338 -0.793 -2.338 -0.793 c 0 0 -0.918 1.336 -0.918 1.336 c 0 0 -1.082 0.265 -1.082 0.265 c 0 0 -1.053 -0.668 -1.053 -0.668 c 0 0 0.202 -0.954 0.202 -0.954 c 0 0 -0.848 -0.622 -0.848 -0.622 c 0 0 -3.998 2.927 -3.998 2.927 c 0 0 -0.671 -0.354 -0.671 -0.354 c 0 0 -2.174 1.167 -2.174 1.167 c 0 0 -3.447 0.248 -3.447 0.248 c 0 0 -1.838 -0.844 -1.838 -0.844 c 0 0 -1.167 0.414 -1.167 0.414 c 0 0 -0.104 0.95 -0.104 0.95 c 0 0 2.603 2.448 2.603 2.448 c 0 0 1.057 0.802 1.057 0.802 c 0 0 1.388 -0.219 1.388 -0.219 c 0 0 0.027 1.49 0.027 1.49 c 0 0 1.617 0.96 1.617 0.96 c 0 0 0.088 0.883 0.088 0.883 c 0 0 3.129 1.718 3.129 1.718 c 0 0 -2.502 3.209 -2.502 3.209 c 0 0 0.771 0.313 0.771 0.313 c 0 0 1.368 2.382 1.368 2.382 c 0 0 1.285 0.582 1.285 0.582 c 0 0 -2.119 2.566 -2.119 2.566 c 0 0 1.582 2.156 1.582 2.156 c 0 0 -0.213 1.807 -0.213 1.807 c 0 0 1.198 3.756 1.198 3.756 c 0 0 3.61 -2.621 3.61 -2.621 c 0 0 4.992 0.022 4.992 0.022 c 0 0 1.227 -1.408 1.227 -1.408 c 0 0 1.529 -0.482 1.529 -0.482 c 0 0 6.093 -5.633 6.093 -5.633 c 0 0 -0.362 -0.793 -0.362 -0.793 c 0 0 -0.956 -0.198 -0.956 -0.198 c 0 0 1.609 -0.95 1.609 -0.95 c 0 0 1.285 -2.754 1.285 -2.754 c 0 0 -0.23 -0.686 -0.23 -0.686 c 0 0 0.496 0.037 0.496 0.037 c 0 0 -0.273 -1.005 -0.273 -1.005 c 0 0 -2.376 0.271 -2.376 0.271 c 0 0 0.434 -3.193 0.434 -3.193 c 0 0 -1.177 0.239 -1.177 0.239 c 0 0 0.804 -1.134 0.804 -1.134 c 0 0 -1.191 -0.046 -1.191 -0.046 c 0 0 -0.506 -1.828 -0.506 -1.828 c 0 0 1.313 -2.126 1.313 -2.126 c 0 0 -1.942 -1.063 -1.942 -1.063 c 0 0 0 0 0 0 c 0 0 0 0 0 0","name":"Tlemcen"},"14":{"path":"M 258.955 61.8178 c 0 0 -1.327 0.262 -1.327 0.262 c 0 0 0.221 1.396 0.221 1.396 c 0 0 6.776 4.105 6.776 4.105 c 0 0 1.052 1.839 1.052 1.839 c 0 0 2.688 -2.3 2.688 -2.3 c 0 0 1.052 0.797 1.052 0.797 c 0 0 0.327 1.125 0.327 1.125 c 0 0 1.748 0.418 1.748 0.418 c 0 0 -0.01 1.521 -0.01 1.521 c 0 0 -0.677 0.26 -0.677 0.26 c 0 0 -1.121 2.251 -1.121 2.251 c 0 0 1.432 1.277 1.432 1.277 c 0 0 -3.229 1.273 -3.229 1.273 c 0 0 -1.447 4.661 -1.447 4.661 c 0 0 -1.47 0.458 -1.47 0.458 c 0 0 0.167 2.428 0.167 2.428 c 0 0 -3.015 0.372 -3.015 0.372 c 0 0 -0.437 1.044 -0.437 1.044 c 0 0 -1.978 0.888 -1.978 0.888 c 0 0 -2.348 2.563 -2.348 2.563 c 0 0 -4.877 1.753 -4.877 1.753 c 0 0 -1.839 2.088 -1.839 2.088 c 0 0 -0.365 2.438 -0.365 2.438 c 0 0 -1.645 0.978 -1.645 0.978 c 0 0 -0.272 -1.14 -0.272 -1.14 c 0 0 -3.774 2.229 -3.774 2.229 c 0 0 0.808 1.346 0.808 1.346 c 0 0 -2.194 1.46 -2.194 1.46 c 0 0 -1.118 -1.577 -1.118 -1.577 c 0 0 -0.216 -1.843 -0.216 -1.843 c 0 0 -5.541 0.295 -5.541 0.295 c 0 0 0.672 -4.883 0.672 -4.883 c 0 0 -3.973 -0.827 -3.973 -0.827 c 0 0 1.657 -2.906 1.657 -2.906 c 0 0 -2.975 -1.225 -2.975 -1.225 c 0 0 -0.316 -0.531 -0.316 -0.531 c 0 0 0.755 -0.53 0.755 -0.53 c 0 0 -0.449 -1.181 -0.449 -1.181 c 0 0 -1.062 0.458 -1.062 0.458 c 0 0 -1.729 -3.065 -1.729 -3.065 c 0 0 0.385 -1.708 0.385 -1.708 c 0 0 -0.557 -0.922 -0.557 -0.922 c 0 0 3.161 -2.329 3.161 -2.329 c 0 0 -1.595 -2.433 -1.595 -2.433 c 0 0 -1.402 -0.632 -1.402 -0.632 c 0 0 -0.281 -0.991 -0.281 -0.991 c 0 0 -3.297 0.388 -3.297 0.388 c 0 0 1.071 -1.77 1.071 -1.77 c 0 0 1.552 -1.101 1.552 -1.101 c 0 0 -0.245 -0.949 -0.245 -0.949 c 0 0 1.176 -1.409 1.176 -1.409 c 0 0 1.083 -0.161 1.083 -0.161 c 0 0 1.521 0.789 1.521 0.789 c 0 0 1.112 -0.354 1.112 -0.354 c 0 0 0.873 -2.104 0.873 -2.104 c 0 0 0.688 -0.28 0.688 -0.28 c 0 0 -1.49 -1.555 -1.49 -1.555 c 0 0 0.9 -0.182 0.9 -0.182 c 0 0 1.728 -2.878 1.728 -2.878 c 0 0 1.215 -0.098 1.215 -0.098 c 0 0 0.112 -0.867 0.112 -0.867 c 0 0 0.812 0.11 0.812 0.11 c 0 0 0.164 -0.913 0.164 -0.913 c 0 0 2.058 0.206 2.058 0.206 c 0 0 0.567 -0.985 0.567 -0.985 c 0 0 1.449 -0.572 1.449 -0.572 c 0 0 1.345 1.67 1.345 1.67 c 0 0 0.589 -2.298 0.589 -2.298 c 0 0 1.271 0.93 1.271 0.93 c 0 0 0.538 -0.303 0.538 -0.303 c 0 0 1.353 0.765 1.353 0.765 c 0 0 0.063 1.414 0.063 1.414 c 0 0 1.952 -0.174 1.952 -0.174 c 0 0 1.046 1.72 1.046 1.72 c 0 0 0.813 0.153 0.813 0.153 c 0 0 0.172 -1.047 0.172 -1.047 c 0 0 0.958 0.973 0.958 0.973 c 0 0 3.798 -0.432 3.798 -0.432 c 0 0 2.435 -1.337 2.435 -1.337 c 0 0 -0.56 0.67 -0.56 0.67 c 0 0 1.55 0.067 1.55 0.067 c 0 0 -0.034 0.954 -0.034 0.954 c 0 0 0 0 0 0 c 0 0 0 0 0 0","name":"Tiaret"},"15":{"path":"M 310.88 26.4728 c 0 0 1.398 1.952 1.398 1.952 c 0 0 0.068 1.338 0.068 1.338 c 0 0 -0.67 0.654 -0.67 0.654 c 0 0 -0.705 -0.539 -0.705 -0.539 c 0 0 -1.229 0.36 -1.229 0.36 c 0 0 -0.147 0.646 -0.147 0.646 c 0 0 1.777 0.943 1.777 0.943 c 0 0 -1.26 1.581 -1.26 1.581 c 0 0 0.406 0.661 0.406 0.661 c 0 0 -2.179 2.442 -2.179 2.442 c 0 0 -1.795 0.831 -1.795 0.831 c 0 0 -2.514 0.268 -2.514 0.268 c 0 0 -0.273 -0.535 -0.273 -0.535 c 0 0 -1.01 0.543 -1.01 0.543 c 0 0 -5.653 0.163 -5.653 0.163 c 0 0 -1.334 -0.33 -1.334 -0.33 c 0 0 -0.935 -1.637 -0.935 -1.637 c 0 0 -0.782 0.04 -0.782 0.04 c 0 0 -0.892 -1.236 -0.892 -1.236 c 0 0 -0.219 -1.694 -0.219 -1.694 c 0 0 1.417 -0.319 1.417 -0.319 c 0 0 0.845 0.592 0.845 0.592 c 0 0 -0.163 -1.288 -0.163 -1.288 c 0 0 1.354 0.313 1.354 0.313 c 0 0 -0.771 -0.862 -0.771 -0.862 c 0 0 0.386 -1.441 0.386 -1.441 c 0 0 1.042 0.231 1.042 0.231 c 0 0 0.179 -0.604 0.179 -0.604 c 0 0 0.945 -0.077 0.945 -0.077 c 0 0 0.045 -0.779 0.045 -0.779 c 0 0 1.354 -1.163 1.354 -1.163 c 0 0 -0.135 -1.239 -0.135 -1.239 c 0 0 5.439 -0.32 5.439 -0.32 c 0 0 1.851 0.426 1.851 0.426 c 0 0 0.986 -0.547 0.986 -0.547 c 0 0 3.174 0.626 3.174 0.626 c 0 0 0 0 0 0 c 0 0 0 0 0 0","name":"Tizi-Ouzou"},"16":{"path":"M 285.549 29.5858 c 0 0 -0.27 0.609 -0.27 0.609 c 0 0 0.656 -0.216 0.656 -0.216 c 0 0 0.031 1.021 0.031 1.021 c 0 0 -2.278 0.745 -2.278 0.745 c 0 0 -0.66 -0.482 -0.66 -0.482 c 0 0 0.391 0.701 0.391 0.701 c 0 0 -0.688 0.546 -0.688 0.546 c 0 0 -1.01 0.771 -1.01 0.771 c 0 0 -0.609 -0.302 -0.609 -0.302 c 0 0 -0.701 1.807 -0.701 1.807 c 0 0 -1.117 0.075 -1.117 0.075 c 0 0 0.107 -1.082 0.107 -1.082 c 0 0 -1.49 1.068 -1.49 1.068 c 0 0 -3.771 -1.583 -3.771 -1.583 c 0 0 -0.135 -1.446 -0.135 -1.446 c 0 0 0.607 -1.614 0.607 -1.614 c 0 0 0.9 -0.174 0.9 -0.174 c 0 0 0.272 -0.944 0.272 -0.944 c 0 0 1.205 -0.234 1.205 -0.234 c 0 0 1.831 0.088 1.831 0.088 c 0 0 0.494 1.2 0.494 1.2 c 0 0 1.162 0.524 1.162 0.524 c 0 0 2.119 -0.622 2.119 -0.622 c 0 0 0.155 -1.295 0.155 -1.295 c 0 0 2.799 0.839 2.799 0.839 c 0 0 0 0 0 0 c 0 0 0 0 0 0","name":"Alger"},"17":{"path":"M 303.711 95.2648 c 0 0 -4.303 -3.584 -4.303 -3.584 c 0 0 0.313 -2.084 0.313 -2.084 c 0 0 -1.836 -1.982 -1.836 -1.982 c 0 0 0.299 -2.041 0.299 -2.041 c 0 0 -0.719 -4.249 -0.719 -4.249 c 0 0 -3.906 -0.974 -3.906 -0.974 c 0 0 -1.411 0.479 -1.411 0.479 c 0 0 -0.14 -1.652 -0.14 -1.652 c 0 0 -1.402 -0.321 -1.402 -0.321 c 0 0 0.209 -2.972 0.209 -2.972 c 0 0 -0.698 -0.953 -0.698 -0.953 c 0 0 0.551 -0.067 0.551 -0.067 c 0 0 0.504 -1.54 0.504 -1.54 c 0 0 -1.839 0.736 -1.839 0.736 c 0 0 -1.138 -3.13 -1.138 -3.13 c 0 0 4.281 -3.605 4.281 -3.605 c 0 0 -0.424 -1.941 -0.424 -1.941 c 0 0 0.865 -0.632 0.865 -0.632 c 0 0 0.075 -1.772 0.075 -1.772 c 0 0 -4.719 -3.806 -4.719 -3.806 c 0 0 -1.903 -1.954 -1.903 -1.954 c 0 0 -0.313 -1.257 -0.313 -1.257 c 0 0 -1.091 0.049 -1.091 0.049 c 0 0 -0.854 -1.716 -0.854 -1.716 c 0 0 -1.031 1.021 -1.031 1.021 c 0 0 0.104 1.206 0.104 1.206 c 0 0 -0.753 1.37 -0.753 1.37 c 0 0 -2.786 0.7 -2.786 0.7 c 0 0 -0.185 -2.199 -0.185 -2.199 c 0 0 -0.699 0.144 -0.699 0.144 c 0 0 -0.693 -2.337 -0.693 -2.337 c 0 0 -2.585 0.707 -2.585 0.707 c 0 0 0.677 5.005 0.677 5.005 c 0 0 -0.578 -0.259 -0.578 -0.259 c 0 0 -1.83 1.359 -1.83 1.359 c 0 0 -1.605 2.564 -1.605 2.564 c 0 0 -1.292 0.661 -1.292 0.661 c 0 0 -2.698 -1.908 -2.698 -1.908 c 0 0 -0.229 0.56 -0.229 0.56 c 0 0 -2.476 0.813 -2.476 0.813 c 0 0 -2.139 0.167 -2.139 0.167 c 0 0 -0.658 -2.362 -0.658 -2.362 c 0 0 -3.699 0.315 -3.699 0.315 c 0 0 -1.327 0.263 -1.327 0.263 c 0 0 0.221 1.396 0.221 1.396 c 0 0 6.777 4.106 6.777 4.106 c 0 0 1.051 1.838 1.051 1.838 c 0 0 2.688 -2.299 2.688 -2.299 c 0 0 1.052 0.796 1.052 0.796 c 0 0 0.327 1.125 0.327 1.125 c 0 0 1.748 0.418 1.748 0.418 c 0 0 -0.01 1.521 -0.01 1.521 c 0 0 -0.677 0.259 -0.677 0.259 c 0 0 -1.122 2.251 -1.122 2.251 c 0 0 1.432 1.277 1.432 1.277 c 0 0 -3.229 1.273 -3.229 1.273 c 0 0 -1.446 4.661 -1.446 4.661 c 0 0 -1.471 0.458 -1.471 0.458 c 0 0 0.169 2.428 0.169 2.428 c 0 0 0.566 6.331 0.566 6.331 c 0 0 1.244 3.59 1.244 3.59 c 0 0 0.441 -0.086 0.441 -0.086 c 0 0 3.376 4.766 3.376 4.766 c 0 0 1.209 0.325 1.209 0.325 c 0 0 2.258 -1.065 2.258 -1.065 c 0 0 0.695 0.262 0.695 0.262 c 0 0 -0.026 -1.447 -0.026 -1.447 c 0 0 2.266 -2.289 2.266 -2.289 c 0 0 1.456 0.758 1.456 0.758 c 0 0 -0.123 0.432 -0.123 0.432 c 0 0 1.253 -0.433 1.253 -0.433 c 0 0 2.38 6.709 2.38 6.709 c 0 0 -0.146 1.212 -0.146 1.212 c 0 0 1.604 3.201 1.604 3.201 c 0 0 5.243 1.505 5.243 1.505 c 0 0 3.983 3.588 3.983 3.588 c 0 0 1.407 2.328 1.407 2.328 c 0 0 8.125 3.061 8.125 3.061 c 0 0 1.49 1.064 1.49 1.064 c 0 0 4.01 3.915 4.01 3.915 c 0 0 3.191 5.374 3.191 5.374 c 0 0 11.872 3.224 11.872 3.224 c 0 0 -2.209 -11.442 -2.209 -11.442 c 0 0 2.42 -5.131 2.42 -5.131 c 0 0 -0.116 -1.902 -0.116 -1.902 c 0 0 0.521 -0.88 0.521 -0.88 c 0 0 -4 -0.997 -4 -0.997 c 0 0 -0.725 -1.226 -0.725 -1.226 c 0 0 -1.964 0.328 -1.964 0.328 c 0 0 -0.39 -0.95 -0.39 -0.95 c 0 0 -3.261 -0.627 -3.261 -0.627 c 0 0 -1.081 -1.472 -1.081 -1.472 c 0 0 -6.57 -2.83 -6.57 -2.83 c 0 0 -0.45 -0.689 -0.45 -0.689 c 0 0 0.395 -0.524 0.395 -0.524 c 0 0 1.344 -0.124 1.344 -0.124 c 0 0 1.375 -1.476 1.375 -1.476 c 0 0 1.195 0.003 1.195 0.003 c 0 0 -0.568 -0.73 -0.568 -0.73 c 0 0 -2.354 -0.395 -2.354 -0.395 c 0 0 -0.386 -1.492 -0.386 -1.492 c 0 0 -1.887 -0.264 -1.887 -0.264 c 0 0 -0.935 -1.142 -0.935 -1.142 c 0 0 0.443 -0.693 0.443 -0.693 c 0 0 0 0 0 0 c 0 0 0 0 0 0","name":"Djelfa"},"18":{"path":"M 335.112 34.2048 c 0 0 1.112 -0.339 1.112 -0.339 c 0 0 1.367 0.723 1.367 0.723 c 0 0 1.504 -0.446 1.504 -0.446 c 0 0 1.242 -1.671 1.242 -1.671 c 0 0 4.855 0.813 4.855 0.813 c 0 0 1.86 -1.232 1.86 -1.232 c 0 0 0.435 0.64 0.435 0.64 c 0 0 2.741 0.479 2.741 0.479 c 0 0 -0.254 -1.387 -0.254 -1.387 c 0 0 0.828 -0.194 0.828 -0.194 c 0 0 0.3 -0.784 0.3 -0.784 c 0 0 -2.966 -1.426 -2.966 -1.426 c 0 0 -0.699 -3.309 -0.699 -3.309 c 0 0 -1.636 -0.354 -1.636 -0.354 c 0 0 0.278 -1.183 0.278 -1.183 c 0 0 -0.458 -0.661 -0.458 -0.661 c 0 0 -5.771 2.994 -5.771 2.994 c 0 0 -3.482 0.854 -3.482 0.854 c 0 0 -0.857 -0.566 -0.857 -0.566 c 0 0 -1.676 0.329 -1.676 0.329 c 0 0 -2.381 1.442 -2.381 1.442 c 0 0 -1.033 2.037 -1.033 2.037 c 0 0 -1.852 0.936 -1.852 0.936 c 0 0 0.027 1.315 0.027 1.315 c 0 0 0.917 0.194 0.917 0.194 c 0 0 0.751 -0.023 0.751 -0.023 c 0 0 0.402 1.854 0.402 1.854 c 0 0 0.979 0.076 0.979 0.076 c 0 0 0.992 -0.957 0.992 -0.957 c 0 0 1.248 0.676 1.248 0.676 c 0 0 1.227 -0.83 1.227 -0.83 c 0 0 0 0 0 0 c 0 0 0 0 0 0","name":"Jijel"},"19":{"path":"M 335.112 34.2048 c 0 0 0.558 0.717 0.558 0.717 c 0 0 -0.125 2.048 -0.125 2.048 c 0 0 1.244 0.953 1.244 0.953 c 0 0 -0.114 1.348 -0.114 1.348 c 0 0 1.395 0.426 1.395 0.426 c 0 0 -0.097 1.172 -0.097 1.172 c 0 0 2.188 2.367 2.188 2.367 c 0 0 -0.978 0.521 -0.978 0.521 c 0 0 0.049 1.868 0.049 1.868 c 0 0 1.715 0.399 1.715 0.399 c 0 0 0.284 2.085 0.284 2.085 c 0 0 -0.688 0.604 -0.688 0.604 c 0 0 1.162 1.212 1.162 1.212 c 0 0 -1.2 1.294 -1.2 1.294 c 0 0 -0.965 0.569 -0.965 0.569 c 0 0 0.444 1.163 0.444 1.163 c 0 0 -2.806 -2.418 -2.806 -2.418 c 0 0 -1.214 0.316 -1.214 0.316 c 0 0 -1.424 1.56 -1.424 1.56 c 0 0 0.121 0.773 0.121 0.773 c 0 0 1.212 0.402 1.212 0.402 c 0 0 -0.792 1.303 -0.792 1.303 c 0 0 -0.682 -0.238 -0.682 -0.238 c 0 0 -0.502 0.541 -0.502 0.541 c 0 0 -2.294 -0.948 -2.294 -0.948 c 0 0 -0.241 0.685 -0.241 0.685 c 0 0 -0.797 -0.078 -0.797 -0.078 c 0 0 -1.382 1.093 -1.382 1.093 c 0 0 0.234 1.001 0.234 1.001 c 0 0 -0.78 1.759 -0.78 1.759 c 0 0 -1.127 -0.334 -1.127 -0.334 c 0 0 -3.493 -0.469 -3.493 -0.469 c 0 0 -0.547 -0.806 -0.547 -0.806 c 0 0 0.417 -0.537 0.417 -0.537 c 0 0 -0.486 -0.518 -0.486 -0.518 c 0 0 -1.107 0.239 -1.107 0.239 c 0 0 -1.474 -1.041 -1.474 -1.041 c 0 0 0.169 -0.628 0.169 -0.628 c 0 0 -0.018 -1.602 -0.018 -1.602 c 0 0 2.088 -0.288 2.088 -0.288 c 0 0 -0.484 -2.927 -0.484 -2.927 c 0 0 1.669 -2.858 1.669 -2.858 c 0 0 -0.97 -0.972 -0.97 -0.972 c 0 0 0.127 -2.078 0.127 -2.078 c 0 0 -0.963 -0.273 -0.963 -0.273 c 0 0 -1.48 -2.546 -1.48 -2.546 c 0 0 -1.203 -0.362 -1.203 -0.362 c 0 0 -0.961 0.653 -0.961 0.653 c 0 0 -2.854 0.298 -2.854 0.298 c 0 0 -0.779 -0.983 -0.779 -0.983 c 0 0 0.302 -1.874 0.302 -1.874 c 0 0 -1.26 -0.672 -1.26 -0.672 c 0 0 2.517 -1.449 2.517 -1.449 c 0 0 0.048 -1.349 0.048 -1.349 c 0 0 3.62 0.479 3.62 0.479 c 0 0 0.447 -1.378 0.447 -1.378 c 0 0 0.928 0.088 0.928 0.088 c 0 0 0.039 -0.447 0.039 -0.447 c 0 0 2.159 1.465 2.159 1.465 c 0 0 -0.535 0.692 -0.535 0.692 c 0 0 -0.024 2.691 -0.024 2.691 c 0 0 0.57 -0.199 0.57 -0.199 c 0 0 -0.025 0.937 -0.025 0.937 c 0 0 1.656 -0.241 1.656 -0.241 c 0 0 0.748 -0.375 0.748 -0.375 c 0 0 -0.471 -0.92 -0.471 -0.92 c 0 0 1.314 -1.474 1.314 -1.474 c 0 0 -0.252 -0.684 -0.252 -0.684 c 0 0 2.389 -1.072 2.389 -1.072 c 0 0 0.184 -1.478 0.184 -1.478 c 0 0 0.751 -0.023 0.751 -0.023 c 0 0 0.403 1.854 0.403 1.854 c 0 0 0.979 0.077 0.979 0.077 c 0 0 0.992 -0.958 0.992 -0.958 c 0 0 1.248 0.676 1.248 0.676 c 0 0 1.224 -0.831 1.224 -0.831 c 0 0 0 0 0 0 c 0 0 0 0 0 0","name":"Sétif"},"20":{"path":"M 233.026 90.7739 c 0 0 -2.853 -0.734 -2.853 -0.734 c 0 0 -4.583 3.134 -4.583 3.134 c 0 0 -1.732 -2.296 -1.732 -2.296 c 0 0 -2.898 2.009 -2.898 2.009 c 0 0 -2.172 -0.253 -2.172 -0.253 c 0 0 -2.096 -2.128 -2.096 -2.128 c 0 0 -2.331 -0.763 -2.331 -0.763 c 0 0 -1.5 -1.498 -1.5 -1.498 c 0 0 -2.199 1.248 -2.199 1.248 c 0 0 -0.138 -2.153 -0.138 -2.153 c 0 0 -0.979 -1.096 -0.979 -1.096 c 0 0 0.256 -1.511 0.256 -1.511 c 0 0 2.491 1.248 2.491 1.248 c 0 0 0.646 1.884 0.646 1.884 c 0 0 1.12 -1.667 1.12 -1.667 c 0 0 -1.379 -2.84 -1.379 -2.84 c 0 0 -2.113 -1.373 -2.113 -1.373 c 0 0 -0.294 -1.104 -0.294 -1.104 c 0 0 -1.77 -0.163 -1.77 -0.163 c 0 0 0.403 -1.189 0.403 -1.189 c 0 0 -1.328 -0.901 -1.328 -0.901 c 0 0 1.163 -0.801 1.163 -0.801 c 0 0 -0.396 -2.087 -0.396 -2.087 c 0 0 1.813 -0.197 1.813 -0.197 c 0 0 -0.485 -1.763 -0.485 -1.763 c 0 0 0.353 -0.945 0.353 -0.945 c 0 0 1.317 -0.403 1.317 -0.403 c 0 0 0.982 0.007 0.982 0.007 c 0 0 0.665 -1.239 0.665 -1.239 c 0 0 0.345 1.976 0.345 1.976 c 0 0 2.583 -0.188 2.583 -0.188 c 0 0 1.301 0.867 1.301 0.867 c 0 0 1.081 -0.098 1.081 -0.098 c 0 0 0.205 0.906 0.205 0.906 c 0 0 1.011 0.663 1.011 0.663 c 0 0 2.493 -1.648 2.493 -1.648 c 0 0 0.773 0.891 0.773 0.891 c 0 0 0.999 0.119 0.999 0.119 c 0 0 1.539 -1.518 1.539 -1.518 c 0 0 3.298 -0.388 3.298 -0.388 c 0 0 0.28 0.989 0.28 0.989 c 0 0 1.403 0.633 1.403 0.633 c 0 0 1.595 2.433 1.595 2.433 c 0 0 -3.162 2.329 -3.162 2.329 c 0 0 0.558 0.923 0.558 0.923 c 0 0 -0.385 1.708 -0.385 1.708 c 0 0 1.729 3.064 1.729 3.064 c 0 0 1.062 -0.458 1.062 -0.458 c 0 0 0.449 1.181 0.449 1.181 c 0 0 -0.755 0.531 -0.755 0.531 c 0 0 0.315 0.529 0.315 0.529 c 0 0 2.975 1.226 2.975 1.226 c 0 0 -1.655 2.904 -1.655 2.904 c 0 0 0 0 0 0 c 0 0 0 0 0 0","name":"Saida"},"21":{"path":"M 368.508 30.2198 c 0 0 -0.538 0.351 -0.538 0.351 c 0 0 -0.418 -0.446 -0.418 -0.446 c 0 0 -0.55 1.052 -0.55 1.052 c 0 0 -3.584 1.265 -3.584 1.265 c 0 0 -0.653 0.873 -0.653 0.873 c 0 0 0.42 1.242 0.42 1.242 c 0 0 -2.629 0.698 -2.629 0.698 c 0 0 -0.062 1.543 -0.062 1.543 c 0 0 -1.254 -0.13 -1.254 -0.13 c 0 0 -0.397 -0.7 -0.397 -0.7 c 0 0 -1.124 0.208 -1.124 0.208 c 0 0 0.207 -2.014 0.207 -2.014 c 0 0 0.97 -1.018 0.97 -1.018 c 0 0 -1.8 0.36 -1.8 0.36 c 0 0 -2.274 -0.424 -2.274 -0.424 c 0 0 -0.369 -1.324 -0.369 -1.324 c 0 0 -1.066 1.389 -1.066 1.389 c 0 0 -2.188 -0.147 -2.188 -0.147 c 0 0 -0.967 0.174 -0.967 0.174 c 0 0 -0.254 -1.387 -0.254 -1.387 c 0 0 0.828 -0.194 0.828 -0.194 c 0 0 0.3 -0.783 0.3 -0.783 c 0 0 -2.966 -1.427 -2.966 -1.427 c 0 0 -0.699 -3.309 -0.699 -3.309 c 0 0 -1.635 -0.354 -1.635 -0.354 c 0 0 0.277 -1.183 0.277 -1.183 c 0 0 -0.458 -0.661 -0.458 -0.661 c 0 0 -0.486 -1.046 -0.486 -1.046 c 0 0 0.477 -1.133 0.477 -1.133 c 0 0 1.46 -1.163 1.46 -1.163 c 0 0 2.801 -0.643 2.801 -0.643 c 0 0 1.617 0.827 1.617 0.827 c 0 0 0.77 2.041 0.77 2.041 c 0 0 2.885 0.665 2.885 0.665 c 0 0 0.642 -0.521 0.642 -0.521 c 0 0 0.391 0.479 0.391 0.479 c 0 0 1.646 -0.394 1.646 -0.394 c 0 0 0.779 1.6 0.779 1.6 c 0 0 1.483 0.237 1.483 0.237 c 0 0 2.637 -1.094 2.637 -1.094 c 0 0 1.659 0.04 1.659 0.04 c 0 0 2.043 -1.929 2.043 -1.929 c 0 0 -0.279 -1.044 -0.279 -1.044 c 0 0 -1.836 -1.298 -1.836 -1.298 c 0 0 2.469 0.061 2.469 0.061 c 0 0 0.865 0.703 0.865 0.703 c 0 0 -0.27 0.649 -0.27 0.649 c 0 0 0.934 1.558 0.934 1.558 c 0 0 -0.102 0.528 -0.102 0.528 c 0 0 -0.618 -0.109 -0.618 -0.109 c 0 0 1.345 1.255 1.345 1.255 c 0 0 0.646 3.424 0.646 3.424 c 0 0 -0.074 0.896 -0.074 0.896 c 0 0 -1.197 0.49 -1.197 0.49 c 0 0 0.196 1.267 0.196 1.267 c 0 0 0 0 0 0 c 0 0 0 0 0 0","name":"Skikda"},"22":{"path":"M 204.15 64.0609 c 0 0 -0.642 0.992 -0.642 0.992 c 0 0 0.241 0.965 0.241 0.965 c 0 0 -1.503 0.747 -1.503 0.747 c 0 0 -0.184 -0.672 -0.184 -0.672 c 0 0 -2.838 0.497 -2.838 0.497 c 0 0 -0.066 0.729 -0.066 0.729 c 0 0 -0.969 0.457 -0.969 0.457 c 0 0 -0.813 -0.548 -0.813 -0.548 c 0 0 -0.78 1.395 -0.78 1.395 c 0 0 -0.673 -0.18 -0.673 -0.18 c 0 0 0.286 1.945 0.286 1.945 c 0 0 -1.38 0.462 -1.38 0.462 c 0 0 -0.248 1.449 -0.248 1.449 c 0 0 -0.818 0.477 -0.818 0.477 c 0 0 1.942 1.063 1.942 1.063 c 0 0 -1.313 2.126 -1.313 2.126 c 0 0 0.506 1.828 0.506 1.828 c 0 0 1.191 0.045 1.191 0.045 c 0 0 -0.804 1.135 -0.804 1.135 c 0 0 1.177 -0.239 1.177 -0.239 c 0 0 -0.433 3.193 -0.433 3.193 c 0 0 2.376 -0.271 2.376 -0.271 c 0 0 0.272 1.004 0.272 1.004 c 0 0 -0.496 -0.036 -0.496 -0.036 c 0 0 0.23 0.687 0.23 0.687 c 0 0 -1.285 2.753 -1.285 2.753 c 0 0 -1.609 0.95 -1.609 0.95 c 0 0 0.956 0.198 0.956 0.198 c 0 0 0.362 0.793 0.362 0.793 c 0 0 -6.093 5.633 -6.093 5.633 c 0 0 1.08 1.632 1.08 1.632 c 0 0 2.133 -1.567 2.133 -1.567 c 0 0 0.589 1.018 0.589 1.018 c 0 0 0.342 -0.416 0.342 -0.416 c 0 0 2.966 0.896 2.966 0.896 c 0 0 4.055 -2.511 4.055 -2.511 c 0 0 1.843 1.041 1.843 1.041 c 0 0 3.133 9.769 3.133 9.769 c 0 0 0.314 -1.128 0.314 -1.128 c 0 0 0.854 0.04 0.854 0.04 c 0 0 2.091 -2.885 2.091 -2.885 c 0 0 1.632 -0.712 1.632 -0.712 c 0 0 1.374 0.198 1.374 0.198 c 0 0 1.501 -3.065 1.501 -3.065 c 0 0 0.941 -0.691 0.941 -0.691 c 0 0 -1.231 -5.509 -1.231 -5.509 c 0 0 -1.5 -1.498 -1.5 -1.498 c 0 0 -2.199 1.248 -2.199 1.248 c 0 0 -0.138 -2.153 -0.138 -2.153 c 0 0 -0.979 -1.096 -0.979 -1.096 c 0 0 0.256 -1.511 0.256 -1.511 c 0 0 2.491 1.248 2.491 1.248 c 0 0 0.646 1.884 0.646 1.884 c 0 0 1.12 -1.667 1.12 -1.667 c 0 0 -1.379 -2.84 -1.379 -2.84 c 0 0 -2.113 -1.373 -2.113 -1.373 c 0 0 -0.294 -1.104 -0.294 -1.104 c 0 0 -1.77 -0.163 -1.77 -0.163 c 0 0 0.403 -1.189 0.403 -1.189 c 0 0 -1.328 -0.901 -1.328 -0.901 c 0 0 1.163 -0.801 1.163 -0.801 c 0 0 -0.396 -2.087 -0.396 -2.087 c 0 0 1.813 -0.197 1.813 -0.197 c 0 0 -0.485 -1.763 -0.485 -1.763 c 0 0 0.353 -0.945 0.353 -0.945 c 0 0 1.317 -0.403 1.317 -0.403 c 0 0 -0.804 -2.202 -0.804 -2.202 c 0 0 0.376 -0.966 0.376 -0.966 c 0 0 1.477 -0.712 1.477 -0.712 c 0 0 -0.955 -0.354 -0.955 -0.354 c 0 0 -1.221 1.019 -1.221 1.019 c 0 0 -0.218 -0.549 -0.218 -0.549 c 0 0 1.312 -0.857 1.312 -0.857 c 0 0 0.38 -0.986 0.38 -0.986 c 0 0 -2.728 -0.854 -2.728 -0.854 c 0 0 -0.353 -0.632 -0.353 -0.632 c 0 0 -0.752 0.882 -0.752 0.882 c 0 0 -1.563 -0.12 -1.563 -0.12 c 0 0 0.231 -2.255 0.231 -2.255 c 0 0 -1.589 0.603 -1.589 0.603 c 0 0 -0.783 -0.393 -0.783 -0.393 c 0 0 0 0 0 0 c 0 0 0 0 0 0","name":"Sidi Bel Abbes"},"23":{"path":"M 375.158 30.0759 c 0 0 0.57 -1.447 0.57 -1.447 c 0 0 -0.427 -0.747 -0.427 -0.747 c 0 0 0.969 -1.14 0.969 -1.14 c 0 0 0.939 0.143 0.939 0.143 c 0 0 0.031 -1.328 0.031 -1.328 c 0 0 1.139 -0.009 1.139 -0.009 c 0 0 -0.366 -0.685 -0.366 -0.685 c 0 0 -1.192 -0.868 -1.192 -0.868 c 0 0 0.534 -2.257 0.534 -2.257 c 0 0 -1.771 0.605 -1.771 0.605 c 0 0 -1.04 -0.711 -1.04 -0.711 c 0 0 -0.714 0.503 -0.714 0.503 c 0 0 -2.358 -1.985 -2.358 -1.985 c 0 0 -2.144 0.188 -2.144 0.188 c 0 0 -0.479 -1.129 -0.479 -1.129 c 0 0 -2.073 0.349 -2.073 0.349 c 0 0 0.865 0.705 0.865 0.705 c 0 0 -0.27 0.648 -0.27 0.648 c 0 0 0.934 1.558 0.934 1.558 c 0 0 -0.102 0.529 -0.102 0.529 c 0 0 -0.618 -0.109 -0.618 -0.109 c 0 0 1.345 1.253 1.345 1.253 c 0 0 0.647 3.425 0.647 3.425 c 0 0 -0.075 0.896 -0.075 0.896 c 0 0 -1.196 0.49 -1.196 0.49 c 0 0 0.201 1.266 0.201 1.266 c 0 0 1.15 -0.122 1.15 -0.122 c 0 0 0.438 0.876 0.438 0.876 c 0 0 0.199 -0.74 0.199 -0.74 c 0 0 1.104 -0.509 1.104 -0.509 c 0 0 0.176 1.188 0.176 1.188 c 0 0 2.713 0.503 2.713 0.503 c 0 0 0.871 -1.339 0.871 -1.339 c 0 0 0 0 0 0 c 0 0 0 0 0 0","name":"Annaba"},"24":{"path":"M 375.158 30.0759 c 0 0 0.936 -0.309 0.936 -0.309 c 0 0 0.688 0.501 0.688 0.501 c 0 0 1.188 2.609 1.188 2.609 c 0 0 1.169 -0.383 1.169 -0.383 c 0 0 0.201 0.543 0.201 0.543 c 0 0 -0.047 -0.771 -0.047 -0.771 c 0 0 1.299 0.584 1.299 0.584 c 0 0 0.92 1.851 0.92 1.851 c 0 0 -1.832 1.544 -1.832 1.544 c 0 0 -1.021 -0.411 -1.021 -0.411 c 0 0 -0.195 1.316 -0.195 1.316 c 0 0 1.08 1.383 1.08 1.383 c 0 0 -0.374 0.437 -0.374 0.437 c 0 0 -2.218 0.173 -2.218 0.173 c 0 0 -2.16 2.08 -2.16 2.08 c 0 0 -1.194 -0.271 -1.194 -0.271 c 0 0 -2.52 0.934 -2.52 0.934 c 0 0 -2.854 -0.539 -2.854 -0.539 c 0 0 -0.494 1.348 -0.494 1.348 c 0 0 0.75 0.918 0.75 0.918 c 0 0 -1.257 0.076 -1.257 0.076 c 0 0 -0.683 1.774 -0.683 1.774 c 0 0 -2.784 1.371 -2.784 1.371 c 0 0 -0.998 -0.165 -0.998 -0.165 c 0 0 0.196 -0.958 0.196 -0.958 c 0 0 -1.267 -0.551 -1.267 -0.551 c 0 0 0.201 -1.256 0.201 -1.256 c 0 0 -0.077 -0.57 -0.077 -0.57 c 0 0 0.855 -0.474 0.855 -0.474 c 0 0 0.104 -1.688 0.104 -1.688 c 0 0 -0.561 -1.442 -0.561 -1.442 c 0 0 -1.225 -0.221 -1.225 -0.221 c 0 0 0.6 -0.717 0.6 -0.717 c 0 0 -1.052 -0.557 -1.052 -0.557 c 0 0 0.532 -0.551 0.532 -0.551 c 0 0 -0.572 -0.892 -0.572 -0.892 c 0 0 0.062 -1.543 0.062 -1.543 c 0 0 2.629 -0.698 2.629 -0.698 c 0 0 -0.42 -1.242 -0.42 -1.242 c 0 0 0.653 -0.873 0.653 -0.873 c 0 0 3.583 -1.265 3.583 -1.265 c 0 0 0.55 -1.052 0.55 -1.052 c 0 0 0.419 0.446 0.419 0.446 c 0 0 0.538 -0.351 0.538 -0.351 c 0 0 1.15 -0.122 1.15 -0.122 c 0 0 0.438 0.876 0.438 0.876 c 0 0 0.199 -0.741 0.199 -0.741 c 0 0 1.104 -0.509 1.104 -0.509 c 0 0 0.176 1.188 0.176 1.188 c 0 0 2.713 0.503 2.713 0.503 c 0 0 0.872 -1.333 0.872 -1.333 c 0 0 0 0 0 0 c 0 0 0 0 0 0","name":"Guelma"},"25":{"path":"M 361.888 43.9039 c 0 0 -0.077 -0.57 -0.077 -0.57 c 0 0 0.855 -0.474 0.855 -0.474 c 0 0 0.104 -1.688 0.104 -1.688 c 0 0 -0.561 -1.442 -0.561 -1.442 c 0 0 -1.224 -0.221 -1.224 -0.221 c 0 0 0.599 -0.717 0.599 -0.717 c 0 0 -1.052 -0.557 -1.052 -0.557 c 0 0 0.532 -0.551 0.532 -0.551 c 0 0 -0.572 -0.892 -0.572 -0.892 c 0 0 -1.253 -0.13 -1.253 -0.13 c 0 0 -0.398 -0.7 -0.398 -0.7 c 0 0 -1.124 0.208 -1.124 0.208 c 0 0 0.207 -2.014 0.207 -2.014 c 0 0 0.969 -1.018 0.969 -1.018 c 0 0 -1.799 0.36 -1.799 0.36 c 0 0 -2.274 -0.424 -2.274 -0.424 c 0 0 -0.368 -1.324 -0.368 -1.324 c 0 0 -1.067 1.389 -1.067 1.389 c 0 0 -2.188 -0.147 -2.188 -0.147 c 0 0 -0.02 1.6 -0.02 1.6 c 0 0 -3.298 0.766 -3.298 0.766 c 0 0 0.284 2.021 0.284 2.021 c 0 0 -0.922 1.877 -0.922 1.877 c 0 0 1.319 -0.403 1.319 -0.403 c 0 0 1.126 0.879 1.126 0.879 c 0 0 -0.265 1.487 -0.265 1.487 c 0 0 0.788 0.495 0.788 0.495 c 0 0 1.019 -0.295 1.019 -0.295 c 0 0 0.938 0.805 0.938 0.805 c 0 0 -0.108 1.354 -0.108 1.354 c 0 0 -0.381 0.438 -0.381 0.438 c 0 0 0.595 1.159 0.595 1.159 c 0 0 1.01 0.369 1.01 0.369 c 0 0 -0.464 -0.804 -0.464 -0.804 c 0 0 1.122 0.604 1.122 0.604 c 0 0 0.375 -1.069 0.375 -1.069 c 0 0 2.243 -0.159 2.243 -0.159 c 0 0 0.263 -1.444 0.263 -1.444 c 0 0 1.446 1.166 1.446 1.166 c 0 0 3.621 0.066 3.621 0.066 c 0 0 0 0 0 0 c 0 0 0 0 0 0","name":"Constantine"},"26":{"path":"M 291.189 51.9288 c 0 0 0.272 0.795 0.272 0.795 c 0 0 -1.143 0.688 -1.143 0.688 c 0 0 0.551 0.367 0.551 0.367 c 0 0 -2.021 0.685 -2.021 0.685 c 0 0 0.86 1.28 0.86 1.28 c 0 0 0.034 2.966 0.034 2.966 c 0 0 -2.708 -4.154 -2.708 -4.154 c 0 0 -0.896 0.141 -0.896 0.141 c 0 0 0.406 0.771 0.406 0.771 c 0 0 -0.488 0.495 -0.488 0.495 c 0 0 -1.09 0.049 -1.09 0.049 c 0 0 -0.854 -1.716 -0.854 -1.716 c 0 0 -1.031 1.021 -1.031 1.021 c 0 0 0.104 1.206 0.104 1.206 c 0 0 -0.753 1.37 -0.753 1.37 c 0 0 -2.786 0.7 -2.786 0.7 c 0 0 -0.185 -2.199 -0.185 -2.199 c 0 0 -0.699 0.144 -0.699 0.144 c 0 0 -0.693 -2.337 -0.693 -2.337 c 0 0 -2.585 0.707 -2.585 0.707 c 0 0 0.677 5.005 0.677 5.005 c 0 0 -0.578 -0.259 -0.578 -0.259 c 0 0 -1.83 1.359 -1.83 1.359 c 0 0 -1.605 2.564 -1.605 2.564 c 0 0 -1.292 0.661 -1.292 0.661 c 0 0 -2.698 -1.908 -2.698 -1.908 c 0 0 -0.229 0.56 -0.229 0.56 c 0 0 -2.476 0.813 -2.476 0.813 c 0 0 -2.139 0.167 -2.139 0.167 c 0 0 -0.658 -2.362 -0.658 -2.362 c 0 0 0.71 -1.968 0.71 -1.968 c 0 0 -2.811 -0.738 -2.811 -0.738 c 0 0 -0.347 -1.359 -0.347 -1.359 c 0 0 0.503 -0.62 0.503 -0.62 c 0 0 2.227 0.229 2.227 0.229 c 0 0 0.902 -3.906 0.902 -3.906 c 0 0 1.051 -1.104 1.051 -1.104 c 0 0 -0.339 -0.876 -0.339 -0.876 c 0 0 1.986 0.073 1.986 0.073 c 0 0 0.315 -2.775 0.315 -2.775 c 0 0 0.86 0.234 0.86 0.234 c 0 0 1.842 -1.11 1.842 -1.11 c 0 0 0.062 -1.843 0.062 -1.843 c 0 0 -1.344 -0.306 -1.344 -0.306 c 0 0 -0.085 -1.369 -0.085 -1.369 c 0 0 -0.709 -0.199 -0.709 -0.199 c 0 0 0.625 -1.909 0.625 -1.909 c 0 0 1.348 0.043 1.348 0.043 c 0 0 0.756 -0.614 0.756 -0.614 c 0 0 1.51 -1.087 1.51 -1.087 c 0 0 2.893 0.205 2.893 0.205 c 0 0 1.568 -1.178 1.568 -1.178 c 0 0 0.67 1.507 0.67 1.507 c 0 0 1.481 0.008 1.481 0.008 c 0 0 0.867 -0.967 0.867 -0.967 c 0 0 -0.189 -1.356 -0.189 -1.356 c 0 0 0.474 0.956 0.474 0.956 c 0 0 0.732 -0.598 0.732 -0.598 c 0 0 0.692 0.698 0.692 0.698 c 0 0 1.158 -1.154 1.158 -1.154 c 0 0 0.084 -1.381 0.084 -1.381 c 0 0 1.63 0.271 1.63 0.271 c 0 0 0.479 -0.537 0.479 -0.537 c 0 0 2.722 2.629 2.722 2.629 c 0 0 1.562 -1.479 1.562 -1.479 c 0 0 1.356 0.703 1.356 0.703 c 0 0 -0.439 0.687 -0.439 0.687 c 0 0 0.998 1.392 0.998 1.392 c 0 0 -1.071 0.599 -1.071 0.599 c 0 0 -0.441 1.267 -0.441 1.267 c 0 0 1.069 0.979 1.069 0.979 c 0 0 -0.181 0.809 -0.181 0.809 c 0 0 -1.426 0.414 -1.426 0.414 c 0 0 -0.229 0.854 -0.229 0.854 c 0 0 0.656 1.042 0.656 1.042 c 0 0 -0.409 0.485 -0.409 0.485 c 0 0 -0.898 0.936 -0.898 0.936 c 0 0 -1.014 -0.016 -1.014 -0.016 c 0 0 0.479 0.781 0.479 0.781 c 0 0 2.788 0.434 2.788 0.434 c 0 0 1.41 2.635 1.41 2.635 c 0 0 0 0 0 0 c 0 0 0 0 0 0","name":"Médéa"},"27":{"path":"M 212.85 55.2648 c 0 0 2.964 -1.85 2.964 -1.85 c 0 0 2.338 -4.67 2.338 -4.67 c 0 0 1.846 -1.942 1.846 -1.942 c 0 0 9.188 -5.395 9.188 -5.395 c 0 0 1.74 -0.06 1.74 -0.06 c 0 0 -1.001 3.283 -1.001 3.283 c 0 0 -1.979 2.472 -1.979 2.472 c 0 0 1.289 1.351 1.289 1.351 c 0 0 -0.634 0.698 -0.634 0.698 c 0 0 0.359 0.87 0.359 0.87 c 0 0 -2.126 0.093 -2.126 0.093 c 0 0 -0.555 0.604 -0.555 0.604 c 0 0 -1.226 -0.57 -1.226 -0.57 c 0 0 -0.846 1.017 -0.846 1.017 c 0 0 0.313 0.769 0.313 0.769 c 0 0 0.674 -0.036 0.674 -0.036 c 0 0 -0.59 0.992 -0.59 0.992 c 0 0 0.229 0.908 0.229 0.908 c 0 0 -1.332 1.438 -1.332 1.438 c 0 0 -0.877 -0.373 -0.877 -0.373 c 0 0 -0.867 0.539 -0.867 0.539 c 0 0 -1.744 2.073 -1.744 2.073 c 0 0 -0.903 -0.138 -0.903 -0.138 c 0 0 -0.604 0.964 -0.604 0.964 c 0 0 -0.03 -0.763 -0.03 -0.763 c 0 0 -1.07 0.18 -1.07 0.18 c 0 0 -1.028 -1.427 -1.028 -1.427 c 0 0 -2.252 0.6 -2.252 0.6 c 0 0 -1.276 -1.627 -1.276 -1.627 c 0 0 0 0 0 0 c 0 0 0 0 0 0","name":"Mostaganem"},"28":{"path":"M 320.989 54.6068 c 0 0 -0.17 0.627 -0.17 0.627 c 0 0 1.475 1.042 1.475 1.042 c 0 0 1.106 -0.24 1.106 -0.24 c 0 0 0.486 0.518 0.486 0.518 c 0 0 -0.417 0.537 -0.417 0.537 c 0 0 0.547 0.807 0.547 0.807 c 0 0 3.493 0.469 3.493 0.469 c 0 0 -2.661 2.962 -2.661 2.962 c 0 0 -1.817 0.906 -1.817 0.906 c 0 0 -0.722 -1.068 -0.722 -1.068 c 0 0 -1.062 -0.011 -1.062 -0.011 c 0 0 -0.828 0.921 -0.828 0.921 c 0 0 -0.074 -0.787 -0.074 -0.787 c 0 0 -0.96 1.506 -0.96 1.506 c 0 0 -1.945 -1.698 -1.945 -1.698 c 0 0 0.823 4.4 0.823 4.4 c 0 0 -0.379 2.546 -0.379 2.546 c 0 0 -0.916 1.548 -0.916 1.548 c 0 0 -0.524 -0.186 -0.524 -0.186 c 0 0 -1.187 1.172 -1.187 1.172 c 0 0 0.194 0.606 0.194 0.606 c 0 0 2.929 0.06 2.929 0.06 c 0 0 2.125 1.396 2.125 1.396 c 0 0 0.447 3.492 0.447 3.492 c 0 0 0.547 0.305 0.547 0.305 c 0 0 -0.538 0.065 -0.538 0.065 c 0 0 -0.683 1.586 -0.683 1.586 c 0 0 -5.438 1.63 -5.438 1.63 c 0 0 -0.942 1.502 -0.942 1.502 c 0 0 -1.001 0.173 -1.001 0.173 c 0 0 1.298 1.086 1.298 1.086 c 0 0 -1.021 0.547 -1.021 0.547 c 0 0 -0.657 -0.445 -0.657 -0.445 c 0 0 -1.832 1.14 -1.832 1.14 c 0 0 -4.806 0.046 -4.806 0.046 c 0 0 -0.876 1.823 -0.876 1.823 c 0 0 -2.191 1.835 -2.191 1.835 c 0 0 0.521 0.302 0.521 0.302 c 0 0 0.417 3.083 0.417 3.083 c 0 0 1.218 1.271 1.218 1.271 c 0 0 -0.307 0.725 -0.307 0.725 c 0 0 1.813 0.933 1.813 0.933 c 0 0 -0.773 1.007 -0.773 1.007 c 0 0 -1.99 0.525 -1.99 0.525 c 0 0 -4.303 -3.585 -4.303 -3.585 c 0 0 0.313 -2.084 0.313 -2.084 c 0 0 -1.836 -1.982 -1.836 -1.982 c 0 0 0.299 -2.042 0.299 -2.042 c 0 0 -0.719 -4.248 -0.719 -4.248 c 0 0 -3.906 -0.975 -3.906 -0.975 c 0 0 -1.411 0.479 -1.411 0.479 c 0 0 -0.14 -1.65 -0.14 -1.65 c 0 0 -1.402 -0.322 -1.402 -0.322 c 0 0 0.209 -2.972 0.209 -2.972 c 0 0 -0.698 -0.953 -0.698 -0.953 c 0 0 0.551 -0.068 0.551 -0.068 c 0 0 0.504 -1.539 0.504 -1.539 c 0 0 -1.839 0.736 -1.839 0.736 c 0 0 -1.138 -3.13 -1.138 -3.13 c 0 0 4.282 -3.606 4.282 -3.606 c 0 0 -0.425 -1.94 -0.425 -1.94 c 0 0 0.865 -0.633 0.865 -0.633 c 0 0 0.075 -1.772 0.075 -1.772 c 0 0 -4.719 -3.806 -4.719 -3.806 c 0 0 -1.903 -1.953 -1.903 -1.953 c 0 0 -0.313 -1.258 -0.313 -1.258 c 0 0 0.489 -0.494 0.489 -0.494 c 0 0 -0.405 -0.771 -0.405 -0.771 c 0 0 0.895 -0.14 0.895 -0.14 c 0 0 2.709 4.154 2.709 4.154 c 0 0 -0.037 -2.966 -0.037 -2.966 c 0 0 -0.859 -1.281 -0.859 -1.281 c 0 0 2.022 -0.685 2.022 -0.685 c 0 0 -0.551 -0.367 -0.551 -0.367 c 0 0 1.144 -0.686 1.144 -0.686 c 0 0 -0.274 -0.796 -0.274 -0.796 c 0 0 0.533 -0.809 0.533 -0.809 c 0 0 1.537 0.153 1.537 0.153 c 0 0 0.654 0.924 0.654 0.924 c 0 0 1.07 0.224 1.07 0.224 c 0 0 0.352 1.004 0.352 1.004 c 0 0 0.802 0.048 0.802 0.048 c 0 0 1.271 -1.214 1.271 -1.214 c 0 0 2.542 0.89 2.542 0.89 c 0 0 -0.444 -1.385 -0.444 -1.385 c 0 0 1.058 -3.265 1.058 -3.265 c 0 0 0.57 1.104 0.57 1.104 c 0 0 2.211 -0.769 2.211 -0.769 c 0 0 2.755 0.986 2.755 0.986 c 0 0 3.391 -1.461 3.391 -1.461 c 0 0 0.865 2.774 0.865 2.774 c 0 0 -1.615 0.625 -1.615 0.625 c 0 0 -0.69 2.095 -0.69 2.095 c 0 0 2.823 0.292 2.823 0.292 c 0 0 -0.36 -0.99 -0.36 -0.99 c 0 0 1.328 -0.64 1.328 -0.64 c 0 0 -0.386 1.092 -0.386 1.092 c 0 0 0.663 0.766 0.663 0.766 c 0 0 2.07 -1.562 2.07 -1.562 c 0 0 2.721 -0.533 2.721 -0.533 c 0 0 1.33 1.67 1.33 1.67 c 0 0 1.165 -0.05 1.165 -0.05 c 0 0 0.184 1.218 0.184 1.218 c 0 0 1.399 -0.516 1.399 -0.516 c 0 0 0 0 0 0 c 0 0 0 0 0 0","name":"M'Sila"},"29":{"path":"M 220.012 57.4758 c 0 0 0.578 0.193 0.578 0.193 c 0 0 1.217 3.61 1.217 3.61 c 0 0 1.717 -0.492 1.717 -0.492 c 0 0 0.125 0.523 0.125 0.523 c 0 0 0.858 -0.611 0.858 -0.611 c 0 0 1.282 1.803 1.282 1.803 c 0 0 1.891 -0.041 1.891 -0.041 c 0 0 0.918 0.917 0.918 0.917 c 0 0 1.721 -0.085 1.721 -0.085 c 0 0 0.296 0.662 0.296 0.662 c 0 0 2.047 0.317 2.047 0.317 c 0 0 1.49 1.555 1.49 1.555 c 0 0 -0.688 0.28 -0.688 0.28 c 0 0 -0.874 2.105 -0.874 2.105 c 0 0 -1.111 0.353 -1.111 0.353 c 0 0 -1.521 -0.788 -1.521 -0.788 c 0 0 -1.084 0.159 -1.084 0.159 c 0 0 -1.175 1.41 -1.175 1.41 c 0 0 0.246 0.949 0.246 0.949 c 0 0 -1.553 1.1 -1.553 1.1 c 0 0 -1.071 1.771 -1.071 1.771 c 0 0 -1.54 1.518 -1.54 1.518 c 0 0 -0.999 -0.12 -0.999 -0.12 c 0 0 -0.773 -0.89 -0.773 -0.89 c 0 0 -2.493 1.648 -2.493 1.648 c 0 0 -1.011 -0.662 -1.011 -0.662 c 0 0 -0.205 -0.907 -0.205 -0.907 c 0 0 -1.081 0.098 -1.081 0.098 c 0 0 -1.301 -0.867 -1.301 -0.867 c 0 0 -2.583 0.188 -2.583 0.188 c 0 0 -0.345 -1.976 -0.345 -1.976 c 0 0 -0.665 1.238 -0.665 1.238 c 0 0 -0.982 -0.007 -0.982 -0.007 c 0 0 -0.804 -2.203 -0.804 -2.203 c 0 0 0.376 -0.965 0.376 -0.965 c 0 0 1.477 -0.712 1.477 -0.712 c 0 0 -0.955 -0.354 -0.955 -0.354 c 0 0 -1.222 1.019 -1.222 1.019 c 0 0 -0.217 -0.549 -0.217 -0.549 c 0 0 1.312 -0.856 1.312 -0.856 c 0 0 0.38 -0.987 0.38 -0.987 c 0 0 -2.728 -0.854 -2.728 -0.854 c 0 0 -0.352 -0.632 -0.352 -0.632 c 0 0 -0.753 0.882 -0.753 0.882 c 0 0 -1.563 -0.12 -1.563 -0.12 c 0 0 0.231 -2.254 0.231 -2.254 c 0 0 -1.59 0.602 -1.59 0.602 c 0 0 -0.786 -0.382 -0.786 -0.382 c 0 0 0.318 -0.749 0.318 -0.749 c 0 0 1.029 -0.085 1.029 -0.085 c 0 0 -0.37 -0.949 -0.37 -0.949 c 0 0 1.582 -0.382 1.582 -0.382 c 0 0 0.264 -1.739 0.264 -1.739 c 0 0 2.625 -2.104 2.625 -2.104 c 0 0 -0.667 -0.006 -0.667 -0.006 c 0 0 0.89 -1.532 0.89 -1.532 c 0 0 1.433 1.089 1.433 1.089 c 0 0 1.581 -2.289 1.581 -2.289 c 0 0 1.287 1.577 1.287 1.577 c 0 0 2.252 -0.6 2.252 -0.6 c 0 0 1.029 1.428 1.029 1.428 c 0 0 1.069 -0.181 1.069 -0.181 c 0 0 0.03 0.763 0.03 0.763 c 0 0 0.605 -0.963 0.605 -0.963 c 0 0 0.906 0.136 0.906 0.136 c 0 0 0 0 0 0 c 0 0 0 0 0 0","name":"Mascara"},"30":{"path":"M 327.951 114.981 c 0 0 -0.91 1.857 -0.91 1.857 c 0 0 -3.919 -3.5 -3.919 -3.5 c 0 0 -2.42 5.13 -2.42 5.13 c 0 0 2.209 11.443 2.209 11.443 c 0 0 -5.039 9.304 -5.039 9.304 c 0 0 -6.763 7.312 -6.763 7.312 c 0 0 -0.766 17.01 -0.766 17.01 c 0 0 -3.171 8.157 -3.171 8.157 c 0 0 -10.495 36.704 -10.495 36.704 c 0 0 -1.579 1.093 -1.579 1.093 c 0 0 -6.763 14.091 -6.763 14.091 c 0 0 -8.226 3.631 -8.226 3.631 c 0 0 17.526 14.179 17.526 14.179 c 0 0 -0.146 0.413 -0.146 0.413 c 0 0 43.124 -33.261 43.124 -33.261 c 0 0 15.876 -8.912 15.876 -8.912 c 0 0 2.795 0.889 2.795 0.889 c 0 0 63.493 -16.461 63.493 -16.461 c 0 0 -11.392 -38.443 -11.392 -38.443 c 0 0 -39.729 4.259 -39.729 4.259 c 0 0 -5.501 -6.366 -5.501 -6.366 c 0 0 -7.777 -11.58 -7.777 -11.58 c 0 0 -8.097 -22.969 -8.097 -22.969 c 0 0 -1.219 -7.663 -1.219 -7.663 c 0 0 -0.319 0.807 -0.319 0.807 c 0 0 -0.521 -1.04 -0.521 -1.04 c 0 0 -0.762 0.111 -0.762 0.111 c 0 0 -2.721 2.136 -2.721 2.136 c 0 0 -0.552 -1.05 -0.552 -1.05 c 0 0 -0.665 0.606 -0.665 0.606 c 0 0 -0.047 1.4 -0.047 1.4 c 0 0 1.138 2.602 1.138 2.602 c 0 0 0.039 2.557 0.039 2.557 c 0 0 -0.953 1.07 -0.953 1.07 c 0 0 1.171 1.467 1.171 1.467 c 0 0 0.374 2.7 0.374 2.7 c 0 0 -17.293 0.317 -17.293 0.317 c 0 0 0 0 0 0 c 0 0 0 0 0 0","name":"Ouargla"},"31":{"path":"M 204.15 64.0609 c 0 0 0.319 -0.749 0.319 -0.749 c 0 0 1.029 -0.085 1.029 -0.085 c 0 0 -0.37 -0.95 -0.37 -0.95 c 0 0 1.582 -0.381 1.582 -0.381 c 0 0 0.264 -1.74 0.264 -1.74 c 0 0 2.625 -2.104 2.625 -2.104 c 0 0 -0.667 -0.006 -0.667 -0.006 c 0 0 0.89 -1.532 0.89 -1.532 c 0 0 1.433 1.09 1.433 1.09 c 0 0 1.597 -2.34 1.597 -2.34 c 0 0 -3.432 -0.925 -3.432 -0.925 c 0 0 -0.636 -0.732 -0.636 -0.732 c 0 0 0.279 -0.764 0.279 -0.764 c 0 0 -0.896 -0.845 -0.896 -0.845 c 0 0 -0.981 0.025 -0.981 0.025 c 0 0 -0.675 0.67 -0.675 0.67 c 0 0 -1.5 0.109 -1.5 0.109 c 0 0 -0.331 2.201 -0.331 2.201 c 0 0 -2.492 1.917 -2.492 1.917 c 0 0 -1.325 0.012 -1.325 0.012 c 0 0 -0.406 -0.761 -0.406 -0.761 c 0 0 -2.549 -0.737 -2.549 -0.737 c 0 0 -0.751 1.339 -0.751 1.339 c 0 0 -0.854 0.255 -0.854 0.255 c 0 0 -0.794 -0.59 -0.794 -0.59 c 0 0 -2.608 2.264 -2.608 2.264 c 0 0 1.342 1.429 1.342 1.429 c 0 0 -0.223 0.719 -0.223 0.719 c 0 0 1.009 0.007 1.009 0.007 c 0 0 -0.384 1.019 -0.384 1.019 c 0 0 -0.893 0.252 -0.893 0.252 c 0 0 0.174 1.591 0.174 1.591 c 0 0 0.012 -0.62 0.012 -0.62 c 0 0 0.895 -0.047 0.895 -0.047 c 0 0 -0.201 -0.596 -0.201 -0.596 c 0 0 0.82 0.656 0.82 0.656 c 0 0 1.569 0.021 1.569 0.021 c 0 0 5.066 -1.624 5.066 -1.624 c 0 0 0.775 2.922 0.775 2.922 c 0 0 -0.772 0.564 -0.772 0.564 c 0 0 -0.026 1.101 -0.026 1.101 c 0 0 0.184 0.673 0.184 0.673 c 0 0 1.502 -0.747 1.502 -0.747 c 0 0 -0.24 -0.964 -0.24 -0.964 c 0 0 0.64 -0.997 0.64 -0.997 c 0 0 0 0 0 0 c 0 0 0 0 0 0","name":"Oran"},"32":{"path":"M 233.026 90.7739 c 0 0 -2.853 -0.734 -2.853 -0.734 c 0 0 -4.583 3.134 -4.583 3.134 c 0 0 -1.732 -2.296 -1.732 -2.296 c 0 0 -2.898 2.009 -2.898 2.009 c 0 0 -2.172 -0.253 -2.172 -0.253 c 0 0 -2.096 -2.128 -2.096 -2.128 c 0 0 -2.331 -0.763 -2.331 -0.763 c 0 0 1.232 5.509 1.232 5.509 c 0 0 -0.942 0.691 -0.942 0.691 c 0 0 -1.501 3.065 -1.501 3.065 c 0 0 0.176 2.472 0.176 2.472 c 0 0 1.795 -0.807 1.795 -0.807 c 0 0 1.055 0.748 1.055 0.748 c 0 0 -0.204 2.644 -0.204 2.644 c 0 0 0.751 0.279 0.751 0.279 c 0 0 0.729 1.792 0.729 1.792 c 0 0 0.76 0.113 0.76 0.113 c 0 0 -2.122 1.127 -2.122 1.127 c 0 0 0.828 2.979 0.828 2.979 c 0 0 -2.93 13.106 -2.93 13.106 c 0 0 0.842 2.448 0.842 2.448 c 0 0 -0.887 0.991 -0.887 0.991 c 0 0 0.673 0.434 0.673 0.434 c 0 0 -0.593 1.588 -0.593 1.588 c 0 0 -1.563 0.854 -1.563 0.854 c 0 0 -0.278 1.842 -0.278 1.842 c 0 0 0.827 0.472 0.827 0.472 c 0 0 -0.269 1.131 -0.269 1.131 c 0 0 0.979 1.097 0.979 1.097 c 0 0 -0.397 1.534 -0.397 1.534 c 0 0 0.431 2.391 0.431 2.391 c 0 0 -2.988 5.758 -2.988 5.758 c 0 0 -0.953 4.385 -0.953 4.385 c 0 0 -2.081 -0.471 -2.081 -0.471 c 0 0 -1.103 0.817 -1.103 0.817 c 0 0 -1.05 2.219 -1.05 2.219 c 0 0 -0.139 4.177 -0.139 4.177 c 0 0 0.68 2.281 0.68 2.281 c 0 0 -0.686 0.065 -0.686 0.065 c 0 0 0.179 0.967 0.179 0.967 c 0 0 -0.602 0.846 -0.602 0.846 c 0 0 0.955 1.181 0.955 1.181 c 0 0 -1.242 1.21 -1.242 1.21 c 0 0 1.247 2.015 1.247 2.015 c 0 0 -1.014 1.203 -1.014 1.203 c 0 0 0.036 1.864 0.036 1.864 c 0 0 0.852 1.823 0.852 1.823 c 0 0 2.918 2.352 2.918 2.352 c 0 0 -0.818 2.98 -0.818 2.98 c 0 0 14.029 11.903 14.029 11.903 c 0 0 15.816 -11.179 15.816 -11.179 c 0 0 21.085 -13.183 21.085 -13.183 c 0 0 4.648 -5.149 4.648 -5.149 c 0 0 -0.721 -8.611 -0.721 -8.611 c 0 0 2.573 -1.672 2.573 -1.672 c 0 0 -1.918 -7.688 -1.918 -7.688 c 0 0 -0.564 -6.182 -0.564 -6.182 c 0 0 -3.111 -6.564 -3.111 -6.564 c 0 0 0.146 -1.528 0.146 -1.528 c 0 0 -0.641 -0.886 -0.641 -0.886 c 0 0 3.997 -0.134 3.997 -0.134 c 0 0 0.203 -3.901 0.203 -3.901 c 0 0 -2.073 0.452 -2.073 0.452 c 0 0 -3.52 -1.138 -3.52 -1.138 c 0 0 0.205 -1.673 0.205 -1.673 c 0 0 -3.122 -0.287 -3.122 -0.287 c 0 0 0.285 -2.856 0.285 -2.856 c 0 0 0.82 -1.435 0.82 -1.435 c 0 0 -1.142 -1.009 -1.142 -1.009 c 0 0 -0.124 -0.991 -0.124 -0.991 c 0 0 -1.457 -0.411 -1.457 -0.411 c 0 0 0.247 -2.655 0.247 -2.655 c 0 0 -0.565 -1.551 -0.565 -1.551 c 0 0 -1.828 -1.584 -1.828 -1.584 c 0 0 -3.495 0.817 -3.495 0.817 c 0 0 -1.613 -1.795 -1.613 -1.795 c 0 0 -2.206 -0.969 -2.206 -0.969 c 0 0 0.165 -0.989 0.165 -0.989 c 0 0 -0.863 -1.461 -0.863 -1.461 c 0 0 -1.119 -1.576 -1.119 -1.576 c 0 0 -0.215 -1.844 -0.215 -1.844 c 0 0 -5.541 0.295 -5.541 0.295 c 0 0 0.672 -4.884 0.672 -4.884 c 0 0 -3.971 -0.823 -3.971 -0.823 c 0 0 0 0 0 0 c 0 0 0 0 0 0","name":"El-Bayadh"},"33":{"path":"M 454.129 387.74 c 0 0 -0.719 -20.563 -0.719 -20.563 c 0 0 -7.48 -4.23 -7.48 -4.23 c 0 0 -2.209 0.049 -2.209 0.049 c 0 0 -1.657 -1.011 -1.657 -1.011 c 0 0 -13.903 0.818 -13.903 0.818 c 0 0 -12.891 9.613 -12.891 9.613 c 0 0 -17.177 4.161 -17.177 4.161 c 0 0 -6.243 -4.393 -6.243 -4.393 c 0 0 1.974 -2.232 1.974 -2.232 c 0 0 -5.578 -12.361 -5.578 -12.361 c 0 0 -1.04 -10.938 -1.04 -10.938 c 0 0 0.237 -3.784 0.237 -3.784 c 0 0 -5.594 -8.033 -5.594 -8.033 c 0 0 -4.477 -0.14 -4.477 -0.14 c 0 0 -2.836 -2.179 -2.836 -2.179 c 0 0 -3.687 -6.237 -3.687 -6.237 c 0 0 -1.628 -4.169 -1.628 -4.169 c 0 0 -5.061 -6.142 -5.061 -6.142 c 0 0 -5.932 -16.141 -5.932 -16.141 c 0 0 -1.532 -1.133 -1.532 -1.133 c 0 0 -0.138 -1.004 -0.138 -1.004 c 0 0 -2.248 -0.6 -2.248 -0.6 c 0 0 -1.181 -1.556 -1.181 -1.556 c 0 0 1.06 -3.063 1.06 -3.063 c 0 0 2.819 -2.35 2.819 -2.35 c 0 0 -0.418 -1.914 -0.418 -1.914 c 0 0 -12.688 -11.211 -12.688 -11.211 c 0 0 -0.038 -8.717 -0.038 -8.717 c 0 0 -3.731 -17.58 -3.731 -17.58 c 0 0 1.773 -8.354 1.773 -8.354 c 0 0 -1.295 -33.809 -1.295 -33.809 c 0 0 15.876 -8.912 15.876 -8.912 c 0 0 2.796 0.888 2.796 0.888 c 0 0 63.493 -16.461 63.493 -16.461 c 0 0 2.411 8.262 2.411 8.262 c 0 0 -3.099 1.292 -3.099 1.292 c 0 0 -0.465 1.084 -0.465 1.084 c 0 0 0.689 2.608 0.689 2.608 c 0 0 2.979 3.429 2.979 3.429 c 0 0 6.166 11.784 6.166 11.784 c 0 0 2.729 9.976 2.729 9.976 c 0 0 1.149 6.791 1.149 6.791 c 0 0 -0.747 12.151 -0.747 12.151 c 0 0 3.65 10.479 3.65 10.479 c 0 0 -0.548 4.821 -0.548 4.821 c 0 0 -1.157 2.46 -1.157 2.46 c 0 0 -1.083 0.37 -1.083 0.37 c 0 0 1.397 0.222 1.397 0.222 c 0 0 -0.245 1.499 -0.245 1.499 c 0 0 -1.049 1.133 -1.049 1.133 c 0 0 -0.483 2.826 -0.483 2.826 c 0 0 0.133 2.473 0.133 2.473 c 0 0 2.239 7.597 2.239 7.597 c 0 0 1.692 2.23 1.692 2.23 c 0 0 0.099 5.493 0.099 5.493 c 0 0 -0.928 3.311 -0.928 3.311 c 0 0 -7.815 3.964 -7.815 3.964 c 0 0 -1.079 3.438 -1.079 3.438 c 0 0 -1.214 1.554 -1.214 1.554 c 0 0 16.01 20.327 16.01 20.327 c 0 0 0.78 10.061 0.78 10.061 c 0 0 4.756 7.704 4.756 7.704 c 0 0 3.475 2.664 3.475 2.664 c 0 0 4.406 -0.238 4.406 -0.238 c 0 0 1.539 -1.13 1.539 -1.13 c 0 0 2.129 -0.146 2.129 -0.146 c 0 0 1.531 1.491 1.531 1.491 c 0 0 1.29 -1.619 1.29 -1.619 c 0 0 1.709 0.246 1.709 0.246 c 0 0 1.289 0.52 1.289 0.52 c 0 0 2.539 2.53 2.539 2.53 c 0 0 2.012 0.66 2.012 0.66 c 0 0 7.08 4.37 7.08 4.37 c 0 0 4.112 -1.98 4.112 -1.98 c 0 0 10.551 17.862 10.551 17.862 c 0 0 -39.276 29.119 -39.276 29.119 c 0 0 0 0 0 0 c 0 0 0 0 0 0","name":"Illizi"},"34":{"path":"M 320.989 54.6068 c 0 0 -0.019 -1.603 -0.019 -1.603 c 0 0 2.087 -0.288 2.087 -0.288 c 0 0 -0.482 -2.927 -0.482 -2.927 c 0 0 1.669 -2.858 1.669 -2.858 c 0 0 -0.971 -0.972 -0.971 -0.972 c 0 0 0.127 -2.078 0.127 -2.078 c 0 0 -0.963 -0.272 -0.963 -0.272 c 0 0 -1.479 -2.545 -1.479 -2.545 c 0 0 -1.203 -0.363 -1.203 -0.363 c 0 0 -0.962 0.653 -0.962 0.653 c 0 0 -2.853 0.298 -2.853 0.298 c 0 0 -0.779 -0.983 -0.779 -0.983 c 0 0 0.3 -1.875 0.3 -1.875 c 0 0 -1.258 -0.672 -1.258 -0.672 c 0 0 -0.336 1.124 -0.336 1.124 c 0 0 -2.018 0.919 -2.018 0.919 c 0 0 -0.034 2.49 -0.034 2.49 c 0 0 -4.18 1.099 -4.18 1.099 c 0 0 -0.774 -1.701 -0.774 -1.701 c 0 0 -0.783 0.919 -0.783 0.919 c 0 0 -1.362 -0.093 -1.362 -0.093 c 0 0 -0.794 1.241 -0.794 1.241 c 0 0 -1.708 0.861 -1.708 0.861 c 0 0 -0.186 2.385 -0.186 2.385 c 0 0 -1.469 1.134 -1.469 1.134 c 0 0 0.569 1.104 0.569 1.104 c 0 0 2.211 -0.77 2.211 -0.77 c 0 0 2.755 0.987 2.755 0.987 c 0 0 3.392 -1.461 3.392 -1.461 c 0 0 0.863 2.774 0.863 2.774 c 0 0 -1.616 0.625 -1.616 0.625 c 0 0 -0.689 2.095 -0.689 2.095 c 0 0 2.823 0.292 2.823 0.292 c 0 0 -0.36 -0.99 -0.36 -0.99 c 0 0 1.328 -0.64 1.328 -0.64 c 0 0 -0.387 1.092 -0.387 1.092 c 0 0 0.664 0.766 0.664 0.766 c 0 0 2.07 -1.562 2.07 -1.562 c 0 0 2.722 -0.532 2.722 -0.532 c 0 0 1.327 1.669 1.327 1.669 c 0 0 1.167 -0.05 1.167 -0.05 c 0 0 0.184 1.218 0.184 1.218 c 0 0 1.407 -0.51 1.407 -0.51 c 0 0 0 0 0 0 c 0 0 0 0 0 0","name":"Bord-Bou-Arréridj"},"35":{"path":"M 284.507 35.4899 c 0 0 2.089 0.118 2.089 0.118 c 0 0 1.365 -0.714 1.365 -0.714 c 0 0 0.479 -0.984 0.479 -0.984 c 0 0 4.716 0.709 4.716 0.709 c 0 0 -0.218 -1.694 -0.218 -1.694 c 0 0 1.416 -0.319 1.416 -0.319 c 0 0 0.847 0.593 0.847 0.593 c 0 0 -0.165 -1.289 -0.165 -1.289 c 0 0 1.354 0.313 1.354 0.313 c 0 0 -0.771 -0.862 -0.771 -0.862 c 0 0 0.386 -1.441 0.386 -1.441 c 0 0 1.042 0.231 1.042 0.231 c 0 0 0.18 -0.604 0.18 -0.604 c 0 0 0.944 -0.077 0.944 -0.077 c 0 0 0.045 -0.779 0.045 -0.779 c 0 0 1.354 -1.163 1.354 -1.163 c 0 0 -0.135 -1.239 -0.135 -1.239 c 0 0 -3.063 -0.523 -3.063 -0.523 c 0 0 -3.242 1.034 -3.242 1.034 c 0 0 -0.906 1.079 -0.906 1.079 c 0 0 -3.85 1.986 -3.85 1.986 c 0 0 -2.822 -0.274 -2.822 -0.274 c 0 0 -0.271 0.609 -0.271 0.609 c 0 0 0.658 -0.216 0.658 -0.216 c 0 0 0.03 1.021 0.03 1.021 c 0 0 -2.279 0.745 -2.279 0.745 c 0 0 -0.66 -0.482 -0.66 -0.482 c 0 0 0.392 0.701 0.392 0.701 c 0 0 -0.689 0.547 -0.689 0.547 c 0 0 0.756 1.311 0.756 1.311 c 0 0 0.888 -0.351 0.888 -0.351 c 0 0 -0.536 0.479 -0.536 0.479 c 0 0 0.471 0.856 0.471 0.856 c 0 0 -0.385 0.413 -0.385 0.413 c 0 0 0.58 0.266 0.58 0.266 c 0 0 0 0 0 0 c 0 0 0 0 0 0","name":"Boumerdès"},"36":{"path":"M 378.015 24.8629 c 0 0 0.366 0.686 0.366 0.686 c 0 0 -1.139 0.009 -1.139 0.009 c 0 0 -0.031 1.328 -0.031 1.328 c 0 0 -0.939 -0.144 -0.939 -0.144 c 0 0 -0.969 1.141 -0.969 1.141 c 0 0 0.427 0.747 0.427 0.747 c 0 0 -0.57 1.447 -0.57 1.447 c 0 0 0.937 -0.31 0.937 -0.31 c 0 0 0.687 0.501 0.687 0.501 c 0 0 1.188 2.609 1.188 2.609 c 0 0 1.168 -0.382 1.168 -0.382 c 0 0 0.201 0.542 0.201 0.542 c 0 0 -0.047 -0.771 -0.047 -0.771 c 0 0 1.299 0.586 1.299 0.586 c 0 0 0.92 1.85 0.92 1.85 c 0 0 1.383 -0.02 1.383 -0.02 c 0 0 0.272 1.761 0.272 1.761 c 0 0 0.823 -1.258 0.823 -1.258 c 0 0 1.821 -0.823 1.821 -0.823 c 0 0 -0.327 -0.753 -0.327 -0.753 c 0 0 0.471 -0.48 0.471 -0.48 c 0 0 2.326 -0.796 2.326 -0.796 c 0 0 2.308 -2.13 2.308 -2.13 c 0 0 0.916 -0.119 0.916 -0.119 c 0 0 0.696 -2.05 0.696 -2.05 c 0 0 -0.425 -1.147 -0.425 -1.147 c 0 0 -0.861 -0.401 -0.861 -0.401 c 0 0 2.97 -0.532 2.97 -0.532 c 0 0 1.982 -1.323 1.982 -1.323 c 0 0 0.178 -0.521 0.178 -0.521 c 0 0 -1.188 -0.337 -1.188 -0.337 c 0 0 0.199 -2.228 0.199 -2.228 c 0 0 -4.452 1.441 -4.452 1.441 c 0 0 -1.429 -0.654 -1.429 -0.654 c 0 0 -1.822 0.272 -1.822 0.272 c 0 0 -0.981 -0.861 -0.981 -0.861 c 0 0 -4.735 2.676 -4.735 2.676 c 0 0 -3.623 0.444 -3.623 0.444 c 0 0 0 0 0 0 c 0 0 0 0 0 0","name":"El-Taref"},"37":{"path":"M 144.372 270.771 c 0 0 -13.244 -1.683 -13.244 -1.683 c 0 0 -3.001 -2.419 -3.001 -2.419 c 0 0 -5.835 -7.099 -5.835 -7.099 c 0 0 -0.084 -7.644 -0.084 -7.644 c 0 0 -6.775 -12.676 -6.775 -12.676 c 0 0 -5.777 -21.184 -5.777 -21.184 c 0 0 -5.817 -3.172 -5.817 -3.172 c 0 0 -8.409 -0.353 -8.409 -0.353 c 0 0 -4.977 -4.181 -4.977 -4.181 c 0 0 -1.59 2.116 -1.59 2.116 c 0 0 -2.652 -1.77 -2.652 -1.77 c 0 0 -1.38 0.46 -1.38 0.46 c 0 0 0.685 -1.695 0.685 -1.695 c 0 0 -1.662 -0.829 -1.662 -0.829 c 0 0 -5.937 0.964 -5.937 0.964 c 0 0 -2.253 -0.648 -2.253 -0.648 c 0 0 -5.062 0.498 -5.062 0.498 c 0 0 -1.257 -0.472 -1.257 -0.472 c 0 0 -1.854 1.008 -1.854 1.008 c 0 0 -3.731 -0.108 -3.731 -0.108 c 0 0 -1.934 1.228 -1.934 1.228 c 0 0 -8.19 -2.131 -8.19 -2.131 c 0 0 -5.64 3.248 -5.64 3.248 c 0 0 -4.957 -0.147 -4.957 -0.147 c 0 0 -1.001 1.766 -1.001 1.766 c 0 0 -3.104 0.861 -3.104 0.861 c 0 0 -4.236 3.001 -4.236 3.001 c 0 0 -5.013 2.403 -5.013 2.403 c 0 0 -6.767 5.049 -6.767 5.049 c 0 0 -4.839 1.729 -4.839 1.729 c 0 0 -3.193 35.971 -3.193 35.971 c 0 0 65.958 50.321 65.958 50.321 c 0 0 12.962 -4.238 12.962 -4.238 c -0.001 0 7.204 -6.951 7.204 -6.951 c 0 0 14.179 0.237 14.179 0.237 c 0 0 3.038 -6.721 3.038 -6.721 c 0 0 7.18 -9.721 7.18 -9.721 c 0 0 2.317 -1.98 2.317 -1.98 c 0 0 3.858 -1.585 3.858 -1.585 c 0 0 7.686 0.562 7.686 0.562 c 0 0 1.78 -1.06 1.78 -1.06 c 0 0 3.324 -10.955 3.324 -10.955 c 0 0 0 0 0 0 c 0 0 0 0 0 0","name":"Tindouf"},"38":{"path":"M 244.49 53.8549 c 0 0 0.771 0.672 0.771 0.672 c 0 0 -1.122 1.335 -1.122 1.335 c 0 0 -0.706 -0.143 -0.706 -0.143 c 0 0 -0.332 -0.894 -0.332 -0.894 c 0 0 -0.993 0.542 -0.993 0.542 c 0 0 0.206 1.651 0.206 1.651 c 0 0 -0.649 1.073 -0.649 1.073 c 0 0 1.344 1.67 1.344 1.67 c 0 0 0.59 -2.298 0.59 -2.298 c 0 0 1.271 0.932 1.271 0.932 c 0 0 0.538 -0.305 0.538 -0.305 c 0 0 1.353 0.765 1.353 0.765 c 0 0 0.062 1.415 0.062 1.415 c 0 0 1.953 -0.175 1.953 -0.175 c 0 0 1.045 1.72 1.045 1.72 c 0 0 0.813 0.154 0.813 0.154 c 0 0 0.172 -1.047 0.172 -1.047 c 0 0 0.958 0.974 0.958 0.974 c 0 0 3.797 -0.434 3.797 -0.434 c 0 0 2.436 -1.337 2.436 -1.337 c 0 0 -0.56 0.671 -0.56 0.671 c 0 0 1.55 0.067 1.55 0.067 c 0 0 -0.029 0.951 -0.029 0.951 c 0 0 3.701 -0.316 3.701 -0.316 c 0 0 0.708 -1.967 0.708 -1.967 c 0 0 -2.81 -0.739 -2.81 -0.739 c 0 0 -0.347 -1.359 -0.347 -1.359 c 0 0 0.504 -0.619 0.504 -0.619 c 0 0 2.226 0.229 2.226 0.229 c 0 0 0.901 -3.905 0.901 -3.905 c 0 0 -1.561 -0.133 -1.561 -0.133 c 0 0 -0.842 -1.107 -0.842 -1.107 c 0 0 -1.228 -0.057 -1.228 -0.057 c 0 0 -0.44 -0.937 -0.44 -0.937 c 0 0 -2.687 0.709 -2.687 0.709 c 0 0 0.006 -1.004 0.006 -1.004 c 0 0 -2.634 2.928 -2.634 2.928 c 0 0 -0.774 0.021 -0.774 0.021 c 0 0 -0.399 -1.149 -0.399 -1.149 c 0 0 -2.134 -0.251 -2.134 -0.251 c 0 0 -1.909 -1.17 -1.909 -1.17 c 0 0 -1.035 -1.876 -1.035 -1.876 c 0 0 -1.22 1.163 -1.22 1.163 c 0 0 -0.035 0.865 -0.035 0.865 c 0 0 -2.264 0.618 -2.264 0.618 c 0 0 0.384 0.35 0.384 0.35 c 0 0 -0.518 0.333 -0.518 0.333 c 0 0 -0.061 1.414 -0.061 1.414 c 0 0 0 0 0 0 c 0 0 0 0 0 0","name":"Tissemsilt"},"39":{"path":"M 381.341 91.9338 c 0 0 -8.26 -0.416 -8.26 -0.416 c 0 0 -4.264 -1.485 -4.264 -1.485 c 0 0 -4.422 0.397 -4.422 0.397 c 0 0 -0.09 4.578 -0.09 4.578 c 0 0 -1.543 -0.353 -1.543 -0.353 c 0 0 -5.193 -3.142 -5.193 -3.142 c 0 0 -0.05 -2.156 -0.05 -2.156 c 0 0 -1.726 2.196 -1.726 2.196 c 0 0 -1.654 0.581 -1.654 0.581 c 0 0 -1.451 -1.393 -1.451 -1.393 c 0 0 -5.732 -2.047 -5.732 -2.047 c 0 0 -5.311 1.305 -5.311 1.305 c 0 0 -11.927 -1.27 -11.927 -1.27 c 0 0 -2.287 -1.521 -2.287 -1.521 c 0 0 -1.104 0.629 -1.104 0.629 c 0 0 0.72 0.627 0.72 0.627 c 0 0 -1.889 1.328 -1.889 1.328 c 0 0 1.198 1.354 1.198 1.354 c 0 0 -0.702 1.853 -0.702 1.853 c 0 0 3.667 3.255 3.667 3.255 c 0 0 -1.968 4.695 -1.968 4.695 c 0 0 -0.858 4.001 -0.858 4.001 c 0 0 1.083 2.091 1.083 2.091 c 0 0 0.35 4.628 0.35 4.628 c 0 0 0.688 1.585 0.688 1.585 c 0 0 -0.662 1.726 -0.662 1.726 c 0 0 17.299 -0.319 17.299 -0.319 c 0 0 -0.374 -2.7 -0.374 -2.7 c 0 0 -1.172 -1.467 -1.172 -1.467 c 0 0 0.955 -1.07 0.955 -1.07 c 0 0 -0.04 -2.557 -0.04 -2.557 c 0 0 -1.138 -2.602 -1.138 -2.602 c 0 0 0.047 -1.4 0.047 -1.4 c 0 0 0.665 -0.606 0.665 -0.606 c 0 0 0.552 1.049 0.552 1.049 c 0 0 2.721 -2.135 2.721 -2.135 c 0 0 0.762 -0.112 0.762 -0.112 c 0 0 0.521 1.041 0.521 1.041 c 0 0 0.319 -0.807 0.319 -0.807 c 0 0 1.219 7.663 1.219 7.663 c 0 0 8.097 22.969 8.097 22.969 c 0 0 7.777 11.58 7.777 11.58 c 0 0 5.501 6.366 5.501 6.366 c 0 0 39.729 -4.259 39.729 -4.259 c 0 0 -15.994 -9.721 -15.994 -9.721 c 0 0 -1.19 -8.167 -1.19 -8.167 c 0 0 -4.769 -5.554 -4.769 -5.554 c 0 0 -0.044 -1.279 -0.044 -1.279 c 0 0 -4.671 -1.931 -4.671 -1.931 c 0 0 -1.588 -0.012 -1.588 -0.012 c 0 0 -1.992 -6.096 -1.992 -6.096 c 0 0 -3.565 -5.578 -3.565 -5.578 c 0 0 -0.276 -2.739 -0.276 -2.739 c 0 0 -1.411 -1.059 -1.411 -1.059 c 0 0 0.465 -1.005 0.465 -1.005 c 0 0 -0.633 -1.784 -0.633 -1.784 c 0 0 0.574 -2.841 0.574 -2.841 c 0 0 -0.731 -1.183 -0.731 -1.183 c 0 0 1.695 -1.198 1.695 -1.198 c 0 0 0.905 -2.192 0.905 -2.192 c 0 0 1.676 0.677 1.676 0.677 c 0 0 1.6 -1.261 1.6 -1.261 c 0 0 -0.104 -0.757 -0.104 -0.757 c 0 0 0 0 0 0 c 0 0 0 0 0 0","name":"El Oued"},"40":{"path":"M 368.82 90.0319 c 0 0 0.773 -5.083 0.773 -5.083 c 0 0 2.108 -3.938 2.108 -3.938 c 0 0 0.024 -1.697 0.024 -1.697 c 0 0 -0.637 -0.956 -0.637 -0.956 c 0 0 0.749 -2.004 0.749 -2.004 c 0 0 -0.868 -2.387 -0.868 -2.387 c 0 0 -1.271 -0.098 -1.271 -0.098 c 0 0 -0.661 0.97 -0.661 0.97 c 0 0 -0.441 1.352 -0.441 1.352 c 0 0 0.5 -0.146 0.5 -0.146 c 0 0 -0.088 1.582 -0.088 1.582 c 0 0 -0.908 -2.111 -0.908 -2.111 c 0 0 1.39 -3.602 1.39 -3.602 c 0 0 1.306 -0.817 1.306 -0.817 c 0 0 1.429 -2.436 1.429 -2.436 c 0 0 -1.051 -1.557 -1.051 -1.557 c 0 0 0.787 -1.188 0.787 -1.188 c 0 0 -0.763 -0.573 -0.763 -0.573 c 0 0 -0.117 -2.443 -0.117 -2.443 c 0 0 3.133 -1.131 3.133 -1.131 c 0 0 -0.659 -1.052 -0.659 -1.052 c 0 0 -0.692 -0.061 -0.692 -0.061 c 0 0 -0.333 -1.191 -0.333 -1.191 c 0 0 -0.393 -0.313 -0.393 -0.313 c 0 0 -0.6 0.601 -0.6 0.601 c 0 0 0.179 -0.579 0.179 -0.579 c 0 0 -1.313 -0.926 -1.313 -0.926 c 0 0 -0.409 1.4 -0.409 1.4 c 0 0 -1.048 0.308 -1.048 0.308 c 0 0 0.063 -2.164 0.063 -2.164 c 0 0 -1.77 -0.877 -1.77 -0.877 c 0 0 -0.119 0.549 -0.119 0.549 c 0 0 -1.815 -0.27 -1.815 -0.27 c 0 0 -0.957 2.009 -0.957 2.009 c 0 0 -1.648 -0.483 -1.648 -0.483 c 0 0 0.408 -1.016 0.408 -1.016 c 0 0 -0.614 -0.53 -0.614 -0.53 c 0 0 -4.031 0.609 -4.031 0.609 c 0 0 -0.774 -1.595 -0.774 -1.595 c 0 0 -0.214 1.337 -0.214 1.337 c 0 0 0.74 1.491 0.74 1.491 c 0 0 -0.612 1.515 -0.612 1.515 c 0 0 -2.418 0.598 -2.418 0.598 c 0 0 -1.491 1.387 -1.491 1.387 c 0 0 0.634 1.334 0.634 1.334 c 0 0 -0.178 1.438 -0.178 1.438 c 0 0 1.052 0.219 1.052 0.219 c 0 0 -1.644 1.396 -1.644 1.396 c 0 0 0.23 2.636 0.23 2.636 c 0 0 -1.308 1.429 -1.308 1.429 c 0 0 0.438 1.353 0.438 1.353 c 0 0 -0.401 0.844 -0.401 0.844 c 0 0 0.802 0.146 0.802 0.146 c 0 0 1.347 2.256 1.347 2.256 c 0 0 -0.499 0.58 -0.499 0.58 c 0 0 0.611 0.482 0.611 0.482 c 0 0 -0.812 0.796 -0.812 0.796 c 0 0 0.634 2.146 0.634 2.146 c 0 0 1.087 -0.603 1.087 -0.603 c 0 0 0.737 -1.717 0.737 -1.717 c 0 0 1.138 -0.063 1.138 -0.063 c 0 0 -0.399 0.473 -0.399 0.473 c 0 0 1.047 1.056 1.047 1.056 c 0 0 -0.415 0.997 -0.415 0.997 c 0 0 0.821 -0.196 0.821 -0.196 c 0 0 -0.726 2.389 -0.726 2.389 c 0 0 0.163 3.493 0.163 3.493 c 0 0 -1.047 2.038 -1.047 2.038 c 0 0 0.517 1.927 0.517 1.927 c 0 0 0.05 2.157 0.05 2.157 c 0 0 5.193 3.14 5.193 3.14 c 0 0 1.543 0.354 1.543 0.354 c 0 0 0.09 -4.578 0.09 -4.578 c 0 0 4.421 -0.406 4.421 -0.406 c 0 0 0 0 0 0 c 0 0 0 0 0 0","name":"Khenchela"},"41":{"path":"M 389.163 47.3318 c 0 0 -2.177 -1.081 -2.177 -1.081 c 0 0 -2.499 1.112 -2.499 1.112 c 0 0 -1.255 -0.156 -1.255 -0.156 c 0 0 -2.103 2.353 -2.103 2.353 c 0 0 -1.622 0.03 -1.622 0.03 c 0 0 -1.877 -1.4 -1.877 -1.4 c 0 0 -0.397 1.363 -0.397 1.363 c 0 0 -0.817 0.485 -0.817 0.485 c 0 0 0.354 1.537 0.354 1.537 c 0 0 -2.814 0.214 -2.814 0.214 c 0 0 0.03 -1.478 0.03 -1.478 c 0 0 -2.674 -0.94 -2.674 -0.94 c 0 0 -1.024 -1.331 -1.024 -1.331 c 0 0 -0.649 -2.12 -0.649 -2.12 c 0 0 -0.736 -0.046 -0.736 -0.046 c 0 0 -0.424 -2.263 -0.424 -2.263 c 0 0 -0.75 -0.918 -0.75 -0.918 c 0 0 0.494 -1.348 0.494 -1.348 c 0 0 2.854 0.539 2.854 0.539 c 0 0 2.52 -0.934 2.52 -0.934 c 0 0 1.194 0.271 1.194 0.271 c 0 0 2.159 -2.081 2.159 -2.081 c 0 0 2.218 -0.172 2.218 -0.172 c 0 0 0.375 -0.438 0.375 -0.438 c 0 0 -1.08 -1.382 -1.08 -1.382 c 0 0 0.194 -1.316 0.194 -1.316 c 0 0 1.022 0.411 1.022 0.411 c 0 0 1.832 -1.544 1.832 -1.544 c 0 0 1.383 -0.021 1.383 -0.021 c 0 0 0.272 1.761 0.272 1.761 c 0 0 0.821 -1.258 0.821 -1.258 c 0 0 1.822 -0.823 1.822 -0.823 c 0 0 3.195 0.846 3.195 0.846 c 0 0 0.745 -0.53 0.745 -0.53 c 0 0 1.177 0.636 1.177 0.636 c 0 0 -0.594 1.719 -0.594 1.719 c 0 0 0.381 1.252 0.381 1.252 c 0 0 -1.052 1.066 -1.052 1.066 c 0 0 0.396 0.812 0.396 0.812 c 0 0 -0.868 1.572 -0.868 1.572 c 0 0 0.833 1.825 0.833 1.825 c 0 0 -0.868 1.552 -0.868 1.552 c 0 0 0.009 2.224 0.009 2.224 c 0 0 0 0 0 0 c 0 0 0 0 0 0","name":"Souk Ahras"},"42":{"path":"M 250.882 35.7498 c 0 0 -1.098 2.467 -1.098 2.467 c 0 0 1.42 2.608 1.42 2.608 c 0 0 1.47 -1.099 1.47 -1.099 c 0 0 0.288 -1.11 0.288 -1.11 c 0 0 3.892 0.806 3.892 0.806 c 0 0 2.96 -0.969 2.96 -0.969 c 0 0 2.729 0.814 2.729 0.814 c 0 0 4.677 0.011 4.677 0.011 c 0 0 1.037 -1.463 1.037 -1.463 c 0 0 1.568 0.302 1.568 0.302 c 0 0 0.447 -0.642 0.447 -0.642 c 0 0 -0.442 -0.802 -0.442 -0.802 c 0 0 1.06 -0.14 1.06 -0.14 c 0 0 1.479 -1.647 1.479 -1.647 c 0 0 2.109 -0.599 2.109 -0.599 c 0 0 -0.34 -1.022 -0.34 -1.022 c 0 0 -0.134 -1.446 -0.134 -1.446 c 0 0 -5.189 2.836 -5.189 2.836 c 0 0 -2.726 -0.038 -2.726 -0.038 c 0 0 -0.48 -1.023 -0.48 -1.023 c 0 0 -1.177 -0.279 -1.177 -0.279 c 0 0 -6.739 2.031 -6.739 2.031 c 0 0 -2.311 -0.272 -2.311 -0.272 c 0 0 -4.5 0.676 -4.5 0.676 c 0 0 0 0 0 0 c 0 0 0 0 0 0","name":"Tipaza"},"43":{"path":"M 344.575 51.2509 c 0 0 -3.583 -0.418 -3.583 -0.418 c 0 0 -0.49 0.384 -0.49 0.384 c 0 0 1.2 -1.293 1.2 -1.293 c 0 0 -1.162 -1.213 -1.162 -1.213 c 0 0 0.688 -0.604 0.688 -0.604 c 0 0 -0.284 -2.085 -0.284 -2.085 c 0 0 -1.715 -0.398 -1.715 -0.398 c 0 0 -0.049 -1.869 -0.049 -1.869 c 0 0 0.978 -0.521 0.978 -0.521 c 0 0 -2.188 -2.367 -2.188 -2.367 c 0 0 0.097 -1.172 0.097 -1.172 c 0 0 -1.395 -0.427 -1.395 -0.427 c 0 0 0.114 -1.347 0.114 -1.347 c 0 0 -1.244 -0.953 -1.244 -0.953 c 0 0 0.125 -2.048 0.125 -2.048 c 0 0 -0.558 -0.717 -0.558 -0.717 c 0 0 1.112 -0.339 1.112 -0.339 c 0 0 1.367 0.723 1.367 0.723 c 0 0 1.504 -0.447 1.504 -0.447 c 0 0 1.242 -1.67 1.242 -1.67 c 0 0 4.855 0.813 4.855 0.813 c 0 0 1.86 -1.232 1.86 -1.232 c 0 0 0.435 0.64 0.435 0.64 c 0 0 2.741 0.48 2.741 0.48 c 0 0 0.968 -0.175 0.968 -0.175 c 0 0 -0.021 1.6 -0.021 1.6 c 0 0 -3.296 0.765 -3.296 0.765 c 0 0 0.284 2.021 0.284 2.021 c 0 0 -0.921 1.877 -0.921 1.877 c 0 0 1.318 -0.403 1.318 -0.403 c 0 0 1.126 0.879 1.126 0.879 c 0 0 -0.265 1.486 -0.265 1.486 c 0 0 0.788 0.496 0.788 0.496 c 0 0 1.019 -0.295 1.019 -0.295 c 0 0 0.938 0.805 0.938 0.805 c 0 0 -0.108 1.354 -0.108 1.354 c 0 0 -2.365 0.863 -2.365 0.863 c 0 0 -0.161 2.791 -0.161 2.791 c 0 0 -1.221 1.531 -1.221 1.531 c 0 0 -0.78 -0.115 -0.78 -0.115 c 0 0 0.213 0.771 0.213 0.771 c 0 0 -0.716 -0.51 -0.716 -0.51 c 0 0 -1.649 0.227 -1.649 0.227 c 0 0 -0.801 2.112 -0.801 2.112 c 0 0 0 0 0 0 c 0 0 0 0 0 0","name":"Mila"},"44":{"path":"M 270.211 41.3839 c 0 0 -2.993 -2.104 -2.993 -2.104 c 0 0 -4.677 -0.01 -4.677 -0.01 c 0 0 -2.729 -0.815 -2.729 -0.815 c 0 0 -2.959 0.969 -2.959 0.969 c 0 0 -3.893 -0.807 -3.893 -0.807 c 0 0 -0.288 1.111 -0.288 1.111 c 0 0 -1.47 1.098 -1.47 1.098 c 0 0 -1.42 -2.607 -1.42 -2.607 c 0 0 -2.229 1.641 -2.229 1.641 c 0 0 -0.129 1.172 -0.129 1.172 c 0 0 1.495 1.622 1.495 1.622 c 0 0 -1.196 1.17 -1.196 1.17 c 0 0 1.829 0.536 1.829 0.536 c 0 0 -1.33 0.886 -1.33 0.886 c 0 0 0.004 1.019 0.004 1.019 c 0 0 0.681 0.703 0.681 0.703 c 0 0 0.8 -0.179 0.8 -0.179 c 0 0 -0.257 1.099 -0.257 1.099 c 0 0 0.683 1.606 0.683 1.606 c 0 0 1.268 0.909 1.268 0.909 c 0 0 -0.254 1.759 -0.254 1.759 c 0 0 2.133 0.25 2.133 0.25 c 0 0 0.4 1.149 0.4 1.149 c 0 0 0.774 -0.02 0.774 -0.02 c 0 0 2.635 -2.928 2.635 -2.928 c 0 0 -0.007 1.003 -0.007 1.003 c 0 0 2.686 -0.708 2.686 -0.708 c 0 0 0.44 0.937 0.44 0.937 c 0 0 1.229 0.056 1.229 0.056 c 0 0 0.841 1.108 0.841 1.108 c 0 0 1.563 0.131 1.563 0.131 c 0 0 1.051 -1.104 1.051 -1.104 c 0 0 -0.338 -0.876 -0.338 -0.876 c 0 0 1.985 0.074 1.985 0.074 c 0 0 0.315 -2.776 0.315 -2.776 c 0 0 0.861 0.234 0.861 0.234 c 0 0 1.841 -1.11 1.841 -1.11 c 0 0 0.063 -1.843 0.063 -1.843 c 0 0 -1.346 -0.305 -1.346 -0.305 c 0 0 -0.084 -1.369 -0.084 -1.369 c 0 0 -0.708 -0.199 -0.708 -0.199 c 0 0 0.625 -1.91 0.625 -1.91 c 0 0 1.347 0.043 1.347 0.043 c 0 0 0.758 -0.615 0.758 -0.615 c 0 0 0 0 0 0 c 0 0 0 0 0 0","name":"Aïn Defla"},"45":{"path":"M 190.745 93.6368 c 0 0 1.08 1.632 1.08 1.632 c 0 0 2.133 -1.567 2.133 -1.567 c 0 0 0.589 1.018 0.589 1.018 c 0 0 0.342 -0.416 0.342 -0.416 c 0 0 2.966 0.896 2.966 0.896 c 0 0 4.055 -2.511 4.055 -2.511 c 0 0 1.843 1.041 1.843 1.041 c 0 0 3.133 9.769 3.133 9.769 c 0 0 0.314 -1.128 0.314 -1.128 c 0 0 0.854 0.04 0.854 0.04 c 0 0 2.091 -2.885 2.091 -2.885 c 0 0 1.632 -0.712 1.632 -0.712 c 0 0 1.374 0.198 1.374 0.198 c 0 0 0.176 2.472 0.176 2.472 c 0 0 1.795 -0.807 1.795 -0.807 c 0 0 1.055 0.748 1.055 0.748 c 0 0 -0.204 2.644 -0.204 2.644 c 0 0 0.751 0.279 0.751 0.279 c 0 0 0.729 1.792 0.729 1.792 c 0 0 0.76 0.113 0.76 0.113 c 0 0 -2.123 1.127 -2.123 1.127 c 0 0 0.829 2.979 0.829 2.979 c 0 0 -2.931 13.106 -2.931 13.106 c 0 0 0.843 2.448 0.843 2.448 c 0 0 -0.887 0.991 -0.887 0.991 c 0 0 0.673 0.434 0.673 0.434 c 0 0 -0.593 1.588 -0.593 1.588 c 0 0 -1.563 0.854 -1.563 0.854 c 0 0 -0.278 1.842 -0.278 1.842 c 0 0 0.827 0.472 0.827 0.472 c 0 0 -0.27 1.131 -0.27 1.131 c 0 0 0.979 1.097 0.979 1.097 c 0 0 -0.398 1.535 -0.398 1.535 c 0 0 0.432 2.39 0.432 2.39 c 0 0 -2.988 5.758 -2.988 5.758 c 0 0 -1.629 2.4 -1.629 2.4 c 0 0 -2.417 -0.518 -2.417 -0.518 c 0 0 -1.803 1.33 -1.803 1.33 c 0 0 -6.79 -1.902 -6.79 -1.902 c 0 0 -5.834 3.103 -5.834 3.103 c 0 0 -0.298 -1.563 -0.298 -1.563 c 0 0 -1.384 -0.042 -1.384 -0.042 c 0 0 0.542 -2.863 0.542 -2.863 c 0 0 -1.428 -0.123 -1.428 -0.123 c 0 0 -0.163 -2.392 -0.163 -2.392 c 0 0 2.868 -2.595 2.868 -2.595 c 0 0 -5.768 -4.648 -5.768 -4.648 c 0 0 -2.38 -1.182 -2.38 -1.182 c 0 0 -3.35 -5.675 -3.35 -5.675 c 0 0 1.262 -0.418 1.262 -0.418 c 0 0 0.377 -2.404 0.377 -2.404 c 0 0 -2.205 -2.094 -2.205 -2.094 c 0 0 -1.938 -3.413 -1.938 -3.413 c 0 0 0.196 -2.568 0.196 -2.568 c 0 0 1.717 -3.813 1.717 -3.813 c 0 0 -0.095 -1.926 -0.095 -1.926 c 0 0 -1.187 -2.013 -1.187 -2.013 c 0 0 -1.795 -0.51 -1.795 -0.51 c 0 0 0.209 -0.893 0.209 -0.893 c 0 0 1.274 -0.928 1.274 -0.928 c 0 0 -0.546 -2.521 -0.546 -2.521 c 0 0 1.185 -5.71 1.185 -5.71 c 0 0 3.61 -2.62 3.61 -2.62 c 0 0 4.992 0.022 4.992 0.022 c 0 0 1.227 -1.408 1.227 -1.408 c 0 0 1.531 -0.481 1.531 -0.481 c 0 0 0 0 0 0 c 0 0 0 0 0 0","name":"Naâma"},"46":{"path":"M 193.764 72.7758 c 0 0 -0.686 0.069 -0.686 0.069 c 0 0 -0.264 -0.909 -0.264 -0.909 c 0 0 -3.488 -1.748 -3.488 -1.748 c 0 0 -0.331 0.33 -0.331 0.33 c 0 0 -0.372 -0.771 -0.372 -0.771 c 0 0 -1.081 0.455 -1.081 0.455 c 0 0 -2.338 -0.793 -2.338 -0.793 c 0 0 -0.918 1.336 -0.918 1.336 c 0 0 -1.082 0.265 -1.082 0.265 c 0 0 -1.053 -0.668 -1.053 -0.668 c 0 0 0.202 -0.954 0.202 -0.954 c 0 0 -0.848 -0.622 -0.848 -0.622 c 0 0 2.669 -1.768 2.669 -1.768 c 0 0 1.627 0.143 1.627 0.143 c 0 0 2.119 -1.243 2.119 -1.243 c 0 0 2.023 -5.607 2.023 -5.607 c 0 0 0.896 0.035 0.896 0.035 c 0 0 2.06 -1.622 2.06 -1.622 c 0 0 1.342 1.43 1.342 1.43 c 0 0 -0.223 0.718 -0.223 0.718 c 0 0 1.008 0.007 1.008 0.007 c 0 0 -0.383 1.02 -0.383 1.02 c 0 0 -0.893 0.251 -0.893 0.251 c 0 0 0.174 1.591 0.174 1.591 c 0 0 0.012 -0.62 0.012 -0.62 c 0 0 0.895 -0.046 0.895 -0.046 c 0 0 -0.201 -0.597 -0.201 -0.597 c 0 0 0.82 0.657 0.82 0.657 c 0 0 1.569 0.021 1.569 0.021 c 0 0 5.065 -1.624 5.065 -1.624 c 0 0 0.775 2.923 0.775 2.923 c 0 0 -0.771 0.563 -0.771 0.563 c 0 0 -0.027 1.102 -0.027 1.102 c 0 0 -2.838 0.497 -2.838 0.497 c 0 0 -0.066 0.729 -0.066 0.729 c 0 0 -0.97 0.456 -0.97 0.456 c 0 0 -0.813 -0.548 -0.813 -0.548 c 0 0 -0.781 1.395 -0.781 1.395 c 0 0 -0.672 -0.18 -0.672 -0.18 c 0 0 0.286 1.946 0.286 1.946 c 0 0 -1.38 0.461 -1.38 0.461 c 0 0 -0.248 1.451 -0.248 1.451 c 0 0 -0.815 0.469 -0.815 0.469 c 0 0 0 0 0 0 c 0 0 0 0 0 0","name":"Aïn Témouchent"},"47":{"path":"M 280.112 227.213 c 0 0 8.227 -3.631 8.227 -3.631 c 0 0 6.762 -14.091 6.762 -14.091 c 0 0 1.58 -1.093 1.58 -1.093 c 0 0 10.495 -36.704 10.495 -36.704 c 0 0 3.17 -8.157 3.17 -8.157 c 0 0 0.768 -17.01 0.768 -17.01 c 0 0 6.761 -7.312 6.761 -7.312 c 0 0 5.039 -9.304 5.039 -9.304 c 0 0 -11.871 -3.224 -11.871 -3.224 c 0 0 -13.08 -0.901 -13.08 -0.901 c 0 0 -0.77 0.422 -0.77 0.422 c 0 0 -2.684 -1.107 -2.684 -1.107 c 0 0 -0.903 0.387 -0.903 0.387 c 0 0 -0.305 -0.512 -0.305 -0.512 c 0 0 -0.417 0.754 -0.417 0.754 c 0 0 -0.439 -0.318 -0.439 -0.318 c 0 0 -0.945 0.734 -0.945 0.734 c 0 0 -7.853 0.362 -7.853 0.362 c 0 0 3.66 2.229 3.66 2.229 c 0 0 0.331 2.904 0.331 2.904 c 0 0 -8.55 -2.039 -8.55 -2.039 c 0 0 -5.37 1.604 -5.37 1.604 c 0 0 -10.825 0.946 -10.825 0.946 c 0 0 0.565 6.182 0.565 6.182 c 0 0 1.917 7.688 1.917 7.688 c 0 0 -2.573 1.672 -2.573 1.672 c 0 0 0.721 8.612 0.721 8.612 c 0 0 -4.648 5.148 -4.648 5.148 c 0 0 -0.682 28.618 -0.682 28.618 c 0 0 -2.644 13.284 -2.644 13.284 c 0 0 4.271 23.744 4.271 23.744 c 0 0 -1.117 4.883 -1.117 4.883 c 0 0 10.266 -3.805 10.266 -3.805 c 0 0 11.143 -0.965 11.143 -0.965 c 0 0 0 0 0 0 c 0 0 0 0 0 0","name":"Ghardaïa"},"48":{"path":"M 232.66 64.2719 c 0 0 -2.048 -0.317 -2.048 -0.317 c 0 0 -0.295 -0.662 -0.295 -0.662 c 0 0 -1.721 0.085 -1.721 0.085 c 0 0 -0.918 -0.917 -0.918 -0.917 c 0 0 -1.891 0.041 -1.891 0.041 c 0 0 -1.282 -1.803 -1.282 -1.803 c 0 0 -0.858 0.611 -0.858 0.611 c 0 0 -0.125 -0.523 -0.125 -0.523 c 0 0 -1.717 0.492 -1.717 0.492 c 0 0 -1.217 -3.61 -1.217 -3.61 c 0 0 -0.578 -0.193 -0.578 -0.193 c 0 0 1.744 -2.074 1.744 -2.074 c 0 0 0.867 -0.538 0.867 -0.538 c 0 0 0.877 0.373 0.877 0.373 c 0 0 1.332 -1.438 1.332 -1.438 c 0 0 -0.229 -0.909 -0.229 -0.909 c 0 0 0.59 -0.991 0.59 -0.991 c 0 0 -0.674 0.036 -0.674 0.036 c 0 0 -0.313 -0.769 -0.313 -0.769 c 0 0 0.846 -1.018 0.846 -1.018 c 0 0 1.226 0.572 1.226 0.572 c 0 0 0.555 -0.605 0.555 -0.605 c 0 0 2.126 -0.093 2.126 -0.093 c 0 0 -0.359 -0.87 -0.359 -0.87 c 0 0 0.634 -0.699 0.634 -0.699 c 0 0 -1.289 -1.35 -1.289 -1.35 c 0 0 1.979 -2.472 1.979 -2.472 c 0 0 2.056 0.32 2.056 0.32 c 0 0 2.173 -0.8 2.173 -0.8 c 0 0 0.468 1.894 0.468 1.894 c 0 0 0.536 0.021 0.536 0.021 c 0 0 -0.826 1.687 -0.826 1.687 c 0 0 0.509 -0.155 0.509 -0.155 c 0 0 0.519 1.997 0.519 1.997 c 0 0 1.775 -0.663 1.775 -0.663 c 0 0 -0.347 0.244 -0.347 0.244 c 0 0 0.593 0.041 0.593 0.041 c 0 0 0.541 1.179 0.541 1.179 c 0 0 1.563 0.984 1.563 0.984 c 0 0 2.838 -0.813 2.838 -0.813 c 0 0 2.173 3.286 2.173 3.286 c 0 0 0.771 0.672 0.771 0.672 c 0 0 -1.122 1.335 -1.122 1.335 c 0 0 -0.706 -0.142 -0.706 -0.142 c 0 0 -0.332 -0.895 -0.332 -0.895 c 0 0 -0.993 0.542 -0.993 0.542 c 0 0 0.206 1.651 0.206 1.651 c 0 0 -0.649 1.074 -0.649 1.074 c 0 0 -1.449 0.571 -1.449 0.571 c 0 0 -0.567 0.986 -0.567 0.986 c 0 0 -2.058 -0.207 -2.058 -0.207 c 0 0 -0.165 0.913 -0.165 0.913 c 0 0 -0.811 -0.11 -0.811 -0.11 c 0 0 -0.112 0.868 -0.112 0.868 c 0 0 -1.215 0.097 -1.215 0.097 c 0 0 -1.728 2.879 -1.728 2.879 c 0 0 -0.903 0.185 -0.903 0.185 c 0 0 0 0 0 0 c 0 0 0 0 0 0","name":"Relizane"}}, "height": 500, "width": 508});
--- /dev/null
+jQuery.fn.vectorMap('addMap', 'argentina_en', {"width": 900.0, "height": 1770.5044059903964, "paths":{"sc":{"path": "M26.21,1405.14l2.02,-1.84l8.5,-1.79l7.49,-6.75l1.82,-3.81l-0.1,-8.52l-1.36,-5.95l1.56,-3.04l6.37,-2.92l2.75,-3.07l2.97,0.11l0.73,-1.18l-1.33,-3.1l0.72,-4.2l-1.58,-8.36l-2.19,-0.94l-1.42,-2.77l-4.01,-2.05l-1.36,-2.85l1.89,-3.41l1.92,-5.9l5.13,-8.5l1.1,-6.19l-2.15,-1.51l0.27,-0.87l2.87,-1.74l3.48,0.31l2.11,-0.88l6.11,-7.06l0.46,-1.26l-0.47,-3.5l5.17,2.1l1.83,-0.89l0.94,-1.7l0.03,-1.96l-1.48,-2.86l-4.88,-3.2l4.02,-3.32l-2.49,-3.12l1.53,-5.15l-0.64,-2.1l4.94,-1.15l2.68,-2.89l4.13,-2.84l0.46,-2.12l-0.69,-4.13l0.67,-2.8l-3.25,-8.35l-0.56,-8.49l-6.72,-5.18l6.21,-1.47l5.36,-6.27l182.64,0.03l-1.52,4.87l-0.07,3.84l2.19,9.04l2.61,6.69l7.49,9.84l3.15,1.59l4.03,3.51l3.12,1.31l3.28,4.82l2.42,1.02l9.68,10.33l4.59,2.35l2.58,0.47l2.17,-0.69l3.69,-0.04l2.86,1.15l3.13,-0.03l1.63,1.08l11.47,0.18l4.48,-0.96l4.54,2.73l3.53,3.26l0.88,1.73l0.57,4.16l1.36,2.72l-1.31,11.34l-5.43,12.45l-6.15,0.11l-4.53,3.52l-3.79,0.4l-3.78,2.01l-3.49,-0.14l-1.24,0.7l2.68,1.3l2.01,-0.15l3.58,-1.73l3.51,-0.22l6.69,-2.85l3.05,0.54l1.11,1.8l1.0,3.86l3.27,1.54l-0.5,1.42l-3.77,-1.36l-3.81,0.92l-0.08,1.11l1.6,2.6l-0.31,2.19l2.02,1.99l-2.39,-0.53l-5.91,1.19l-2.42,4.07l-7.9,5.01l-1.26,2.52l0.35,1.72l-2.99,-0.32l-1.35,0.48l-1.54,3.01l-9.03,2.6l-3.82,4.23l-4.19,3.43l-1.8,0.12l-8.8,3.98l-1.72,1.37l-4.74,6.65l-0.83,2.25l-6.68,3.63l-9.85,10.46l-1.64,3.53l0.97,3.43l-5.16,5.78l1.09,2.04l-1.92,-0.39l-1.14,0.46l-2.57,4.42l0.36,0.69l2.0,0.42l3.87,-1.13l3.27,-7.22l0.64,0.53l-4.83,18.44l-2.16,15.41l-1.44,3.3l-8.65,7.34l-9.07,4.38l-6.09,0.41l-1.5,-1.94l-2.57,-1.44l-0.76,-2.18l-2.7,-2.72l-1.29,-3.39l-3.35,-4.58l-1.76,-4.74l-2.12,-1.5l-2.3,-0.51l-0.38,1.02l3.32,2.21l0.63,2.9l2.41,4.81l0.09,1.66l-4.19,1.9l-2.22,-0.61l-6.11,0.47l-4.32,1.21l-2.08,1.26l0.17,1.14l1.36,0.14l6.82,-2.0l11.1,-0.13l1.98,1.82l1.09,3.19l6.44,4.1l-2.65,2.8l-8.91,2.37l-10.15,4.63l-4.72,4.87l-1.39,3.13l-3.27,3.78l-1.11,2.41l-2.97,11.33l0.58,6.16l-0.56,2.29l-4.82,5.0l-5.85,4.45l-1.09,2.37l0.87,0.72l5.26,-4.93l4.09,-1.96l0.3,0.33l1.43,4.52l1.04,7.37l1.61,3.34l1.12,5.23l4.46,10.7l0.11,2.99l-0.52,0.41l-2.99,-0.44l-3.16,2.46l-2.07,-0.29l-5.12,-2.39l-4.46,-0.18l-5.69,1.45l-5.61,3.36l0.66,0.5l9.64,-1.89l3.2,0.21l6.51,2.35l-2.03,1.93l0.26,1.0l1.24,0.1l6.04,-3.58l2.72,-0.72l5.4,8.29l4.29,9.36l5.33,8.15l6.35,7.04l5.93,8.36l0.01,1.68l-1.59,1.82l0.03,-3.39l-0.68,-1.16l-7.63,-2.22l-8.97,-1.23l-8.38,-3.86l-9.3,-2.5l-12.38,-0.35l-21.15,-7.55l-88.67,-1.05l-1.66,-0.91l0.72,-4.25l-1.66,-3.41l-7.39,-6.46l-6.99,-2.77l-1.36,-5.5l-1.17,-1.13l-3.39,-0.44l-0.57,-0.84l4.27,-4.33l0.05,-2.34l1.27,-2.96l0.13,-4.62l2.79,-4.06l-0.09,-1.38l-4.24,-2.88l-2.19,-3.11l0.22,-1.56l2.02,-2.65l2.61,-1.07l1.34,-4.32l0.11,-7.66l-3.78,-5.52l1.89,-4.34l0.01,-1.48l-3.95,-1.93l-5.79,-1.15l-2.28,0.96l-2.99,2.94l-1.6,0.05l-4.47,-3.04l-6.84,3.05l-6.69,5.4l-3.48,0.67l-1.38,-0.98l-0.64,-6.28l-2.94,-4.05l-0.73,-12.23l-1.29,-4.03l-2.15,-3.46l-8.22,-5.99l-0.39,-1.26l2.81,-6.23l-1.13,-2.13l-3.04,-2.48l1.29,-1.85l0.31,-2.63l2.29,-2.06l1.0,-1.85l-0.16,-1.84l-3.58,-4.63l1.22,-2.65l-0.14,-1.5l-2.97,-3.93l2.01,-2.62l-0.36,-2.77l3.74,-3.15l0.1,-4.35l13.96,-0.24l0.86,-1.5l1.63,-0.5l-0.0,-1.22l-3.03,-0.61l-0.69,-1.9l3.4,-4.43l1.29,-4.42l2.68,-3.42Z", "name": "Santa Cruz"}, "co": {"path": "M384.61,644.72l-0.01,-52.16l-2.02,-38.11l1.69,-3.13l1.96,-0.55l0.78,-0.9l-0.45,-2.66l1.6,-3.27l-0.31,-2.34l1.84,-3.39l1.32,-6.75l1.28,-1.56l1.51,-4.8l0.41,-3.69l-2.18,-6.04l0.13,-6.06l-0.38,-0.83l-1.42,-0.56l-5.69,1.46l-5.09,0.42l-0.15,-2.92l-1.41,-2.71l-0.61,-4.15l-3.1,-3.39l-15.06,-8.47l-5.04,-0.44l-0.34,-38.56l10.84,-33.5l1.88,-3.36l3.63,-9.94l9.35,-2.54l2.43,-1.25l8.96,-9.24l0.66,-2.15l-1.36,-11.32l0.35,-1.13l29.26,-7.42l10.6,2.24l-0.19,2.23l1.16,1.29l3.35,1.74l1.04,1.33l3.61,0.86l2.12,1.31l3.78,0.21l5.31,-0.8l3.84,1.05l2.43,-0.28l0.11,2.75l2.77,0.74l0.13,1.58l0.82,0.73l49.42,0.27l1.76,1.21l6.89,16.95l-2.09,12.66l0.43,2.33l12.05,13.48l-11.88,43.13l-0.69,1.48l-4.5,4.13l0.83,2.73l0.09,6.9l1.41,2.61l-1.26,3.44l-0.29,5.44l3.79,4.01l2.65,1.53l2.85,7.07l4.5,3.76l0.84,4.61l1.28,1.4l-1.24,3.78l2.91,1.11l2.29,4.29l1.97,2.25l-1.07,3.93l-0.28,5.36l-2.74,3.05l-2.66,0.53l-1.5,1.76l-42.0,63.76l-21.67,-0.08l-1.97,1.92l-0.59,29.68l-75.68,-0.02Z", "name": "C\u00f3rdoba"}, "ju": {"path": "M286.9,91.86l10.63,-34.51l-7.97,-8.57l3.3,-4.78l4.02,-3.49l-0.15,-5.14l2.04,-0.12l2.07,-2.05l6.89,-2.62l-0.1,-2.21l2.31,-7.33l1.28,-0.93l2.9,0.47l0.65,-0.94l11.11,-3.05l2.08,-2.21l1.3,-0.31l1.06,-5.96l2.34,-7.48l5.41,2.03l1.21,1.26l1.01,2.76l5.07,1.21l5.75,6.61l1.56,1.05l1.63,0.45l7.36,-1.29l5.56,0.7l11.42,-0.13l-1.97,5.13l-0.19,4.55l-4.26,8.57l-0.54,4.23l0.46,0.92l1.56,0.08l1.55,1.36l-0.86,2.03l0.01,2.5l0.79,5.35l1.73,4.93l2.52,2.19l5.71,0.36l1.45,1.39l0.36,1.91l-1.52,8.82l0.94,1.27l3.18,1.41l2.78,5.62l0.94,3.34l3.97,0.46l2.28,-1.72l3.45,-0.57l1.18,1.08l3.45,1.27l4.06,4.54l1.59,0.98l1.51,-1.03l0.86,-2.77l1.22,-1.51l7.22,0.15l1.2,31.33l-2.3,5.2l-3.79,4.78l-0.98,0.64l-4.2,0.56l-1.51,1.82l-2.51,0.7l-3.25,3.05l-1.56,3.14l-9.52,-7.51l-1.81,2.14l-2.02,4.64l-0.89,0.02l-5.6,-2.35l-3.75,-2.97l-0.93,-1.49l-5.26,2.21l-6.53,-1.88l-2.39,-1.92l-2.39,0.56l-2.24,-1.27l-7.34,-10.7l-0.44,-4.82l-6.64,-4.73l-2.54,0.63l-1.58,-2.18l0.34,-1.76l-1.47,-2.47l0.21,-3.56l1.56,-2.49l-0.55,-1.57l0.52,-7.01l-2.09,-2.37l-6.56,-3.84l-1.95,-0.1l-1.97,-1.29l-4.0,-1.11l-1.19,0.17l-1.04,1.28l-1.35,6.31l3.11,9.81l-0.63,14.89l-1.52,4.49l-1.27,0.55l-2.38,3.13l-1.27,0.65l-4.15,-0.2l-3.05,-1.51l-4.17,-4.76l-4.73,-2.3l-3.28,-4.52l-1.81,-0.54l-0.54,-1.41l-3.68,-3.82l-3.06,-0.93l-4.43,-3.59Z", "name": "Jujuy"}, "tf": {"path": "M408.94,1757.54l-2.09,0.84l-1.51,2.07l-2.71,0.1l0.73,-2.08l-3.85,-2.08l2.91,-2.85l3.2,1.62l1.24,-0.1l3.03,-1.04l0.99,-0.97l-0.48,-0.88l1.85,0.46l2.22,-0.85l0.49,2.21l1.55,0.19l0.43,-4.59l1.42,0.85l4.37,0.04l1.91,1.52l1.02,-0.29l0.22,-1.64l1.44,0.86l1.27,-0.83l1.53,2.12l6.83,-2.17l2.03,1.08l1.51,-0.83l-1.89,2.73l-4.22,2.03l1.0,-2.01l-0.34,-1.26l-0.95,-0.36l-2.25,1.59l-2.7,-0.04l-1.31,1.53l-5.06,0.99l-0.81,0.9l-0.45,-0.71l0.74,-2.76l-2.73,-0.28l-6.68,4.19l-1.03,0.12l-0.4,-1.28l-1.46,0.2l-1.08,0.92l0.09,0.76ZM409.66,1751.56l-1.38,-1.15l-0.1,-0.22l0.33,-0.05l1.14,1.42ZM224.01,1753.21l0.63,-130.78l7.96,11.21l5.25,4.7l2.33,5.44l-1.67,-1.61l-3.03,0.66l-1.16,0.72l-2.14,3.24l-4.29,3.39l-1.56,2.53l0.03,2.58l1.02,2.45l1.53,1.82l4.69,2.33l2.69,0.36l8.41,-0.6l2.91,5.31l2.09,8.72l2.95,4.91l11.08,8.93l1.27,2.74l2.35,-0.03l2.49,1.8l1.57,5.66l12.37,9.02l12.25,6.68l2.96,2.62l9.83,3.96l1.83,1.26l6.67,7.51l5.42,3.25l2.77,0.72l4.04,3.03l15.5,6.27l2.46,0.42l2.19,1.32l6.71,0.95l10.87,-1.36l3.57,0.26l3.17,-1.13l6.73,0.88l-2.14,2.24l-1.41,3.46l0.46,1.26l-1.67,1.6l0.29,1.72l-2.66,1.96l-1.23,3.89l-0.87,0.57l-0.87,-0.03l-0.54,-1.97l-3.2,-0.66l-1.43,0.93l0.21,1.39l-0.59,0.69l-5.16,0.13l-1.16,1.91l-1.07,0.4l-1.26,-1.04l-0.47,-2.58l-1.64,-1.14l-10.03,-0.11l-0.5,0.58l0.38,1.12l-2.01,1.91l-5.63,1.97l-9.38,-0.28l-2.42,1.33l-1.55,3.01l-0.82,0.26l-8.04,-1.39l-7.58,-5.41l-6.56,-0.92l-3.9,-1.47l-40.71,-2.68l-6.43,-1.0l-2.14,-1.39l-4.31,-0.35l-3.91,-1.67l-1.17,0.95l-0.29,2.21l-8.37,0.6l-1.62,-0.67l-3.33,-3.47Z", "name": "Tierra del Fuego"}, "cr": {"path": "M650.75,342.39l1.84,-3.72l0.47,-5.16l2.52,-5.8l-0.16,-4.73l1.11,-6.37l-1.11,-3.87l0.38,-7.76l1.38,-1.37l4.24,-0.52l2.68,-2.14l0.94,-1.55l1.63,-6.3l-0.09,-3.63l1.16,-3.35l0.1,-2.89l-0.87,-3.68l-2.26,-4.45l-0.08,-2.9l10.16,-7.06l6.35,-2.48l12.15,-1.03l4.93,0.61l4.78,-0.47l14.03,3.37l8.89,4.09l7.92,-0.25l1.42,1.23l5.77,2.58l4.94,-0.19l4.54,-2.39l2.96,-0.74l6.02,4.25l1.96,-0.34l2.37,-1.74l2.93,-0.82l2.64,0.37l3.75,4.67l3.21,1.76l1.87,-0.48l3.29,-4.98l0.77,-4.3l3.13,-1.21l3.49,-2.97l1.99,0.26l3.43,1.21l-1.16,2.38l-0.12,3.09l6.53,12.9l1.84,9.86l2.33,2.68l2.08,4.63l4.71,3.48l-2.19,1.92l-2.82,0.93l-1.45,1.18l0.41,1.84l3.65,1.66l0.8,1.34l-1.16,3.07l-1.14,-1.78l-5.04,-1.0l-3.38,1.72l0.19,4.21l-4.93,1.52l-0.65,1.03l-0.02,3.57l-0.68,0.9l-2.82,1.93l-3.66,4.66l-4.68,1.88l-0.76,5.1l-0.84,1.45l-3.18,1.89l-1.55,5.6l-5.27,1.88l-3.26,2.59l-1.66,2.59l-0.09,2.27l-1.52,3.44l-3.66,2.42l-2.26,4.73l-6.59,6.15l-2.51,4.08l-3.97,3.9l-4.67,0.56l-3.49,1.93l-0.97,2.0l-0.66,6.24l-3.81,2.83l-4.27,5.14l-1.78,1.18l-3.77,0.64l-0.67,0.66l0.69,3.63l-1.15,3.06l-8.86,7.68l-1.96,3.48l0.2,2.35l3.1,6.2l-6.62,-6.14l-2.15,-3.88l-1.44,-5.06l-4.79,-4.06l-2.67,-4.39l-1.63,-1.21l-8.83,-2.31l-2.99,-0.04l-2.93,-1.47l-2.22,-0.04l-6.64,2.68l-4.41,0.98l-5.96,-1.09l-10.52,6.78l-6.56,-1.79l-3.11,0.68l-1.97,-0.52l-3.21,1.17l-3.55,0.18l-0.15,-2.23l1.27,-6.18l1.96,-5.14l-1.61,-6.06l-1.87,-3.87l2.01,-4.54l1.64,-6.73l0.11,-10.09l1.83,-7.27l2.59,-3.14l5.67,-2.23l6.68,-4.73l0.91,-1.66l0.15,-4.62Z", "name": "Corrientes"}, "tu": {"path": "M334.62,263.93l1.96,-3.49l3.32,-3.23l1.62,-3.24l5.73,-5.92l2.05,-4.19l0.79,-7.2l-0.44,-2.25l-7.98,-6.03l-4.12,-1.2l-1.28,-1.65l2.25,-6.73l0.29,-2.78l1.9,-2.74l15.0,2.04l1.26,-1.73l1.11,-8.99l3.62,1.27l6.24,0.92l5.54,-2.12l1.46,3.34l1.26,1.23l8.73,3.4l1.93,-0.07l3.4,1.63l2.29,-0.3l2.4,-1.76l3.44,-0.94l3.15,0.63l8.99,-0.21l0.04,4.05l-1.77,6.18l1.09,10.8l-3.46,-0.14l-1.96,5.69l-2.36,0.64l-2.5,8.96l-2.14,2.82l-1.35,5.25l-3.34,7.44l-2.59,1.58l-5.74,6.41l1.14,1.34l3.07,1.16l-1.38,1.66l-2.42,0.45l-0.68,1.64l0.06,1.46l2.97,6.69l-1.26,0.93l-1.72,4.64l-6.5,1.52l-4.6,-2.85l-1.2,-0.05l-6.91,4.9l-2.56,4.22l-4.04,-4.86l-1.83,-6.31l-2.78,-1.61l-2.91,0.77l-0.88,-0.84l-1.25,-4.07l-2.3,-2.03l-2.53,-10.59l0.05,-2.19l-9.41,-3.34Z", "name": "Tucum\u00e1n"}, "ch": {"path": "M74.56,1091.13l0.62,-0.9l-0.18,-1.84l1.24,-1.23l0.32,-2.23l3.98,-1.11l2.1,0.36l0.84,-0.87l-0.19,-4.14l0.65,-2.07l-1.49,-1.99l-4.27,-1.61l-6.75,-0.73l-1.85,-0.75l-3.15,-3.21l-0.78,-2.14l1.6,-7.27l-1.4,-16.53l2.01,-2.21l2.39,-1.14l0.32,-0.96l-1.65,-2.82l0.63,-3.54l-3.22,-4.21l3.27,-4.57l0.83,-2.78l1.05,-0.83l0.93,0.02l1.21,2.08l1.58,0.72l2.1,-1.87l3.59,-0.68l2.52,-1.51l0.83,-1.56l-0.15,-2.93l-0.63,-1.04l298.66,0.03l2.94,0.52l3.67,6.14l5.37,3.75l2.17,0.14l3.4,1.69l4.05,0.4l2.04,1.32l3.37,-0.75l1.82,0.41l0.31,0.36l-1.69,1.16l-3.85,5.17l-0.44,2.0l0.79,1.01l4.97,0.05l1.96,0.83l5.91,-1.28l9.81,0.17l2.64,-3.41l-0.25,-1.86l0.53,-1.06l-1.18,-3.19l-3.36,-0.81l-4.96,0.2l-3.07,-0.7l6.84,-0.97l7.8,-2.61l6.45,-3.68l3.54,-0.11l1.08,0.62l2.8,6.54l2.2,1.99l0.91,1.75l0.81,15.67l-2.42,6.55l0.5,1.99l-2.01,2.41l-2.75,1.15l-9.16,1.88l-3.8,0.14l-2.25,1.37l-1.16,-0.18l-4.62,-4.87l-1.47,-0.78l1.4,-5.82l1.08,-0.81l-0.41,-1.04l-4.27,-2.82l-1.33,-2.38l-5.44,-2.02l-4.84,-0.03l-4.54,0.87l-4.45,2.05l-3.1,3.43l-5.19,1.03l-1.38,0.9l-3.41,5.28l1.26,2.75l11.74,4.72l4.14,2.94l2.63,0.89l3.96,-0.17l3.25,2.15l4.92,-1.34l0.42,1.02l-6.19,4.21l-14.3,4.29l-8.23,5.13l-4.16,3.47l-0.57,1.49l0.28,3.72l-5.18,4.47l-2.44,3.71l-2.98,2.27l-2.6,4.32l-0.13,4.06l1.12,2.62l-0.47,3.04l1.07,1.1l0.87,2.58l0.18,3.66l2.12,0.32l-0.41,2.14l0.89,0.69l-0.95,2.1l0.22,2.12l-3.22,1.49l-0.78,3.81l2.43,2.56l-0.33,2.26l1.82,2.74l-0.73,1.39l-3.45,2.12l-0.58,1.53l0.45,1.71l1.6,1.14l-2.89,-0.29l-1.45,2.81l0.23,0.69l-2.67,-0.52l-1.14,1.96l-6.36,2.94l-3.32,4.2l-1.76,5.69l0.35,2.44l7.95,3.41l-1.81,1.03l-1.08,1.65l0.33,1.26l-1.01,0.91l0.52,1.21l-3.46,0.82l-2.67,-1.45l-2.72,0.17l-0.73,-1.03l-1.31,-0.29l-0.99,0.4l-0.59,1.46l-2.05,0.12l-3.63,-2.74l-4.59,-0.78l-4.03,0.35l-3.18,3.55l-1.34,0.36l-1.39,-0.53l-8.96,3.54l-0.66,1.56l0.67,1.17l-1.61,-0.09l-1.22,0.83l3.02,2.57l-0.31,0.49l-5.58,-0.39l-8.22,0.56l-4.08,2.19l-3.75,3.42l-8.77,13.44l-1.79,0.72l-2.95,2.53l-1.46,3.3l0.13,3.5l-0.9,2.03l0.54,1.16l-2.0,1.2l-5.44,5.45l-1.33,1.94l0.14,1.49l-1.96,2.04l-181.83,-0.03l0.78,-1.13l-1.39,-3.86l-1.33,-1.44l-3.95,-1.85l0.49,-3.24l-2.25,-2.71l0.84,-2.5l-0.12,-2.54l1.82,-2.77l-0.87,-1.42l1.82,-1.55l8.36,-0.77l1.94,-1.28l0.71,-1.46l-1.42,-3.6l5.93,-2.76l2.96,-3.51l-0.22,-2.27l-2.22,-3.49l-5.56,-4.72l-3.02,-6.48l-1.66,-1.72l-5.29,-0.35l-2.48,-2.25l-1.23,-0.35l-4.89,1.08l-5.33,-2.33l-2.61,-0.06l-0.51,-6.06l1.19,-0.99l8.78,1.98l4.11,-2.02l5.99,1.41l5.99,-2.04l5.2,2.68l2.05,0.56l1.95,-0.35l1.84,-1.18l1.27,-1.86l0.14,-6.03l1.47,-2.41l3.08,-1.19l0.55,-2.7l-1.54,-1.99l-0.76,-2.63l-2.06,-1.6l-10.42,-1.47l-13.6,-0.45l-3.59,0.54l-1.39,-1.15l2.19,-1.71l0.42,-1.42l-1.24,-2.52l1.17,-3.68l-2.3,-4.99l4.1,-2.26l4.25,-5.85l0.52,-2.17l-2.67,-4.09l-1.97,-1.54l0.21,-3.25l-0.83,-0.37l-1.51,0.62l-0.41,-0.58l0.54,-1.35l4.33,-2.43l-0.2,-5.07l-4.21,-3.49l-3.12,-0.27l0.87,-1.66l-0.69,-2.47l-1.99,-0.86l-1.48,0.36Z", "name": "Chubut"}, "rn": {"path": "M78.41,959.83l13.36,1.08l8.71,3.07l2.94,0.32l3.94,-0.78l3.16,-1.65l4.95,-5.79l0.87,-2.43l-1.06,-2.56l-3.26,-2.38l-0.4,-1.73l2.13,-2.59l2.91,-1.34l1.85,-3.17l4.59,-1.37l2.39,-1.51l4.18,0.66l1.87,-0.41l6.26,-4.11l4.07,2.89l5.58,-1.0l4.01,0.08l1.45,-0.87l1.37,-3.65l2.14,-0.21l1.8,-1.25l0.64,-1.45l0.33,-5.19l2.98,-6.56l0.89,-7.73l1.93,-5.29l11.75,-6.47l6.17,0.18l2.54,-1.0l5.8,-4.95l5.28,-6.87l5.45,-2.91l3.12,-0.27l4.26,-2.0l2.9,-4.32l2.94,-1.84l1.63,-4.18l2.24,-2.27l3.47,-1.96l3.01,-4.41l2.6,-1.79l3.07,-1.11l2.99,-3.33l3.91,-2.4l2.64,1.79l1.97,-0.7l4.47,0.74l5.2,-1.33l0.05,-0.77l-1.07,-0.61l-0.69,-3.17l-9.05,-12.55l0.12,-56.85l17.24,2.15l1.78,0.85l2.49,2.5l1.55,3.17l-0.48,3.89l-5.57,4.66l-1.09,2.01l-0.08,3.65l1.47,2.99l1.81,0.81l1.67,-0.38l2.65,1.71l2.44,4.71l2.84,3.08l2.04,0.88l4.74,-0.75l3.36,0.43l3.38,-1.54l3.63,-0.67l1.55,0.37l1.7,5.82l3.1,3.88l19.15,7.86l2.24,2.38l0.87,4.0l0.88,1.23l7.83,1.75l8.07,-0.91l11.4,1.33l6.51,1.76l1.76,1.09l2.5,0.14l1.52,0.99l5.72,-2.21l6.06,1.81l2.78,1.47l11.52,-1.83l6.27,-0.0l1.29,0.78l5.71,-0.4l15.59,2.25l14.54,4.98l4.08,2.35l2.08,0.33l4.49,4.78l5.72,1.92l3.15,3.74l8.86,5.63l5.49,1.08l0.08,73.1l9.72,1.49l3.35,1.23l10.81,9.78l2.43,4.72l-2.39,2.18l-10.38,3.68l-9.75,-0.36l-3.07,0.7l-17.77,-0.11l-3.68,-1.25l-4.57,-3.97l-4.09,-0.88l0.55,-1.5l-0.83,-0.91l-3.47,0.89l-1.61,-0.38l-10.97,-5.26l-6.1,-1.5l-4.2,-1.95l-5.73,-0.99l1.62,-1.15l-0.58,-1.47l-1.52,-0.59l0.89,-1.24l-1.47,-1.12l-4.49,-0.97l-4.41,0.99l-0.63,1.26l2.47,0.07l0.11,1.05l-4.02,0.3l-4.41,3.35l-2.6,7.64l1.31,11.46l1.9,8.08l2.01,6.47l2.52,2.53l0.57,1.41l-2.06,7.46l1.76,5.13l-0.07,1.71l-3.35,8.46l0.41,2.61l-301.92,-0.42l-0.86,-6.74l-2.81,-4.36l-0.6,-3.91l-2.51,-3.31l-0.0,-1.18l2.66,-1.89l0.62,-1.31l-1.58,-3.09l0.38,-4.01l-1.08,-3.74l1.38,-6.26l-0.72,-3.54l0.79,-0.76l0.8,-4.81l-0.51,-3.06ZM397.03,948.81l-1.68,0.15l0.35,-0.17l1.33,0.02ZM394.11,949.01l-0.9,-0.06l-0.69,-0.27l1.45,-0.57l0.14,0.9Z", "name": "R\u00edo Negro"}, "sf": {"path": "M528.89,526.62l1.18,-3.38l-1.37,-1.72l-0.89,-4.7l-4.61,-3.94l-2.85,-7.07l-2.8,-1.69l-3.39,-3.44l0.27,-4.89l1.28,-3.69l-1.43,-2.8l-0.07,-6.82l-0.9,-1.89l4.31,-4.03l0.88,-1.84l11.98,-43.63l-2.27,-3.41l-9.92,-10.53l-0.31,-1.66l19.06,-117.78l127.2,-0.05l-2.11,3.56l-2.47,1.1l-3.75,0.53l-1.52,2.57l-0.18,7.37l1.11,3.81l-1.1,6.32l0.18,4.62l-2.5,5.7l-0.46,5.09l-1.88,3.51l-0.14,4.89l-0.6,1.08l-6.39,4.51l-4.37,1.56l-2.64,1.68l-1.8,2.78l-1.61,5.85l-0.39,11.72l-1.6,6.56l-2.09,4.89l1.98,4.38l1.52,5.6l-1.92,4.82l-1.41,7.15l0.75,4.69l1.7,3.77l-0.45,6.21l-1.58,7.01l-15.3,23.47l-2.84,2.86l-1.36,4.04l-3.16,4.51l-4.03,3.06l-7.14,8.31l-2.48,1.09l-5.91,0.11l-2.23,0.97l-1.35,7.05l-2.08,3.49l0.12,2.86l2.47,4.64l-2.01,4.21l0.22,5.01l-1.32,4.95l0.09,5.02l-1.63,4.23l-0.06,2.21l2.75,5.01l0.33,4.53l1.07,3.93l2.47,4.86l1.6,1.83l1.57,4.21l2.69,3.2l4.7,2.68l5.01,4.89l-0.33,1.42l-2.55,1.53l-0.5,3.45l-2.66,2.26l-0.76,3.99l-1.76,3.63l-1.19,0.86l-2.66,0.3l-4.74,-3.2l-4.69,-0.19l-3.04,-1.16l-3.56,0.79l-1.43,2.31l0.34,1.58l-1.39,1.93l-33.55,35.18l-50.24,0.26l41.54,-63.06l1.04,-1.26l1.75,-0.14l1.77,-1.12l2.44,-2.96l1.43,-10.23l-4.54,-7.0l-2.52,-0.83Z", "name": "Santa Fe"}, "fo": {"path": "M509.95,33.31l0.23,1.24l0.98,0.31l1.04,1.46l-0.77,2.5l2.82,1.42l0.1,3.53l6.89,8.35l2.06,5.47l1.69,1.79l5.02,2.97l3.36,3.18l1.69,3.73l2.54,1.79l3.26,0.41l2.25,2.29l1.19,0.42l-0.08,1.09l1.33,1.81l9.16,3.49l1.19,2.03l2.71,1.64l1.54,0.02l2.87,2.12l-0.39,2.76l3.15,3.31l2.16,3.54l1.66,0.97l1.75,-0.44l4.4,2.7l4.93,0.03l1.73,1.0l3.0,0.07l1.96,2.29l1.98,0.21l2.35,1.41l4.72,0.52l1.96,1.35l8.89,0.42l4.69,-0.9l16.12,10.31l2.92,3.1l3.25,0.97l3.27,2.08l0.59,1.28l3.21,2.36l1.84,2.74l15.42,7.52l8.61,6.29l3.91,0.5l1.48,1.25l9.89,1.87l6.24,6.72l1.52,0.04l3.53,-2.44l4.44,3.37l3.79,1.53l1.69,-0.04l0.86,1.44l5.03,0.51l5.06,4.37l1.49,3.15l2.26,2.15l1.39,3.91l3.63,3.21l-0.72,5.31l-1.58,0.97l-0.29,1.19l-2.16,-0.02l-0.73,1.82l-2.56,0.55l-1.63,2.05l1.01,1.63l-3.11,2.08l0.68,2.77l-3.11,1.87l-0.06,1.31l0.99,0.54l-2.41,2.81l0.26,0.66l1.79,0.53l-0.39,0.51l-5.11,3.69l-4.51,1.91l-1.33,2.97l-1.75,-0.16l0.16,1.49l1.81,1.28l-2.79,1.48l0.04,3.27l-2.06,4.05l1.12,1.88l-1.32,3.56l0.29,1.11l1.84,1.89l-1.0,0.94l0.46,1.65l-2.35,-0.05l-0.62,5.21l-1.79,0.64l0.46,1.47l-2.76,0.35l-0.6,1.52l1.52,1.73l-1.43,-0.15l-0.62,-1.59l-2.04,0.12l-1.23,-0.61l-0.71,-1.63l-3.1,-2.67l-1.2,-2.38l-3.76,-2.29l-1.77,-2.18l-2.31,-0.49l-2.23,-2.62l-3.19,-1.64l-4.17,-4.8l-6.44,-2.72l-2.75,-2.62l-1.44,0.18l-1.45,1.32l-2.44,0.93l-3.35,-0.32l-1.27,-1.5l-1.85,-5.89l-2.31,-1.05l-8.59,-1.4l-0.47,-5.69l-1.35,-0.28l-3.05,-4.2l-3.79,-2.66l-0.63,-2.31l-3.37,-1.85l-1.26,-1.62l-2.17,-0.58l-0.98,-1.78l-4.94,-1.88l-1.26,0.4l-2.53,-5.42l0.52,-1.08l-0.65,-1.52l-2.46,-0.78l-0.57,-1.75l-1.71,-0.9l0.28,-0.89l-1.04,-2.02l-3.0,-2.19l-3.35,-5.25l-6.69,-2.26l-7.02,-4.29l-10.54,-8.45l-1.86,-0.1l-1.03,-1.22l0.39,-1.74l-2.24,-3.51l-0.08,-1.46l-1.29,-0.72l-1.75,-2.34l-2.59,-0.99l-8.15,-1.08l-4.65,-4.3l-1.08,-2.18l-3.77,-0.28l-2.1,-3.97l-3.36,-2.69l-5.66,-1.14l-3.64,-2.51l-2.1,-2.37l-4.42,-0.85l-9.3,-3.54l-0.1,-77.05l1.35,0.29Z", "name": "Formosa"}, "ne": {"path": "M78.32,958.6l0.7,-3.48l-2.72,-4.86l-1.92,-6.59l4.54,-5.37l0.29,-2.25l-0.63,-1.47l2.75,-6.78l3.04,0.3l2.68,-5.61l-0.78,-2.37l-1.35,-0.49l-1.32,0.81l-3.04,-3.43l0.67,-5.62l-0.49,-1.0l1.42,-0.44l1.99,0.87l2.3,0.1l0.74,-2.39l-0.48,-2.47l2.94,-5.52l-0.33,-1.24l-2.74,-3.01l-1.32,-5.53l0.91,-2.81l-1.01,-1.76l0.08,-1.91l0.82,-1.31l2.59,2.43l1.14,0.27l3.79,-0.26l1.15,-1.06l0.36,-2.38l-1.83,-1.63l3.37,-4.89l-0.64,-2.66l2.43,-2.02l0.49,-1.58l0.46,-4.43l-1.31,-11.08l1.28,-5.64l5.26,-3.04l2.07,-2.06l3.55,-0.59l4.63,-2.7l4.9,-0.07l1.63,-2.14l1.77,-0.99l-0.39,-2.61l2.25,-4.26l-0.8,-2.42l-4.58,-3.57l-0.95,-1.64l-2.04,-9.75l0.5,-3.47l-0.67,-3.11l0.71,-2.07l-3.63,-6.92l-0.34,-2.22l-1.75,-3.13l-2.3,-6.79l-0.02,-3.71l2.59,-2.33l-0.59,-2.24l1.07,-4.1l-3.52,-6.56l-0.45,-2.31l2.63,-3.94l0.29,-4.11l2.34,-1.87l-2.31,-2.39l-0.42,-2.47l-1.09,-1.16l1.21,-0.72l0.49,-1.23l-1.44,-1.72l0.33,-2.01l-1.6,-1.75l1.97,-4.11l0.25,-3.58l0.83,-0.24l1.89,0.96l1.25,-0.84l-0.47,-6.45l0.98,-3.76l2.88,0.14l1.9,-0.75l1.72,-3.61l3.7,1.68l4.33,-1.05l0.73,-1.04l-1.03,-3.61l0.87,-3.18l2.08,-0.98l2.64,-2.63l0.95,-2.54l3.39,1.14l1.49,-0.11l1.66,-1.31l2.1,1.65l0.48,1.14l-0.03,2.49l-1.06,2.05l1.29,4.22l1.41,0.96l1.97,-1.02l1.03,0.52l2.72,8.06l1.65,2.66l4.42,1.67l2.37,2.97l2.58,1.8l2.21,4.64l5.14,3.32l0.11,4.58l-1.26,2.29l5.32,6.28l3.7,2.15l4.32,1.14l2.58,0.15l7.89,-1.37l6.48,1.68l2.76,1.16l1.07,1.3l1.86,5.62l1.85,1.28l4.82,0.97l5.67,-0.48l3.47,2.8l7.57,1.03l1.89,3.2l1.78,1.53l7.69,0.99l-0.12,57.11l0.32,1.46l3.11,3.24l5.79,8.38l0.7,3.23l-3.31,0.78l-4.37,-0.75l-1.87,0.67l-2.05,-1.62l-1.12,-0.08l-4.19,2.61l-2.94,3.29l-2.86,1.0l-2.98,2.05l-3.04,4.44l-3.35,1.82l-2.37,2.42l-1.64,4.19l-2.89,1.8l-2.81,4.22l-3.79,1.77l-3.26,0.31l-5.68,3.03l-1.83,1.68l-3.66,5.36l-5.65,4.81l-1.89,0.76l-6.52,-0.1l-12.07,6.66l-1.2,1.66l-1.15,4.31l-0.89,7.71l-2.96,6.51l-0.77,6.23l-1.72,1.04l-2.01,0.17l-1.57,3.87l-0.81,0.45l-3.81,-0.1l-5.16,1.01l-3.01,-2.49l-1.41,-0.42l-2.01,0.68l-4.6,3.5l-1.52,0.34l-4.34,-0.64l-7.44,3.07l-1.42,1.38l-0.72,2.04l-2.74,1.16l-2.5,3.12l0.58,2.91l2.63,1.66l1.42,2.49l-0.63,1.76l-4.57,5.44l-2.95,1.55l-3.46,0.71l-2.67,-0.28l-8.78,-3.09l-13.72,-1.11Z", "name": "Neuqu\u00e9n"}, "mi": {"path": "M796.21,265.24l2.63,0.06l1.78,3.21l5.16,2.07l3.39,-3.18l4.16,-2.56l1.14,-4.34l-1.36,-3.32l1.82,-0.75l0.85,-2.45l3.35,-0.22l0.99,-4.17l1.12,-1.49l5.78,-2.06l3.34,1.01l3.27,-0.17l1.0,-1.0l-0.24,-3.53l2.74,-2.63l3.97,-0.93l1.21,-1.62l1.36,-3.92l1.41,-0.72l2.87,0.53l1.45,-1.25l0.63,-2.57l-0.37,-3.26l4.09,-4.7l1.58,-5.91l-0.05,-3.38l1.2,-1.99l-1.12,-2.41l0.94,-4.16l-0.88,-3.87l1.8,-0.48l0.66,-1.01l-0.33,-3.27l1.22,-3.51l-1.39,-2.08l-1.1,-4.83l1.55,-0.02l1.08,-0.76l-0.76,-3.06l1.46,-0.06l0.71,1.74l2.58,0.66l0.77,2.58l0.94,0.62l0.89,-0.54l0.04,-1.98l1.37,-1.07l0.32,-1.7l1.85,0.16l2.05,-1.39l1.84,2.17l1.16,-1.03l2.14,0.17l0.45,-0.61l-0.62,-1.69l1.41,0.04l1.53,-1.39l-0.48,2.77l1.38,1.61l1.2,-0.13l0.21,-1.65l0.8,0.59l1.25,-0.38l1.45,0.97l0.99,3.28l2.97,-0.81l0.85,2.46l-0.26,1.99l1.93,2.66l0.34,8.26l3.12,3.26l1.41,4.66l2.97,4.39l0.2,1.7l-2.81,5.5l0.5,5.86l-1.11,1.44l0.42,1.51l-0.64,2.11l0.13,3.57l-1.58,1.97l1.21,1.57l-0.18,1.58l0.9,0.42l0.86,5.52l-2.45,5.58l-1.51,0.82l-0.2,2.68l-1.08,1.05l0.11,1.71l-1.9,-1.91l-0.94,0.64l-0.54,1.66l-1.52,-0.94l-1.0,0.36l-0.22,1.86l-1.76,-0.12l-3.8,4.57l-2.05,-0.12l-0.12,-1.05l-1.73,-0.77l-2.69,5.5l0.04,1.22l-1.22,0.37l-0.99,1.77l-2.65,-1.64l-0.55,2.58l-0.89,-1.71l-2.92,-0.15l-0.99,0.3l-0.37,0.87l0.73,1.49l-3.56,1.11l-1.02,-1.42l-1.43,-0.21l-2.11,3.41l-0.69,-1.0l-1.22,0.53l-0.53,1.84l-3.51,0.53l-0.47,-1.77l-1.31,0.09l-1.24,1.16l-0.74,3.06l-2.46,0.76l-0.53,5.25l-3.1,2.27l-3.29,-0.72l-1.3,0.64l0.47,1.47l1.73,1.73l-1.01,-0.51l-1.73,0.25l-1.1,1.66l-2.35,-1.2l-3.87,3.23l-2.46,-0.18l-0.94,0.89l-0.32,1.5l-1.95,0.87l-0.16,1.83l-2.42,2.88l-2.89,0.01l-2.3,3.23l-0.41,-1.15l-1.3,-0.32l-1.2,0.95l-4.42,-3.25l-1.96,-4.48l-2.47,-3.01l-0.57,-5.83l-1.02,-3.48l-6.49,-12.8l0.72,-3.95l1.28,-1.07Z", "name": "Misiones"}, "lp": {"path": "M460.29,645.96l-0.2,222.92l-4.84,-0.9l-8.75,-5.56l-3.24,-3.79l-5.66,-1.9l-4.71,-4.91l-2.21,-0.37l-4.0,-2.32l-14.75,-5.05l-15.88,-2.29l-5.44,0.4l-1.35,-0.76l-6.56,0.0l-11.32,1.81l-6.36,-2.81l-2.53,-0.45l-1.45,0.13l-4.11,2.07l-1.3,-0.92l-2.66,-0.18l-1.57,-1.04l-6.79,-1.83l-11.58,-1.34l-7.92,0.92l-7.36,-1.62l-1.3,-4.74l-2.64,-2.81l-18.96,-7.7l-2.88,-3.59l-2.09,-6.27l-2.4,-0.56l-3.87,0.71l-3.07,1.48l-3.43,-0.44l-4.47,0.76l-1.49,-0.67l-2.49,-2.71l-2.47,-4.76l-1.38,-1.39l-2.08,-0.84l-2.05,0.31l-1.19,-0.8l-0.71,-1.96l0.07,-3.09l0.87,-1.57l4.5,-3.24l1.82,-3.62l-0.04,-2.68l-1.79,-3.68l-2.72,-2.73l-2.19,-1.05l-17.55,-2.19l-0.33,-65.71l-1.64,-7.65l0.96,-5.72l143.0,-0.19l0.81,-0.72l0.05,-50.4l75.68,0.02Z", "name": "La Pampa"}, "me": {"path": "M143.35,702.96l2.14,-4.18l-1.46,-4.09l1.3,-2.85l-0.64,-0.81l-1.02,0.02l0.02,-1.14l2.84,-2.99l-0.22,-1.83l-2.68,-6.27l0.59,-7.88l-1.72,-2.44l-1.08,-3.64l1.91,-1.5l-0.76,-1.66l-1.77,-1.01l-3.58,-0.72l-0.6,-1.43l1.34,-2.12l7.22,-2.44l1.51,-10.93l3.5,-8.02l-1.63,-2.52l1.6,-0.73l1.08,-1.77l1.07,-5.54l2.64,-2.31l2.43,-4.63l2.17,-1.78l0.46,-6.22l2.58,-0.84l3.62,0.76l3.98,-2.48l-0.19,-2.1l-1.59,-3.38l0.77,-7.94l-0.66,-1.71l-1.73,-0.17l0.53,-3.73l-0.77,-4.84l2.42,-2.29l-0.02,-1.21l-1.54,-2.33l1.0,-3.66l-0.25,-1.45l1.61,-1.05l0.51,-3.8l2.02,-3.15l-1.26,-5.76l-1.23,-1.47l-3.33,-1.51l-1.83,0.23l-2.7,2.74l-1.74,-3.37l-2.5,-2.59l0.79,-3.8l-0.83,-2.64l0.63,-0.97l2.35,-1.03l1.99,-6.2l-4.1,-3.04l-2.95,-4.03l-1.12,-6.33l0.21,-1.17l1.4,-0.24l0.33,-0.68l-0.91,-1.41l-0.71,-3.94l-2.57,-1.68l-0.65,-1.23l-0.08,-4.02l6.51,-0.97l4.98,0.82l8.83,-2.02l5.68,-0.37l1.77,-1.6l0.12,-4.18l0.71,-1.17l4.36,-1.55l2.68,-1.72l7.15,0.01l1.92,-2.81l3.11,-2.03l1.93,0.93l3.94,4.74l2.44,0.54l2.53,-0.46l0.89,12.22l1.2,1.04l9.23,-0.1l10.38,-6.36l2.94,-2.85l6.38,-0.53l3.92,-2.35l4.84,-1.19l2.73,0.87l1.47,1.63l0.53,1.8l2.98,1.83l2.13,2.36l4.47,0.72l11.21,-1.92l3.76,2.12l1.43,6.61l1.84,1.72l0.85,2.69l1.98,8.45l1.98,2.59l0.91,2.55l-1.12,3.33l0.55,3.03l-0.94,1.5l1.31,3.59l0.34,12.15l1.84,6.86l-0.09,3.29l6.01,9.55l4.09,11.21l3.92,3.03l0.96,3.13l1.97,1.77l1.34,3.41l-0.52,5.63l-1.68,0.19l-1.16,2.24l0.87,6.91l-0.48,1.2l1.52,2.22l0.29,4.34l1.6,5.28l2.2,2.3l5.29,9.79l1.13,3.55l-0.33,3.69l2.17,6.41l-0.92,3.78l0.92,1.49l-0.61,1.8l0.61,3.99l-0.72,7.71l-1.55,3.86l-2.37,13.27l-0.78,8.25l-72.61,-0.03l-2.06,1.3l-0.67,5.91l1.65,7.73l0.33,65.48l-7.23,-0.9l-3.47,-4.63l-7.84,-1.16l-3.57,-2.83l-5.94,0.46l-4.31,-0.85l-1.37,-0.88l-0.74,-1.45l-1.1,-4.14l-1.37,-1.61l-3.12,-1.34l-6.89,-1.75l-7.99,1.38l-2.25,-0.14l-4.0,-1.04l-3.51,-2.04l-4.79,-5.47l1.19,-1.7l0.33,-2.22l-0.54,-3.39l-5.34,-3.56l-2.15,-4.58l-2.7,-1.92l-2.42,-3.02l-4.25,-1.51l-1.44,-2.34l-2.95,-8.42l-1.66,-0.92l-1.94,1.06l-0.68,-0.42l-1.1,-3.52l1.03,-1.8l0.03,-3.07l-0.71,-1.61l-2.41,-1.92Z", "name": "Mendoza"}, "sj": {"path": "M163.26,356.46l2.73,-1.94l0.52,-1.18l3.83,-1.07l1.15,-1.38l0.07,-7.82l3.18,-7.18l-0.93,-5.88l1.32,-2.85l2.05,-1.96l0.93,-7.87l4.51,1.65l3.13,-0.53l2.26,2.42l3.73,0.32l6.52,5.27l2.4,4.0l1.43,4.83l3.77,3.43l2.06,4.78l2.86,3.15l-0.36,1.18l-2.01,1.03l-1.7,2.66l-0.05,5.88l2.61,3.67l-1.14,0.78l-0.51,1.29l-0.05,4.83l-1.8,3.39l-0.0,4.82l2.48,1.46l3.74,-0.84l3.75,0.64l5.02,-1.46l4.18,2.09l4.94,-0.02l7.09,2.02l2.03,2.49l4.91,3.24l1.07,2.16l3.59,1.65l2.03,2.02l0.88,2.01l2.27,1.5l2.14,2.71l4.17,2.23l2.17,2.81l6.27,4.68l2.23,3.49l0.8,2.95l3.65,2.47l1.91,3.07l4.53,3.72l3.95,5.75l2.88,1.54l4.8,8.64l-1.62,5.56l0.26,1.78l2.33,2.06l-1.94,13.31l2.38,5.28l0.14,3.28l4.94,4.9l3.85,0.77l0.83,5.57l2.53,1.45l1.94,4.13l-10.59,0.55l-5.49,-1.82l-5.82,0.74l-4.96,-0.99l-1.35,0.66l-1.24,2.16l0.63,4.77l-0.97,3.77l0.16,8.86l-3.96,-1.93l-11.13,1.95l-3.93,-0.64l-1.8,-2.16l-2.74,-1.61l-0.43,-1.62l-1.81,-2.03l-1.77,-1.06l-1.83,-0.06l-5.17,1.26l-3.83,2.32l-6.48,0.55l-3.19,3.0l-10.07,6.19l-8.6,0.07l-1.26,-12.75l-0.81,-0.52l-4.62,0.09l-3.74,-4.59l-2.78,-1.26l-3.92,2.36l-1.57,2.59l-6.93,-0.08l-2.94,1.81l-4.49,1.62l-1.2,1.73l-0.11,4.21l-1.31,0.98l-5.18,0.23l-8.75,2.0l-4.96,-0.81l-7.28,1.14l-2.64,-1.34l-0.98,-4.91l0.43,-1.89l-2.37,-4.44l4.47,0.4l2.12,-4.54l-0.12,-1.27l-2.63,-2.94l-5.96,-1.07l-1.87,-2.19l-0.51,-4.43l-1.9,-2.44l-2.73,-5.57l0.5,-6.57l1.1,-3.44l-0.63,-2.83l0.97,-1.97l0.45,-4.42l2.42,-3.59l1.7,2.84l1.29,-0.06l1.57,-1.68l1.74,-3.78l3.47,-0.55l-0.12,-1.16l-2.61,-2.61l-0.51,-1.32l0.87,-6.63l1.94,-3.67l0.02,-2.64l1.82,-4.0l0.81,-3.72l2.86,-2.57l0.47,-1.27l-1.32,-3.43l0.59,-0.26l5.25,2.07l3.31,-1.2l2.59,-2.47l0.98,-4.99l1.83,-1.37l0.69,-2.04l-0.7,-2.18l-1.55,-1.5l-4.22,-0.88l2.31,-4.55l0.57,-8.59l-0.64,-4.46l-1.96,-2.49l0.2,-4.07l-3.35,-10.83l0.4,-3.62l2.65,-2.02l-0.52,-1.36Z", "name": "San Juan"}, "ca": {"path": "M201.92,285.51l0.45,-1.52l2.01,-1.49l-0.73,-2.72l2.86,-4.3l0.5,-4.37l3.83,-3.08l2.24,-4.98l0.53,-4.59l2.4,-3.57l3.74,-0.53l3.08,2.12l3.24,0.58l1.65,-2.92l1.55,-1.28l8.36,-1.51l0.52,-0.8l-0.03,-1.83l1.22,-3.57l-0.18,-1.71l-11.98,-16.82l-1.08,-4.27l0.85,-7.08l6.88,-5.83l0.68,-2.09l-4.07,-18.94l-2.73,-4.43l-0.32,-3.29l0.5,-1.01l-2.39,-3.76l0.1,-2.44l4.59,-12.71l30.88,5.83l56.1,-0.57l1.51,6.03l2.25,3.4l-1.13,5.92l-3.06,2.43l-7.33,0.31l-3.16,2.24l-1.02,3.01l0.69,4.49l8.3,11.47l3.95,7.93l5.75,6.08l1.55,0.29l1.37,-0.94l2.78,-6.13l1.71,-1.08l1.55,-2.34l2.52,-0.04l2.59,2.94l1.58,0.82l-1.93,2.8l-0.28,2.77l-2.23,5.73l0.19,2.34l1.68,1.74l4.65,1.52l4.47,3.82l2.18,1.07l0.52,0.98l-1.37,9.76l-6.91,7.81l-1.63,3.24l-3.35,3.25l-2.16,4.6l0.88,0.83l8.84,2.98l-0.39,1.39l2.61,10.92l2.41,2.27l1.2,3.99l1.71,1.51l2.84,-0.82l2.16,1.21l1.69,6.1l4.45,5.32l1.26,0.16l2.79,-4.55l6.49,-4.64l4.42,2.73l3.06,-0.2l3.89,16.98l0.31,7.18l-0.75,3.71l-4.04,4.86l-0.08,2.3l0.4,0.87l3.41,2.22l0.74,14.27l1.99,14.38l6.5,12.53l-2.5,0.91l-0.68,1.96l1.3,12.21l-9.03,9.6l-11.23,3.58l-7.3,-14.17l-7.24,-16.69l-1.03,-4.71l-0.12,-4.39l-1.75,-3.37l-15.02,-13.84l-10.78,-5.6l-0.62,-1.02l1.85,-2.93l-0.04,-1.73l-2.83,-1.78l-2.94,-3.38l-1.39,-6.39l-4.25,-4.89l-17.99,-6.73l-3.34,0.92l-2.45,2.74l-3.78,0.67l-23.33,-0.83l-3.05,0.74l-2.04,1.31l-0.68,-1.93l-3.12,-4.13l-1.04,-6.38l-1.82,-0.35l-5.58,1.75l-2.59,-2.34l-5.69,-0.95l-3.16,-3.22l-4.01,-0.79l0.65,-4.35l-0.84,-2.53l0.93,-4.12l-0.97,-1.64l-3.44,-0.31l-2.93,1.68l-3.69,-1.0l-8.67,2.0l-12.07,-0.93Z", "name": "Catamarca"}, "cc": {"path": "M530.99,121.33l2.23,0.21l2.82,2.17l2.65,4.58l3.61,0.08l0.95,2.06l5.0,4.57l10.55,1.96l2.62,2.71l0.29,1.73l1.89,2.79l-0.15,2.27l1.28,1.44l1.03,0.51l0.91,-0.35l10.59,8.49l7.04,4.29l4.08,1.79l2.38,0.3l3.3,5.17l2.89,2.06l0.81,1.48l-0.05,1.46l1.87,1.08l0.74,1.91l2.09,0.46l0.49,0.87l-0.52,1.32l2.87,5.97l1.04,0.43l0.84,-0.48l4.56,1.72l0.96,1.76l2.24,0.63l1.1,1.5l3.31,1.8l0.59,2.27l2.05,1.03l4.76,5.81l1.24,0.47l0.66,5.58l10.98,2.5l1.51,5.48l1.91,2.09l4.08,0.35l4.75,-2.42l2.47,2.51l5.15,1.94l5.25,5.43l3.21,1.66l2.31,2.68l2.25,0.44l1.76,2.18l3.69,2.23l1.01,2.17l3.12,2.7l0.95,1.87l1.68,0.82l1.8,-0.19l0.1,1.14l-0.73,0.9l-3.77,1.5l-0.5,1.01l0.62,1.34l-1.61,2.64l-0.88,-0.47l-1.08,0.83l-0.55,3.08l-2.16,0.4l-1.92,1.81l0.02,2.55l2.26,2.25l-0.09,2.65l-2.07,0.79l-10.66,7.46l0.06,3.85l2.31,4.59l0.79,3.37l-2.08,13.06l-127.42,0.05l-0.03,-89.06l-0.54,-19.42l-1.51,-4.21l-73.53,-0.39l47.3,-59.16l-0.11,-12.89l8.98,3.41l4.25,0.79l1.82,2.2l3.75,2.59l3.48,0.97Z", "name": "Chaco"}, "lr": {"path": "M178.8,316.25l5.86,-5.77l0.96,-3.41l3.1,0.73l4.95,-8.64l0.33,-1.71l5.12,-2.38l2.51,-8.37l12.43,0.96l8.75,-2.01l4.01,0.96l3.07,-1.75l2.55,0.67l-0.91,4.22l0.84,2.67l-0.78,3.63l0.4,1.43l1.33,0.78l3.06,0.31l3.27,3.27l5.64,0.92l2.78,2.41l6.92,-1.64l0.71,5.88l4.43,6.85l5.69,-2.06l23.39,0.82l4.14,-0.76l2.39,-2.68l2.8,-0.87l17.42,6.56l3.8,4.34l1.49,6.58l3.15,3.62l2.59,1.53l-1.98,3.81l0.91,2.0l10.94,5.75l14.78,13.59l1.56,2.94l0.1,4.3l1.1,4.98l7.27,16.77l7.42,14.4l-3.64,9.96l-1.9,3.43l-10.89,33.7l0.33,38.84l-6.01,0.66l-2.7,-1.09l-4.07,-0.37l-7.41,2.7l-6.9,0.41l-2.63,-0.94l-2.91,0.28l-1.94,-0.89l-2.43,0.62l-5.79,-1.84l-2.29,-4.91l-2.4,-1.24l-0.9,-5.71l-4.24,-1.13l-4.41,-4.26l-0.11,-3.17l-2.33,-5.1l1.97,-13.42l-2.5,-2.48l-0.12,-1.08l1.63,-5.73l-5.1,-9.32l-2.95,-1.61l-3.88,-5.68l-4.56,-3.75l-2.02,-3.18l-3.3,-2.06l-0.83,-2.92l-2.51,-3.9l-6.28,-4.68l-2.31,-2.92l-4.04,-2.13l-2.13,-2.7l-2.2,-1.43l-0.73,-1.84l-2.26,-2.26l-3.55,-1.62l-1.04,-2.13l-5.05,-3.36l-2.16,-2.58l-7.5,-2.17l-4.88,0.03l-4.39,-2.13l-5.63,1.52l-2.92,-0.68l-3.93,0.83l-1.32,-0.57l-0.07,-4.28l1.81,-3.41l0.03,-4.75l1.68,-2.33l-1.24,-2.66l-1.42,-1.4l0.07,-5.18l1.36,-2.08l2.14,-1.16l0.61,-1.59l-0.29,-1.32l-2.79,-2.86l-2.11,-4.85l-3.68,-3.35l-2.63,-7.54l-1.45,-1.55l-7.1,-5.6l-3.44,-0.17l-2.45,-2.51l-3.21,0.52l-4.05,-1.53Z", "name": "La Rioja"}, "se": {"path": "M380.4,328.49l-0.01,-1.74l1.14,-0.73l3.4,-5.24l0.33,-3.08l-0.32,-7.34l-3.98,-17.39l4.05,-0.78l2.03,-5.0l1.46,-0.62l-3.11,-8.78l0.39,-1.03l2.81,-0.75l1.33,-2.19l-1.3,-1.51l-2.7,-0.92l5.12,-5.65l2.84,-1.9l3.39,-7.56l1.33,-5.19l2.16,-2.86l2.33,-8.6l2.4,-0.75l1.71,-5.35l3.06,0.4l0.76,-0.66l-1.01,-11.39l1.75,-5.97l0.26,-6.38l2.04,-4.22l0.38,-3.36l10.23,-21.07l11.8,3.44l97.61,0.44l1.25,3.48l0.53,19.24l0.03,89.6l-16.68,103.35l-6.23,-15.33l-2.46,-1.73l-49.39,-0.26l-0.4,-1.99l-2.73,-0.72l0.17,-2.04l-0.6,-0.93l-2.9,0.13l-4.0,-1.07l-5.39,0.8l-3.4,-0.18l-1.93,-1.25l-3.46,-0.78l-0.97,-1.29l-3.36,-1.73l-0.63,-0.57l0.14,-2.31l-0.51,-0.68l-9.51,-2.47l-28.2,6.44l-6.56,-12.45l-1.96,-14.18l0.19,-4.05l-0.98,-10.46l-1.43,-1.67l-2.32,-1.15Z", "name": "Santiago del Estero"}, "sl": {"path": "M280.93,492.01l-0.24,-3.55l1.44,-1.44l4.82,0.96l6.25,-0.69l5.01,1.77l11.5,-0.59l6.1,1.9l2.54,-0.6l1.7,0.87l3.1,-0.26l2.66,0.94l7.25,-0.43l7.29,-2.68l3.62,0.34l2.95,1.12l10.57,-0.75l3.49,1.4l12.5,7.22l2.43,2.46l0.93,4.57l1.36,2.51l0.08,3.07l0.73,0.74l5.81,-0.32l6.04,-1.26l-0.08,6.16l2.15,5.87l-0.35,3.43l-1.44,4.61l-1.32,1.68l-1.3,6.7l-1.88,3.5l0.31,2.36l-1.63,3.37l0.52,2.42l-2.51,1.09l-2.0,3.84l2.02,38.23l-0.04,103.28l-68.2,-0.07l-0.18,-1.92l3.29,-19.31l1.57,-4.01l0.73,-7.79l-0.6,-3.98l0.6,-1.96l-0.86,-1.56l0.85,-3.8l-2.05,-5.83l0.21,-4.28l-1.2,-3.79l-5.44,-10.07l-2.12,-2.17l-1.48,-4.96l-0.3,-4.38l-1.41,-2.07l0.47,-1.12l-0.98,-6.52l0.72,-1.34l1.11,0.15l0.95,-1.05l0.55,-6.54l-1.48,-3.68l-1.9,-1.66l-1.09,-3.3l-3.87,-2.98l-4.01,-11.06l-5.91,-9.3l0.11,-3.14l-1.84,-6.87l-0.35,-12.19l-1.28,-3.45l0.89,-1.03l-0.5,-3.37l1.15,-3.46l-1.08,-3.07l-1.93,-2.44l-2.83,-11.18l-1.89,-1.87l-1.2,-4.35l-0.27,-11.91l0.94,-3.47l-0.33,-1.72Z", "name": "San Luis"}, "er": {"path": "M584.87,481.91l0.53,-1.96l7.05,-0.42l2.98,-1.31l2.88,-2.69l4.37,-5.72l4.12,-3.15l3.23,-4.51l1.41,-4.21l2.77,-2.75l7.23,-11.66l5.47,-7.25l2.75,-4.86l1.75,-8.07l0.34,-5.74l-1.99,-5.51l3.6,-0.2l3.09,-1.15l1.9,0.52l3.05,-0.67l6.76,1.83l10.61,-6.85l5.81,1.11l12.3,-3.72l3.48,1.54l3.11,0.07l8.56,2.25l1.56,1.36l2.27,3.91l4.69,3.96l1.3,4.81l2.3,4.14l8.03,7.21l0.48,5.46l-0.39,1.56l-3.19,0.44l-1.26,0.9l-0.37,1.27l2.19,3.29l0.31,1.98l-2.51,5.47l0.28,3.44l-2.7,3.58l-1.03,4.1l-3.19,2.18l-0.74,1.82l4.01,4.34l0.29,1.95l-3.07,9.61l-5.21,2.21l-1.79,2.74l2.03,2.95l0.54,3.39l-0.56,3.93l-1.28,2.96l4.03,6.3l-0.18,1.23l-2.8,3.83l-2.54,5.29l0.38,8.48l1.47,8.66l1.85,3.53l-0.97,3.93l0.56,3.37l-1.76,1.56l-1.36,0.28l-7.03,-0.98l-1.85,0.73l-0.76,1.06l-0.03,0.91l0.76,0.46l-0.89,5.34l0.9,3.11l-1.99,1.67l-2.19,3.75l-1.17,4.58l0.13,4.32l-0.92,5.27l0.45,3.38l3.58,5.72l0.66,6.76l-6.07,2.03l-1.9,-0.02l-6.31,-4.79l-3.13,-0.81l-8.18,-5.41l-6.08,-0.11l-1.58,-1.67l-1.36,0.18l-1.76,-3.9l-2.16,0.87l-3.51,0.0l-5.75,-4.22l-3.91,1.09l-1.48,-0.3l-5.8,-2.98l-3.97,-4.36l-4.04,-1.51l-7.57,-5.03l-5.79,-5.8l-3.58,-1.89l-3.05,-3.36l-4.6,-2.61l-2.46,-2.94l-1.54,-4.17l-1.62,-1.85l-2.36,-4.65l-1.35,-8.32l-2.83,-5.76l1.79,-5.22l-0.08,-5.03l1.33,-5.05l-0.24,-4.81l2.05,-4.4l-2.54,-5.11l-0.09,-2.13l2.05,-3.4l0.99,-4.98Z", "name": "Entre R\u00edos"}, "ba": {"path": "M507.92,939.49l-0.39,0.81l1.34,1.39l4.21,-2.12l-0.94,1.26l-0.77,3.95l-3.59,6.5l-18.35,9.08l-1.72,-0.07l-2.74,-5.4l-11.04,-9.98l-3.78,-1.41l-8.78,-1.01l-0.06,-246.87l0.68,-79.95l1.2,-1.32l73.55,-0.24l33.96,-35.54l1.69,-2.36l-0.33,-1.78l0.93,-1.51l2.73,-0.55l2.97,1.15l4.38,0.12l4.88,3.23l3.51,-0.36l1.68,-1.27l1.7,-3.33l0.91,-4.42l2.82,-2.51l0.33,-3.19l2.38,-1.29l0.66,-2.1l6.14,5.97l7.74,5.14l3.94,1.45l3.89,4.32l6.1,3.14l1.99,0.38l3.55,-1.07l3.29,2.95l2.48,1.22l4.07,0.01l1.5,-0.83l0.49,2.9l1.0,0.8l1.52,-0.06l1.8,1.7l5.84,0.03l8.12,5.38l3.03,0.76l4.57,3.95l2.02,0.96l2.46,0.05l6.06,-2.03l2.17,0.91l0.03,5.86l0.57,1.51l-3.29,3.93l-3.64,-0.29l-1.69,1.55l3.9,2.97l-0.47,2.3l-1.24,1.65l0.34,1.93l1.78,1.51l0.07,1.76l1.1,1.81l1.72,1.32l2.23,0.37l0.96,2.67l4.75,3.87l19.89,8.24l6.79,4.28l1.18,1.44l5.64,2.92l8.27,6.54l6.94,9.54l1.25,3.27l-0.27,1.55l-8.43,11.57l-2.5,4.51l-0.75,4.4l0.4,4.41l3.47,8.01l1.82,1.44l1.02,2.33l6.4,5.84l4.76,2.72l2.88,0.79l-0.56,0.96l0.6,0.84l4.21,-2.04l4.1,-0.04l-0.08,-1.96l0.57,0.39l1.82,3.94l-0.08,6.27l1.23,4.08l0.16,14.97l-9.85,13.71l-7.56,13.0l-4.9,6.31l-6.45,5.69l-8.12,9.81l-1.97,4.47l-0.6,4.52l0.58,1.4l-0.18,2.45l-1.04,2.2l-1.48,1.55l-12.05,7.35l-6.97,3.8l-2.26,0.6l-3.97,2.68l-7.83,3.24l-4.02,0.61l-6.69,2.88l-7.3,1.54l-9.53,3.02l-5.54,2.5l-25.65,4.72l-7.47,2.87l-4.13,-0.0l-44.04,7.2l-6.82,-0.39l-5.7,1.72l-12.83,-0.97l-4.15,1.52l-6.76,-0.89l-2.36,-1.38l-5.2,0.68l-9.93,-2.97l-4.32,-5.96l-7.34,-0.55l-1.95,-0.72l-1.35,0.71l-0.71,1.33l0.78,4.72l1.74,-0.03l0.22,3.02l2.2,0.46l-0.21,1.36l-1.42,1.08l-1.85,4.45l0.83,1.48l0.04,3.65l1.79,1.7l-1.15,1.54l1.79,1.28l5.69,0.56l5.24,2.78l0.87,1.51l-0.97,1.24l-3.98,-2.92l-2.1,-2.52l-4.7,0.58l0.63,2.04l2.06,0.58l1.41,2.49l1.94,1.69l4.31,1.18l0.15,0.78l-0.96,1.5l-2.0,17.22l-1.82,1.03l-2.93,-0.46l-2.89,-1.96l-0.77,0.22l-0.25,1.04l0.71,1.26l-0.96,0.94l-0.05,2.95l-2.32,6.99l1.22,3.27l-0.9,3.93l-0.31,0.79l-3.72,2.06l-1.86,3.36l3.5,8.73l3.93,1.96l0.3,1.73l1.85,1.9l0.86,-0.14l0.06,2.68l-1.72,-0.29l-1.47,-1.46l-0.69,0.2l0.62,2.71ZM526.47,860.53l0.79,0.52l0.69,-0.49l1.04,3.85l-6.42,-2.9l-2.93,-3.99l6.05,1.6l0.79,1.41ZM519.12,853.16l-0.45,0.42l-0.44,-0.18l0.15,-0.28l0.74,0.04ZM520.02,853.2l3.01,0.5l1.2,1.06l-1.16,0.39l-3.05,-1.95Z", "name": "Buenos Aires"}, "sa": {"path": "M231.8,149.19l-0.64,-2.0l-3.17,-1.41l-1.12,-3.23l3.33,-8.36l1.55,1.09l0.7,-0.15l2.44,-6.11l3.1,-0.06l3.64,-5.33l39.89,-16.94l1.27,-1.75l3.69,-11.75l4.27,3.32l2.85,0.79l3.5,3.64l0.6,1.47l1.85,0.6l3.33,4.56l4.77,2.33l4.31,4.86l5.08,2.01l3.1,-0.14l1.73,-0.88l2.42,-3.16l1.47,-0.79l1.72,-5.01l0.64,-15.2l-3.1,-9.67l1.28,-5.89l0.63,-0.67l4.02,1.11l2.11,1.31l1.75,0.03l7.8,5.16l0.06,5.7l-0.49,1.17l0.56,1.48l-1.51,2.33l-0.25,3.86l1.47,2.69l-0.25,2.05l2.1,2.74l1.16,0.2l1.55,-0.75l2.91,2.61l3.13,1.71l0.4,4.67l7.47,10.91l2.4,1.5l2.8,-0.42l2.23,1.86l7.02,2.01l4.81,-2.23l0.56,1.15l3.96,3.13l6.7,2.62l1.46,-0.6l3.03,-6.17l9.28,7.46l1.13,-0.67l1.44,-3.01l2.92,-2.72l2.56,-0.74l1.34,-1.73l3.99,-0.48l1.46,-0.9l4.03,-5.07l2.48,-5.74l-1.16,-31.55l-0.52,-0.91l-1.68,-0.39l-6.85,0.16l-1.57,1.76l-1.47,3.29l-4.91,-5.14l-3.59,-1.35l-1.34,-1.18l-4.33,0.6l-2.1,1.66l-3.06,-0.32l-0.46,-2.75l-2.92,-5.89l-3.96,-2.4l1.6,-8.23l-0.31,-2.26l-2.29,-2.3l-5.71,-0.36l-1.75,-1.42l-1.75,-4.83l-0.77,-5.24l-0.01,-2.11l0.92,-2.38l-1.99,-2.18l-1.58,-0.15l0.42,-3.66l4.3,-8.68l0.21,-4.65l1.99,-5.39l7.02,-0.08l8.33,1.9l3.25,1.76l4.62,0.18l3.03,1.49l1.8,2.64l-1.27,3.31l2.12,2.05l-0.32,1.76l1.6,2.43l3.01,3.16l-0.91,1.75l-0.17,2.98l4.41,5.14l-0.21,2.28l0.74,2.97l1.34,0.83l0.66,-0.39l1.41,-5.25l0.04,-3.45l1.91,-6.94l4.05,-4.78l3.34,-8.47l1.61,-1.41l2.14,-6.19l1.57,-1.42l1.25,-2.8l5.1,0.07l3.4,2.25l3.05,-2.24l1.58,-0.27l37.19,0.22l0.88,5.74l4.85,3.2l0.87,1.69l1.32,0.53l-0.3,2.14l0.5,0.8l2.9,0.94l1.8,1.96l2.44,0.85l1.38,1.71l4.17,2.53l0.31,90.89l-47.74,59.69l-23.37,-0.33l-10.3,-3.23l-2.27,-0.1l-10.69,21.7l-0.43,3.49l-2.29,5.44l-8.99,0.21l-3.3,-0.64l-7.86,3.01l-3.12,-1.56l-2.16,-0.0l-8.4,-3.27l-2.89,-4.67l-5.88,2.09l-10.22,-2.17l-1.18,1.06l-0.78,8.66l-0.65,1.12l-14.67,-2.22l-1.74,-0.88l-2.83,-3.09l-2.7,-0.26l-1.52,0.74l-1.28,2.12l-1.8,1.23l-2.62,5.89l-1.13,0.71l-5.69,-5.86l-3.88,-7.83l-7.35,-9.74l-1.45,-3.72l0.21,-3.6l2.64,-2.26l7.78,-0.46l3.8,-3.13l1.21,-6.56l-2.32,-3.65l-0.64,-4.27l-1.15,-2.23l-2.45,-0.43l-54.4,0.67l-27.73,-5.23l2.22,-0.73l0.72,-2.13l-3.42,-4.03l0.25,-2.22l-1.43,-1.87Z", "name": "Salta"}}});
--- /dev/null
+/** Add Brazil Map Data Points */
+jQuery.fn.vectorMap('addMap', 'brazil_br', {"width":600,"height":550,"paths":{"ro": {"name": "Rondônia","path": "M 179,197 L 182,197 L 186,197 L 186,198 L 187,198 L 188,198 L 188,199 L 188,200 L 189,200 L 189,201 L 189,202 L 190,201 L 190,202 L 190,203 L 191,203 L 191,202 L 191,203 L 192,203 L 193,203 L 193,204 L 193,205 L 193,206 L 194,207 L 194,206 L 195,206 L 195,207 L 195,208 L 196,208 L 196,209 L 197,209 L 198,209 L 198,210 L 199,210 L 200,210 L 200,209 L 200,208 L 201,208 L 201,207 L 202,207 L 202,208 L 203,208 L 203,209 L 204,209 L 204,210 L 205,210 L 205,211 L 204,211 L 204,212 L 204,213 L 204,214 L 204,215 L 203,215 L 203,216 L 203,215 L 203,216 L 203,217 L 204,217 L 204,218 L 204,219 L 205,219 L 205,220 L 205,221 L 204,221 L 204,222 L 204,221 L 204,222 L 204,223 L 205,223 L 205,224 L 204,224 L 204,225 L 204,226 L 204,227 L 203,227 L 203,228 L 204,228 L 204,229 L 204,230 L 205,230 L 205,231 L 205,232 L 205,233 L 205,234 L 205,235 L 205,236 L 205,237 L 205,236 L 205,237 L 204,237 L 204,238 L 204,239 L 205,239 L 206,239 L 212,239 L 213,239 L 214,239 L 219,239 L 219,240 L 220,240 L 220,241 L 221,241 L 221,240 L 221,241 L 221,240 L 222,240 L 222,241 L 223,241 L 224,241 L 225,241 L 226,241 L 226,242 L 226,243 L 226,244 L 227,244 L 227,245 L 226,245 L 226,246 L 225,246 L 225,247 L 224,247 L 224,248 L 224,249 L 224,250 L 224,251 L 224,252 L 225,252 L 224,252 L 225,252 L 226,252 L 226,253 L 226,254 L 227,254 L 227,255 L 227,256 L 227,257 L 229,258 L 228,258 L 228,259 L 228,260 L 227,260 L 226,260 L 226,261 L 225,261 L 225,262 L 224,262 L 224,263 L 224,264 L 225,264 L 224,264 L 224,265 L 224,266 L 224,267 L 223,267 L 223,268 L 222,268 L 222,269 L 222,270 L 221,270 L 221,271 L 220,271 L 221,271 L 220,271 L 221,272 L 220,272 L 220,273 L 220,274 L 219,274 L 218,274 L 218,275 L 217,275 L 217,276 L 217,275 L 216,276 L 216,277 L 215,277 L 215,276 L 214,276 L 213,276 L 213,275 L 212,275 L 211,275 L 212,275 L 212,274 L 211,274 L 210,274 L 210,275 L 210,274 L 210,275 L 210,274 L 210,275 L 209,274 L 209,275 L 208,275 L 208,274 L 207,274 L 207,275 L 207,274 L 206,274 L 206,275 L 205,275 L 204,275 L 204,274 L 204,275 L 204,274 L 203,274 L 204,274 L 203,274 L 202,274 L 202,275 L 201,274 L 201,275 L 201,274 L 201,275 L 201,274 L 201,275 L 200,275 L 200,274 L 199,274 L 199,273 L 198,273 L 198,272 L 197,272 L 197,271 L 196,271 L 196,270 L 196,269 L 196,270 L 196,269 L 195,269 L 194,269 L 193,269 L 192,269 L 192,268 L 191,268 L 190,268 L 189,268 L 189,267 L 188,267 L 188,268 L 187,268 L 187,267 L 187,268 L 187,267 L 186,267 L 187,267 L 187,266 L 186,266 L 186,267 L 186,266 L 185,266 L 185,265 L 184,265 L 184,264 L 183,264 L 183,263 L 183,264 L 183,263 L 182,263 L 183,263 L 183,262 L 182,262 L 182,263 L 182,262 L 181,262 L 182,262 L 181,262 L 181,263 L 180,263 L 181,263 L 180,263 L 179,263 L 179,262 L 179,263 L 179,262 L 178,262 L 178,261 L 177,261 L 176,261 L 176,260 L 175,260 L 174,260 L 174,259 L 173,259 L 173,260 L 172,260 L 171,260 L 171,261 L 170,261 L 170,260 L 170,261 L 170,260 L 169,260 L 169,261 L 169,260 L 168,260 L 167,260 L 168,260 L 167,260 L 166,260 L 165,260 L 164,260 L 164,259 L 163,259 L 163,258 L 163,257 L 163,256 L 163,257 L 162,257 L 162,256 L 161,256 L 160,256 L 160,255 L 160,256 L 159,256 L 159,255 L 158,255 L 158,254 L 159,254 L 158,254 L 158,253 L 158,254 L 157,254 L 157,253 L 156,253 L 156,254 L 156,253 L 155,253 L 156,253 L 156,252 L 155,252 L 155,251 L 155,250 L 155,249 L 154,249 L 153,249 L 153,250 L 154,250 L 153,250 L 153,249 L 152,249 L 153,249 L 153,248 L 153,247 L 152,247 L 152,246 L 152,245 L 151,245 L 151,244 L 152,244 L 151,244 L 151,243 L 151,242 L 152,242 L 151,242 L 151,241 L 152,241 L 152,240 L 152,239 L 153,239 L 152,239 L 152,238 L 152,237 L 151,237 L 151,236 L 151,235 L 151,234 L 150,234 L 150,233 L 150,232 L 151,232 L 151,231 L 151,230 L 152,230 L 152,229 L 152,228 L 152,227 L 151,227 L 151,226 L 152,226 L 152,225 L 151,225 L 151,224 L 152,224 L 152,223 L 151,223 L 151,222 L 151,221 L 150,221 L 149,222 L 149,221 L 149,222 L 149,223 L 149,222 L 149,223 L 148,223 L 147,223 L 147,222 L 147,223 L 146,223 L 146,222 L 147,222 L 146,222 L 145,222 L 145,223 L 145,222 L 144,222 L 144,223 L 144,222 L 143,222 L 142,222 L 142,223 L 143,223 L 142,223 L 141,223 L 141,222 L 141,223 L 140,223 L 139,223 L 140,223 L 139,223 L 138,223 L 137,223 L 137,224 L 136,224 L 135,224 L 134,224 L 133,224 L 131,223 L 131,222 L 132,222 L 133,222 L 133,221 L 134,221 L 135,221 L 135,220 L 136,220 L 136,219 L 137,219 L 137,218 L 136,218 L 136,217 L 137,217 L 137,218 L 137,217 L 137,218 L 138,217 L 138,218 L 138,217 L 139,218 L 140,218 L 140,217 L 141,217 L 142,217 L 143,217 L 143,218 L 144,218 L 144,219 L 145,219 L 145,220 L 145,219 L 145,220 L 145,219 L 146,219 L 147,219 L 147,218 L 147,217 L 148,217 L 148,218 L 149,218 L 150,218 L 150,217 L 150,216 L 151,216 L 152,216 L 152,215 L 153,215 L 153,216 L 153,217 L 154,217 L 153,217 L 153,218 L 154,218 L 155,218 L 155,217 L 156,217 L 156,216 L 157,216 L 157,215 L 157,214 L 157,213 L 157,212 L 158,212 L 158,211 L 159,211 L 159,212 L 160,212 L 160,211 L 160,212 L 161,212 L 162,212 L 162,211 L 163,211 L 164,211 L 165,211 L 166,211 L 165,211 L 165,212 L 166,212 L 166,211 L 167,211 L 168,211 L 168,210 L 168,209 L 168,208 L 169,208 L 170,208 L 169,207 L 170,207 L 170,206 L 171,206 L 171,205 L 170,205 L 170,204 L 171,204 L 170,204 L 170,203 L 171,203 L 171,202 L 172,202 L 173,202 L 173,201 L 174,201 L 173,201 L 173,200 L 174,200 L 174,199 L 175,199 L 175,198 L 175,197 L 176,197 L 177,197 L 178,197 L 179,197 "},"ac": {"name": "Acre","path": "M 42,188 L 43,189 L 44,189 L 46,190 L 49,191 L 50,191 L 51,191 L 52,192 L 53,192 L 54,192 L 55,192 L 56,192 L 58,192 L 59,192 L 59,193 L 60,193 L 62,193 L 64,193 L 67,193 L 71,194 L 74,194 L 75,194 L 76,194 L 77,194 L 77,195 L 79,195 L 82,195 L 83,195 L 84,195 L 86,196 L 87,196 L 87,197 L 92,201 L 93,202 L 94,202 L 94,203 L 95,203 L 95,204 L 96,204 L 96,205 L 97,205 L 97,206 L 98,206 L 99,207 L 100,208 L 101,208 L 101,209 L 105,212 L 109,214 L 111,215 L 114,216 L 115,217 L 116,217 L 117,217 L 119,219 L 121,219 L 124,220 L 125,220 L 126,221 L 127,221 L 130,223 L 131,223 L 133,224 L 133,225 L 133,224 L 133,225 L 132,225 L 132,226 L 132,225 L 131,225 L 131,226 L 130,226 L 130,227 L 129,227 L 129,228 L 129,227 L 129,228 L 128,228 L 129,228 L 128,228 L 128,229 L 127,229 L 128,229 L 127,229 L 127,230 L 127,229 L 127,230 L 127,229 L 127,230 L 126,230 L 125,230 L 124,230 L 124,231 L 123,231 L 122,231 L 122,232 L 121,232 L 120,232 L 120,233 L 120,232 L 120,233 L 119,233 L 119,234 L 118,235 L 117,235 L 116,235 L 116,234 L 116,235 L 116,234 L 116,235 L 116,234 L 115,234 L 115,235 L 114,235 L 113,235 L 113,236 L 113,237 L 112,237 L 112,238 L 111,238 L 111,239 L 110,239 L 110,240 L 110,239 L 110,240 L 109,240 L 109,239 L 109,240 L 108,240 L 107,240 L 107,241 L 106,241 L 104,241 L 104,240 L 104,239 L 104,240 L 104,239 L 103,239 L 103,240 L 103,239 L 103,240 L 103,239 L 102,239 L 102,240 L 102,239 L 102,240 L 101,240 L 101,239 L 101,240 L 101,239 L 101,240 L 100,240 L 100,239 L 100,240 L 100,239 L 99,239 L 98,239 L 97,239 L 96,239 L 95,239 L 95,238 L 95,239 L 95,238 L 95,239 L 95,238 L 94,238 L 94,239 L 94,238 L 94,239 L 93,239 L 92,239 L 91,239 L 90,239 L 90,238 L 90,239 L 89,239 L 89,238 L 88,238 L 87,238 L 87,239 L 87,238 L 87,239 L 86,239 L 85,239 L 85,240 L 85,239 L 85,240 L 84,240 L 83,240 L 82,240 L 81,240 L 80,240 L 80,239 L 79,239 L 79,238 L 79,239 L 78,239 L 78,238 L 78,237 L 78,235 L 78,233 L 78,232 L 78,231 L 78,229 L 78,227 L 78,223 L 78,222 L 79,222 L 79,223 L 79,222 L 79,221 L 78,221 L 78,220 L 78,219 L 79,220 L 79,219 L 79,218 L 79,219 L 79,218 L 80,218 L 80,217 L 80,218 L 79,218 L 79,217 L 79,218 L 78,218 L 78,219 L 78,218 L 77,218 L 77,219 L 78,219 L 77,219 L 76,219 L 76,220 L 76,219 L 76,220 L 76,219 L 76,220 L 75,220 L 76,220 L 75,220 L 76,220 L 75,220 L 75,221 L 75,220 L 75,221 L 74,221 L 74,222 L 73,222 L 73,223 L 72,223 L 71,223 L 70,224 L 70,225 L 69,225 L 68,225 L 67,225 L 67,226 L 64,226 L 63,226 L 62,226 L 61,226 L 59,226 L 58,226 L 56,226 L 56,225 L 56,224 L 57,224 L 56,224 L 56,223 L 57,223 L 56,223 L 56,222 L 55,222 L 55,221 L 55,220 L 55,219 L 54,219 L 54,218 L 54,219 L 54,218 L 53,218 L 52,218 L 53,218 L 52,218 L 51,218 L 50,218 L 49,218 L 49,217 L 48,217 L 47,217 L 45,217 L 42,217 L 43,216 L 43,215 L 44,215 L 45,214 L 44,214 L 45,214 L 45,213 L 46,213 L 46,212 L 45,212 L 46,212 L 46,211 L 45,211 L 45,210 L 44,210 L 44,209 L 43,209 L 43,208 L 42,207 L 41,207 L 41,206 L 40,207 L 40,206 L 40,205 L 40,204 L 39,204 L 39,203 L 38,203 L 37,203 L 37,202 L 37,201 L 36,201 L 36,200 L 37,200 L 36,200 L 37,200 L 37,199 L 36,199 L 36,198 L 35,198 L 35,197 L 34,197 L 34,196 L 35,196 L 35,195 L 35,194 L 34,194 L 33,194 L 33,193 L 32,193 L 32,192 L 31,192 L 31,191 L 32,191 L 32,190 L 32,189 L 31,189 L 32,189 L 33,189 L 33,188 L 34,189 L 34,188 L 34,189 L 35,188 L 35,187 L 34,187 L 34,186 L 34,185 L 34,186 L 35,186 L 38,187 L 39,187 L 42,188 "},"am": {"name": "Amazonas","path": "M 124,58 L 124,59 L 124,60 L 125,60 L 125,61 L 126,61 L 127,62 L 127,63 L 127,64 L 127,65 L 127,66 L 127,67 L 127,68 L 127,69 L 127,70 L 128,70 L 130,69 L 134,73 L 138,76 L 139,76 L 140,76 L 141,76 L 141,75 L 142,75 L 143,75 L 143,74 L 144,74 L 144,73 L 145,73 L 146,73 L 146,72 L 146,73 L 146,72 L 146,73 L 147,73 L 147,72 L 147,73 L 147,72 L 148,72 L 148,73 L 149,73 L 149,74 L 149,75 L 148,75 L 148,76 L 148,77 L 149,77 L 150,77 L 150,76 L 151,76 L 150,76 L 150,75 L 151,75 L 151,74 L 151,73 L 152,73 L 152,74 L 153,74 L 153,73 L 153,74 L 154,73 L 154,72 L 154,71 L 154,70 L 155,70 L 155,71 L 156,71 L 156,70 L 157,70 L 156,70 L 156,69 L 157,69 L 157,70 L 157,69 L 158,69 L 158,68 L 159,68 L 159,69 L 160,69 L 160,68 L 160,69 L 161,68 L 162,68 L 162,67 L 163,67 L 163,66 L 164,66 L 164,65 L 165,65 L 165,66 L 164,67 L 165,67 L 165,66 L 166,66 L 166,65 L 167,65 L 168,64 L 168,65 L 168,64 L 169,64 L 169,63 L 169,62 L 169,61 L 169,60 L 169,59 L 170,59 L 171,59 L 172,59 L 173,59 L 174,59 L 173,58 L 174,58 L 175,58 L 175,57 L 176,57 L 177,57 L 178,57 L 178,56 L 179,56 L 180,56 L 181,56 L 182,56 L 182,57 L 183,58 L 184,58 L 185,58 L 186,58 L 186,59 L 187,59 L 188,59 L 188,60 L 188,61 L 188,62 L 188,63 L 187,63 L 187,64 L 187,65 L 188,65 L 188,66 L 189,66 L 189,67 L 189,68 L 190,69 L 190,70 L 190,71 L 191,71 L 191,72 L 191,73 L 192,73 L 191,73 L 191,74 L 191,75 L 191,76 L 190,76 L 190,77 L 190,78 L 191,78 L 190,78 L 190,79 L 190,80 L 191,80 L 191,81 L 192,81 L 191,81 L 191,82 L 191,83 L 191,84 L 192,84 L 192,85 L 192,86 L 193,86 L 193,87 L 193,88 L 194,88 L 194,89 L 194,90 L 194,91 L 195,91 L 195,92 L 194,92 L 194,93 L 193,94 L 194,94 L 193,94 L 193,95 L 194,95 L 193,96 L 192,96 L 192,97 L 192,96 L 191,96 L 191,97 L 191,98 L 192,98 L 193,98 L 192,98 L 193,98 L 193,99 L 194,99 L 194,100 L 195,100 L 195,101 L 196,101 L 196,102 L 197,102 L 198,102 L 198,103 L 198,104 L 198,105 L 199,105 L 199,106 L 200,106 L 201,106 L 202,106 L 203,106 L 203,107 L 204,107 L 204,108 L 205,108 L 205,107 L 204,107 L 204,106 L 203,106 L 203,105 L 204,105 L 203,105 L 203,104 L 203,103 L 204,103 L 204,102 L 204,101 L 204,100 L 203,99 L 204,99 L 204,98 L 204,97 L 205,97 L 205,96 L 206,96 L 206,95 L 207,95 L 207,94 L 208,94 L 209,94 L 209,93 L 209,94 L 209,93 L 210,93 L 211,93 L 211,94 L 212,94 L 213,94 L 213,95 L 214,95 L 214,96 L 215,96 L 215,97 L 214,97 L 215,97 L 215,98 L 216,99 L 216,98 L 216,99 L 217,99 L 217,98 L 217,99 L 217,98 L 217,99 L 217,98 L 218,98 L 218,99 L 218,98 L 218,99 L 218,98 L 219,98 L 218,98 L 219,98 L 219,97 L 220,97 L 221,97 L 221,96 L 221,95 L 220,95 L 220,94 L 220,93 L 221,93 L 221,92 L 221,91 L 222,90 L 221,90 L 221,89 L 222,89 L 222,88 L 223,87 L 223,86 L 224,86 L 224,85 L 224,84 L 225,84 L 225,83 L 226,83 L 228,83 L 236,83 L 237,83 L 241,83 L 241,86 L 241,87 L 241,88 L 241,89 L 241,90 L 241,91 L 242,91 L 242,92 L 243,92 L 243,93 L 243,94 L 243,95 L 244,95 L 243,96 L 244,96 L 245,96 L 245,97 L 246,97 L 246,98 L 247,98 L 247,99 L 247,98 L 247,99 L 247,100 L 248,100 L 247,100 L 248,100 L 247,101 L 248,101 L 248,102 L 249,102 L 250,102 L 250,103 L 251,103 L 251,104 L 251,103 L 252,103 L 252,102 L 253,102 L 254,102 L 254,103 L 254,104 L 254,105 L 253,105 L 254,105 L 254,106 L 255,106 L 256,106 L 256,107 L 257,107 L 257,108 L 258,108 L 257,108 L 258,108 L 258,109 L 258,108 L 258,109 L 258,108 L 259,108 L 259,109 L 260,109 L 261,109 L 261,110 L 262,110 L 262,111 L 262,110 L 263,110 L 264,110 L 265,110 L 265,111 L 266,111 L 266,112 L 267,112 L 267,113 L 268,113 L 268,114 L 269,114 L 269,115 L 270,115 L 270,114 L 271,114 L 271,115 L 271,116 L 270,116 L 271,117 L 272,117 L 273,117 L 273,116 L 274,116 L 274,117 L 275,117 L 275,116 L 275,117 L 276,117 L 276,116 L 277,116 L 278,115 L 279,115 L 280,115 L 279,115 L 279,116 L 279,117 L 278,117 L 277,118 L 276,118 L 275,119 L 275,120 L 276,120 L 276,121 L 275,121 L 275,122 L 275,123 L 274,123 L 274,125 L 273,125 L 273,126 L 273,127 L 272,128 L 271,130 L 271,131 L 270,132 L 270,133 L 269,135 L 268,136 L 268,137 L 267,139 L 266,141 L 266,142 L 265,143 L 264,145 L 264,146 L 262,149 L 261,153 L 260,154 L 259,156 L 258,158 L 258,159 L 255,164 L 255,165 L 253,170 L 250,176 L 250,177 L 249,177 L 249,178 L 248,178 L 247,178 L 247,179 L 247,180 L 247,181 L 247,182 L 247,183 L 248,183 L 249,183 L 249,184 L 249,185 L 250,185 L 250,186 L 251,186 L 251,187 L 251,188 L 251,189 L 251,190 L 250,190 L 250,191 L 250,192 L 251,192 L 250,193 L 250,194 L 249,194 L 249,195 L 248,195 L 248,196 L 248,197 L 249,197 L 249,198 L 249,199 L 249,200 L 249,201 L 249,202 L 249,203 L 248,203 L 249,203 L 248,203 L 248,204 L 248,205 L 248,206 L 248,207 L 247,207 L 247,208 L 248,208 L 248,207 L 249,208 L 248,208 L 248,209 L 247,209 L 246,209 L 239,209 L 238,209 L 233,209 L 226,209 L 225,209 L 220,209 L 218,209 L 214,209 L 206,209 L 204,209 L 203,209 L 203,208 L 202,208 L 202,207 L 201,207 L 201,208 L 200,208 L 200,209 L 200,210 L 199,210 L 198,210 L 198,209 L 197,209 L 196,209 L 196,208 L 195,208 L 195,207 L 195,206 L 194,206 L 194,207 L 193,206 L 193,205 L 193,204 L 193,203 L 192,203 L 191,203 L 191,202 L 191,203 L 190,203 L 190,202 L 190,201 L 189,202 L 189,201 L 189,200 L 188,200 L 188,199 L 188,198 L 187,198 L 186,198 L 186,197 L 182,197 L 178,197 L 177,197 L 175,197 L 175,198 L 175,199 L 174,199 L 174,200 L 173,200 L 173,201 L 174,201 L 173,201 L 173,202 L 172,202 L 171,202 L 171,203 L 170,203 L 170,204 L 171,204 L 170,204 L 170,205 L 171,205 L 171,206 L 170,206 L 170,207 L 169,207 L 170,208 L 169,208 L 168,208 L 168,209 L 168,210 L 168,211 L 167,211 L 166,211 L 166,212 L 165,212 L 165,211 L 166,211 L 165,211 L 164,211 L 163,211 L 162,211 L 162,212 L 161,212 L 160,212 L 160,211 L 160,212 L 159,212 L 159,211 L 158,211 L 158,212 L 157,212 L 157,213 L 157,214 L 157,215 L 157,216 L 156,216 L 156,217 L 155,217 L 155,218 L 154,218 L 153,218 L 153,217 L 154,217 L 153,217 L 153,216 L 153,215 L 152,215 L 152,216 L 151,216 L 150,216 L 150,217 L 150,218 L 149,218 L 148,218 L 148,217 L 147,217 L 147,218 L 147,219 L 146,219 L 145,219 L 145,220 L 145,219 L 145,220 L 145,219 L 144,219 L 144,218 L 143,218 L 143,217 L 142,217 L 141,217 L 140,217 L 140,218 L 139,218 L 138,217 L 138,218 L 138,217 L 137,218 L 137,217 L 137,218 L 137,217 L 136,217 L 136,218 L 137,218 L 137,219 L 136,219 L 136,220 L 135,220 L 135,221 L 134,221 L 133,221 L 133,222 L 132,222 L 131,222 L 131,223 L 130,223 L 127,221 L 126,221 L 125,220 L 124,220 L 121,219 L 119,219 L 117,217 L 116,217 L 115,217 L 114,216 L 111,215 L 105,212 L 104,212 L 101,209 L 101,208 L 100,208 L 99,207 L 98,206 L 97,206 L 97,205 L 96,205 L 96,204 L 95,204 L 95,203 L 94,203 L 94,202 L 93,202 L 92,201 L 89,199 L 86,196 L 84,195 L 83,195 L 82,195 L 79,195 L 77,195 L 77,194 L 76,194 L 75,194 L 74,194 L 71,194 L 67,193 L 64,193 L 62,193 L 60,193 L 59,193 L 59,192 L 58,192 L 56,192 L 55,192 L 54,192 L 53,192 L 52,192 L 51,191 L 50,191 L 49,191 L 46,190 L 44,189 L 43,189 L 42,188 L 35,186 L 34,186 L 34,185 L 34,184 L 35,184 L 34,184 L 34,183 L 34,182 L 35,182 L 35,181 L 36,181 L 36,180 L 37,180 L 37,179 L 38,179 L 39,179 L 39,178 L 40,178 L 41,178 L 42,178 L 42,177 L 43,177 L 43,176 L 43,175 L 43,174 L 42,174 L 42,173 L 42,172 L 41,172 L 41,171 L 41,170 L 42,170 L 42,169 L 42,168 L 43,168 L 42,168 L 43,168 L 43,167 L 44,167 L 44,166 L 45,166 L 45,165 L 45,164 L 45,163 L 45,162 L 46,162 L 46,161 L 46,160 L 47,160 L 46,160 L 47,160 L 46,159 L 47,159 L 46,159 L 47,159 L 46,159 L 46,158 L 47,158 L 47,157 L 48,158 L 48,157 L 49,157 L 50,157 L 50,156 L 51,156 L 51,155 L 52,155 L 53,155 L 53,154 L 53,153 L 54,153 L 55,153 L 56,153 L 56,152 L 57,152 L 58,152 L 57,151 L 58,151 L 59,151 L 59,150 L 59,151 L 59,150 L 60,150 L 60,149 L 60,150 L 60,149 L 61,149 L 62,149 L 63,149 L 64,149 L 65,149 L 66,149 L 65,149 L 65,148 L 66,148 L 67,149 L 67,148 L 68,148 L 69,148 L 69,147 L 69,148 L 69,147 L 70,147 L 70,148 L 70,147 L 70,148 L 70,147 L 71,147 L 71,148 L 71,147 L 71,148 L 72,147 L 72,148 L 72,147 L 73,147 L 74,147 L 74,146 L 75,146 L 74,146 L 75,145 L 75,146 L 75,145 L 76,144 L 76,145 L 77,145 L 77,144 L 78,144 L 78,145 L 78,144 L 79,144 L 79,145 L 80,144 L 80,145 L 80,144 L 81,144 L 82,145 L 82,144 L 82,145 L 82,146 L 83,146 L 83,147 L 83,146 L 83,147 L 84,147 L 84,146 L 85,146 L 85,147 L 86,147 L 87,147 L 87,146 L 87,145 L 88,144 L 88,143 L 88,142 L 88,141 L 88,139 L 89,138 L 89,137 L 89,135 L 90,130 L 90,128 L 91,127 L 91,126 L 92,121 L 92,120 L 93,114 L 93,113 L 94,110 L 94,108 L 94,107 L 94,106 L 95,106 L 95,105 L 95,104 L 94,104 L 94,103 L 95,103 L 95,102 L 94,101 L 94,100 L 93,100 L 93,99 L 93,98 L 92,98 L 93,98 L 92,98 L 92,97 L 92,96 L 92,95 L 93,95 L 92,95 L 92,94 L 92,93 L 91,93 L 90,93 L 90,92 L 89,92 L 89,91 L 88,91 L 87,91 L 87,90 L 86,90 L 86,89 L 86,88 L 86,87 L 86,86 L 86,85 L 86,83 L 86,80 L 86,79 L 87,79 L 86,78 L 87,78 L 87,79 L 88,78 L 89,78 L 90,78 L 90,77 L 91,77 L 92,78 L 92,77 L 93,77 L 93,76 L 94,76 L 94,77 L 95,77 L 95,78 L 96,78 L 96,77 L 96,78 L 97,78 L 98,78 L 98,77 L 99,78 L 99,77 L 98,77 L 98,76 L 98,75 L 98,74 L 98,73 L 97,73 L 98,73 L 97,72 L 96,72 L 96,71 L 95,71 L 95,72 L 94,72 L 94,71 L 93,71 L 92,71 L 91,71 L 90,71 L 91,71 L 90,71 L 89,71 L 89,72 L 89,71 L 89,68 L 89,66 L 89,64 L 89,62 L 89,63 L 90,62 L 91,62 L 92,62 L 93,62 L 93,61 L 93,62 L 94,62 L 95,62 L 98,62 L 100,62 L 105,62 L 112,62 L 111,62 L 111,61 L 111,60 L 111,59 L 112,59 L 113,59 L 113,60 L 114,60 L 114,61 L 115,61 L 116,60 L 115,60 L 116,60 L 117,59 L 117,58 L 118,58 L 119,58 L 120,58 L 120,57 L 121,57 L 121,56 L 122,56 L 122,55 L 123,55 L 123,56 L 123,57 L 124,57 L 124,58 "},"rr": {"name": "Roraima","path": "M 223,13 L 223,14 L 224,13 L 224,14 L 224,15 L 225,15 L 225,16 L 226,16 L 225,16 L 226,16 L 225,16 L 225,17 L 226,17 L 226,18 L 225,18 L 225,19 L 225,20 L 225,21 L 225,22 L 224,22 L 225,22 L 224,22 L 225,22 L 224,22 L 224,23 L 223,23 L 223,24 L 224,24 L 224,23 L 224,24 L 225,24 L 226,24 L 227,24 L 227,25 L 228,25 L 228,24 L 228,25 L 228,24 L 228,25 L 228,24 L 228,25 L 229,25 L 230,25 L 230,26 L 230,25 L 230,26 L 230,27 L 229,27 L 230,27 L 229,27 L 229,28 L 230,28 L 230,29 L 231,29 L 231,30 L 230,30 L 231,30 L 231,31 L 231,30 L 231,31 L 231,30 L 231,31 L 232,31 L 232,32 L 231,32 L 231,33 L 231,34 L 231,33 L 231,34 L 230,34 L 230,35 L 229,35 L 229,36 L 228,36 L 228,37 L 227,37 L 228,37 L 227,37 L 228,37 L 228,38 L 228,39 L 228,40 L 228,41 L 227,41 L 227,42 L 227,43 L 226,43 L 226,44 L 226,45 L 226,46 L 226,47 L 226,48 L 226,49 L 226,50 L 226,51 L 227,51 L 226,51 L 227,51 L 226,51 L 227,51 L 227,52 L 227,53 L 227,54 L 228,54 L 228,55 L 229,55 L 229,54 L 229,55 L 229,56 L 229,57 L 229,58 L 229,59 L 229,60 L 229,61 L 230,61 L 230,60 L 230,61 L 230,62 L 230,61 L 230,62 L 231,62 L 231,63 L 231,62 L 232,62 L 232,63 L 233,63 L 233,64 L 234,64 L 233,64 L 233,65 L 234,65 L 235,65 L 235,66 L 236,66 L 235,66 L 236,66 L 236,67 L 237,67 L 237,68 L 238,68 L 239,68 L 240,68 L 241,68 L 241,69 L 241,74 L 241,78 L 241,83 L 237,83 L 236,83 L 233,83 L 228,83 L 226,83 L 225,83 L 225,84 L 224,84 L 224,85 L 224,86 L 223,86 L 223,87 L 222,88 L 222,89 L 221,89 L 221,90 L 222,90 L 221,91 L 221,92 L 221,93 L 220,93 L 220,94 L 220,95 L 221,95 L 221,96 L 221,97 L 220,97 L 219,97 L 219,98 L 218,98 L 219,98 L 218,98 L 218,99 L 218,98 L 218,99 L 218,98 L 217,98 L 217,99 L 217,98 L 217,99 L 217,98 L 217,99 L 216,99 L 216,98 L 216,99 L 215,98 L 215,97 L 214,97 L 215,97 L 215,96 L 214,96 L 214,95 L 213,95 L 213,94 L 212,94 L 211,94 L 211,93 L 210,93 L 209,93 L 209,94 L 209,93 L 209,94 L 208,94 L 207,94 L 207,95 L 206,95 L 206,96 L 205,96 L 205,97 L 204,97 L 204,98 L 204,99 L 203,99 L 204,100 L 204,101 L 204,102 L 204,103 L 203,103 L 203,104 L 203,105 L 204,105 L 203,105 L 203,106 L 204,106 L 204,107 L 205,107 L 205,108 L 204,108 L 204,107 L 203,107 L 203,106 L 202,106 L 201,106 L 200,106 L 199,106 L 199,105 L 198,105 L 198,104 L 198,103 L 198,102 L 197,102 L 196,102 L 196,101 L 195,101 L 195,100 L 194,100 L 194,99 L 193,99 L 193,98 L 192,98 L 193,98 L 192,98 L 191,98 L 191,97 L 191,96 L 192,96 L 192,97 L 192,96 L 193,96 L 194,95 L 193,95 L 193,94 L 194,94 L 193,94 L 194,93 L 194,92 L 195,92 L 195,91 L 194,91 L 194,90 L 194,89 L 194,88 L 193,88 L 193,87 L 193,86 L 192,86 L 192,85 L 192,84 L 191,84 L 191,83 L 191,82 L 191,81 L 192,81 L 191,81 L 191,80 L 190,80 L 190,79 L 190,78 L 191,78 L 190,78 L 190,77 L 190,76 L 191,76 L 191,75 L 191,74 L 191,73 L 192,73 L 191,73 L 191,72 L 191,71 L 190,71 L 190,70 L 190,69 L 189,68 L 189,67 L 189,66 L 188,66 L 188,65 L 187,65 L 187,64 L 187,63 L 188,63 L 188,62 L 188,61 L 188,60 L 188,59 L 187,59 L 186,59 L 186,58 L 185,58 L 184,58 L 183,58 L 182,57 L 182,56 L 181,56 L 180,56 L 179,56 L 178,55 L 178,54 L 178,53 L 178,52 L 177,52 L 177,53 L 176,53 L 175,53 L 174,53 L 173,53 L 172,53 L 171,53 L 171,52 L 170,52 L 169,52 L 169,51 L 170,51 L 170,50 L 170,49 L 170,48 L 170,47 L 169,47 L 169,46 L 169,45 L 168,45 L 168,44 L 167,44 L 167,43 L 167,42 L 167,41 L 167,40 L 167,39 L 166,39 L 167,39 L 167,38 L 167,37 L 167,36 L 166,36 L 166,35 L 165,35 L 165,34 L 164,34 L 163,34 L 163,33 L 162,33 L 162,32 L 161,32 L 161,31 L 160,31 L 160,30 L 160,29 L 159,29 L 159,28 L 158,28 L 158,27 L 159,27 L 160,27 L 161,28 L 161,29 L 162,29 L 163,29 L 164,29 L 165,29 L 166,29 L 167,29 L 168,29 L 168,30 L 169,30 L 169,31 L 169,32 L 170,32 L 170,33 L 170,32 L 171,32 L 172,32 L 172,31 L 172,32 L 172,31 L 172,32 L 173,32 L 174,32 L 173,32 L 174,32 L 175,32 L 174,32 L 174,31 L 174,30 L 174,31 L 175,31 L 175,32 L 176,32 L 176,33 L 177,33 L 178,33 L 178,32 L 178,31 L 179,31 L 180,31 L 181,31 L 181,32 L 181,33 L 182,33 L 182,34 L 182,33 L 182,34 L 183,34 L 183,35 L 183,36 L 184,36 L 185,36 L 185,35 L 186,35 L 186,34 L 186,35 L 186,34 L 187,35 L 188,35 L 188,34 L 187,34 L 188,34 L 188,33 L 187,33 L 187,32 L 187,31 L 187,30 L 188,30 L 189,30 L 190,30 L 190,31 L 190,30 L 190,29 L 191,29 L 191,28 L 191,29 L 191,28 L 192,28 L 193,28 L 193,29 L 193,28 L 193,29 L 194,29 L 195,29 L 195,30 L 195,29 L 195,30 L 196,30 L 196,29 L 197,29 L 198,29 L 198,28 L 198,29 L 199,29 L 200,29 L 199,29 L 199,28 L 200,28 L 200,29 L 200,28 L 201,28 L 201,27 L 202,27 L 201,27 L 202,27 L 203,27 L 204,27 L 204,26 L 205,26 L 204,26 L 204,25 L 205,25 L 206,25 L 205,25 L 206,25 L 207,25 L 207,24 L 208,24 L 207,24 L 207,23 L 208,23 L 209,23 L 209,24 L 210,24 L 210,23 L 210,24 L 211,24 L 211,23 L 211,24 L 212,24 L 212,23 L 213,23 L 213,22 L 212,22 L 213,22 L 212,22 L 213,22 L 213,21 L 214,21 L 214,20 L 215,20 L 216,20 L 215,20 L 216,20 L 216,19 L 217,19 L 216,19 L 216,18 L 217,18 L 217,17 L 217,16 L 217,15 L 216,15 L 216,14 L 215,14 L 216,14 L 217,14 L 218,14 L 219,14 L 220,14 L 221,14 L 222,14 L 222,13 L 223,13 "},"pa": {"name": "Pará","path": "M 296,50 L 296,51 L 296,52 L 297,53 L 297,54 L 298,54 L 298,55 L 298,56 L 298,57 L 298,58 L 298,59 L 299,59 L 298,59 L 299,59 L 298,59 L 298,60 L 299,60 L 299,61 L 299,62 L 300,62 L 301,62 L 302,62 L 303,62 L 304,62 L 305,62 L 305,63 L 306,63 L 306,64 L 306,63 L 307,63 L 307,64 L 308,64 L 307,64 L 307,65 L 308,65 L 308,66 L 308,65 L 309,66 L 309,65 L 309,66 L 310,66 L 311,66 L 311,67 L 312,67 L 311,67 L 312,67 L 313,67 L 313,66 L 313,67 L 314,67 L 314,68 L 315,68 L 316,68 L 315,68 L 315,69 L 316,69 L 315,69 L 315,70 L 316,70 L 316,69 L 317,69 L 317,70 L 317,71 L 317,72 L 317,73 L 317,74 L 318,74 L 319,74 L 319,75 L 320,75 L 320,76 L 321,76 L 321,77 L 321,78 L 321,79 L 321,80 L 321,81 L 320,81 L 321,81 L 321,82 L 321,83 L 322,83 L 321,83 L 322,83 L 322,84 L 322,85 L 323,85 L 323,86 L 323,87 L 324,87 L 324,88 L 324,89 L 324,88 L 325,88 L 325,89 L 326,89 L 326,90 L 327,90 L 327,91 L 327,92 L 327,93 L 327,94 L 328,94 L 328,95 L 329,95 L 329,94 L 330,95 L 330,96 L 330,97 L 330,98 L 329,98 L 330,98 L 331,98 L 331,99 L 331,100 L 331,101 L 332,101 L 332,102 L 333,102 L 334,102 L 335,102 L 335,103 L 336,104 L 336,103 L 337,103 L 337,102 L 337,103 L 338,103 L 338,102 L 338,103 L 339,103 L 340,102 L 341,102 L 341,101 L 341,100 L 341,99 L 341,98 L 341,97 L 342,97 L 342,96 L 342,95 L 343,95 L 343,94 L 344,94 L 344,93 L 345,93 L 345,92 L 346,92 L 346,91 L 346,90 L 347,90 L 347,89 L 347,88 L 348,88 L 349,88 L 350,88 L 350,87 L 351,87 L 351,86 L 352,85 L 353,85 L 354,85 L 354,84 L 355,84 L 356,84 L 356,83 L 357,83 L 357,82 L 357,81 L 358,81 L 358,80 L 358,79 L 358,78 L 359,78 L 359,77 L 360,77 L 361,77 L 362,77 L 363,77 L 363,78 L 364,78 L 364,79 L 364,80 L 364,81 L 364,82 L 365,82 L 366,82 L 367,82 L 368,82 L 368,81 L 369,81 L 369,82 L 370,82 L 370,83 L 371,83 L 371,84 L 371,85 L 372,85 L 372,86 L 372,85 L 373,85 L 373,86 L 375,87 L 376,88 L 377,88 L 378,89 L 379,89 L 380,90 L 380,89 L 381,89 L 381,90 L 381,89 L 382,89 L 382,90 L 383,90 L 384,90 L 385,90 L 386,90 L 387,90 L 387,91 L 387,92 L 386,92 L 386,93 L 389,94 L 390,95 L 392,96 L 393,96 L 392,96 L 393,96 L 393,95 L 394,95 L 394,94 L 395,94 L 394,94 L 394,95 L 395,95 L 394,96 L 395,96 L 395,95 L 395,94 L 395,95 L 396,95 L 396,94 L 396,95 L 396,94 L 397,94 L 397,95 L 397,94 L 397,95 L 398,95 L 398,96 L 397,96 L 398,96 L 397,96 L 398,96 L 398,95 L 398,94 L 398,95 L 399,95 L 400,95 L 401,95 L 400,95 L 400,96 L 400,95 L 401,95 L 401,96 L 401,95 L 402,95 L 403,95 L 402,95 L 403,95 L 404,95 L 404,96 L 403,96 L 404,96 L 404,97 L 404,96 L 404,97 L 404,96 L 405,96 L 404,96 L 405,96 L 405,97 L 405,96 L 405,97 L 406,97 L 405,97 L 406,97 L 406,96 L 406,97 L 406,98 L 406,97 L 406,98 L 406,97 L 406,96 L 407,96 L 407,97 L 407,98 L 408,98 L 408,97 L 408,96 L 409,96 L 409,97 L 409,98 L 409,99 L 409,98 L 410,98 L 410,99 L 410,98 L 411,98 L 411,97 L 411,98 L 411,97 L 411,98 L 412,98 L 412,99 L 411,99 L 411,98 L 411,99 L 412,99 L 411,99 L 412,99 L 411,99 L 411,100 L 411,99 L 411,100 L 412,100 L 412,99 L 413,99 L 412,99 L 413,99 L 412,99 L 413,99 L 413,100 L 413,99 L 414,99 L 414,98 L 414,99 L 414,100 L 413,100 L 414,100 L 414,101 L 415,101 L 414,101 L 415,101 L 415,100 L 414,100 L 415,100 L 415,101 L 415,100 L 416,100 L 415,100 L 416,100 L 416,101 L 415,101 L 416,101 L 416,100 L 417,100 L 416,100 L 417,100 L 416,100 L 417,100 L 417,99 L 417,100 L 417,99 L 418,99 L 417,99 L 417,100 L 417,101 L 417,102 L 416,103 L 417,103 L 417,102 L 417,101 L 418,101 L 418,100 L 418,101 L 418,102 L 417,102 L 418,102 L 418,101 L 418,102 L 418,101 L 419,101 L 419,102 L 419,103 L 418,103 L 418,104 L 419,104 L 419,105 L 419,106 L 418,106 L 418,107 L 418,108 L 418,109 L 418,110 L 417,110 L 416,110 L 416,111 L 416,112 L 416,111 L 417,111 L 417,112 L 417,113 L 417,114 L 417,115 L 417,116 L 416,116 L 416,117 L 415,117 L 415,118 L 415,117 L 414,118 L 415,118 L 414,118 L 414,119 L 414,120 L 414,119 L 415,119 L 415,120 L 414,120 L 414,121 L 414,122 L 413,122 L 414,122 L 413,122 L 413,123 L 412,123 L 412,124 L 411,124 L 412,124 L 411,124 L 411,125 L 412,125 L 411,125 L 412,125 L 412,126 L 411,126 L 412,126 L 411,126 L 411,127 L 411,126 L 411,127 L 411,128 L 411,127 L 411,128 L 411,129 L 411,130 L 410,130 L 411,130 L 410,130 L 410,131 L 409,131 L 409,132 L 409,131 L 409,132 L 409,133 L 408,133 L 407,133 L 407,134 L 407,135 L 407,134 L 407,135 L 407,136 L 406,136 L 406,137 L 406,138 L 406,139 L 405,139 L 406,139 L 405,139 L 406,139 L 405,139 L 406,139 L 405,139 L 406,139 L 405,139 L 405,140 L 404,140 L 405,140 L 405,141 L 404,141 L 404,142 L 403,142 L 403,143 L 403,142 L 403,143 L 402,143 L 402,144 L 402,145 L 401,145 L 401,146 L 400,146 L 400,147 L 399,147 L 399,148 L 399,149 L 398,149 L 398,150 L 397,150 L 397,151 L 397,150 L 396,150 L 395,150 L 395,151 L 392,153 L 391,154 L 390,155 L 388,156 L 387,157 L 386,157 L 386,158 L 385,159 L 384,159 L 382,161 L 383,161 L 384,161 L 384,162 L 385,162 L 386,162 L 387,162 L 387,161 L 387,162 L 388,162 L 388,163 L 389,163 L 389,164 L 390,164 L 391,164 L 391,165 L 390,165 L 390,166 L 389,166 L 388,166 L 388,167 L 388,168 L 389,168 L 389,169 L 388,169 L 388,170 L 388,171 L 389,171 L 388,171 L 388,172 L 387,172 L 386,172 L 386,173 L 387,173 L 387,174 L 387,175 L 386,175 L 385,175 L 385,176 L 384,176 L 384,177 L 383,177 L 384,177 L 383,177 L 383,178 L 383,179 L 382,179 L 382,180 L 381,180 L 380,180 L 380,181 L 379,181 L 378,181 L 377,182 L 376,182 L 376,183 L 376,184 L 376,185 L 376,186 L 376,187 L 376,188 L 375,188 L 375,189 L 374,189 L 374,190 L 373,191 L 373,192 L 374,192 L 374,193 L 375,194 L 376,195 L 377,195 L 376,195 L 376,196 L 376,197 L 376,198 L 376,199 L 376,200 L 376,201 L 375,201 L 375,202 L 375,203 L 374,203 L 374,204 L 373,204 L 373,205 L 373,206 L 372,206 L 372,207 L 372,208 L 371,208 L 371,209 L 370,209 L 369,210 L 368,210 L 368,211 L 367,211 L 367,212 L 367,213 L 366,213 L 366,214 L 365,214 L 365,215 L 364,215 L 364,216 L 364,217 L 363,218 L 363,219 L 363,220 L 363,221 L 362,221 L 362,222 L 362,223 L 360,223 L 358,223 L 355,223 L 353,223 L 350,223 L 347,222 L 337,222 L 332,221 L 328,221 L 323,221 L 321,221 L 315,220 L 314,220 L 310,220 L 309,220 L 308,220 L 305,219 L 300,219 L 289,218 L 288,218 L 287,218 L 284,218 L 279,217 L 272,217 L 271,217 L 270,217 L 270,216 L 270,215 L 269,215 L 268,215 L 267,215 L 267,214 L 266,214 L 267,214 L 266,214 L 266,213 L 267,213 L 266,213 L 266,212 L 265,212 L 265,211 L 264,211 L 264,210 L 263,210 L 262,210 L 261,210 L 261,209 L 262,209 L 261,209 L 261,208 L 260,208 L 259,208 L 259,207 L 259,206 L 258,206 L 258,205 L 258,204 L 258,203 L 258,202 L 258,201 L 258,200 L 257,200 L 257,199 L 256,198 L 256,197 L 256,196 L 255,195 L 255,194 L 255,193 L 254,193 L 254,192 L 254,191 L 253,191 L 253,190 L 253,189 L 252,189 L 251,189 L 251,188 L 251,187 L 251,186 L 250,186 L 250,185 L 249,185 L 249,184 L 249,183 L 248,183 L 247,183 L 247,182 L 247,181 L 247,180 L 247,179 L 247,178 L 248,178 L 249,178 L 249,177 L 250,177 L 250,176 L 253,170 L 255,165 L 255,164 L 257,160 L 258,159 L 259,156 L 260,154 L 261,153 L 264,146 L 264,145 L 266,142 L 266,141 L 267,139 L 268,137 L 268,136 L 269,135 L 270,133 L 270,132 L 271,132 L 271,131 L 271,130 L 272,128 L 273,127 L 273,126 L 273,125 L 274,123 L 275,121 L 276,121 L 276,120 L 275,120 L 275,119 L 276,118 L 277,118 L 278,117 L 279,117 L 279,116 L 279,115 L 280,115 L 279,115 L 278,115 L 277,116 L 276,116 L 276,117 L 275,117 L 275,116 L 275,117 L 274,117 L 274,116 L 273,116 L 273,117 L 272,117 L 271,117 L 270,116 L 271,116 L 271,115 L 271,114 L 270,114 L 270,115 L 269,115 L 269,114 L 268,114 L 268,113 L 267,113 L 267,112 L 266,112 L 266,111 L 265,111 L 265,110 L 264,110 L 263,110 L 262,110 L 262,111 L 262,110 L 261,110 L 261,109 L 260,109 L 259,109 L 259,108 L 258,108 L 258,109 L 258,108 L 258,109 L 258,108 L 257,108 L 258,108 L 257,108 L 257,107 L 256,107 L 256,106 L 255,106 L 254,106 L 254,105 L 253,105 L 254,105 L 254,104 L 254,103 L 254,102 L 253,102 L 252,102 L 252,103 L 251,103 L 251,104 L 251,103 L 250,103 L 250,102 L 249,102 L 248,102 L 248,101 L 247,101 L 248,100 L 247,100 L 248,100 L 247,100 L 247,99 L 247,98 L 247,99 L 247,98 L 246,98 L 246,97 L 245,97 L 245,96 L 244,96 L 243,96 L 244,95 L 243,95 L 243,94 L 243,93 L 243,92 L 242,92 L 242,91 L 241,91 L 241,90 L 241,89 L 241,88 L 241,87 L 241,86 L 241,83 L 241,78 L 241,76 L 241,74 L 241,69 L 241,70 L 242,70 L 243,70 L 243,69 L 243,68 L 244,68 L 244,69 L 244,68 L 244,69 L 245,68 L 245,69 L 245,68 L 246,68 L 246,69 L 247,68 L 246,68 L 247,68 L 247,67 L 246,67 L 246,66 L 247,66 L 248,66 L 248,65 L 249,65 L 249,64 L 249,65 L 250,65 L 251,65 L 252,66 L 252,65 L 253,65 L 254,65 L 253,65 L 254,65 L 254,64 L 253,64 L 253,63 L 254,63 L 254,64 L 255,63 L 256,63 L 256,62 L 257,62 L 257,63 L 257,62 L 258,62 L 258,63 L 259,63 L 260,63 L 260,62 L 260,61 L 261,61 L 261,60 L 262,60 L 262,59 L 263,59 L 264,59 L 263,59 L 264,59 L 265,59 L 265,58 L 266,58 L 266,59 L 267,59 L 267,60 L 268,60 L 269,60 L 270,60 L 270,61 L 270,60 L 271,60 L 272,60 L 272,59 L 273,59 L 273,60 L 274,60 L 274,59 L 275,59 L 275,60 L 276,60 L 276,59 L 277,59 L 277,60 L 278,60 L 279,60 L 279,61 L 280,61 L 281,61 L 282,61 L 282,60 L 283,60 L 282,60 L 282,59 L 282,58 L 283,58 L 282,58 L 283,58 L 282,58 L 282,57 L 282,58 L 282,57 L 281,57 L 282,57 L 281,57 L 281,56 L 280,56 L 281,56 L 281,55 L 280,55 L 279,55 L 280,54 L 280,53 L 280,54 L 281,54 L 281,53 L 281,52 L 281,53 L 281,52 L 282,52 L 281,52 L 281,51 L 282,51 L 283,51 L 283,52 L 284,52 L 285,52 L 284,52 L 284,53 L 285,53 L 286,53 L 287,53 L 287,52 L 287,53 L 288,53 L 288,52 L 289,52 L 290,53 L 290,52 L 291,51 L 292,52 L 292,51 L 293,51 L 294,51 L 295,50 L 296,50 "},"ap": {"name": "Amapá","path": "M 348,31 L 348,32 L 349,32 L 350,32 L 350,33 L 350,34 L 350,35 L 349,35 L 350,35 L 349,35 L 350,35 L 350,36 L 350,37 L 350,38 L 349,38 L 350,39 L 350,40 L 350,41 L 350,42 L 350,43 L 351,43 L 351,44 L 351,45 L 351,46 L 352,46 L 352,47 L 351,47 L 352,47 L 352,48 L 352,49 L 353,49 L 353,50 L 353,51 L 353,52 L 353,51 L 353,52 L 354,52 L 354,53 L 354,54 L 355,54 L 355,55 L 355,56 L 355,57 L 355,56 L 356,56 L 357,56 L 358,56 L 359,56 L 359,57 L 360,57 L 360,58 L 360,59 L 361,59 L 361,60 L 361,61 L 362,61 L 363,61 L 363,62 L 364,62 L 365,62 L 365,63 L 366,63 L 366,64 L 366,65 L 366,66 L 366,67 L 366,68 L 366,69 L 366,70 L 366,71 L 365,71 L 365,72 L 365,73 L 365,74 L 364,74 L 364,75 L 363,75 L 363,76 L 363,77 L 362,77 L 361,77 L 360,77 L 359,77 L 359,78 L 358,78 L 358,79 L 358,80 L 358,81 L 357,81 L 357,82 L 357,83 L 356,83 L 356,84 L 355,84 L 354,84 L 354,85 L 353,85 L 352,85 L 351,86 L 351,87 L 350,87 L 350,88 L 349,88 L 348,88 L 347,88 L 347,89 L 347,90 L 346,90 L 346,91 L 346,92 L 345,92 L 345,93 L 344,93 L 344,94 L 343,94 L 343,95 L 342,95 L 342,96 L 342,97 L 341,97 L 341,98 L 341,99 L 341,100 L 341,101 L 341,102 L 340,102 L 339,103 L 338,103 L 338,102 L 338,103 L 337,103 L 337,102 L 337,103 L 336,103 L 336,104 L 335,103 L 335,102 L 334,102 L 333,102 L 332,102 L 332,101 L 331,101 L 331,100 L 331,99 L 331,98 L 330,98 L 329,98 L 330,98 L 330,97 L 330,96 L 330,95 L 329,94 L 329,95 L 328,95 L 328,94 L 327,94 L 327,93 L 327,92 L 327,91 L 327,90 L 326,90 L 326,89 L 325,89 L 325,88 L 324,88 L 324,89 L 324,88 L 324,87 L 323,87 L 323,86 L 323,85 L 322,85 L 322,84 L 322,83 L 321,83 L 322,83 L 321,83 L 321,82 L 321,81 L 320,81 L 321,81 L 321,80 L 321,79 L 321,78 L 321,77 L 321,76 L 320,76 L 320,75 L 319,75 L 319,74 L 318,74 L 317,74 L 317,73 L 317,72 L 317,71 L 317,70 L 317,69 L 316,69 L 316,70 L 315,70 L 315,69 L 316,69 L 315,69 L 315,68 L 316,68 L 315,68 L 314,68 L 314,67 L 313,67 L 313,66 L 313,67 L 312,67 L 311,67 L 312,67 L 311,67 L 311,66 L 310,66 L 309,66 L 309,65 L 309,66 L 308,65 L 308,66 L 308,65 L 307,65 L 307,64 L 308,64 L 307,64 L 307,63 L 306,63 L 306,64 L 306,63 L 305,63 L 305,62 L 304,62 L 303,62 L 302,62 L 301,62 L 300,62 L 299,62 L 299,61 L 299,60 L 298,60 L 298,59 L 299,59 L 298,59 L 299,59 L 298,59 L 298,58 L 298,57 L 298,56 L 298,55 L 298,54 L 297,54 L 297,53 L 298,52 L 299,52 L 299,53 L 299,54 L 300,54 L 301,54 L 303,56 L 306,56 L 309,55 L 310,55 L 310,54 L 310,55 L 311,55 L 311,54 L 312,54 L 311,54 L 312,54 L 312,53 L 313,53 L 312,54 L 313,54 L 312,54 L 313,54 L 314,54 L 314,55 L 315,55 L 316,55 L 317,55 L 316,55 L 317,55 L 317,54 L 318,54 L 319,54 L 319,55 L 320,55 L 319,55 L 319,56 L 320,56 L 321,56 L 322,56 L 323,56 L 324,56 L 325,56 L 324,55 L 325,55 L 324,55 L 325,55 L 326,54 L 327,54 L 327,53 L 328,53 L 328,52 L 329,52 L 329,51 L 329,50 L 329,49 L 330,49 L 330,48 L 330,47 L 331,47 L 331,46 L 332,46 L 331,46 L 331,45 L 332,45 L 332,44 L 332,43 L 332,42 L 333,42 L 333,41 L 334,41 L 334,40 L 335,40 L 335,39 L 335,38 L 336,38 L 335,38 L 336,38 L 335,38 L 336,38 L 336,37 L 336,36 L 337,36 L 337,35 L 337,34 L 337,35 L 338,35 L 338,34 L 338,33 L 339,33 L 339,32 L 340,32 L 340,31 L 341,31 L 341,30 L 342,30 L 342,29 L 342,28 L 343,27 L 343,26 L 343,25 L 344,25 L 345,25 L 345,26 L 346,26 L 346,27 L 347,27 L 347,28 L 348,29 L 348,30 L 348,31 "},"to": {"name": "Tocantins","path": "M 387,158 L 388,158 L 388,159 L 389,159 L 390,159 L 390,160 L 391,160 L 392,160 L 392,159 L 393,159 L 394,159 L 394,160 L 394,161 L 395,161 L 396,161 L 396,162 L 397,162 L 398,162 L 398,163 L 398,162 L 399,162 L 399,163 L 400,163 L 400,164 L 400,165 L 400,166 L 400,167 L 400,168 L 400,169 L 400,170 L 400,171 L 400,172 L 401,172 L 401,173 L 401,174 L 401,175 L 400,176 L 401,176 L 401,177 L 400,177 L 400,178 L 400,179 L 399,179 L 400,179 L 399,180 L 400,180 L 399,181 L 399,182 L 399,183 L 399,184 L 398,184 L 398,185 L 398,186 L 397,186 L 396,186 L 396,187 L 397,187 L 397,188 L 398,188 L 398,187 L 399,187 L 399,188 L 400,188 L 400,189 L 399,189 L 398,190 L 399,190 L 400,191 L 400,192 L 401,192 L 401,193 L 402,193 L 401,193 L 401,192 L 402,192 L 402,193 L 402,194 L 402,193 L 402,194 L 403,194 L 403,195 L 404,195 L 403,195 L 404,195 L 404,196 L 404,197 L 405,197 L 405,198 L 406,198 L 406,199 L 406,198 L 406,199 L 406,198 L 406,199 L 406,198 L 407,198 L 407,197 L 408,197 L 408,198 L 408,197 L 409,197 L 410,197 L 410,196 L 410,197 L 410,196 L 411,196 L 411,197 L 411,196 L 411,197 L 411,196 L 412,196 L 412,197 L 413,197 L 414,198 L 414,199 L 413,199 L 414,199 L 413,199 L 413,200 L 414,200 L 414,201 L 413,201 L 413,202 L 412,202 L 411,202 L 411,203 L 410,203 L 409,203 L 409,204 L 408,204 L 408,205 L 409,205 L 408,205 L 409,205 L 408,205 L 409,205 L 408,205 L 409,205 L 408,205 L 408,206 L 408,207 L 408,208 L 407,208 L 408,208 L 408,209 L 408,210 L 407,210 L 406,210 L 407,210 L 407,211 L 406,211 L 406,212 L 405,212 L 406,212 L 405,212 L 406,213 L 407,213 L 407,212 L 407,213 L 408,213 L 407,213 L 408,213 L 408,214 L 409,214 L 408,214 L 409,214 L 409,215 L 409,216 L 409,217 L 410,217 L 411,217 L 411,218 L 412,218 L 413,218 L 412,219 L 413,219 L 413,220 L 412,220 L 412,221 L 411,221 L 411,222 L 412,222 L 412,223 L 413,223 L 414,223 L 414,224 L 413,224 L 414,224 L 414,225 L 414,226 L 414,227 L 415,227 L 415,228 L 416,228 L 417,228 L 418,228 L 419,228 L 420,228 L 420,229 L 421,229 L 422,229 L 423,229 L 424,229 L 424,228 L 424,229 L 425,229 L 424,229 L 424,230 L 423,230 L 423,231 L 423,232 L 422,232 L 422,233 L 421,233 L 420,233 L 420,234 L 419,234 L 418,234 L 418,235 L 417,235 L 418,235 L 418,236 L 417,236 L 417,237 L 416,237 L 416,238 L 416,239 L 415,239 L 415,240 L 414,240 L 414,241 L 414,242 L 413,242 L 413,243 L 412,243 L 412,244 L 412,245 L 413,245 L 413,246 L 414,246 L 414,247 L 415,247 L 416,247 L 417,247 L 417,248 L 418,248 L 419,248 L 418,248 L 418,249 L 418,248 L 418,249 L 418,248 L 418,249 L 417,248 L 416,248 L 416,249 L 416,250 L 415,250 L 416,250 L 416,251 L 415,251 L 415,252 L 416,252 L 417,252 L 418,252 L 417,252 L 417,253 L 416,253 L 415,253 L 415,254 L 415,255 L 415,256 L 415,257 L 416,257 L 416,258 L 415,258 L 416,258 L 416,259 L 417,259 L 417,260 L 418,260 L 418,261 L 417,261 L 416,261 L 416,262 L 417,262 L 416,262 L 417,262 L 417,263 L 416,263 L 417,263 L 417,264 L 416,264 L 416,265 L 417,265 L 416,265 L 416,266 L 416,267 L 416,266 L 417,266 L 418,266 L 419,266 L 418,266 L 418,267 L 417,267 L 416,267 L 415,267 L 415,266 L 415,265 L 414,265 L 414,266 L 414,267 L 411,267 L 410,267 L 409,267 L 409,268 L 408,268 L 407,268 L 407,269 L 406,269 L 405,269 L 405,270 L 404,270 L 405,270 L 404,270 L 403,270 L 403,271 L 402,271 L 401,271 L 401,270 L 401,271 L 400,271 L 400,270 L 399,270 L 399,269 L 398,269 L 399,269 L 398,269 L 397,269 L 397,270 L 397,271 L 397,272 L 398,272 L 398,273 L 397,273 L 397,274 L 395,272 L 394,272 L 394,271 L 393,271 L 393,272 L 393,271 L 393,272 L 393,271 L 392,271 L 391,271 L 390,271 L 390,272 L 390,271 L 390,272 L 390,271 L 390,272 L 390,271 L 390,270 L 390,269 L 390,270 L 389,270 L 388,270 L 388,271 L 388,270 L 388,271 L 387,271 L 386,271 L 386,270 L 386,269 L 385,269 L 385,270 L 385,271 L 385,272 L 384,272 L 384,271 L 384,270 L 384,269 L 384,268 L 384,269 L 384,268 L 384,267 L 383,267 L 382,267 L 382,266 L 381,266 L 381,265 L 380,265 L 379,267 L 379,266 L 378,266 L 377,266 L 377,265 L 378,265 L 377,265 L 377,264 L 377,265 L 376,265 L 376,266 L 375,266 L 375,267 L 374,267 L 374,268 L 374,269 L 374,270 L 374,271 L 373,271 L 372,270 L 371,270 L 367,268 L 367,267 L 366,267 L 365,267 L 365,266 L 364,266 L 363,266 L 362,266 L 362,265 L 362,266 L 362,265 L 361,265 L 360,265 L 360,264 L 361,264 L 360,264 L 361,264 L 361,263 L 360,263 L 361,263 L 360,263 L 361,263 L 361,262 L 361,261 L 362,261 L 361,261 L 362,261 L 362,260 L 362,259 L 363,259 L 362,259 L 362,260 L 361,260 L 360,260 L 360,261 L 360,260 L 360,261 L 359,261 L 359,262 L 359,263 L 358,263 L 358,264 L 358,265 L 357,265 L 356,265 L 357,265 L 357,264 L 356,264 L 356,265 L 356,264 L 356,263 L 356,262 L 355,262 L 355,261 L 355,260 L 356,260 L 356,259 L 356,258 L 356,257 L 356,256 L 355,256 L 355,255 L 355,254 L 355,253 L 356,253 L 355,252 L 356,252 L 355,251 L 355,250 L 355,249 L 355,248 L 356,248 L 355,248 L 355,247 L 354,247 L 354,246 L 354,245 L 355,245 L 355,244 L 355,243 L 356,243 L 356,242 L 355,242 L 355,241 L 356,241 L 356,240 L 356,239 L 356,238 L 356,237 L 356,236 L 357,236 L 357,235 L 356,235 L 357,235 L 356,235 L 357,234 L 357,233 L 358,232 L 358,231 L 359,231 L 359,230 L 359,229 L 359,228 L 359,227 L 360,227 L 360,226 L 361,226 L 361,225 L 361,224 L 362,223 L 361,223 L 362,223 L 362,222 L 362,221 L 363,221 L 363,220 L 363,219 L 363,218 L 364,217 L 364,216 L 364,215 L 365,215 L 365,214 L 366,214 L 366,213 L 367,213 L 367,212 L 367,211 L 368,211 L 368,210 L 369,210 L 370,209 L 371,209 L 371,208 L 372,208 L 372,207 L 372,206 L 373,206 L 373,205 L 373,204 L 374,204 L 374,203 L 375,203 L 375,202 L 375,201 L 376,201 L 376,200 L 376,199 L 376,198 L 376,197 L 376,196 L 376,195 L 377,195 L 376,195 L 375,194 L 374,193 L 374,192 L 373,192 L 373,191 L 374,190 L 374,189 L 375,189 L 375,188 L 376,188 L 376,187 L 376,186 L 376,185 L 376,184 L 376,183 L 376,182 L 377,182 L 378,181 L 379,181 L 380,181 L 380,180 L 381,180 L 382,180 L 382,179 L 383,179 L 383,178 L 383,177 L 384,177 L 383,177 L 384,177 L 384,176 L 385,176 L 385,175 L 386,175 L 387,175 L 387,174 L 387,173 L 386,173 L 386,172 L 387,172 L 388,172 L 388,171 L 389,171 L 388,171 L 388,170 L 388,169 L 389,169 L 389,168 L 388,168 L 388,167 L 388,166 L 389,166 L 390,166 L 390,165 L 391,165 L 391,164 L 390,164 L 389,164 L 389,163 L 388,163 L 388,162 L 387,162 L 387,161 L 387,162 L 386,162 L 385,162 L 384,162 L 384,161 L 383,161 L 382,161 L 383,161 L 383,160 L 384,160 L 384,161 L 384,160 L 385,160 L 385,159 L 386,159 L 386,158 L 387,158 "},"ma": {"name": "Maranhão","path": "M 423,101 L 422,101 L 423,101 L 423,102 L 422,102 L 422,103 L 421,103 L 422,103 L 421,103 L 422,103 L 422,102 L 422,103 L 422,104 L 422,103 L 422,104 L 422,103 L 422,104 L 423,104 L 423,103 L 423,104 L 423,103 L 423,104 L 423,105 L 423,104 L 423,103 L 424,103 L 424,102 L 425,102 L 425,103 L 425,102 L 425,103 L 424,103 L 424,104 L 425,104 L 424,104 L 424,105 L 425,105 L 424,105 L 424,106 L 424,105 L 424,106 L 424,105 L 424,106 L 425,106 L 424,106 L 425,106 L 425,105 L 425,106 L 425,105 L 426,105 L 426,104 L 426,105 L 426,104 L 426,105 L 426,104 L 427,104 L 426,104 L 427,105 L 426,105 L 427,105 L 426,105 L 427,105 L 426,105 L 426,106 L 426,105 L 427,105 L 426,105 L 427,105 L 427,104 L 427,105 L 427,106 L 427,105 L 427,106 L 428,106 L 428,105 L 428,104 L 429,104 L 429,105 L 428,105 L 428,106 L 427,106 L 428,106 L 428,107 L 427,107 L 428,107 L 428,108 L 427,108 L 428,108 L 428,107 L 428,106 L 428,107 L 429,107 L 428,107 L 428,106 L 429,106 L 429,107 L 429,106 L 429,105 L 430,105 L 429,105 L 430,105 L 430,106 L 430,105 L 430,106 L 430,107 L 429,107 L 429,108 L 429,107 L 429,108 L 429,107 L 430,107 L 430,108 L 430,107 L 430,108 L 429,108 L 430,109 L 429,109 L 430,109 L 429,109 L 429,110 L 429,111 L 429,110 L 430,110 L 430,109 L 431,109 L 431,108 L 431,107 L 432,107 L 432,108 L 432,107 L 432,108 L 432,107 L 432,108 L 433,108 L 432,108 L 433,107 L 432,107 L 433,107 L 433,106 L 433,107 L 433,106 L 433,107 L 433,108 L 433,107 L 434,107 L 435,107 L 435,108 L 435,107 L 436,107 L 435,107 L 436,107 L 436,106 L 436,107 L 436,106 L 436,107 L 436,106 L 437,106 L 437,107 L 436,107 L 435,107 L 436,107 L 436,108 L 435,108 L 436,108 L 436,109 L 437,109 L 437,108 L 437,109 L 437,108 L 438,108 L 438,109 L 437,109 L 438,109 L 437,109 L 438,109 L 438,108 L 438,109 L 439,109 L 439,108 L 439,109 L 439,110 L 439,109 L 438,109 L 438,110 L 437,110 L 438,110 L 438,111 L 437,111 L 438,111 L 438,110 L 437,110 L 438,110 L 438,111 L 437,111 L 437,112 L 437,111 L 437,112 L 437,111 L 437,112 L 436,112 L 437,112 L 437,111 L 438,111 L 438,112 L 438,111 L 439,111 L 438,111 L 438,112 L 439,112 L 439,111 L 439,112 L 439,111 L 439,110 L 440,111 L 439,111 L 439,112 L 440,112 L 439,112 L 440,112 L 441,112 L 440,112 L 440,113 L 441,113 L 441,114 L 441,113 L 441,114 L 441,115 L 442,115 L 442,114 L 442,115 L 441,115 L 441,116 L 442,116 L 442,117 L 443,117 L 442,117 L 443,117 L 443,118 L 443,119 L 443,120 L 442,120 L 443,121 L 444,121 L 445,121 L 446,121 L 446,120 L 447,120 L 448,120 L 448,121 L 448,120 L 447,120 L 447,121 L 447,120 L 447,121 L 446,121 L 447,121 L 448,121 L 449,121 L 448,122 L 449,122 L 449,121 L 450,121 L 450,120 L 450,119 L 451,119 L 452,119 L 451,119 L 452,119 L 452,118 L 453,118 L 453,117 L 454,117 L 454,118 L 455,119 L 456,119 L 457,119 L 458,119 L 459,119 L 460,120 L 461,120 L 462,120 L 462,121 L 463,121 L 464,121 L 464,122 L 465,122 L 466,122 L 465,122 L 466,122 L 466,123 L 466,122 L 467,122 L 467,123 L 468,123 L 468,124 L 469,124 L 470,124 L 471,124 L 472,124 L 473,124 L 474,124 L 475,124 L 475,125 L 476,125 L 476,124 L 477,124 L 478,124 L 479,125 L 478,125 L 478,126 L 478,127 L 479,127 L 479,128 L 478,128 L 478,129 L 477,129 L 477,130 L 477,131 L 476,131 L 476,132 L 475,132 L 474,132 L 475,132 L 474,132 L 474,133 L 474,134 L 473,134 L 472,134 L 471,134 L 470,134 L 470,135 L 470,134 L 470,135 L 469,135 L 469,134 L 469,135 L 468,135 L 468,136 L 467,136 L 467,137 L 467,138 L 466,138 L 467,138 L 467,139 L 466,139 L 467,139 L 466,139 L 466,140 L 466,141 L 465,141 L 465,142 L 464,142 L 464,143 L 464,144 L 463,144 L 464,144 L 463,144 L 463,145 L 462,145 L 462,146 L 462,147 L 463,147 L 463,148 L 464,148 L 464,149 L 464,150 L 464,151 L 463,151 L 463,152 L 463,153 L 463,154 L 464,154 L 463,154 L 464,154 L 464,155 L 464,156 L 464,157 L 465,157 L 465,158 L 465,159 L 464,159 L 465,160 L 465,161 L 464,161 L 463,161 L 463,162 L 462,162 L 462,163 L 462,164 L 461,164 L 461,165 L 461,166 L 461,167 L 461,168 L 461,169 L 461,170 L 461,171 L 462,171 L 462,172 L 463,172 L 463,173 L 464,173 L 464,174 L 464,175 L 464,174 L 464,175 L 464,176 L 464,177 L 464,178 L 463,178 L 463,179 L 463,180 L 462,180 L 461,180 L 461,181 L 460,181 L 459,181 L 459,180 L 459,181 L 458,181 L 457,181 L 456,181 L 456,182 L 455,182 L 455,181 L 454,181 L 454,180 L 453,180 L 452,180 L 451,180 L 450,180 L 449,180 L 449,181 L 449,180 L 448,180 L 448,181 L 447,181 L 447,182 L 446,181 L 446,182 L 446,183 L 445,183 L 445,184 L 444,184 L 444,185 L 443,185 L 443,186 L 442,186 L 441,186 L 441,187 L 440,187 L 440,188 L 439,188 L 439,189 L 438,189 L 437,189 L 436,189 L 436,190 L 435,190 L 435,191 L 435,190 L 434,190 L 434,191 L 433,191 L 432,191 L 431,191 L 431,192 L 431,191 L 431,192 L 430,192 L 429,192 L 429,193 L 428,193 L 428,194 L 427,194 L 428,194 L 427,194 L 427,195 L 427,196 L 427,197 L 426,197 L 427,197 L 426,197 L 426,198 L 427,198 L 426,198 L 426,199 L 426,200 L 426,201 L 425,201 L 425,202 L 425,203 L 424,203 L 424,204 L 424,205 L 424,206 L 423,206 L 424,206 L 423,206 L 423,207 L 423,208 L 422,208 L 421,208 L 421,209 L 421,210 L 420,210 L 421,210 L 420,210 L 420,211 L 421,211 L 421,212 L 421,213 L 421,214 L 422,214 L 422,215 L 422,216 L 422,217 L 423,217 L 423,218 L 423,219 L 422,220 L 423,220 L 423,221 L 423,222 L 423,223 L 422,223 L 422,224 L 422,225 L 422,226 L 422,227 L 422,228 L 421,228 L 421,229 L 420,229 L 420,228 L 419,228 L 418,228 L 417,228 L 416,228 L 415,228 L 415,227 L 414,227 L 414,226 L 414,225 L 414,224 L 413,224 L 414,224 L 414,223 L 413,223 L 412,223 L 412,222 L 411,222 L 411,221 L 412,221 L 412,220 L 413,220 L 413,219 L 412,219 L 413,218 L 412,218 L 411,218 L 411,217 L 410,217 L 409,217 L 409,216 L 409,215 L 409,214 L 408,214 L 409,214 L 408,214 L 408,213 L 407,213 L 408,213 L 407,213 L 407,212 L 407,213 L 406,213 L 405,212 L 406,212 L 405,212 L 406,212 L 406,211 L 407,211 L 407,210 L 406,210 L 407,210 L 408,210 L 408,209 L 408,208 L 407,208 L 408,208 L 408,207 L 408,206 L 408,205 L 409,205 L 408,205 L 409,205 L 408,205 L 409,205 L 408,205 L 409,205 L 408,205 L 408,204 L 409,204 L 409,203 L 410,203 L 411,203 L 411,202 L 412,202 L 413,202 L 413,201 L 414,201 L 414,200 L 413,200 L 413,199 L 414,199 L 413,199 L 414,199 L 414,198 L 413,197 L 412,197 L 412,196 L 411,196 L 411,197 L 411,196 L 411,197 L 411,196 L 410,196 L 410,197 L 410,196 L 410,197 L 409,197 L 408,197 L 408,198 L 408,197 L 407,197 L 407,198 L 406,198 L 406,199 L 406,198 L 406,199 L 406,198 L 406,199 L 406,198 L 405,198 L 405,197 L 404,197 L 404,196 L 404,195 L 403,195 L 404,195 L 403,195 L 403,194 L 402,194 L 402,193 L 402,194 L 402,193 L 402,192 L 401,192 L 401,193 L 402,193 L 401,193 L 401,192 L 400,192 L 400,191 L 399,190 L 398,190 L 399,189 L 400,189 L 400,188 L 399,188 L 399,187 L 398,187 L 398,188 L 397,188 L 397,187 L 396,187 L 396,186 L 397,186 L 398,186 L 398,185 L 398,184 L 399,184 L 399,183 L 399,182 L 399,181 L 400,180 L 399,180 L 400,179 L 399,179 L 400,179 L 400,178 L 400,177 L 401,177 L 401,176 L 400,176 L 401,175 L 401,174 L 401,173 L 401,172 L 400,172 L 400,171 L 400,170 L 400,169 L 400,168 L 400,167 L 400,166 L 400,165 L 400,164 L 400,163 L 399,163 L 399,162 L 398,162 L 398,163 L 398,162 L 397,162 L 396,162 L 396,161 L 395,161 L 394,161 L 394,160 L 394,159 L 393,159 L 392,159 L 392,160 L 391,160 L 390,160 L 390,159 L 389,159 L 388,159 L 388,158 L 387,158 L 386,158 L 386,159 L 385,159 L 385,160 L 384,160 L 384,161 L 384,160 L 383,160 L 383,161 L 382,161 L 384,159 L 385,159 L 386,158 L 386,157 L 387,157 L 388,156 L 390,155 L 391,154 L 392,153 L 394,152 L 395,151 L 395,150 L 396,150 L 397,150 L 397,151 L 397,150 L 398,150 L 398,149 L 399,149 L 399,148 L 399,147 L 400,147 L 400,146 L 401,146 L 401,145 L 402,145 L 402,144 L 402,143 L 403,143 L 403,142 L 403,143 L 403,142 L 404,142 L 404,141 L 405,141 L 405,140 L 404,140 L 405,140 L 405,139 L 406,139 L 405,139 L 406,139 L 405,139 L 406,139 L 405,139 L 406,139 L 405,139 L 406,139 L 406,138 L 406,137 L 406,136 L 407,136 L 407,135 L 407,134 L 407,135 L 407,134 L 407,133 L 408,133 L 409,133 L 409,132 L 409,131 L 409,132 L 409,131 L 410,131 L 410,130 L 411,130 L 410,130 L 411,130 L 411,129 L 411,128 L 411,127 L 411,128 L 411,127 L 411,126 L 411,127 L 411,126 L 412,126 L 411,126 L 412,126 L 412,125 L 411,125 L 412,125 L 411,125 L 411,124 L 412,124 L 411,124 L 412,124 L 412,123 L 413,123 L 413,122 L 414,122 L 413,122 L 414,122 L 414,121 L 414,120 L 415,120 L 415,119 L 414,119 L 414,120 L 414,119 L 414,118 L 415,118 L 414,118 L 415,117 L 415,118 L 415,117 L 416,117 L 416,116 L 417,116 L 417,115 L 417,114 L 417,113 L 417,112 L 417,111 L 416,111 L 416,112 L 416,111 L 416,110 L 417,110 L 418,110 L 418,109 L 418,108 L 418,107 L 418,106 L 419,106 L 419,105 L 419,104 L 418,104 L 418,103 L 419,103 L 419,102 L 419,103 L 419,102 L 420,102 L 420,103 L 420,102 L 420,101 L 420,102 L 420,101 L 420,102 L 420,101 L 421,101 L 421,102 L 421,101 L 421,102 L 420,102 L 421,102 L 420,102 L 421,102 L 420,102 L 420,103 L 420,102 L 421,103 L 421,102 L 421,103 L 421,104 L 421,103 L 421,102 L 422,102 L 422,101 L 423,101 "},"pi": {"name": "Piauí","path": "M 479,125 L 480,125 L 480,126 L 481,126 L 481,127 L 482,127 L 483,127 L 484,127 L 485,127 L 485,128 L 486,128 L 486,129 L 486,130 L 485,130 L 485,131 L 485,132 L 484,132 L 484,133 L 484,134 L 485,134 L 485,135 L 486,135 L 485,135 L 485,136 L 485,137 L 485,138 L 486,138 L 487,138 L 486,138 L 486,139 L 486,140 L 486,141 L 487,141 L 487,142 L 486,142 L 487,142 L 486,142 L 486,143 L 487,142 L 487,143 L 488,143 L 488,142 L 488,143 L 488,144 L 489,144 L 488,145 L 488,146 L 488,147 L 488,148 L 487,148 L 487,149 L 487,150 L 486,150 L 487,150 L 487,151 L 487,152 L 486,152 L 486,153 L 487,153 L 486,153 L 486,154 L 487,154 L 486,154 L 487,154 L 487,155 L 488,155 L 488,156 L 488,157 L 489,157 L 490,157 L 490,158 L 491,158 L 491,159 L 491,160 L 491,161 L 491,162 L 491,163 L 491,164 L 491,165 L 491,166 L 491,167 L 491,168 L 491,169 L 492,169 L 492,170 L 491,170 L 491,171 L 492,171 L 492,172 L 492,173 L 492,174 L 493,174 L 493,175 L 493,176 L 493,177 L 493,178 L 494,178 L 494,179 L 495,179 L 495,180 L 496,180 L 497,180 L 497,181 L 498,181 L 499,181 L 498,181 L 498,182 L 498,183 L 498,184 L 498,185 L 497,185 L 497,186 L 497,187 L 497,188 L 496,188 L 496,189 L 495,190 L 494,190 L 494,191 L 494,192 L 495,192 L 495,193 L 495,194 L 494,194 L 495,195 L 496,195 L 496,196 L 496,197 L 496,198 L 495,199 L 496,199 L 496,200 L 495,200 L 494,200 L 494,201 L 493,201 L 493,202 L 492,202 L 492,203 L 491,203 L 491,204 L 490,204 L 490,203 L 490,204 L 489,204 L 489,205 L 488,205 L 488,206 L 487,206 L 487,207 L 486,207 L 485,207 L 485,208 L 484,208 L 484,209 L 483,209 L 483,210 L 482,211 L 481,211 L 481,212 L 480,212 L 480,213 L 479,213 L 479,214 L 478,214 L 478,215 L 477,215 L 476,215 L 475,215 L 475,216 L 474,216 L 473,216 L 472,216 L 471,216 L 471,217 L 470,217 L 470,218 L 469,218 L 469,219 L 468,219 L 467,219 L 466,219 L 466,220 L 465,220 L 464,220 L 464,219 L 463,219 L 463,218 L 463,217 L 462,217 L 461,217 L 460,217 L 459,217 L 458,217 L 458,218 L 458,217 L 457,217 L 457,216 L 456,216 L 456,215 L 455,215 L 455,216 L 454,216 L 453,217 L 452,217 L 452,218 L 451,218 L 451,219 L 450,219 L 450,220 L 450,221 L 451,221 L 451,222 L 452,223 L 453,223 L 453,224 L 452,224 L 452,225 L 453,225 L 453,226 L 452,226 L 452,227 L 451,227 L 451,228 L 451,229 L 450,229 L 450,230 L 450,231 L 449,231 L 449,232 L 448,232 L 448,231 L 448,232 L 447,233 L 447,234 L 446,234 L 445,234 L 444,234 L 444,233 L 443,233 L 443,234 L 442,234 L 441,234 L 441,235 L 441,234 L 440,234 L 440,235 L 439,235 L 439,236 L 438,236 L 438,237 L 437,237 L 437,238 L 436,238 L 435,238 L 434,238 L 434,237 L 433,237 L 432,237 L 431,237 L 431,236 L 430,236 L 429,236 L 429,235 L 428,235 L 428,234 L 428,233 L 428,232 L 429,232 L 428,232 L 428,231 L 428,230 L 427,230 L 427,229 L 426,229 L 426,228 L 426,227 L 425,227 L 425,228 L 424,228 L 424,229 L 423,229 L 422,229 L 421,229 L 421,228 L 422,228 L 422,227 L 422,226 L 422,225 L 422,224 L 422,223 L 423,223 L 423,222 L 423,221 L 423,220 L 422,220 L 423,219 L 423,218 L 423,217 L 422,217 L 422,216 L 422,215 L 422,214 L 421,214 L 421,213 L 421,212 L 421,211 L 420,211 L 420,210 L 421,210 L 420,210 L 421,210 L 421,209 L 421,208 L 422,208 L 423,208 L 423,207 L 423,206 L 424,206 L 423,206 L 424,206 L 424,205 L 424,204 L 424,203 L 425,203 L 425,202 L 425,201 L 426,201 L 426,200 L 426,199 L 426,198 L 427,198 L 426,198 L 426,197 L 427,197 L 426,197 L 427,197 L 427,196 L 427,195 L 427,194 L 428,194 L 427,194 L 428,194 L 428,193 L 429,193 L 429,192 L 430,192 L 431,192 L 431,191 L 431,192 L 431,191 L 432,191 L 433,191 L 434,191 L 434,190 L 435,190 L 435,191 L 435,190 L 436,190 L 436,189 L 437,189 L 438,189 L 439,189 L 439,188 L 440,188 L 440,187 L 441,187 L 441,186 L 442,186 L 443,186 L 443,185 L 444,185 L 444,184 L 445,184 L 445,183 L 446,183 L 446,182 L 446,181 L 447,182 L 447,181 L 448,181 L 448,180 L 449,180 L 449,181 L 449,180 L 450,180 L 451,180 L 452,180 L 453,180 L 454,180 L 454,181 L 455,181 L 455,182 L 456,182 L 456,181 L 457,181 L 458,181 L 459,181 L 459,180 L 459,181 L 460,181 L 461,181 L 461,180 L 462,180 L 463,180 L 463,179 L 463,178 L 464,178 L 464,177 L 464,176 L 464,175 L 464,174 L 464,175 L 464,174 L 464,173 L 463,173 L 463,172 L 462,172 L 462,171 L 461,171 L 461,170 L 461,169 L 461,168 L 461,167 L 461,166 L 461,165 L 461,164 L 462,164 L 462,163 L 462,162 L 463,162 L 463,161 L 464,161 L 465,161 L 465,160 L 464,159 L 465,159 L 465,158 L 465,157 L 464,157 L 464,156 L 464,155 L 464,154 L 463,154 L 464,154 L 463,154 L 463,153 L 463,152 L 463,151 L 464,151 L 464,150 L 464,149 L 464,148 L 463,148 L 463,147 L 462,147 L 462,146 L 462,145 L 463,145 L 463,144 L 464,144 L 463,144 L 464,144 L 464,143 L 464,142 L 465,142 L 465,141 L 466,141 L 466,140 L 466,139 L 467,139 L 466,139 L 467,139 L 467,138 L 466,138 L 467,138 L 467,137 L 467,136 L 468,136 L 468,135 L 469,135 L 469,134 L 469,135 L 470,135 L 470,134 L 470,135 L 470,134 L 471,134 L 472,134 L 473,134 L 474,134 L 474,133 L 474,132 L 475,132 L 474,132 L 475,132 L 476,132 L 476,131 L 477,131 L 477,130 L 477,129 L 478,129 L 478,128 L 479,128 L 479,127 L 478,127 L 478,126 L 478,125 L 479,125 "},"ce": {"name": "Ceará","path": "M 488,149 L 487,149 L 487,148 L 488,148 L 488,147 L 488,146 L 488,145 L 489,144 L 488,144 L 488,143 L 488,142 L 488,143 L 487,143 L 487,142 L 486,143 L 486,142 L 487,142 L 486,142 L 487,142 L 487,141 L 486,141 L 486,140 L 486,139 L 486,138 L 487,138 L 486,138 L 485,138 L 485,137 L 485,136 L 485,135 L 486,135 L 485,135 L 485,134 L 484,134 L 484,133 L 484,132 L 485,132 L 485,131 L 485,130 L 486,130 L 486,129 L 486,128 L 485,128 L 485,127 L 486,127 L 487,127 L 488,127 L 489,127 L 490,127 L 490,126 L 491,126 L 492,126 L 492,127 L 492,126 L 493,126 L 494,126 L 495,126 L 496,126 L 496,125 L 497,125 L 498,125 L 498,126 L 499,126 L 499,125 L 500,125 L 500,126 L 500,125 L 500,126 L 501,126 L 502,126 L 503,126 L 504,126 L 503,126 L 504,126 L 505,126 L 505,127 L 506,127 L 507,127 L 507,128 L 508,128 L 509,128 L 509,129 L 510,129 L 510,130 L 511,130 L 512,130 L 512,131 L 513,131 L 514,131 L 514,132 L 515,132 L 515,133 L 516,133 L 517,134 L 518,134 L 519,134 L 519,135 L 520,135 L 520,136 L 521,136 L 521,137 L 522,137 L 522,138 L 523,138 L 524,138 L 525,138 L 525,139 L 526,139 L 526,140 L 527,140 L 527,141 L 528,141 L 528,142 L 529,142 L 529,143 L 530,143 L 530,144 L 530,145 L 531,145 L 531,146 L 532,146 L 533,146 L 533,147 L 534,147 L 534,148 L 535,148 L 535,149 L 536,149 L 536,150 L 537,150 L 537,151 L 538,151 L 539,151 L 540,151 L 540,152 L 541,152 L 542,153 L 542,154 L 541,154 L 539,154 L 538,155 L 537,155 L 536,155 L 536,156 L 536,157 L 535,157 L 535,158 L 535,159 L 535,160 L 534,160 L 535,160 L 534,160 L 534,161 L 533,161 L 534,161 L 534,162 L 533,162 L 533,163 L 532,163 L 532,164 L 531,164 L 531,165 L 530,165 L 530,166 L 531,166 L 531,167 L 530,167 L 530,168 L 530,169 L 529,169 L 529,170 L 528,170 L 528,171 L 527,171 L 526,171 L 525,171 L 525,172 L 525,173 L 524,173 L 524,174 L 523,174 L 524,174 L 523,174 L 524,175 L 523,175 L 524,175 L 523,175 L 524,175 L 524,176 L 524,177 L 523,177 L 523,178 L 523,179 L 522,179 L 523,179 L 522,179 L 522,180 L 523,180 L 523,181 L 522,181 L 522,182 L 521,182 L 521,183 L 521,184 L 522,184 L 522,185 L 522,186 L 523,186 L 523,187 L 524,187 L 524,188 L 524,189 L 523,189 L 523,190 L 523,191 L 522,191 L 523,191 L 522,191 L 523,191 L 522,191 L 522,192 L 522,193 L 522,192 L 522,193 L 521,193 L 520,193 L 520,194 L 519,194 L 518,194 L 518,195 L 519,195 L 518,195 L 518,196 L 518,195 L 517,195 L 517,196 L 516,196 L 516,195 L 516,194 L 515,194 L 515,193 L 514,193 L 514,194 L 514,193 L 513,193 L 513,192 L 512,192 L 511,192 L 511,191 L 511,190 L 510,190 L 510,191 L 510,190 L 509,190 L 509,189 L 508,189 L 508,188 L 507,188 L 506,188 L 505,188 L 505,189 L 505,188 L 505,189 L 504,189 L 503,189 L 502,189 L 501,189 L 501,188 L 500,188 L 499,188 L 499,189 L 498,189 L 497,189 L 497,188 L 496,188 L 497,188 L 497,187 L 497,186 L 497,185 L 498,185 L 498,184 L 498,183 L 498,182 L 498,181 L 499,181 L 498,181 L 497,181 L 497,180 L 496,180 L 495,180 L 495,179 L 494,179 L 494,178 L 493,178 L 493,177 L 493,176 L 493,175 L 493,174 L 492,174 L 492,173 L 492,172 L 492,171 L 491,171 L 491,170 L 492,170 L 492,169 L 491,169 L 491,168 L 491,167 L 491,166 L 491,165 L 491,164 L 491,163 L 491,162 L 491,161 L 491,160 L 491,159 L 491,158 L 490,158 L 490,157 L 489,157 L 488,157 L 488,156 L 488,155 L 487,155 L 487,154 L 486,154 L 487,154 L 486,154 L 486,153 L 487,153 L 486,153 L 486,152 L 487,152 L 487,151 L 487,150 L 486,150 L 487,150 L 487,149 L 488,149 "},"rn": {"name": "Rio Grande do Norte","path": "M 542,154 L 543,154 L 543,155 L 544,155 L 545,155 L 546,155 L 547,155 L 547,156 L 548,156 L 548,157 L 549,157 L 550,157 L 551,157 L 552,157 L 553,157 L 554,157 L 555,157 L 556,157 L 557,157 L 558,157 L 559,157 L 560,157 L 561,157 L 562,157 L 563,157 L 564,157 L 564,158 L 565,158 L 566,158 L 567,158 L 567,159 L 568,159 L 568,160 L 568,161 L 569,161 L 569,162 L 569,163 L 570,163 L 570,164 L 570,165 L 570,166 L 571,166 L 570,166 L 571,166 L 571,167 L 571,168 L 571,169 L 572,169 L 572,170 L 572,171 L 572,172 L 572,173 L 573,173 L 573,174 L 573,175 L 574,175 L 574,176 L 574,177 L 573,177 L 572,177 L 571,177 L 571,178 L 570,177 L 569,177 L 568,177 L 567,177 L 566,177 L 566,176 L 566,177 L 565,177 L 565,176 L 564,176 L 563,176 L 563,177 L 562,177 L 561,177 L 560,177 L 559,177 L 559,176 L 558,176 L 557,176 L 556,176 L 556,175 L 556,176 L 556,175 L 555,175 L 556,175 L 556,174 L 555,174 L 554,174 L 554,175 L 553,175 L 552,175 L 552,176 L 552,177 L 553,177 L 553,178 L 553,179 L 553,178 L 552,178 L 552,179 L 552,180 L 552,181 L 552,182 L 551,182 L 552,182 L 551,182 L 552,182 L 551,182 L 551,183 L 550,183 L 550,184 L 549,184 L 549,183 L 549,182 L 549,181 L 549,182 L 549,181 L 548,180 L 547,180 L 546,181 L 546,180 L 545,180 L 544,180 L 544,181 L 543,181 L 542,181 L 542,180 L 541,180 L 542,180 L 541,179 L 541,180 L 540,180 L 539,180 L 539,179 L 539,178 L 539,177 L 540,177 L 540,176 L 540,175 L 540,174 L 541,174 L 542,174 L 542,173 L 543,173 L 543,172 L 543,171 L 543,170 L 542,170 L 542,171 L 541,171 L 540,171 L 539,171 L 539,172 L 538,172 L 539,172 L 538,172 L 537,172 L 537,173 L 536,173 L 536,172 L 535,172 L 535,173 L 535,174 L 534,174 L 534,175 L 533,175 L 533,176 L 532,176 L 532,175 L 532,176 L 531,176 L 530,176 L 530,177 L 529,177 L 528,177 L 527,177 L 527,176 L 526,176 L 525,176 L 525,175 L 525,174 L 525,175 L 524,175 L 523,174 L 524,174 L 523,174 L 524,174 L 524,173 L 525,173 L 525,172 L 525,171 L 526,171 L 527,171 L 528,171 L 528,170 L 529,170 L 529,169 L 530,169 L 530,168 L 530,167 L 531,167 L 531,166 L 530,166 L 530,165 L 531,165 L 531,164 L 532,164 L 532,163 L 533,163 L 533,162 L 534,162 L 534,161 L 533,161 L 534,161 L 534,160 L 535,160 L 534,160 L 535,160 L 535,159 L 535,158 L 535,157 L 536,157 L 536,156 L 536,155 L 537,155 L 538,155 L 539,154 L 541,154 L 542,154 "},"pb": {"name": "Paraíba","path": "M 542,170 L 543,170 L 543,171 L 543,172 L 543,173 L 542,173 L 542,174 L 541,174 L 540,174 L 540,175 L 540,176 L 540,177 L 539,177 L 539,178 L 539,179 L 539,180 L 540,180 L 541,180 L 541,179 L 542,180 L 541,180 L 542,180 L 542,181 L 543,181 L 544,181 L 544,180 L 545,180 L 546,180 L 546,181 L 547,180 L 548,180 L 548,181 L 549,181 L 549,182 L 549,181 L 549,182 L 549,183 L 549,184 L 550,184 L 550,183 L 551,183 L 551,182 L 552,182 L 551,182 L 552,182 L 551,182 L 552,182 L 552,181 L 552,180 L 552,179 L 552,178 L 553,178 L 553,179 L 553,178 L 553,177 L 552,177 L 552,176 L 552,175 L 553,175 L 554,175 L 554,174 L 555,174 L 556,174 L 556,175 L 555,175 L 556,175 L 556,176 L 556,175 L 556,176 L 557,176 L 558,176 L 559,176 L 559,177 L 560,177 L 561,177 L 562,177 L 563,177 L 563,176 L 564,176 L 565,176 L 565,177 L 566,177 L 566,176 L 566,177 L 567,177 L 568,177 L 569,177 L 570,177 L 571,178 L 571,177 L 572,177 L 573,177 L 574,177 L 574,178 L 574,179 L 574,180 L 574,181 L 575,181 L 575,182 L 575,183 L 575,184 L 576,184 L 576,183 L 576,184 L 576,185 L 576,186 L 576,187 L 576,188 L 576,189 L 576,190 L 576,191 L 575,191 L 574,191 L 573,191 L 573,190 L 574,190 L 573,190 L 572,189 L 571,189 L 570,189 L 569,189 L 569,190 L 569,189 L 569,190 L 568,190 L 567,190 L 566,190 L 566,191 L 566,192 L 566,193 L 565,193 L 564,193 L 564,194 L 564,193 L 563,193 L 563,194 L 562,194 L 561,194 L 561,195 L 560,195 L 559,195 L 558,195 L 557,195 L 556,194 L 556,195 L 555,195 L 554,195 L 553,195 L 553,196 L 553,197 L 552,197 L 552,196 L 551,196 L 551,197 L 551,198 L 551,199 L 550,199 L 551,199 L 550,199 L 550,200 L 549,200 L 548,200 L 548,201 L 547,201 L 546,201 L 546,202 L 545,202 L 545,201 L 544,201 L 545,201 L 544,201 L 544,200 L 543,200 L 543,199 L 544,199 L 543,199 L 544,199 L 543,199 L 543,198 L 543,197 L 542,197 L 541,197 L 541,196 L 542,196 L 542,195 L 543,195 L 543,194 L 544,194 L 543,194 L 543,193 L 543,192 L 544,192 L 544,191 L 545,191 L 546,191 L 546,190 L 545,190 L 545,189 L 544,189 L 543,188 L 542,188 L 541,188 L 541,189 L 540,189 L 539,189 L 539,190 L 538,190 L 538,191 L 537,191 L 536,191 L 536,192 L 535,192 L 535,193 L 535,192 L 534,192 L 534,193 L 534,192 L 534,193 L 533,193 L 533,194 L 532,194 L 532,195 L 531,195 L 531,194 L 531,195 L 530,195 L 529,195 L 528,195 L 527,195 L 527,194 L 527,193 L 526,193 L 526,194 L 525,194 L 524,194 L 523,194 L 523,193 L 522,193 L 522,192 L 522,191 L 523,191 L 522,191 L 523,191 L 522,191 L 523,191 L 523,190 L 523,189 L 524,189 L 524,188 L 524,187 L 523,187 L 523,186 L 522,186 L 522,185 L 522,184 L 521,184 L 521,183 L 521,182 L 522,182 L 522,181 L 523,181 L 523,180 L 522,180 L 522,179 L 523,179 L 522,179 L 523,179 L 523,178 L 523,177 L 524,177 L 524,176 L 524,175 L 523,175 L 524,175 L 523,175 L 524,175 L 525,175 L 525,174 L 525,175 L 525,176 L 526,176 L 527,176 L 527,177 L 528,177 L 529,177 L 530,177 L 530,176 L 531,176 L 532,176 L 532,175 L 532,176 L 533,176 L 533,175 L 534,175 L 534,174 L 535,174 L 535,173 L 535,172 L 536,172 L 536,173 L 537,173 L 537,172 L 538,172 L 539,172 L 538,172 L 539,172 L 539,171 L 540,171 L 541,171 L 542,171 L 542,170 "},"pe": {"name": "Pernambuco","path": "M 542,188 L 543,188 L 544,189 L 545,189 L 545,190 L 546,190 L 546,191 L 545,191 L 544,191 L 544,192 L 543,192 L 543,193 L 543,194 L 544,194 L 543,194 L 543,195 L 542,195 L 542,196 L 541,196 L 541,197 L 542,197 L 543,197 L 543,198 L 543,199 L 544,199 L 543,199 L 544,199 L 543,199 L 543,200 L 544,200 L 544,201 L 545,201 L 544,201 L 545,201 L 545,202 L 546,202 L 546,201 L 547,201 L 548,201 L 548,200 L 549,200 L 550,200 L 550,199 L 551,199 L 550,199 L 551,199 L 551,198 L 551,197 L 551,196 L 552,196 L 552,197 L 553,197 L 553,196 L 553,195 L 554,195 L 555,195 L 556,195 L 556,194 L 557,195 L 558,195 L 559,195 L 560,195 L 561,195 L 561,194 L 562,194 L 563,194 L 563,193 L 564,193 L 564,194 L 564,193 L 565,193 L 566,193 L 566,192 L 566,191 L 566,190 L 567,190 L 568,190 L 569,190 L 569,189 L 569,190 L 569,189 L 570,189 L 571,189 L 572,189 L 573,190 L 574,190 L 573,190 L 573,191 L 574,191 L 575,191 L 576,191 L 576,192 L 576,193 L 575,193 L 576,193 L 576,194 L 576,195 L 575,195 L 576,195 L 575,195 L 576,195 L 576,196 L 576,197 L 576,198 L 575,198 L 575,199 L 575,200 L 574,200 L 574,201 L 574,202 L 574,203 L 574,204 L 573,204 L 573,205 L 573,206 L 573,205 L 573,206 L 572,206 L 572,207 L 572,208 L 572,209 L 571,209 L 571,210 L 572,210 L 571,210 L 570,210 L 569,210 L 568,210 L 568,209 L 567,209 L 566,209 L 565,209 L 565,210 L 564,210 L 563,210 L 562,210 L 563,210 L 562,210 L 562,209 L 562,210 L 561,210 L 560,210 L 559,210 L 558,210 L 558,211 L 558,212 L 557,212 L 557,213 L 556,213 L 556,214 L 555,214 L 554,214 L 555,215 L 554,215 L 553,215 L 554,215 L 553,215 L 552,215 L 552,216 L 551,216 L 552,216 L 551,216 L 550,216 L 549,215 L 548,216 L 548,215 L 547,215 L 547,216 L 546,216 L 546,217 L 545,217 L 545,216 L 545,215 L 544,215 L 543,215 L 542,215 L 542,214 L 541,214 L 541,213 L 540,213 L 540,212 L 539,212 L 539,211 L 538,211 L 537,211 L 537,212 L 536,212 L 536,211 L 536,212 L 536,211 L 536,212 L 536,211 L 536,210 L 535,210 L 534,210 L 534,211 L 534,212 L 533,212 L 533,213 L 532,213 L 532,214 L 531,214 L 530,214 L 530,215 L 529,215 L 529,216 L 528,216 L 528,215 L 528,214 L 527,214 L 527,213 L 527,212 L 528,212 L 527,212 L 527,211 L 527,212 L 526,212 L 525,212 L 525,211 L 524,211 L 525,210 L 525,209 L 524,209 L 523,210 L 523,211 L 522,211 L 522,210 L 521,209 L 520,209 L 519,209 L 518,209 L 518,208 L 517,208 L 516,208 L 515,208 L 515,207 L 515,208 L 514,208 L 514,207 L 514,206 L 514,205 L 513,205 L 512,205 L 512,206 L 511,206 L 510,206 L 510,207 L 509,207 L 508,207 L 508,208 L 508,209 L 507,209 L 506,209 L 505,209 L 505,210 L 505,211 L 506,211 L 505,211 L 505,212 L 504,212 L 503,212 L 503,213 L 502,213 L 501,213 L 501,212 L 500,212 L 500,213 L 500,214 L 500,215 L 499,215 L 499,216 L 499,217 L 498,217 L 497,217 L 496,217 L 496,218 L 495,218 L 494,218 L 493,218 L 493,217 L 493,216 L 494,216 L 493,216 L 494,216 L 494,215 L 494,214 L 494,213 L 493,213 L 492,213 L 492,212 L 492,211 L 492,210 L 491,210 L 491,209 L 490,209 L 489,209 L 490,209 L 489,209 L 488,209 L 488,208 L 488,207 L 488,208 L 488,207 L 488,208 L 487,208 L 487,207 L 487,208 L 486,208 L 485,208 L 485,207 L 486,207 L 487,207 L 487,206 L 488,206 L 488,205 L 489,205 L 489,204 L 490,204 L 490,203 L 490,204 L 491,204 L 491,203 L 492,203 L 492,202 L 493,202 L 493,201 L 494,201 L 494,200 L 495,200 L 496,200 L 496,199 L 495,199 L 496,198 L 496,197 L 496,196 L 496,195 L 495,195 L 494,194 L 495,194 L 495,193 L 495,192 L 494,192 L 494,191 L 494,190 L 495,190 L 496,189 L 496,188 L 497,188 L 497,189 L 498,189 L 499,189 L 499,188 L 500,188 L 501,188 L 501,189 L 502,189 L 503,189 L 504,189 L 505,189 L 505,188 L 505,189 L 505,188 L 506,188 L 507,188 L 508,188 L 508,189 L 509,189 L 509,190 L 510,190 L 510,191 L 510,190 L 511,190 L 511,191 L 511,192 L 512,192 L 513,192 L 513,193 L 514,193 L 514,194 L 514,193 L 515,193 L 515,194 L 516,194 L 516,195 L 516,196 L 517,196 L 517,195 L 518,195 L 518,196 L 518,195 L 519,195 L 518,195 L 518,194 L 519,194 L 520,194 L 520,193 L 521,193 L 522,193 L 522,192 L 522,193 L 522,192 L 522,193 L 523,193 L 523,194 L 524,194 L 525,194 L 526,194 L 526,193 L 527,193 L 527,194 L 527,195 L 528,195 L 529,195 L 530,195 L 531,195 L 531,194 L 531,195 L 532,195 L 532,194 L 533,194 L 533,193 L 534,193 L 534,192 L 534,193 L 534,192 L 535,192 L 535,193 L 535,192 L 536,192 L 536,191 L 537,191 L 538,191 L 538,190 L 539,190 L 539,189 L 540,189 L 541,189 L 541,188 L 542,188 "},"al": {"name": "Alagoas","path": "M 567,209 L 568,209 L 568,210 L 569,210 L 570,210 L 571,210 L 571,211 L 571,212 L 570,212 L 570,213 L 569,213 L 569,214 L 569,215 L 568,215 L 568,216 L 567,216 L 568,216 L 567,216 L 567,217 L 566,217 L 566,218 L 565,218 L 565,219 L 564,219 L 564,220 L 564,221 L 563,221 L 562,221 L 562,222 L 562,221 L 562,222 L 561,222 L 561,223 L 561,224 L 560,224 L 560,225 L 559,225 L 559,226 L 559,227 L 558,227 L 558,228 L 557,228 L 556,229 L 555,229 L 555,230 L 555,231 L 555,232 L 554,232 L 553,232 L 553,231 L 552,231 L 552,232 L 552,231 L 552,230 L 551,230 L 551,229 L 550,229 L 549,229 L 548,229 L 548,228 L 547,228 L 547,227 L 546,227 L 546,226 L 546,225 L 545,225 L 544,225 L 544,224 L 543,224 L 542,224 L 542,223 L 541,223 L 540,223 L 540,222 L 539,222 L 538,222 L 537,222 L 537,221 L 536,221 L 536,220 L 535,220 L 535,221 L 535,220 L 534,220 L 533,219 L 532,219 L 532,218 L 531,218 L 530,218 L 529,218 L 529,217 L 528,216 L 529,216 L 529,215 L 530,215 L 530,214 L 531,214 L 532,214 L 532,213 L 533,213 L 533,212 L 534,212 L 534,211 L 534,210 L 535,210 L 536,210 L 536,211 L 536,212 L 536,211 L 536,212 L 536,211 L 536,212 L 537,212 L 537,211 L 538,211 L 539,211 L 539,212 L 540,212 L 540,213 L 541,213 L 541,214 L 542,214 L 542,215 L 543,215 L 544,215 L 545,215 L 545,216 L 545,217 L 546,217 L 546,216 L 547,216 L 547,215 L 548,215 L 548,216 L 549,215 L 549,216 L 550,216 L 551,216 L 552,216 L 551,216 L 552,216 L 552,215 L 553,215 L 554,215 L 553,215 L 554,215 L 555,215 L 554,214 L 555,214 L 556,214 L 556,213 L 557,213 L 557,212 L 558,212 L 558,211 L 558,210 L 559,210 L 560,210 L 561,210 L 562,210 L 562,209 L 562,210 L 563,210 L 562,210 L 563,210 L 564,210 L 565,210 L 565,209 L 566,209 L 567,209 "},"se": {"name": "Sergipe","path": "M 532,219 L 533,219 L 534,220 L 535,220 L 535,221 L 535,220 L 536,220 L 536,221 L 537,221 L 537,222 L 538,222 L 539,222 L 540,222 L 540,223 L 541,223 L 542,223 L 542,224 L 543,224 L 544,224 L 544,225 L 545,225 L 546,225 L 546,226 L 546,227 L 547,227 L 547,228 L 548,228 L 548,229 L 549,229 L 550,229 L 551,229 L 551,230 L 552,230 L 552,231 L 552,232 L 552,231 L 553,231 L 553,232 L 554,232 L 554,233 L 553,233 L 552,233 L 551,233 L 551,234 L 550,234 L 549,235 L 548,235 L 548,236 L 547,236 L 547,237 L 546,237 L 546,238 L 545,238 L 545,239 L 545,240 L 544,240 L 544,241 L 543,241 L 543,242 L 543,243 L 542,243 L 542,244 L 541,244 L 541,245 L 541,246 L 540,246 L 539,247 L 538,247 L 537,247 L 536,247 L 535,247 L 534,247 L 534,246 L 533,246 L 534,246 L 533,246 L 533,245 L 533,246 L 533,245 L 532,245 L 532,244 L 532,243 L 532,244 L 531,244 L 531,243 L 532,243 L 532,242 L 531,242 L 531,241 L 530,241 L 531,241 L 531,240 L 530,240 L 530,239 L 529,239 L 529,238 L 528,238 L 528,237 L 528,236 L 529,236 L 529,235 L 530,235 L 530,236 L 530,235 L 530,236 L 530,235 L 530,236 L 530,235 L 531,235 L 531,236 L 532,236 L 533,236 L 533,235 L 534,235 L 534,234 L 534,233 L 534,232 L 534,231 L 534,230 L 535,230 L 535,228 L 535,227 L 534,227 L 534,226 L 534,225 L 533,225 L 532,225 L 532,224 L 532,223 L 531,223 L 531,222 L 531,221 L 532,221 L 532,220 L 531,220 L 531,219 L 532,219 "},"ba": {"name": "Bahia","path": "M 513,205 L 514,205 L 514,206 L 514,207 L 514,208 L 515,208 L 515,207 L 515,208 L 516,208 L 517,208 L 518,208 L 518,209 L 519,209 L 520,209 L 521,209 L 522,210 L 522,211 L 523,211 L 523,210 L 524,209 L 525,209 L 525,210 L 524,211 L 525,211 L 525,212 L 526,212 L 527,212 L 527,211 L 527,212 L 528,212 L 527,212 L 527,213 L 527,214 L 528,214 L 528,215 L 528,216 L 529,217 L 529,218 L 530,218 L 531,218 L 532,218 L 532,219 L 531,219 L 531,220 L 532,220 L 532,221 L 531,221 L 531,222 L 531,223 L 532,223 L 532,224 L 532,225 L 533,225 L 534,225 L 534,226 L 534,227 L 535,227 L 535,228 L 535,230 L 534,230 L 534,231 L 534,232 L 534,233 L 534,234 L 534,235 L 533,235 L 533,236 L 532,236 L 531,236 L 531,235 L 530,235 L 530,236 L 530,235 L 530,236 L 530,235 L 530,236 L 530,235 L 529,235 L 529,236 L 528,236 L 528,237 L 528,238 L 529,238 L 529,239 L 530,239 L 530,240 L 531,240 L 531,241 L 530,241 L 531,241 L 531,242 L 532,242 L 532,243 L 531,243 L 531,244 L 532,244 L 532,243 L 532,244 L 532,245 L 533,245 L 533,246 L 533,245 L 533,246 L 534,246 L 533,246 L 534,246 L 534,247 L 535,247 L 536,247 L 537,247 L 538,247 L 539,247 L 540,246 L 541,246 L 540,246 L 540,247 L 540,248 L 539,248 L 539,249 L 538,250 L 538,251 L 538,252 L 537,252 L 537,253 L 537,254 L 536,254 L 536,255 L 535,255 L 535,256 L 535,257 L 534,257 L 534,258 L 533,258 L 533,259 L 533,260 L 532,260 L 532,261 L 531,261 L 531,262 L 531,263 L 530,263 L 530,264 L 529,264 L 529,265 L 528,265 L 528,266 L 527,266 L 527,267 L 526,267 L 525,267 L 524,267 L 523,267 L 523,268 L 522,268 L 523,268 L 522,268 L 521,268 L 521,269 L 521,268 L 521,269 L 521,268 L 521,269 L 520,269 L 520,270 L 519,270 L 518,271 L 518,272 L 518,273 L 519,273 L 519,272 L 519,273 L 519,274 L 519,275 L 519,276 L 519,275 L 519,276 L 519,275 L 519,276 L 519,277 L 519,276 L 518,276 L 518,277 L 518,278 L 518,279 L 518,280 L 519,280 L 519,281 L 518,281 L 518,282 L 518,283 L 518,284 L 518,285 L 518,286 L 518,287 L 517,287 L 517,288 L 517,289 L 517,290 L 517,291 L 517,292 L 517,293 L 517,294 L 518,294 L 518,295 L 518,296 L 518,297 L 518,298 L 518,299 L 518,300 L 518,301 L 518,302 L 518,303 L 519,303 L 519,304 L 519,305 L 519,306 L 519,307 L 520,307 L 519,307 L 519,308 L 519,309 L 519,310 L 518,310 L 518,311 L 518,312 L 517,312 L 517,313 L 517,314 L 518,314 L 517,314 L 517,315 L 517,316 L 517,317 L 516,317 L 516,318 L 516,319 L 516,320 L 516,321 L 516,322 L 516,323 L 515,323 L 515,324 L 515,325 L 515,326 L 515,327 L 515,328 L 515,329 L 515,330 L 515,331 L 515,332 L 516,332 L 516,333 L 515,333 L 515,334 L 514,334 L 514,335 L 513,335 L 513,336 L 512,336 L 511,336 L 511,337 L 510,337 L 510,338 L 510,339 L 509,339 L 509,340 L 509,341 L 508,341 L 508,342 L 508,341 L 507,341 L 506,340 L 505,339 L 504,339 L 503,338 L 502,338 L 502,337 L 501,337 L 501,336 L 500,336 L 501,335 L 501,334 L 501,333 L 500,333 L 500,332 L 499,332 L 499,331 L 499,332 L 499,331 L 498,331 L 498,332 L 498,331 L 497,331 L 497,330 L 497,329 L 496,329 L 495,329 L 495,328 L 496,328 L 495,328 L 495,327 L 496,327 L 496,326 L 496,325 L 496,324 L 496,323 L 496,322 L 497,322 L 497,321 L 498,321 L 499,321 L 499,322 L 499,321 L 500,321 L 500,322 L 500,321 L 500,320 L 499,320 L 499,319 L 500,319 L 499,319 L 499,318 L 500,318 L 500,317 L 501,317 L 502,317 L 501,317 L 501,316 L 502,316 L 502,315 L 503,315 L 503,314 L 504,314 L 504,313 L 504,314 L 504,313 L 505,313 L 505,312 L 505,311 L 506,311 L 506,310 L 505,310 L 505,309 L 504,309 L 503,309 L 503,308 L 502,308 L 501,308 L 501,307 L 501,306 L 500,306 L 499,306 L 499,307 L 499,306 L 499,307 L 499,306 L 498,306 L 497,306 L 496,306 L 495,306 L 495,305 L 494,305 L 494,304 L 494,305 L 493,305 L 494,305 L 493,305 L 493,304 L 492,304 L 492,305 L 491,305 L 491,304 L 490,304 L 490,305 L 489,305 L 488,305 L 488,306 L 487,306 L 487,305 L 486,305 L 485,305 L 485,303 L 485,302 L 484,302 L 484,301 L 483,301 L 483,300 L 479,297 L 479,296 L 479,297 L 478,297 L 477,297 L 477,298 L 477,297 L 476,297 L 475,297 L 475,298 L 475,297 L 474,297 L 474,296 L 473,296 L 473,297 L 473,296 L 473,297 L 473,296 L 473,297 L 472,297 L 472,296 L 471,296 L 470,296 L 470,295 L 469,295 L 468,295 L 468,294 L 467,294 L 466,294 L 466,293 L 465,293 L 464,292 L 463,292 L 463,291 L 462,291 L 461,291 L 460,291 L 460,290 L 459,290 L 458,290 L 458,291 L 458,290 L 458,291 L 457,291 L 456,291 L 456,292 L 455,292 L 456,292 L 455,292 L 455,293 L 455,292 L 454,292 L 453,292 L 453,291 L 452,291 L 451,291 L 450,291 L 450,290 L 450,289 L 450,288 L 450,287 L 451,287 L 451,286 L 451,285 L 451,286 L 450,286 L 450,285 L 450,286 L 450,285 L 450,286 L 450,285 L 450,286 L 450,285 L 450,286 L 450,285 L 449,285 L 448,285 L 447,285 L 446,285 L 445,285 L 445,284 L 445,285 L 444,285 L 443,285 L 442,285 L 442,286 L 442,285 L 442,286 L 441,286 L 440,286 L 439,286 L 439,287 L 438,287 L 438,288 L 437,288 L 436,288 L 437,288 L 437,289 L 436,289 L 436,290 L 436,289 L 436,290 L 435,290 L 436,290 L 435,290 L 434,290 L 435,290 L 434,290 L 434,291 L 433,291 L 433,292 L 432,292 L 432,291 L 432,292 L 432,291 L 432,292 L 432,291 L 432,292 L 431,292 L 430,292 L 430,293 L 429,293 L 429,294 L 428,294 L 427,294 L 427,295 L 427,294 L 426,294 L 426,295 L 425,295 L 425,296 L 425,295 L 425,296 L 424,296 L 424,297 L 423,297 L 422,297 L 421,297 L 421,298 L 420,298 L 420,299 L 419,299 L 419,298 L 419,299 L 419,298 L 420,297 L 420,296 L 421,296 L 421,295 L 421,294 L 420,294 L 420,293 L 420,292 L 420,291 L 420,290 L 421,290 L 420,290 L 420,289 L 421,289 L 420,289 L 421,289 L 420,288 L 420,287 L 421,287 L 421,286 L 422,286 L 421,286 L 421,285 L 420,285 L 420,284 L 419,284 L 420,284 L 419,284 L 419,283 L 418,283 L 417,283 L 417,282 L 417,281 L 417,280 L 417,279 L 417,278 L 416,278 L 417,278 L 417,277 L 417,276 L 418,276 L 418,275 L 417,275 L 417,274 L 417,273 L 418,273 L 418,272 L 419,272 L 420,272 L 420,271 L 419,271 L 418,271 L 418,272 L 417,272 L 416,272 L 416,271 L 416,270 L 416,269 L 416,268 L 416,267 L 417,267 L 418,267 L 419,267 L 419,266 L 418,266 L 417,266 L 416,266 L 416,267 L 416,266 L 416,265 L 417,265 L 416,265 L 416,264 L 417,264 L 417,263 L 416,263 L 417,263 L 417,262 L 416,262 L 417,262 L 416,262 L 416,261 L 417,261 L 418,261 L 418,260 L 417,260 L 417,259 L 416,259 L 416,258 L 415,258 L 416,258 L 416,257 L 415,257 L 415,256 L 415,255 L 415,254 L 415,253 L 416,253 L 417,253 L 417,252 L 418,252 L 417,252 L 416,252 L 415,252 L 415,251 L 416,251 L 416,250 L 415,250 L 416,250 L 416,249 L 416,248 L 417,248 L 418,249 L 418,248 L 418,249 L 418,248 L 418,249 L 418,248 L 419,248 L 418,248 L 417,248 L 417,247 L 416,247 L 415,247 L 414,247 L 414,246 L 413,246 L 413,245 L 412,245 L 412,244 L 412,243 L 413,243 L 413,242 L 414,242 L 414,241 L 414,240 L 415,240 L 415,239 L 416,239 L 416,238 L 416,237 L 417,237 L 417,236 L 418,236 L 418,235 L 417,235 L 418,235 L 418,234 L 419,234 L 420,234 L 420,233 L 421,233 L 422,233 L 422,232 L 423,232 L 423,231 L 423,230 L 424,230 L 424,229 L 425,229 L 424,229 L 424,228 L 425,228 L 425,227 L 426,227 L 426,228 L 426,229 L 427,229 L 427,230 L 428,230 L 428,231 L 428,232 L 429,232 L 428,232 L 428,233 L 428,234 L 428,235 L 429,235 L 429,236 L 430,236 L 431,236 L 431,237 L 432,237 L 433,237 L 434,237 L 434,238 L 435,238 L 436,238 L 437,238 L 437,237 L 438,237 L 438,236 L 439,236 L 439,235 L 440,235 L 440,234 L 441,234 L 441,235 L 441,234 L 442,234 L 443,234 L 443,233 L 444,233 L 444,234 L 445,234 L 446,234 L 447,234 L 447,233 L 448,232 L 448,231 L 448,232 L 449,232 L 449,231 L 450,231 L 450,230 L 450,229 L 451,229 L 451,228 L 451,227 L 452,227 L 452,226 L 453,226 L 453,225 L 452,225 L 452,224 L 453,224 L 453,223 L 452,223 L 451,222 L 451,221 L 450,221 L 450,220 L 450,219 L 451,219 L 451,218 L 452,218 L 452,217 L 453,217 L 454,216 L 455,216 L 455,215 L 456,215 L 456,216 L 457,216 L 457,217 L 458,217 L 458,218 L 458,217 L 459,217 L 460,217 L 461,217 L 462,217 L 463,217 L 463,218 L 463,219 L 464,219 L 464,220 L 465,220 L 466,220 L 466,219 L 467,219 L 468,219 L 469,219 L 469,218 L 470,218 L 470,217 L 471,217 L 471,216 L 472,216 L 473,216 L 474,216 L 475,216 L 475,215 L 476,215 L 477,215 L 478,215 L 478,214 L 479,214 L 479,213 L 480,213 L 480,212 L 481,212 L 481,211 L 482,211 L 483,210 L 483,209 L 484,209 L 484,208 L 485,208 L 486,208 L 487,208 L 487,207 L 487,208 L 488,208 L 488,207 L 488,208 L 488,207 L 488,208 L 488,209 L 489,209 L 490,209 L 489,209 L 490,209 L 491,209 L 491,210 L 492,210 L 492,211 L 492,212 L 492,213 L 493,213 L 494,213 L 494,214 L 494,215 L 494,216 L 493,216 L 494,216 L 493,216 L 493,217 L 493,218 L 494,218 L 495,218 L 496,218 L 496,217 L 497,217 L 498,217 L 499,217 L 499,216 L 499,215 L 500,215 L 500,214 L 500,213 L 500,212 L 501,212 L 501,213 L 502,213 L 503,213 L 503,212 L 504,212 L 505,212 L 505,211 L 506,211 L 505,211 L 505,210 L 505,209 L 506,209 L 507,209 L 508,209 L 508,208 L 508,207 L 509,207 L 510,207 L 510,206 L 511,206 L 512,206 L 512,205 L 513,205 "},"mg": {"name": "Minas Gerais","path": "M 478,375 L 478,376 L 477,376 L 477,377 L 476,377 L 477,377 L 476,377 L 476,378 L 476,377 L 476,378 L 475,378 L 474,378 L 474,379 L 475,379 L 474,379 L 474,380 L 473,380 L 473,381 L 473,382 L 473,383 L 473,384 L 472,384 L 473,384 L 472,384 L 472,385 L 472,386 L 471,386 L 471,387 L 471,388 L 471,387 L 471,388 L 472,388 L 472,389 L 471,389 L 470,389 L 469,389 L 469,390 L 468,390 L 467,390 L 467,391 L 466,391 L 465,391 L 465,392 L 464,392 L 463,392 L 463,393 L 462,393 L 461,393 L 462,393 L 461,393 L 461,394 L 460,394 L 460,393 L 459,393 L 458,393 L 457,393 L 457,392 L 457,393 L 457,392 L 457,393 L 456,393 L 455,393 L 455,394 L 454,394 L 454,393 L 454,394 L 453,394 L 453,393 L 453,394 L 453,393 L 453,394 L 453,393 L 452,393 L 452,394 L 452,393 L 452,394 L 452,393 L 452,394 L 451,394 L 452,394 L 451,394 L 451,393 L 451,394 L 450,394 L 449,394 L 448,394 L 448,395 L 447,395 L 446,395 L 446,396 L 446,395 L 446,396 L 445,396 L 444,396 L 445,396 L 444,396 L 443,396 L 442,396 L 441,396 L 442,396 L 441,396 L 441,397 L 440,397 L 439,397 L 439,398 L 438,398 L 438,397 L 438,398 L 437,398 L 436,398 L 436,399 L 435,399 L 434,399 L 433,399 L 432,399 L 432,400 L 431,400 L 431,401 L 430,401 L 429,401 L 429,402 L 428,401 L 429,401 L 428,401 L 429,401 L 428,401 L 427,401 L 427,402 L 426,402 L 426,401 L 425,401 L 425,402 L 425,401 L 425,400 L 425,401 L 424,401 L 424,400 L 424,401 L 425,401 L 425,402 L 424,402 L 423,402 L 423,403 L 424,403 L 424,402 L 424,403 L 424,402 L 424,403 L 424,402 L 424,403 L 424,404 L 424,403 L 424,404 L 423,404 L 424,404 L 423,404 L 422,404 L 422,405 L 422,404 L 421,404 L 421,405 L 420,405 L 419,405 L 418,405 L 418,404 L 418,405 L 418,404 L 418,405 L 417,405 L 416,405 L 415,405 L 415,404 L 415,403 L 416,403 L 415,403 L 414,403 L 414,402 L 415,402 L 415,401 L 414,401 L 415,401 L 414,401 L 415,401 L 414,401 L 414,400 L 415,400 L 414,400 L 413,400 L 413,399 L 412,399 L 411,398 L 411,397 L 410,397 L 410,396 L 411,396 L 410,396 L 411,396 L 411,395 L 412,395 L 412,394 L 411,394 L 410,394 L 410,393 L 410,394 L 411,393 L 412,393 L 412,392 L 411,392 L 411,391 L 411,390 L 411,389 L 412,389 L 412,388 L 413,388 L 413,387 L 413,386 L 413,385 L 412,385 L 412,384 L 412,385 L 412,384 L 411,384 L 410,384 L 409,384 L 408,384 L 407,384 L 406,384 L 406,383 L 406,382 L 405,382 L 405,381 L 406,381 L 405,381 L 405,382 L 405,381 L 405,380 L 404,380 L 404,379 L 404,378 L 403,377 L 403,376 L 403,375 L 404,375 L 404,374 L 405,374 L 405,373 L 404,373 L 404,372 L 403,372 L 403,371 L 402,371 L 402,370 L 402,369 L 403,369 L 403,368 L 403,367 L 402,367 L 402,366 L 401,366 L 400,365 L 400,364 L 399,364 L 399,365 L 398,365 L 397,365 L 397,364 L 396,364 L 395,364 L 395,365 L 395,364 L 394,364 L 394,365 L 394,366 L 393,366 L 393,365 L 393,366 L 392,366 L 392,367 L 391,367 L 391,366 L 390,366 L 390,365 L 389,365 L 389,366 L 389,367 L 388,367 L 388,366 L 387,366 L 386,366 L 386,367 L 385,367 L 385,366 L 384,366 L 384,367 L 383,367 L 382,367 L 381,367 L 381,368 L 380,368 L 380,369 L 380,370 L 380,371 L 380,370 L 379,370 L 379,369 L 379,368 L 379,367 L 378,367 L 377,367 L 377,368 L 377,369 L 376,369 L 375,369 L 375,368 L 375,367 L 374,367 L 374,366 L 374,365 L 375,365 L 375,364 L 374,364 L 373,364 L 372,364 L 372,363 L 371,363 L 370,363 L 370,364 L 369,364 L 368,364 L 367,364 L 366,364 L 365,364 L 364,364 L 364,363 L 363,363 L 362,363 L 361,363 L 360,363 L 360,362 L 359,362 L 358,362 L 357,362 L 356,362 L 356,363 L 355,363 L 355,364 L 354,364 L 353,364 L 352,364 L 352,365 L 351,365 L 351,366 L 351,365 L 350,365 L 351,365 L 351,364 L 350,364 L 351,364 L 351,363 L 350,363 L 350,362 L 350,361 L 350,360 L 351,360 L 351,359 L 352,359 L 352,358 L 351,358 L 351,357 L 352,357 L 353,358 L 353,357 L 352,357 L 352,356 L 353,356 L 353,355 L 354,355 L 354,354 L 354,353 L 355,353 L 356,353 L 357,353 L 357,352 L 358,352 L 358,351 L 358,350 L 358,349 L 359,349 L 359,348 L 360,348 L 360,347 L 360,346 L 361,346 L 362,346 L 363,346 L 364,346 L 364,345 L 365,345 L 366,345 L 367,345 L 367,346 L 368,346 L 368,345 L 369,345 L 370,345 L 369,345 L 370,345 L 370,344 L 371,344 L 372,344 L 372,345 L 373,345 L 373,346 L 373,345 L 374,345 L 375,345 L 375,344 L 375,343 L 376,343 L 376,342 L 377,342 L 377,343 L 378,343 L 378,342 L 379,342 L 379,341 L 380,341 L 381,341 L 381,342 L 382,342 L 383,342 L 384,342 L 384,341 L 385,341 L 385,342 L 386,342 L 387,342 L 388,342 L 389,342 L 389,341 L 389,342 L 390,342 L 390,343 L 391,343 L 392,343 L 393,343 L 393,344 L 394,343 L 395,343 L 395,342 L 395,343 L 396,343 L 396,342 L 397,342 L 397,341 L 397,342 L 397,341 L 398,341 L 398,340 L 399,340 L 399,339 L 399,340 L 399,339 L 399,340 L 400,340 L 400,339 L 401,339 L 401,338 L 402,338 L 402,337 L 402,336 L 402,335 L 401,335 L 401,334 L 402,334 L 401,334 L 402,334 L 401,334 L 402,334 L 402,333 L 402,332 L 403,332 L 402,332 L 403,332 L 402,332 L 403,332 L 403,331 L 402,331 L 402,330 L 401,330 L 400,330 L 399,330 L 399,329 L 399,328 L 399,327 L 399,328 L 400,328 L 400,327 L 401,327 L 400,327 L 401,327 L 400,327 L 401,327 L 401,326 L 402,326 L 401,326 L 401,325 L 401,326 L 401,325 L 402,325 L 402,326 L 402,325 L 401,325 L 402,325 L 401,325 L 402,325 L 403,325 L 402,325 L 403,325 L 402,325 L 402,324 L 403,324 L 404,324 L 403,324 L 404,324 L 404,323 L 404,324 L 404,323 L 405,323 L 404,323 L 405,323 L 404,323 L 404,322 L 404,321 L 403,321 L 404,321 L 404,320 L 403,321 L 403,320 L 404,320 L 403,320 L 403,319 L 403,318 L 403,319 L 403,318 L 402,318 L 402,317 L 402,318 L 402,317 L 401,317 L 400,317 L 400,316 L 400,315 L 400,314 L 401,314 L 401,313 L 402,313 L 402,312 L 402,311 L 401,311 L 402,311 L 402,310 L 402,309 L 403,309 L 404,309 L 403,309 L 404,309 L 403,309 L 404,309 L 404,308 L 405,308 L 406,308 L 407,308 L 408,307 L 409,307 L 409,306 L 409,305 L 408,305 L 408,304 L 408,303 L 407,303 L 407,302 L 407,301 L 408,301 L 408,300 L 409,300 L 409,299 L 408,299 L 408,298 L 408,299 L 407,299 L 407,298 L 408,297 L 408,296 L 407,296 L 408,296 L 408,295 L 409,295 L 410,295 L 410,296 L 411,296 L 412,296 L 413,296 L 413,295 L 413,294 L 413,293 L 413,292 L 412,292 L 413,292 L 413,291 L 414,291 L 414,292 L 415,292 L 416,292 L 416,293 L 416,294 L 417,294 L 418,294 L 419,294 L 420,294 L 420,293 L 420,294 L 421,294 L 421,295 L 421,296 L 420,296 L 420,297 L 419,298 L 419,299 L 419,298 L 419,299 L 420,299 L 420,298 L 421,298 L 421,297 L 422,297 L 423,297 L 424,297 L 424,296 L 425,296 L 425,295 L 425,296 L 425,295 L 426,295 L 426,294 L 427,294 L 427,295 L 427,294 L 428,294 L 429,294 L 429,293 L 430,293 L 430,292 L 431,292 L 432,292 L 432,291 L 432,292 L 432,291 L 432,292 L 432,291 L 432,292 L 433,292 L 433,291 L 434,291 L 434,290 L 435,290 L 434,290 L 435,290 L 436,290 L 435,290 L 436,290 L 436,289 L 436,290 L 436,289 L 437,289 L 437,288 L 436,288 L 437,288 L 438,288 L 438,287 L 439,287 L 439,286 L 440,286 L 441,286 L 442,286 L 442,285 L 442,286 L 442,285 L 443,285 L 444,285 L 445,285 L 445,284 L 445,285 L 446,285 L 447,285 L 448,285 L 449,285 L 450,285 L 450,286 L 450,285 L 450,286 L 450,285 L 450,286 L 450,285 L 450,286 L 450,285 L 450,286 L 451,286 L 451,285 L 451,286 L 451,287 L 450,287 L 450,288 L 450,289 L 450,290 L 450,291 L 451,291 L 452,291 L 453,291 L 453,292 L 454,292 L 455,292 L 455,293 L 455,292 L 456,292 L 455,292 L 456,292 L 456,291 L 457,291 L 458,291 L 458,290 L 458,291 L 458,290 L 459,290 L 460,290 L 460,291 L 461,291 L 462,291 L 463,291 L 463,292 L 464,292 L 465,293 L 466,293 L 466,294 L 467,294 L 468,294 L 468,295 L 469,295 L 470,295 L 470,296 L 471,296 L 472,296 L 472,297 L 473,297 L 473,296 L 473,297 L 473,296 L 473,297 L 473,296 L 474,296 L 474,297 L 475,297 L 475,298 L 475,297 L 476,297 L 477,297 L 477,298 L 477,297 L 478,297 L 479,297 L 479,296 L 479,297 L 480,298 L 481,298 L 483,300 L 483,301 L 484,301 L 484,302 L 485,302 L 485,303 L 485,304 L 485,305 L 486,305 L 487,305 L 487,306 L 488,306 L 488,305 L 489,305 L 490,305 L 490,304 L 491,304 L 491,305 L 492,305 L 492,304 L 493,304 L 493,305 L 494,305 L 493,305 L 494,305 L 494,304 L 494,305 L 495,305 L 495,306 L 496,306 L 497,306 L 498,306 L 499,306 L 499,307 L 499,306 L 499,307 L 499,306 L 500,306 L 501,306 L 501,307 L 501,308 L 502,308 L 503,308 L 503,309 L 504,309 L 505,309 L 505,310 L 506,310 L 506,311 L 505,311 L 505,312 L 505,313 L 504,313 L 504,314 L 504,313 L 504,314 L 503,314 L 503,315 L 502,315 L 502,316 L 501,316 L 501,317 L 502,317 L 501,317 L 500,317 L 500,318 L 499,318 L 499,319 L 500,319 L 499,319 L 499,320 L 500,320 L 500,321 L 500,322 L 500,321 L 499,321 L 499,322 L 499,321 L 498,321 L 497,321 L 497,322 L 496,322 L 496,323 L 496,324 L 496,325 L 496,326 L 496,327 L 495,327 L 495,328 L 496,328 L 495,328 L 495,329 L 496,329 L 497,329 L 497,330 L 497,331 L 498,331 L 498,332 L 498,331 L 499,331 L 499,332 L 499,331 L 499,332 L 500,332 L 500,333 L 501,333 L 501,334 L 501,335 L 500,336 L 501,336 L 501,337 L 501,336 L 500,336 L 499,336 L 498,336 L 497,336 L 497,335 L 496,335 L 496,336 L 495,336 L 495,337 L 494,337 L 493,337 L 493,336 L 493,337 L 493,336 L 492,336 L 492,337 L 492,336 L 491,336 L 491,337 L 493,338 L 493,339 L 492,339 L 492,338 L 492,339 L 491,339 L 491,338 L 491,339 L 490,339 L 489,339 L 489,340 L 488,340 L 489,340 L 488,340 L 489,340 L 488,340 L 488,341 L 488,342 L 488,343 L 487,343 L 489,343 L 490,343 L 490,344 L 489,344 L 489,345 L 489,346 L 490,346 L 491,346 L 491,347 L 491,348 L 490,348 L 490,349 L 490,348 L 489,348 L 489,349 L 488,349 L 488,348 L 487,348 L 486,348 L 487,348 L 486,348 L 486,349 L 487,349 L 486,349 L 487,349 L 488,349 L 488,350 L 489,350 L 490,350 L 489,351 L 489,352 L 490,352 L 490,353 L 491,353 L 491,354 L 491,355 L 491,356 L 490,356 L 490,357 L 491,357 L 490,357 L 490,358 L 489,358 L 489,357 L 489,358 L 489,359 L 488,359 L 488,360 L 487,360 L 487,361 L 487,362 L 488,362 L 487,362 L 487,363 L 487,364 L 486,364 L 485,364 L 486,365 L 485,365 L 486,365 L 485,365 L 485,366 L 485,367 L 484,367 L 484,368 L 483,368 L 482,368 L 481,368 L 480,368 L 479,368 L 479,369 L 478,369 L 478,370 L 479,370 L 479,371 L 478,371 L 478,372 L 479,372 L 478,372 L 478,373 L 479,374 L 479,373 L 479,374 L 478,374 L 479,374 L 478,374 L 478,375 "},"es": {"name": "Espírito Santo","path": "M 478,375 L 478,374 L 479,374 L 478,374 L 479,374 L 479,373 L 479,374 L 478,373 L 478,372 L 479,372 L 478,372 L 478,371 L 479,371 L 479,370 L 478,370 L 478,369 L 479,369 L 479,368 L 480,368 L 481,368 L 482,368 L 483,368 L 484,368 L 484,367 L 485,367 L 485,366 L 485,365 L 486,365 L 485,365 L 486,365 L 485,364 L 486,364 L 487,364 L 487,363 L 487,362 L 488,362 L 487,362 L 487,361 L 487,360 L 488,360 L 488,359 L 489,359 L 489,358 L 489,357 L 489,358 L 490,358 L 490,357 L 491,357 L 490,357 L 490,356 L 491,356 L 491,355 L 491,354 L 491,353 L 490,353 L 490,352 L 489,352 L 489,351 L 490,350 L 489,350 L 488,350 L 488,349 L 487,349 L 486,349 L 487,349 L 486,349 L 486,348 L 487,348 L 486,348 L 487,348 L 488,348 L 488,349 L 489,349 L 489,348 L 490,348 L 490,349 L 490,348 L 491,348 L 491,347 L 491,346 L 490,346 L 489,346 L 489,345 L 489,344 L 490,344 L 490,343 L 489,343 L 487,343 L 488,343 L 488,342 L 488,341 L 488,340 L 489,340 L 488,340 L 489,340 L 488,340 L 489,340 L 489,339 L 490,339 L 491,339 L 491,338 L 491,339 L 492,339 L 492,338 L 492,339 L 493,339 L 493,338 L 491,337 L 491,336 L 492,336 L 492,337 L 492,336 L 493,336 L 493,337 L 493,336 L 493,337 L 494,337 L 495,337 L 495,336 L 496,336 L 496,335 L 497,335 L 497,336 L 498,336 L 499,336 L 500,336 L 501,336 L 501,337 L 502,337 L 502,338 L 503,338 L 505,339 L 506,340 L 507,340 L 508,341 L 508,342 L 508,343 L 508,344 L 507,345 L 508,345 L 507,346 L 507,347 L 507,348 L 507,349 L 507,350 L 507,351 L 508,351 L 508,352 L 508,353 L 508,354 L 508,355 L 508,356 L 508,357 L 507,357 L 507,358 L 507,359 L 506,359 L 506,360 L 505,360 L 505,361 L 504,361 L 503,362 L 503,363 L 502,363 L 503,363 L 502,363 L 502,364 L 502,365 L 501,365 L 501,366 L 501,367 L 501,368 L 501,369 L 500,369 L 500,368 L 500,369 L 500,370 L 499,370 L 499,371 L 499,372 L 498,372 L 498,373 L 498,374 L 498,373 L 498,374 L 498,373 L 498,374 L 497,373 L 498,373 L 497,373 L 497,374 L 497,373 L 497,374 L 497,375 L 496,375 L 497,375 L 496,375 L 496,376 L 495,376 L 494,376 L 494,377 L 494,376 L 493,376 L 493,377 L 493,378 L 492,378 L 493,378 L 493,379 L 492,379 L 492,380 L 492,381 L 491,381 L 491,382 L 490,382 L 490,383 L 490,382 L 490,383 L 490,382 L 489,382 L 488,382 L 487,382 L 486,382 L 485,382 L 485,381 L 485,382 L 485,381 L 484,381 L 484,382 L 484,381 L 483,381 L 482,381 L 481,381 L 481,380 L 480,380 L 480,379 L 480,378 L 480,377 L 479,377 L 479,376 L 480,376 L 479,376 L 478,376 L 478,375 L 478,376 L 478,375 L 478,376 L 478,375 "},"rj": {"name": "Rio de Janeiro","path": "M 478,375 L 478,376 L 478,375 L 478,376 L 478,375 L 478,376 L 479,376 L 480,376 L 479,376 L 479,377 L 480,377 L 480,378 L 480,379 L 480,380 L 481,380 L 481,381 L 482,381 L 483,381 L 484,381 L 484,382 L 484,381 L 485,381 L 485,382 L 485,381 L 485,382 L 486,382 L 487,382 L 488,382 L 489,382 L 490,382 L 490,383 L 490,382 L 490,383 L 490,384 L 490,385 L 489,385 L 489,386 L 489,387 L 490,387 L 490,388 L 490,389 L 490,390 L 490,391 L 490,392 L 490,393 L 489,393 L 488,394 L 487,394 L 486,395 L 485,395 L 484,395 L 483,395 L 483,396 L 482,396 L 481,396 L 480,396 L 480,397 L 479,397 L 479,398 L 478,398 L 478,399 L 477,399 L 477,400 L 476,400 L 476,401 L 476,402 L 476,403 L 477,403 L 478,403 L 477,403 L 478,403 L 477,403 L 477,404 L 476,404 L 476,405 L 476,404 L 476,405 L 476,404 L 476,405 L 475,405 L 475,406 L 476,406 L 475,406 L 474,406 L 473,406 L 472,406 L 472,405 L 471,405 L 470,405 L 469,405 L 469,406 L 469,405 L 468,405 L 467,405 L 467,406 L 466,406 L 465,406 L 464,406 L 463,406 L 462,406 L 461,406 L 460,406 L 460,405 L 460,406 L 460,405 L 461,405 L 460,405 L 461,405 L 460,405 L 461,405 L 460,405 L 460,404 L 460,405 L 460,404 L 461,404 L 460,404 L 461,404 L 461,403 L 462,403 L 462,402 L 461,402 L 460,402 L 460,403 L 459,403 L 458,403 L 458,404 L 459,404 L 459,405 L 460,405 L 460,406 L 459,406 L 458,406 L 458,407 L 457,407 L 456,407 L 455,407 L 456,407 L 455,407 L 454,407 L 453,407 L 452,407 L 451,407 L 450,407 L 449,407 L 449,408 L 448,408 L 448,407 L 449,407 L 450,407 L 449,407 L 450,407 L 451,407 L 452,407 L 453,407 L 454,407 L 453,407 L 453,406 L 452,406 L 451,405 L 450,405 L 449,405 L 448,405 L 448,406 L 447,406 L 448,406 L 447,406 L 448,406 L 447,406 L 447,407 L 446,407 L 445,407 L 445,406 L 444,406 L 444,407 L 444,406 L 444,407 L 443,407 L 443,406 L 444,406 L 443,406 L 444,406 L 443,406 L 444,406 L 444,405 L 443,405 L 443,406 L 442,406 L 442,407 L 442,406 L 441,406 L 441,407 L 440,407 L 439,407 L 439,408 L 438,408 L 439,408 L 438,408 L 438,409 L 438,410 L 439,409 L 440,409 L 439,409 L 439,410 L 439,409 L 439,410 L 438,410 L 439,410 L 440,410 L 439,410 L 439,411 L 439,410 L 439,411 L 439,410 L 440,410 L 441,410 L 441,411 L 441,410 L 441,411 L 440,411 L 439,411 L 438,411 L 437,411 L 437,410 L 436,410 L 436,409 L 437,409 L 437,408 L 437,407 L 437,406 L 438,406 L 438,405 L 439,405 L 440,405 L 441,405 L 441,404 L 442,404 L 441,404 L 441,405 L 442,405 L 441,405 L 442,405 L 442,404 L 443,404 L 444,404 L 445,404 L 445,403 L 445,402 L 446,402 L 445,401 L 446,401 L 445,401 L 444,401 L 443,401 L 443,400 L 443,401 L 443,400 L 443,401 L 442,401 L 443,401 L 442,401 L 441,401 L 440,401 L 439,401 L 439,400 L 438,400 L 438,399 L 438,398 L 437,398 L 438,398 L 438,397 L 438,398 L 439,398 L 439,397 L 440,397 L 441,397 L 441,396 L 442,396 L 441,396 L 442,396 L 443,396 L 444,396 L 445,396 L 444,396 L 445,396 L 446,396 L 446,395 L 446,396 L 446,395 L 447,395 L 448,395 L 448,394 L 449,394 L 450,394 L 451,394 L 451,393 L 451,394 L 452,394 L 451,394 L 452,394 L 452,393 L 452,394 L 452,393 L 452,394 L 452,393 L 453,393 L 453,394 L 453,393 L 453,394 L 453,393 L 453,394 L 454,394 L 454,393 L 454,394 L 455,394 L 455,393 L 456,393 L 457,393 L 457,392 L 457,393 L 457,392 L 457,393 L 458,393 L 459,393 L 460,393 L 460,394 L 461,394 L 461,393 L 462,393 L 461,393 L 462,393 L 463,393 L 463,392 L 464,392 L 465,392 L 465,391 L 466,391 L 467,391 L 467,390 L 468,390 L 469,390 L 469,389 L 470,389 L 471,389 L 472,389 L 472,388 L 471,388 L 471,387 L 471,388 L 471,387 L 471,386 L 472,386 L 472,385 L 472,384 L 473,384 L 472,384 L 473,384 L 473,383 L 473,382 L 473,381 L 473,380 L 474,380 L 474,379 L 475,379 L 474,379 L 474,378 L 475,378 L 476,378 L 476,377 L 476,378 L 476,377 L 477,377 L 476,377 L 477,377 L 477,376 L 478,376 L 478,375 "},"sp": {"name": "São Paulo","path": "M 416,420 L 416,421 L 416,420 L 416,421 L 416,420 L 415,420 L 415,421 L 415,420 L 415,421 L 415,420 L 414,420 L 414,421 L 413,421 L 412,421 L 412,422 L 411,422 L 410,422 L 410,423 L 409,423 L 408,423 L 408,424 L 407,424 L 407,425 L 406,425 L 406,426 L 405,426 L 405,427 L 404,427 L 404,428 L 403,428 L 403,429 L 402,429 L 401,429 L 401,430 L 400,430 L 399,430 L 399,431 L 398,431 L 398,432 L 397,432 L 396,432 L 396,433 L 395,433 L 395,434 L 394,434 L 394,435 L 394,436 L 394,437 L 394,436 L 393,436 L 393,437 L 392,437 L 392,438 L 391,438 L 391,439 L 391,438 L 392,438 L 392,437 L 392,438 L 391,438 L 390,437 L 390,436 L 390,435 L 389,435 L 390,435 L 389,435 L 390,435 L 389,435 L 390,435 L 389,435 L 389,434 L 389,435 L 388,435 L 388,434 L 387,434 L 386,434 L 386,435 L 385,435 L 385,436 L 385,435 L 384,435 L 384,434 L 385,434 L 385,433 L 385,432 L 385,433 L 385,432 L 385,431 L 386,431 L 385,431 L 385,430 L 385,431 L 385,430 L 384,430 L 383,430 L 382,430 L 381,430 L 381,429 L 381,430 L 381,429 L 381,430 L 380,430 L 379,430 L 379,429 L 378,429 L 379,429 L 378,429 L 378,430 L 377,430 L 376,430 L 375,430 L 374,430 L 374,429 L 374,428 L 375,428 L 374,428 L 375,428 L 375,427 L 374,427 L 375,427 L 375,426 L 375,425 L 376,425 L 375,425 L 375,424 L 374,424 L 374,423 L 374,422 L 373,422 L 374,422 L 373,422 L 373,421 L 373,422 L 373,421 L 372,421 L 372,420 L 371,420 L 372,420 L 371,420 L 371,419 L 371,420 L 371,419 L 372,419 L 371,419 L 370,419 L 370,418 L 371,418 L 371,417 L 371,416 L 370,416 L 370,415 L 370,414 L 370,413 L 370,412 L 371,412 L 371,413 L 371,412 L 370,412 L 371,412 L 370,412 L 370,411 L 370,410 L 369,410 L 369,409 L 369,408 L 369,409 L 369,408 L 368,408 L 367,408 L 367,407 L 366,407 L 366,406 L 365,406 L 365,405 L 364,405 L 363,405 L 363,406 L 363,405 L 362,406 L 361,406 L 361,405 L 360,405 L 360,406 L 360,405 L 359,405 L 359,406 L 358,406 L 358,405 L 358,406 L 357,406 L 357,405 L 356,405 L 355,405 L 355,406 L 354,406 L 353,406 L 353,405 L 354,405 L 353,405 L 353,404 L 352,404 L 352,403 L 352,404 L 351,404 L 351,403 L 350,403 L 349,403 L 348,403 L 348,402 L 347,402 L 346,402 L 345,402 L 344,402 L 343,402 L 342,402 L 341,402 L 341,401 L 340,401 L 339,401 L 338,401 L 338,400 L 337,400 L 336,400 L 335,400 L 335,401 L 334,402 L 334,401 L 333,401 L 332,401 L 331,401 L 330,401 L 329,401 L 329,400 L 328,400 L 328,401 L 327,401 L 326,401 L 325,401 L 324,400 L 323,400 L 323,401 L 322,401 L 322,402 L 322,401 L 321,401 L 322,401 L 322,400 L 323,400 L 323,399 L 324,399 L 325,399 L 325,398 L 326,398 L 326,397 L 327,397 L 328,397 L 328,396 L 329,396 L 330,396 L 330,395 L 331,395 L 331,394 L 332,394 L 332,393 L 332,392 L 333,392 L 333,391 L 334,391 L 334,390 L 334,389 L 335,389 L 336,389 L 336,388 L 336,387 L 335,387 L 335,386 L 336,386 L 337,386 L 337,385 L 338,385 L 338,384 L 339,384 L 339,383 L 339,382 L 339,381 L 339,380 L 340,380 L 340,379 L 340,378 L 341,378 L 342,378 L 342,377 L 342,376 L 342,375 L 342,374 L 343,373 L 344,373 L 344,372 L 344,371 L 345,371 L 345,370 L 346,370 L 346,369 L 347,369 L 348,369 L 349,369 L 349,368 L 350,368 L 350,367 L 350,366 L 351,366 L 351,365 L 352,365 L 352,364 L 353,364 L 354,364 L 355,364 L 355,363 L 356,363 L 356,362 L 357,362 L 358,362 L 359,362 L 360,362 L 360,363 L 361,363 L 362,363 L 363,363 L 364,363 L 364,364 L 365,364 L 366,364 L 367,364 L 368,364 L 369,364 L 370,364 L 370,363 L 371,363 L 372,363 L 372,364 L 373,364 L 374,364 L 375,364 L 375,365 L 374,365 L 374,366 L 374,367 L 375,367 L 375,368 L 375,369 L 376,369 L 377,369 L 377,368 L 377,367 L 378,367 L 379,367 L 379,368 L 379,369 L 379,370 L 380,370 L 380,371 L 380,370 L 380,369 L 380,368 L 381,368 L 381,367 L 382,367 L 383,367 L 384,367 L 384,366 L 385,366 L 385,367 L 386,367 L 386,366 L 387,366 L 388,366 L 388,367 L 389,367 L 389,366 L 389,365 L 390,365 L 390,366 L 391,366 L 391,367 L 392,367 L 392,366 L 393,366 L 393,365 L 393,366 L 394,366 L 394,365 L 394,364 L 395,364 L 395,365 L 395,364 L 396,364 L 397,364 L 397,365 L 398,365 L 399,365 L 399,364 L 400,364 L 400,365 L 401,366 L 402,366 L 402,367 L 403,367 L 403,368 L 403,369 L 402,369 L 402,370 L 402,371 L 403,371 L 403,372 L 404,372 L 404,373 L 405,373 L 405,374 L 404,374 L 404,375 L 403,375 L 403,376 L 403,377 L 404,378 L 404,379 L 404,380 L 405,380 L 405,381 L 405,382 L 405,381 L 406,381 L 405,381 L 405,382 L 406,382 L 406,383 L 406,384 L 407,384 L 408,384 L 409,384 L 410,384 L 411,384 L 412,384 L 412,385 L 412,384 L 412,385 L 413,385 L 413,386 L 413,387 L 413,388 L 412,388 L 412,389 L 411,389 L 411,390 L 411,391 L 411,392 L 412,392 L 412,393 L 411,393 L 410,394 L 410,393 L 410,394 L 411,394 L 412,394 L 412,395 L 411,395 L 411,396 L 410,396 L 411,396 L 410,396 L 410,397 L 411,397 L 411,398 L 412,399 L 413,399 L 413,400 L 414,400 L 415,400 L 414,400 L 414,401 L 415,401 L 414,401 L 415,401 L 414,401 L 415,401 L 415,402 L 414,402 L 414,403 L 415,403 L 416,403 L 415,403 L 415,404 L 415,405 L 416,405 L 417,405 L 418,405 L 418,404 L 418,405 L 418,404 L 418,405 L 419,405 L 420,405 L 421,405 L 421,404 L 422,404 L 422,405 L 422,404 L 423,404 L 424,404 L 423,404 L 424,404 L 424,403 L 424,404 L 424,403 L 424,402 L 424,403 L 424,402 L 424,403 L 424,402 L 424,403 L 423,403 L 423,402 L 424,402 L 425,402 L 425,401 L 424,401 L 424,400 L 424,401 L 425,401 L 425,400 L 425,401 L 425,402 L 425,401 L 426,401 L 426,402 L 427,402 L 427,401 L 428,401 L 429,401 L 428,401 L 429,401 L 428,401 L 429,402 L 429,401 L 430,401 L 431,401 L 431,400 L 432,400 L 432,399 L 433,399 L 434,399 L 435,399 L 436,399 L 436,398 L 437,398 L 438,398 L 438,399 L 438,400 L 439,400 L 439,401 L 440,401 L 441,401 L 442,401 L 443,401 L 442,401 L 443,401 L 443,400 L 443,401 L 443,400 L 443,401 L 444,401 L 445,401 L 446,401 L 445,401 L 446,402 L 445,402 L 445,403 L 445,404 L 444,404 L 443,404 L 442,404 L 442,405 L 441,405 L 442,405 L 441,405 L 441,404 L 442,404 L 441,404 L 441,405 L 440,405 L 439,405 L 438,405 L 438,406 L 437,406 L 437,407 L 437,408 L 437,409 L 436,409 L 436,410 L 437,410 L 437,411 L 438,411 L 438,412 L 438,411 L 438,412 L 437,412 L 436,412 L 436,411 L 436,412 L 436,411 L 435,411 L 435,412 L 434,412 L 435,412 L 434,412 L 433,412 L 433,413 L 434,413 L 433,413 L 434,413 L 433,413 L 433,414 L 433,413 L 433,414 L 432,414 L 432,413 L 432,414 L 432,413 L 432,414 L 432,413 L 432,414 L 431,414 L 431,415 L 430,415 L 430,414 L 430,415 L 429,415 L 428,415 L 428,416 L 429,416 L 429,417 L 428,417 L 429,417 L 429,418 L 428,418 L 427,418 L 428,418 L 427,418 L 426,418 L 427,418 L 427,417 L 426,417 L 426,418 L 426,417 L 427,417 L 426,417 L 426,418 L 426,417 L 425,417 L 426,417 L 425,417 L 426,417 L 425,417 L 424,417 L 423,417 L 422,417 L 421,417 L 420,417 L 420,418 L 420,417 L 420,418 L 419,418 L 418,418 L 419,418 L 418,418 L 418,419 L 418,420 L 417,420 L 416,420 "},"pr": {"name": "Paraná","path": "M 336,400 L 337,400 L 338,400 L 338,401 L 339,401 L 340,401 L 341,401 L 341,402 L 342,402 L 343,402 L 344,402 L 345,402 L 346,402 L 347,402 L 348,402 L 348,403 L 349,403 L 350,403 L 351,403 L 351,404 L 352,404 L 352,403 L 352,404 L 353,404 L 353,405 L 354,405 L 353,405 L 353,406 L 354,406 L 355,406 L 355,405 L 356,405 L 357,405 L 357,406 L 358,406 L 358,405 L 358,406 L 359,406 L 359,405 L 360,405 L 360,406 L 360,405 L 361,405 L 361,406 L 362,406 L 363,405 L 363,406 L 363,405 L 364,405 L 365,405 L 365,406 L 366,406 L 366,407 L 367,407 L 367,408 L 368,408 L 369,408 L 369,409 L 369,408 L 369,409 L 369,410 L 370,410 L 370,411 L 370,412 L 371,412 L 370,412 L 371,412 L 371,413 L 371,412 L 370,412 L 370,413 L 370,414 L 370,415 L 370,416 L 371,416 L 371,417 L 371,418 L 370,418 L 370,419 L 371,419 L 372,419 L 371,419 L 371,420 L 371,419 L 371,420 L 372,420 L 371,420 L 372,420 L 372,421 L 373,421 L 373,422 L 373,421 L 373,422 L 374,422 L 373,422 L 374,422 L 374,423 L 374,424 L 375,424 L 375,425 L 376,425 L 375,425 L 375,426 L 375,427 L 374,427 L 375,427 L 375,428 L 374,428 L 375,428 L 374,428 L 374,429 L 374,430 L 375,430 L 376,430 L 377,430 L 378,430 L 378,429 L 379,429 L 378,429 L 379,429 L 379,430 L 380,430 L 381,430 L 381,429 L 381,430 L 381,429 L 381,430 L 382,430 L 383,430 L 384,430 L 385,430 L 385,431 L 385,430 L 385,431 L 386,431 L 385,431 L 385,432 L 385,433 L 385,432 L 385,433 L 385,434 L 384,434 L 384,435 L 385,435 L 385,436 L 385,435 L 386,435 L 386,434 L 387,434 L 388,434 L 388,435 L 389,435 L 389,434 L 389,435 L 390,435 L 389,435 L 390,435 L 389,435 L 390,435 L 389,435 L 390,435 L 390,436 L 390,437 L 391,438 L 392,438 L 392,437 L 392,438 L 391,438 L 391,439 L 391,438 L 391,439 L 390,439 L 390,440 L 390,441 L 389,441 L 388,441 L 389,441 L 388,442 L 387,442 L 387,443 L 386,443 L 386,444 L 386,445 L 385,445 L 385,446 L 385,447 L 384,447 L 384,448 L 384,447 L 383,447 L 383,448 L 381,448 L 380,448 L 379,448 L 378,448 L 379,448 L 378,448 L 377,448 L 378,448 L 377,448 L 376,448 L 375,448 L 375,449 L 375,448 L 375,449 L 374,449 L 375,449 L 374,449 L 375,449 L 374,449 L 375,449 L 375,450 L 374,450 L 373,450 L 372,450 L 372,451 L 372,450 L 372,451 L 371,451 L 370,451 L 371,451 L 370,451 L 369,451 L 369,450 L 368,450 L 368,449 L 368,450 L 368,449 L 368,450 L 367,450 L 367,449 L 366,449 L 367,449 L 366,449 L 366,448 L 366,449 L 366,448 L 366,449 L 366,448 L 365,448 L 366,448 L 365,448 L 365,449 L 365,448 L 364,448 L 365,448 L 365,449 L 364,449 L 364,448 L 364,449 L 364,448 L 363,448 L 363,449 L 363,448 L 362,448 L 362,449 L 363,449 L 362,449 L 361,449 L 360,449 L 360,450 L 360,449 L 359,449 L 358,449 L 359,449 L 358,449 L 358,448 L 358,449 L 358,448 L 358,449 L 358,448 L 357,448 L 357,449 L 357,448 L 356,448 L 356,449 L 357,449 L 356,449 L 356,450 L 355,450 L 355,451 L 354,451 L 355,451 L 355,452 L 354,452 L 354,451 L 353,451 L 353,452 L 353,451 L 353,452 L 352,452 L 352,451 L 352,452 L 351,452 L 351,451 L 350,451 L 350,452 L 349,452 L 348,452 L 348,453 L 347,453 L 347,454 L 347,455 L 347,454 L 347,455 L 347,456 L 348,456 L 347,456 L 347,457 L 348,457 L 347,457 L 348,457 L 347,457 L 346,457 L 345,457 L 345,458 L 345,457 L 344,457 L 344,456 L 343,456 L 342,456 L 341,456 L 340,456 L 339,456 L 338,456 L 337,456 L 336,456 L 336,455 L 335,455 L 336,455 L 335,455 L 334,455 L 334,454 L 334,455 L 333,455 L 333,454 L 333,455 L 333,454 L 332,454 L 331,454 L 330,454 L 329,454 L 328,454 L 328,453 L 327,453 L 326,453 L 325,453 L 324,453 L 323,453 L 322,453 L 322,454 L 322,453 L 322,454 L 322,453 L 321,453 L 320,453 L 320,452 L 319,452 L 318,452 L 318,451 L 318,452 L 317,452 L 316,452 L 315,452 L 314,452 L 314,451 L 314,450 L 313,450 L 313,449 L 312,449 L 312,448 L 311,448 L 311,447 L 312,447 L 311,447 L 312,447 L 311,447 L 312,447 L 311,447 L 311,446 L 311,445 L 311,446 L 312,446 L 312,445 L 311,445 L 311,444 L 311,445 L 311,444 L 311,443 L 310,443 L 311,443 L 310,443 L 309,443 L 309,442 L 308,442 L 308,443 L 307,443 L 307,442 L 308,442 L 308,441 L 307,441 L 307,442 L 306,442 L 307,442 L 306,442 L 306,443 L 306,442 L 305,442 L 304,442 L 304,443 L 304,442 L 304,443 L 303,443 L 303,444 L 303,443 L 302,443 L 302,442 L 301,442 L 301,441 L 300,441 L 300,440 L 301,440 L 301,439 L 302,439 L 302,438 L 302,437 L 303,437 L 303,436 L 303,435 L 303,434 L 303,433 L 303,432 L 304,431 L 304,430 L 304,429 L 305,429 L 305,428 L 304,428 L 304,427 L 305,427 L 305,426 L 305,425 L 305,424 L 304,423 L 305,423 L 304,423 L 304,422 L 305,422 L 305,421 L 306,421 L 306,420 L 307,420 L 308,420 L 308,419 L 308,418 L 308,417 L 308,416 L 309,415 L 309,414 L 309,413 L 310,413 L 310,412 L 311,412 L 312,412 L 312,411 L 313,411 L 313,410 L 313,409 L 314,409 L 314,408 L 314,407 L 314,406 L 315,406 L 315,405 L 316,405 L 316,404 L 317,404 L 318,404 L 318,403 L 319,403 L 320,403 L 320,402 L 321,402 L 321,401 L 322,401 L 322,402 L 322,401 L 323,401 L 323,400 L 324,400 L 325,401 L 326,401 L 327,401 L 328,401 L 328,400 L 329,400 L 329,401 L 330,401 L 331,401 L 332,401 L 333,401 L 334,401 L 334,402 L 335,401 L 335,400 L 336,400 "},"sc": {"name": "Santa Catarina","path": "M 384,448 L 384,449 L 384,450 L 385,450 L 385,451 L 386,451 L 385,451 L 386,451 L 385,451 L 385,452 L 385,453 L 384,453 L 384,454 L 384,455 L 383,456 L 383,457 L 383,458 L 383,459 L 384,459 L 384,460 L 384,461 L 384,462 L 385,462 L 384,462 L 385,462 L 384,462 L 384,463 L 384,464 L 385,464 L 386,464 L 386,465 L 385,465 L 386,465 L 385,465 L 384,465 L 384,466 L 385,466 L 385,467 L 385,468 L 384,468 L 385,468 L 385,467 L 386,467 L 387,467 L 387,468 L 387,469 L 387,470 L 386,470 L 386,471 L 386,472 L 385,472 L 386,472 L 386,473 L 385,473 L 385,474 L 384,474 L 385,474 L 384,474 L 384,475 L 384,476 L 384,477 L 384,478 L 383,478 L 383,479 L 384,479 L 383,479 L 383,480 L 383,481 L 382,481 L 382,482 L 382,483 L 382,484 L 381,484 L 380,485 L 379,485 L 378,486 L 377,486 L 377,487 L 376,487 L 375,487 L 375,488 L 374,488 L 374,489 L 373,489 L 373,490 L 372,490 L 372,491 L 371,491 L 371,492 L 370,492 L 370,493 L 369,493 L 369,494 L 368,494 L 367,494 L 367,493 L 366,493 L 365,493 L 364,493 L 363,493 L 363,494 L 364,494 L 364,495 L 364,494 L 363,494 L 363,493 L 362,493 L 363,493 L 362,493 L 363,493 L 362,493 L 363,493 L 363,492 L 363,493 L 364,493 L 363,493 L 363,492 L 363,493 L 363,492 L 364,492 L 363,492 L 364,492 L 363,492 L 364,492 L 364,493 L 364,492 L 365,492 L 364,492 L 365,492 L 365,491 L 365,492 L 365,491 L 365,492 L 365,491 L 365,490 L 366,490 L 366,489 L 365,489 L 365,488 L 366,488 L 365,488 L 365,487 L 365,486 L 366,486 L 367,486 L 367,485 L 367,486 L 367,485 L 367,484 L 368,484 L 368,485 L 368,484 L 368,485 L 369,485 L 369,484 L 368,484 L 368,483 L 368,482 L 368,483 L 367,483 L 367,482 L 367,483 L 366,483 L 367,483 L 367,482 L 366,482 L 367,482 L 366,482 L 366,483 L 365,483 L 365,482 L 364,482 L 364,483 L 364,482 L 363,482 L 363,483 L 363,482 L 363,483 L 363,482 L 362,482 L 363,482 L 363,483 L 362,483 L 362,482 L 361,482 L 360,482 L 359,482 L 358,482 L 357,482 L 357,481 L 356,481 L 355,481 L 355,480 L 355,479 L 354,479 L 354,478 L 353,478 L 352,478 L 353,478 L 353,477 L 352,477 L 352,476 L 352,475 L 351,475 L 350,475 L 351,475 L 350,475 L 350,474 L 349,474 L 349,473 L 348,473 L 347,473 L 347,472 L 346,472 L 347,472 L 346,472 L 346,471 L 345,471 L 346,471 L 345,471 L 344,471 L 344,470 L 343,470 L 343,469 L 342,469 L 342,470 L 342,469 L 341,469 L 340,469 L 339,469 L 338,469 L 339,469 L 338,469 L 338,468 L 338,469 L 337,469 L 337,468 L 338,468 L 337,468 L 337,467 L 337,468 L 338,467 L 337,467 L 336,467 L 335,467 L 335,466 L 334,466 L 335,466 L 334,466 L 334,467 L 334,466 L 333,466 L 334,466 L 333,466 L 332,466 L 331,466 L 331,465 L 331,466 L 331,465 L 330,465 L 330,466 L 329,466 L 329,465 L 329,466 L 328,466 L 328,465 L 327,465 L 327,466 L 327,465 L 327,466 L 326,466 L 326,465 L 325,465 L 325,464 L 325,465 L 324,465 L 324,464 L 323,464 L 323,465 L 323,464 L 322,464 L 323,464 L 323,463 L 322,463 L 322,464 L 321,464 L 321,465 L 321,464 L 320,464 L 320,465 L 320,464 L 319,464 L 319,465 L 318,465 L 319,465 L 319,464 L 318,464 L 318,463 L 317,463 L 317,464 L 316,464 L 316,465 L 315,465 L 315,464 L 315,465 L 314,465 L 314,464 L 313,464 L 313,465 L 312,465 L 312,464 L 311,464 L 312,464 L 311,464 L 312,464 L 312,463 L 312,464 L 312,463 L 312,462 L 312,463 L 312,462 L 313,462 L 312,462 L 313,462 L 313,461 L 313,462 L 313,461 L 314,461 L 313,461 L 314,461 L 313,461 L 314,461 L 313,460 L 314,460 L 313,460 L 313,459 L 313,458 L 312,458 L 313,458 L 312,458 L 313,458 L 313,457 L 312,457 L 313,457 L 313,456 L 313,455 L 313,454 L 313,453 L 313,454 L 313,453 L 314,453 L 313,453 L 314,453 L 314,452 L 315,452 L 316,452 L 317,452 L 318,452 L 318,451 L 318,452 L 319,452 L 320,452 L 320,453 L 321,453 L 322,453 L 322,454 L 322,453 L 322,454 L 322,453 L 323,453 L 324,453 L 325,453 L 326,453 L 327,453 L 328,453 L 328,454 L 329,454 L 330,454 L 331,454 L 332,454 L 333,454 L 333,455 L 333,454 L 333,455 L 334,455 L 334,454 L 334,455 L 335,455 L 336,455 L 335,455 L 336,455 L 336,456 L 337,456 L 338,456 L 339,456 L 340,456 L 341,456 L 342,456 L 343,456 L 344,456 L 344,457 L 345,457 L 345,458 L 345,457 L 346,457 L 347,457 L 348,457 L 347,457 L 348,457 L 347,457 L 347,456 L 348,456 L 347,456 L 347,455 L 347,454 L 347,455 L 347,454 L 347,453 L 348,453 L 348,452 L 349,452 L 350,452 L 350,451 L 351,451 L 351,452 L 352,452 L 352,451 L 352,452 L 353,452 L 353,451 L 353,452 L 353,451 L 354,451 L 354,452 L 355,452 L 355,451 L 354,451 L 355,451 L 355,450 L 356,450 L 356,449 L 357,449 L 356,449 L 356,448 L 357,448 L 357,449 L 357,448 L 358,448 L 358,449 L 358,448 L 358,449 L 358,448 L 358,449 L 359,449 L 358,449 L 359,449 L 360,449 L 360,450 L 360,449 L 361,449 L 362,449 L 363,449 L 362,449 L 362,448 L 363,448 L 363,449 L 363,448 L 364,448 L 364,449 L 364,448 L 364,449 L 365,449 L 365,448 L 364,448 L 365,448 L 365,449 L 365,448 L 366,448 L 365,448 L 366,448 L 366,449 L 366,448 L 366,449 L 366,448 L 366,449 L 367,449 L 366,449 L 367,449 L 367,450 L 368,450 L 368,449 L 368,450 L 368,449 L 368,450 L 369,450 L 369,451 L 370,451 L 371,451 L 370,451 L 371,451 L 372,451 L 372,450 L 372,451 L 372,450 L 373,450 L 374,450 L 375,450 L 375,449 L 374,449 L 375,449 L 374,449 L 375,449 L 374,449 L 375,449 L 375,448 L 375,449 L 375,448 L 376,448 L 377,448 L 378,448 L 377,448 L 378,448 L 379,448 L 378,448 L 379,448 L 380,448 L 381,448 L 383,448 L 383,447 L 384,447 L 384,448 "},"rs": {"name": "Rio Grande do Sul","path": "M 338,468 L 338,469 L 339,469 L 338,469 L 339,469 L 340,469 L 341,469 L 342,469 L 342,470 L 342,469 L 343,469 L 343,470 L 344,470 L 344,471 L 345,471 L 346,471 L 345,471 L 346,471 L 346,472 L 347,472 L 346,472 L 347,472 L 347,473 L 348,473 L 349,473 L 349,474 L 350,474 L 350,475 L 351,475 L 350,475 L 351,475 L 352,475 L 352,476 L 352,477 L 353,477 L 353,478 L 352,478 L 353,478 L 354,478 L 354,479 L 355,479 L 355,480 L 355,481 L 356,481 L 357,481 L 357,482 L 358,482 L 359,482 L 360,482 L 361,482 L 362,482 L 362,483 L 363,483 L 363,482 L 362,482 L 363,482 L 363,483 L 363,482 L 363,483 L 363,482 L 364,482 L 364,483 L 364,482 L 365,482 L 365,483 L 366,483 L 366,482 L 367,482 L 366,482 L 367,482 L 367,483 L 366,483 L 367,483 L 367,482 L 367,483 L 368,483 L 368,482 L 368,483 L 368,484 L 369,484 L 369,485 L 368,485 L 368,484 L 368,485 L 368,484 L 367,484 L 367,485 L 367,486 L 367,485 L 367,486 L 366,486 L 365,486 L 365,487 L 365,488 L 366,488 L 365,488 L 365,489 L 366,489 L 366,490 L 365,490 L 365,491 L 365,492 L 365,491 L 365,492 L 365,491 L 365,492 L 364,492 L 365,492 L 364,492 L 364,493 L 364,492 L 363,492 L 364,492 L 363,492 L 364,492 L 363,492 L 363,493 L 363,492 L 363,493 L 364,493 L 363,493 L 363,492 L 363,493 L 362,493 L 363,493 L 362,493 L 363,493 L 362,493 L 363,493 L 363,494 L 364,494 L 364,495 L 364,494 L 363,494 L 363,493 L 364,493 L 365,493 L 366,493 L 367,493 L 367,494 L 368,494 L 369,494 L 369,495 L 368,495 L 368,496 L 367,496 L 367,497 L 366,497 L 366,498 L 366,499 L 365,499 L 365,500 L 364,500 L 364,501 L 364,502 L 363,502 L 363,503 L 363,504 L 363,505 L 362,505 L 362,506 L 362,507 L 361,507 L 361,508 L 361,509 L 361,510 L 360,510 L 360,511 L 359,512 L 358,513 L 358,514 L 357,514 L 357,515 L 356,516 L 356,517 L 355,517 L 355,518 L 354,519 L 354,520 L 353,520 L 352,521 L 352,522 L 351,522 L 350,523 L 349,523 L 349,524 L 348,524 L 348,525 L 347,525 L 347,526 L 346,526 L 346,527 L 345,527 L 344,528 L 343,528 L 342,529 L 341,529 L 341,530 L 340,530 L 339,530 L 339,531 L 338,531 L 338,532 L 337,532 L 337,533 L 336,533 L 336,534 L 336,533 L 336,532 L 336,531 L 337,531 L 336,530 L 336,529 L 335,529 L 336,529 L 335,529 L 336,529 L 335,529 L 336,529 L 337,529 L 338,529 L 338,530 L 339,530 L 339,529 L 340,529 L 339,529 L 340,529 L 339,529 L 340,529 L 341,529 L 341,528 L 342,528 L 342,527 L 343,527 L 343,526 L 344,526 L 344,525 L 344,526 L 345,526 L 344,526 L 344,525 L 345,525 L 344,525 L 345,525 L 345,524 L 345,525 L 346,525 L 347,525 L 347,524 L 348,524 L 348,523 L 348,522 L 349,522 L 349,521 L 348,521 L 348,520 L 348,519 L 349,519 L 350,519 L 350,518 L 351,518 L 351,517 L 351,516 L 352,516 L 353,516 L 353,515 L 354,515 L 355,515 L 355,514 L 355,513 L 355,512 L 355,511 L 355,510 L 355,509 L 356,509 L 356,508 L 356,509 L 356,510 L 356,511 L 357,511 L 357,510 L 357,509 L 357,508 L 357,507 L 356,507 L 356,506 L 356,507 L 356,506 L 356,507 L 356,506 L 355,507 L 356,508 L 355,508 L 354,508 L 353,508 L 352,508 L 352,509 L 352,510 L 351,510 L 351,509 L 350,509 L 350,508 L 350,509 L 350,508 L 350,507 L 350,508 L 350,507 L 349,507 L 348,507 L 349,507 L 348,507 L 348,506 L 347,506 L 348,506 L 347,506 L 347,505 L 348,505 L 348,504 L 347,504 L 347,505 L 347,504 L 347,505 L 347,504 L 346,505 L 346,506 L 346,507 L 347,507 L 347,508 L 348,508 L 348,509 L 349,509 L 349,510 L 349,511 L 349,510 L 349,509 L 348,509 L 348,510 L 347,510 L 347,511 L 347,512 L 347,513 L 347,514 L 347,515 L 346,515 L 347,515 L 347,514 L 346,514 L 346,513 L 345,513 L 345,514 L 345,515 L 345,516 L 346,516 L 345,516 L 344,516 L 344,517 L 344,518 L 344,519 L 345,519 L 344,519 L 343,519 L 342,519 L 342,520 L 342,521 L 341,521 L 341,522 L 340,522 L 340,521 L 340,522 L 339,522 L 338,522 L 339,522 L 338,522 L 337,522 L 337,523 L 338,523 L 337,523 L 337,524 L 337,525 L 337,526 L 337,527 L 336,527 L 335,527 L 335,528 L 334,528 L 334,529 L 333,529 L 333,530 L 334,530 L 335,530 L 335,531 L 334,531 L 334,532 L 333,532 L 334,532 L 334,531 L 335,531 L 335,532 L 336,532 L 335,532 L 334,532 L 334,533 L 333,533 L 334,533 L 334,532 L 335,532 L 336,532 L 335,532 L 335,533 L 335,532 L 336,532 L 336,533 L 335,533 L 335,534 L 334,534 L 334,535 L 333,535 L 333,536 L 333,537 L 332,537 L 332,538 L 331,539 L 331,540 L 331,541 L 331,542 L 330,542 L 330,543 L 330,544 L 329,545 L 329,546 L 328,546 L 328,547 L 328,548 L 327,548 L 327,549 L 326,549 L 326,550 L 325,550 L 324,551 L 323,552 L 322,552 L 322,553 L 321,553 L 321,554 L 320,554 L 320,555 L 319,555 L 318,555 L 318,556 L 317,556 L 317,555 L 316,555 L 315,555 L 316,555 L 315,555 L 315,554 L 316,554 L 315,554 L 316,554 L 316,553 L 317,553 L 316,553 L 317,553 L 317,552 L 317,553 L 317,552 L 317,551 L 317,550 L 316,549 L 317,549 L 317,548 L 317,547 L 317,548 L 318,547 L 318,546 L 319,546 L 318,546 L 318,547 L 319,547 L 320,546 L 320,545 L 321,545 L 321,544 L 321,543 L 322,543 L 323,543 L 323,542 L 323,543 L 324,544 L 325,544 L 326,544 L 327,543 L 327,542 L 328,542 L 328,541 L 328,540 L 329,539 L 329,538 L 328,538 L 328,537 L 327,536 L 327,535 L 328,535 L 328,534 L 327,534 L 326,534 L 327,534 L 326,534 L 326,535 L 326,534 L 326,535 L 326,534 L 327,534 L 326,534 L 327,534 L 327,535 L 326,535 L 326,536 L 325,536 L 326,536 L 326,537 L 326,536 L 326,537 L 327,537 L 326,537 L 326,538 L 325,538 L 324,538 L 323,538 L 323,539 L 323,540 L 322,540 L 322,541 L 321,541 L 321,540 L 321,541 L 320,541 L 320,540 L 319,540 L 318,540 L 318,539 L 318,540 L 317,540 L 317,539 L 316,539 L 316,538 L 315,538 L 315,537 L 314,537 L 314,536 L 314,535 L 313,535 L 314,535 L 313,535 L 313,534 L 313,533 L 312,533 L 312,532 L 311,532 L 311,531 L 311,532 L 311,531 L 310,531 L 309,531 L 310,531 L 310,530 L 309,530 L 308,530 L 308,531 L 308,530 L 307,530 L 306,529 L 303,527 L 303,526 L 302,526 L 302,525 L 301,525 L 301,524 L 300,524 L 299,524 L 298,524 L 297,524 L 297,523 L 296,523 L 297,523 L 296,523 L 296,522 L 295,522 L 295,521 L 295,522 L 294,522 L 293,522 L 293,521 L 292,521 L 292,520 L 291,520 L 290,519 L 290,520 L 290,519 L 291,519 L 290,519 L 291,519 L 290,519 L 291,519 L 290,519 L 290,518 L 289,518 L 289,517 L 288,517 L 288,516 L 287,516 L 287,515 L 287,516 L 287,515 L 286,515 L 286,516 L 286,517 L 285,517 L 285,518 L 284,518 L 283,518 L 283,519 L 282,519 L 281,519 L 281,518 L 281,517 L 281,516 L 281,515 L 280,515 L 280,514 L 279,514 L 279,513 L 279,512 L 278,512 L 278,511 L 277,511 L 277,512 L 277,511 L 276,511 L 276,510 L 275,510 L 275,509 L 274,509 L 274,508 L 273,508 L 273,507 L 272,507 L 273,507 L 272,507 L 272,506 L 272,507 L 272,506 L 272,507 L 271,507 L 271,506 L 270,506 L 270,505 L 269,505 L 268,505 L 269,505 L 268,505 L 267,505 L 266,505 L 266,506 L 266,505 L 266,506 L 265,506 L 265,507 L 265,508 L 264,508 L 264,507 L 264,508 L 263,508 L 263,507 L 263,508 L 262,508 L 261,508 L 262,508 L 261,508 L 261,507 L 260,507 L 260,508 L 260,507 L 259,507 L 260,507 L 259,507 L 259,506 L 258,506 L 259,506 L 260,506 L 261,505 L 261,504 L 262,504 L 263,504 L 263,503 L 263,502 L 263,501 L 264,501 L 265,501 L 266,500 L 267,500 L 267,499 L 268,498 L 269,497 L 270,497 L 270,496 L 270,495 L 271,495 L 272,495 L 272,494 L 272,493 L 272,492 L 273,492 L 273,491 L 274,491 L 275,491 L 276,490 L 275,490 L 275,489 L 276,489 L 277,489 L 277,488 L 277,487 L 278,487 L 279,487 L 279,486 L 279,485 L 280,485 L 281,485 L 281,484 L 281,483 L 282,483 L 283,483 L 283,482 L 283,481 L 284,481 L 285,481 L 285,482 L 286,482 L 285,481 L 286,481 L 286,480 L 285,480 L 284,480 L 284,479 L 285,479 L 286,479 L 286,478 L 287,478 L 288,478 L 288,477 L 289,477 L 290,477 L 290,476 L 290,475 L 291,475 L 292,475 L 292,474 L 293,474 L 294,474 L 295,474 L 295,473 L 294,473 L 295,473 L 296,473 L 296,472 L 296,471 L 297,471 L 297,470 L 298,470 L 298,469 L 298,470 L 299,470 L 300,470 L 300,469 L 300,470 L 300,469 L 301,469 L 301,468 L 301,469 L 302,469 L 303,469 L 303,468 L 302,468 L 303,468 L 304,468 L 304,469 L 304,468 L 305,468 L 306,467 L 306,466 L 307,466 L 308,466 L 309,466 L 309,465 L 310,465 L 310,464 L 311,464 L 312,464 L 312,465 L 313,465 L 313,464 L 314,464 L 314,465 L 315,465 L 315,464 L 315,465 L 316,465 L 316,464 L 317,464 L 317,463 L 318,463 L 318,464 L 319,464 L 319,465 L 318,465 L 319,465 L 319,464 L 320,464 L 320,465 L 320,464 L 321,464 L 321,465 L 321,464 L 322,464 L 322,463 L 323,463 L 323,464 L 322,464 L 323,464 L 323,465 L 323,464 L 324,464 L 324,465 L 325,465 L 325,464 L 325,465 L 326,465 L 326,466 L 327,466 L 327,465 L 327,466 L 327,465 L 328,465 L 328,466 L 329,466 L 329,465 L 329,466 L 330,466 L 330,465 L 331,465 L 331,466 L 331,465 L 331,466 L 332,466 L 333,466 L 334,466 L 333,466 L 334,466 L 334,467 L 334,466 L 335,466 L 334,466 L 335,466 L 335,467 L 336,467 L 337,467 L 338,467 L 337,468 L 337,467 L 337,468 L 338,468 L 337,468 L 337,469 L 338,469 L 338,468 "},"ms": {"name": "Mato Grosso do Sul","path": "M 280,325 L 281,325 L 281,326 L 282,326 L 282,327 L 282,326 L 282,327 L 283,327 L 284,327 L 284,328 L 284,327 L 285,327 L 285,328 L 286,328 L 287,328 L 287,329 L 288,329 L 288,330 L 289,330 L 290,330 L 290,331 L 290,330 L 290,331 L 290,330 L 290,331 L 291,331 L 291,330 L 291,331 L 292,331 L 292,332 L 293,332 L 294,332 L 295,332 L 295,331 L 295,332 L 296,332 L 296,331 L 297,332 L 297,331 L 297,332 L 297,331 L 298,331 L 298,330 L 299,330 L 300,330 L 301,330 L 301,329 L 301,330 L 301,329 L 301,330 L 302,330 L 303,330 L 303,331 L 304,331 L 304,332 L 305,332 L 306,332 L 306,331 L 307,331 L 307,332 L 307,331 L 307,332 L 307,331 L 308,331 L 308,332 L 308,331 L 308,330 L 309,330 L 309,329 L 310,329 L 310,328 L 311,328 L 311,327 L 312,327 L 312,326 L 313,326 L 313,330 L 313,332 L 312,332 L 311,332 L 311,333 L 310,333 L 310,334 L 310,335 L 310,336 L 311,336 L 312,336 L 312,337 L 312,336 L 312,337 L 313,337 L 314,337 L 313,337 L 314,337 L 314,336 L 314,337 L 314,336 L 314,337 L 314,336 L 314,337 L 314,336 L 314,337 L 314,336 L 314,337 L 314,336 L 314,337 L 314,336 L 314,337 L 315,337 L 316,337 L 317,337 L 318,337 L 319,337 L 320,337 L 321,337 L 322,337 L 322,338 L 321,338 L 321,339 L 321,340 L 321,341 L 322,341 L 321,341 L 322,341 L 322,342 L 323,342 L 323,341 L 324,341 L 325,341 L 326,341 L 326,342 L 326,343 L 325,343 L 324,343 L 324,344 L 323,344 L 323,345 L 324,345 L 324,346 L 325,346 L 326,346 L 327,346 L 328,346 L 329,346 L 330,346 L 331,346 L 331,347 L 331,348 L 332,348 L 333,348 L 334,349 L 335,349 L 334,349 L 335,349 L 335,350 L 336,350 L 337,350 L 338,350 L 337,350 L 338,350 L 338,351 L 339,351 L 339,352 L 339,351 L 339,352 L 340,352 L 341,352 L 341,353 L 342,353 L 342,352 L 342,353 L 343,352 L 343,353 L 343,352 L 343,353 L 344,353 L 345,353 L 346,353 L 346,354 L 347,354 L 346,354 L 347,354 L 347,355 L 347,354 L 348,354 L 348,355 L 349,355 L 350,355 L 350,356 L 351,356 L 351,357 L 352,357 L 351,357 L 351,358 L 352,358 L 352,359 L 351,359 L 351,360 L 350,360 L 350,361 L 350,362 L 350,363 L 351,363 L 351,364 L 350,364 L 351,364 L 351,365 L 350,365 L 351,365 L 351,366 L 350,366 L 350,367 L 350,368 L 349,368 L 349,369 L 348,369 L 347,369 L 346,369 L 346,370 L 345,370 L 345,371 L 344,371 L 344,372 L 344,373 L 343,373 L 342,374 L 342,375 L 342,376 L 342,377 L 342,378 L 341,378 L 340,378 L 340,379 L 340,380 L 339,380 L 339,381 L 339,382 L 339,383 L 339,384 L 338,384 L 338,385 L 337,385 L 337,386 L 336,386 L 335,386 L 335,387 L 336,387 L 336,388 L 336,389 L 335,389 L 334,389 L 334,390 L 334,391 L 333,391 L 333,392 L 332,392 L 332,393 L 332,394 L 331,394 L 331,395 L 330,395 L 330,396 L 329,396 L 328,396 L 328,397 L 327,397 L 326,397 L 326,398 L 325,398 L 325,399 L 324,399 L 323,399 L 323,400 L 322,400 L 322,401 L 321,401 L 321,402 L 320,402 L 320,403 L 319,403 L 318,403 L 318,404 L 317,404 L 316,404 L 316,405 L 315,405 L 315,406 L 314,406 L 314,407 L 314,408 L 314,409 L 313,409 L 313,410 L 313,411 L 312,411 L 312,412 L 311,412 L 310,412 L 310,413 L 309,413 L 309,414 L 309,415 L 308,416 L 308,417 L 308,418 L 308,419 L 308,420 L 307,420 L 306,420 L 306,421 L 305,421 L 305,420 L 304,420 L 303,420 L 303,419 L 302,419 L 302,418 L 302,419 L 302,418 L 301,418 L 301,419 L 301,418 L 300,418 L 299,418 L 298,418 L 298,419 L 297,419 L 296,419 L 296,420 L 295,420 L 294,420 L 293,420 L 292,420 L 291,420 L 290,420 L 289,420 L 290,420 L 289,420 L 289,419 L 289,418 L 289,417 L 289,416 L 288,416 L 289,416 L 289,415 L 288,415 L 288,414 L 287,414 L 287,413 L 288,413 L 288,412 L 288,411 L 287,411 L 287,410 L 288,410 L 288,409 L 287,409 L 287,408 L 287,407 L 286,407 L 286,406 L 286,405 L 286,404 L 286,403 L 287,403 L 286,403 L 287,403 L 287,402 L 286,402 L 286,401 L 285,400 L 285,399 L 285,398 L 284,398 L 284,397 L 283,397 L 283,396 L 282,396 L 282,397 L 282,396 L 282,397 L 282,396 L 282,397 L 282,396 L 281,396 L 282,396 L 281,396 L 282,396 L 281,396 L 281,397 L 281,396 L 280,396 L 279,396 L 278,396 L 277,396 L 277,395 L 276,395 L 277,395 L 276,395 L 276,394 L 276,393 L 276,394 L 275,394 L 274,394 L 274,395 L 274,394 L 274,395 L 273,395 L 274,395 L 273,395 L 273,396 L 272,396 L 272,395 L 272,396 L 272,395 L 271,395 L 271,396 L 271,395 L 271,396 L 272,396 L 271,396 L 270,396 L 270,397 L 269,397 L 269,396 L 269,397 L 269,396 L 268,396 L 267,396 L 266,396 L 265,396 L 265,395 L 264,395 L 264,396 L 264,395 L 264,396 L 263,396 L 263,395 L 263,396 L 262,396 L 262,395 L 261,395 L 260,395 L 259,395 L 259,394 L 258,394 L 257,394 L 256,394 L 256,395 L 256,394 L 255,394 L 254,394 L 253,394 L 254,394 L 254,393 L 253,393 L 254,393 L 254,392 L 254,391 L 255,391 L 254,391 L 254,390 L 255,390 L 255,389 L 254,389 L 255,388 L 254,388 L 254,387 L 255,387 L 254,387 L 254,386 L 254,385 L 255,385 L 255,384 L 255,383 L 254,382 L 255,382 L 255,381 L 255,380 L 256,380 L 255,380 L 255,379 L 256,379 L 256,378 L 255,378 L 255,377 L 254,377 L 255,377 L 255,376 L 255,377 L 255,376 L 254,376 L 254,375 L 255,375 L 255,374 L 254,374 L 254,373 L 253,373 L 253,372 L 253,371 L 253,370 L 252,370 L 252,369 L 252,368 L 251,368 L 252,368 L 252,367 L 251,367 L 252,367 L 252,366 L 253,366 L 253,365 L 254,365 L 255,365 L 255,364 L 252,361 L 253,358 L 253,357 L 254,356 L 255,354 L 255,353 L 256,351 L 257,351 L 258,351 L 257,351 L 257,350 L 257,349 L 260,340 L 261,340 L 260,340 L 259,339 L 259,338 L 259,337 L 258,337 L 258,336 L 257,335 L 257,334 L 258,334 L 257,334 L 257,333 L 257,332 L 256,332 L 257,332 L 257,331 L 256,331 L 257,331 L 256,331 L 257,331 L 257,330 L 257,331 L 258,331 L 257,331 L 258,331 L 258,332 L 258,333 L 259,333 L 259,334 L 260,334 L 260,335 L 261,335 L 262,335 L 262,334 L 262,335 L 262,334 L 262,335 L 263,335 L 263,334 L 264,334 L 265,334 L 266,334 L 266,333 L 267,333 L 267,332 L 268,332 L 268,331 L 268,330 L 269,330 L 269,329 L 270,329 L 269,329 L 270,329 L 269,329 L 270,329 L 270,328 L 271,328 L 270,328 L 271,328 L 271,327 L 272,327 L 272,328 L 272,327 L 272,328 L 272,327 L 272,328 L 272,327 L 273,327 L 273,328 L 273,327 L 273,328 L 273,327 L 274,327 L 275,327 L 275,328 L 275,327 L 276,327 L 277,327 L 277,326 L 278,326 L 279,326 L 279,325 L 279,326 L 279,325 L 280,325 "},"mt": {"name": "Mato Grosso","path": "M 297,332 L 297,331 L 297,332 L 296,331 L 296,332 L 295,332 L 295,331 L 295,332 L 294,332 L 293,332 L 292,332 L 292,331 L 291,331 L 291,330 L 291,331 L 290,331 L 290,330 L 290,331 L 290,330 L 290,331 L 290,330 L 289,330 L 288,330 L 288,329 L 287,329 L 287,328 L 286,328 L 285,328 L 285,327 L 284,327 L 284,328 L 284,327 L 283,327 L 282,327 L 282,326 L 282,327 L 282,326 L 281,326 L 281,325 L 280,325 L 279,325 L 279,326 L 279,325 L 279,326 L 278,326 L 277,326 L 277,327 L 276,327 L 275,327 L 275,328 L 275,327 L 274,327 L 273,327 L 273,328 L 273,327 L 273,328 L 273,327 L 272,327 L 272,328 L 272,327 L 272,328 L 272,327 L 272,328 L 272,327 L 271,327 L 271,328 L 270,328 L 271,328 L 270,328 L 270,329 L 269,329 L 270,329 L 269,329 L 270,329 L 269,329 L 269,330 L 268,330 L 268,331 L 268,332 L 267,332 L 267,333 L 266,333 L 266,334 L 265,334 L 264,334 L 263,334 L 263,335 L 262,335 L 262,334 L 262,335 L 262,334 L 262,335 L 261,335 L 260,335 L 260,334 L 259,334 L 259,333 L 258,333 L 258,332 L 258,331 L 257,331 L 258,331 L 257,331 L 257,330 L 257,331 L 255,329 L 254,330 L 253,330 L 253,329 L 252,329 L 251,329 L 251,328 L 250,328 L 250,327 L 249,327 L 250,327 L 249,327 L 249,326 L 248,326 L 248,325 L 248,324 L 247,324 L 248,324 L 247,324 L 247,323 L 248,323 L 247,323 L 247,322 L 247,321 L 247,320 L 247,319 L 247,318 L 247,317 L 248,317 L 248,316 L 249,316 L 249,315 L 248,315 L 249,315 L 249,314 L 249,313 L 248,313 L 247,313 L 245,313 L 243,313 L 242,313 L 241,313 L 240,313 L 239,313 L 238,313 L 237,313 L 233,313 L 232,313 L 230,313 L 229,313 L 228,313 L 227,313 L 226,313 L 225,313 L 224,313 L 223,313 L 223,312 L 223,311 L 223,309 L 223,308 L 223,307 L 223,306 L 222,304 L 222,303 L 222,302 L 219,298 L 218,297 L 219,296 L 222,296 L 222,293 L 222,292 L 222,290 L 221,290 L 221,289 L 221,288 L 220,288 L 221,288 L 220,288 L 221,288 L 220,288 L 220,287 L 220,286 L 220,287 L 220,286 L 219,286 L 219,285 L 219,284 L 219,283 L 219,282 L 220,282 L 220,281 L 220,280 L 219,280 L 219,279 L 219,278 L 218,278 L 217,278 L 218,278 L 217,278 L 217,277 L 217,278 L 217,277 L 217,278 L 216,277 L 216,278 L 216,277 L 216,276 L 217,275 L 217,276 L 217,275 L 218,275 L 218,274 L 219,274 L 220,274 L 220,273 L 220,272 L 221,272 L 220,271 L 221,271 L 220,271 L 221,271 L 221,270 L 222,270 L 222,269 L 222,270 L 222,269 L 222,268 L 223,268 L 223,267 L 224,267 L 224,266 L 224,265 L 224,264 L 225,264 L 224,264 L 224,263 L 224,262 L 225,262 L 225,261 L 226,261 L 226,260 L 227,260 L 228,260 L 228,259 L 228,258 L 229,258 L 227,257 L 227,256 L 227,255 L 227,254 L 226,254 L 226,253 L 226,252 L 225,252 L 224,252 L 225,252 L 224,252 L 224,251 L 224,250 L 224,249 L 224,248 L 224,247 L 225,247 L 225,246 L 226,246 L 226,245 L 227,245 L 227,244 L 226,244 L 226,243 L 226,242 L 226,241 L 225,241 L 224,241 L 223,241 L 222,241 L 222,240 L 221,240 L 221,241 L 221,240 L 221,241 L 220,241 L 220,240 L 219,240 L 219,239 L 214,239 L 212,239 L 210,239 L 206,239 L 205,239 L 204,239 L 204,238 L 204,237 L 205,237 L 205,236 L 205,237 L 205,236 L 205,235 L 205,234 L 205,233 L 205,232 L 205,231 L 205,230 L 204,230 L 204,229 L 204,228 L 203,228 L 203,227 L 204,227 L 204,226 L 204,225 L 204,224 L 205,224 L 205,223 L 204,223 L 204,222 L 204,221 L 204,222 L 204,221 L 205,221 L 205,220 L 205,219 L 204,219 L 204,218 L 204,217 L 203,217 L 203,216 L 203,215 L 203,216 L 203,215 L 204,215 L 204,214 L 204,213 L 204,212 L 204,211 L 205,211 L 205,210 L 204,210 L 204,209 L 205,209 L 208,209 L 209,209 L 211,209 L 214,209 L 220,209 L 226,209 L 233,209 L 234,209 L 235,209 L 238,209 L 239,209 L 246,209 L 247,209 L 248,209 L 248,208 L 249,208 L 248,207 L 248,208 L 247,208 L 247,207 L 248,207 L 248,206 L 248,205 L 248,204 L 248,203 L 249,203 L 248,203 L 249,203 L 249,202 L 249,201 L 249,200 L 249,199 L 249,198 L 249,197 L 248,197 L 248,196 L 248,195 L 249,195 L 249,194 L 250,194 L 250,193 L 251,192 L 250,192 L 250,191 L 250,190 L 251,190 L 251,189 L 252,189 L 253,189 L 253,190 L 253,191 L 254,191 L 254,192 L 254,193 L 255,193 L 255,194 L 255,195 L 256,196 L 256,197 L 256,198 L 257,199 L 257,200 L 258,200 L 258,201 L 258,202 L 258,203 L 258,204 L 258,205 L 258,206 L 259,206 L 259,207 L 259,208 L 260,208 L 261,208 L 261,209 L 262,209 L 261,209 L 261,210 L 262,210 L 263,210 L 264,210 L 264,211 L 265,211 L 265,212 L 266,212 L 266,213 L 267,213 L 266,213 L 266,214 L 267,214 L 266,214 L 267,214 L 267,215 L 268,215 L 269,215 L 270,215 L 270,216 L 270,217 L 271,217 L 272,217 L 277,217 L 283,218 L 284,218 L 287,218 L 288,218 L 293,218 L 295,219 L 297,219 L 299,219 L 300,219 L 305,219 L 308,220 L 309,220 L 310,220 L 311,220 L 314,220 L 315,220 L 317,220 L 320,221 L 321,221 L 323,221 L 324,221 L 325,221 L 328,221 L 332,221 L 333,221 L 337,222 L 344,222 L 347,222 L 350,223 L 353,223 L 355,223 L 358,223 L 360,223 L 362,223 L 361,223 L 362,223 L 361,224 L 361,225 L 361,226 L 360,226 L 360,227 L 359,227 L 359,228 L 359,229 L 359,230 L 359,231 L 358,231 L 358,232 L 357,233 L 357,234 L 356,235 L 357,235 L 356,235 L 357,235 L 357,236 L 356,236 L 356,237 L 356,238 L 356,239 L 356,240 L 356,241 L 355,241 L 355,242 L 356,242 L 356,243 L 355,243 L 355,244 L 355,245 L 354,245 L 354,246 L 354,247 L 355,247 L 355,248 L 356,248 L 355,248 L 355,249 L 355,250 L 355,251 L 356,252 L 355,252 L 356,253 L 355,253 L 355,254 L 355,255 L 355,256 L 356,256 L 356,257 L 356,258 L 356,259 L 356,260 L 355,260 L 355,261 L 355,262 L 356,262 L 356,263 L 356,264 L 356,265 L 356,264 L 357,264 L 357,265 L 356,265 L 357,265 L 358,265 L 358,266 L 357,266 L 357,267 L 356,267 L 356,268 L 357,268 L 356,268 L 356,269 L 356,270 L 357,270 L 356,270 L 356,271 L 356,272 L 355,272 L 355,273 L 355,274 L 354,274 L 354,275 L 354,276 L 354,277 L 353,277 L 353,278 L 353,279 L 353,280 L 353,281 L 353,282 L 353,283 L 352,283 L 352,284 L 351,284 L 351,285 L 351,286 L 351,287 L 351,288 L 351,289 L 351,290 L 350,290 L 350,291 L 350,292 L 350,293 L 349,293 L 350,293 L 349,293 L 349,294 L 350,294 L 349,294 L 349,295 L 348,295 L 347,295 L 347,296 L 347,295 L 346,295 L 345,295 L 344,296 L 343,296 L 343,297 L 342,297 L 342,298 L 341,298 L 341,299 L 342,299 L 341,299 L 341,300 L 341,301 L 341,302 L 340,302 L 341,302 L 341,303 L 340,303 L 340,302 L 340,303 L 340,304 L 340,305 L 339,305 L 339,306 L 339,307 L 338,307 L 338,306 L 337,306 L 337,307 L 336,307 L 335,307 L 335,308 L 335,307 L 334,307 L 333,307 L 333,308 L 333,309 L 332,309 L 332,310 L 331,310 L 331,311 L 330,311 L 329,311 L 329,312 L 329,313 L 329,312 L 329,313 L 328,313 L 327,313 L 327,314 L 327,315 L 328,315 L 328,316 L 328,317 L 327,317 L 328,317 L 327,317 L 327,318 L 326,318 L 327,318 L 326,318 L 326,319 L 325,319 L 325,320 L 324,320 L 324,321 L 323,321 L 323,322 L 322,322 L 323,322 L 322,322 L 322,323 L 322,324 L 321,324 L 322,324 L 321,324 L 321,325 L 321,326 L 320,326 L 320,327 L 320,328 L 320,329 L 320,330 L 319,330 L 320,330 L 319,330 L 320,330 L 319,330 L 320,330 L 320,331 L 319,331 L 320,331 L 319,331 L 319,332 L 320,332 L 319,332 L 320,332 L 319,332 L 319,333 L 320,333 L 320,334 L 321,334 L 321,335 L 321,336 L 322,336 L 322,337 L 321,337 L 320,337 L 319,337 L 318,337 L 317,337 L 316,337 L 315,337 L 314,337 L 314,336 L 314,337 L 314,336 L 314,337 L 314,336 L 314,337 L 314,336 L 314,337 L 314,336 L 314,337 L 314,336 L 314,337 L 314,336 L 314,337 L 313,337 L 314,337 L 313,337 L 312,337 L 312,336 L 312,337 L 312,336 L 311,336 L 310,336 L 310,335 L 310,334 L 310,333 L 311,333 L 311,332 L 312,332 L 313,332 L 313,330 L 313,327 L 313,326 L 312,326 L 312,327 L 311,327 L 311,328 L 310,328 L 310,329 L 309,329 L 309,330 L 308,330 L 308,331 L 308,332 L 308,331 L 307,331 L 307,332 L 307,331 L 307,332 L 307,331 L 306,331 L 306,332 L 305,332 L 304,332 L 304,331 L 303,331 L 303,330 L 302,330 L 301,330 L 301,329 L 301,330 L 301,329 L 301,330 L 300,330 L 299,330 L 298,330 L 298,331 L 297,331 L 297,332 L 297,331 L 297,332 "},"go": {"name": "Goiás","path": "M 362,259 L 362,260 L 362,261 L 361,261 L 362,261 L 361,261 L 361,262 L 361,263 L 360,263 L 361,263 L 360,263 L 361,263 L 361,264 L 360,264 L 361,264 L 360,264 L 360,265 L 361,265 L 362,265 L 362,266 L 362,265 L 362,266 L 363,266 L 364,266 L 365,266 L 365,267 L 366,267 L 367,267 L 368,268 L 369,268 L 372,270 L 373,271 L 374,271 L 374,270 L 374,269 L 374,268 L 374,267 L 375,267 L 375,266 L 376,266 L 376,265 L 377,265 L 377,264 L 377,265 L 378,265 L 377,265 L 377,266 L 378,266 L 379,266 L 379,267 L 380,265 L 381,265 L 381,266 L 382,266 L 382,267 L 383,267 L 384,267 L 384,268 L 384,269 L 384,268 L 384,269 L 384,270 L 384,271 L 384,272 L 385,272 L 385,271 L 385,270 L 385,269 L 386,269 L 386,270 L 386,271 L 387,271 L 388,271 L 388,270 L 388,271 L 388,270 L 389,270 L 390,270 L 390,269 L 390,270 L 390,271 L 390,272 L 390,271 L 390,272 L 390,271 L 390,272 L 390,271 L 391,271 L 392,271 L 393,271 L 393,272 L 393,271 L 393,272 L 393,271 L 394,271 L 394,272 L 395,272 L 396,272 L 397,274 L 397,273 L 398,273 L 398,272 L 397,272 L 397,271 L 397,270 L 397,269 L 398,269 L 399,269 L 398,269 L 399,269 L 399,270 L 400,270 L 400,271 L 401,271 L 401,270 L 401,271 L 402,271 L 403,271 L 403,270 L 404,270 L 405,270 L 404,270 L 405,270 L 405,269 L 406,269 L 407,269 L 407,268 L 408,268 L 409,268 L 409,267 L 410,267 L 411,267 L 413,267 L 414,267 L 414,266 L 414,265 L 415,265 L 415,266 L 415,267 L 416,267 L 417,267 L 418,267 L 418,266 L 419,266 L 419,267 L 418,267 L 417,267 L 416,267 L 416,268 L 416,269 L 416,270 L 416,271 L 416,272 L 417,272 L 418,272 L 418,271 L 419,271 L 420,271 L 420,272 L 419,272 L 418,272 L 418,273 L 417,273 L 417,274 L 417,275 L 418,275 L 418,276 L 417,276 L 417,277 L 417,278 L 416,278 L 417,278 L 417,279 L 417,280 L 417,281 L 417,282 L 417,283 L 418,283 L 419,283 L 419,284 L 420,284 L 419,284 L 420,284 L 420,285 L 421,285 L 421,286 L 422,286 L 421,286 L 421,287 L 420,287 L 420,288 L 421,289 L 420,289 L 421,289 L 420,289 L 420,290 L 421,290 L 420,290 L 420,291 L 420,292 L 420,293 L 420,294 L 419,294 L 418,294 L 417,294 L 416,294 L 416,293 L 416,292 L 415,292 L 414,292 L 414,291 L 413,291 L 413,292 L 412,292 L 413,292 L 413,293 L 413,294 L 413,295 L 413,296 L 412,296 L 411,296 L 410,296 L 410,295 L 409,295 L 408,295 L 408,296 L 407,296 L 408,296 L 408,297 L 407,298 L 407,299 L 408,299 L 408,298 L 408,299 L 409,299 L 409,300 L 408,300 L 408,301 L 407,301 L 407,302 L 407,303 L 408,303 L 408,304 L 408,305 L 409,305 L 409,306 L 409,307 L 408,307 L 407,308 L 406,308 L 405,308 L 404,308 L 404,309 L 403,309 L 404,309 L 403,309 L 404,309 L 403,309 L 402,309 L 402,310 L 402,309 L 401,309 L 401,308 L 401,307 L 401,306 L 401,307 L 401,306 L 402,306 L 402,305 L 402,304 L 402,303 L 401,303 L 401,302 L 399,302 L 398,302 L 397,302 L 392,302 L 391,302 L 390,302 L 390,303 L 390,304 L 389,304 L 389,305 L 390,305 L 389,305 L 390,305 L 389,305 L 390,305 L 390,306 L 389,306 L 389,307 L 389,308 L 389,309 L 389,310 L 391,310 L 392,310 L 393,310 L 395,310 L 397,310 L 398,310 L 399,310 L 401,310 L 402,310 L 402,311 L 401,311 L 402,311 L 402,312 L 402,313 L 401,313 L 401,314 L 400,314 L 400,315 L 400,316 L 400,317 L 401,317 L 402,317 L 402,318 L 402,317 L 402,318 L 403,318 L 403,319 L 403,318 L 403,319 L 403,320 L 404,320 L 403,320 L 403,321 L 404,320 L 404,321 L 403,321 L 404,321 L 404,322 L 404,323 L 405,323 L 404,323 L 405,323 L 404,323 L 404,324 L 404,323 L 404,324 L 403,324 L 404,324 L 403,324 L 402,324 L 402,325 L 403,325 L 402,325 L 403,325 L 402,325 L 401,325 L 402,325 L 401,325 L 402,325 L 402,326 L 402,325 L 401,325 L 401,326 L 401,325 L 401,326 L 402,326 L 401,326 L 401,327 L 400,327 L 401,327 L 400,327 L 401,327 L 400,327 L 400,328 L 399,328 L 399,327 L 399,328 L 399,329 L 399,330 L 400,330 L 401,330 L 402,330 L 402,331 L 403,331 L 403,332 L 402,332 L 403,332 L 402,332 L 403,332 L 402,332 L 402,333 L 402,334 L 401,334 L 402,334 L 401,334 L 402,334 L 401,334 L 401,335 L 402,335 L 402,336 L 402,337 L 402,338 L 401,338 L 401,339 L 400,339 L 400,340 L 399,340 L 399,339 L 399,340 L 399,339 L 399,340 L 398,340 L 398,341 L 397,341 L 397,342 L 397,341 L 397,342 L 396,342 L 396,343 L 395,343 L 395,342 L 395,343 L 394,343 L 393,344 L 393,343 L 392,343 L 391,343 L 390,343 L 390,342 L 389,342 L 389,341 L 389,342 L 388,342 L 387,342 L 386,342 L 385,342 L 385,341 L 384,341 L 384,342 L 383,342 L 382,342 L 381,342 L 381,341 L 380,341 L 379,341 L 379,342 L 378,342 L 378,343 L 377,343 L 377,342 L 376,342 L 376,343 L 375,343 L 375,344 L 375,345 L 374,345 L 373,345 L 373,346 L 373,345 L 372,345 L 372,344 L 371,344 L 370,344 L 370,345 L 369,345 L 370,345 L 369,345 L 368,345 L 368,346 L 367,346 L 367,345 L 366,345 L 365,345 L 364,345 L 364,346 L 363,346 L 362,346 L 361,346 L 360,346 L 360,347 L 360,348 L 359,348 L 359,349 L 358,349 L 358,350 L 358,351 L 358,352 L 357,352 L 357,353 L 356,353 L 355,353 L 354,353 L 354,354 L 354,355 L 353,355 L 353,356 L 352,356 L 352,357 L 353,357 L 353,358 L 352,357 L 351,357 L 351,356 L 350,356 L 350,355 L 349,355 L 348,355 L 348,354 L 347,354 L 347,355 L 347,354 L 346,354 L 347,354 L 346,354 L 346,353 L 345,353 L 344,353 L 343,353 L 343,352 L 343,353 L 343,352 L 342,353 L 342,352 L 342,353 L 341,353 L 341,352 L 340,352 L 339,352 L 339,351 L 339,352 L 339,351 L 338,351 L 338,350 L 337,350 L 338,350 L 337,350 L 336,350 L 335,350 L 335,349 L 334,349 L 335,349 L 334,349 L 333,348 L 332,348 L 331,348 L 331,347 L 331,346 L 330,346 L 329,346 L 328,346 L 327,346 L 326,346 L 325,346 L 324,346 L 324,345 L 323,345 L 323,344 L 324,344 L 324,343 L 325,343 L 326,343 L 326,342 L 326,341 L 325,341 L 324,341 L 323,341 L 323,342 L 322,342 L 322,341 L 321,341 L 322,341 L 321,341 L 321,340 L 321,339 L 321,338 L 322,338 L 322,337 L 322,336 L 321,336 L 321,335 L 321,334 L 320,334 L 320,333 L 319,333 L 319,332 L 320,332 L 319,332 L 320,332 L 319,332 L 319,331 L 320,331 L 319,331 L 320,331 L 320,330 L 319,330 L 320,330 L 319,330 L 320,330 L 319,330 L 320,330 L 320,329 L 320,328 L 320,327 L 320,326 L 321,326 L 321,325 L 321,324 L 322,324 L 321,324 L 322,324 L 322,323 L 322,322 L 323,322 L 322,322 L 323,322 L 323,321 L 324,321 L 324,320 L 325,320 L 325,319 L 326,319 L 326,318 L 327,318 L 326,318 L 327,318 L 327,317 L 328,317 L 327,317 L 328,317 L 328,316 L 328,315 L 327,315 L 327,314 L 327,313 L 328,313 L 329,313 L 329,312 L 329,313 L 329,312 L 329,311 L 330,311 L 331,311 L 331,310 L 332,310 L 332,309 L 333,309 L 333,308 L 333,307 L 334,307 L 335,307 L 335,308 L 335,307 L 336,307 L 337,307 L 337,306 L 338,306 L 338,307 L 339,307 L 339,306 L 339,305 L 340,305 L 340,304 L 340,303 L 340,302 L 340,303 L 341,303 L 341,302 L 340,302 L 341,302 L 341,301 L 341,300 L 341,299 L 342,299 L 341,299 L 341,298 L 342,298 L 342,297 L 343,297 L 343,296 L 344,296 L 345,295 L 346,295 L 347,295 L 347,296 L 347,295 L 348,295 L 349,295 L 349,294 L 350,294 L 349,294 L 349,293 L 350,293 L 349,293 L 350,293 L 350,292 L 350,291 L 350,290 L 351,290 L 351,289 L 351,288 L 351,287 L 351,286 L 351,285 L 351,284 L 352,284 L 352,283 L 353,283 L 353,282 L 353,281 L 353,280 L 353,279 L 353,278 L 353,277 L 354,277 L 354,276 L 354,275 L 354,274 L 355,274 L 355,273 L 355,272 L 356,272 L 356,271 L 356,270 L 357,270 L 356,270 L 356,269 L 356,268 L 357,268 L 356,268 L 356,267 L 357,267 L 357,266 L 358,266 L 358,265 L 358,264 L 358,263 L 359,263 L 359,262 L 359,261 L 360,261 L 360,260 L 360,261 L 360,260 L 361,260 L 362,260 L 362,259 L 363,259 L 362,259 "},"df": {"name": "Distrito Federal","path": "M 398,302 L 399,302 L 400,302 L 401,302 L 401,303 L 402,303 L 402,304 L 402,305 L 402,306 L 401,306 L 401,307 L 401,306 L 401,307 L 401,308 L 401,309 L 402,309 L 402,310 L 402,309 L 402,310 L 401,310 L 400,310 L 399,310 L 398,310 L 397,310 L 396,310 L 395,310 L 394,310 L 393,310 L 392,310 L 391,310 L 390,310 L 389,310 L 389,309 L 389,308 L 389,307 L 389,306 L 390,306 L 390,305 L 389,305 L 390,305 L 389,305 L 390,305 L 389,305 L 389,304 L 390,304 L 390,303 L 390,302 L 391,302 L 392,302 L 393,302 L 395,302 L 396,302 L 397,302 L 398,302 "}} });
--- /dev/null
+/** Add Canada Map Data Points */
+jQuery.fn.vectorMap('addMap', 'canada_en', {"width": 900, "height": 867, "paths":{"nt": {"path": "M340.29,126.02l5.05,-2.26l2.76,0.43l6.5,-3.85l1.23,0.01l1.54,2.19l-1.93,8.62l-1.55,0.59l-2.09,-1.15l-1.22,-2.29l-1.32,0.13l-1.22,2.29l-1.34,-0.24l-0.23,-1.68l-1.46,-1.53l-5.45,1.33l0.72,-2.6ZM104.26,307.63l1.14,-2.98l2.22,-1.67l0.46,-2.51l1.2,-1.51l0.23,-5.06l11.84,-21.11l2.68,2.63l1.46,3.15l0.02,1.76l1.66,1.45l0.66,-0.55l-0.71,-3.84l1.06,0.36l0.07,-0.5l-1.28,-1.24l0.06,-1.25l-1.9,-1.48l0.63,-1.34l1.23,1.78l2.06,-0.46l-1.27,-0.67l-0.73,-2.09l0.91,-2.19l0.82,3.04l1.3,1.4l0.43,-0.74l-0.92,-1.52l0.01,-3.23l0.65,0.02l-0.28,2.19l0.82,0.07l0.59,-1.89l1.87,2.93l1.38,-3.7l2.79,0.44l2.46,2.3l2.79,-4.02l0.7,0.3l-1.1,1.42l0.39,1.34l1.9,1.72l-5.05,2.62l-1.93,2.48l0.9,0.19l1.58,-1.41l2.1,0.22l0.77,-0.72l1.24,0.52l0.71,-0.84l2.64,1.36l1.41,-0.07l3.43,-3.67l2.02,1.7l1.31,0.19l0.94,-0.92l0.78,0.94l6.93,-1.77l0.6,-0.85l0.51,0.79l-0.7,1.79l0.73,0.45l3.57,-3.06l0.03,-0.74l1.1,-0.2l0.29,0.66l1.32,-0.75l0.33,0.91l1.18,-0.31l-0.37,1.09l0.63,0.83l2.24,0.79l2.99,-2.39l-0.43,1.39l0.64,0.69l-0.11,1.21l-1.7,1.0l-6.12,0.53l-2.08,0.64l-1.02,1.21l-1.62,-0.04l-1.6,1.4l-0.25,-1.61l-7.41,-1.01l-2.29,1.84l-0.29,1.06l-5.21,-0.23l-2.66,2.77l-2.4,-0.18l-1.66,2.32l-1.61,-0.49l-0.96,1.13l0.3,2.7l2.2,2.47l0.77,-0.45l-1.27,-1.27l0.38,-0.94l1.27,0.68l0.62,-0.79l0.4,1.43l1.02,-0.16l0.99,1.02l1.61,-0.85l-0.45,-2.08l-1.52,0.19l-0.35,-0.72l1.13,0.16l-0.6,-1.73l0.72,-1.38l2.28,-0.02l0.45,0.71l1.46,-0.81l0.65,0.9l1.17,-1.23l3.27,-0.61l2.33,-2.31l0.67,0.77l-1.51,2.02l0.81,0.22l-0.39,0.95l2.46,-0.58l-0.25,0.99l0.88,0.61l-1.83,2.69l0.65,1.0l1.64,-2.72l7.95,-6.03l5.85,-0.13l2.58,0.65l-1.07,2.79l1.9,1.33l0.27,-1.09l1.24,0.05l5.15,-2.51l1.22,-3.31l1.85,-0.43l4.45,1.02l0.03,-1.32l-2.64,-2.29l1.71,-1.52l-1.85,-0.45l2.47,-2.88l2.54,8.59l-0.04,6.34l-1.07,5.48l2.25,8.32l2.66,3.34l0.85,0.12l0.65,-1.18l1.59,0.69l1.22,-1.47l-0.6,-2.09l0.72,-1.04l-0.89,-1.36l0.56,-0.7l2.36,-0.05l-0.33,1.7l0.79,0.38l1.3,-1.37l-1.55,-1.87l2.51,-2.33l2.01,0.05l0.56,-0.74l0.16,1.45l-2.13,4.05l1.06,1.48l1.87,0.23l-5.37,4.32l0.04,1.48l0.86,0.84l2.07,1.0l0.85,-0.51l1.93,1.27l2.46,-0.33l0.26,-1.48l2.2,0.12l2.25,-5.23l1.23,-0.68l0.86,1.2l5.42,1.52l3.72,2.51l3.56,5.74l-10.78,31.17l22.92,34.62l25.67,33.56l14.94,3.76l6.82,13.72l4.14,3.52l30.8,11.84l26.18,8.96l-10.81,81.09l-51.46,-8.44l-52.41,-11.91l-51.58,-15.14l-28.53,-9.89l-18.38,-7.37l0.81,-1.02l-0.28,-4.88l0.73,-2.33l-1.59,-1.36l-0.37,-3.96l1.97,-1.43l0.22,-3.73l-2.24,-1.11l-1.52,1.67l-2.45,-0.87l-2.02,0.56l-3.8,-3.91l-1.79,1.13l-0.57,-1.54l-1.06,-0.17l-0.9,1.18l-1.62,-1.42l-1.87,0.55l-1.28,-0.91l1.63,-5.05l-1.3,-0.87l1.67,-1.65l0.93,-5.74l-1.07,-1.73l-2.01,-0.66l-1.39,-2.65l-0.78,-2.0l0.37,-3.13l-1.1,-0.69l0.04,-3.67l-0.79,-2.47l-1.51,-0.56l-1.12,0.7l-0.11,-1.18l-2.66,-2.01l0.84,-0.58l0.0,-2.28l1.23,-0.98l-0.39,-0.69l1.61,-0.78l-1.63,-3.36l-0.09,-5.67l3.01,-3.13l-1.57,-1.35l0.26,-2.13l-1.16,-2.28l2.31,-0.46l1.88,-1.83l-0.37,-5.19l-1.66,-0.64l1.9,-0.06l0.56,-1.03l-3.49,-5.55l0.5,-1.17l-0.74,-2.15l0.94,-0.65l0.04,-5.58l-1.89,-2.03l-1.63,0.89l-1.84,-0.85l2.06,-1.84l-1.29,-2.3l-0.01,-2.24l-3.17,-4.16l1.39,-0.32l0.62,-1.63l2.04,-0.76l0.1,-1.36l-1.06,-0.79l0.64,-1.59l-1.0,-0.97l4.88,-2.33l2.73,-2.47l0.15,-4.09l-0.81,-1.96l2.85,-1.34l-1.48,-2.56l-3.29,1.1l0.87,-1.33l-0.22,-1.05l-1.96,-0.69l-2.27,0.42l-1.07,-0.82l0.77,-1.25l-0.44,-0.84l1.7,-0.85l1.09,-2.06l-0.16,-1.35l-1.16,-0.51l1.43,-1.81l0.91,0.37l0.45,-1.72l1.25,-0.83l-0.23,-3.6l1.22,-1.26l-0.87,-3.87l1.56,0.55l0.52,-0.89l-16.25,-8.78ZM207.0,476.23l1.61,4.53l5.87,2.48l0.59,1.9l3.69,3.15l6.27,1.74l4.69,-0.33l1.76,0.73l3.76,-0.8l1.5,1.2l2.72,0.02l2.0,-1.62l0.22,-3.53l2.03,-1.3l2.31,-0.97l1.96,0.23l0.3,1.85l3.53,-0.52l4.71,-1.97l4.89,-4.5l1.91,-0.5l1.98,-1.93l0.04,-1.86l5.21,-3.43l2.82,0.57l0.14,1.03l3.68,0.38l0.65,-0.92l-0.61,-0.65l4.19,-1.04l2.39,-2.13l-0.22,-0.59l-6.06,-1.61l0.35,-0.51l4.93,1.66l0.78,-0.54l-0.9,-0.6l0.42,-0.41l3.57,2.25l-0.52,2.9l3.49,-1.45l1.55,-2.02l-1.55,-1.61l-3.5,-1.36l-3.53,-2.56l-7.39,-0.99l-4.47,1.2l-2.92,1.65l-3.83,5.35l-7.36,4.08l-3.92,-0.15l-0.72,-0.81l-3.17,0.75l-0.99,-1.17l-1.12,0.24l0.13,-0.86l-1.31,-0.93l0.09,-1.38l-3.31,-4.19l0.1,-1.79l-3.43,0.11l-1.7,-2.68l-1.93,-1.37l-0.76,-2.21l-3.15,-2.05l0.15,-0.71l-2.21,-2.46l-1.51,1.96l1.37,2.32l0.46,2.86l3.58,0.85l-1.8,4.28l2.21,1.78l-0.28,1.92l2.36,3.96l-1.1,1.6l-3.31,0.37l-0.87,-1.09l-3.3,-0.31l-3.32,3.82l-0.15,1.58l-1.73,-0.41l-1.46,0.69l1.28,2.16l-1.78,0.66l-0.95,-1.34l-4.58,-2.58l-0.94,0.43l0.03,1.56l-2.72,0.61l-3.89,-4.33l-1.36,-0.2l1.36,1.82ZM179.03,366.19l1.23,1.14l1.05,-2.95l3.02,0.66l0.35,1.43l1.65,0.94l4.89,0.48l0.48,2.95l2.68,-2.11l-0.16,-1.49l8.12,3.1l1.31,1.76l0.26,2.1l2.26,0.8l-1.7,1.71l-3.35,-0.74l-1.03,-1.5l-2.81,-1.71l-3.62,-0.27l-0.01,0.86l1.5,0.47l-0.05,1.18l2.05,1.97l-0.17,1.13l-2.37,1.85l-3.7,0.25l-0.91,1.12l-1.2,-0.13l0.87,2.2l-1.5,2.06l-1.16,0.39l-3.85,-0.85l-1.02,0.69l0.95,1.99l7.94,5.44l1.13,1.57l5.15,-1.44l-0.18,-1.05l2.6,-4.41l6.83,-2.0l2.81,1.33l-1.07,3.16l-3.75,2.86l-2.71,0.66l-0.53,1.61l-1.03,0.5l-2.31,-0.97l-1.56,0.81l-0.48,1.52l0.83,1.79l1.17,0.66l2.7,-1.8l3.15,-0.01l4.39,-2.13l2.0,-0.14l2.25,-2.17l3.37,0.94l-0.18,-3.3l-1.53,-1.0l-0.85,-2.14l3.94,-0.96l-0.42,-1.74l5.94,2.03l-0.23,1.08l2.52,3.2l0.26,-1.1l1.12,0.85l4.77,-0.1l0.43,-1.45l-1.1,-0.13l2.04,-1.38l-3.01,0.14l-0.54,-1.23l2.01,-2.42l2.7,0.59l0.02,-1.17l-1.34,-0.99l2.79,-0.42l1.32,-1.83l-0.37,-1.16l2.69,-2.18l-1.0,-1.29l-1.77,0.84l-0.45,-0.57l2.9,-2.14l0.15,-1.92l-4.08,0.56l-3.44,3.36l-4.18,0.24l-5.52,-2.26l-0.45,-0.98l-2.09,0.14l-1.46,-2.17l-2.34,-0.36l0.32,-0.78l1.63,0.33l-0.01,-1.57l1.13,0.06l1.62,-1.32l4.32,-0.21l2.51,-1.37l3.18,-0.19l-1.55,-2.45l-2.07,-0.71l0.86,-0.58l-2.34,-0.98l-0.08,-1.09l-1.01,-0.39l-9.34,0.7l-1.73,-0.78l-3.27,1.23l-0.23,0.77l-4.53,0.49l-3.99,-1.18l-0.98,1.01l-2.43,-1.06l-1.9,1.06l-0.03,-1.43l-1.47,0.89l-4.68,-0.02l-2.12,0.74l-1.61,-1.82l-2.33,1.46l-3.5,-2.31l-1.4,0.61l-1.36,2.74l0.84,5.19l0.77,-0.04l0.72,-1.84ZM212.83,287.18l-0.0,-0.02l-0.45,-0.39l0.6,0.28l-0.15,0.13ZM211.88,286.62l-0.11,0.01l-0.06,-0.14l0.17,0.13ZM179.99,279.15l0.22,-0.13l-0.03,0.22l-0.19,-0.09ZM142.22,285.94l-0.69,-0.85l0.05,-0.26l0.51,-0.01l0.13,1.12ZM142.77,264.94l0.0,-0.21l0.23,0.0l-0.16,0.1l-0.07,0.11ZM156.42,271.63l-0.26,-0.16l-0.02,-0.28l0.34,0.17l-0.07,0.26ZM155.56,270.82l-0.15,0.03l0.11,-0.14l0.03,0.11ZM159.83,281.2l0.4,-0.64l0.34,-0.13l0.07,0.65l-0.81,0.12ZM202.31,297.59l-0.11,-0.08l0.06,-0.02l0.05,0.1ZM201.72,297.39l-0.66,-0.04l0.07,-0.32l0.01,-0.01l0.59,0.37ZM211.0,288.37l-0.89,0.21l-0.21,-0.52l1.07,-0.1l0.02,0.4ZM207.97,287.77l-0.36,0.28l-0.26,0.01l0.62,-0.56l-0.0,0.27ZM335.03,145.95l1.0,-0.91l-0.03,-4.67l1.26,-2.2l0.69,0.77l4.27,-1.92l3.09,0.31l2.51,-0.9l1.93,0.93l1.22,-0.62l3.04,0.79l-0.79,3.54l-4.36,0.48l-0.82,0.7l0.81,2.8l2.92,0.26l-0.46,3.19l-1.57,2.84l-3.77,1.35l-1.94,-0.92l-4.87,1.52l-1.46,-1.4l-0.3,-2.44l-1.06,-0.05l-1.46,-2.11l0.16,-1.34ZM343.05,180.4l0.53,-2.45l1.48,-0.35l-0.86,3.83l-1.15,-1.03ZM297.62,196.66l-2.81,-3.08l3.43,-3.66l7.2,1.64l3.36,-1.6l1.84,0.21l0.67,-1.17l1.68,-0.67l-0.5,-1.1l-6.96,1.23l-5.82,-1.7l3.14,-3.59l12.45,1.14l-0.22,-1.42l-7.93,-1.17l-2.24,-1.68l1.93,-0.92l0.07,-1.43l-0.97,-0.43l0.79,-1.37l2.92,-1.11l7.07,3.4l1.21,-0.14l0.02,-0.84l-1.49,-0.63l-1.37,-1.85l-2.82,-0.86l-0.3,-0.94l0.54,-1.4l2.58,-1.59l2.72,0.22l1.32,-0.67l0.16,0.75l1.65,0.26l1.13,1.18l-0.79,2.25l0.19,4.4l6.19,-0.25l2.12,2.71l-0.7,1.1l0.22,1.97l3.12,3.75l-2.83,0.82l-0.56,1.29l3.73,0.5l0.64,2.56l-0.82,2.31l0.43,2.83l4.71,-0.03l0.43,0.9l2.08,0.36l-3.46,15.46l-1.6,-0.54l-0.96,1.16l-1.49,-0.26l-0.29,2.07l-7.3,3.12l-5.1,0.78l-4.59,-0.96l-2.46,-1.54l-2.22,-3.46l-0.83,-2.34l0.38,-0.84l4.45,-1.61l3.46,0.41l1.07,-1.88l1.85,-0.47l7.54,1.25l4.33,-3.19l1.09,-1.4l-0.22,-0.82l-1.89,-0.86l-2.08,1.97l-1.45,-0.93l-1.17,0.94l-2.49,-0.21l0.89,-2.14l-0.81,-0.78l-1.01,1.19l0.41,-1.64l-0.83,-0.71l-1.06,3.09l-0.92,0.5l-0.8,0.07l-0.46,-1.42l-0.9,1.31l-3.84,-0.33l0.32,-1.39l1.77,-0.52l-0.23,-1.02l-1.17,0.31l1.46,-2.76l3.52,-1.68l-0.97,-0.99l-2.7,0.74l-0.38,-2.37l-0.91,0.33l-1.8,4.91l-1.27,-2.51l-1.05,0.74l1.08,3.03l-1.36,2.08l-3.46,1.29l-0.74,-0.72l0.75,-4.37l-1.76,1.25l-1.37,-1.35l-0.18,2.89l-0.93,1.06l-2.19,-2.46l1.46,-1.09l-0.26,-0.63l-1.29,0.17l0.9,-2.21l-2.29,-0.11l-1.24,1.13l-1.56,-1.19ZM327.94,134.68l3.9,-1.93l-0.25,1.87l0.84,0.29l1.5,4.62l-3.72,1.43l-2.27,-6.26ZM321.01,163.06l1.64,-1.4l4.15,0.26l1.23,1.73l-0.05,1.17l-1.23,1.11l-5.74,-2.86ZM326.03,261.21l-0.4,-1.5l-1.62,-0.83l-0.63,-3.15l3.92,1.28l-1.26,4.19ZM325.43,263.42l0.07,-0.72l0.09,0.01l0.24,0.88l-0.39,-0.16ZM260.9,269.58l0.42,-3.04l1.57,-3.05l4.59,-3.99l3.77,-0.66l0.24,-2.37l-1.72,-0.97l-0.37,-1.62l3.89,-3.4l2.37,-0.69l4.6,-3.62l3.27,-0.17l2.61,-1.39l7.37,-1.23l6.65,-2.24l1.96,1.51l0.76,4.13l-2.16,5.66l0.16,1.56l-2.64,0.65l-0.45,1.8l-2.29,1.2l0.2,1.21l1.63,0.68l3.03,-1.33l1.9,1.35l2.3,-2.14l0.07,-0.89l-0.92,-0.59l2.08,-2.48l2.58,-1.51l5.25,4.03l4.41,4.94l-0.93,2.75l-1.69,1.01l0.02,0.76l-3.52,1.88l0.79,1.66l-0.7,2.49l4.24,-2.64l0.94,2.06l0.72,-0.16l0.21,-2.62l0.92,-1.22l1.44,-0.1l0.63,-1.52l0.55,0.59l-0.5,1.33l1.36,1.71l0.83,-0.66l-1.02,-1.51l0.87,-0.51l1.37,2.93l-11.48,51.42l-17.46,-4.16l-0.83,1.68l-1.14,0.12l0.0,0.67l1.45,0.6l-2.71,-0.2l0.39,-3.59l-29.83,-8.45l-1.36,2.79l1.84,5.58l-0.46,-0.2l-2.15,-3.26l0.13,-4.89l3.8,-1.52l18.25,1.15l5.68,2.72l1.35,-0.09l6.08,3.41l0.65,-0.81l0.71,0.47l2.24,-0.65l4.22,1.29l0.77,-0.31l0.09,-1.36l-0.57,-0.96l-2.71,-0.99l-0.85,-3.09l-4.83,-2.52l-1.74,-2.41l-1.7,-1.21l-0.85,0.44l-2.39,-2.06l-1.72,0.58l-1.18,-0.69l-1.38,0.56l-7.58,-0.75l-1.02,-0.84l-2.18,-0.06l-1.02,-1.65l-9.36,-2.1l-0.35,-2.73l-2.44,-4.16l0.06,-2.79l4.75,-1.74l6.54,0.4l1.06,-0.88l3.98,-0.43l3.24,0.9l0.7,-1.05l-1.86,-1.16l1.71,-0.55l2.51,1.65l2.88,-0.86l0.17,-0.64l-2.9,-0.09l0.25,-1.03l-2.57,-0.99l-11.15,0.14l0.4,-1.13l-1.05,-1.55l-1.28,0.93l0.71,1.01l-0.39,0.69l-0.78,-0.88l-0.84,0.41l-2.22,-0.81l-0.42,-1.04l0.66,-1.04l4.31,-0.03l0.25,-0.72l-1.15,-1.3l1.24,-0.2l0.19,-0.81l-2.72,-0.71l-1.94,1.08l-1.2,-2.15l-1.98,-0.51l-1.25,0.56ZM315.33,268.23l-0.79,0.05l-0.04,-0.21l1.17,-0.5l-0.34,0.67ZM272.66,162.85l4.64,-4.16l5.15,0.75l3.53,-4.51l5.56,-1.78l0.35,-1.57l1.23,-0.32l3.69,-3.82l3.01,-1.44l2.09,-2.67l6.23,0.54l3.18,3.53l1.58,0.17l0.36,-0.74l1.02,0.52l1.46,-1.56l-0.22,-0.81l-1.45,-0.48l-0.12,-0.94l2.0,-0.8l0.09,-0.67l1.38,0.07l3.52,6.32l-0.71,1.29l-4.29,0.72l-1.27,1.18l0.12,2.98l1.96,2.78l-0.93,0.62l-1.65,-1.71l-0.93,0.51l1.02,3.24l-0.08,2.78l-2.83,1.97l-4.16,-0.31l-0.74,0.87l-0.38,3.99l-1.34,0.94l-2.07,-0.19l-1.48,-3.82l2.69,-6.09l1.64,-1.76l-0.38,-1.79l-1.62,1.02l-1.49,-0.63l-0.68,1.29l-1.12,0.01l-0.08,3.74l-1.39,0.75l-1.27,-1.71l-1.12,0.81l-0.39,1.07l1.24,1.48l-0.17,2.29l-0.71,0.92l-1.58,0.04l-0.8,2.2l-1.34,1.07l0.23,-6.34l-2.15,0.29l-0.4,3.84l-1.82,1.22l0.98,2.96l-0.86,-0.21l-2.15,2.57l-0.71,0.02l-0.37,-1.45l-2.02,1.61l1.52,-3.13l0.0,-1.45l-1.3,-0.19l1.22,-3.06l-0.72,-1.92l-1.64,0.63l-1.1,3.43l-2.24,1.0l-1.95,-3.6l-1.81,-0.41l-0.67,1.27l-1.44,0.51l-0.88,-0.46l2.44,-4.16l-0.84,-1.36l-1.28,0.23ZM299.5,310.16l0.53,0.27l0.45,0.46l-0.39,-0.06l-0.6,-0.66ZM287.58,182.41l6.55,-5.43l2.92,-0.38l3.03,-2.49l0.92,0.33l-1.17,2.49l-6.46,7.49l-2.56,1.32l-1.02,-1.78l-2.21,-1.55ZM219.8,246.37l1.52,-3.11l1.68,-0.43l-0.15,-1.48l1.45,-0.33l2.92,-3.8l3.01,-1.09l-0.3,-1.38l1.39,-1.18l0.37,-3.63l0.67,0.55l3.73,-0.49l0.42,-1.4l-1.4,-2.89l1.96,-1.12l3.44,-4.93l3.16,-1.5l0.96,-2.46l1.55,-0.35l1.1,-1.28l0.25,-1.97l-1.74,-1.84l1.12,-10.83l12.68,2.22l6.68,0.2l2.16,1.86l0.24,2.19l3.74,4.86l2.46,1.93l-1.97,2.47l0.11,1.84l0.74,-0.05l0.38,-1.36l2.29,-2.06l1.47,0.76l-0.4,2.36l-1.46,1.97l0.34,0.56l1.8,-0.08l1.7,-1.79l0.09,-1.82l0.98,-0.4l4.16,-0.06l3.39,2.19l2.27,4.11l3.45,9.67l1.44,1.82l0.81,3.18l-0.08,1.01l-3.31,1.88l-4.92,0.78l-21.54,8.24l-3.03,5.52l-0.93,0.52l-2.88,1.16l-2.62,-1.86l-0.7,3.3l-3.38,3.51l-1.26,5.18l-2.89,3.36l-5.75,0.43l-0.32,-1.92l-1.09,-0.53l-4.35,3.08l-3.99,0.69l-1.69,1.33l-1.8,-0.62l-0.51,-1.09l-0.33,-12.47l-5.62,-8.84l1.12,0.8l0.5,-1.07l-5.29,-2.0ZM279.35,469.63l-0.81,0.33l-0.13,-0.34l0.26,0.05l0.67,-0.04ZM278.07,469.33l-0.38,-0.18l-0.06,-0.16l0.41,0.07l0.03,0.27ZM275.16,468.95l-0.59,0.05l-0.03,-0.13l0.49,0.0l0.13,0.08ZM281.78,464.95l-4.05,-0.88l-0.14,-0.35l4.03,1.11l0.15,0.12ZM276.6,463.76l-0.13,0.17l-0.35,-0.58l0.41,0.41l0.07,0.01ZM276.39,464.3l0.36,0.54l-0.9,1.06l-6.11,-0.67l6.65,-0.93ZM269.08,465.37l-0.54,0.79l-1.14,0.56l0.84,-1.17l0.84,-0.18ZM278.74,175.78l-0.49,-0.42l1.55,-0.55l-0.56,0.63l-0.51,0.34ZM280.74,173.18l-0.05,-0.53l0.37,-0.4l-0.17,0.44l-0.15,0.48ZM265.82,295.59l0.41,0.33l-0.56,-0.18l0.16,-0.15ZM262.97,472.57l0.3,-0.5l1.01,-0.75l0.1,0.75l-1.41,0.49ZM264.57,470.49l-0.08,-0.04l0.12,0.01l-0.04,0.03ZM261.08,475.09l1.41,-0.74l0.34,0.01l-1.59,0.92l-0.17,-0.19ZM260.71,477.06l0.01,-0.01l0.26,-0.29l-0.23,0.28l-0.05,0.03ZM252.27,478.12l1.89,-0.13l2.85,-0.98l-2.56,1.2l-2.18,-0.09ZM253.39,475.23l0.88,-0.91l2.58,0.13l-1.27,0.75l-2.19,0.02ZM253.56,482.0l0.82,-1.36l0.08,0.05l0.52,0.89l-1.41,0.42ZM255.87,479.98l0.06,-0.04l-0.0,0.02l-0.05,0.02ZM252.51,480.41l0.2,-0.7l0.82,-0.39l-0.5,1.23l-0.52,-0.13ZM248.01,474.32l0.05,0.02l-0.05,-0.01l-0.0,-0.0ZM248.08,474.34l0.75,0.13l-0.24,0.0l-0.51,-0.13ZM221.25,374.75l-0.01,0.26l-0.25,-0.1l0.2,-0.1l0.06,-0.06ZM220.4,374.64l-0.4,-0.18l0.34,0.07l0.06,0.11ZM225.82,389.55l2.08,-1.35l0.69,0.67l-1.45,0.55l-1.32,0.13ZM226.56,364.82l0.55,-0.0l0.3,0.2l-0.94,0.2l0.1,-0.39ZM212.26,480.34l1.69,-0.47l1.05,1.42l-1.79,-0.03l-0.96,-0.92ZM198.62,367.19l0.57,-0.1l0.15,0.16l-0.12,0.1l-0.6,-0.17ZM192.01,266.81l0.3,-0.37l0.16,0.54l-0.24,0.16l-0.23,-0.33ZM134.31,262.76l0.12,-0.19l0.63,-0.37l-0.53,0.46l-0.22,0.1ZM132.82,267.14l0.27,0.07l0.02,0.08l-0.15,0.11l-0.14,-0.25Z", "name": "Northwest Territories"}, "nu": {"path": "M694.52,496.9l1.45,-0.41l1.5,1.75l-1.78,-0.16l-1.18,-1.18ZM682.85,477.29l0.06,-0.73l3.09,-1.55l2.28,-0.08l0.16,0.84l0.97,-0.11l0.46,2.5l-0.68,2.21l-0.48,-0.03l-0.07,-0.92l-1.47,0.05l-4.32,-2.18ZM458.76,294.96l0.81,-2.89l2.15,-0.98l0.63,-1.06l-0.43,-1.03l-1.73,-0.01l-0.34,-2.89l1.13,-2.2l0.18,-3.94l1.05,-0.04l0.7,-1.09l-0.42,-2.4l1.76,0.32l0.23,-0.85l-1.04,-1.03l1.57,-7.74l1.62,-0.71l-0.82,-1.1l0.61,-0.81l1.96,0.32l-0.1,-0.83l-1.25,-0.66l0.98,-1.74l5.77,-6.74l3.91,-2.04l3.49,-1.3l9.14,0.53l1.4,1.76l-4.2,4.64l-2.77,4.99l-3.85,10.54l-0.33,3.11l0.51,1.79l2.87,3.81l-0.94,7.56l0.38,2.71l2.15,4.67l4.81,6.14l3.81,1.67l0.83,2.53l-2.26,-0.26l-0.55,1.17l-1.27,0.17l-0.32,1.27l-1.2,-0.52l-1.85,0.77l-2.42,2.82l-3.81,1.88l1.46,0.7l2.86,-0.76l3.54,-3.28l1.99,-0.62l2.28,0.52l1.59,-0.81l-0.01,0.92l-1.91,0.79l1.09,0.43l0.39,3.17l1.59,0.09l0.64,-1.5l-0.58,-4.42l0.82,-0.76l-0.95,-1.67l0.13,-2.55l1.52,-1.47l-0.77,-4.04l-1.08,-0.95l-1.26,0.21l-0.19,0.88l-2.62,-0.82l-1.39,-1.8l0.57,-0.85l-1.02,-2.06l-2.93,-2.0l1.72,0.19l-0.23,-0.81l1.6,-0.72l0.77,-1.71l-0.74,-1.32l0.95,-0.96l2.07,0.23l3.15,2.51l2.6,3.96l0.62,-1.59l-2.0,-3.48l-1.33,-0.47l-0.71,-1.71l-1.53,-0.76l0.54,-1.17l1.87,-0.1l0.6,-1.22l-2.53,0.16l-0.02,-1.86l-2.05,1.96l-2.72,-1.64l-0.66,-1.5l0.9,-0.86l-1.62,-1.3l-0.08,-5.91l0.49,-1.27l2.32,0.46l8.46,3.95l0.2,-0.85l-7.54,-4.52l-1.19,-2.97l4.62,1.57l3.94,0.35l1.4,0.94l0.52,0.05l-0.06,-0.89l-1.15,-1.13l-5.25,-1.25l-3.8,-1.83l0.2,-2.03l1.57,-1.49l2.59,3.45l0.84,-0.07l-1.98,-3.94l2.49,-1.67l2.45,0.71l0.73,2.42l1.01,0.58l-0.44,-4.04l-2.15,-1.01l1.91,-1.63l2.87,-1.84l0.95,0.17l1.13,-1.93l8.12,-0.24l2.03,3.56l0.89,6.26l3.98,2.05l0.4,5.23l2.94,3.88l-6.36,11.46l0.38,0.63l1.13,-0.55l2.05,-4.19l1.74,-1.68l0.11,2.17l-1.34,1.85l-0.46,2.25l-0.79,0.26l2.08,1.84l-1.87,0.37l-0.52,1.02l0.41,0.94l1.41,-0.3l-0.92,3.15l0.58,0.45l1.15,-0.69l0.41,-1.77l2.28,-1.73l0.09,-1.6l-0.82,-1.04l1.41,-0.97l-0.47,-1.72l2.0,2.6l2.0,0.71l0.49,-0.54l-3.79,-3.93l1.65,-2.2l1.33,1.64l-0.92,2.03l0.5,1.05l1.2,-1.41l0.58,1.55l0.67,0.07l-0.54,-2.39l0.82,-2.03l2.22,2.2l-0.01,4.19l-0.91,2.69l3.67,0.78l1.42,1.23l0.72,-0.44l-0.94,-1.98l-2.18,-1.13l-0.11,-2.89l2.0,1.09l2.74,5.74l2.56,1.06l0.37,-0.6l-0.59,-0.47l0.48,0.2l0.58,1.0l0.46,0.13l0.31,-2.04l-1.44,-0.54l-1.99,-2.7l-1.25,0.05l-1.18,-2.89l-3.1,-1.8l0.23,-2.0l0.81,-0.64l1.53,3.78l0.7,-0.56l-0.84,-2.73l4.17,1.24l1.67,3.05l0.31,-1.89l1.65,-0.35l2.58,0.69l-1.25,-1.26l-2.89,-0.23l-4.95,-2.4l-2.16,-1.59l-0.28,-1.48l1.88,-3.33l3.54,-2.72l4.48,-0.37l1.9,2.09l3.11,0.45l1.17,2.53l0.66,-0.47l0.09,-2.19l4.86,1.25l2.44,4.69l-1.4,2.86l-2.51,-0.03l-2.91,2.14l-1.64,4.99l0.34,0.81l0.78,-0.31l1.65,-4.7l1.99,-1.69l2.53,0.44l-2.18,1.63l-0.21,3.99l-0.7,2.19l-1.44,0.77l0.37,0.84l2.18,-1.16l0.87,-5.95l2.2,-1.18l0.54,-2.42l4.77,0.15l0.92,0.9l0.31,4.15l-1.97,0.09l-0.85,2.3l-4.48,1.99l0.51,0.8l2.58,-0.61l-2.65,3.27l0.23,0.7l4.5,-4.29l-0.72,2.3l-1.41,0.53l-0.65,1.37l0.51,0.92l1.59,-1.43l-0.53,1.24l1.75,1.04l-1.73,5.16l0.85,-0.17l2.17,-4.96l-1.21,-2.74l0.93,-3.23l1.84,-1.94l-0.53,2.66l1.29,1.72l0.43,-0.58l-0.72,-1.5l0.93,-2.99l1.3,-0.61l0.43,0.98l-1.55,5.36l-1.77,1.59l0.33,0.71l1.37,-0.82l-0.44,2.48l0.69,0.43l-0.72,1.87l0.74,0.32l1.26,-3.14l0.14,-4.67l0.6,-1.12l0.55,0.31l0.3,4.12l0.97,0.29l-1.3,7.07l1.74,-1.05l-0.01,-3.42l1.24,-2.36l1.43,0.77l-1.0,1.14l0.37,2.74l-0.87,1.71l0.76,1.2l0.75,-0.22l-0.38,-1.22l0.66,-0.72l0.18,-3.34l1.11,-0.99l-0.55,-3.23l1.39,-0.8l-0.7,-1.6l1.11,-1.15l-0.11,-2.23l7.09,1.89l3.84,4.21l-1.34,4.44l-2.64,-0.48l-1.5,1.0l-1.3,4.83l-2.72,1.93l0.49,0.59l3.05,-1.76l0.6,0.28l-0.76,3.18l-1.54,1.42l0.84,1.0l1.6,-1.56l0.59,-2.29l3.77,-3.12l3.02,-0.31l-0.93,-1.5l0.25,-2.25l1.71,-2.07l1.16,0.31l1.43,3.02l-0.98,1.81l-0.07,2.43l-1.64,1.47l-0.41,2.01l-2.89,0.05l-0.55,3.73l-1.4,0.93l0.45,0.64l1.24,-0.56l-0.27,2.28l0.79,0.6l1.26,-6.02l1.72,-0.08l0.36,5.62l-0.83,5.48l0.79,0.18l0.98,-2.69l0.71,-8.86l-0.45,-2.09l6.26,-6.82l-0.21,2.66l-3.02,2.97l0.77,3.83l1.58,-1.31l-1.02,-1.74l2.5,-0.4l0.18,-1.3l1.9,-1.09l0.75,-2.36l1.58,-0.17l1.09,1.02l6.27,2.05l-0.34,3.45l-0.45,-1.6l-0.83,0.0l-0.14,3.21l-4.87,2.77l-2.19,2.43l-0.3,1.67l-1.71,2.25l0.92,0.23l0.52,-1.07l1.16,0.6l-2.02,0.92l-1.88,3.28l1.42,0.23l1.66,-2.94l2.17,-0.77l-0.68,-2.21l0.4,-1.35l6.26,-2.93l-0.07,3.04l-1.99,1.87l-1.36,3.53l-2.35,0.15l-0.71,1.11l-0.46,3.71l0.27,0.82l0.83,-0.16l0.69,-3.99l2.71,-0.23l1.41,-3.32l0.91,-0.9l2.28,-0.43l0.37,-2.31l1.97,-2.33l-1.27,-1.13l0.67,-2.95l2.01,0.73l3.74,3.23l1.93,2.18l1.76,3.93l-6.27,0.46l-1.77,3.58l-2.6,0.34l-3.44,3.23l-4.02,0.25l-1.72,0.89l0.07,0.9l1.28,0.36l1.62,-1.27l2.97,0.23l4.53,-2.87l4.88,1.63l5.57,-1.45l3.67,1.66l1.55,2.31l-0.24,1.15l-3.01,-0.29l-2.5,1.13l-5.72,-1.84l-6.46,0.58l-1.45,2.21l0.35,0.67l2.06,-1.92l4.11,0.37l1.46,-0.52l0.8,0.68l-6.03,1.08l-0.3,0.6l0.9,0.46l2.07,-0.62l-3.26,2.35l0.4,0.95l0.8,-0.48l0.07,2.84l1.08,-0.89l0.01,-2.02l2.87,-2.49l5.01,1.6l-1.57,1.24l-1.72,-0.31l-2.31,1.01l-0.02,0.97l1.91,-0.56l1.88,0.31l0.15,0.86l-2.9,0.05l-0.19,0.73l0.95,0.26l-1.58,0.41l0.24,1.08l-5.42,-0.71l-0.86,0.94l0.74,1.32l2.91,-0.38l0.31,1.19l0.89,-0.69l5.36,0.01l-1.22,1.14l-3.09,0.27l-0.95,1.34l0.31,0.64l3.61,0.04l0.45,-0.89l3.35,0.67l0.56,2.64l0.79,-0.88l-0.22,-2.22l1.72,-0.57l-0.53,0.96l0.8,2.28l-1.6,1.41l0.31,1.5l1.79,-1.47l-0.6,1.28l0.8,0.33l0.96,-0.69l0.55,-2.01l0.58,0.43l0.56,-0.92l0.88,0.18l-1.47,1.59l0.12,1.99l-1.73,0.21l0.58,0.87l1.94,-0.08l0.15,-2.53l1.34,-1.3l1.77,0.49l-0.39,4.49l0.95,0.37l0.82,-2.33l0.77,2.57l0.61,-0.83l-0.18,-2.76l1.41,-0.1l-0.96,1.14l1.84,-0.34l0.55,0.95l-0.76,3.14l-1.92,-0.02l-0.47,1.06l2.77,0.36l0.79,0.91l0.09,-3.94l1.35,-1.57l1.03,5.61l1.15,2.05l-0.29,-4.16l0.97,-2.03l-0.49,-1.05l1.69,-1.02l-0.18,4.17l3.55,3.47l0.41,-0.64l-0.92,-2.03l-1.79,-1.22l0.3,-2.6l1.38,-1.36l0.53,-2.01l2.04,0.51l-2.13,1.4l0.88,0.7l-0.9,1.04l0.09,1.47l0.94,-0.04l-0.8,1.83l0.42,1.53l0.85,0.05l0.02,-1.75l1.06,-1.77l0.29,1.67l1.08,0.0l0.39,-3.01l1.86,0.94l-1.5,1.87l0.5,0.54l2.2,-1.87l0.45,1.91l1.53,-0.23l0.25,1.77l-2.01,0.91l-0.13,0.76l1.32,0.31l1.95,-0.85l1.02,1.54l-0.3,0.73l-6.13,1.04l0.32,0.64l3.99,-0.1l-3.41,1.94l0.02,1.07l4.64,-2.24l-3.23,3.11l0.68,2.8l0.78,-0.41l0.29,-2.67l3.86,-2.21l0.36,-1.11l2.54,-0.87l0.14,2.09l-1.33,3.04l1.01,0.96l0.04,-1.63l1.77,-2.6l-0.25,-2.7l1.02,-0.27l0.09,-1.48l1.27,1.36l-1.64,2.84l1.15,2.57l-1.97,1.92l0.05,1.54l-1.63,0.7l0.46,0.73l2.68,-1.15l0.3,2.12l0.91,0.15l-0.3,-3.92l2.69,-2.39l1.91,6.56l0.57,-3.76l-0.93,-2.78l0.9,-0.23l2.94,3.38l0.85,-0.11l-2.02,-3.16l0.89,-1.25l-0.59,-1.65l0.99,-0.64l0.59,2.76l1.4,0.67l2.48,-1.02l-0.42,1.17l1.9,-0.0l2.62,2.39l-1.44,1.9l-1.63,-1.41l-2.47,-0.4l-1.53,2.28l1.11,0.54l0.85,-1.1l1.16,-0.0l2.51,1.93l-2.0,1.12l-0.45,1.57l3.33,-1.15l0.33,0.62l-1.74,0.77l-0.68,1.22l-2.06,0.07l-0.94,-1.55l-3.33,0.22l-0.67,1.52l1.19,0.3l0.67,-0.67l1.35,1.66l-1.47,1.5l-1.69,-1.64l-1.16,0.52l2.54,2.46l1.37,-0.8l3.11,0.43l1.48,1.82l-1.48,1.02l-1.88,-0.46l-2.09,0.56l-1.9,-1.83l-1.15,1.0l2.69,2.02l3.48,-0.01l-0.09,0.93l1.44,1.25l-1.99,0.71l-2.48,-1.31l0.46,1.66l2.55,1.16l-1.81,-0.21l-1.18,0.67l1.03,2.77l-1.94,-0.19l-3.62,-4.71l-1.02,0.17l2.44,4.42l-2.56,1.36l0.87,0.62l2.74,-0.07l-0.47,1.12l-1.48,-0.95l-0.06,1.62l0.97,0.67l-0.85,0.57l3.04,2.42l-0.33,2.51l0.71,1.05l0.88,-0.01l-0.39,3.16l-0.71,-0.48l-0.98,0.83l0.81,-0.75l-0.37,-0.81l-1.27,0.7l-0.49,-2.99l-0.88,0.34l-0.38,1.72l-0.85,-0.15l-0.05,1.31l-0.79,-0.78l0.87,-1.93l-0.86,-0.2l-1.53,1.14l-0.15,-4.85l-0.54,-0.34l-1.28,2.78l0.46,3.9l-1.3,-1.32l0.32,-0.69l-1.2,-0.53l-0.74,0.72l1.15,-1.55l-1.02,-0.51l2.37,-1.47l0.14,-1.53l-0.66,-0.44l-1.92,1.03l-2.38,2.45l-0.68,-0.57l-0.39,-0.92l1.43,-0.95l1.17,-3.45l-1.8,0.09l-0.53,2.51l-1.2,0.35l-0.18,-0.92l1.2,-1.96l1.26,-0.6l-0.05,-0.89l-2.03,0.6l-1.02,1.66l-1.71,0.12l0.07,-1.83l-0.9,-0.19l0.37,-2.25l2.59,-2.46l1.89,0.05l-1.12,-1.26l-0.07,-3.39l2.02,-3.11l-0.26,-1.14l-2.75,2.4l-0.76,4.42l-2.19,1.34l-0.68,1.46l-3.64,1.6l-0.61,-1.34l1.9,-3.13l0.51,-3.0l-0.49,-1.87l-0.82,0.26l-0.42,4.19l-1.85,1.91l-1.96,-1.27l0.08,-1.8l-0.91,1.0l-1.47,-0.11l-0.22,-1.13l-0.8,-0.16l0.48,-1.42l-1.86,1.32l-0.01,-1.41l-1.07,0.18l-0.29,-3.03l-3.02,-0.41l-0.33,0.65l1.3,1.39l-1.32,0.44l-3.38,-1.1l-1.64,1.75l0.65,0.65l3.31,-0.23l1.45,1.71l-1.41,-0.44l-0.63,0.73l2.54,1.48l-0.75,0.54l-3.37,-2.45l-1.21,0.06l-0.62,-1.05l-1.59,0.71l2.58,2.79l0.71,2.23l4.32,1.87l1.25,2.89l-1.14,-0.1l-0.36,0.99l-0.95,0.19l-1.16,-0.82l-0.63,0.35l0.43,1.06l-0.9,0.16l-1.24,-1.61l-0.02,-1.8l-2.32,-0.81l-0.78,-1.44l-1.08,0.43l-1.36,-1.55l-0.54,0.71l0.68,1.2l-2.73,1.06l1.68,0.75l1.7,-0.77l1.93,1.66l0.98,-0.34l-0.28,-0.56l0.87,0.64l-0.92,0.94l-1.22,-0.38l0.54,2.52l1.65,0.43l0.57,2.33l2.14,-0.51l-0.31,1.6l0.98,0.82l-0.66,0.16l-0.36,1.53l1.06,2.13l1.86,-3.65l2.1,-1.36l1.0,0.28l-0.84,3.01l1.43,0.98l1.74,-0.66l0.42,0.5l-2.45,2.15l1.09,0.59l0.61,-0.73l0.74,0.38l0.35,1.81l1.87,0.07l-0.75,2.75l2.93,0.13l0.51,0.75l-0.6,0.81l1.04,0.41l1.04,2.94l1.07,-0.96l-1.47,-4.21l3.15,2.35l1.08,-0.49l0.21,1.48l-1.08,0.93l1.08,0.23l0.57,1.18l0.9,-0.33l-0.13,-1.23l0.04,-0.29l0.53,1.04l0.72,-0.24l1.33,1.16l0.75,-0.38l-1.77,-2.91l0.08,-1.17l0.38,1.13l0.64,-0.23l0.45,2.13l0.78,-0.34l-0.19,-1.13l0.42,0.49l0.19,1.22l-1.03,1.45l0.96,2.23l1.61,-0.41l1.21,0.68l2.52,-1.24l-1.19,1.69l0.86,1.29l-2.62,0.09l-1.03,1.31l1.69,-0.21l-0.52,1.12l2.32,0.04l-0.54,1.3l1.7,-0.32l0.74,2.53l2.23,-0.34l0.5,0.75l0.9,-1.34l1.08,0.09l-1.53,1.95l-0.46,2.02l0.95,0.96l2.14,-0.06l1.74,1.04l-0.27,1.18l1.64,3.22l-0.97,0.64l1.28,0.68l-0.55,1.25l0.9,0.27l-0.51,0.23l-1.11,-0.91l-3.12,-5.31l-2.87,-2.59l-1.87,0.31l3.78,3.29l-0.64,0.99l0.77,1.77l-0.59,0.67l2.56,1.98l-1.19,-0.05l-0.53,1.14l1.27,1.72l2.63,0.42l-0.39,0.88l0.97,1.02l-0.06,1.3l1.26,0.59l-0.85,0.68l-2.59,-1.8l-0.65,0.89l-1.24,-0.34l4.6,6.01l-1.04,1.6l-1.8,-2.14l0.42,-1.04l-1.58,-2.97l-2.0,2.36l-1.49,-1.33l-0.57,-2.67l-2.36,1.98l-0.47,-1.12l-2.59,-1.17l-0.36,0.86l2.3,2.5l-2.22,-0.51l-3.65,-4.53l-0.14,-1.92l-0.72,0.04l-0.26,2.36l-0.83,0.26l0.7,1.87l-1.38,-1.03l0.36,-0.84l-0.93,-2.4l-0.93,0.26l0.37,2.04l-1.2,-0.16l-8.11,-7.18l-0.4,0.91l3.71,6.15l-4.19,-3.47l-0.79,0.11l-1.1,-1.62l-0.72,0.95l-1.29,-1.34l-2.46,-0.28l-0.19,0.97l-2.23,0.29l2.05,2.1l-0.06,0.88l6.19,4.57l1.06,1.94l2.68,0.57l0.26,1.45l0.99,-1.03l1.0,0.23l-0.45,0.99l0.92,1.52l1.18,0.53l1.56,-1.7l1.35,1.12l-0.52,0.84l1.63,-0.42l-0.25,1.11l1.32,-0.23l1.91,2.8l1.63,-0.84l2.41,1.54l0.95,2.34l1.55,0.16l-0.92,0.86l0.36,0.76l1.38,0.89l3.39,-0.2l-0.06,2.36l-0.75,-0.65l-0.63,1.02l1.25,1.91l1.95,1.23l-3.51,1.15l-3.64,-1.76l-3.28,0.37l-1.57,-0.92l-0.43,0.51l-0.56,-1.0l-11.24,0.57l-3.15,-1.87l-1.57,0.4l-1.67,-0.82l-0.9,-0.67l-0.77,-2.65l-0.67,1.08l-0.84,-0.79l-0.49,0.44l-0.5,-0.52l1.1,-0.91l-0.18,-1.79l-4.59,-0.09l0.32,1.1l-1.13,-0.32l-0.75,1.07l-1.42,0.12l-2.52,-1.63l-2.55,0.01l-0.22,-0.74l-1.26,-0.11l-0.63,-1.48l1.01,-1.89l-1.32,-0.83l-0.81,0.48l-0.15,1.58l-1.2,-0.09l-0.26,1.25l-1.15,-0.06l-0.18,-1.19l-2.62,-0.45l-0.01,-1.66l-1.15,-0.38l-0.4,-2.19l2.64,-1.94l1.06,-3.03l-2.33,0.05l-0.77,-0.38l0.15,-1.01l-2.36,-0.48l-1.64,-1.22l-1.53,2.05l-1.14,-0.8l1.0,-2.68l-1.09,0.32l-0.3,-0.9l-0.73,0.09l-0.88,2.78l-1.46,-0.6l-0.12,-2.77l-0.89,-1.25l-0.61,-0.22l-0.24,1.63l-0.64,-0.07l-1.06,-2.78l-1.29,-0.25l-0.78,-1.57l-2.81,-2.03l1.32,-3.66l-1.91,-1.59l-0.6,0.96l0.68,1.51l-0.77,-1.17l-0.98,0.41l-1.26,-1.16l-0.16,2.19l-1.68,-0.74l-0.59,0.55l-1.43,-3.04l-0.89,1.86l-1.92,0.44l-0.32,0.92l-1.6,-1.78l1.46,-2.42l-1.95,-1.23l-0.97,1.2l0.21,1.06l-2.14,0.85l5.01,3.85l-1.25,0.58l1.23,1.55l-1.02,1.15l-4.16,-1.4l-0.56,0.74l-5.24,-2.36l-0.66,0.66l0.31,1.11l1.25,1.18l-1.44,-0.25l-0.25,0.79l1.33,1.25l-1.42,-0.29l-3.18,1.42l-0.16,0.85l-2.85,0.86l0.25,1.83l-3.37,-1.4l-1.67,1.18l-1.64,-1.8l-1.4,-0.53l-0.65,1.01l-1.01,-0.4l0.18,-0.96l-1.38,0.16l0.23,-0.61l-1.94,-1.93l-0.47,-1.74l0.58,-3.71l-0.93,-2.07l3.67,-4.09l2.52,-1.32l-1.88,-2.8l1.66,-1.13l-1.25,-1.47l2.48,0.81l3.41,-0.38l7.68,2.38l0.82,1.41l2.51,1.24l0.41,1.5l-1.87,1.27l1.01,1.62l0.99,0.07l-0.18,1.52l1.75,0.96l0.9,-1.11l-1.68,-3.68l1.26,-0.56l0.06,-3.01l-0.99,-0.23l-0.4,1.88l-1.94,-2.57l-3.27,-1.88l1.79,-0.4l0.8,0.76l3.16,0.01l1.08,-0.93l-0.22,-2.0l2.56,-0.54l1.92,0.93l2.85,-4.62l1.06,0.43l1.52,-0.66l0.97,1.1l2.11,-0.37l-3.09,-6.4l-2.77,-1.27l-4.63,-4.88l6.7,-9.38l0.47,-2.31l2.72,-1.98l-0.57,-1.95l0.71,-4.69l2.8,-1.64l0.84,-1.87l0.01,-2.66l-1.36,-0.67l-2.24,-5.92l-1.49,-0.85l0.01,-2.17l-1.63,-1.76l-1.09,-0.18l-2.05,-6.75l-1.27,0.29l-1.56,-1.11l0.71,-1.45l-0.85,-0.81l-1.85,2.62l-2.05,-0.67l-0.84,-1.08l1.1,-2.31l-1.12,-3.85l-3.03,-0.48l-0.77,0.78l2.8,3.56l-3.02,-0.07l-1.14,-0.93l-1.95,-2.33l0.9,-2.17l-1.15,-0.58l-0.42,-1.6l-1.96,-0.45l2.21,-1.04l-1.72,-1.53l-2.01,1.99l-0.14,2.43l-3.08,-2.24l-0.47,3.0l-4.76,4.7l-1.75,0.63l-0.45,-1.23l0.68,-2.68l-0.97,-0.74l-0.22,-1.81l1.19,-0.86l3.37,0.52l1.44,-1.92l1.11,-0.14l-0.14,-3.68l-3.42,-2.68l-1.7,-0.62l-1.39,0.45l-2.08,-2.49l0.71,-1.96l1.85,0.5l-0.06,-1.84l-1.74,-0.47l-1.73,0.58l-0.26,0.56l0.86,0.42l-0.81,1.64l-0.82,-0.16l0.17,-1.07l-1.38,0.87l-1.26,-0.62l2.11,-0.67l0.62,-1.2l-0.94,-1.07l0.67,-1.5l-1.74,0.37l-0.4,-0.83l-1.71,0.78l1.88,-1.51l-0.3,-1.04l-4.26,3.03l-1.32,-7.62l-1.7,-1.3l-1.24,0.89l-1.16,-0.49l-0.97,1.04l-1.01,-1.45l0.52,-1.14l-1.65,-0.04l-1.43,-2.16l-1.85,0.18l0.94,-1.83l1.32,0.06l-2.58,-2.93l-1.55,1.42l0.97,0.71l-0.47,1.38l-0.86,-0.66l-1.19,1.92l-1.26,-1.9l-2.0,-0.79l-0.61,-1.5l-1.55,-0.0l-0.56,0.88l-1.0,-2.07l-1.84,0.25l-1.42,1.35l-2.01,-0.26l0.06,1.38l1.15,1.12l2.88,-0.22l0.96,1.23l1.36,-0.58l0.19,-0.9l1.32,0.13l3.63,2.75l-0.22,1.38l1.06,0.86l1.03,-0.19l1.43,1.13l1.2,-0.57l1.8,2.7l1.09,3.44l-0.59,2.38l-5.95,1.45l-1.74,-2.45l-0.89,0.39l-0.46,-0.81l-2.2,0.42l-1.6,-1.01l-9.18,-0.84l0.53,1.75l2.11,1.44l0.97,-0.67l0.69,0.48l3.45,4.13l-0.58,0.97l-4.99,-3.98l-0.07,-0.83l-1.35,0.04l-2.89,-2.78l-7.03,-3.72l-0.63,0.65l2.03,2.2l4.22,1.67l3.95,3.07l-0.83,1.43l-0.97,-0.26l-0.93,1.2l-2.06,-0.44l-5.56,-3.13l-3.56,1.76l-7.45,-0.82l-0.91,-0.57l0.02,-1.7l-1.29,1.08l-2.79,-0.72l-3.39,0.36l-0.71,1.52l-4.48,-4.09l-0.29,-2.53l1.96,-2.46l-0.76,-1.4l-2.55,3.48l-1.81,-2.18l-1.59,0.75l-0.84,1.74l1.76,0.28l0.14,1.23l-3.28,-0.82l-2.57,0.39l-3.84,-2.75l-2.22,-0.36l-1.4,-1.55l-3.86,-7.62l1.3,-0.38l0.48,-1.01l-2.06,-2.13l2.05,1.18l3.47,-0.53l1.43,0.48l0.66,1.5l3.26,0.51l3.83,-0.4l0.7,-1.35l1.65,0.38l0.42,-0.86l-5.34,-2.96l-0.88,-2.9l-1.91,1.23l-12.1,-2.48l-1.13,-5.32l1.61,-3.77l-2.16,-3.72ZM488.81,323.97l3.2,-1.19l3.79,-4.52l-1.07,0.06l-3.54,3.78l-2.78,0.91l0.39,0.97ZM474.79,330.37l0.28,0.24l0.75,0.17l-1.05,0.62l-0.53,-0.59l0.54,-0.44ZM473.0,330.18l-0.24,-0.03l-0.02,-0.02l0.21,-0.03l0.05,0.07ZM482.88,328.8l0.11,0.5l-0.87,0.03l-0.03,-0.17l0.79,-0.36ZM489.66,335.76l1.57,-0.65l1.38,0.68l-2.41,0.32l-0.54,-0.35ZM516.8,338.32l0.08,0.2l-0.05,0.1l-0.02,-0.01l0.0,-0.29ZM535.08,322.46l0.0,-0.02l0.01,0.02l-0.01,-0.0ZM550.44,335.16l0.41,-0.09l-0.17,0.82l-0.12,-0.36l-0.11,-0.37ZM574.5,352.3l0.32,0.6l-0.22,0.09l-0.34,-0.24l0.25,-0.45ZM587.32,361.34l-0.15,0.27l-0.05,0.15l0.03,-0.41l0.16,-0.01ZM582.58,432.13l-0.03,0.04l0.02,-0.03l0.02,-0.01ZM595.87,437.1l0.4,0.28l0.14,0.44l-0.7,-0.43l0.16,-0.3ZM596.59,438.06l0.17,0.24l-0.2,0.4l-0.6,0.52l-0.32,-0.49l0.95,-0.67ZM596.09,440.16l0.05,1.42l-0.31,0.11l-0.08,-0.87l0.34,-0.66ZM595.73,441.72l-0.02,-0.02l0.04,-0.0l-0.01,0.02ZM601.21,436.6l-0.0,0.19l-0.07,0.04l0.01,-0.01l0.06,-0.21ZM601.53,439.34l-0.21,0.44l-0.21,-0.16l0.05,-0.3l0.37,0.02ZM602.53,440.7l-0.02,0.19l-0.36,0.35l-0.06,-0.15l0.44,-0.39ZM602.26,441.69l0.22,0.2l0.05,0.16l-0.23,-0.16l-0.03,-0.2ZM611.9,449.73l0.04,0.02l-0.05,0.01l0.01,-0.03ZM613.57,450.64l0.12,0.99l-0.1,0.01l-0.22,-0.97l0.21,-0.02ZM615.69,450.49l0.09,-0.01l-0.03,0.11l-0.01,-0.03l-0.04,-0.08ZM616.43,450.22l0.17,-0.03l-0.0,0.12l-0.01,0.01l-0.15,-0.11ZM620.64,452.03l0.0,0.12l-0.28,0.07l-0.0,-0.12l0.28,-0.07ZM662.89,449.16l1.85,2.25l-0.68,0.81l-0.41,-1.74l-0.76,-1.33ZM672.43,451.68l0.27,0.56l-0.74,0.85l0.19,-0.89l0.28,-0.52ZM677.9,454.39l-0.21,0.16l-0.02,-0.11l0.23,-0.04ZM649.96,390.46l0.52,0.44l0.09,0.2l-0.45,-0.05l-0.16,-0.58ZM680.53,409.14l0.0,0.01l-0.0,0.01l-0.0,-0.01ZM680.49,409.43l0.0,0.21l0.09,0.26l-0.18,-0.29l0.09,-0.18ZM678.41,399.12l0.0,-0.0l0.02,0.01l-0.02,-0.01ZM682.12,392.93l1.68,0.43l-0.8,1.15l-0.46,-0.47l-0.42,-1.1ZM630.78,350.05l-0.21,-1.8l1.24,-0.25l0.07,1.13l-1.1,0.92ZM633.93,349.02l0.23,-1.09l0.75,0.21l-0.06,0.86l-0.92,0.02ZM635.3,347.75l0.31,-0.27l0.31,-0.07l-0.19,0.29l-0.43,0.04ZM624.0,340.87l0.04,0.01l-0.01,-0.0l-0.03,-0.01ZM522.82,287.99l0.09,0.04l0.16,0.16l-0.08,-0.03l-0.17,-0.18ZM490.73,269.27l-1.65,0.1l0.29,-1.42l0.24,0.46l1.12,0.86ZM527.85,279.51l-0.04,-0.23l0.12,0.06l-0.09,0.17ZM541.86,292.0l-1.03,-0.78l-1.11,-1.72l0.33,-0.2l1.8,2.7ZM574.47,296.36l-0.01,-0.14l0.08,0.1l-0.07,0.04ZM622.2,341.87l0.57,-0.05l0.37,0.23l-0.06,0.02l-0.88,-0.2ZM621.18,347.72l0.29,-0.42l0.66,0.04l-0.11,0.11l-0.85,0.26ZM652.5,357.13l0.08,-0.22l0.02,0.06l-0.1,0.16ZM662.71,366.06l0.84,-0.66l-0.06,0.71l-0.78,-0.04ZM681.52,367.13l0.1,-0.69l1.1,0.24l-0.11,0.28l-1.08,0.17ZM663.42,400.33l-0.06,0.03l-0.14,0.26l-0.05,-0.25l0.25,-0.03ZM653.13,413.38l0.02,-0.07l0.01,0.04l-0.03,0.03ZM663.69,417.31l0.03,-0.16l0.0,-0.05l0.04,0.06l-0.07,0.15ZM655.95,454.61l0.2,-0.08l0.01,0.01l-0.0,0.01l-0.21,0.05ZM656.38,456.41l0.17,-0.67l0.69,-0.27l0.05,0.1l-0.91,0.84ZM672.06,466.54l-0.48,-0.52l-0.04,-0.19l0.99,0.26l-0.47,0.44ZM626.86,462.8l-0.05,0.04l-0.35,0.13l0.03,-0.16l0.37,-0.02ZM618.54,456.26l-0.06,0.22l-0.83,-0.15l0.45,-0.09l0.44,0.02ZM539.2,319.9l-0.1,-0.03l0.05,-0.09l0.05,0.11l0.0,0.0ZM536.94,321.66l0.12,0.79l-0.07,0.39l-0.29,-0.51l0.24,-0.67ZM685.1,391.66l0.88,-0.12l1.42,0.57l-1.42,0.29l-0.89,-0.74ZM683.01,459.85l0.95,-0.38l-0.34,-1.43l3.06,-0.11l-0.67,2.54l-3.01,-0.62ZM683.38,471.15l0.86,-0.49l2.63,2.61l-2.13,-0.41l-1.36,-1.71ZM680.79,436.67l0.47,-0.31l1.46,3.68l-1.98,-3.03l0.04,-0.33ZM682.98,440.44l1.1,0.65l0.41,0.67l-0.53,-0.25l-0.98,-1.07ZM681.47,458.53l0.32,-0.72l0.69,-0.02l-0.6,0.62l-0.41,0.12ZM677.24,433.12l0.03,-0.86l1.16,1.1l0.02,1.05l-2.14,-0.09l-0.04,-0.8l0.98,0.49l-0.01,-0.9ZM678.58,434.5l0.26,0.02l0.12,0.08l-0.11,-0.06l-0.27,-0.04ZM679.77,434.88l0.31,-0.35l0.23,0.91l-0.36,-0.42l-0.19,-0.15ZM677.9,474.82l0.38,-0.71l0.86,0.37l-0.56,0.47l-0.68,-0.12ZM674.31,366.81l0.01,-0.0l0.0,0.01l-0.01,-0.0ZM674.45,366.24l0.79,-2.28l0.92,-0.55l-1.2,2.63l-0.51,0.19ZM665.85,422.28l0.83,-2.73l0.99,-0.49l0.41,0.37l-1.19,1.04l0.24,0.64l-1.29,1.17ZM665.47,364.06l0.62,-1.05l0.64,0.74l-1.26,0.31ZM666.81,363.73l0.66,-0.69l0.48,0.21l-0.28,0.27l-0.87,0.22ZM664.13,502.89l2.55,1.52l0.12,0.98l-0.75,1.66l-2.74,2.42l-0.16,-2.82l0.98,-3.76ZM662.22,358.47l1.11,0.82l0.23,0.27l-1.19,0.41l-0.15,-1.5ZM639.41,351.83l1.43,-0.74l0.22,0.76l-1.65,-0.02ZM626.82,465.8l0.25,0.01l-0.2,0.0l-0.05,-0.01ZM627.85,465.83l1.97,0.06l3.4,1.22l0.33,1.3l2.02,0.82l-1.39,1.1l-2.46,0.16l-1.59,-2.69l0.48,-1.3l-2.74,-0.68ZM625.81,343.56l0.73,0.13l-0.17,0.02l-0.56,-0.16ZM624.08,326.81l0.98,-1.23l0.85,0.24l-1.04,0.31l-0.8,0.68ZM619.86,326.49l0.75,-1.58l1.91,-0.31l-0.76,2.34l-1.9,-0.46ZM610.7,452.69l0.01,-0.01l0.0,0.02l-0.02,-0.01ZM597.03,474.35l0.51,-0.32l0.93,0.8l-0.8,-0.03l-0.64,-0.45ZM598.82,475.02l2.06,-0.45l1.34,0.64l-0.8,0.22l-2.61,-0.41ZM598.97,437.76l0.38,-0.55l0.19,-0.09l-0.03,0.69l-0.54,-0.05ZM599.8,438.49l0.12,0.08l0.02,0.12l-0.07,-0.1l-0.06,-0.1ZM599.75,439.54l0.16,1.13l-0.14,0.22l-0.37,-1.33l0.36,-0.02ZM585.53,305.08l0.88,-0.56l0.39,-2.98l3.58,0.52l-0.02,1.53l-3.57,2.95l-1.26,-1.45ZM580.11,367.21l0.33,-1.37l0.5,1.93l4.05,0.91l2.48,-0.49l1.1,3.69l-7.41,1.27l-1.1,-0.39l-2.06,-2.68l-0.25,-1.55l2.03,-0.52l0.32,-0.79ZM579.24,359.67l1.96,2.08l-0.27,1.41l0.09,-1.13l-1.78,-2.35ZM575.22,680.92l0.71,-0.09l2.49,-1.73l-0.66,2.13l-2.24,0.45l-0.3,-0.76ZM578.3,290.03l0.13,2.03l-1.22,-0.22l0.14,-1.53l0.96,-0.29ZM574.93,293.48l1.17,-0.64l-0.34,1.92l-0.69,-0.8l-0.14,-0.48ZM575.81,294.96l0.04,0.13l-0.04,-0.01l-0.01,-0.11ZM576.17,295.58l0.78,-0.24l0.48,-1.68l0.6,0.68l-1.02,0.89l0.3,1.54l-1.02,-0.28l-0.11,-0.92ZM577.62,297.27l0.03,0.05l-0.01,0.06l-0.02,-0.0l0.0,-0.11ZM570.07,460.89l0.38,-0.61l-1.05,-0.3l0.31,-0.59l5.52,1.64l0.68,1.7l0.75,0.13l-0.55,1.35l-2.27,-0.41l-3.77,-2.91ZM576.74,357.28l-1.38,0.21l-0.19,-1.49l0.51,0.07l1.05,1.21ZM560.18,382.36l-1.12,-3.84l0.23,-2.62l2.93,-9.21l2.5,-1.76l1.8,0.45l1.21,-1.15l5.94,1.24l1.19,1.62l-0.56,4.02l2.13,6.58l-0.39,2.68l-1.49,2.72l-3.6,2.73l-8.12,1.49l-2.64,-4.94ZM571.22,358.9l0.19,-3.03l1.7,0.28l2.32,3.53l-0.81,0.96l0.75,1.57l-4.15,-3.31ZM573.96,604.3l0.57,-3.93l0.69,-1.52l0.38,4.28l-1.64,1.18ZM570.68,628.55l0.13,-0.06l0.12,-0.02l-0.25,0.08ZM564.16,610.52l-0.85,-0.98l3.48,-5.9l-0.32,2.08l-2.31,4.8ZM567.38,604.86l1.4,-1.14l0.56,-6.2l0.95,0.09l0.62,1.43l1.16,0.56l-4.02,10.22l-1.02,-0.49l1.41,-3.88l-1.05,-0.59ZM572.63,599.58l-0.23,-0.07l0.17,-0.06l0.06,0.13ZM451.63,52.33l1.56,-3.16l1.89,0.11l-0.13,-1.92l1.49,-0.25l1.71,-1.54l1.13,0.37l0.59,-0.57l2.17,2.8l0.84,-3.22l0.82,-0.72l-0.15,-2.05l3.63,-2.72l2.38,0.61l0.73,1.43l-0.38,1.72l2.5,2.18l0.47,-1.14l-1.45,-1.29l1.06,-0.68l-0.66,-1.47l1.06,-0.2l2.4,0.99l2.7,4.64l0.71,-0.68l-1.58,-3.63l1.35,0.05l1.51,3.07l1.7,-0.06l-0.86,-3.52l-8.11,-3.87l-0.59,-1.76l4.47,-0.92l1.33,-1.24l-0.58,-3.99l-1.58,-0.96l4.05,-1.1l-0.83,1.66l1.63,0.69l0.67,1.21l2.81,0.12l0.96,1.15l2.25,4.98l-0.2,2.0l4.05,0.0l1.0,0.66l0.49,-0.55l-1.19,-1.97l-2.04,0.12l-1.94,-4.74l9.99,7.64l2.31,0.6l2.48,3.92l1.54,0.16l0.34,-0.63l-3.32,-4.51l0.05,-1.23l-4.63,-1.93l-0.24,-1.77l-1.54,0.07l-6.04,-5.8l0.48,-3.29l4.06,-0.38l-3.44,-2.58l-0.39,-1.53l0.72,-0.58l2.38,0.96l2.28,2.63l1.59,-0.26l0.08,-1.06l-4.38,-7.22l4.14,0.81l0.95,3.03l1.43,1.1l0.74,-0.57l-0.81,-1.5l2.82,1.01l2.43,-0.47l0.15,-1.16l-5.43,-1.65l-0.3,-1.04l1.01,-0.78l-3.03,-1.61l3.22,-2.36l1.36,2.63l0.78,-0.04l0.59,-2.17l0.65,2.75l2.04,0.49l0.61,-2.92l2.57,1.25l2.99,5.34l2.82,2.06l-0.8,3.78l0.92,0.76l2.45,-6.0l-3.57,-2.25l-0.47,-1.1l1.07,-1.12l-1.73,-0.32l-1.4,-2.41l-3.04,-2.84l4.22,-2.08l6.94,0.36l2.12,3.85l6.09,4.05l0.1,-1.56l-2.6,-1.39l-2.64,-3.56l2.43,-5.33l0.9,0.3l0.55,-0.94l1.89,-0.25l-0.21,2.37l1.45,2.23l3.16,1.29l0.2,-1.2l-2.9,-2.53l1.81,-3.13l3.37,-0.89l0.09,1.56l1.08,0.42l-0.26,1.14l0.82,0.44l1.53,-1.47l0.8,1.19l2.44,-1.16l0.54,1.8l2.03,-1.43l3.02,0.63l1.4,-0.92l-0.86,3.66l-5.49,6.35l0.73,1.25l4.23,-1.92l1.09,-2.02l1.64,-0.62l-0.23,-1.32l2.08,-3.05l0.9,-0.26l0.4,1.56l1.64,0.18l0.28,-0.66l-0.86,-0.58l0.4,-1.87l-0.54,-0.45l0.07,-0.42l0.32,-0.16l-0.04,0.76l2.83,2.83l0.62,-0.25l0.42,-2.32l2.18,-0.33l0.41,1.66l-1.26,1.57l2.95,1.54l0.15,1.36l1.46,0.06l0.29,3.25l-0.65,1.25l1.78,-0.54l0.71,-2.33l0.83,-0.34l0.87,1.08l0.38,-0.7l2.02,-0.25l2.75,2.8l0.71,4.57l-2.15,2.43l0.74,0.97l-0.64,2.61l-0.85,0.33l0.11,1.15l-3.8,6.69l-1.76,-0.44l1.06,2.04l-0.55,1.01l-4.04,0.04l-0.13,0.98l-2.31,1.76l0.2,0.86l1.88,-0.26l-0.64,0.83l-0.79,-0.44l-0.64,1.0l-7.69,3.8l-5.83,-3.2l0.44,1.16l4.34,2.87l-1.89,0.74l1.62,0.97l5.23,-2.85l2.62,0.55l-6.68,7.85l-1.32,1.21l-1.66,-0.02l-0.48,1.99l-2.52,1.31l0.8,1.26l1.09,-0.38l-0.52,1.89l15.77,-15.26l4.02,-2.71l0.76,1.57l-2.32,6.44l-2.19,1.91l-1.5,5.88l-1.61,3.14l-1.56,0.46l0.34,2.06l-4.21,8.21l-0.47,6.44l-0.92,1.26l-2.31,0.45l-0.87,-2.93l-2.64,-2.17l-0.76,0.28l2.83,3.95l0.14,2.03l2.67,1.65l-0.45,1.72l-2.6,0.08l-3.72,3.24l-1.47,-1.63l-2.54,-0.39l0.07,0.86l2.62,1.91l-2.03,1.1l0.77,1.03l4.03,-1.03l3.21,-2.6l0.66,0.72l-0.33,2.62l-2.68,1.86l-0.36,1.03l0.33,1.05l2.27,-0.58l-0.4,2.42l-4.23,4.11l-1.84,0.03l-1.35,-0.56l-0.5,-2.83l-4.08,0.49l-0.28,-0.99l-2.72,-0.24l-2.5,1.54l0.32,1.26l0.77,0.8l1.63,-0.58l4.43,0.49l2.07,4.38l-0.5,1.48l-1.61,0.49l-0.93,-1.22l-0.93,0.11l0.45,2.43l-1.01,0.71l-1.9,0.07l-2.03,-1.35l-0.44,1.08l0.94,2.58l-2.15,-0.19l-1.87,-1.27l-0.64,0.63l-1.33,-1.41l-5.02,-0.68l-0.29,1.22l0.64,0.86l-1.39,1.07l1.3,2.66l-3.18,-0.69l-0.99,0.91l3.65,1.7l-0.49,0.59l0.52,0.53l3.25,-1.28l2.94,-0.36l1.32,0.83l6.71,-0.97l-1.36,1.41l2.36,2.8l-2.7,0.6l-3.21,-0.78l-0.96,-1.92l-1.52,-0.97l-10.24,1.71l-0.61,0.97l0.81,0.74l0.7,-0.57l6.41,-0.12l2.91,0.69l-2.7,0.07l-3.72,2.2l-2.89,-1.13l-4.07,0.92l0.31,0.97l4.62,-0.44l0.75,0.49l-2.04,5.75l0.52,1.3l0.79,-0.47l1.62,-5.07l4.43,-2.33l4.73,0.72l-3.04,2.71l0.21,1.2l3.65,-1.75l3.91,0.39l1.2,3.12l-0.16,2.11l1.14,0.67l-3.09,2.42l-5.59,0.06l-1.11,0.86l0.08,0.94l2.77,-0.28l0.49,0.95l5.32,1.54l0.39,0.76l-1.37,0.5l-0.8,2.86l-5.32,-0.57l-1.6,1.33l0.25,1.1l1.78,0.65l5.04,-0.02l-0.83,3.39l-1.94,-0.74l-2.9,3.31l-1.48,-0.86l-3.65,0.65l-2.4,-1.05l-0.83,2.83l2.74,2.17l0.02,3.58l1.96,1.17l-1.13,1.17l0.25,1.4l-1.46,2.03l0.24,1.16l-2.0,1.75l0.12,-1.32l-0.64,-0.26l-1.79,2.52l-2.82,-0.37l-1.66,1.19l-2.98,-0.37l-4.19,-2.62l-3.75,-5.91l-0.93,0.02l0.24,2.06l1.48,2.19l-0.06,2.42l3.22,1.92l-3.2,1.07l-2.05,-0.28l-0.12,0.9l1.53,0.95l0.7,2.19l1.08,-0.09l3.07,-3.13l5.01,1.29l-1.18,2.84l0.85,0.62l1.7,-3.13l1.38,-1.38l1.27,-0.05l2.13,1.41l0.32,1.24l-1.49,3.21l0.08,1.68l2.71,-0.42l-0.27,1.92l1.75,0.6l1.69,-4.7l1.05,-0.55l2.45,4.33l0.24,3.88l-1.27,0.71l-0.37,2.68l-1.13,1.56l-0.61,-0.43l0.05,-1.71l-1.96,-0.2l-2.11,6.92l-1.45,-0.21l-2.66,2.31l-0.96,-0.18l-2.11,1.39l-0.3,0.82l-1.76,-0.81l1.08,-5.22l-2.54,-1.91l-0.2,-1.2l-0.72,-0.08l-1.38,2.18l-2.71,-0.68l0.08,-2.08l1.15,-2.18l-2.86,1.39l-2.8,-4.26l-0.73,0.8l1.63,3.45l2.4,1.97l-0.52,1.16l0.56,2.12l-3.0,0.93l-1.64,-1.42l-0.33,-2.96l-1.7,-2.06l-0.03,-2.0l-0.6,-0.34l-0.99,1.82l1.81,3.15l0.53,3.63l-2.22,-0.37l-3.6,-5.43l-0.91,0.48l0.76,1.13l0.21,3.65l-1.88,0.31l-1.58,-2.85l-1.33,-0.41l0.58,4.26l3.36,2.1l-4.06,0.78l-0.6,-0.7l-6.11,-1.47l-0.25,-1.66l1.11,-1.5l-2.76,-2.97l-0.46,0.74l1.83,2.29l-1.82,1.26l-0.29,2.61l-1.72,-0.52l-0.45,-1.58l-1.19,-0.11l-1.11,-3.97l-0.72,0.62l0.31,3.91l0.65,0.8l-0.75,1.5l-1.01,-1.89l-0.79,1.24l-2.32,-0.55l0.37,-2.67l-0.99,-2.63l-0.07,-5.11l-0.8,0.13l-0.92,2.26l0.57,2.6l-0.79,0.78l-0.85,4.21l-2.3,-1.8l-0.27,-2.03l-0.94,0.26l1.39,-4.03l-0.8,-2.86l5.95,-5.28l0.12,-1.01l3.66,-0.38l0.48,0.85l1.2,-0.21l0.63,-0.4l-0.3,-1.35l1.25,-0.33l1.53,1.4l1.48,-1.96l-2.98,-0.83l1.23,-1.3l-1.69,-0.5l1.99,-1.15l0.01,-0.73l-4.62,0.26l-0.15,-4.55l-2.79,-2.63l0.44,-3.88l4.54,-2.14l3.75,1.53l2.52,2.87l1.71,7.39l1.03,-0.76l0.8,1.14l2.38,0.43l1.45,1.48l1.65,0.4l0.48,-0.5l-0.84,-2.1l2.49,-0.07l3.23,1.12l0.52,-0.45l-0.4,-1.35l-1.77,-1.17l2.25,-1.39l1.88,-4.33l1.83,-6.33l-0.38,-2.63l1.24,-1.34l-0.41,-0.77l-0.98,0.14l-1.53,1.65l0.25,2.82l-0.9,1.02l-2.07,7.08l-1.97,2.55l-4.9,-0.47l1.84,-3.58l-0.42,-1.99l-2.31,3.72l-1.72,-1.12l0.44,-2.92l2.4,-2.71l1.84,0.19l0.09,-0.86l-1.56,-0.74l-3.62,0.67l-0.97,0.87l-0.93,-1.03l2.79,-2.91l1.78,0.54l2.49,-1.51l-0.36,-0.64l-2.77,0.8l-1.0,-0.8l0.37,-1.3l1.6,-0.84l2.34,0.89l1.11,-0.92l-2.53,-1.11l-2.44,0.46l0.57,-2.56l1.25,-0.99l-0.23,-0.79l-1.27,0.23l0.69,-6.07l-0.66,0.0l-0.89,2.18l-0.75,6.02l-1.81,4.32l-3.64,1.46l0.11,-1.87l1.51,-2.15l0.0,-4.26l-2.21,4.77l-1.49,-0.07l-1.1,2.26l-3.45,-0.05l2.24,-1.71l-1.13,-0.98l-1.15,0.28l-0.09,-5.02l1.57,-2.69l1.71,-0.45l-0.33,-1.08l-1.04,0.08l2.22,-5.38l4.35,-0.89l3.22,-2.37l1.72,1.18l4.75,0.51l3.08,2.66l1.99,0.73l2.71,3.07l0.94,-1.28l-1.92,-2.43l1.56,-0.41l-0.12,-1.19l-0.92,-0.38l-1.93,0.76l-2.3,-2.0l3.89,0.23l1.97,-1.17l1.55,0.41l0.13,-4.04l0.84,-1.58l-0.78,-1.1l-1.85,1.67l-0.92,2.69l-1.67,0.83l-2.17,-1.17l-6.62,0.01l-2.36,-1.93l0.97,-2.21l1.34,0.33l1.16,2.03l2.71,0.4l0.81,-1.0l-3.25,-2.16l-0.3,-2.48l-1.44,0.92l-1.21,-5.65l-2.04,-1.92l-0.94,-3.5l-1.66,-1.68l-5.45,-1.76l0.13,-5.04l3.58,0.7l1.1,0.9l0.84,-1.01l-1.65,-1.5l-4.58,-1.39l-0.61,-2.66l0.47,-4.47l2.35,-0.75l2.91,1.75l6.82,0.0l8.29,9.68l1.21,3.72l1.52,0.99l-0.35,1.77l0.89,0.78l1.35,-1.36l3.9,1.55l0.25,-1.04l3.1,-1.46l0.78,-1.84l-0.48,-0.53l-5.1,1.93l-2.93,-1.38l-1.1,-4.55l1.05,-1.31l-3.86,-1.89l-5.31,-7.57l12.41,-4.94l1.19,-1.65l9.01,-2.3l-0.18,-1.51l-8.12,0.6l6.89,-5.55l7.25,-2.54l-0.0,-1.15l-0.9,-0.71l-6.21,0.77l-3.59,1.59l-0.31,-3.3l1.55,-3.08l-0.13,-1.8l1.14,-0.81l1.79,-3.84l2.17,-1.99l1.05,-2.43l-1.11,-0.39l-5.09,5.04l-1.84,3.71l0.04,2.02l-3.46,-2.08l0.19,1.27l1.88,2.04l-0.89,2.04l0.81,1.51l-1.36,3.73l-5.1,5.15l-6.47,3.44l-2.88,0.56l0.06,-2.18l4.03,-2.58l1.53,-3.04l-1.59,-0.63l-2.52,2.89l-3.57,1.37l-0.11,-0.89l1.71,-2.36l-1.42,-0.71l-1.54,2.61l-0.89,-0.11l0.78,3.85l-0.34,2.24l-2.15,0.9l-2.45,-0.37l-0.92,0.72l-2.85,-0.66l1.04,-2.46l-1.46,0.68l-1.13,1.77l-2.57,-1.54l3.77,-9.32l2.48,-2.15l10.36,-3.87l1.42,-0.97l0.25,-1.18l-15.16,5.18l-2.55,3.23l-3.68,8.19l-1.52,-0.28l-5.52,-4.12l-2.24,-3.03l4.25,-1.92l3.52,0.41l4.2,-0.87l1.82,-1.89l1.94,-0.42l-0.13,-1.51l4.29,-3.96l0.25,-1.51l-2.63,0.01l-2.72,1.88l-2.58,3.29l-3.64,1.65l-2.07,-0.21l-8.46,1.96l-1.28,-1.35l-0.52,-3.13l1.09,-1.27l1.94,1.0l2.9,-1.73l-0.72,-0.69l-1.46,0.36l-2.15,-1.84l3.74,-3.35l0.85,0.04l-0.24,-1.23l3.26,-0.87l3.07,1.13l0.75,-0.39l-0.28,-0.99l-4.96,-2.2l-8.72,6.37l-1.32,-2.12l5.1,-4.06l0.23,-0.89l-1.89,-0.43l-1.67,-2.12l-0.45,1.26l-1.34,-0.39l-1.34,1.78l0.02,1.51l-1.09,0.35l-0.29,-1.24l-1.85,-0.94l0.27,-0.49ZM467.22,187.34l-0.02,0.7l0.08,0.54l-0.23,-0.5l0.17,-0.74ZM511.4,194.3l-0.08,0.24l-0.06,0.04l0.07,-0.21l0.07,-0.07ZM521.76,108.32l4.22,-0.05l0.38,1.75l1.07,0.74l-3.95,0.26l-1.72,-2.7ZM462.41,44.68l-0.48,-0.1l0.11,-0.41l0.37,0.52ZM479.98,42.56l-0.16,-0.42l0.09,0.02l0.07,0.4ZM553.75,2.1l0.09,-0.05l0.0,0.03l-0.09,0.01ZM485.99,154.18l-1.65,1.09l-0.22,-0.13l0.52,-1.19l1.35,0.23ZM569.79,661.05l-0.05,-0.21l0.07,-0.55l0.68,0.7l-0.69,0.06ZM569.0,481.37l0.25,0.11l-0.12,0.21l-0.05,-0.02l-0.08,-0.31ZM566.07,517.84l0.13,-0.53l1.96,-0.83l-0.06,0.3l-2.04,1.05ZM560.16,465.59l2.1,-1.05l3.51,-0.14l0.32,0.76l1.55,0.15l1.51,2.38l-0.35,1.42l-2.69,1.96l-5.95,-5.48ZM567.74,657.21l0.59,-0.24l0.46,0.97l-0.38,0.0l-0.67,-0.73ZM567.08,481.73l0.79,-0.2l0.12,0.15l-0.37,0.09l-0.54,-0.03ZM563.91,454.17l0.28,-0.52l2.0,-0.55l-0.62,1.38l-1.66,-0.3ZM561.74,604.49l0.36,-1.75l3.07,-1.32l-2.77,2.79l-0.66,0.28ZM562.62,591.14l0.29,-0.1l0.15,0.19l-0.33,-0.12l-0.11,0.03ZM561.9,579.26l0.03,-0.21l0.16,-0.38l0.23,0.82l-0.42,-0.23ZM562.22,593.87l-0.14,-1.09l0.27,-0.29l0.22,0.48l-0.34,0.9ZM546.79,664.8l1.55,-2.51l4.66,-1.23l3.06,0.13l4.08,4.11l1.48,3.29l-3.39,-0.09l-11.44,-3.71ZM555.47,342.98l2.64,-0.2l0.34,1.06l-1.68,2.76l0.27,1.38l-1.29,0.66l-1.48,-1.7l-0.39,-3.32l1.12,-1.0l0.47,0.38ZM548.37,497.83l-0.35,-4.63l1.73,-5.02l1.16,-0.82l1.47,0.44l0.98,-0.93l2.54,2.46l0.32,2.13l-3.07,11.1l-4.6,-3.84l-0.17,-0.89ZM554.12,536.8l0.54,-0.67l0.8,0.1l-0.82,1.01l-0.52,-0.44ZM553.2,539.49l0.02,-0.17l0.05,0.01l0.01,0.12l-0.07,0.05ZM518.38,254.51l0.02,-3.28l1.94,-0.65l2.28,1.5l0.72,-0.61l3.81,1.55l8.24,-1.79l4.72,1.82l1.83,1.34l1.29,2.82l2.0,0.59l1.36,3.33l2.32,1.15l0.14,2.91l1.58,0.57l0.16,1.42l-1.02,0.76l-12.46,-0.08l-6.24,4.05l-2.27,0.18l-2.95,-1.96l-1.55,-3.7l-0.47,-4.43l-4.24,-0.78l-0.48,-0.67l-0.23,-3.23l0.9,-0.63l-1.39,-2.18ZM542.4,343.23l1.71,-3.49l2.32,-0.76l0.1,-1.74l0.81,0.38l0.67,1.17l-0.8,1.23l-4.81,3.21ZM539.83,355.35l1.02,-3.29l1.77,-0.72l1.11,-3.34l0.91,-0.14l-0.76,-1.61l2.39,-1.22l0.67,1.28l-0.6,1.55l-0.94,0.07l-2.03,7.01l-2.55,1.82l-0.98,-1.41ZM544.39,363.79l1.03,-0.85l0.6,0.66l-0.77,0.79l-0.86,-0.6ZM546.23,361.86l-0.26,-0.62l-1.1,-0.62l2.08,0.52l-0.0,0.9l-0.72,-0.19ZM543.01,367.74l1.19,-0.44l0.95,0.97l-1.19,2.11l-0.95,-2.63ZM491.5,444.21l0.6,-0.54l-0.58,-3.61l1.19,-14.31l3.45,-4.37l0.11,2.65l0.82,0.13l0.58,-0.88l1.19,0.7l1.14,3.24l-1.81,0.99l-0.23,0.9l2.67,2.32l0.99,4.1l1.57,-0.26l1.49,-5.17l3.04,2.44l-0.42,1.38l1.36,1.37l5.93,1.02l2.1,3.77l2.76,1.13l1.6,1.85l1.51,0.59l1.71,-0.47l5.13,4.44l0.28,3.89l1.81,2.28l-0.08,0.86l-2.81,1.51l-0.02,1.94l4.49,-1.05l1.44,-1.05l3.48,1.36l0.51,-0.57l-0.38,-1.92l2.94,2.24l0.11,1.01l-1.42,-0.11l0.39,1.02l4.41,1.63l-2.32,0.89l-3.6,4.37l-0.37,1.42l-0.79,-0.13l-8.74,-3.71l-3.42,0.48l-0.61,-1.02l1.33,-1.33l-0.06,-2.1l-1.9,-1.28l-4.59,0.66l1.0,-3.43l-0.5,-0.96l-1.15,-0.14l-0.97,1.27l-3.03,0.75l-1.17,2.31l0.84,4.2l-1.24,0.31l-2.38,3.21l-1.83,-0.12l-2.37,6.34l-4.18,3.28l-3.23,0.73l-1.16,-2.5l0.12,-6.95l-1.51,-3.22l-1.1,1.42l-3.38,1.23l-3.76,-0.09l-1.91,2.06l-1.94,0.07l-0.65,-0.91l0.24,-1.85l2.24,-3.9l6.11,-3.91l-1.64,-4.15l-0.66,-5.63l1.24,-4.08ZM537.03,125.67l0.14,-0.6l1.77,1.03l-0.27,0.43l-1.64,-0.86ZM528.04,339.31l1.24,0.37l0.11,0.47l-1.79,0.18l0.44,-1.02ZM530.38,340.78l0.27,-1.09l-0.83,-1.63l1.44,-0.15l0.93,1.53l2.86,-1.09l0.44,-1.19l1.15,0.08l0.99,1.53l-1.6,1.72l-1.98,0.49l-1.54,-0.55l1.0,2.87l-1.35,-0.46l-0.17,-1.79l-1.59,-0.26ZM532.71,453.04l0.06,-0.06l0.37,-0.01l-0.25,0.1l-0.18,-0.03ZM516.53,485.9l0.87,-1.45l0.09,-2.41l1.48,-1.87l2.19,1.47l3.25,-2.28l2.59,0.08l1.19,-1.35l3.08,0.71l-0.28,4.19l-3.25,2.92l-0.63,1.91l-5.19,5.86l-1.93,-1.17l-3.35,2.23l-0.27,-2.41l-2.11,-2.98l2.26,-3.44ZM224.48,339.27l10.41,-29.68l3.07,4.97l8.62,5.59l0.69,2.27l2.5,3.21l4.41,3.07l1.14,1.6l2.02,0.19l2.98,2.06l0.89,-0.13l2.4,2.31l0.78,-0.7l-1.76,-3.42l2.36,1.93l2.42,-0.32l2.76,3.37l0.88,-0.03l1.2,2.81l1.35,1.18l0.3,2.22l1.65,2.99l-0.64,1.68l0.97,0.74l-1.14,2.31l-6.49,-2.8l-0.42,0.7l0.81,1.53l-0.59,0.64l-2.27,-1.38l-0.61,0.37l-0.84,2.67l0.38,0.97l-2.87,0.38l-0.51,0.95l1.74,1.32l1.04,1.98l3.02,0.67l2.45,2.45l1.4,0.13l2.17,1.57l10.93,3.14l1.2,-0.96l2.0,0.4l0.07,1.09l0.81,0.42l0.63,-1.44l3.09,1.24l1.94,-1.54l-0.11,1.43l1.58,0.24l5.48,-2.57l0.88,-0.15l1.11,1.15l0.63,-1.72l-0.24,3.09l0.7,0.76l0.69,-0.72l0.19,3.26l1.6,1.08l0.96,-1.0l2.37,0.99l0.28,3.64l-0.97,1.47l1.05,2.55l1.18,-0.34l1.72,-4.6l-0.29,5.31l0.94,0.54l0.67,-1.63l1.95,3.58l0.33,2.6l-0.29,1.31l-1.69,-0.59l-0.91,0.77l-2.38,-3.14l-0.55,0.44l0.28,2.54l2.58,2.29l-0.03,1.5l-0.9,0.74l1.74,0.69l0.16,3.36l0.73,0.24l0.29,-0.67l0.93,3.59l2.54,4.51l0.56,-1.13l-2.78,-7.77l0.7,-2.8l0.59,1.56l1.23,0.59l0.8,-2.68l1.13,2.62l1.02,0.02l-1.47,-5.0l0.9,-0.19l0.74,-1.4l-2.13,-2.14l-0.43,-3.54l1.13,-2.31l-2.38,-4.66l0.26,-1.42l0.68,-1.28l2.24,-0.89l0.39,-1.05l-0.68,-0.64l0.69,-0.93l2.24,0.49l1.65,-1.04l3.04,0.68l0.83,-1.69l0.83,0.37l0.32,-0.89l0.43,1.39l1.37,-0.19l-0.61,-1.7l0.59,-1.86l5.7,-0.59l0.67,-1.61l-0.38,-1.27l1.23,-1.54l-0.22,-0.61l-1.26,0.27l-1.13,-0.69l-4.95,1.61l-1.26,1.37l0.86,1.59l-0.65,0.65l-1.29,-1.72l-1.95,0.63l-1.81,1.67l-2.11,-2.13l-2.12,-0.27l-1.21,1.95l0.93,1.49l-4.02,0.08l-0.35,-3.71l-2.76,0.75l5.19,-6.15l7.85,-0.24l8.82,-3.41l2.59,1.66l1.74,3.52l-0.75,1.35l0.7,3.02l-1.58,1.89l1.51,0.48l0.03,1.25l2.72,3.18l2.26,0.0l-0.79,1.66l1.16,2.86l5.67,1.14l0.86,-0.74l1.24,0.18l1.04,-1.88l-0.19,3.16l2.89,2.32l1.11,2.33l2.43,1.12l1.52,2.07l1.06,-1.23l1.39,0.04l0.82,1.22l2.25,0.99l2.9,-1.25l2.29,0.29l1.89,-1.43l0.83,0.87l1.38,-0.92l6.44,1.64l2.19,2.05l2.76,0.65l0.45,-1.05l1.12,0.08l0.53,-0.78l2.72,-0.03l-0.65,-2.06l-1.84,-1.78l0.07,-1.92l0.73,-0.05l4.38,8.36l2.67,2.31l2.38,-1.08l0.96,0.6l1.32,-1.43l-0.93,-1.05l0.67,-1.15l-0.81,-2.97l-0.65,-0.18l-0.52,0.86l-2.33,-3.23l-2.98,1.2l-0.74,1.82l-1.81,-4.08l1.15,-2.2l-1.3,-1.23l-0.95,-2.33l0.41,0.49l1.06,-0.68l1.61,1.55l3.97,-1.42l-1.75,-3.21l1.71,0.28l1.22,2.35l0.82,-0.62l-0.63,-1.05l0.79,0.01l2.78,3.39l-0.51,1.81l1.23,0.6l1.74,-0.66l0.39,1.96l-1.87,2.21l0.45,1.19l1.07,0.06l0.37,-0.73l1.35,0.34l0.05,-2.01l3.31,-1.93l-2.26,10.07l-1.15,0.65l-1.37,4.54l2.71,1.5l-1.35,3.33l1.16,0.91l0.87,0.02l2.55,-2.56l1.14,0.23l-2.48,3.23l0.46,0.54l2.29,-0.85l1.07,3.83l-0.69,0.79l-0.87,0.03l-0.32,-0.82l-2.25,0.7l-0.22,-2.61l-1.42,1.67l-0.98,-0.04l0.01,-1.45l-0.95,-0.71l-1.25,0.87l2.59,5.12l1.83,1.52l0.07,3.2l0.62,0.46l1.74,-1.81l-0.09,-1.39l-0.49,-0.51l-0.53,0.64l-2.24,-4.1l5.81,1.19l1.21,-1.66l-0.77,-3.86l1.55,-2.61l-1.19,-1.53l-0.44,-2.43l0.64,-1.82l-2.68,-3.83l1.36,-1.41l-0.06,-2.11l1.27,-3.03l0.98,0.79l1.08,-0.91l2.7,1.03l4.92,-4.77l0.76,-3.04l5.89,-4.28l0.06,-0.55l-2.54,0.03l1.29,-4.2l-0.48,-2.74l-1.56,-0.33l0.09,-2.09l-1.38,0.93l-1.22,3.1l-0.02,1.06l0.75,0.43l-0.87,0.88l-2.12,0.51l-1.23,-0.72l0.37,-3.7l1.04,0.58l3.51,-4.41l-0.31,-0.69l-1.96,0.28l0.4,-3.15l3.29,-0.43l-1.04,1.69l0.19,2.02l0.66,0.2l3.72,-4.16l-0.12,-0.8l-1.22,0.19l0.95,-2.36l-1.2,-1.18l-2.52,0.89l-0.3,1.01l-2.63,-0.42l-2.48,-5.15l-1.12,0.57l-0.51,1.8l-3.7,-2.56l-1.82,-2.33l-2.36,-0.27l-0.5,-3.29l-1.16,-0.62l-1.65,-3.41l0.19,-4.23l1.56,-1.49l0.59,-2.41l0.75,0.08l0.47,-1.03l1.74,1.31l0.65,-0.46l-1.77,-1.69l1.82,-2.37l-1.22,-0.06l-2.0,1.53l-2.27,-3.41l2.08,-6.34l-1.21,-0.92l1.28,-0.4l-0.57,-2.81l1.13,-0.1l1.07,-2.14l0.99,-0.1l1.95,2.72l1.27,0.08l1.09,-2.03l-0.68,-1.12l1.26,-2.02l-3.16,-0.42l-0.45,-1.61l2.8,-2.14l1.55,0.02l0.61,-2.28l2.29,-0.15l1.05,0.27l0.34,1.88l1.37,-1.05l0.01,2.96l1.67,-2.31l1.75,0.58l1.19,-0.48l-0.76,2.42l5.56,6.86l0.65,6.62l-0.38,3.5l-0.67,-0.38l-0.34,0.96l2.43,2.04l0.21,2.15l2.47,0.98l0.33,3.3l1.82,2.28l-0.77,1.36l1.62,1.29l0.64,-1.77l0.6,0.07l-0.06,2.68l1.31,0.89l-3.08,0.37l-1.91,-2.81l-1.17,0.57l0.43,0.71l-1.34,0.59l0.57,0.61l-1.22,1.91l1.31,0.68l1.02,-0.88l1.26,0.14l0.86,0.98l-2.28,2.89l-2.9,1.73l-1.98,3.08l2.03,0.54l1.89,-0.62l2.12,2.78l2.21,1.48l3.01,-3.73l1.29,0.51l-2.65,1.88l0.02,0.7l2.97,-0.72l0.63,0.96l1.39,-0.16l0.36,0.69l1.02,0.01l0.53,-1.03l1.52,0.89l-0.6,0.64l-0.48,-0.53l-1.01,0.39l0.45,0.62l-1.08,0.99l-0.25,1.61l-0.66,-1.61l-1.72,1.43l-1.69,-1.37l-0.67,0.29l5.9,6.11l-0.39,1.34l0.76,0.7l-0.12,1.27l1.3,0.85l-1.1,1.36l0.62,0.65l0.15,5.16l-0.94,1.83l1.82,1.52l-0.76,1.04l1.18,-0.07l0.75,2.4l1.47,-0.7l-0.22,-1.21l2.53,-4.71l-0.88,-1.61l0.66,-1.17l0.25,1.24l0.85,-0.82l0.03,-7.76l3.52,-5.21l1.47,0.7l1.7,3.2l5.43,5.67l1.93,9.81l-0.74,1.96l-1.47,-0.53l-0.28,-2.77l-1.98,1.93l0.78,3.99l-0.65,2.99l1.99,6.42l5.48,6.44l0.69,2.03l-0.88,0.97l-0.09,1.63l0.8,0.3l0.68,-1.15l0.35,1.43l0.78,-0.01l0.44,-2.43l0.83,0.85l1.19,-1.63l-0.28,-1.39l0.74,-1.69l2.29,1.14l0.87,-0.85l0.25,-4.84l-0.63,-1.66l1.23,-3.16l3.31,-4.63l-0.01,-2.78l0.72,-0.74l-0.38,-2.13l1.03,-2.63l-0.67,-3.78l0.49,-2.13l1.4,-0.43l1.49,0.7l0.49,-0.72l3.33,-0.12l-0.45,-2.01l-1.59,0.03l-1.06,-0.4l1.21,-0.49l-0.1,-1.13l1.6,-0.05l-0.18,-1.05l-0.94,-0.34l2.55,0.15l0.54,-0.81l-1.73,-0.8l-0.34,-0.92l-1.18,0.19l-0.77,-2.04l-2.66,-0.4l-0.82,-1.5l0.81,-0.1l0.0,-0.83l-0.96,-1.22l0.99,-1.18l-0.72,-0.74l-0.71,0.27l0.02,-1.04l0.96,-0.72l-1.19,-2.09l1.29,-3.37l1.71,0.98l1.8,-1.51l3.23,-0.54l4.79,2.88l2.79,0.38l5.52,-0.71l-0.24,1.63l-0.91,0.6l1.79,1.11l-5.0,-0.84l-0.47,1.18l6.95,1.74l1.5,2.03l-0.72,1.48l0.5,0.56l3.8,-0.97l2.98,1.18l0.36,1.29l-1.6,2.39l-3.57,3.4l2.94,-0.68l1.34,1.48l0.97,-0.97l1.12,1.62l0.07,2.62l-2.43,2.77l-1.12,-0.34l-1.18,2.16l-0.64,-1.43l-1.23,-0.48l-0.93,0.34l0.73,1.2l-2.85,-1.27l-0.61,0.89l0.8,0.9l-0.78,0.72l2.38,1.64l-0.88,0.27l0.47,1.3l1.32,0.08l-0.48,2.02l1.95,1.1l-0.36,2.19l0.93,2.29l7.22,7.8l-0.46,8.01l-0.47,1.76l-3.69,1.09l-1.27,5.13l-1.52,0.1l-1.53,3.31l-3.21,0.57l-0.36,1.57l-2.63,2.63l-1.82,-3.11l-1.56,-0.52l-1.22,-1.47l0.84,-0.02l0.3,-0.94l-0.88,-1.37l0.07,-2.94l-0.75,0.13l-1.27,3.29l-0.76,-0.18l0.3,-1.92l-1.46,-1.06l-0.06,-2.04l-4.96,-1.37l0.52,1.66l-2.58,1.27l-0.05,1.65l0.92,0.71l1.52,-0.57l1.28,-1.95l0.9,2.46l2.33,0.87l-0.56,1.2l1.17,0.78l1.2,-0.25l-0.39,1.76l2.5,2.69l0.7,2.76l1.26,1.62l-1.31,0.22l-2.21,-2.28l-1.33,0.72l-1.52,-2.2l-1.24,1.82l2.26,2.97l-3.5,-1.81l-1.0,0.26l-1.06,-1.4l-0.94,1.28l-1.01,-4.35l-1.69,-2.05l-2.87,1.73l-2.16,0.21l-1.61,-1.0l-0.78,0.7l-1.44,-0.65l-0.35,0.93l-1.35,-0.12l0.47,1.42l-0.78,0.64l1.71,2.75l2.48,0.54l3.42,1.99l-0.82,1.21l0.29,1.35l-3.46,2.77l-0.86,4.49l-3.52,2.99l-1.11,1.7l0.29,1.02l-2.17,1.42l-5.44,-0.4l-3.38,-3.83l-1.96,-1.11l1.98,0.38l0.35,-0.84l-5.88,-1.93l-4.76,-4.34l-3.09,-0.04l2.03,2.44l-2.02,-1.36l-1.25,0.27l-0.41,-1.0l-1.47,0.42l-7.61,-1.47l-1.67,0.63l3.86,3.52l0.78,-0.69l-0.83,-1.67l8.95,2.69l3.98,3.69l0.64,2.11l1.78,1.27l1.28,2.27l8.42,1.2l2.68,-0.06l0.73,-0.68l4.93,1.04l0.9,1.55l-0.24,1.63l-1.03,1.03l-1.57,4.77l-1.71,0.78l-0.47,3.24l-1.97,1.14l-2.32,7.37l-0.94,-0.04l-4.12,3.41l-3.38,-1.51l-1.02,-2.09l-0.87,0.6l1.13,2.59l-2.84,-1.61l-0.7,0.6l-1.08,-0.5l-0.16,-3.36l-3.42,2.27l-0.05,0.72l1.38,0.47l0.48,1.07l-1.34,0.94l-0.86,-0.9l-1.17,0.51l2.71,3.88l-0.95,0.21l-0.8,2.81l-1.89,0.39l-0.23,-0.94l-1.65,-0.78l-0.8,1.51l1.26,0.44l-2.79,0.72l-5.08,-3.21l-1.21,0.14l-0.42,-1.14l-2.12,0.46l0.4,-1.11l-1.23,-0.2l-0.68,1.26l-2.38,-0.59l-9.09,-5.07l-1.31,-1.52l-0.1,-1.25l-1.79,-0.68l1.46,3.62l-1.67,0.73l1.11,2.5l2.55,1.43l1.53,-0.47l0.27,-0.5l-1.81,-2.08l6.31,3.9l1.37,-0.58l0.64,1.4l1.83,0.49l-0.34,1.0l-0.74,-0.38l-2.27,2.01l0.88,1.18l2.55,-0.4l0.29,-1.38l3.25,-1.78l3.36,4.54l3.46,0.45l0.25,1.24l2.0,0.84l0.42,5.65l-1.07,1.87l-2.1,-0.17l-3.58,3.08l-6.01,-1.84l-0.37,1.26l-2.6,-0.41l-0.4,1.17l1.52,2.4l3.47,0.94l-0.59,1.4l-1.08,-0.3l-0.33,-1.22l-2.38,1.27l-0.26,-1.03l-1.49,-0.62l-0.48,0.6l0.5,2.44l-1.28,0.07l-0.91,2.87l-4.1,-1.05l4.19,3.17l-2.98,0.84l-0.3,0.85l0.81,0.74l-1.17,1.03l-1.17,-0.68l-1.18,0.74l1.06,1.19l-0.7,0.63l-1.72,-0.71l-0.48,0.61l0.55,0.71l-0.52,1.16l1.48,0.65l0.23,1.97l-4.07,2.49l-1.42,2.04l0.19,1.66l0.98,1.0l-2.1,-0.35l-0.42,0.57l0.86,1.7l-0.83,1.09l0.32,1.46l-2.99,4.42l-1.82,5.77l-1.44,-0.29l-1.34,1.34l1.64,2.12l-2.04,7.01l-34.0,-2.48l-33.8,-3.8l10.71,-81.63l-31.59,-11.1l-25.71,-9.97l-3.84,-3.25l-7.01,-13.94l-14.83,-3.67l-25.6,-33.48l-22.77,-34.44ZM431.43,497.66l0.31,-0.12l0.17,0.01l-0.2,0.26l-0.28,-0.15ZM433.43,493.16l1.61,0.52l0.09,0.54l-0.15,0.11l-1.55,-1.16ZM459.86,461.22l0.41,0.12l0.06,0.53l-0.42,-0.04l-0.04,-0.61ZM466.21,460.65l0.17,0.26l-0.02,0.0l-0.16,-0.26ZM457.33,422.91l-0.21,0.13l-0.28,-0.01l0.5,-0.12ZM510.45,414.38l0.09,0.15l-0.04,0.09l-0.06,-0.23ZM452.6,352.21l0.03,0.15l-0.01,0.1l-0.08,-0.08l0.07,-0.17ZM409.93,384.6l0.12,0.01l-0.05,0.33l-0.07,-0.28l-0.01,-0.06ZM408.2,373.33l-0.03,-0.49l0.36,-0.47l-0.09,0.56l-0.23,0.39ZM318.49,387.42l0.17,-0.15l0.1,-0.19l-0.02,0.65l-0.25,-0.3ZM318.8,386.55l-0.03,-0.21l0.0,-0.15l0.04,0.09l-0.01,0.27ZM320.92,364.54l0.05,-0.18l0.03,-0.08l0.11,0.08l-0.19,0.18ZM329.82,363.21l-0.02,-0.07l0.05,-0.02l-0.02,0.09ZM343.75,364.08l-0.01,-0.29l0.6,-0.07l-0.05,0.14l-0.54,0.22ZM393.17,373.66l-0.08,-0.14l0.13,-0.03l-0.03,0.08l-0.02,0.08ZM393.23,373.44l0.07,-0.35l0.01,-0.02l-0.02,0.16l-0.07,0.21ZM431.06,350.19l0.25,-0.55l0.38,-0.32l-0.44,0.76l-0.19,0.11ZM427.63,295.62l-0.28,-0.5l-3.9,0.29l-0.05,-0.78l0.27,-0.75l4.16,-0.81l0.66,1.13l-0.85,1.43ZM524.08,151.98l-0.31,-0.7l1.09,-0.68l0.05,0.73l-0.83,0.65ZM520.21,200.3l0.21,-1.47l2.86,-4.4l0.44,0.9l-1.75,2.84l0.99,1.66l-1.45,0.22l-0.61,1.26l-0.7,-1.01ZM420.31,181.66l0.5,-1.13l0.61,1.02l2.18,0.2l0.2,-2.11l-2.58,-1.69l-0.08,-0.91l1.13,-0.95l0.69,0.51l1.21,-0.61l0.2,-1.3l2.62,-0.71l1.81,0.46l2.56,2.13l2.24,0.35l0.31,1.19l1.42,0.92l1.0,0.0l0.77,-1.08l1.13,0.45l2.52,4.68l-0.84,3.95l-2.07,2.49l0.7,1.81l1.09,-0.5l-0.59,-0.64l1.22,-0.89l1.6,-3.53l3.93,0.81l2.28,-1.58l2.88,-0.6l2.67,1.15l2.12,2.19l0.21,1.53l-1.81,-0.45l-0.43,-0.79l-0.97,0.82l-1.37,-0.9l-1.56,0.62l1.0,1.43l5.16,1.83l0.58,-0.43l6.3,2.56l0.54,1.01l-0.8,1.12l-6.37,0.59l-6.69,-2.54l1.9,1.9l-0.65,1.59l3.73,0.57l-0.82,0.92l0.39,0.6l-2.01,0.42l1.12,1.93l-1.13,0.97l0.03,1.86l0.86,0.06l1.6,-2.88l1.55,-0.39l-0.48,1.34l0.76,0.64l1.1,-1.51l0.94,0.71l0.6,-1.22l0.75,0.45l0.75,1.32l-0.37,2.78l0.86,0.09l1.07,-1.42l1.61,1.73l-0.48,2.76l-1.94,0.28l-0.93,1.73l0.79,0.81l2.49,-0.89l0.58,2.19l1.33,1.51l1.42,-0.6l-0.79,-3.93l0.76,-1.35l2.52,2.98l-0.56,0.98l0.98,0.87l2.69,-2.59l1.11,1.8l-0.58,0.81l1.4,0.22l0.46,-1.42l-0.54,-1.26l0.93,-1.27l2.81,3.26l2.28,0.92l-1.19,1.0l0.32,0.71l3.62,-1.4l2.85,0.31l0.14,-0.97l-3.53,-1.62l2.66,-1.59l2.21,0.32l1.6,-2.35l2.51,0.56l0.44,-0.95l-0.77,-0.68l1.79,-0.55l2.24,-2.61l4.55,1.5l4.51,-2.83l6.91,0.84l-0.53,2.99l5.66,-0.04l1.75,1.99l-1.7,1.15l0.27,0.97l3.83,-0.52l1.21,1.6l-0.53,1.79l0.92,0.75l-0.62,1.94l-1.14,0.29l-0.73,1.93l-2.6,2.21l1.13,1.01l-0.52,2.49l1.8,1.16l-0.62,1.36l0.74,1.02l-0.26,2.91l-5.19,0.58l-3.82,3.12l-3.42,-0.96l-0.78,-1.29l-0.97,1.46l-0.82,-0.18l-2.21,-2.91l-0.2,-3.81l-3.13,-1.87l-0.24,1.98l1.36,1.75l-0.71,4.18l-4.35,1.76l-3.71,0.19l-0.9,-4.45l-0.95,1.65l0.34,2.55l-0.53,0.71l-0.65,-0.02l-1.6,-4.47l-0.45,4.52l-2.58,0.37l0.09,-1.23l-1.15,-1.89l-1.13,3.17l-2.73,-3.02l-0.24,2.09l0.93,1.46l-1.06,0.13l-1.09,-0.96l-0.22,0.83l-0.85,0.11l-0.44,-1.8l-2.14,2.11l-0.75,-1.4l-0.82,0.91l-3.57,-0.34l-0.03,-2.5l1.42,-3.71l-1.17,-0.53l-0.8,-2.75l-1.07,1.47l-0.69,3.45l-0.18,-1.92l-1.67,-1.41l0.22,2.6l-1.36,-0.56l0.99,1.98l-0.25,1.63l-1.66,1.1l-2.62,0.5l-0.42,-1.29l-0.95,0.62l-1.0,-0.68l0.06,-0.86l-1.62,0.41l-1.17,-3.02l-1.41,0.98l1.62,-2.83l-0.59,-1.76l-4.4,5.7l-0.72,-1.79l-2.33,-1.7l0.36,-2.51l-1.15,-3.73l1.17,-0.44l-0.22,-1.71l-1.56,0.09l-0.97,-1.66l1.02,-3.31l-0.61,-0.69l0.38,-1.33l2.31,-3.37l-0.88,-3.82l0.34,-2.99l-2.37,-2.58l-0.62,-3.84l-2.17,-5.39l-1.27,-0.83l-1.98,1.44l-0.9,-0.3l-0.65,1.31l-4.34,-0.35l-1.27,-1.64l-3.24,-1.66l-2.26,-0.08l-0.71,-0.86l-0.49,-1.5l1.84,-0.12l1.17,-2.1l-0.46,-0.51l-1.97,1.2l-2.68,-3.53l-2.35,-0.75ZM451.53,232.53l0.2,0.49l-0.18,-0.03l-0.02,-0.47ZM519.43,222.72l2.08,-1.78l0.93,0.21l1.51,2.32l-2.89,1.86l-1.28,-0.76l-0.35,-1.86ZM455.33,199.74l0.6,-0.68l1.56,0.5l-0.2,0.22l-1.97,-0.04ZM431.08,193.14l-1.37,1.01l-1.29,-0.29l1.88,-1.41l0.78,0.69ZM519.33,369.36l0.08,-0.17l0.17,0.21l-0.24,-0.04ZM514.4,412.13l0.0,-0.0l0.0,0.01l-0.0,-0.0ZM514.58,412.33l1.89,1.01l-0.22,0.67l-1.74,-1.07l0.07,-0.61ZM505.06,417.57l-0.03,-0.82l3.18,1.26l2.57,2.18l0.11,1.35l-1.66,2.13l-1.01,-0.16l-0.76,-4.02l-2.41,-1.91ZM511.99,423.88l0.53,0.2l-0.02,0.3l-1.34,0.67l0.82,-1.17ZM512.86,424.78l0.64,-0.22l1.49,-0.08l-0.52,1.37l-1.6,-1.06ZM512.76,421.7l0.73,-0.05l-0.36,0.47l-0.37,-0.42ZM509.13,194.54l0.2,-0.25l0.21,-0.1l-0.34,0.37l-0.08,-0.02ZM505.31,340.84l-0.75,-0.58l0.04,-0.62l1.46,0.3l-0.75,0.9ZM499.75,419.3l1.02,0.26l1.78,3.19l1.39,3.85l-0.75,1.32l-1.05,-2.07l-2.03,-1.69l-0.36,-4.86ZM493.21,188.12l0.28,0.32l-0.08,0.36l-0.23,-0.13l0.04,-0.54ZM483.42,380.75l0.8,-1.64l-1.23,-1.79l1.89,-4.42l1.7,1.75l0.49,5.12l-1.32,4.42l-1.73,-1.43l-0.61,-2.01ZM484.15,162.05l1.7,-0.5l1.0,1.62l-1.04,0.74l-0.12,-1.25l-1.54,-0.62ZM479.08,334.77l1.48,-0.55l1.82,0.89l1.27,-0.58l0.97,2.02l-1.78,0.37l-1.64,-0.88l-0.74,0.52l-1.39,-1.79ZM427.65,95.01l0.27,-1.04l1.22,0.23l1.58,2.01l3.93,1.28l1.49,-0.22l1.8,1.72l0.72,-0.12l-1.6,-3.36l1.04,-1.26l2.04,-0.47l-0.04,-0.97l-2.53,-1.14l-1.83,2.17l-1.74,0.26l-0.95,-1.25l1.76,-0.53l0.22,-1.33l-2.25,-0.14l-1.26,1.09l-2.31,-2.07l0.39,-1.21l0.99,0.11l0.63,-1.26l2.63,1.42l0.57,-0.4l-0.16,-1.39l-2.47,-2.77l0.74,-1.3l-0.35,-0.92l4.17,-0.23l1.75,1.38l2.55,0.29l0.43,0.81l1.17,-0.55l-0.98,-1.99l-2.46,-0.81l-0.37,-0.98l0.08,-0.6l2.29,-0.25l0.11,-1.13l-3.86,-1.4l0.69,-0.71l-0.44,-0.87l-2.49,0.14l1.73,-1.45l-1.35,-0.79l1.22,-2.91l1.29,-1.01l1.81,2.76l2.64,-1.83l-0.15,-1.22l-1.04,-0.57l1.28,-0.11l1.29,0.95l1.89,-0.69l0.52,-2.62l-0.74,-1.47l-3.04,0.03l-1.69,-1.25l0.7,-2.47l1.83,0.73l0.57,1.15l0.83,-0.76l-0.19,-1.48l0.65,0.25l4.27,3.47l1.67,2.64l-0.43,2.4l1.58,2.67l1.88,6.54l2.15,2.67l-0.55,2.47l3.34,0.83l1.0,2.0l0.82,-0.11l-0.26,-1.63l1.61,-0.09l1.03,1.58l-0.85,1.74l0.69,0.56l-0.7,2.2l1.17,3.27l2.62,2.67l0.96,-0.69l1.24,0.34l0.84,1.37l2.79,-0.41l1.09,2.79l-2.16,3.13l1.2,0.27l1.22,-1.54l-0.58,6.24l-1.43,2.18l0.31,1.7l1.29,0.08l1.04,-2.22l1.07,1.33l0.72,-0.98l-0.31,-1.59l1.53,-0.13l1.13,1.76l-0.42,3.04l1.26,0.71l1.02,-4.81l1.45,4.01l2.55,4.05l-2.54,3.13l-4.99,2.97l-0.71,2.6l-0.81,-2.36l-0.82,-0.01l0.24,3.95l-2.97,6.75l-1.5,-4.29l-0.01,-3.36l0.86,-1.09l0.2,-2.51l-0.74,-0.07l-0.73,1.99l-1.25,0.49l0.24,8.2l-1.07,0.74l0.43,0.7l1.35,-0.23l0.55,2.31l-1.07,1.91l-1.67,-3.62l-1.84,0.17l1.38,5.18l-1.23,6.18l-5.86,-11.61l-0.9,0.8l0.12,2.33l2.56,7.01l-1.18,-0.05l-1.29,-2.64l-2.92,-0.26l-0.73,0.89l2.06,1.11l0.3,2.6l-2.68,0.25l-3.61,-1.19l-1.24,-1.3l-1.27,0.5l-0.49,-2.72l-1.98,-0.11l-1.78,-3.64l1.74,0.12l3.69,-1.35l0.86,0.49l0.59,-1.32l-6.11,-2.35l-2.41,1.06l-0.67,-1.1l0.4,-1.19l-0.98,-0.04l-1.04,-1.94l2.81,1.25l0.87,-0.29l0.08,-1.05l-2.64,-2.05l-1.57,0.04l-1.79,-3.63l3.32,-1.49l1.33,-2.87l2.16,0.72l5.01,-0.32l6.71,-1.41l1.09,-1.33l-0.62,-0.54l-3.02,0.21l-5.19,1.09l-2.43,-1.02l0.26,-0.96l3.07,0.28l3.79,-1.34l0.34,-1.72l-3.82,1.13l-3.09,-0.65l1.69,-1.39l-0.35,-0.85l-1.91,-0.0l-1.26,0.94l-1.09,-1.98l-1.44,1.08l-0.89,2.25l-0.85,0.01l0.02,1.27l-1.24,1.28l-0.58,-1.3l1.68,-1.96l-3.3,-1.25l-0.65,0.26l-0.15,2.01l-2.82,1.37l0.35,-1.57l-0.79,-1.75l-0.99,0.48l-1.03,-0.62l0.36,-2.95l4.91,-1.61l2.03,-2.07l0.3,-2.61l-0.88,-0.51l-2.15,2.69l-1.95,0.74l-2.78,-0.29l-2.35,-4.95l1.56,-1.92l-2.06,-1.42l-0.23,-1.34l1.39,-0.91l-1.55,-0.36l-0.27,-0.93ZM443.68,113.89l0.28,0.85l-0.7,0.52l0.38,-0.96l0.04,-0.42ZM461.38,146.39l0.13,0.3l0.04,0.32l-0.12,-0.23l-0.04,-0.39ZM467.83,95.12l-0.47,-2.39l-1.08,-0.44l-0.75,-1.59l0.77,-3.65l3.21,0.98l0.55,5.35l-2.23,1.74ZM428.54,100.87l-0.38,0.08l-0.0,-0.39l0.24,-0.06l0.14,0.37ZM467.85,144.53l0.1,-1.31l0.38,-0.61l-0.14,0.96l-0.34,0.97ZM468.67,140.92l0.03,-0.58l0.13,-0.04l0.0,0.05l-0.16,0.58ZM453.12,161.32l1.28,-0.9l2.87,0.68l2.74,3.46l0.67,3.57l-2.13,2.79l-1.23,0.17l-3.87,-3.88l-0.32,-5.87ZM459.03,188.82l-2.86,-6.15l1.29,-1.47l1.58,-0.38l1.49,2.86l-1.01,2.28l0.86,2.56l-1.13,-0.33l-0.23,0.65ZM457.48,356.25l0.14,0.07l-0.06,0.19l-0.08,-0.25l-0.0,-0.01ZM455.72,351.19l1.01,-1.44l0.89,0.73l-1.07,2.13l-0.83,-1.42ZM421.71,269.81l0.55,-2.41l0.89,-0.23l-0.57,-7.78l0.24,-2.03l0.85,-0.72l-0.96,-1.53l0.29,-1.54l2.13,-0.53l1.47,2.21l2.74,0.5l-0.05,-1.28l-1.14,-0.38l-1.36,-2.16l0.81,-1.29l-1.45,-0.16l-0.66,-1.39l0.47,-1.74l3.32,-1.81l4.85,-0.73l1.1,1.49l0.62,-2.05l2.47,-0.16l5.15,2.79l0.8,2.82l1.3,-0.14l1.9,-1.66l1.64,-0.14l3.56,0.65l4.75,2.14l-1.09,0.72l0.0,1.59l-2.62,5.22l-1.34,0.04l0.33,1.6l-2.19,4.92l-2.41,0.8l1.51,1.0l-4.78,9.89l-1.63,0.64l-6.15,-2.6l-7.1,1.07l-0.05,1.51l3.42,0.4l-0.14,1.38l1.23,1.05l0.93,2.98l-2.44,2.95l-2.07,5.39l-1.09,1.0l-5.9,0.08l0.81,-2.2l2.19,-0.87l-0.84,-0.59l-1.68,0.45l-0.24,-0.64l0.1,-5.21l0.64,-1.13l-1.31,-4.06l-1.38,-1.4l0.48,-0.89l-0.88,-1.38l-0.04,-4.42ZM430.89,292.66l0.04,-0.02l0.01,0.07l-0.05,-0.05ZM454.65,352.83l-0.33,-0.41l0.26,-1.19l0.58,2.35l-0.51,-0.75ZM453.0,471.13l0.19,0.06l0.17,0.16l-0.28,-0.02l-0.08,-0.2ZM446.91,341.46l0.79,-0.49l-0.07,1.35l-0.35,-0.26l-0.37,-0.61ZM446.55,468.94l0.04,0.02l-0.03,0.04l-0.0,-0.0l-0.01,-0.06ZM445.93,340.08l0.11,-0.11l0.26,-0.0l-0.36,0.11ZM425.38,160.25l0.48,-2.25l3.84,-2.17l0.53,1.65l2.42,-1.14l5.97,1.59l1.12,-0.98l1.66,1.12l0.51,1.38l-1.4,0.71l-0.94,4.39l-12.85,-1.49l-1.35,-2.81ZM419.31,222.88l1.54,-4.3l2.31,-0.56l0.69,-1.51l-0.75,-0.37l0.27,-0.52l2.01,-1.42l-0.54,-2.11l5.25,-2.91l2.61,0.99l3.95,5.88l-0.84,1.01l1.78,1.21l-0.53,1.41l0.6,1.82l-1.11,1.77l1.18,1.96l-0.24,4.58l-0.78,0.52l0.47,1.21l-0.56,0.6l-6.55,0.22l-0.53,-1.16l-1.47,-0.02l0.15,-1.12l-1.59,-1.93l-2.87,-1.1l-0.38,0.45l-1.38,-2.06l0.6,-0.63l-0.39,-2.11l-1.01,0.49l-0.55,2.09l0.12,-2.13l-1.46,-0.23ZM423.56,213.87l-0.12,-0.05l0.05,-0.1l0.03,0.01l0.04,0.13ZM433.47,79.05l2.22,0.14l0.49,1.15l-0.62,0.41l-3.69,-1.53l1.6,-0.17ZM416.22,136.4l2.05,-0.98l-1.3,-2.9l0.11,-2.87l0.9,-0.83l3.13,0.78l2.68,2.67l1.63,0.48l1.66,1.84l-0.48,2.22l1.8,1.36l1.39,-0.82l0.94,0.36l2.76,3.08l-0.08,1.03l-2.91,2.52l2.41,3.58l-0.97,3.13l-1.57,-0.19l-5.02,2.32l-0.97,-1.04l-1.33,0.69l-0.83,1.91l-0.66,-0.34l0.57,-2.92l-3.36,-2.86l0.27,-0.99l3.77,0.54l0.54,-1.86l-2.74,-2.31l-1.83,-0.37l-1.24,-2.23l0.23,-2.37l-1.49,-1.43l-0.07,-1.19ZM432.55,201.06l0.82,4.6l-1.67,0.27l-0.94,-4.09l1.79,-0.78ZM430.01,501.43l0.97,-0.01l0.44,0.57l-0.36,0.42l-1.04,-0.98ZM423.28,233.75l1.26,-1.17l1.43,2.47l-2.18,-0.68l-0.52,-0.62ZM417.48,212.26l-0.01,-0.76l2.38,-1.13l-0.06,1.93l-1.18,0.75l0.15,0.81l-0.97,-0.05l-0.31,-1.56ZM421.34,209.39l0.11,-1.06l1.96,1.73l-1.35,1.95l-0.81,-1.09l0.09,-1.54ZM421.62,297.89l0.27,-0.12l-0.0,0.05l-0.27,0.08ZM422.23,296.62l-0.31,-0.28l0.46,-0.16l-0.15,0.44ZM389.19,351.96l1.95,0.55l2.03,-0.68l1.12,-2.28l0.58,0.4l1.52,-0.72l0.14,-1.27l-1.28,-2.05l1.34,-0.17l-0.91,-2.29l0.88,0.34l1.71,3.05l1.24,-0.02l0.18,-0.77l-2.25,-3.41l0.79,-2.88l2.42,-2.54l3.0,2.8l0.46,1.11l-0.92,0.82l0.66,1.72l0.83,-0.03l0.58,-1.54l2.19,4.14l4.67,4.17l-0.47,5.36l0.77,0.85l0.76,-0.35l0.21,-3.25l1.03,6.77l1.07,0.08l0.67,1.22l2.22,-1.37l0.64,0.63l-1.91,2.36l-0.86,-0.78l-1.61,0.33l-0.77,2.34l-1.05,-0.01l-2.45,2.86l-1.47,0.43l-4.18,-3.29l-0.78,0.45l0.0,1.03l-2.13,-0.68l-2.02,-2.6l-3.15,-1.4l0.02,-2.1l-1.03,-1.12l-0.95,0.29l-0.32,1.89l-2.35,-1.9l0.57,-1.76l-1.34,-1.01l-1.67,0.69l0.3,1.29l-0.62,0.2l-1.39,-1.1l-0.88,-2.86l1.01,-1.65l1.16,-0.28ZM414.67,346.77l0.79,-2.2l1.01,-0.52l2.17,2.28l-0.36,2.41l-1.64,1.11l0.59,-3.49l-0.78,-1.58l-1.18,0.46l-0.29,3.04l-0.32,-1.5ZM414.95,348.36l-0.2,0.62l0.01,0.28l-0.08,-0.53l0.28,-0.37ZM411.32,98.34l1.01,-4.59l1.24,-1.13l1.28,1.16l1.53,-0.38l1.16,4.2l-0.81,6.55l-1.8,-1.46l0.27,-2.18l-1.22,-1.67l-2.43,0.15l-0.23,-0.65ZM374.65,271.26l1.97,-5.77l2.84,-1.37l1.55,1.82l0.05,1.86l1.25,1.11l0.57,3.29l2.19,1.66l1.59,0.06l0.69,-1.11l2.35,0.48l1.05,-1.22l0.12,-1.68l1.82,-0.35l0.42,-1.35l-0.92,-4.78l-0.97,-0.3l-0.87,0.71l-0.41,-0.77l1.36,-2.26l2.16,2.2l1.64,-0.07l0.25,-0.94l-1.66,-0.9l-2.81,-5.73l0.58,-2.35l-2.08,-1.04l0.29,-0.74l-1.18,-0.76l0.61,-2.28l3.23,-0.36l2.81,2.56l1.41,-2.63l1.47,0.9l1.99,3.57l0.77,-1.37l1.88,0.54l0.9,-0.84l3.78,-0.59l1.4,-1.38l0.62,0.59l1.21,-0.69l1.97,0.93l1.5,2.73l-0.26,1.98l-1.56,1.52l-1.16,-0.78l-0.5,1.25l-0.96,-0.32l-0.62,1.65l0.6,1.01l1.16,-0.71l1.4,0.5l-0.15,1.78l-3.64,1.11l-5.82,6.46l0.48,3.84l1.76,-2.63l1.76,-1.18l1.87,0.33l2.34,1.76l-0.22,1.33l-1.09,0.6l1.34,0.81l1.01,2.19l-1.14,1.5l0.2,1.66l1.04,-0.04l2.47,-2.03l1.12,1.43l0.68,4.68l-2.3,1.94l-1.3,-0.26l-0.36,0.62l1.76,1.4l0.5,2.45l-0.19,1.19l-2.27,0.61l-0.18,0.67l2.39,0.53l-0.21,0.9l-1.8,1.03l0.88,0.81l0.98,-0.56l-0.72,1.86l-0.73,-0.91l-1.9,1.1l-1.79,2.78l-3.0,0.77l-3.68,-1.31l-0.54,-1.24l1.3,-3.44l-1.08,-0.61l-2.02,4.09l2.62,4.72l-1.02,1.91l-2.48,2.43l-1.29,0.19l-1.19,-2.37l-1.76,0.57l-0.52,-5.08l-1.18,-0.97l-1.5,-5.44l-1.64,-0.98l-2.95,-7.01l-1.04,-0.68l-1.38,0.27l0.07,-1.82l-1.28,-1.58l-1.8,1.15l-1.95,-1.02l-0.38,-0.95l0.82,-0.69l-0.81,-0.81l-0.0,-1.42l-2.82,-2.69l-1.76,-3.24ZM390.43,268.86l-0.03,-0.05l0.05,-0.05l0.03,0.02l-0.05,0.08ZM391.13,258.22l-0.13,1.15l-2.76,1.04l-3.72,-4.97l2.35,-2.21l1.66,0.33l1.12,3.12l1.48,1.54ZM395.74,247.0l-1.15,1.05l-0.77,-0.64l1.11,-1.09l1.19,0.17l-0.38,0.51ZM383.64,205.28l0.98,-0.35l-0.1,-1.22l0.92,-0.88l2.25,1.05l0.89,-0.46l-1.01,-1.33l0.64,-1.21l-1.4,-0.09l0.59,-1.18l2.2,-0.44l1.73,3.41l1.11,0.73l2.79,-1.46l-0.32,-0.68l-2.14,0.59l-0.0,-1.51l-0.95,-0.56l-0.09,-1.13l1.71,-1.64l-0.08,-0.96l-2.37,0.42l-0.43,-0.71l0.15,-2.2l3.16,-2.97l-4.23,0.03l1.31,-2.84l-0.4,-0.94l1.17,-0.93l2.36,1.3l1.07,1.88l-0.53,2.31l2.46,2.81l-0.67,1.03l2.18,1.08l1.1,2.81l-0.34,0.81l1.3,1.29l3.61,-2.66l-2.55,0.12l-1.15,-3.95l2.31,0.7l2.05,-1.41l-1.88,0.14l-1.45,-1.62l-1.17,0.14l-1.42,-1.07l0.11,-0.5l3.22,0.42l0.05,-1.7l-1.42,-1.76l-2.77,-0.3l-1.23,-2.57l3.98,-2.87l2.12,1.16l0.39,0.02l0.59,-0.55l0.17,0.01l-0.21,0.83l0.76,0.32l2.26,4.87l0.32,-1.26l1.55,0.24l-0.83,-2.83l0.59,-1.37l1.04,0.97l1.35,-0.91l0.26,1.46l3.57,2.17l-0.94,3.69l1.31,3.45l-1.27,4.95l0.26,2.81l-2.32,2.5l3.09,2.5l-0.58,3.27l-1.38,-1.71l-2.28,2.1l-0.15,1.15l1.02,0.42l-1.01,0.13l-0.97,2.26l0.38,1.15l1.83,1.31l-0.22,1.08l0.95,1.02l-0.73,0.28l-1.64,-2.81l-0.86,1.75l0.95,3.04l-4.23,0.37l-0.99,-1.88l-0.85,1.34l-1.93,0.15l0.71,-3.06l-0.84,0.16l-1.41,3.01l-4.51,-1.58l0.29,-2.82l-0.76,-1.01l2.77,0.07l0.63,-0.78l-1.72,-0.92l-0.09,-1.25l-1.4,0.3l-0.46,-0.63l1.35,-0.75l-0.55,-1.38l3.07,-0.16l0.54,-0.85l-0.65,-0.91l1.3,-0.09l1.47,-1.72l-0.75,-0.88l4.91,-0.17l0.33,-1.35l-10.06,0.4l-4.14,0.95l-1.31,-0.58l-6.97,1.45l-0.47,-1.89ZM414.24,266.9l0.91,0.17l0.16,1.43l-0.9,1.89l-1.18,0.2l-0.74,-3.42l1.63,-1.82l0.11,1.55ZM413.9,275.02l-1.05,-0.59l1.41,-2.15l0.13,1.99l-0.49,0.75ZM411.31,235.08l-0.17,-0.77l2.09,-2.24l-0.31,1.96l-1.61,1.05ZM409.94,345.15l2.12,0.76l0.95,-0.39l-0.28,3.31l-2.79,-3.68ZM382.84,135.77l-0.59,-2.3l0.4,-2.05l1.47,-0.73l2.71,2.01l2.88,0.94l1.3,-3.47l-3.0,-0.68l2.42,-0.16l1.53,-2.23l-0.42,-1.23l-1.34,-0.04l-0.51,-0.94l-1.08,0.01l-0.37,0.97l-0.54,-0.55l2.34,-2.62l-0.92,-2.5l-0.98,-0.62l-1.67,0.95l-1.02,2.32l-1.68,1.23l2.44,-5.44l-1.31,-1.09l-2.99,0.31l0.45,-3.63l1.34,-3.45l1.11,0.94l6.93,-0.53l2.58,2.17l0.69,1.58l0.97,4.08l-1.29,3.2l0.94,0.56l0.02,1.87l1.57,-1.52l0.25,-1.95l2.39,-1.59l0.93,0.3l1.44,2.91l1.25,0.73l-1.25,3.71l1.42,1.16l2.81,-1.08l1.86,3.24l-0.91,1.75l2.41,1.23l-2.04,3.56l-0.03,3.7l1.35,0.72l2.39,5.97l-1.01,2.34l0.25,1.78l-0.75,0.82l-3.19,0.26l-0.72,0.75l-3.03,-2.19l-0.72,-3.75l0.56,-1.61l-1.23,-3.56l-1.38,0.11l-0.96,-1.37l-3.26,-1.74l-2.35,0.82l-0.76,-0.98l0.85,-1.48l-0.29,-1.0l-5.42,0.69l-1.75,1.62l-2.15,-1.03l-1.32,-2.23ZM402.18,245.84l5.3,-1.86l2.75,-0.09l-1.09,2.38l-2.21,2.01l-2.94,0.62l-4.58,-1.3l2.65,-0.81l0.12,-0.96ZM404.52,336.05l0.28,0.24l-0.19,0.5l-0.18,-0.17l0.08,-0.57ZM400.0,384.31l0.18,-0.59l0.82,-0.41l-0.03,0.27l-0.98,0.73ZM393.68,182.33l2.34,-0.92l1.47,-1.77l3.14,0.18l-5.02,2.71l-1.93,-0.2ZM392.97,153.4l0.22,-3.26l3.57,0.04l2.26,1.79l1.09,2.26l-2.85,-0.38l-1.53,1.08l-2.76,-1.53ZM390.42,142.83l-0.37,-1.01l1.77,-1.87l0.13,1.23l-1.53,1.65ZM380.94,200.83l0.6,-1.1l1.3,-0.07l0.14,-1.57l4.85,-1.31l0.73,0.88l-2.31,0.72l-1.53,2.53l-3.78,-0.08ZM378.12,196.44l4.81,-1.79l4.15,-0.08l-0.14,0.79l-7.87,1.78l-0.95,-0.71ZM375.95,190.46l3.49,-1.4l6.37,-0.48l0.58,1.84l-1.06,2.26l-3.24,1.1l-3.2,-0.16l-2.89,-1.45l-0.05,-1.71ZM382.95,318.72l1.44,0.77l0.22,2.48l-1.82,-1.42l0.16,-1.82ZM376.35,180.68l1.85,-1.9l1.59,0.1l-0.7,2.34l1.86,-0.68l0.7,2.11l2.71,2.61l-1.9,1.61l-5.37,-0.68l0.39,-3.22l-1.13,-2.29ZM382.75,351.96l0.5,1.7l-0.24,1.27l-0.95,-1.38l0.69,-1.6ZM378.63,357.96l0.57,-3.98l0.44,-0.58l2.04,2.62l-0.39,1.86l-1.43,1.5l-0.05,-1.51l-1.16,0.08ZM380.72,368.46l0.1,-0.05l-0.02,0.19l-0.08,-0.15ZM374.01,155.31l0.21,-2.42l-0.8,-2.01l0.8,-0.65l1.57,1.3l1.89,4.93l-0.54,3.16l1.37,0.18l1.17,2.66l0.14,1.85l-0.85,1.86l-1.4,0.46l-0.78,-1.62l-1.22,-0.12l-1.48,-7.58l0.58,-1.2l-0.67,-0.8ZM262.31,316.35l2.08,-0.14l-1.96,-6.32l0.67,-1.78l29.25,8.27l-0.45,3.6l3.86,0.06l0.08,-2.77l17.96,3.86l11.64,-52.14l1.02,0.72l0.45,-0.54l-0.33,-5.28l0.81,0.53l0.91,-1.42l-1.26,-1.18l0.84,-3.76l1.32,0.77l-0.68,0.91l1.98,3.52l1.31,0.03l0.66,1.95l-0.78,2.32l2.6,0.61l-1.19,4.72l-0.04,4.61l0.7,0.67l-0.61,2.61l0.7,0.59l-0.15,1.23l0.53,-0.06l-0.76,0.93l0.26,2.94l-0.58,0.75l1.35,0.47l0.24,1.97l1.62,0.74l0.65,-0.57l-0.39,-1.82l1.03,0.39l0.95,-1.25l2.37,-0.74l-0.93,-1.08l1.3,-1.05l-1.93,-2.91l0.34,-1.81l-0.81,-1.19l0.22,-2.55l0.8,-0.71l-0.48,-2.76l0.67,-0.65l-0.92,-1.26l0.86,-1.52l-0.24,-12.82l0.88,-1.09l1.54,0.68l0.58,-0.44l-1.25,-2.02l0.83,-1.15l1.76,0.8l3.3,4.11l0.86,-0.52l-0.07,-2.01l1.15,-0.22l2.82,5.57l2.41,1.22l1.77,5.26l-0.7,1.14l0.97,2.93l-0.1,2.98l-0.73,1.46l1.27,6.09l-0.78,2.36l0.62,5.17l0.86,1.04l1.18,5.51l-0.26,4.34l-1.28,0.3l-0.33,3.04l-1.64,2.12l2.84,4.68l0.53,3.8l1.04,0.58l1.58,3.35l1.99,0.55l0.87,1.98l3.24,1.02l4.5,5.28l1.19,0.26l0.88,-0.76l0.39,4.13l1.88,-0.71l0.81,0.64l1.28,-0.97l0.03,7.9l-0.86,2.57l-1.99,-0.34l-0.66,-3.2l0.48,-1.61l-0.57,-0.42l-2.18,4.42l-1.52,-1.35l-0.31,-2.12l-1.01,-0.13l-0.04,-1.44l-0.73,-0.32l-1.28,2.17l-1.57,1.08l-1.03,-0.29l1.04,2.25l-0.26,1.54l-0.39,0.73l-1.54,-0.01l-2.17,-1.88l-0.77,-1.75l-1.95,-0.38l-0.57,1.77l1.97,2.07l0.29,2.37l0.94,0.37l-0.8,3.26l-1.54,1.25l-0.03,1.94l0.83,0.08l3.22,-5.13l2.26,-0.4l0.69,-1.2l1.16,-0.27l1.41,0.47l0.57,1.19l-1.81,0.93l-0.19,0.91l0.88,0.86l-1.2,-0.23l-0.23,1.51l1.39,1.22l1.0,-1.4l0.8,1.26l-0.83,3.7l-1.57,-0.48l-0.9,0.9l-1.83,-0.25l-1.1,1.72l-1.84,-0.82l-0.04,1.26l-1.58,0.48l-1.41,-1.13l-1.54,0.16l-0.46,0.75l-0.83,-1.04l-3.94,-1.21l-1.27,-2.09l-1.5,-0.03l-1.12,1.34l-3.67,-1.26l-0.43,-0.87l2.54,-1.36l0.07,-1.33l-3.85,-1.12l-0.64,-1.26l-2.42,-0.91l-2.45,0.1l-1.13,-0.9l1.31,-1.45l0.18,-2.67l-1.8,-2.85l-1.81,1.09l-0.36,1.29l-1.64,0.17l-0.41,3.13l-3.6,3.28l-4.69,0.8l-4.32,-1.01l-0.77,1.48l-3.95,2.3l-4.82,0.78l-4.52,-0.72l-1.13,0.66l-1.45,-1.06l-1.8,0.4l-0.65,-0.82l-4.19,-0.24l0.07,1.07l-6.6,-1.54l-2.6,-0.28l-1.27,0.6l-1.79,-0.57l-0.18,-1.43l-1.54,-1.61l-1.07,-4.66l2.09,-4.8l-0.39,-2.55l1.28,0.35l-0.11,-0.95l-4.84,-3.41l-4.48,-0.59l-1.12,-0.97l-1.41,0.5l-5.16,-2.72l-3.26,-3.47l0.33,-3.36l-1.77,-0.93ZM296.42,348.86l0.63,0.22l-0.44,-0.1l-0.19,-0.12ZM366.3,318.81l-1.06,-1.02l0.04,-1.63l1.15,1.7l-0.13,0.94ZM282.72,346.82l-0.62,-0.06l-0.07,-0.11l0.28,-0.07l0.41,0.24ZM374.96,341.65l1.94,1.67l-1.05,1.12l0.26,-1.62l-1.15,-1.16ZM370.45,212.46l1.02,-2.68l1.74,-1.62l1.28,0.15l1.48,1.77l0.65,4.47l-1.81,1.97l-2.25,0.64l-3.24,-2.83l1.13,-1.86ZM372.18,349.51l-0.69,-0.62l0.14,-0.26l0.41,-0.04l0.14,0.92ZM365.6,358.91l2.37,-2.4l1.72,1.02l-0.26,2.28l-0.9,-0.23l-0.19,1.25l-2.74,-1.91ZM369.05,337.93l-0.03,-0.16l0.09,-0.51l-0.05,0.67ZM337.68,214.24l3.33,-14.87l5.76,2.77l1.51,-3.5l0.25,-2.2l-3.92,-3.56l-0.1,-1.81l-1.63,-0.12l5.0,-2.96l-0.8,-3.92l-1.48,-1.73l-0.79,0.02l1.18,-5.29l1.87,-0.82l0.02,-1.38l3.47,-4.44l2.99,-0.51l-0.22,1.64l1.01,0.5l-0.04,1.06l-1.91,1.27l0.66,2.21l-1.1,3.26l1.56,1.07l0.7,2.61l-0.87,0.53l0.36,1.05l-1.58,0.69l-1.35,3.04l0.43,0.57l3.42,0.05l0.8,1.47l-2.71,3.12l-0.33,1.81l1.16,0.02l1.48,-1.92l2.67,-0.13l0.44,6.08l0.92,0.31l0.57,-2.72l1.6,-0.89l-1.34,-0.99l0.58,-2.79l1.65,-1.78l1.33,0.24l2.88,2.18l0.61,1.29l0.03,6.89l-2.61,3.05l0.61,0.99l-0.66,2.23l-1.87,2.23l-0.39,2.47l-1.33,1.0l0.24,0.93l-4.44,0.4l-1.89,1.54l-1.09,-0.14l-2.22,-1.7l0.37,-2.12l-0.6,-1.0l-0.76,1.63l-1.43,0.28l-0.39,1.54l-2.11,0.01l-0.34,-2.82l-1.7,-1.22l-5.3,3.83l-2.16,-0.53ZM352.93,252.59l-2.03,-2.5l-1.37,-0.46l3.4,-4.11l8.91,0.49l3.37,4.72l-1.3,5.04l-1.65,3.11l-2.3,3.37l-1.39,1.24l-1.07,-0.21l-0.06,1.2l-2.02,-6.47l-0.9,-0.66l-0.05,-2.54l-1.54,-2.22ZM356.24,131.28l0.61,-2.73l1.07,-4.77l1.78,2.73l0.28,1.9l-1.49,3.66l-1.82,0.06l-0.43,-0.84ZM354.64,140.84l-0.56,0.09l0.72,-3.2l1.23,1.04l-1.38,2.06ZM344.37,358.41l2.93,0.73l0.43,2.38l-1.76,-0.48l-1.6,-2.64ZM343.31,246.11l1.2,-0.38l1.16,0.72l-2.22,0.24l-0.15,-0.58ZM319.51,383.52l0.58,1.05l0.1,0.1l-0.52,-0.1l-0.16,-1.05ZM317.62,367.22l0.19,-0.56l0.63,-0.35l-0.4,1.1l-0.43,-0.19ZM317.34,374.35l-0.13,-0.78l0.25,-1.06l0.35,1.97l-0.46,-0.13ZM316.98,377.97l0.04,-0.85l0.65,-0.18l-0.58,1.35l-0.12,-0.32ZM314.27,374.28l0.57,0.24l-0.52,0.82l-0.22,-0.84l0.16,-0.22ZM310.96,365.11l0.9,-0.17l0.05,1.27l-0.95,-1.11ZM308.75,362.36l0.31,0.23l0.02,0.64l-0.44,-0.71l0.11,-0.16ZM304.92,360.33l0.09,-0.06l-0.03,0.05l-0.06,0.01ZM298.85,350.54l1.55,-0.48l0.33,0.64l-1.15,0.07l-0.73,-0.23ZM292.43,354.37l-0.15,-0.28l0.45,-0.29l-0.16,0.44l-0.15,0.13Z", "name": "Nunavut"}, "ns": {"path": "M806.11,740.27l1.94,-4.77l1.53,-10.21l1.51,-3.01l0.15,-1.97l1.87,-0.41l-0.36,1.59l1.07,0.72l1.38,-0.48l0.25,0.69l-0.15,2.84l0.78,0.69l-0.72,7.59l0.66,0.58l-1.72,2.11l-1.3,0.41l-2.17,3.71l0.96,0.16l0.28,1.37l0.95,-0.71l0.24,0.04l-1.43,1.75l0.15,1.53l1.35,0.03l1.9,-1.77l0.72,0.25l-0.26,0.87l-2.52,2.28l-1.15,-0.45l-1.0,1.26l-1.85,-1.48l-3.05,-5.19ZM816.59,744.31l1.05,-1.42l-0.51,-1.54l2.65,-4.97l-0.63,-0.39l-2.83,2.93l-0.6,-0.45l3.92,-6.11l-0.72,-0.78l-1.52,1.81l1.07,-2.31l1.42,0.6l-0.36,1.85l1.71,-0.36l-0.0,-1.84l2.48,0.8l0.8,-0.47l-0.4,2.67l1.97,0.46l-3.13,2.47l-0.17,0.84l0.9,0.39l-1.01,1.83l-4.32,3.9l-1.76,0.09ZM816.44,732.88l0.05,-0.34l0.15,-0.22l-0.19,0.56ZM816.77,732.01l0.24,-0.64l0.0,-0.0l-0.04,0.32l-0.2,0.32ZM812.97,739.62l0.88,-1.79l0.6,-0.25l0.0,1.23l-1.48,0.81ZM759.62,789.53l0.16,-4.68l2.2,-4.08l-1.01,-0.82l0.79,-1.21l0.55,1.16l1.15,-0.48l2.56,-4.02l-0.92,-0.09l-2.38,2.22l8.34,-9.82l4.16,-3.04l0.82,-1.68l0.15,2.95l0.79,0.75l0.65,-0.85l0.83,0.28l1.64,1.93l0.85,-0.63l-0.2,-1.37l-1.52,-0.96l0.48,-1.27l4.28,-3.21l3.19,-0.71l0.95,-1.59l-3.38,-0.07l-3.46,1.51l-2.84,-0.03l-3.3,1.74l-2.47,-0.07l-1.2,0.97l-0.22,1.24l-2.04,0.04l4.14,-6.74l0.02,-1.13l1.63,-0.72l0.41,-3.75l1.44,-1.22l1.43,0.16l2.21,1.66l1.47,-0.03l1.43,-1.45l-0.11,1.13l1.96,-0.28l0.15,0.77l1.33,0.29l2.45,-1.4l0.23,-0.87l4.41,-0.24l-1.15,1.72l1.38,0.56l1.1,-0.77l-0.0,-0.87l2.14,0.66l4.61,-6.3l1.62,2.8l3.57,0.38l1.19,-1.77l3.74,2.14l-2.2,2.48l0.51,0.93l5.15,-1.32l0.05,1.13l-0.76,-0.45l-1.84,0.96l-0.78,1.92l-3.7,1.02l0.54,1.19l-1.67,0.55l-2.19,3.02l-2.05,0.97l-1.89,2.18l-0.47,-0.39l-3.51,3.25l-0.15,1.04l-1.47,0.57l-0.41,-0.68l-1.66,0.09l-0.12,1.24l-1.32,0.34l-0.06,1.77l-1.34,-0.47l-0.81,0.54l0.56,0.97l-3.16,-1.14l-0.2,0.6l1.63,1.08l1.01,2.07l-1.9,0.73l-0.83,-0.89l-1.51,0.95l-0.65,-3.4l-2.22,1.84l0.95,1.84l-0.28,0.68l-1.28,-1.4l-2.02,0.98l-0.06,2.33l0.87,0.89l-0.1,1.05l-1.02,0.47l1.06,0.58l-1.02,2.27l-1.52,1.0l1.05,0.57l-1.54,0.73l0.61,1.07l-1.6,1.43l0.4,1.43l-0.91,-0.21l-0.93,0.87l0.68,1.29l-1.25,-0.81l0.52,1.66l-3.0,-0.19l0.49,2.0l-0.73,-1.36l-1.0,0.63l0.82,2.23l-1.31,0.88l0.18,1.22l-1.36,-0.74l-1.19,1.4l-1.25,-2.57l-2.08,-1.97l-2.19,-0.02l0.72,1.81l-1.29,-0.35l-2.43,-5.2ZM815.32,751.9l-0.03,0.02l0.03,-0.1l0.01,0.08ZM814.11,746.7l0.43,-0.47l0.76,-0.29l-0.16,0.85l-1.03,-0.09Z", "name": "Nova Scotia"}, "mb": {"path": "M325.81,733.16l8.91,-123.96l2.81,-21.17l0.68,-1.04l-0.07,-3.63l1.91,-0.88l-1.53,-1.99l0.27,-2.01l2.58,-1.88l2.72,-3.66l0.59,-2.49l-1.67,0.2l-0.75,-0.71l0.21,-4.29l-1.41,0.85l-1.0,2.53l0.82,-2.47l-0.4,-0.68l4.56,-34.38l33.83,3.81l33.9,2.47l-0.48,6.3l0.68,6.11l-0.92,4.18l-1.34,-0.06l-0.7,0.81l1.81,0.42l1.05,1.4l-0.48,3.02l1.42,-0.82l1.5,3.03l1.8,-0.28l0.27,0.59l-1.11,2.12l-0.82,6.88l0.75,-0.03l1.44,-3.28l0.06,-3.8l1.1,-2.83l4.0,-0.25l1.82,0.42l0.99,1.31l1.01,-1.02l1.12,0.23l0.16,4.19l2.86,8.44l0.25,4.64l3.21,8.93l-1.85,5.4l-2.86,2.98l1.99,-0.17l2.43,-1.98l1.58,-0.33l-1.98,1.88l1.85,-0.02l1.33,-1.17l12.03,-4.28l4.28,0.66l6.26,4.2l9.56,3.02l-49.26,55.91l-17.57,16.11l-3.92,65.83l-1.43,0.88l0.3,2.14l-32.47,-2.21l-38.67,-4.14ZM358.05,659.25l-0.57,1.38l2.52,3.34l1.2,-0.32l1.1,0.68l0.62,-0.83l2.78,0.77l-4.58,1.29l-0.34,1.82l0.94,2.85l3.13,3.99l0.22,2.26l2.43,1.74l0.42,2.75l0.85,0.78l0.19,3.11l3.02,1.79l1.2,-4.49l1.9,-0.21l-1.49,1.95l0.62,1.94l2.46,-2.21l0.95,4.17l-1.21,3.82l0.46,3.17l2.17,-1.39l0.62,-2.57l2.26,-0.95l0.51,1.06l0.38,1.6l-2.51,3.7l-0.84,3.0l1.26,0.25l2.08,-2.67l0.81,0.32l-3.9,4.57l-0.97,8.83l0.63,2.85l3.31,0.71l1.33,-1.44l-0.09,-3.28l0.45,-0.38l1.4,1.29l1.52,-0.53l-0.8,-1.43l0.01,-6.93l0.84,0.05l-0.0,-1.41l1.12,-0.85l-2.33,-3.53l-0.47,-2.7l-2.13,-3.63l0.91,-0.39l-0.33,-1.21l-1.6,-1.06l0.58,-1.53l-2.3,-4.74l0.77,-0.8l-0.17,-2.6l-1.45,-5.26l-1.96,-3.44l-0.13,-1.34l1.12,-1.31l-0.84,-0.77l0.04,-2.34l-1.58,-2.21l-0.66,-3.65l-1.5,-2.46l0.32,-1.95l-1.36,-4.38l2.17,-0.28l0.64,-1.93l-2.8,0.55l-1.48,1.77l-1.1,-1.27l0.86,-0.78l0.17,-2.08l2.78,-0.81l1.18,-1.18l-1.97,-2.6l-1.06,0.24l-3.76,7.32l0.66,2.32l1.82,1.62l-2.82,-1.76l-3.25,-0.16l-1.68,-1.09l-1.33,0.35l-4.39,11.12ZM338.24,663.05l-0.65,0.97l0.87,0.92l-0.25,1.12l1.03,-0.05l0.55,1.29l2.0,-0.24l0.99,-1.7l0.09,-1.38l-1.05,-1.03l2.46,0.66l-0.57,3.78l1.64,2.97l1.19,-0.99l-0.32,-3.9l0.85,1.53l0.88,-0.01l-0.54,2.9l0.85,1.25l-0.42,1.66l-1.48,1.16l-0.83,1.91l-0.36,6.88l0.69,3.55l1.1,0.47l1.8,2.85l2.36,-0.58l0.56,2.28l1.19,-2.43l1.22,0.34l0.19,1.6l1.37,0.02l0.09,3.43l1.45,3.0l-0.79,0.41l-0.11,1.58l2.87,6.16l1.6,6.25l-0.78,1.22l0.13,1.98l1.68,1.36l3.19,-0.36l2.9,-1.85l0.24,-2.18l-4.5,-7.89l-3.89,-1.78l-0.07,-1.57l1.52,-1.23l1.34,-3.48l-2.0,-0.95l-0.47,-1.63l1.15,-2.77l-0.96,-2.78l-0.73,-0.49l-1.66,0.65l-1.94,-2.22l0.01,2.67l-0.52,0.11l-0.48,-2.45l-1.72,-0.95l-1.95,2.31l0.29,-2.62l-0.56,-1.05l-0.64,0.0l-0.97,2.03l1.25,-3.44l0.01,-1.74l-0.87,-0.31l0.05,-3.27l1.27,-1.06l1.73,-3.79l-0.43,-5.26l0.7,-1.86l-4.25,-3.36l-3.17,-1.0l-0.49,-1.05l-1.59,-0.72l-1.62,1.53l-2.05,-0.16l-0.63,-1.36l-1.79,0.41l-0.53,1.06l1.35,1.66l-0.08,1.04ZM343.01,656.44l1.13,1.51l0.98,-0.26l0.96,2.44l3.89,2.01l3.85,-0.8l0.49,1.98l2.25,-0.5l-0.1,-1.24l0.87,-0.61l-0.66,-1.0l0.38,-2.94l-2.0,0.71l-2.48,-0.31l-0.99,1.43l-0.7,-1.78l0.88,-1.47l-1.1,-2.72l-1.76,-1.5l3.0,-1.3l0.35,-1.72l0.74,1.18l0.79,-0.05l1.06,-2.81l1.32,-0.99l-0.07,-1.43l-0.89,-0.39l-2.15,2.28l-3.16,1.45l-0.24,-0.54l1.53,-1.35l-1.92,-1.62l4.72,-1.87l-0.02,-1.11l-1.87,-0.0l-1.52,-1.59l-1.47,0.99l-0.63,-0.73l-0.85,0.38l0.24,5.25l-1.56,-0.75l-1.07,0.89l0.89,1.62l-0.57,0.99l1.53,3.23l-1.1,-0.29l-0.96,0.88l-1.74,-0.65l-0.54,0.69l0.88,1.1l-2.03,-0.96l-1.8,1.37l3.2,2.86ZM341.7,570.74l0.11,0.46l-0.33,0.4l-0.3,-0.25l0.52,-0.61ZM372.43,651.83l0.78,0.33l0.07,0.14l-0.68,0.12l-0.17,-0.58ZM373.09,681.95l-0.22,-0.07l-0.17,-0.02l0.34,-0.17l0.05,0.27ZM385.47,699.16l0.7,-0.42l0.64,-0.04l-0.44,0.34l-0.9,0.12ZM383.3,699.6l-0.34,1.82l-1.34,0.72l0.88,-0.74l0.79,-1.81ZM377.76,678.72l0.37,-0.5l0.24,-0.1l-0.05,0.16l-0.56,0.45ZM370.13,675.8l0.54,-1.53l0.13,3.36l-0.46,-0.78l-0.22,-1.05ZM357.53,697.63l0.49,0.05l0.11,1.04l-0.27,-0.23l-0.34,-0.86ZM358.33,696.85l-0.03,-0.15l0.14,-0.13l-0.11,0.27ZM357.84,689.63l0.46,0.59l-0.04,2.55l-0.44,-2.49l0.02,-0.65ZM347.78,684.17l-0.0,-0.02l-0.02,-0.1l0.05,0.08l-0.04,0.04ZM347.6,681.67l-0.12,-0.23l0.03,-0.26l0.07,0.22l0.02,0.27ZM349.11,674.67l-0.15,-1.21l0.81,-1.07l-0.36,1.68l-0.3,0.6ZM348.35,656.43l0.0,0.0l-0.0,0.0l-0.0,-0.0Z", "name": "Manitoba"}, "sk": {"path": "M225.52,715.72l39.97,-178.67l7.25,-1.44l1.31,1.41l12.87,0.18l1.43,-2.31l0.88,1.22l4.11,0.42l3.46,1.73l7.89,0.67l-0.84,-0.96l-5.15,-0.85l-2.45,-1.6l-3.4,-0.16l-2.27,-2.18l-3.22,-0.71l-2.58,-1.68l-4.02,-0.32l-2.77,0.98l1.34,-2.29l-0.87,-0.76l-1.81,0.51l-0.58,-2.19l-0.93,-0.65l-2.97,-0.33l-5.02,3.79l2.54,-11.36l37.12,7.44l37.41,5.82l-4.58,34.49l-1.83,1.67l-0.01,1.71l-2.81,1.32l-1.71,2.49l-1.74,0.06l-0.19,2.8l-2.61,1.35l-1.09,3.92l1.79,-0.4l1.19,1.26l-1.32,2.68l1.76,0.57l-0.31,4.59l-2.32,0.06l-3.29,4.78l1.51,-6.72l-0.95,-0.48l-1.63,5.24l-1.25,0.01l-0.61,0.92l-0.03,1.77l0.55,0.19l-0.9,2.9l0.77,0.84l1.75,-2.64l0.13,1.02l1.37,0.4l1.78,-2.5l4.61,-1.44l0.17,-1.79l1.5,-0.27l0.7,-0.98l-1.43,-0.62l0.7,-0.7l1.47,0.09l1.37,-2.0l-2.8,21.13l-8.91,123.93l-50.48,-7.59l-49.01,-9.75ZM321.15,570.65l0.95,0.2l1.78,-1.81l1.8,0.51l0.38,1.25l-1.49,2.36l1.92,-0.81l1.84,-2.74l-1.39,-0.73l1.05,-3.5l3.03,-0.66l0.82,-1.15l-0.99,-1.18l0.63,-0.7l0.9,0.38l1.19,-1.81l-0.29,-1.14l-1.17,-0.59l-0.12,-1.79l-1.98,0.19l-0.69,-0.9l-0.89,1.02l0.19,0.93l-1.46,0.5l-1.33,-0.79l-1.32,0.9l-1.19,2.67l0.36,1.78l-1.9,1.78l0.32,0.65l2.03,-0.32l-2.97,1.62l0.31,1.04l1.31,-0.05l-2.31,2.02l-0.17,1.08l0.83,-0.21ZM329.12,591.75l0.01,0.02l-0.02,0.0l0.01,-0.03ZM337.04,580.48l0.76,-1.11l0.21,-1.05l-0.31,2.31l-0.66,-0.14ZM334.83,587.78l-0.06,-0.5l0.75,-1.28l-0.11,1.5l-0.59,0.28ZM332.55,578.38l0.2,-0.02l0.16,0.03l-0.1,0.23l-0.25,-0.24ZM324.49,566.41l0.75,-0.68l0.15,-0.05l0.08,0.36l-0.98,0.37Z", "name": "Saskatchewan"}, "qc": {"path": "M567.54,485.56l2.68,-1.98l1.59,-2.47l6.39,0.69l6.3,2.28l4.25,0.42l-2.04,2.18l0.37,0.65l4.59,-3.75l1.34,0.24l0.63,1.1l0.93,-0.89l2.52,1.84l2.15,0.56l0.33,-0.61l-1.98,-1.25l0.01,-0.69l2.64,-0.51l1.11,-1.65l2.27,-1.23l0.87,-2.05l1.31,-0.53l1.15,1.47l3.31,0.92l3.37,3.27l1.41,-0.03l0.32,-0.84l0.81,0.4l0.61,2.24l-1.14,2.9l0.44,0.56l2.15,-0.39l-0.63,-1.88l3.32,0.52l0.29,2.27l1.48,-0.07l0.73,0.84l-0.4,1.12l-1.78,0.48l0.08,1.33l3.16,-1.31l0.24,-1.94l2.68,0.89l-0.2,0.92l-1.78,0.57l0.84,1.44l-0.94,1.0l1.77,0.4l-0.94,0.39l0.28,0.79l1.22,0.1l-0.28,0.74l1.22,0.54l0.82,1.88l1.12,-0.73l1.12,0.98l0.99,-0.79l0.6,0.52l1.4,-0.43l1.24,0.89l1.95,-0.4l0.47,0.74l1.44,0.04l1.87,-2.0l1.12,-0.12l0.88,1.88l-0.23,1.61l2.73,1.17l0.99,-2.2l0.66,0.54l0.86,-0.68l-0.68,-2.21l0.39,-1.34l2.03,2.74l0.4,1.74l-2.54,2.76l0.92,2.18l-1.2,1.53l1.51,2.42l-0.12,1.26l1.77,1.39l0.42,2.48l-1.52,0.27l-0.12,1.39l-4.28,0.38l-2.16,1.18l-4.19,-0.67l-0.74,0.79l5.04,1.01l7.7,-1.58l-0.08,1.01l1.78,0.38l0.15,3.34l1.33,0.37l-1.61,2.91l1.54,2.47l-0.64,1.56l1.63,0.02l1.62,-1.44l0.55,0.66l0.9,-0.37l0.42,1.2l-1.79,0.29l-0.81,1.56l1.94,4.81l-0.53,1.75l-0.49,0.33l-0.49,-0.84l-0.43,-2.08l-2.54,-1.36l0.07,2.24l1.07,1.13l-0.9,1.22l-2.52,1.17l-0.21,0.87l3.16,-0.09l2.25,2.48l1.48,-3.64l2.54,-3.15l3.47,-0.41l0.89,-0.97l4.23,1.35l0.88,3.2l2.07,2.53l0.03,5.92l-1.06,1.95l-5.56,3.96l-1.58,3.45l3.83,-4.1l4.86,-3.19l0.7,-1.85l-0.2,-7.51l1.76,-0.2l1.11,3.2l-1.48,4.96l0.81,0.14l0.86,-1.54l1.17,-3.78l1.04,1.05l0.48,5.63l1.0,0.4l-0.27,-3.89l0.92,-3.12l3.42,-2.57l0.63,-2.68l1.04,1.17l0.55,-1.56l1.61,-0.49l-0.5,-3.33l0.91,-1.35l-0.08,-2.13l4.9,2.94l0.38,3.6l-0.65,1.08l1.18,0.8l0.82,-5.76l-2.39,-1.59l-0.76,-2.0l2.26,-0.94l-0.23,-0.75l-1.62,-0.02l0.76,-1.47l1.91,0.43l-0.97,-1.83l2.13,0.56l0.2,-0.65l-1.0,-0.55l1.84,-0.07l0.57,-0.69l-2.51,-0.75l-0.86,0.79l-0.95,-1.14l1.63,-2.34l-1.22,-1.3l1.63,1.03l0.65,-0.66l-1.2,-1.2l0.27,-1.02l-0.91,-0.42l1.58,-0.5l2.03,1.08l1.18,-0.2l-2.5,-1.88l-2.27,-0.15l-2.07,-3.34l1.18,-2.17l2.75,0.78l1.03,-0.65l-2.55,-0.99l0.83,-1.94l-0.92,-1.51l0.72,-3.18l2.37,-0.35l0.39,0.53l-1.02,0.44l0.27,0.84l-1.61,0.8l1.18,1.74l1.8,0.19l-0.93,1.95l1.24,5.32l2.0,1.75l2.73,-2.15l-1.08,1.6l0.96,4.42l1.29,1.97l1.91,0.72l-4.47,-0.11l-0.76,1.69l0.28,1.7l5.87,-0.6l0.77,1.65l1.34,0.35l3.31,-3.48l2.62,1.19l-4.93,3.05l0.59,2.54l0.98,0.39l1.01,-0.96l0.71,0.98l-2.51,3.1l0.08,2.13l-1.41,1.31l0.05,2.0l0.64,0.85l1.8,-0.09l3.0,4.39l1.14,-0.81l1.6,1.6l1.76,0.07l-0.75,1.73l1.5,3.17l-0.87,1.11l0.05,1.7l1.5,1.96l-0.57,1.26l0.73,3.23l-0.83,0.91l0.33,1.16l-0.83,1.87l3.76,4.08l-2.68,0.86l1.07,2.62l1.03,0.74l1.87,-0.08l-0.99,1.19l0.5,1.88l1.22,-0.66l1.2,0.69l2.14,-0.12l-0.88,1.63l0.62,1.68l2.96,2.0l1.05,1.64l2.06,0.9l1.25,-0.5l0.24,1.93l1.03,0.77l-3.29,3.75l0.16,2.77l1.69,1.08l-0.72,7.12l-7.14,-0.89l-2.03,1.25l-2.45,0.1l-3.14,1.95l-3.52,0.02l-2.1,1.19l-2.7,-2.92l-2.07,0.38l-2.35,-0.87l-4.27,-3.5l-2.9,-1.23l-0.87,1.07l1.96,1.57l-0.17,2.11l1.48,1.67l-0.4,1.11l1.8,2.02l-0.87,1.11l-6.47,-3.28l-0.16,-1.16l-1.37,-0.14l-0.77,0.94l0.2,1.29l2.53,2.68l-0.03,1.02l1.44,0.79l-0.02,0.93l1.91,0.16l-1.55,0.44l-0.36,1.99l-2.07,-0.88l-1.48,0.78l0.14,2.15l2.19,2.6l-1.79,5.54l2.42,1.66l0.46,1.12l1.76,0.66l0.23,3.29l0.89,0.64l3.05,-0.25l1.66,2.57l1.09,-0.28l0.81,0.77l-0.36,2.35l0.9,2.89l-0.65,2.01l1.25,4.36l3.53,0.01l1.16,-1.3l-0.51,-4.02l1.22,-0.52l0.08,-1.42l2.1,1.75l-0.84,0.91l0.94,1.83l-0.9,0.76l1.11,2.51l-0.4,0.73l1.33,1.83l-0.78,2.0l1.83,2.63l1.35,0.07l-0.43,-2.68l1.31,0.96l0.94,-0.23l0.96,2.03l3.17,0.35l0.08,-1.35l2.55,0.46l0.37,-3.06l3.66,-0.38l3.28,1.73l0.71,1.7l3.05,0.82l-0.99,1.63l2.72,3.16l2.93,-4.57l-1.46,-1.65l-0.38,-4.86l1.35,-1.05l-1.32,-4.92l1.22,-0.11l-0.3,1.18l2.44,0.0l2.61,3.99l-1.28,-0.17l-0.48,0.73l1.68,1.11l35.01,-11.1l35.07,-12.54l3.42,9.02l-1.77,-0.95l-2.75,2.28l-1.08,0.49l-0.72,-0.49l-2.68,4.19l-1.64,1.25l-1.0,-0.75l-0.11,1.13l-1.43,-0.17l-1.72,1.36l-0.6,1.16l1.14,1.19l-3.26,3.83l1.5,3.76l-0.63,-1.43l-0.81,-0.1l-0.43,2.86l-0.77,0.21l-1.21,2.32l-0.67,3.58l-2.17,1.52l-0.5,1.77l0.65,0.77l-1.2,1.54l-2.9,0.03l-0.31,0.93l-2.71,1.52l-0.41,-0.49l-0.86,0.79l-1.54,-0.22l-0.9,1.3l-6.38,3.28l-0.63,-0.58l-1.77,1.59l-1.49,-1.29l-3.94,1.02l-2.28,-0.28l-3.14,1.2l-0.63,-0.4l-2.2,1.18l-1.14,-0.17l-3.8,2.96l-4.91,-0.34l-3.53,1.93l-3.54,-0.01l-4.49,2.21l-4.62,0.41l-4.94,2.55l-2.65,0.05l-1.66,2.26l-2.24,0.48l-0.93,-0.98l-0.82,0.24l-2.35,4.9l-1.87,1.56l-0.22,2.67l-1.15,0.65l0.37,6.89l-0.9,2.3l-7.12,2.55l-2.85,2.86l1.47,0.84l-1.15,0.54l-0.93,-1.34l-1.01,0.1l0.64,1.28l-1.75,1.62l-0.67,2.63l-3.49,3.63l-0.27,3.11l-1.0,0.53l-1.29,5.65l-2.01,3.09l-1.29,0.07l-2.38,-1.59l-1.96,0.46l-3.06,-1.17l-3.75,0.48l-3.78,-0.53l-1.08,0.61l0.34,0.72l2.87,-0.0l-0.93,0.89l0.77,0.75l4.35,-1.54l4.13,1.14l2.46,-0.31l2.54,1.29l-0.84,6.13l-2.02,2.56l-0.47,3.04l-2.8,1.66l-1.43,6.21l-2.49,2.27l-2.57,4.76l-5.07,3.11l-2.2,0.19l-3.66,3.19l-0.16,1.61l-3.51,3.69l-4.41,2.47l-0.11,1.93l-1.55,0.98l-2.15,5.95l-3.75,2.23l-2.78,3.92l-3.31,-0.18l-4.81,-1.52l-7.53,2.73l-6.18,4.37l-2.82,-1.86l-2.34,0.27l-0.91,1.01l-3.85,-1.06l-3.2,-5.29l-1.74,0.28l-0.33,1.68l-2.91,-1.28l-1.98,-2.69l-4.14,-1.81l-13.22,-1.13l-3.35,-2.85l-6.82,-9.11l-0.54,-3.26l-1.96,-2.87l0.5,-2.68l-6.88,-58.58l1.67,2.7l0.76,-0.3l-2.63,-4.13l-1.45,-10.21l1.8,-2.07l0.51,0.3l-0.05,1.75l1.97,-0.07l1.17,0.94l1.17,4.32l2.02,0.89l-0.92,-1.44l0.7,-2.4l-0.66,-0.48l1.87,-2.2l-1.42,-0.35l-0.2,-1.85l-2.72,-2.34l1.92,-1.2l-0.7,-1.8l1.4,-0.7l1.48,-2.63l0.22,-2.55l1.53,-0.35l-1.62,-0.87l0.35,-0.97l-1.08,-3.34l-1.97,-0.38l0.3,-0.73l-1.54,-2.57l0.77,-0.58l-0.19,-2.18l-1.55,0.32l0.7,-1.5l-0.99,-0.9l-0.91,0.22l0.22,-3.89l-2.13,-4.19l0.97,-1.93l-1.87,-3.11l0.14,-1.17l1.02,0.29l0.34,-0.65l-1.75,-0.7l0.54,-0.95l-0.65,-1.0l0.79,-0.61l-1.92,-1.3l0.47,-1.99l-2.94,0.06l0.37,-1.03l-1.53,-0.25l-1.71,-5.56l-1.6,-1.27l12.54,-7.64l5.83,-5.38l5.76,-8.04l0.03,-1.54l3.67,-6.25l0.7,-7.28l-2.09,-12.99l-4.38,-10.16l-4.3,-5.9l-3.31,-2.21l-0.4,-0.99l-5.76,-2.52l-4.54,-4.12l-1.36,0.49l0.77,-1.64l-1.24,-3.71l2.05,-0.16l1.57,-5.91l2.29,-1.62l0.35,-1.83l0.75,-0.42l-0.01,-0.71l-1.88,-0.96l1.18,-1.28l-0.12,-1.72l-0.72,-0.58l1.56,-0.14l1.48,1.82l1.76,-0.42l-1.31,-0.66l-1.04,-2.07l1.87,-1.5l-1.03,-2.89l1.33,-2.14l-0.47,-0.56l-3.35,0.5l1.59,-1.31l-1.31,-0.85l0.39,-0.86l-0.77,-1.16l-2.18,-1.91l2.59,-3.27l-1.49,-0.49l-1.22,0.52l-1.2,-1.06l2.38,-4.21l-0.95,-0.23l-2.27,1.59l-0.86,-1.07l-2.14,0.94l2.89,-4.95l0.63,-2.61l-1.13,-4.32l1.75,-1.37l-1.13,-1.19l1.27,0.24l0.34,-0.62l-1.23,-1.21l-1.15,-0.05l-0.92,-1.42l-1.99,-0.29l-2.53,-8.09l-0.22,-2.36l0.82,-1.84ZM689.57,666.14l2.97,2.78l0.4,4.81l3.85,2.18l2.91,3.03l-0.08,2.64l1.13,1.65l0.1,-6.44l1.08,-1.92l1.66,-0.63l-0.19,-1.37l1.35,-2.13l-1.37,-1.44l-0.69,-3.39l-0.83,-0.4l0.98,-1.49l-0.24,-1.9l-1.02,-0.45l-0.51,3.11l-1.74,-0.59l0.3,-3.81l-2.42,-1.16l0.9,3.16l-0.05,1.06l-0.54,-0.56l-0.61,0.45l0.5,1.31l-1.72,0.69l-0.92,-1.3l-0.87,2.84l-2.4,-5.39l-0.46,1.1l1.2,4.24l-2.2,-2.96l-0.38,1.02l-0.98,0.1l0.87,1.15ZM641.29,697.73l-1.32,5.35l0.92,-0.27l1.5,-3.61l1.02,0.96l0.17,1.97l1.01,0.68l-1.41,0.75l-2.37,3.12l0.88,0.82l1.32,-0.43l0.12,-1.1l2.26,-2.64l-0.25,-2.25l0.82,-0.6l-1.24,-1.43l-0.37,-2.37l4.08,-9.43l0.55,-0.8l0.05,1.71l-1.74,2.01l-0.84,3.7l4.78,-6.08l0.82,-2.37l3.4,-2.58l-0.15,-0.73l-1.75,-0.25l-0.62,0.53l-0.45,0.12l0.95,-2.03l-4.09,0.13l-2.49,2.35l-3.6,5.35l-2.17,1.13l0.23,2.25l0.66,0.46l-0.68,5.6ZM578.58,653.33l-0.12,0.05l-0.03,-0.04l0.15,-0.0ZM653.17,787.27l4.41,1.1l0.65,0.96l-1.84,0.63l-1.91,2.07l-1.51,-1.14l0.21,-3.62ZM655.64,541.71l0.05,-0.09l0.04,0.01l-0.05,0.06l-0.03,0.02ZM627.38,494.93l0.16,-0.06l-0.08,0.05l-0.09,0.01ZM639.8,499.28l-0.07,-0.03l0.04,-0.08l0.03,0.12ZM657.49,533.45l0.42,-0.03l0.38,-0.21l-0.29,0.53l-0.52,-0.29ZM677.32,543.83l-0.22,-0.37l-0.25,-1.11l0.12,-0.83l0.35,2.31ZM692.9,522.01l-0.29,-0.07l-0.05,-0.23l0.17,0.12l0.17,0.19ZM695.33,499.9l-0.07,-0.73l1.02,0.21l-0.34,0.12l-0.61,0.4ZM696.44,499.35l0.14,-0.3l0.34,0.14l-0.21,0.11l-0.26,0.05ZM721.21,553.5l-0.0,-0.22l-0.06,-0.42l0.12,0.17l-0.05,0.47ZM742.68,638.01l-0.94,-0.91l-1.23,-4.78l2.19,-1.57l-0.57,-3.86l2.03,-0.83l1.87,2.26l0.26,3.08l2.85,1.31l-4.71,1.98l-1.74,3.3ZM572.29,551.83l-0.04,-0.14l0.05,-0.08l-0.01,0.22ZM809.54,639.84l0.11,-0.18l0.38,-0.14l-0.2,0.29l-0.28,0.03ZM794.07,718.76l-0.04,-0.31l0.4,-0.4l-0.02,0.55l-0.34,0.16ZM794.08,721.05l0.12,0.06l0.22,0.03l-0.4,0.14l0.05,-0.23ZM752.05,684.58l3.35,-1.98l12.06,-0.48l7.47,1.06l4.76,2.11l3.86,-0.07l3.15,2.43l-0.94,1.38l-4.79,1.57l-10.21,0.1l-5.99,-1.0l-1.45,-1.91l-4.1,-1.89l-7.17,-1.32ZM652.71,796.39l2.37,-2.89l3.83,-1.92l2.72,-3.56l2.68,-0.68l0.07,-5.26l2.17,-3.82l0.22,-2.72l4.72,-3.18l2.23,-3.77l2.48,-1.6l0.65,-2.03l1.89,-1.12l1.43,-2.03l1.92,0.23l4.53,-3.0l1.48,-2.1l4.17,-2.21l2.66,-2.41l8.34,-16.91l0.68,-3.09l5.71,-8.22l7.34,-7.76l14.54,-11.65l4.17,-2.69l7.07,-3.0l8.62,-0.99l3.41,0.69l4.64,2.34l0.25,0.85l-3.4,-0.34l-0.76,0.51l0.9,1.37l1.21,-0.43l0.13,0.76l3.16,1.24l-0.69,1.61l1.11,0.79l-0.89,1.66l-3.97,2.67l-0.08,2.5l-1.99,0.9l-0.01,1.14l-2.76,2.81l-1.46,0.58l-4.54,-0.82l-1.94,-1.54l-1.61,2.77l-4.74,0.93l-0.62,1.24l-3.97,2.56l-0.15,1.39l-1.26,-0.06l-3.13,2.04l-2.65,-0.67l-0.75,-1.02l-5.83,1.45l-0.09,1.3l-2.99,1.14l1.44,6.32l-1.36,2.4l-4.88,3.54l-0.62,-2.08l-2.76,0.16l-6.09,15.23l0.29,5.14l-1.15,1.5l-0.55,2.85l0.72,1.19l-0.26,2.96l0.87,0.77l-1.38,2.38l0.31,1.47l-2.74,3.32l-0.21,1.82l1.32,1.03l-1.96,-0.13l-0.29,2.78l-1.38,-1.09l-1.81,2.22l-2.46,-0.16l-1.2,1.39l0.52,0.71l-0.6,3.08l-37.0,7.26ZM695.11,673.17l-1.2,-1.89l1.28,-3.57l2.36,-1.72l2.65,0.97l1.12,3.06l-1.49,-2.14l-0.88,0.09l-0.35,1.07l1.59,2.2l1.6,0.33l-0.48,1.45l-1.08,-0.11l-0.18,0.98l-1.7,0.54l-1.79,-1.34l-1.43,0.06ZM699.83,676.44l0.05,-0.39l0.27,-0.52l-0.05,0.36l-0.26,0.55ZM688.63,755.76l1.98,-2.71l0.28,-0.13l-0.38,1.07l-1.88,1.77ZM659.46,787.18l2.28,-1.7l1.54,-2.74l-0.52,3.86l-3.3,0.58ZM659.81,785.25l1.03,-1.6l0.72,-0.51l-0.63,1.6l-1.12,0.51ZM659.11,532.42l0.63,-0.24l0.62,1.37l-0.55,1.27l-0.69,-2.4ZM656.94,791.1l0.16,-0.25l0.89,-0.1l-0.46,0.23l-0.58,0.13ZM652.03,682.85l-1.22,1.65l-0.39,-0.18l0.87,-0.97l0.73,-0.5ZM649.56,685.96l-0.16,0.02l-0.35,0.32l0.38,-0.81l0.12,0.47Z", "name": "Qu\u00e9bec"}, "pe": {"path": "M769.24,739.85l-0.18,-1.73l2.38,-5.55l0.78,1.7l-0.66,2.7l1.46,0.36l2.27,2.05l-0.46,2.1l1.16,-0.5l0.61,0.64l1.57,-0.17l0.11,-2.32l2.73,1.04l1.06,-0.97l1.95,1.15l7.37,-2.66l0.67,-1.07l5.69,-1.66l-1.8,2.01l-1.67,0.27l-0.29,1.75l-1.05,0.36l0.88,0.75l-1.76,0.32l0.28,1.54l1.91,0.57l-1.06,1.49l1.06,0.39l-2.59,1.13l-1.77,-0.58l-0.25,-2.19l-1.63,-0.62l-1.22,0.39l1.06,-1.86l-0.51,-0.53l-1.64,1.82l-1.07,0.01l0.29,0.75l-0.86,1.0l0.82,0.47l-3.05,-0.53l-1.4,0.5l-2.44,-1.08l0.82,-0.41l-0.92,-1.1l-4.45,1.08l0.16,-2.7l-0.78,-1.42l-0.79,0.92l-2.8,0.36Z", "name": "Prince Edward Island"}, "bc": {"path": "M13.68,416.26l38.29,21.56l40.78,20.26l41.78,18.1l42.4,15.79l-37.34,108.94l0.23,2.34l1.36,1.97l-2.01,-0.53l-0.39,1.88l1.81,4.12l2.62,0.69l0.45,3.38l2.09,1.93l1.26,-1.4l0.77,1.04l0.58,1.33l-0.59,0.93l0.97,0.98l-0.26,2.71l1.46,0.32l0.34,1.0l-0.42,9.09l2.27,0.12l0.91,-1.11l1.91,1.91l-1.43,1.59l0.3,1.88l1.42,1.86l3.03,0.67l-0.09,1.84l1.68,3.03l0.35,4.0l1.36,0.39l1.81,-1.22l0.08,2.89l2.0,4.22l-0.25,2.61l1.91,2.06l0.16,2.41l1.93,1.34l1.19,2.3l-0.77,2.06l2.77,3.21l0.39,3.35l2.44,0.37l1.38,4.09l-0.14,5.53l-0.98,2.53l0.11,2.26l-2.3,3.28l1.69,1.46l-0.74,2.47l1.46,4.06l2.11,1.46l0.58,2.44l-54.57,-16.38l-42.44,-14.97l-1.34,-2.34l-2.28,0.42l1.41,-1.4l-1.8,-0.63l1.1,-0.76l-0.62,-1.25l3.35,0.77l1.94,-2.65l-0.87,-0.46l-1.34,1.81l-0.73,-0.02l-2.26,-1.5l3.4,-5.58l-1.54,0.14l-0.64,1.13l-3.29,0.49l-0.74,1.8l-2.22,-2.35l1.18,-1.54l3.24,-0.79l-0.37,-0.66l-2.84,-0.01l-0.59,-2.27l1.35,-1.97l-0.25,-1.64l2.91,-1.08l-0.39,-1.65l-1.48,-1.88l-0.67,0.31l1.11,2.67l-2.3,0.5l-2.93,3.08l-2.88,-0.88l-1.94,-4.22l3.27,-3.87l-0.4,-1.99l0.66,-0.64l2.68,0.23l1.56,-1.1l-0.53,-0.58l-1.92,0.55l-2.02,-0.55l-2.16,1.19l-0.86,-0.52l0.19,-1.72l-0.86,-0.14l3.08,-1.59l1.61,-2.59l-0.54,-1.17l1.94,-1.18l-0.12,-1.14l-0.81,-0.31l-2.3,1.51l0.22,1.81l-0.79,1.69l-3.79,2.15l0.16,-1.29l-1.14,-0.17l-0.23,-1.39l-1.19,0.93l-1.01,-0.17l1.36,-2.4l1.52,-0.77l-0.21,-0.88l-2.03,0.51l-2.34,3.14l-0.55,-2.01l-2.3,0.15l-1.87,-1.12l0.32,-0.73l5.59,0.31l1.71,-1.03l0.34,-1.63l0.94,0.18l1.32,-1.41l-0.32,-3.45l-0.89,0.49l-0.07,2.73l-1.67,0.34l-0.41,1.52l-1.26,0.7l-1.91,-0.24l-0.41,-0.77l-2.03,-0.08l2.36,-1.07l-1.65,-0.62l0.58,-1.2l-0.82,-0.57l1.48,-0.85l-3.03,-1.52l0.13,-2.45l-1.55,2.18l-1.62,0.38l-1.26,-1.83l-1.03,0.28l-2.78,-1.56l-0.03,1.06l-1.91,-2.09l0.18,-0.81l-0.87,-0.64l1.2,-1.71l-2.02,-0.72l-0.34,-2.17l2.39,-0.07l3.73,1.75l1.27,-0.28l0.88,-1.35l-0.59,-0.45l-2.09,0.8l-1.52,-0.85l-0.02,-0.89l-3.06,-0.81l3.0,-0.69l1.92,-2.23l4.52,1.2l3.66,2.02l1.79,-1.19l-0.38,-2.15l-1.39,2.05l-6.12,-3.54l-0.79,0.4l2.07,-2.17l-0.61,-0.83l-2.47,2.04l-1.94,-0.38l0.85,1.33l-1.62,1.97l-1.06,-1.22l0.06,-2.5l1.21,-2.96l1.4,-0.83l1.32,0.33l1.96,-1.48l1.81,0.23l0.25,-1.47l3.62,-0.97l1.19,0.83l1.4,6.84l0.91,-1.43l-1.14,-3.48l0.26,-1.89l2.56,-0.31l-0.5,-0.96l-2.81,-0.06l-1.19,-1.21l0.44,-2.15l3.22,-0.88l1.43,-1.41l0.28,-2.14l-0.81,-1.58l-0.65,0.29l-0.22,3.03l-3.76,1.37l-0.84,1.41l-3.04,0.79l-2.28,0.14l0.03,-1.16l-1.92,1.47l-0.07,-1.06l1.33,-0.79l0.83,-4.09l-2.89,0.28l-1.92,1.56l4.7,-7.11l1.47,-0.62l-1.26,-0.96l-2.19,1.52l-1.33,-1.02l0.85,-4.21l1.01,-1.4l-0.84,-0.43l-0.19,-1.93l-0.88,0.13l-0.66,-1.45l0.74,-2.41l0.91,-0.63l-0.91,-1.26l1.28,0.17l-0.12,1.24l1.75,3.88l0.96,-1.37l3.2,1.11l-0.64,1.96l0.94,-0.15l0.03,2.25l1.24,0.61l0.19,-2.33l-1.0,-3.59l-2.27,-1.32l-1.99,0.31l-1.33,-3.84l1.65,-2.6l1.19,-0.39l1.97,1.07l0.05,-1.0l-1.41,-1.23l1.57,-2.17l-0.99,-0.09l-3.25,1.95l-0.57,-1.39l-0.8,0.06l-0.29,1.7l-0.47,-0.69l-0.66,1.18l-2.69,1.13l-2.16,3.62l-2.66,-9.4l0.18,-1.8l-0.78,-0.55l1.81,-3.54l1.68,4.79l-0.08,-4.94l2.67,1.58l2.23,-0.66l-0.37,-0.7l-1.5,0.3l-1.83,-1.67l-3.38,-0.01l-0.89,-1.25l1.17,-0.49l0.43,-2.86l-1.71,0.68l-0.64,-0.71l0.52,-0.88l0.82,0.14l0.4,-1.89l0.58,-0.0l0.81,5.21l1.31,0.88l-0.43,-2.01l1.95,-1.82l-1.29,-0.41l-0.83,0.73l-0.5,-4.19l1.16,-0.05l1.29,2.42l1.75,0.73l-1.81,-3.81l2.23,-1.4l0.1,-0.88l0.54,-0.4l0.09,1.05l2.0,-0.48l2.14,0.76l0.42,-0.72l-3.37,-1.69l6.34,-5.04l1.97,0.13l-0.21,-0.94l-2.03,-0.26l0.42,-3.12l-0.63,-0.43l-2.89,5.71l-4.38,3.54l0.19,-1.23l3.65,-2.47l1.85,-8.34l3.08,-2.48l0.24,-3.33l-2.86,-2.26l0.24,-1.84l-1.34,-1.53l-0.43,-1.97l-2.66,-2.59l-2.71,-5.17l-2.36,-1.11l1.2,-3.41l-1.5,-2.18l1.9,-2.25l-2.06,-2.5l1.76,-1.48l-0.9,-23.72l0.09,-1.46l0.99,-0.7l-1.5,-7.31l-2.39,-3.93l0.48,-5.51l-0.8,-0.66l-0.18,-2.6l-1.73,-1.64l0.25,-2.83l1.73,-2.27l-1.63,-6.02l-5.6,-0.15l-2.2,-0.69l-1.03,-0.17l-0.14,0.0l-0.63,0.11l0.16,1.76l-1.03,0.68l-1.72,-0.48l-1.53,2.9l-1.84,1.18l-2.14,-0.96l-7.6,0.93l2.24,-5.74l-3.41,-13.53l0.63,-3.0l-1.2,-1.82ZM73.27,652.68l0.29,0.56l-0.5,0.41l0.15,-0.35l0.07,-0.62ZM65.49,639.77l-0.05,0.24l-0.09,0.16l-0.03,0.01l0.17,-0.41ZM46.9,622.45l0.58,0.56l0.35,0.23l-0.42,0.17l-0.51,-0.97ZM45.51,609.91l-0.17,0.0l-0.36,-0.19l0.3,0.13l0.23,0.05ZM49.86,591.97l-0.53,1.61l-0.68,0.46l0.16,-1.83l1.05,-0.24ZM46.31,592.25l-0.74,0.75l-0.66,0.39l0.64,-1.17l0.75,0.02ZM51.41,599.9l0.12,-0.02l0.32,0.0l-0.13,0.19l-0.3,-0.17ZM55.89,626.23l-2.74,-0.27l-0.32,-0.43l0.61,-0.51l2.44,1.22ZM55.17,631.07l-0.22,-0.02l-0.62,-0.24l0.11,0.01l0.74,0.26ZM72.62,660.16l-1.15,-1.36l-0.28,-2.05l0.99,-1.2l0.44,4.6ZM76.93,661.93l0.48,-0.35l0.04,0.63l-0.15,-0.16l-0.38,-0.13ZM76.29,664.18l0.11,-0.16l0.39,-0.19l-0.22,0.27l-0.28,0.08ZM71.32,674.26l-0.21,-0.6l0.34,-1.42l0.54,1.27l-0.67,0.75ZM70.18,655.53l-0.06,-0.38l0.7,-0.3l-0.51,0.61l-0.13,0.07ZM32.64,621.08l0.68,-0.17l-0.74,-1.07l0.22,-1.3l5.36,0.74l3.39,3.27l-0.02,1.6l0.6,-0.15l4.55,5.7l6.73,4.07l1.93,2.25l4.68,3.02l0.26,7.98l1.84,4.7l-1.4,0.36l0.69,4.35l2.14,2.76l3.72,2.75l-0.42,0.9l2.04,1.19l-0.26,1.6l1.09,0.84l0.1,1.41l-1.08,0.55l1.57,3.71l-1.15,0.93l0.85,1.83l-0.98,2.32l0.85,0.38l1.35,-1.36l-0.07,3.71l-1.43,-1.03l-2.12,1.49l-0.76,-0.26l-6.76,-6.52l0.14,-0.88l-2.79,-1.25l-3.6,-4.45l-0.31,-1.19l5.54,-2.62l1.13,-1.58l-0.22,-2.1l-2.58,3.54l-2.64,-0.93l-1.1,0.36l-0.45,-0.34l0.86,-0.46l-0.95,-1.1l-2.44,1.38l-0.89,-1.16l-1.27,-2.46l2.18,-0.5l0.91,-0.99l-0.46,-0.57l-1.28,0.35l0.96,-2.94l-0.65,-0.54l-1.11,1.17l-1.57,-0.16l1.04,-0.37l1.32,-2.07l-0.7,-0.23l-1.4,1.27l0.29,-2.16l-1.77,0.02l-0.5,-1.02l-0.8,1.05l-0.81,-2.22l-1.16,0.39l-0.16,0.81l-0.28,-0.45l1.23,-2.55l5.26,1.02l0.36,-1.01l-3.85,-1.53l1.24,-1.08l-0.63,-1.0l-1.68,0.97l0.63,-3.12l-0.98,-0.43l-0.6,-2.02l-1.45,-0.4l-0.81,1.52l-1.65,-0.66l-0.32,-1.71l2.46,-1.59l0.4,-1.05l-1.6,0.13l-1.02,-1.33l-1.3,1.56l-0.46,-0.99l0.8,-0.46l-0.19,-1.5l-2.04,0.4l0.25,-1.15l-2.51,0.74l-0.68,-0.62l2.5,-1.18l-0.61,-0.93l0.54,-0.89l-1.5,-1.03l1.07,-1.19l3.27,0.93l0.71,2.43l0.68,-0.27l-0.22,-2.73l2.1,-0.71l-5.12,-3.14l0.17,1.47l1.91,1.19l-5.13,-1.05l-1.14,-3.24ZM42.73,638.87l0.18,0.66l-0.39,0.25l0.21,-0.91ZM48.16,658.18l-0.19,-0.14l-0.04,-0.06l0.11,0.01l0.12,0.19ZM65.5,652.35l2.27,2.11l0.58,2.49l-1.49,-2.95l-1.36,-1.66ZM68.05,643.88l-0.05,0.24l-0.39,0.41l0.11,-0.31l0.33,-0.33ZM67.01,658.01l0.26,0.09l0.46,0.37l-0.41,-0.15l-0.3,-0.32ZM65.56,642.66l0.9,0.14l-0.27,0.67l-0.55,-0.11l-0.08,-0.69ZM66.41,644.41l0.09,0.18l-0.5,0.24l-0.01,-0.2l0.41,-0.22ZM63.88,645.46l-0.21,-0.95l0.93,-0.53l-0.29,1.49l-0.43,-0.01ZM63.51,655.92l-0.0,-0.0l0.0,0.0l-0.0,0.0ZM61.36,639.62l0.04,-0.17l0.14,0.12l-0.07,0.05l-0.11,0.0ZM62.49,639.49l0.42,-0.95l0.59,0.96l0.17,3.08l-0.26,-2.27l-0.92,-0.82ZM61.23,643.16l0.03,-1.75l0.74,-0.6l0.33,1.46l-1.11,0.89ZM60.56,638.05l0.47,-0.38l1.13,-0.03l-0.83,0.65l-0.77,-0.24ZM59.53,637.03l0.18,-0.02l0.48,0.11l-0.61,-0.06l-0.05,-0.04ZM56.7,635.33l0.86,0.09l0.09,0.38l-0.33,-0.07l-0.61,-0.41ZM47.05,600.72l2.52,-3.17l6.61,-1.18l-0.51,1.31l-4.2,0.56l-2.9,2.62l-1.53,-0.13ZM51.25,628.36l2.59,-1.08l1.31,0.42l0.04,0.85l-1.28,0.95l-2.66,-1.14ZM51.19,630.96l1.85,0.01l0.22,0.32l-0.39,0.14l-1.68,-0.47ZM49.16,624.77l0.02,0.01l0.0,0.06l-0.02,-0.07ZM50.08,625.28l0.07,-0.07l0.64,0.3l-0.56,-0.01l-0.15,-0.22ZM48.4,587.0l0.14,-1.17l0.6,0.19l-0.53,0.82l-0.2,0.17ZM45.28,570.42l0.29,-0.57l0.16,-0.22l-0.2,0.65l-0.25,0.13ZM45.8,569.53l1.13,-1.95l2.4,0.2l-0.72,1.13l-2.81,0.62ZM45.97,597.4l0.63,-0.09l0.89,0.46l-0.56,0.43l-0.96,-0.8ZM46.73,596.18l1.01,-0.33l-0.49,-0.88l0.72,0.24l-0.14,1.53l-1.1,-0.57ZM44.4,591.29l1.02,-0.72l1.98,-5.16l-1.2,4.81l-1.8,1.07ZM41.13,582.84l0.04,-2.1l0.67,0.54l0.37,-0.87l3.25,-1.66l-0.98,-2.79l-0.6,0.02l1.1,-2.33l2.74,4.19l-0.64,3.91l-2.91,4.7l-0.83,-0.37l0.76,-1.87l2.26,-2.34l0.28,-1.43l-1.65,0.38l-2.15,3.48l-0.91,0.15l-0.83,-1.63ZM44.49,586.33l0.0,0.03l-0.02,-0.02l0.02,-0.0ZM43.58,576.61l0.66,1.48l-2.46,1.26l-0.04,-1.71l1.83,-1.04ZM42.97,587.05l1.52,0.5l-0.57,2.32l-0.91,-1.61l-0.04,-1.22ZM43.46,542.33l-0.02,-0.54l3.49,-1.73l-2.18,1.92l-1.29,0.35ZM46.87,655.68l-0.0,-0.0l0.0,0.0l-0.0,0.0ZM44.85,572.36l0.01,-0.26l1.86,-1.75l-0.47,2.63l-1.39,-0.62ZM45.33,652.85l0.48,-1.03l0.67,0.05l-0.21,1.74l-0.94,-0.76ZM42.7,600.88l1.89,-2.0l1.62,0.26l-2.46,4.01l0.03,-1.71l-1.08,-0.57ZM43.96,597.71l0.09,-1.03l1.12,-0.67l-0.62,1.32l-0.6,0.37ZM43.69,595.14l0.27,-0.49l0.51,0.28l-0.61,0.53l-0.16,-0.32ZM40.64,642.42l1.43,-0.61l-0.76,-0.86l1.66,-0.07l0.6,0.8l-1.0,3.81l-1.93,-3.08ZM41.58,608.24l0.22,-2.76l1.49,-0.67l-0.54,4.43l-1.17,-0.99ZM41.45,575.4l0.26,-1.41l1.63,-1.34l-0.96,3.17l-0.92,-0.42ZM41.25,591.58l0.36,-2.24l0.32,-0.39l0.56,0.41l-1.24,2.22ZM41.52,542.29l0.92,-0.2l0.04,0.0l-0.38,0.77l-0.57,-0.58ZM37.32,560.75l0.55,-1.25l-0.44,-0.75l0.81,-0.37l1.97,4.36l0.94,4.51l-0.92,0.17l0.21,0.68l1.4,1.38l-1.79,1.53l-0.23,1.15l-1.37,-5.61l1.36,-2.66l-2.01,-1.21l0.25,-1.11l-0.75,-0.82ZM38.12,563.82l-0.21,0.15l-0.18,-0.06l0.16,-0.11l0.23,0.02ZM40.09,551.37l0.12,-0.25l0.34,-0.21l-0.2,0.34l-0.26,0.12ZM38.87,583.4l0.33,-2.35l1.34,4.3l-0.73,1.53l-0.95,-3.48ZM39.97,554.02l0.01,-0.26l0.12,-0.15l0.17,0.38l-0.3,0.03ZM39.41,574.37l0.05,-0.86l0.56,2.86l-0.15,0.8l-0.46,-2.8ZM38.81,636.1l0.02,-0.04l0.01,0.01l0.01,0.02l-0.04,0.02ZM36.0,544.84l1.15,-1.7l0.93,0.78l-0.43,0.41l-1.65,0.51ZM33.38,556.4l0.03,-0.04l0.04,0.11l-0.07,-0.07ZM34.97,554.87l2.69,-0.5l0.49,1.68l-0.08,0.84l-1.9,1.13l-0.24,-0.64l1.94,-0.78l0.12,-0.89l-1.57,-0.45l-0.97,1.11l-0.49,-1.49ZM37.19,573.52l0.12,0.1l0.17,0.59l-0.22,-0.31l-0.08,-0.39ZM32.8,562.24l0.45,-0.7l0.45,0.35l2.97,4.84l0.26,5.13l-1.43,-0.5l-0.37,-3.33l-1.63,-2.24l-0.14,-1.69l0.87,-0.41l-1.44,-1.43ZM35.07,560.95l1.21,-0.39l0.7,1.39l-0.5,1.33l-1.42,-2.32ZM34.98,550.97l0.11,-0.11l0.25,0.66l0.06,0.42l-0.02,0.03l-0.41,-0.99ZM9.63,550.74l0.94,-3.63l-1.0,-0.91l0.61,-0.4l-0.14,-1.49l2.18,-1.79l0.84,-1.77l3.53,2.7l-2.1,1.55l-0.15,0.93l4.15,-1.1l0.82,0.23l0.38,2.12l-0.58,2.09l-1.81,0.84l-4.92,-0.51l-0.08,1.66l1.42,0.52l-0.46,1.19l4.46,-0.42l0.44,-1.5l2.06,-1.36l0.52,-2.22l1.91,0.69l2.51,-0.26l-6.35,6.43l-1.95,4.43l-1.3,1.07l-2.45,-0.68l-2.47,0.46l-1.08,-2.8l1.55,-0.1l0.49,1.19l0.99,-0.9l-0.51,-2.05l-1.03,-0.96l0.24,-0.95l-0.65,-1.04l-0.81,0.17l-0.18,-1.41ZM9.63,555.39l-0.19,-0.06l0.1,-0.07l0.09,0.13ZM9.22,560.26l4.7,1.56l3.09,-0.19l-0.5,0.93l0.84,2.28l-1.54,-1.24l-1.76,-0.62l-0.57,0.44l0.18,1.57l1.54,-0.22l1.49,1.66l-0.45,0.79l-1.67,-0.13l-0.97,-1.76l-1.41,0.96l1.13,0.77l-0.98,2.53l0.88,1.12l-0.53,3.05l1.34,1.42l0.26,0.91l-0.47,0.44l-2.35,-4.76l-0.66,-3.28l1.18,1.12l0.51,-1.36l-0.8,-2.18l-1.38,1.18l-0.48,-3.08l1.59,1.01l1.16,-1.6l-3.41,-2.39l0.01,-0.97ZM13.68,576.98l0.77,3.02l-0.35,0.26l-0.72,-0.39l-0.43,-2.31l0.73,-0.59ZM15.02,580.68l0.03,0.01l-0.01,0.03l-0.01,-0.04ZM15.12,581.11l0.09,0.21l-0.08,0.07l0.01,-0.07l-0.02,-0.2ZM16.04,581.92l0.28,0.15l0.16,-0.01l-0.23,0.19l-0.21,-0.33ZM15.54,580.45l0.02,-0.36l0.45,-0.11l0.17,0.59l-0.65,-0.13ZM13.0,576.92l-0.13,-0.08l0.01,-0.05l0.07,0.08l0.04,0.06ZM14.54,571.61l0.03,0.04l0.11,0.01l-0.16,0.04l0.02,-0.08ZM15.25,571.87l0.28,0.01l0.58,-0.26l-0.53,0.92l-0.33,-0.67ZM15.16,583.7l0.03,-0.12l0.17,-0.25l0.1,0.28l-0.3,0.09Z", "name": "British Columbia"}, "yt": {"path": "M99.9,241.74l2.97,2.91l3.27,1.52l3.63,4.87l0.6,7.06l1.7,0.59l0.4,3.07l3.81,6.94l1.36,0.8l1.09,2.36l1.9,0.57l-11.85,21.13l-0.58,1.5l0.84,1.37l-0.55,2.17l-1.23,1.62l-0.36,2.35l-2.22,1.68l-1.26,3.47l14.63,8.28l-0.45,0.78l0.89,3.72l-1.18,1.06l0.09,3.77l-3.88,3.76l1.31,1.97l-0.91,1.75l-1.85,1.06l0.32,1.03l-0.74,1.47l1.78,1.57l2.31,-0.42l1.52,0.54l-1.27,1.1l0.35,1.2l1.31,0.21l2.22,-1.21l0.27,1.26l1.01,0.21l-2.9,1.53l0.78,2.27l-0.08,3.66l-5.53,3.93l-2.43,0.63l-0.27,1.37l1.59,0.51l-0.7,1.31l1.05,1.7l-1.75,0.48l-0.7,1.7l-1.68,0.84l0.08,1.28l1.82,1.02l1.34,2.27l-0.01,2.15l1.22,2.06l-1.67,1.12l-0.4,1.41l1.66,1.01l2.55,-0.73l1.23,1.28l-0.11,4.86l-0.84,0.83l-0.15,1.89l2.25,5.83l1.55,1.63l-1.75,0.01l-0.68,0.79l2.13,2.94l-0.05,2.63l-1.48,1.48l-2.07,0.18l-0.81,0.97l1.31,2.45l-0.28,2.33l1.55,1.11l-2.93,2.76l0.39,4.52l-1.1,1.81l1.21,0.35l1.19,2.39l-1.55,0.62l-0.97,4.11l-1.11,0.79l1.1,1.56l1.98,0.93l0.51,1.51l2.31,-0.36l0.59,5.79l1.09,0.63l-0.38,3.07l0.84,2.24l1.52,2.86l2.17,0.81l0.74,1.3l-0.91,5.2l-1.71,1.78l0.21,1.0l1.02,0.01l-1.32,3.55l0.04,2.37l0.9,-0.15l0.76,1.06l1.68,-0.65l1.88,1.47l1.27,-1.19l1.39,1.75l1.48,-1.19l3.85,3.92l2.18,-0.54l2.61,0.9l1.33,-1.65l1.56,0.69l-0.24,3.02l-2.02,1.63l0.34,4.36l1.61,0.99l-0.73,2.35l0.28,4.82l-0.91,1.18l-52.11,-22.5l-28.56,-14.1l-24.05,-12.91l-23.42,-13.53l-0.11,-1.79l3.21,-3.12l0.08,-1.24l-5.14,-2.7l-3.89,0.93l-2.41,-4.18l-1.66,0.64l-2.54,-3.47l99.42,-158.23ZM110.53,248.98l1.12,-0.26l0.66,1.18l-1.67,0.15l-0.12,-1.07Z", "name": "Yukon"}, "nb": {"path": "M711.42,743.4l4.88,-3.44l1.67,-2.57l-1.15,-6.84l2.7,-0.66l0.09,-1.3l5.1,-1.27l0.53,0.94l3.2,0.99l0.62,-1.14l2.68,-1.28l1.53,0.15l0.32,-1.87l1.78,-0.33l3.5,-2.52l0.93,0.83l6.82,0.46l2.82,4.06l4.5,-4.8l1.26,-0.71l0.41,1.01l2.56,-1.38l-0.51,0.9l1.22,0.58l-0.67,2.74l0.48,4.67l-3.72,5.12l2.64,0.43l3.85,-1.89l0.54,1.22l-0.64,2.18l1.73,2.28l-0.1,1.13l1.88,-0.05l0.76,2.83l1.48,0.9l-0.59,1.93l1.96,-0.46l0.23,1.66l4.02,-0.96l1.4,0.81l2.16,-0.91l2.12,0.21l-2.95,1.52l0.3,1.48l-0.94,0.55l-0.72,2.11l-1.22,-0.13l-0.53,2.15l-1.32,-1.94l-3.9,-2.32l3.2,3.71l-1.03,4.22l-1.71,0.5l-8.21,9.21l-1.85,1.2l-2.25,-0.95l0.9,-1.59l-0.53,-1.41l-2.29,3.0l1.52,1.27l-0.32,0.86l-1.78,0.25l-0.87,2.28l-1.24,-0.74l-1.86,1.85l-1.9,0.31l0.01,-0.72l-1.71,-0.72l-1.2,1.53l-1.8,-1.85l-1.44,2.06l-1.91,-1.39l-1.05,-5.84l-4.88,-0.68l-0.29,-3.7l-5.75,-20.08l-6.62,-3.72l-7.05,4.81l-1.78,-0.76ZM746.71,774.61l-0.04,0.04l-0.08,0.14l-0.05,-0.07l0.17,-0.11ZM759.72,722.42l-0.02,-0.05l-0.0,-0.01l0.06,0.02l-0.04,0.04ZM768.58,746.15l0.01,-0.09l0.03,0.05l-0.05,0.04ZM759.92,720.39l0.52,-0.56l0.81,0.01l-0.55,1.43l-0.78,-0.88ZM760.91,718.13l0.09,-0.3l0.01,-0.4l0.08,0.22l-0.18,0.48ZM748.69,781.87l0.11,-1.21l0.29,-0.8l0.38,1.59l-0.77,0.42Z", "name": "New Brunswick"}, "nl": {"path": "M818.49,689.15l0.02,-0.65l1.55,-2.42l1.38,1.36l-2.94,1.71ZM822.12,687.09l0.09,-0.28l0.2,0.08l-0.18,0.14l-0.11,0.06ZM824.04,685.87l-0.05,-9.48l0.64,0.38l1.82,-0.8l1.87,1.03l2.29,-0.74l-0.5,-0.76l-2.26,0.05l-0.8,-1.03l2.21,-0.76l0.36,-1.83l-1.2,0.28l-0.06,-1.05l-3.24,1.03l-0.72,-2.28l1.19,-3.08l1.98,1.73l-0.15,-1.35l2.27,-0.23l-3.27,-1.53l-0.87,-1.68l0.65,-17.4l2.04,-1.08l-2.31,-0.88l1.93,-2.2l0.89,-2.81l-0.87,-1.18l0.9,-3.28l-0.48,-3.01l6.52,-8.45l0.7,1.99l2.84,-0.55l0.35,-1.06l-1.21,-0.63l1.45,-1.04l0.84,0.68l-0.78,0.93l0.95,0.36l0.12,1.05l-0.92,1.43l-4.26,0.62l-0.95,0.99l0.23,0.79l1.02,0.19l0.13,1.52l1.83,0.78l1.53,-1.81l0.9,1.86l-0.65,0.47l0.31,2.92l-0.78,3.08l-0.82,-2.1l-0.61,-0.28l-0.62,0.97l1.97,3.56l-1.37,3.22l0.66,0.38l-0.55,1.91l-0.98,0.27l0.99,1.57l-0.14,2.05l-1.11,1.58l-0.03,3.77l0.85,1.9l-0.97,1.75l1.61,0.47l0.47,3.3l0.68,-0.49l1.16,-6.05l0.4,-0.71l1.07,0.13l-0.16,-3.28l0.95,-2.77l0.79,0.59l-0.18,3.42l0.93,-0.5l0.35,-1.41l1.06,0.05l-0.0,-1.09l2.77,0.99l2.22,-2.07l-1.66,3.19l-2.66,2.53l-0.74,3.71l0.9,0.17l0.71,-2.13l1.15,-0.64l-0.26,1.38l0.59,0.25l-1.6,3.0l0.53,0.67l2.71,-2.86l2.45,1.63l0.59,-1.21l0.32,0.99l0.71,-0.1l0.19,-1.95l0.79,0.49l-0.13,1.27l2.17,0.02l0.11,-0.88l0.52,1.06l-0.93,2.32l1.03,0.85l-0.22,1.48l2.24,-2.29l-0.65,-0.61l-0.51,0.55l-0.18,-1.15l1.53,-2.5l0.41,1.47l0.7,-1.52l1.67,-0.42l1.17,-5.2l2.42,3.97l0.26,-3.2l1.64,0.58l1.0,-2.39l1.68,-0.45l5.77,0.89l-0.64,2.87l0.81,0.8l-2.57,1.5l-0.11,1.54l0.91,0.29l-1.15,0.8l0.16,1.13l-1.86,1.47l0.58,1.24l1.42,-1.37l0.14,0.84l1.0,0.06l1.38,1.5l-0.02,1.59l1.84,-0.67l-2.93,2.73l-0.16,1.46l0.67,0.47l2.12,-2.82l0.83,1.31l0.65,-1.99l2.06,-0.03l0.87,-2.6l-0.28,-1.66l2.47,0.79l0.94,-3.37l0.86,0.76l0.31,2.82l-0.8,1.71l-2.03,0.34l0.22,1.79l-1.79,3.06l-3.22,0.02l-0.41,1.32l1.35,1.88l2.18,-0.61l-1.93,0.8l0.21,0.92l1.9,-0.22l1.18,-1.04l-0.06,1.61l-1.04,0.83l0.85,0.23l0.02,1.22l-1.26,-0.75l-0.84,0.55l2.04,2.42l3.09,1.38l0.28,0.85l1.71,-1.1l-0.83,-3.75l0.52,-5.24l1.91,-1.36l0.72,-2.61l0.43,0.3l-1.04,7.55l0.77,1.14l-0.42,1.63l0.51,0.96l0.88,-0.04l0.66,1.71l1.03,0.06l1.96,-4.0l-0.45,-3.72l1.84,1.57l0.18,1.36l1.14,0.61l-0.5,3.74l0.6,3.82l-0.59,0.45l1.18,0.95l0.77,4.09l-0.98,3.43l-1.51,-1.06l-1.64,0.27l-1.5,2.87l-1.09,-2.43l0.65,-2.17l-1.23,-1.29l-1.09,-0.0l0.54,-2.43l-1.62,-1.32l-2.29,7.81l-0.69,1.14l-1.16,0.24l-0.62,-6.94l0.67,-0.26l-0.92,-0.96l1.1,-3.35l-1.4,0.01l-0.71,-2.4l-3.07,-3.37l-1.38,-0.56l-0.33,0.87l-1.83,-0.48l-0.28,0.71l0.99,0.27l0.23,1.41l-0.7,1.6l0.37,1.7l-0.69,0.17l-0.99,4.53l-0.72,0.7l-0.95,-0.72l-0.75,0.59l-1.68,5.5l1.08,1.66l-1.06,0.18l0.45,2.57l-1.17,0.7l-0.02,0.81l-1.87,-0.71l-1.27,2.06l-1.9,0.6l-1.62,-0.42l0.46,-2.28l3.89,-2.8l1.31,-3.14l-0.02,-3.56l2.27,-1.82l1.78,-4.22l-1.59,0.08l-2.16,2.36l-0.07,-3.54l-0.96,3.25l-2.76,0.48l-0.96,-0.77l-0.73,0.71l0.13,1.83l1.21,0.81l0.24,1.37l-1.1,0.92l-0.26,-0.99l-1.08,-0.43l-0.8,1.48l-0.85,-1.66l1.28,-1.85l-0.83,-0.14l-1.53,1.71l-0.77,-0.1l0.26,-4.71l-1.06,-0.99l-0.16,3.43l-1.49,2.1l-0.11,-1.33l-0.54,0.35l-1.26,-0.92l0.77,2.76l-0.54,1.27l-1.32,-1.89l0.31,2.6l-4.86,1.56l0.52,1.58l-2.48,-0.05l-1.5,0.92l-0.74,-0.93l-1.47,1.43l-0.63,-0.85l-2.38,0.77l-0.77,1.11l-1.38,-0.43l-0.81,0.72l-1.26,-0.76l-3.66,2.09l-0.87,0.03l0.41,-1.32l-0.5,-0.16l-1.15,0.85l-0.09,1.71l-1.35,0.05l-1.6,1.8l-5.51,2.43l-3.59,-4.46l3.45,-5.51l1.99,-5.3l3.51,-4.35l-0.91,-0.21l-2.2,1.3l-1.98,-0.14ZM875.12,662.32l0.01,-0.05l0.03,0.05l-0.04,0.0ZM877.63,662.89l0.01,0.0l-0.0,0.01l-0.0,-0.01ZM877.65,663.11l0.18,0.25l-0.68,1.05l-0.32,0.16l0.81,-1.47ZM877.92,687.63l0.03,0.05l-0.01,0.02l-0.03,0.0l0.01,-0.07ZM861.05,691.78l-0.07,0.12l-0.12,0.06l0.18,-0.19ZM860.08,692.69l-0.48,0.59l-0.29,-0.1l0.05,-0.05l0.72,-0.44ZM879.4,666.53l0.09,-0.58l0.24,-0.6l0.19,0.13l-0.51,1.05ZM875.09,662.18l-0.1,-0.13l0.04,0.02l0.06,0.11ZM856.71,657.24l-0.75,-1.19l0.65,-0.66l0.34,0.61l-0.23,1.24ZM855.59,655.75l-0.04,-0.03l0.02,-0.02l0.02,0.05ZM854.12,657.33l0.0,-0.25l0.09,-0.07l-0.09,0.32ZM880.23,672.13l2.14,-0.42l1.19,-1.04l0.07,0.96l-3.4,0.5ZM880.31,686.28l0.4,-1.02l-0.02,0.87l-0.39,0.14ZM880.62,683.42l-0.08,-0.03l0.05,-0.13l0.03,0.16ZM865.38,648.2l1.06,0.13l0.06,-1.23l0.98,0.8l-1.68,2.0l-0.43,-1.69ZM859.69,653.01l0.19,-0.17l0.32,0.44l-0.25,-0.18l-0.25,-0.09ZM860.58,653.35l0.24,-0.05l0.02,0.23l-0.08,0.03l-0.18,-0.21ZM861.92,651.98l-0.05,-0.37l0.49,-0.4l0.03,0.24l-0.48,0.53ZM862.01,654.58l0.02,0.04l-0.01,0.11l-0.04,-0.08l0.03,-0.06ZM859.27,690.37l0.8,-0.58l0.4,0.51l-0.91,0.12l-0.29,-0.05ZM850.53,655.89l0.16,0.11l-0.16,0.24l-0.04,-0.3l0.04,-0.05ZM850.64,657.23l0.03,-0.01l-0.01,0.06l-0.01,-0.05ZM843.72,636.73l0.01,-0.34l0.77,-0.76l-0.18,0.87l-0.6,0.23ZM838.14,616.17l0.06,-0.8l0.21,-0.21l-0.04,0.83l-0.22,0.19ZM695.98,500.41l0.18,0.94l1.28,-1.03l0.89,0.17l-0.49,0.97l0.49,0.51l1.04,-0.8l-0.45,1.69l-1.25,-1.45l-1.19,0.27l-0.74,-0.45l0.23,-0.83ZM697.79,503.53l-0.02,0.02l-0.01,-0.01l0.03,-0.01ZM697.64,505.65l1.21,-1.47l1.28,-0.58l-1.17,1.01l1.54,0.5l-0.46,1.78l1.72,-1.6l0.96,0.23l-0.44,0.91l0.94,0.13l0.19,0.94l-0.54,1.1l1.68,1.31l1.18,-0.26l0.02,3.21l0.84,-2.29l0.23,1.88l0.69,0.1l0.53,-1.32l1.06,0.32l-0.12,1.5l-2.03,0.86l-0.08,1.13l3.15,-0.37l-0.39,1.97l0.59,0.39l1.72,-2.67l-0.32,2.47l1.1,0.04l0.63,-0.88l0.72,0.85l-2.24,2.64l-2.49,0.28l-0.46,1.71l1.19,-0.29l1.34,1.07l-0.23,-1.4l2.96,-0.87l1.44,-1.67l0.57,0.35l-0.78,0.64l1.02,0.38l0.03,1.4l1.0,-0.21l-0.78,1.74l2.04,0.19l0.51,-1.11l1.44,0.52l-0.71,1.87l2.06,0.47l-2.1,3.43l-2.7,0.75l-0.46,1.24l1.75,-0.45l-1.47,3.18l0.46,0.75l2.4,-3.97l1.0,-0.4l-0.29,1.33l0.62,0.69l0.61,-1.65l3.89,-2.46l-0.44,1.25l0.84,1.88l-2.01,1.41l0.22,1.67l-1.45,0.73l0.32,0.82l-1.25,1.46l0.46,0.55l-1.25,1.18l0.44,0.58l2.18,-1.12l1.11,-2.84l3.0,-1.1l1.22,1.28l0.4,-0.76l0.95,0.44l-1.65,0.65l-0.96,2.27l1.99,-1.2l1.31,1.64l1.0,-1.67l0.97,-0.03l0.02,-0.85l0.69,2.75l1.36,0.21l1.74,1.86l-1.38,1.23l-0.03,0.93l-1.56,0.45l-0.27,1.54l-2.01,-0.32l-0.06,0.88l2.15,0.88l2.0,-1.35l2.59,0.11l0.7,1.91l-0.99,0.53l0.14,0.95l2.83,0.91l3.06,-0.99l1.01,0.4l0.47,1.67l-1.35,0.99l-0.33,2.98l-2.27,1.06l0.26,2.44l-4.73,-0.44l3.45,-1.47l-0.57,-0.9l-4.31,1.04l-0.71,1.4l0.36,0.64l5.06,0.99l-0.89,0.22l0.17,0.9l5.89,-0.44l-3.97,1.63l0.0,1.56l3.06,-0.22l0.93,0.79l-2.47,0.9l-0.17,1.07l2.07,0.91l5.38,-1.88l0.35,1.69l-0.68,2.36l1.47,0.69l2.6,-1.03l0.58,0.38l-0.91,1.14l1.33,0.47l3.43,-1.17l-0.22,1.19l-1.47,0.65l0.77,0.93l1.92,-0.77l0.6,-1.24l0.98,4.06l0.76,-1.77l-0.15,-3.1l1.12,0.13l-0.84,3.45l1.26,-0.6l0.01,1.78l0.89,0.11l-0.27,2.61l1.02,-0.07l-1.18,3.59l0.63,0.48l0.6,-0.86l-1.21,2.98l0.49,1.28l3.47,-6.14l0.23,0.96l0.8,-0.89l-1.12,3.19l0.8,0.87l2.91,-6.78l0.73,1.37l-1.85,1.52l0.31,1.13l2.05,-0.32l2.32,-1.98l0.58,0.28l-2.41,5.52l0.29,3.02l1.46,-1.28l-0.4,-1.77l2.11,-3.94l1.35,0.79l2.26,-3.74l0.21,2.07l1.58,0.35l-0.61,1.5l1.66,0.68l5.65,0.03l0.38,-1.14l1.25,-0.48l0.78,0.67l1.95,-0.14l1.19,-0.94l2.32,1.16l2.02,-1.08l0.99,0.79l0.48,1.14l-2.84,1.38l0.43,0.75l1.46,-0.47l-0.65,1.12l-5.22,2.32l-0.63,1.34l0.44,0.77l-3.95,3.54l-8.17,4.8l0.02,0.77l1.19,0.5l4.37,-2.64l1.08,0.42l-4.24,4.4l-3.76,0.96l-0.33,1.08l-1.99,0.98l-0.44,0.59l1.0,0.76l0.75,2.72l-9.59,-2.25l0.24,2.79l3.26,-0.69l6.62,1.59l-2.62,2.85l0.38,0.99l1.55,-0.45l-1.56,1.55l3.83,-1.13l-0.17,-1.13l2.33,-3.51l-0.19,-0.73l2.55,-1.52l1.37,-2.76l2.28,-1.08l0.45,-1.73l-0.83,-0.68l1.23,-2.95l6.14,-5.14l3.25,-0.59l0.5,-0.7l-0.75,-0.57l-2.52,0.21l-1.58,0.38l-0.93,1.24l-0.95,-0.28l1.37,-1.89l8.21,-1.63l3.58,4.01l1.26,0.49l0.19,1.3l-3.07,4.15l2.41,-0.36l0.55,2.8l1.35,-0.49l1.29,-6.18l2.41,-1.22l0.54,0.16l-0.83,0.48l0.48,0.53l4.11,-0.47l3.9,1.29l0.98,1.79l1.33,-0.9l0.39,1.44l0.81,-0.21l0.24,1.44l1.23,0.68l-1.72,1.23l0.93,0.4l-0.08,0.69l-2.54,1.2l1.26,1.15l1.97,-1.07l1.65,1.48l-3.37,2.2l3.17,1.61l-1.49,0.4l-0.08,0.83l1.44,-0.22l-1.61,1.71l-3.51,0.6l1.1,0.54l6.54,-1.37l2.3,0.38l0.34,0.7l-1.48,0.14l-0.04,0.72l-3.99,-0.27l-0.53,0.74l5.51,1.03l1.88,2.39l-0.87,0.56l0.29,1.1l-1.42,0.52l0.83,1.52l-2.14,3.49l-3.89,4.33l-0.58,3.39l-1.14,0.3l0.15,1.24l-0.9,0.28l-4.06,-9.59l-35.42,12.67l-33.81,10.74l-2.68,-5.23l-2.2,0.09l-0.59,-1.58l-1.29,0.17l1.45,-2.72l4.48,-1.81l0.57,-0.88l-2.9,-1.63l-0.29,-2.93l-1.86,-2.41l-1.73,-0.29l-1.8,1.2l0.41,3.96l-1.42,0.33l-0.67,1.47l1.29,5.09l2.22,2.68l0.71,3.75l-1.29,0.7l0.01,3.15l0.4,2.47l1.35,1.35l-2.11,3.15l-1.95,-2.06l1.05,-1.0l-0.33,-1.03l-3.13,-0.86l-0.59,-1.61l-3.59,-1.9l-4.28,0.45l-0.57,3.04l-2.11,-0.54l-0.52,1.3l-0.89,0.16l-1.53,-0.59l-0.78,-1.85l-1.06,0.18l-1.91,-1.18l-0.45,2.74l-1.16,-2.28l0.83,-1.83l-2.01,-4.67l0.87,-0.55l-0.93,-1.92l0.88,-1.26l-2.81,-2.38l-0.91,0.2l-0.09,1.73l-1.26,0.55l0.76,3.73l-0.98,0.86l-1.09,-0.9l-0.21,1.03l-1.4,0.2l-0.91,-4.06l0.68,-1.6l-0.9,-2.96l0.26,-2.71l-1.26,-1.15l-0.86,0.17l-1.81,-2.41l-3.62,-0.16l-0.29,-3.34l-1.83,-0.72l-2.75,-2.7l2.24,-3.96l-2.6,-4.05l-0.09,-1.49l3.25,0.49l0.49,-2.11l1.82,-0.97l-3.52,-2.36l0.1,-1.01l-1.14,-0.61l-1.56,-2.75l0.86,-0.27l0.18,1.13l3.3,1.27l1.43,1.53l3.08,0.4l0.79,-1.96l-1.85,-2.05l0.48,-0.97l-1.58,-1.83l-0.08,-2.45l0.69,-0.18l4.58,3.66l2.6,0.96l1.8,-0.47l0.76,1.43l2.31,1.56l2.28,-1.23l3.59,-0.04l3.18,-1.96l2.33,-0.06l1.95,-1.24l4.14,1.0l3.13,-0.13l0.99,-1.46l0.28,-6.6l-1.76,-1.27l-0.09,-2.24l2.63,-2.42l0.69,-1.59l-1.15,-1.09l-0.49,-2.23l-1.64,0.4l-1.75,-0.81l-0.86,-1.5l-2.93,-1.97l-0.34,-1.36l1.88,-1.76l-0.06,-0.97l-3.85,0.65l-0.96,-1.24l-1.12,1.1l0.72,-2.63l-2.83,-0.66l-0.52,-1.79l2.29,-1.28l-3.87,-4.11l0.81,-1.49l-0.33,-1.27l1.11,-1.04l-0.99,-3.15l0.35,-3.55l-1.39,-1.2l0.94,-1.54l-1.51,-3.16l0.92,-1.94l-0.25,-1.73l-0.87,-0.13l-0.39,1.06l-1.7,-0.19l-0.95,-1.15l-1.25,0.53l-2.5,-3.96l-2.15,-0.07l-0.15,-1.73l1.45,-1.45l-0.1,-2.05l2.55,-3.36l-1.33,-1.84l-1.65,0.83l-0.35,-1.74l4.52,-2.28l0.35,-1.35l-1.4,-1.26l-1.94,-0.37l-3.33,3.5l-2.0,-2.0l-2.56,0.63l-1.66,-0.61l-0.97,0.85l0.19,-2.23l3.27,0.69l1.51,-1.43l-1.03,-1.09l-1.22,-0.08l-0.99,-1.57l-0.88,-4.18l1.03,-1.31l-0.19,-0.83l-1.49,-0.14l-1.77,2.04l-1.26,-1.1l-1.18,-5.04l0.86,-2.18l-1.56,-0.93ZM749.39,644.84l-0.21,0.06l-0.38,-0.16l0.32,0.07l0.27,0.03ZM827.51,605.61l1.17,-0.58l0.2,0.18l-0.76,0.65l-0.62,-0.26ZM813.84,589.92l0.16,-0.56l0.67,-0.26l0.12,0.19l-0.94,0.63ZM742.74,556.87l0.27,-0.15l1.16,0.42l-1.11,0.28l-0.32,-0.55ZM743.03,556.07l0.11,-0.16l0.77,-0.05l-0.64,0.05l-0.24,0.16ZM724.98,532.85l0.14,-0.75l1.74,-0.61l-0.23,0.87l-1.66,0.49ZM716.17,518.63l0.26,-0.13l0.06,0.04l-0.32,0.09ZM701.93,503.54l-0.06,0.03l-0.14,-0.01l0.19,-0.05l0.02,0.03ZM746.29,561.73l1.29,-0.12l1.03,-0.44l-0.04,0.65l-2.29,-0.08ZM765.01,574.66l-0.09,-0.09l0.07,-0.12l0.12,0.1l-0.09,0.11ZM766.08,573.43l-0.2,-0.4l-0.0,-0.06l0.04,0.0l0.17,0.46ZM777.41,577.24l0.21,-2.19l0.71,0.01l-0.44,0.65l-0.49,1.53ZM787.98,592.89l2.02,-1.46l1.55,-1.88l-1.08,2.63l-2.49,0.7ZM779.43,607.25l0.03,-0.02l0.01,0.02l-0.04,0.0ZM820.59,590.96l0.0,0.0l-0.0,0.0l-0.0,-0.01ZM701.83,596.32l-0.57,-0.35l-0.42,-0.33l0.73,0.21l0.27,0.47ZM790.47,576.88l1.36,-1.34l0.67,1.44l-1.32,0.73l-0.72,-0.82ZM757.36,567.04l0.54,-0.08l0.35,0.26l-0.22,0.16l-0.67,-0.34ZM753.28,565.8l0.47,-1.29l1.15,0.24l-0.22,1.07l-1.41,-0.01ZM748.69,558.87l-0.2,-0.17l0.27,-0.02l-0.08,0.19ZM747.92,558.58l-0.96,0.19l-0.02,-0.12l0.73,-0.16l0.26,0.09ZM750.02,555.78l0.08,-0.3l0.2,-0.06l0.02,0.17l-0.3,0.18ZM744.65,553.12l0.64,-1.81l0.75,0.24l0.31,1.02l-0.83,0.06l-0.53,1.29l-0.35,-0.8ZM745.49,555.18l1.39,-0.96l0.4,1.98l-1.15,-0.57l-0.64,-0.45ZM739.53,542.37l0.1,-0.7l0.05,-0.02l0.14,0.64l-0.29,0.08ZM737.08,536.88l0.54,-0.31l0.66,1.05l-0.18,0.15l-1.02,-0.9ZM736.98,542.04l0.94,-0.75l0.6,0.38l-0.67,1.26l-0.88,-0.88ZM734.56,536.7l0.49,-1.0l0.84,0.73l-0.23,0.65l-1.11,-0.37ZM704.5,508.32l0.25,-0.58l0.82,0.14l-0.81,0.77l-0.26,-0.33ZM704.47,507.42l-0.04,-0.66l0.08,0.11l-0.04,0.55Z", "name": "Newfoundland and Labrador"}, "on": {"path": "M399.41,727.97l3.25,-56.87l17.49,-16.02l50.18,-56.7l5.89,5.74l3.34,1.59l4.16,6.66l0.07,1.64l0.93,-0.9l1.53,0.7l0.47,1.09l3.72,0.22l7.51,3.34l3.52,0.63l3.74,2.18l0.82,1.61l2.04,1.5l1.96,0.55l-2.57,4.18l-0.2,2.26l0.59,0.29l3.0,-5.44l5.1,0.47l3.97,-1.2l1.6,0.26l1.47,-0.99l2.08,1.72l1.21,-0.17l0.56,1.64l0.68,-0.28l-0.38,-1.87l3.93,0.68l1.97,-0.84l0.22,2.18l3.44,-1.25l3.66,1.53l1.13,3.89l-1.85,8.94l0.54,3.1l0.67,1.51l1.45,0.82l1.61,4.42l-0.68,3.75l1.63,5.71l-1.29,1.28l-0.03,5.11l2.94,1.95l1.54,2.72l4.34,3.83l0.32,1.88l-2.77,1.36l-0.69,1.37l0.67,0.57l1.21,-0.98l2.42,-0.18l1.79,2.17l4.34,1.42l0.88,1.66l3.87,3.05l2.5,5.84l-2.02,1.29l-3.65,4.63l-0.29,0.63l0.81,0.81l6.1,-6.51l4.45,1.01l5.72,4.84l7.01,59.69l-0.5,2.75l2.01,3.02l0.61,3.39l7.32,9.7l3.52,2.67l9.71,0.57l5.65,1.33l2.13,1.35l1.34,2.16l2.97,1.37l1.25,-0.14l0.13,-1.76l0.79,-0.05l2.75,4.99l4.05,1.38l2.76,-1.35l3.47,1.9l1.37,-0.21l1.06,-1.56l4.54,-2.65l7.43,-2.67l2.95,0.8l-0.25,4.37l1.74,1.53l-3.52,4.2l-2.35,0.3l-4.22,3.29l-7.43,9.8l-10.39,5.66l-1.99,-0.83l-2.14,1.15l-0.78,-0.34l-4.0,1.92l0.07,1.37l-17.36,5.52l-4.64,4.39l-1.39,0.28l-1.48,1.77l-1.77,4.33l0.19,1.1l2.64,1.18l3.48,0.07l3.08,-1.79l0.22,3.11l1.89,2.65l-1.64,0.78l-7.98,0.75l-5.89,1.98l-2.79,2.58l-0.45,1.65l-6.1,-1.03l-5.59,0.87l-2.51,1.82l-4.56,5.7l-1.8,0.33l-3.67,2.49l-1.52,2.88l-1.92,-1.04l-3.18,1.24l-2.5,-1.04l0.23,-3.72l1.37,-0.67l4.23,0.23l2.75,-0.95l0.02,-3.2l-2.7,-0.36l1.3,-1.87l0.73,-6.43l3.62,-1.93l4.0,-4.29l0.8,-2.06l-1.43,-11.81l1.34,-2.3l0.15,-2.05l2.09,-2.07l1.49,-3.89l-1.97,-6.43l-0.93,-0.06l-1.89,-2.92l-1.62,-0.74l4.39,-0.17l-0.43,1.17l1.19,2.97l1.72,0.67l0.31,0.93l1.26,-0.3l-1.24,2.92l2.85,-0.84l-0.2,3.37l0.73,0.14l2.66,-2.55l1.29,1.87l6.61,1.78l1.27,-1.38l-0.05,-2.95l-1.76,-1.81l1.5,-0.96l1.11,1.62l2.82,-0.09l0.25,-0.64l-0.74,-0.46l0.13,-1.8l-1.13,0.57l-3.99,-3.64l0.8,-1.08l-1.71,-1.33l0.92,-1.39l-0.63,-1.56l-1.34,-0.3l-1.54,0.95l-0.23,-1.09l-0.96,-0.31l-0.56,-2.76l-0.71,-0.28l-0.59,0.8l-3.52,-5.53l-1.01,-0.63l-4.1,0.66l-0.5,-1.26l-1.21,0.97l-2.42,-0.2l-1.04,-1.77l-1.21,-0.45l-0.72,0.76l-5.92,-0.16l-2.09,-1.06l-3.46,0.67l-0.44,-0.8l-4.14,1.13l-13.09,-1.81l-0.69,-0.77l0.39,-1.86l-1.1,-1.15l-4.5,1.29l-0.77,-0.76l1.82,-2.92l-0.71,-1.01l-0.82,0.15l-0.03,-0.85l1.61,-0.14l0.62,-1.12l-1.42,-1.43l-2.26,0.46l-1.63,-0.89l2.09,-5.6l-1.97,-2.61l-3.59,-2.57l1.63,-6.41l-1.36,-0.45l-7.14,1.19l-3.76,-0.81l-2.62,-2.95l-2.62,-7.54l-2.35,-3.41l-1.68,0.65l-1.66,-1.25l-1.76,1.04l-1.54,-0.93l-3.38,0.86l-3.47,-1.85l-4.37,-1.08l-1.54,-1.38l-2.91,1.14l0.18,1.94l1.8,1.59l-0.71,2.41l-1.35,-0.31l0.4,-1.68l-0.64,-1.58l-2.01,-0.19l-2.9,8.53l-1.08,0.6l1.44,-3.51l-0.47,-0.9l-5.21,2.26l-1.88,6.26l-2.82,2.11l-3.67,0.23l-2.51,-2.31l-7.44,0.52l-1.66,-2.7l-6.62,3.42l-2.89,-1.08l-0.63,-1.46l-2.68,-1.03l-1.32,-2.1l-2.73,0.25l-0.76,1.87l-1.31,-3.75l-2.46,-0.29l1.07,-0.69l-0.3,-0.8l-4.08,-1.73l-5.02,-0.14l-1.38,1.25l-3.01,0.33l-1.09,-2.11l-4.32,-0.55l-0.74,-1.12l-3.39,-0.37l-1.14,-1.77l1.38,-1.44l1.69,-0.49l1.73,-2.47l1.71,0.52l1.37,-1.02l0.67,-0.78l-0.75,-0.53l0.85,-2.93l-1.34,-1.05l0.67,-0.77l-3.37,-2.07l0.99,0.2l0.42,-0.61l-0.89,-0.66l0.73,-0.77l-0.67,-1.05l-1.42,-0.26l-0.97,-2.13l0.36,-1.57l-1.02,-1.13l-1.24,0.08l-0.58,0.92l1.46,2.37l0.06,1.75l-2.78,0.05l-1.13,1.44l-2.32,-0.86ZM469.67,728.45l1.67,1.42l0.23,1.55l-0.99,-0.96l-0.76,0.55l1.51,2.45l1.84,-1.22l-0.46,0.66l0.7,1.13l1.89,0.59l0.94,-0.84l1.18,1.62l1.63,-1.99l2.16,0.98l-0.37,-3.25l0.77,-1.47l-0.58,-2.28l0.44,-2.16l1.11,-0.99l-2.32,-1.72l0.65,-1.03l-0.82,-2.07l-2.54,-1.64l-1.61,1.18l-1.01,-0.84l-0.98,0.31l-1.54,1.57l-0.43,2.25l-1.04,0.41l0.93,2.15l-1.34,0.8l0.2,1.59l-0.37,-1.2l-0.84,-0.03l-0.43,1.8l0.54,0.71ZM540.56,627.39l-0.07,-0.12l0.08,-0.1l0.01,0.04l-0.02,0.17ZM625.48,816.5l-0.88,0.97l-0.47,0.08l0.55,-0.74l0.8,-0.31ZM617.32,819.18l1.96,-1.47l1.51,0.73l0.49,-0.98l1.66,-0.66l-0.41,1.69l0.39,0.57l1.51,-0.3l-0.58,1.21l0.49,0.7l-1.15,0.87l-0.53,-0.19l0.23,-1.4l-4.11,0.62l-1.47,-1.38ZM624.91,820.35l0.01,-0.01l0.01,0.0l-0.02,0.01ZM478.49,748.07l0.15,0.64l-0.97,0.3l0.81,-0.95ZM477.13,749.61l-0.41,0.47l-0.16,0.72l0.06,-0.73l0.51,-0.46ZM472.6,753.18l-0.12,0.04l-0.06,0.0l0.02,-0.03l0.16,-0.01ZM409.98,736.99l-1.24,-1.83l-2.23,0.71l-0.95,-1.1l0.31,-0.87l-2.37,-0.23l0.19,-0.55l5.22,-0.85l-0.85,1.31l0.47,0.65l0.86,-0.42l-0.01,1.28l1.48,0.84l-0.87,1.06ZM401.76,728.88l0.69,0.17l-0.45,0.55l-0.32,-0.09l0.08,-0.64ZM631.42,815.59l-0.13,-0.74l0.55,-0.02l-0.02,0.39l-0.4,0.37ZM627.23,816.23l0.77,-0.4l0.07,-0.04l-0.2,0.32l-0.64,0.12ZM581.85,801.71l0.01,-0.5l0.57,0.08l-0.37,0.17l-0.21,0.24ZM582.47,809.41l0.08,-0.02l-0.03,0.08l-0.05,-0.05ZM575.9,692.07l1.12,-1.08l0.85,7.34l-1.99,-2.2l0.02,-4.05ZM543.99,793.29l0.64,0.68l2.98,-1.21l0.99,2.07l2.33,0.02l0.5,0.81l-7.92,-1.58l0.49,-0.78ZM551.7,795.68l0.77,-1.33l-0.92,-0.74l1.53,-1.12l1.04,-0.37l2.14,2.32l2.38,-2.74l0.44,1.27l1.05,0.28l-0.19,1.49l1.03,1.14l-2.87,2.6l-6.4,-2.79ZM561.3,795.7l0.14,-1.12l0.31,-0.89l0.37,-0.6l-0.5,1.08l1.39,0.74l-2.12,3.83l-0.59,0.22l1.7,-2.36l-0.71,-0.91ZM561.37,800.05l0.39,-0.41l0.14,-0.07l-0.3,0.46l-0.22,0.02ZM559.04,790.43l0.46,-0.13l0.58,0.12l-0.77,0.13l-0.27,-0.12ZM549.74,793.07l0.11,-0.31l0.76,-0.12l-0.14,0.32l-0.72,0.11ZM540.29,794.07l1.01,-1.22l0.82,0.55l-0.61,1.12l-1.21,-0.46ZM532.17,788.03l1.6,-0.01l1.59,1.01l-1.21,2.0l-1.98,-3.01ZM508.33,763.17l0.76,-0.68l2.4,0.26l-0.97,0.41l-2.18,0.01ZM486.08,744.61l0.14,-0.01l0.53,0.92l-0.33,0.04l-0.33,-0.95ZM482.03,744.94l1.2,-0.66l1.87,0.08l-0.46,1.02l-2.38,0.75l-0.23,-1.19ZM477.93,719.83l0.17,-0.01l0.17,0.44l-0.2,-0.06l-0.14,-0.37ZM478.55,720.5l0.14,0.03l0.06,0.19l-0.05,-0.01l-0.14,-0.21ZM475.07,730.34l0.17,-0.01l0.06,0.15l-0.14,-0.1l-0.09,-0.04ZM475.4,723.45l-0.02,-0.28l0.1,0.01l-0.07,0.24l-0.01,0.03ZM474.42,725.62l0.1,0.02l0.16,0.3l-0.46,-0.02l0.2,-0.3ZM469.69,755.38l0.19,-0.22l0.17,-0.01l-0.36,0.22ZM403.6,737.46l0.64,-0.37l0.83,0.44l-1.23,0.69l-0.24,-0.77ZM406.38,737.1l0.0,-0.01l0.02,-0.07l0.01,0.08l-0.04,-0.0ZM405.0,739.21l0.5,-0.36l0.12,0.28l-0.18,0.39l-0.43,-0.3ZM399.11,732.44l1.97,-0.65l0.88,-0.67l-0.87,1.65l-1.81,0.48l-0.16,-0.81ZM402.77,730.48l1.11,-1.11l0.95,-0.18l-0.74,1.0l-1.33,0.3Z", "name": "Ontario"}, "ab": {"path": "M139.57,606.56l0.37,-1.05l1.18,0.57l0.81,-0.56l-1.58,-4.38l37.33,-108.91l45.27,14.12l45.98,11.63l-2.72,12.15l-4.26,2.55l-1.83,0.1l-4.59,4.95l-1.83,0.73l-0.86,-1.64l-1.67,0.79l1.38,3.5l-0.16,1.93l0.92,0.24l1.46,-1.94l-0.31,2.62l0.56,0.52l1.32,-1.15l0.14,-1.43l3.55,0.95l0.97,-1.38l-0.73,-1.28l4.31,-2.81l-39.85,178.15l-45.48,-11.24l-0.72,-2.98l-2.23,-1.66l0.23,-0.86l-1.58,-2.96l0.8,-2.77l-1.71,-1.0l2.24,-2.87l-0.07,-2.44l1.05,-2.7l0.11,-5.55l-1.47,-4.33l-1.24,-1.02l-1.26,0.24l-0.4,-3.13l-2.69,-3.15l0.84,-0.16l-0.02,-1.71l-1.31,-2.54l-1.92,-1.32l-0.11,-2.34l-1.88,-1.98l0.3,-2.47l-2.03,-4.3l-0.2,-3.14l-1.26,-0.33l-1.4,1.25l-0.62,-0.25l-0.14,-3.71l-1.62,-3.01l0.14,-2.56l-3.37,-0.27l-1.21,-1.61l-0.28,-1.09l1.58,-1.91l-2.46,-2.86l-1.36,1.2l-1.4,-0.1l0.7,-1.26l-0.7,-2.97l0.77,-0.81l-0.3,-3.43l-0.53,-1.4l-1.3,-0.18l0.31,-2.51l-1.07,-3.42l-1.29,-1.58l-1.31,1.23l-1.63,-1.38l-0.34,-3.23l-2.89,-1.04l-1.44,-3.37Z", "name": "Alberta"} }});
\ No newline at end of file
--- /dev/null
+/** Add Europe Map Data Points */
+jQuery.fn.vectorMap('addMap', 'europe_en', {"width":680,"height":520,"paths":{"gl":{"path":"M13.47,93.57C12.35,92.52 12.34,90 10.44,89.14 10.62,88.14 13.84,87.66 11.35,86.39 10.05,87.17 9.25,86.92 8.71,87.58 6.27,88.12 8.6,85.09 6.17,85.17 5.23,84.47 10.33,84.75 9.98,83.14 11.32,83.4 14.67,82.04 12.37,81.03 11.23,81.19 6.54,82.06 10.06,81.32 13.04,80.64 9.92,76.6 8.71,79.05 9.24,77.06 11.03,78.05 12.88,77.78 14.68,74.59 9.38,77.17 8.23,75.54 7.26,73.61 12.43,77.09 11.48,74.6c2.44,-0.76 -0.97,1.23 1.21,1.43 1,0.07 3.06,0.24 1.26,-0.8C15.39,74.51 14.27,73.05 14.04,72.76 16.26,70.08 9.73,69.39 11.65,72.54 9.43,70.77 7.4,69.72 5.62,68.37 4.84,67.27 3.62,65.14 5.75,64.54 6.27,63.17 3.83,63.23 6.08,62.64 8.52,60.62 3.8,58.38 3.79,56.87 4.78,56.07 3.39,53.57 4.92,55.82c2,1.48 -1.5,0.05 -0.41,1.67 0.7,1.18 4.94,4.58 4.09,1.22C7.96,57.37 6.11,57.21 8.09,56.47 5.75,56.14 4.83,52.58 8.11,53.61c1.58,0.65 2.17,-1 2.13,-1.24 1.86,-0.56 0.99,-3.89 0.14,-5.02 -2.29,-0.92 1.59,-2.34 -1.23,-2.91 0.6,-3.73 4.98,-2.29 7.51,-3.37 2.78,-1.33 -1.33,-1.73 -1.69,-3.06 -3.07,-1.99 2.8,-0.5 3.28,-2.76 2.87,0.22 -2.67,-2.82 -1.49,-3.84 1.34,0.59 4.57,3.1 4.27,-0.2C20.58,29.48 17.09,31.14 17.33,29.6c1.78,1.02 0.79,-3.69 2.33,-1.12 1.76,1.21 4.05,-0.81 1.11,-1.21 -0.72,-0.16 1.96,-1.91 2.18,-0.31 2.04,0.89 2.39,3.26 4.86,3.29 1.12,-1.58 -2.89,-2.38 -0.16,-2.31 1.35,-1.83 -5.03,-0.94 -1.14,-2.29 1.39,-1.55 1.81,4.29 2.64,1.36 -0.57,-1.39 -0.41,-4.67 1.53,-2.59 0.16,2.02 -2.74,3.73 -1.03,6.23 2.7,1.13 0.11,-4.85 3.69,-4.25 2.74,-0.7 0.37,-3.01 -1.39,-3.16 0.93,-1.59 -0.48,-0.52 -0.91,-1.1 -1.26,0.42 -2.63,-0.27 -1.15,-1.19 -0.81,-1.9 -3.85,0.74 -5.54,0.53 -3.44,0.64 1.14,-2.76 2.36,-3.3 2.28,-0.77 4.66,2.97 6.55,0.04C34.81,17.14 33.04,17.79 32.17,17.97 30.61,18.81 30.38,17.32 30.54,16.77 29.14,17.79 26.4,16.27 29.42,16.34 29.89,14.12 31.85,14.39 33.58,13.44c0.27,-2.21 -3.96,0.03 -1.92,-1.94 2.34,1.37 5.29,0.49 7.37,1.6 0.49,1.25 2.93,3.07 2.07,0.58C40.16,10.86 37.07,10.79 34.89,10.94 32.01,10.71 38.39,8.92 36.45,6.69 35.49,6.8 33.31,6.65 34.75,5.53c1.74,0.57 3.45,1.31 2.13,3.63 0.97,-0.77 3.6,0.14 4.92,-0.01C42.62,6.51 37.36,8.29 39.31,5.97 39.94,4.69 35.39,5.71 36.07,3.41c2.18,-0.52 6.21,0.1 8.48,1.64 1.78,-0.72 2.84,-0.23 4.07,0.55 1.73,-0.23 3.46,0.06 2.78,2.25C52.75,9.86 54.51,8.35 52.72,6.73 52.71,4.07 54.56,10.07 55.78,8.98 56.01,5.87 52.57,4.02 49.87,3.57 48.45,2.66 43.96,4.29 45.02,2.48 44.96,1.07 43.75,0.16 45.71,1.28 47.56,3.52 50.55,-0.47 53.01,0.78 55.13,-0.05 52.02,4.62 54.57,4.07 55.09,3.62 56.43,7.62 57.26,5.53 57.36,3.28 54.5,4.61 54.71,2.93 54.66,0.68 56.28,0.89 57.93,0.78 59.1,1.36 57.92,5.72 60.98,5.64 61.74,4.33 57.63,0.17 61.09,2.11 61.53,3.09 65.18,3.43 63.42,2.17 61.88,1.53 60.02,-0.12 62.69,1.24c1.18,0.74 1.27,-0.27 2.37,-0.09 0.49,-0.8 2.06,-0.17 3.01,-0.37 45.89,0 91.78,0 137.67,0 0.61,1.21 1.15,3.04 -0.24,1.09 -2.48,-0.7 1.23,2.94 1.58,3.94 1.63,2.86 -1.86,0.67 -3.36,1.88 1.28,-1.72 -2.26,-4.24 -1.57,-1.36 0.03,2.25 1.64,3.73 3.68,2.39 1.03,0.77 -1.42,2.8 -1.62,3.53 -3.09,0.12 0.02,1.62 1.04,2.22 0.66,2.09 4.04,0.64 2.3,3.22 -1.05,1.95 -3.92,1.82 -3.21,-0.86 0.14,-3.28 -4.67,-1.36 -4.04,-5.02 -2.02,-0.71 -0.18,3.84 -2.96,2.48 -0.73,0.74 0.41,1.75 -1.42,1.32 -2.61,0.54 1.71,4.84 -0.38,4.25 -1.39,0.66 -1.21,4.72 0.33,2.08 -0.04,-1.13 1.18,-4.09 2.39,-2.05 0.43,1.69 3.14,3.16 0.34,3.59 0.86,3.33 -3.29,2.48 -4.22,0.42 -0.56,1.42 -4.92,2.25 -4.96,-1.01 -1.09,-1.09 -0.61,-6.28 0.38,-2.79 -0.38,2.15 4.88,3.94 3.74,1.34 -3.75,0.99 -2.13,-7.24 -6.06,-4.79 -0.93,1.3 -1.66,1.94 -1.57,-0.09 0.87,-1.48 -0.65,-6.36 -1.62,-2.76 -0.29,1.71 1.87,5.7 -1.38,4.23 -1.61,0.79 -3.43,1.95 -3.68,-0.56 -1.68,-1 0.16,-4.48 -2.68,-3.04 -0.67,1.11 2.68,6.25 0.02,3.71 -0.94,-1.89 -3.02,-1.6 -4.56,-0.77 1.83,0.09 2.37,0.85 0.57,2.18 0.59,2.05 2.81,-2.2 3.66,0.12 1.38,0.4 3.13,-0.11 3.81,2.17 2.43,3.24 -2.95,0.83 -4.01,1.04 -0.05,-1.82 -4.79,-3.3 -3.23,-1.13 1.49,0.95 1.71,0.82 0.15,1.51 -1.1,2.37 1.53,3.48 2.9,1.87 3.12,-1.53 5.02,4.79 1.15,3.53 -2.62,-0.97 -1.48,2.05 -3.89,2.7 -0.43,2.18 2.56,-0.04 2.88,-0.79 2.47,-0.74 2.4,2.46 3.26,3.28 -2.41,2.08 2.06,1.61 0.72,3.86 0.87,0.94 2.37,2.01 0.05,2.28 -2.05,0.35 -0.86,2.02 0.59,1.45 -1.67,-0.11 -1.69,1.85 -1.36,2.27 -1.73,0.52 -2.08,4.37 -0.55,3.78 -0.25,-2.23 4.33,-2.23 2.08,-0.24 -2.82,-0.46 -0.7,2.99 -3.43,2.2 2.08,0.81 0.22,1 -1.03,1.19 -1.32,0.16 3.49,1.1 1.39,1.26 -1.9,0.07 -0.29,1.99 -2.31,1.42 1.18,0.54 1.34,1.84 1.35,2.8 -2.18,2.04 -4.44,-0.74 -2.18,-2.64 1.63,-0.69 0.76,-4.19 -0.17,-2.1 -0.64,2.71 -4.66,4.66 -4.98,0.68 -0.13,-3.43 1.98,-6.57 2.12,-10.01 -0.26,-1.47 -2.38,-1.12 -1.92,-3.26 0.2,-2.67 -2.43,-4.09 -3.97,-4.66 0.54,-2.82 0.04,-5.39 -1.15,-7.72 0.49,-2.96 -3.2,-2.36 -2.3,0.29 0.39,1.99 2.16,3.98 1.82,5.79 -0.98,-1.18 -4.72,-2.37 -4.53,0.09 1.53,0.74 4.96,0.32 3.23,3.09 -0.36,0.92 2.65,-0.97 2.92,1.14 1.39,1.16 4.2,3.13 1.09,4.33 -2.3,0.81 -7.78,0.76 -7.23,-2.79 1.56,-1.72 -2.19,-2.27 -1.32,0.16 -1.72,-2.55 -3.53,-0.09 -1.9,1.66 -2.13,2.01 -4.41,0.62 -6.81,0.57 -2.19,2.71 4.76,1.16 2.08,3.05 0.58,1.9 4.08,1.91 5.81,2.83 1.96,1.43 -0.47,2.15 -1.35,0.46 -1.82,-1.08 -3.45,2.21 -4.74,-0.62 -0.64,-2.28 -4.68,1.1 -2.47,0.81 1.98,0.42 2.27,5.38 5.07,2.98 1.84,-3.35 3.57,2.14 6.26,0.44 1.29,-0.17 2.13,-0.02 0.67,0.65 1.09,1.24 2.33,0.17 2.6,1.96 1.19,2.8 4.25,5.41 6.32,6.4 -0.65,1.36 -3.26,-1.74 -3.14,1.07 -0.24,-1.71 -1.8,-0.78 -1.41,0.45 -1.2,-0.78 -1.84,-2.07 -1.82,0.08 -0.39,2.77 -2.92,-1.74 -2.76,-0.46 0.55,1.51 -0.55,2.28 -0.85,0.45 -2.38,-1.66 -2.14,3.66 -3.7,0.79 -1.88,-0.98 -0.85,3.28 -2.38,0.99 -2,-0.69 -1.48,2.95 -3.73,1.98 -1.43,0.57 -1.73,-1.87 -2.48,0.33 -1.28,0.15 -2.02,-1.77 -3.67,-0.49 -1.51,-0.59 -3.89,-0.69 -5.18,-1.79 -1.83,0.4 -3.94,-2.71 -4.99,0.05 -1.52,0.2 0.6,-5.44 -2.51,-2.84 -0.5,1.46 -2.44,2.79 -1.46,0.41 -0.04,-2.08 -3.47,-2.35 -1.81,-0.01 -0.33,2.95 -2.47,-1.46 -3.31,-2.22 2.66,-0.66 -1.9,-3.4 0.58,-4.85 0.98,-1.25 -0.43,-3.9 -1.29,-1.57 -2.2,1.2 0.59,4.8 -2.3,3.1 0.07,1.58 0.73,2.33 -0.49,2.37 -0.31,3.19 -2.4,-0.77 -3.7,1.08 -1.26,-0.57 -3.86,-0.58 -3.24,0.73 -1.86,1.54 -5.17,-0.4 -5.06,3.18 -2.02,-0.95 -3.43,1.13 -4.24,1.49 -0.67,-0.74 -1.24,2.48 -2,1.23 2.12,-2.45 -2.15,-1.8 -1.8,0.58 -2.16,1.39 -3.92,0.18 -2.08,-1.7 -1.67,0.05 -3.09,2.47 -2.5,-0.4 -0.88,-2.96 -1.92,-0.22 -2,1.13 -1.96,-0.26 -4.27,2.16 -3.76,-0.97 -0.78,-1.12 -2.93,1.49 -3.4,-0.02 1.83,-0.91 0.7,-3.4 -0.63,-1.07 -0.78,1.04 -1.78,1.59 -1.04,-0.05 -2.35,-3.54 3.85,-1.66 4.59,-3.73 -0.17,-1.96 -2.75,-5.32 -4.26,-2.64 1.79,0.66 -1.44,2.8 -2.07,2.43 -1.51,-3.02 -4.63,-0.57 -2.13,1.56 0.17,1.83 -2.38,1.81 -1.85,-0.14 -1.36,-2.38 -2.64,3.42 -2.69,-0.09 0.92,-1.47 0.05,-4.47 -1.39,-1.81 0.69,-2.4 -1.59,-1.67 -2.42,-0.69 -1.63,-2.6 -2.81,-0.08 -1.32,1.39 -0.12,2.09 -5.82,3.27 -3.43,0.33 -0.7,-1.39 -2.14,-1.09 -2.9,-2.54 -1.31,0.12 -1.87,1.12 -2.63,1.96 -0.18,2.43 -0.75,4.74 -2.05,6.98 -0.56,-1.99 -3.06,-1.81 -4.45,-3.2 -2.37,1.32 0.55,4.85 0.85,5.51 -2.93,-1.09 -0.49,5.23 -3.18,2.66C53.03,69.44 53.8,64.37 51.35,66.72c-0.01,1.25 1.67,5.14 1.03,4.67 -0.53,-2.51 -2.88,0.37 -2.61,-2.21 -1.56,-2.63 -4.32,1.46 -2.75,2.77 0.01,1.17 -1.56,2.39 -0.5,0.42 0.86,-3.51 -4.59,-2.97 -3.27,0.28 1.49,1.65 -0.07,2.95 -1.09,0.84 -1.55,-1.63 -4.28,0.31 -4.69,-2.84 -1.38,-1.87 -1.94,1.56 -0.77,2.26 -0.06,1.31 -0.47,2.49 -0.74,0.56 -1.54,-2.22 -1.58,2.78 -0.86,3.53 1.64,2.36 -5.86,1.67 -2.64,3.82 2.3,1.03 -2.22,1.12 -2.82,0.61 -1.74,0.43 1.87,2.58 -0.75,1.83C27.52,82.87 27.84,78.97 25.72,81.05c-0.33,1.79 3.97,2.08 0.81,3.67C24.18,85.6 27.77,81.48 24.7,81.96c-1.65,-0.58 -3.25,0.94 -2.07,2.52 -0.13,-1.56 -3.34,-2.97 -2.3,-0.65 0.92,1 3.65,4.19 0.68,3.11 -0.39,-1.36 -2.18,-3.54 -2.55,-1.53 -2.1,0.36 1.98,3.44 0.79,3.95 -0.52,-1.87 -2.86,-1.68 -1.64,0.35 -0.16,0.51 -2.67,-2.78 -2.9,-4.29 -1.64,-2.64 -1.84,0.81 -1.4,1.86 -0.78,1.52 2.24,0.79 1.57,2.42 -1.75,-0.73 -3.2,1.28 -0.75,1.28 -0.16,0.78 0.34,2.28 -0.65,2.59z M34.12,18.3c-1.05,0.6 -2.47,3.81 -0.57,3.47 1.95,-0.22 4.06,-4.82 0.57,-3.47z m-22.97,56.17c-2.31,-0.35 -0.79,-1.58 0,0z M2.14,66.59c-1.38,-1.11 -0.95,-1.35 0.46,-0.36 -0.18,-0.08 -0.27,0.6 -0.46,0.36z m168.23,-6.32c-0.28,-1.85 2.85,0.02 0.03,0l-0.03,0z M7.85,51.96c-0.57,-0.92 1.55,0.27 0,0z m1.18,-1.63C7.41,50.26 7.17,48.77 8.95,49.87 10,50.07 10.77,49.96 9.03,50.33z M184.09,37.53c-0.77,-1.48 -1.43,-4.23 -2.73,-6.24 -2.01,-2.67 1.21,-6.02 3.05,-2.64 0.95,1.04 0.93,3.38 1.44,4.42 -4.98,-0.16 0.39,3.51 -1.76,4.46z M23.01,25.35c-1.12,-0.81 -0.79,-3.25 0.17,-0.92 0.17,0.37 -0.49,0.58 -0.17,0.92z M209.99,8.88c0.65,-1.41 0.2,-3.29 -1.61,-3.21 -0.07,-1.5 -1.95,-5.46 0.62,-4.89 1.44,0 2.88,0 4.31,0 1.06,2.38 -1.6,4.58 -1.58,7.24 -0.32,0.7 -1.06,0.8 -1.74,0.86z M44.32,3.05c-1.74,-0.98 -6.31,0.12 -6.14,-2.09 1.47,1.81 3.05,0.95 2.25,-0.17 2.2,-0.52 2.82,0.46 3.89,2.27z","name":"Greenland"},"is":{"path":"m151.61,141.44c-2.42,-0.05 -4.73,-1.12 -5.95,-3.36 -0.71,-2.06 -4.34,-1.68 -3.81,-4.38 0.8,-0.95 3.4,-0.95 1.03,-1.6 -1.69,0.92 -0.37,-1.61 -2.18,-0.86 -0.88,-0.03 -1.32,-2.12 -2.96,-2.05 -1.43,-1.13 -6,-1.27 -4.53,-3.48 1.4,1.45 5.16,1.15 5.29,-1.63 0.95,-0.08 4.39,1.14 2.46,-0.91 -1.28,-0.31 -3.16,-1.27 -0.58,-1.35 2.41,0.51 2.39,-2.69 -0.02,-1.57 -1.25,0.39 -2.36,1.06 -1.66,-0.43 -0.34,-1.62 1.57,-4.11 -1.54,-3.94 -1.49,-1.7 -3.83,-2.36 -5.98,-2.91 1.9,-1.43 2.13,2 4.45,0.36 0.58,-0.11 0.84,1.82 1.93,0.36 1.45,0.02 2.12,1.75 4.12,1.85 1.57,1.88 4.72,-0.08 2.56,-1.73 -1.13,0.23 -4.71,-0.08 -2.41,-1.51 1.13,0.1 5.66,-0.35 3.94,-1.58 -2.53,-0.05 -1.4,-0.83 -0.29,-1.63 0.84,-2.83 -2.64,-1.96 -3.34,-1.81 -1.47,-0.72 -2,-0.85 -1.64,-2.44 2.52,0.42 0.64,-2.75 -0.27,-3.56 -0.04,-0.34 1.76,2 1.91,-0.11 -0.65,-3.43 1.88,0.34 1.11,2 -0.95,4.21 5.86,2.44 3.19,-0.73 -1.94,-1.31 0.11,-2.67 -1.13,-4.2 1.13,0.42 1.67,1.6 2.04,1.18 1.98,0.31 -0.01,2.5 1.33,3.37 0.86,1.89 -0.77,4.19 1.64,5.57 -1.28,0.64 -3.87,-0.52 -2.63,1.99 -0.4,1.18 -1.92,2.25 -0.42,2.93 -1.31,1.46 -1.09,4.59 1.22,2.7 0.49,-1.4 2.89,-6.12 2.22,-2.37 2.69,2.22 4.53,-3.04 4.48,-5.25 2.58,0.03 -0.68,6.63 3.51,5.53 -0.01,-0.74 0.05,-5.1 1.81,-2.72 1.08,-2.01 3.5,-0.36 1.83,1.62 2.1,1.36 -0.53,3.45 0.95,5.46 2.69,-0.06 0.02,-7.39 2.92,-6.07 -0.32,2.52 1.49,4.92 3.27,1.85 1.68,-2.37 1.62,3.33 3.69,1.28 1.71,-0.8 1.1,-6.38 3.47,-3.02 -0.81,1.5 1.32,1.54 -0.24,3.29 -0.5,2.17 2.82,1.16 2.36,3.29 2.02,0.52 2.1,1.62 0.19,2.57 -2.6,1.53 3.45,1.86 0.49,3.25 -0.74,0.55 -3.68,1.15 -1.27,1.34 1.72,-0.23 4.34,-1.28 4.35,1.54 -0.04,2.17 -4.93,1.21 -2.47,3.09 1.83,0.33 2.75,2.38 0.41,2.2 -1.18,-0.56 -1.74,-0.63 -0.71,0.56 -0.6,-0.3 -3.92,0.12 -2.06,0.55 2.71,0.87 -0.55,1.36 -1.7,1.52 -1.06,0.04 -2.49,1.02 -2.87,2.69 -1.35,-0.83 -1.72,1.98 -2.29,-0.35 -0.72,-2.57 -2.1,-0.68 -2.71,0.31 -2.09,-0.1 -4.17,0.18 -5.78,1.63 -1.89,0.57 -3.52,-3.04 -3.52,0.21 -2.4,-1.75 -5.62,-1.53 -6.88,1.4l-0.35,0.08 0,0z m24.31,-7.94c-1.58,1.64 1.17,1.65 0.84,-0.23 -0.28,0.08 -0.56,0.15 -0.84,0.23z M147.49,99.76c-2.33,0.02 -1.42,1.38 0.2,1.79 0.14,-0.38 0.69,-1.97 -0.2,-1.79z m33.62,15.99c1.19,-0.59 1.6,-0.17 0,0z m-44.05,-9.09c-1.62,-0.01 -0.68,-1.6 0.37,-0.74 1.34,-0.47 -0.84,-4.6 0.49,-2.48 -0.6,1.82 2.54,3.42 -0.86,3.22z m-1.42,-1.5c-1.66,0.2 -1.5,-3.06 -0.29,-0.86 -0.05,0.3 1.22,0.95 0.29,0.86z m4.48,-1.49c-0.86,-0.96 -0.83,-1.57 0,0z","name":"Iceland"},"pt":{"path":"m126.31,476.79c-3.11,-0.89 -5.74,-4.21 -9.28,-3.12 -1.78,0.38 1.76,-2.58 1.47,-3.95 0.39,-1.92 1.56,-3.11 1.18,-4.56 -0.46,-1.65 0.47,-3.6 1.4,-5.27 -0.61,-1.65 3.07,-0.14 2.33,-1.74 -1.59,-1.17 -2.48,-2.71 -4.71,-1.61 -1.89,-0.04 -2.12,-3.1 -2.67,-4.46 0.27,-2.21 3.57,-4.27 2.21,-6.5 2.42,0.37 3.47,-2.17 4.77,-3.81 0.98,-1.71 1.87,-3.43 3.16,-4.47 -0.79,-1.76 1.02,-5.31 3.28,-5.87 1.59,-1.26 -0.95,-2.63 0.8,-4.09 0.23,-2.53 -1.05,-5.19 -0.11,-7.75 2.54,0.06 0.15,-1.87 0.17,-2.24 1.59,-1.44 4.74,-3.3 6.49,-1.31 -3.35,1.53 -0.16,3.98 2.09,3.19 1.85,-0.17 3.87,2.53 6.45,0.97 1.56,-0.13 6.26,-0.07 4.22,3.05 0.22,1.77 4.81,2.08 1.88,3.98 -2.66,0.33 -4.02,2.88 -6.33,3.35 -0.97,1.66 1.09,4.53 -0.81,6.49 -1.07,1.01 0.55,2.39 -1.62,2.77 -2.6,1.54 1.62,6.06 -2.82,6.49 -1.74,-0.37 -5.6,-2.08 -3.57,1.31 1.07,1.89 -0.41,4.57 2.03,6.2 1.92,2.91 -3.81,2.81 -3.68,5.95 -1.09,1.6 0.5,5.45 2.67,5.41 -1.19,1.2 -4.31,1 -5,3.34 -3.07,2.07 -0.28,7.22 -4.25,7.62 -0.55,0.29 -1.11,0.63 -1.75,0.65z","name":"Portugal"},"ma":{"path":"m114.26,519.26c5.38,-1.06 11.75,-0.39 15.9,-4.63 5.26,-4.88 8.22,-11.54 11.83,-17.6 2.3,-1.64 3.11,0.89 3.7,2.43 3.25,0.06 3.27,5.03 6.51,6.18 2.01,2.4 5.02,1.6 7.69,1.35 1.26,1.84 3.78,-0.68 5.41,1.5 1.48,1.09 4.97,-1.46 5.09,1.72 1.76,1.07 3.75,0.97 5.94,1.12 1.21,2.49 5.27,4 3.5,6.77 1.55,1.82 -0.97,1 -2.11,1.18 -21.15,0 -42.31,0 -63.46,0z","name":"Morocco"},"es":{"path":"m170.08,507.95c-0.69,-0.45 0.64,-1.19 0,0z m-23.1,-9.15c-1.89,-0.27 -1.23,-3.36 0.81,-2.76 -1.01,0.61 -0.28,2.16 -0.81,2.76z m-1.53,-5.41c-1.92,-1.84 -4.81,-3.55 -4.78,-6.5 1.74,-1.65 -3.05,-2.72 0.06,-3.62 1.8,0.08 1.95,-2.62 0.29,-1.71 -1.68,1.92 -1.49,-3.2 -3.57,-3.37 -1.21,-2.54 -5.06,-1.7 -6.26,-3.7 0.08,-2.72 1.22,-5.37 3.58,-6.95 1.91,0.46 5.66,-3.3 1.98,-3.27 -1.9,-2.17 -1.67,-5.74 1.14,-6.99 3.7,-0.95 1.1,-4.57 -0.28,-6.35 0.58,-1.68 0.45,-3.01 -0.84,-4.53 2.46,2.34 7.45,0.07 6.4,-3.43 -2.26,-2.56 3.15,-2.71 1.97,-5.34 1.81,-1.67 0.28,-5.41 1.17,-6.21 1.77,-2.14 4.99,-2.46 6.88,-4.55 1.92,-2.79 -4.07,-2.45 -2.2,-4.91 0.43,-3.16 -4.07,-2.3 -5.69,-3.2 -1.8,2.37 -3.89,-1.02 -6.23,-0.51 -0.28,-1.34 -3.49,1.05 -2.42,-0.88 2.82,-1.19 -0.75,-4.5 -2.73,-2.96 -2.11,1.45 -3.86,-0.78 -1.34,-1.64 0.94,0.28 2.32,-1.98 0.72,-1.58 2.23,-1.63 -2.16,-0.92 -0.24,-2.66 2.41,-1.99 0.28,-4.66 -2.06,-3.75 -2.26,-1.66 -0.12,-3.23 1.07,-4.13 3.66,0.29 6.76,-2.08 9.92,-3.51 1.78,-2.19 1.34,2.22 3.29,-0.21 3.33,-0.27 2.62,6.64 6.6,4.09 2.47,1.16 5.51,0.94 8.02,1.44 1.9,-1.24 3.14,2.45 5.32,2.3 2.35,0.57 4.3,2.34 6.75,2.93 2.65,1.41 5.29,-0 7.84,-0 2.13,0.65 4.69,5.39 6.5,1.98 2.5,1.32 5.04,3.91 8.46,3.08 1.39,-0.01 3.8,0.79 4.14,1.8 -1.87,1.22 0.06,2.67 1.22,2.4 1.66,1.57 5.29,1.19 5.34,4 1.46,0.54 4.43,-0.57 4.33,1.92 1.41,-0.29 3.73,0.98 4.54,0.5 1.54,0.01 3.53,0.67 3.72,-1.35 1.63,1.02 3.94,2.12 5.05,3.3 -0.62,2.48 1.62,2.94 3.4,2.37 1.23,1.43 2.74,2.23 4.47,1.42 1.62,0.92 3.85,2.1 4.94,-0.04 1.38,-0.43 5.47,1.31 2.5,2.25 -0.52,2.49 0.35,5.62 -3.02,6.24 -3.95,0.65 -6.55,3.99 -10.24,4.85 -4,0.26 -8.86,0.24 -11.41,3.91 0.64,1.13 2.06,1.75 -0.08,1.82 -2.98,1.35 -3.8,5 -6.55,6.72 -2.04,2.09 -4.6,4.27 -5.09,7.29 -0.14,3.13 0.72,6.8 3.86,8.19 -0.28,2.13 -4.94,1.61 -6.14,3.93 -1.51,0.81 -1.84,2.35 -3.08,3.65 0.22,1.68 -4.27,3.01 -1.46,5.03 -0.94,1.1 -4.96,-1.49 -6.88,0.41 -2.79,1.13 -4.55,3.71 -5.69,6.37 -2.11,3.74 -4.63,-2.34 -7.31,0.69 -2.28,0.2 -4.7,-1.72 -7.4,-1.1 -2.51,-0.92 -5.12,-1.75 -7.89,-1.82 -2.99,0.03 -4.54,3.25 -7.74,1.83 -3.45,-0.48 -3.73,3.46 -6.83,4.06z M229.67,469.73c-3.03,-0.94 2.34,-1.17 0,0z m-3.28,-1.86c-1.31,-1.98 3.63,-2.8 0.96,-0.55 -0.28,0.23 -0.58,0.51 -0.96,0.55z m8.15,-0.95c-0.99,-1.19 -3.24,-1.21 -2.69,-3.07 -1.57,-0.61 -4.43,-0.57 -1.44,-1.83 1.82,-0.69 5.61,-3.6 5.15,-0.13 1.01,1.13 4.03,0.64 1.76,2.77 -0.83,0.87 -1.8,1.58 -2.78,2.26z m11.67,-5.53c-0.43,-1.32 -5.6,-1.9 -2.47,-2.15 1.42,0.04 2.4,0.66 2.47,2.15z","name":"Spain"},"tn":{"path":"m284.9,519.26c-2.21,-1.12 0.73,-3.64 -0.95,-5.51 -1.46,-3.16 2.15,-6.93 -0.12,-9.45 -0.67,-0.73 2.93,-1.29 1.98,-2.95 2.23,-0.03 1.46,-2.58 3.74,-2.85 2.52,-1.83 5.41,-3.02 8.35,-3.78 1.3,0.18 -1.34,3.29 1.51,2.64 0.71,-1.15 1.1,-2.15 2.08,-1.26 -0.76,0.27 1.03,1.6 0.03,2.09 1.72,0.55 2.13,5.46 4.03,3.7 1.46,-0.73 4.4,-5.15 5.37,-2.71 -0.9,2.37 -2.28,5.07 -4.51,6.35 -3.22,1.82 -2.27,6.37 0.87,7.67 1.26,0.82 1.66,2.08 3.04,2.36 -0.15,1.99 1.01,4.41 -1.79,3.68 -7.88,0 -15.77,-0.01 -23.63,0.01z","name":"Tunisia"},"dz":{"path":"m181.84,519.26c-2.16,-1 0.09,-2.29 0.05,-3.03 -0.8,-1.48 -5.28,-4.37 -1.47,-3.7 2.83,-0.51 5.98,-1.33 7.84,-3.67 1.17,-2.46 3.66,-2.95 5.89,-2.07 1.44,-0.79 2.77,-2.77 3.38,-0.29 3.67,1.9 4.38,-3.05 7.15,-3.91 3.27,-1.17 6.41,-3.1 10.01,-2.8 3.04,0.05 6.13,0.57 9.13,-0.19 2.74,1.56 5.53,-0.24 7.63,-1.26 2.46,0.75 5.2,0.79 7.75,-0.34 2.83,-0.67 5.62,0.67 8.61,0.23 3.35,0.17 5.17,6.05 8.94,3.1 1.43,-2.77 7.09,0.3 7.33,-3.88 2.03,-1.62 1.87,1.59 2.96,1.23 1.79,0.05 6.14,2.99 6.01,-0.61 2.5,-2 5.17,3.33 8.12,2.16 1.57,-1.13 4.46,-0.6 5.35,-0.15 -1.62,-0.02 -2.54,1.2 -1.93,2.18 -1.87,0.63 -3.58,2.5 -1.04,3.3 0.38,2.87 -2.09,5.94 -0.27,8.63 -0.06,1.4 0.31,4.98 -0.86,5.05 -33.52,0 -67.05,0 -100.57,0z","name":"Algeria"},"be":{"path":"m265.32,343.64c-0.99,-1.16 -1.81,-2.49 -3.73,-3.37 -2.08,-0.35 -0.28,-1.85 -1.25,-2.79 1.47,-1.88 -0.53,-2.73 -1.47,-0.87 -1.28,2.32 -4.46,0.99 -3.2,-0.74 -0.78,-0.74 1.11,-3.63 -1.62,-3.19 -2.17,0.83 -2.23,-1.41 -2.67,-2.1 -3.94,1.05 -1.51,-5.53 -5.39,-3.71 -2.36,1.07 -3.02,-4.27 -0.45,-4.53 1.73,-0.62 4.14,-3.17 4.52,-0.63 2.42,-0.22 3.66,2.56 5.83,0.13 1.3,-0.02 1.88,1.91 1.96,-0.36 0.89,-2.95 2.67,0.31 4.45,-0.43 0.58,-0.7 1.45,3.34 3.54,2.07 2.55,0.01 1.99,1.94 1.4,3.06 -1.22,1.97 -0.15,4.06 2.13,3.5 1.5,1.19 1.36,3.16 2.63,4.39 -1.48,2.22 -4.2,1.28 -5.1,4.2 -1.39,2.28 2.74,5.98 -1.59,5.37z","name":"Belgium"},"it":{"path":"m350.4,500.36c-1.75,-1.38 -4.77,0.56 -6.21,-2.11 -0.98,-3.12 -4.25,-2.35 -6.74,-3.12 -2.11,-1.47 -4.61,-1.93 -6.58,-3.76 -2.2,-1.23 -6.25,0.31 -6.1,-3.66 0.15,-1.98 2.31,-4.17 3.5,-1.8 2.52,0.49 3.53,-4.85 5.24,-0.9 2.01,0.26 4.02,2.27 5.97,0.45 2.63,-0.1 5.81,0.01 7.46,-2.47 1.45,0.01 4.12,1.89 4.36,-0.76 1.1,1.6 3.69,-2.6 2.02,0.26 -1.4,3.25 -4.08,7.31 -3.12,10.66 1.21,0.69 0.93,2.35 2.17,3.37 -1.93,0.14 -1.88,2.41 -1.97,3.84z m7.22,-15.37c-2.78,-0.14 -2.87,-3.99 -0.28,-4.55 1.37,-2.08 -1.36,-4.79 2.17,-5.13 3.25,-2.22 -1.35,-4.63 -1.21,-7.46 -1.16,-2.63 -2.56,-4.66 -3.09,-7.45 -1.59,-2.98 -4.91,-0.29 -6.78,-2.73 -1.65,-0.84 -0.12,-5.17 -3.33,-5.63 -1.56,-0.37 -4.03,2.8 -2.57,0.22 0.06,-2.91 -3.33,-1.3 -4.25,-2.37 -0.69,-2.23 -3.26,-6.17 -5.36,-4.2 -1.73,-2.18 -4.5,1.85 -5.25,-1.44 -2.69,-0.65 -4.1,-2.62 -6.18,-4.28 -0.73,-3.32 -5.19,-3.11 -5.74,-6.57 -1.05,-1.9 -5.27,-0.02 -4.05,-2.26 -1.1,-2.38 -3.86,-3.39 -4.73,-5.46 -3.13,0.51 0.07,-2.73 -1.71,-4.47 -2.14,-2.56 -1.2,-6.42 -3.6,-8.63 -2.19,-1.12 -4.5,-0.88 -6.03,-3.28 -2.22,-0.9 -4.82,-2.51 -7.33,-1.86 -1.74,1.89 -3.46,3.3 -4.61,5.48 -1.55,2.14 -5.91,2.59 -3.27,-0.76 1.07,-4.25 -4.16,-0.46 -5.52,-3.08 -2.08,-1.9 -1.08,-4.02 0.62,-5.53 0.76,-2.12 -4.77,-3.84 -2.88,-4.68 2.55,0.23 5.53,-3.6 2.83,-5.28 -0.93,-1.94 -2.92,-4.5 0.7,-3.9 2.4,0.04 4.29,-1.2 6.65,-0.24 1.85,-1.05 2.45,-2.98 2.51,-4.87 1.03,-0.35 2.29,-2.18 1.57,0.13 -0.67,2.56 4.99,2.17 2.47,4.45 0.19,0.08 2.08,0.32 2.23,1.7 1.41,1.01 2.54,-1.65 0.98,-2.25 0.53,-2.02 3.41,-3.57 2.37,-5.9 0.68,2.09 2.82,3.69 4.41,1.42 0.81,0.91 2.52,3.75 3.07,0.97 -0.97,-1.55 1.29,-1.81 -0.84,-2.7 -0.29,-2.99 3.05,2.3 3.43,-1.02 -1.77,-2.29 0.88,-4.07 2.84,-1.92 2.41,1.34 1.9,-4.15 4.64,-2.65 2.33,0.51 5.21,-2.28 6.13,0.74 1.38,2.34 4.22,3.29 6.93,3.47 1.41,0.44 5.26,-0.07 4.99,0.93 -2.13,0.92 -2.35,3.92 0.43,3.72 -1.26,1.22 -1.47,2.53 -0.57,3.56 0.79,3.16 -4.05,-1.16 -3.93,2.42 -2.22,1.73 -5.54,2.13 -7.33,4.03 -0.52,1.97 1.06,2.99 1.39,4.46 3.61,0.71 -1.06,2.87 -0.87,4.28 0.35,2.85 0.62,6.32 3.48,7.85 2.75,2.1 5.47,4.43 8.75,5.58 2.03,1.86 2.11,4.88 3.12,7.29 0.93,3.7 3.47,6.75 6.72,8.67 2.2,2.52 5.18,4.19 8.71,3.54 1.79,0.5 5.88,-2.59 5.92,0.29 -0.8,1.53 -3.65,2.89 -1.29,4.86 4.13,2.94 10.13,1.81 13.75,5.65 1.89,1.55 5.85,0.5 6.34,3.52 1.71,1.18 6.04,2.73 4.13,5.37 0.4,1.63 -0.95,3.55 -2.34,1.36 -0.96,-2.97 -3.23,-5.68 -6.54,-4.48 -2.32,-1.32 -6.05,-2.69 -6.78,1.09 -1.28,2.2 -1.32,4.97 -2.42,7.17 0.64,2.84 4.59,1.65 5.83,3.73 1.59,0.26 0.35,2.98 1.81,3.8 -0.21,3.1 -5.83,1.6 -5.88,5 0.28,1.92 0.81,4.68 -1.72,5.06 -1.23,1.65 -1.39,4.64 -3.63,5.25z m-35.56,-71.98c1.98,1.43 0.5,-2.39 0,0z m-33.54,62.41c-0.72,-1.6 -3.1,-3.35 -3.37,-5.68 1.54,-2 1.07,-4.81 2.16,-7.03 -3.26,0.28 0.82,-2.8 -0.89,-4.55 -0.02,-1.96 -1.35,-4.24 -2.94,-4.22 0.19,-1.55 0.4,-3.39 2.06,-1.78 3.1,0.15 5.25,-2.55 7.52,-4.29 0.91,-0.84 5.63,1.48 2.53,2.55 -0.36,1.47 2.3,1.33 1.41,2.66 3.07,1.36 0.3,4.08 -0.53,6.16 1.23,2.67 0.22,5.65 0.3,8.76 -0.33,1.29 -0.37,5.73 -2.35,3.37 -1.49,-1.18 -4.61,-1.6 -3.46,1.11 -0.38,1.17 -0.94,2.88 -2.43,2.94z","name":"Italy"},"by":{"path":"m402.72,308.87c0.99,-3.18 0.27,-7 -3.79,-7.04 -0.71,-2.3 3.14,-4.07 4.34,-6.18 -0.26,-5.15 -3.83,-9.19 -5.74,-13.77 2.18,-0.83 4.01,-0.87 5.95,-0.9 0.86,-1.84 2.51,-1.83 3.98,-0.84 -1.05,-1.12 -2.37,-3.07 0.28,-3.17 1.9,0.02 -0.71,-2.58 2.17,-2.24 -1.28,2.76 4.76,1.14 2.24,-1.38 -2.85,-0.47 0.33,-3.89 -1.4,-5.76 0.96,-1.56 2.7,-3.08 2.72,-4.65 2.53,0.76 4.43,-4.49 0.94,-3.47 -1.1,-1.17 0.25,-4.78 1.91,-6.11 2.45,0.48 4.37,-0.43 4.51,-3.22 0.17,-2.25 2.08,-1.78 3.18,-1.85 2.02,-2.32 2.15,2.85 3.69,0.14 1.75,-1.51 3.73,-0.83 3.53,1.45 2.17,2.99 3.24,-2.73 5.87,-2.54 1.93,0.2 3.24,2.17 5.04,1.95 0.25,2.02 -0.47,3.85 1.8,5.15 0.82,1.65 -1.87,4.51 1.47,4.95 2.1,-0.08 0.99,1.32 1.56,1.96 1.72,2.18 3.98,3.94 6.71,3.73 0,1.84 0.71,4.69 2.92,2.85 2.09,-1.22 3.09,0.78 3.28,1.76 2.02,-0.38 3.13,1.46 1.26,2.31 -0.06,3.07 -3.04,4.09 -5.35,2.65 -3.54,0.27 -2.85,5.57 0.51,5.52 0.97,2.55 1.33,5.72 3.91,7.42 -2.66,1.35 -6.88,2 -6.85,5.76 -1.23,2.53 1.43,5.57 1.33,7.2 -1.16,-1.33 -5.51,-3.73 -5.13,-0.77 -2.24,-2.52 -3.75,4.16 -4.59,0.03 -1.77,-2.65 -4.04,1.4 -4.28,1.56 -1.22,-2.58 -2.82,1.6 -3.58,-0.67 -1.01,0.66 -2.93,1.68 -4.34,1.01 -1.39,0.16 -1.96,2.41 -2.67,0.56 -2.3,-2.34 -5.69,0.72 -8.43,-0.73 -2.87,-0.21 -5.7,0.69 -8.51,0.87 -1.69,1.51 -4.3,1.17 -5.72,2.79 -0.82,1.63 -1.2,4.18 -3.37,2.88 -0.54,-0.03 -1.11,0.27 -1.34,0.78z","name":"Belarus"},"pl":{"path":"m378.8,342.69c0.85,-2.71 -2.77,-1.44 -3.2,-3.81 -2.16,-0.74 -2.68,4.74 -4.1,1.6 -1.34,-0.42 -0.38,-2.05 -2.3,-2.3 -1.38,-1.23 -0.72,-3.2 -2.99,-2.63 -1.39,-1.14 -3.17,-0.83 -4.08,-0.27 -2.65,-1 1.12,-2.8 -1.66,-3.95 -1.04,2.08 -3.71,0.51 -5.13,-0.34 -2.56,-1.21 -1.29,2 -1.13,2.64 -1.27,1.67 -2.44,1.3 -2.92,-0.65 -1.25,-0.75 -2.67,-1.29 -0.72,-2.16 1.16,-2.1 -2.17,-2.93 -3.11,-1.63 -1.5,-2.25 -5.49,-1.16 -6.45,-4 -1.21,-1.39 -2.59,1.06 -1.9,-1.41 0.23,-2.18 -0.48,-4.58 -2.34,-5.49 -1.37,-2.65 0.61,-5.37 -0.78,-8.1 -2.17,-1.37 0.53,-5.96 -3.41,-5.97 -3.09,-2.11 2.9,-5.25 0.3,-8.13 -0.64,-1.64 -2.11,-4.93 -1.01,-5.69 2.39,-0.86 4.49,-2.6 7.02,-3.34 1.88,-0.91 4.34,-1.13 5.97,-2.18 0.73,-2.97 3.72,-4.13 6.19,-5.25 2.44,-1.51 5.22,-3.64 8.26,-2.74 0.34,2.92 2.37,6.29 5.83,5.11 2.32,-0.46 3.66,-2.87 6.19,-1.88 5.94,0.22 12.06,0.04 17.77,-1.75 2.19,-1.89 4.37,-0.56 6.59,0.69 0.91,5.68 5.67,10 6.52,15.73 -0.74,2.77 -4.55,3.76 -4.71,6.89 0.95,2.08 5.51,0.97 4.43,4.48 -0.75,3.1 1.11,5.48 1.99,8.14 0.77,2 4.89,2.48 3.07,4.57 1.18,1.35 3.03,3.77 0.15,4.64 -2.63,0.49 -3.02,4.28 -4.54,6.17 -0.82,2.29 -3.04,4.17 -2.56,6.78 1.11,1.72 -0.12,4.53 2.39,4.91 -2.96,0.2 -5.66,-0.81 -7.88,-2.64 -2.12,-1.23 -4.34,-0.31 -6.37,0.12 -1.06,0.6 -0.02,2.66 -2.03,1.15 -2.7,-1.27 -4.67,0.77 -6.02,2.87 -0.44,-0.92 -1.49,0.48 -1.34,-0.18z","name":"Poland"},"jo":{"path":"m566.3,519.26c-0.01,-4.69 -2.26,-8.97 -3.12,-13.51 1.51,-3.32 4.45,-0.15 6.76,0.1 3.02,0.33 6.94,0.22 8.51,-2.87 4.44,-5.57 8.37,-11.53 12.83,-17.08 1.86,2.51 3.76,5 5.38,7.68 -2.06,2.03 2.19,4.71 3.12,1.72 0.91,2.72 -2.48,4.53 -4.03,6.38 -4,3.47 -8.47,6.39 -12.72,9.51 -2.44,0.61 -3.15,3.3 -0.46,3.9 2.58,1.36 5.17,2.72 7.71,4.17 -7.99,0 -15.99,-0 -23.98,0z","name":"Jordan"},"gr":{"path":"m449.88,508.26c-1.41,-0.44 -0.91,-2.43 -2.98,-2.05 -2.92,-1.02 -4.66,0.87 -7.49,-0.12 -2.89,2.86 -3.34,-3.03 -1.84,-3.28 2.13,1.48 4.85,0.78 6.99,2.27 2.66,-1.89 5.67,-2.41 8.68,-1.61 1.64,-0.07 3.7,-0.37 4.57,-0.83 -1.03,2.5 2.95,2.63 3.64,0.39 1.59,-1.01 2.86,-0.15 1.23,1.36 -4.14,0.67 -8.27,1.86 -12.04,3.72l-0.39,0.1 -0.37,0.03 0,0z m-26.29,-13.55c-0.61,-2.64 -1.46,-5.84 -4.37,-6.76 -3.02,-0.62 -1.68,2.8 -1.92,4.11 -2.48,0.25 -0.03,-2.58 -2.33,-3.13 -1.56,-1.69 2.11,-3.33 -0.42,-5.29 -1.75,-1.46 -3.48,-2.23 -4.88,-3.8 -1.71,-0.32 1.67,-2.18 0.95,-3.89 1.31,0.41 3.43,-0.58 4.2,-2.4 2.31,-0.03 5.27,1.8 8.03,2.01 1.1,0.72 3.08,0.98 3.24,1.46 1.77,0.36 1.5,3.47 4.29,3.78 1.97,0.86 -3.33,1.22 -3.75,-0.39 -3.29,-1.87 -3.6,3.04 -0.88,3.97 1.42,2.4 3.54,4.49 2.98,7.25 0.93,1.21 1.93,2.16 0.11,0.68 -1.13,-1.37 -3.59,-4.36 -5,-1.33 -0.38,1.2 -0.28,2.48 -0.25,3.72z m12.62,-17.67c-0.61,-1.76 -3.37,-2.18 -4.61,-3.83 -1.54,-1.35 -1.12,2.07 -3.22,1.63 -1.32,1.11 -3.33,0.37 -1.06,-0.31 2.53,-1.38 -0.23,-3.22 -1.98,-2.17 -2.19,0.64 -2.76,-3.59 -4.29,-0.5 0.28,-1.81 -1.78,-2.98 -1.95,-0.63 -1.85,0.67 -5.66,-0.17 -7.42,2.31 -1.43,-1.51 -2.69,-1.73 -3.58,0.32 -0.06,-3.13 -3.02,-4.71 -4.64,-5.97 -0.05,-3.03 -3.45,-4.15 -5.3,-5.69 0.58,-2.13 -4.66,-2.22 -1.22,-2.7 1.45,0.13 1.31,-1.81 1.97,-2.79 -2.74,-2.59 4.57,-2.51 2.29,-5.81 0.57,-2.27 3.93,-4.04 1.77,-6.57 2.29,-1.19 5.68,-0.59 7.21,-3.12 0.92,-4.2 5.51,-0.91 7.7,-3.66 0.88,-0.81 0.03,-3.12 2.26,-2.13 2.68,-1.49 5.94,-1.98 8.75,-3.4 1.35,-1.69 4.25,-2.43 5.72,-0.71 1.88,0.93 3.48,-0.95 5.39,0.66 2.83,0.48 5.06,-1.99 7.75,-2.56 2.63,-1.48 -0.92,-3.81 -0.19,-4.93 2.53,-0.82 6.54,2.78 3.07,4.45 -2.66,1.03 1.16,6.08 -1.92,6.2 -2.59,-1.16 -5.58,1.42 -8.08,-0.62 -2.31,-0.06 -3.98,4.61 -5.94,1.87 -2.75,-0.21 -2.93,5.39 -5.82,3.29 -2.56,0.13 -2.19,2.87 -0.61,3.88 1.51,1.31 -0.02,1.67 -0.46,3.12 -2.01,-0.91 -2.94,1.12 -4.72,-0.3 -3.05,1.25 -3.01,-2.2 -1.76,-3.97 -0.09,-0.54 -2.81,1.81 -3.44,2.49 -1.02,1.92 0.18,3.87 -0.21,6.03 1.55,1.98 3.8,3.4 4.84,5.84 0.92,0.8 4.25,2.4 3.42,2.64 -2.14,-2.19 -4.85,-0.02 -3.78,2.46 1.31,0.13 3.2,1.7 0.6,2.21 -1.13,0.04 -4.23,2.36 -2.68,2.49 2.62,-1.25 4.96,1.17 7.41,0.98 0.52,2.36 2.91,0.77 3.98,2.53 2.06,0.36 4.93,0.25 3.64,2.95 0.1,1.33 1.96,3.02 1.13,4.05z m-32.41,-12.35c-2.66,1.97 2.35,4.76 3.65,1.72 0.88,-3.08 -2.48,0.37 -3.25,-1.63l-0.4,-0.09 0,0z m1.2,12.17c-2.12,0.67 -3.94,-2.49 -2.24,-3.05 -0.52,2.11 1.79,2.11 2.24,3.05z m35.21,-4.75c-1.33,-0.45 -3.15,-2.25 -0.48,-1.45 1.91,-0.84 2.27,1.01 0.48,1.45z m-3.1,-3.76c-1.98,-1.68 -5.22,0.85 -5.86,-2.11 -1.43,-1.48 -5.05,-2.2 -5.77,-2.78 2.78,-2.67 4.14,2.1 7.15,1.68 1.66,0.78 3.06,-0.62 3.9,1.22 0.4,0.59 0.43,1.32 0.58,1.99z m-10.1,-17.81c-3.53,-1.73 2.32,0.07 0,0z m3.59,-1.57c-2.32,-1.62 -0.44,-1.62 0.45,0.12l-0.11,0.22 -0.34,-0.34z","name":"Greece"},"tm":{"path":"m679.06,344.59c-1.21,-0.72 -0.78,-2.05 -2.51,-2.48 -0.91,-2.53 -0.44,-5.74 -2.11,-7.9 1.43,2.3 3.65,0.44 4.81,-0.09 -0.04,3.47 0.02,6.95 -0.03,10.42l-0.16,0.04z m-9.11,-14.43c-1.83,0.29 -2,-1.85 -2.97,-2.07 -2.67,-0.77 0.57,-4.63 0.48,-6.52 1.65,-3.13 3.89,-6.16 6.88,-8.09 1.36,-0.18 5.09,-1.73 4.9,0.43 0,2.65 0,5.3 0,7.95 -2.35,-1.52 -3.83,-5.43 -6.79,-5.11 -2.41,2.22 -6.24,4.38 -5.17,8.26 -0.05,1.27 0.71,3.09 1.95,2.4 0.34,0.89 0.41,1.85 0.72,2.75z m9.29,-40.46c-2.98,-4.77 -6.29,-9.32 -9.41,-14 0.44,-3.11 3.69,-4.89 4.74,-7.82 1.56,-2.45 3.21,-4.85 4.68,-7.37 0,9.73 0,19.46 0,29.19z","name":"Turkmenistan"},"kz":{"path":"m665.18,326.25c-2.97,-1.86 -1.2,-5.67 -2.65,-8.21 0.53,-3.17 -3.51,-2.8 -4.88,-0.83 -1.79,-1.67 -2.48,2.95 -4.91,0.84 -1.43,-2.21 -3.22,-0.68 -4.76,0.52 -0.4,-3.09 -3.28,-5.18 -6.16,-5.75 -2.02,-1.36 -4.24,-5.19 -6.86,-2.37 -2.9,1.87 -4.15,-4.1 -0.51,-3.35 1.06,-1.32 1.8,-1.79 3.42,-0.84 1.53,-0.78 2.76,-2.24 4.06,-3.11 -1.44,-2.18 -5.78,0.43 -7.07,-2.22 0.12,-1.34 3.47,-2.2 0.83,-3.45 -1.26,-2.14 2.16,-2.43 1.45,-4.52 2.51,-0.62 4.01,-2.7 6.42,-3.67 1.55,-0.68 5.82,-1.56 4.27,-3.73 -2.44,0.42 -5.53,1.2 -4.64,-2.51 0.27,-3.12 -0.67,-6.7 -3.34,-8.56 -1.46,-0.11 0.78,-3.59 -1.86,-3.15 -1.5,-2.77 -4.84,0.02 -6.51,0.7 0.1,2.2 -0.93,4.69 -3.45,3.61 -2.4,0.56 -6.57,-0.38 -7.49,3.29 -0,2.58 -2.65,3.31 -2.68,6 -1.27,1.57 -1.07,5.37 -3.43,5.36 -2.12,-0.08 -2.2,2.62 -2.46,3.63 -1.26,0.74 -5.86,0.39 -4.64,-0.82 3.5,0.56 3.47,-4.4 0.06,-4.32 -3.14,-1.51 -5.73,-4.02 -8.93,-5.36 -2.47,-0.32 -4.25,2.11 -6.54,2.07 -0.12,1.28 0.37,2.59 -1.35,1.17 -1.8,-0.93 0.01,-2.79 -2.21,-3.3 0,-2.52 -4.2,-0.23 -5.74,-0.66 -0.96,-2.72 -0.8,-5.85 -0.41,-8.82 0.73,-3.23 -4.34,-1.07 -3.74,-4.61 -1.48,-2.21 -1.17,-5.16 0.32,-7.28 -2.58,-1.5 -1.53,-6.73 1.82,-4.04 2.29,0.54 4.78,3.98 7.13,1.98 1.97,-1.65 2.09,-5.06 -0.41,-5.79 -0.5,-2.08 -4.31,-2.93 -1.9,-4.7 0.1,-1.7 1.79,-4.1 2.05,-4.93 -2.7,-0.86 -1.25,-3.39 0.39,-3.59 0.3,-2.73 3.83,-4.97 2.24,-7.88 -1.16,-1.26 2.12,-0.49 0.87,-2.37 -0.73,-0.82 1.71,-0.82 1.99,-1.86 2.14,-0.45 -1.05,2.08 1.69,2.02 1.48,-0.55 1.41,-1.96 2.93,-1.7 0.29,-1.63 -1.06,-3.26 1.01,-4 0.5,-1.63 0.88,-2.2 1.87,-0.46 3.2,2.4 4.8,-3.1 7.46,-3.43 1.62,1.55 3.73,2.04 5.43,0.37 1.27,1.42 3.01,1.43 4.62,1.61 -0.26,2.56 4.05,4.44 3.68,0.87 -0.11,-2.04 -2.23,-3.06 -3.52,-3.49 2.49,-1.89 5.28,1.44 8.06,-0.13 2.65,1.71 2.89,-3.09 2.88,-4.82 -0.94,-1.46 1.32,-2.87 0.36,-4.29 1.64,0.4 1.75,-1.1 1.34,-1.85 1.08,-2.25 2.79,-1.39 4.44,-0.52 1,-0.8 1.78,-2.46 2.98,-2.01 -1.89,-1.21 -2.16,-3.64 0.61,-3.9 -0.26,-1.23 0.14,-1.29 1.28,-1.45 1.06,-0.94 2.07,2.58 4.01,1.26 1.98,1.74 4.96,-3.12 5.37,-1.36 0.29,1.89 3.37,-0.99 2.39,-2.55 -0.11,-1.94 -1.41,-4.21 1.46,-3.17 2.91,-0.36 4.26,-3.79 5.34,-6.17 1.47,-2.93 -2.47,-4.1 -2.09,-6.64 -1.36,-2.25 -4.48,-0.11 -5.91,0.2 -2.22,-2.09 -4.58,3.81 -4.91,0.16 -1.29,-0.68 -2.71,2.23 -3.65,0.73 1.29,-1.47 1.19,-4.25 2.39,-6.18 1.51,-3.13 -2.02,-3.28 -3.58,-4.22 -3.1,0.97 0.81,-3.99 -1.61,-4.03 1.01,-2.42 4.84,-2.6 5.47,-5.2 -0.01,-2.9 -4.66,-1.68 -5.74,0.02 -1.13,1.71 -4.5,-0.24 -1.75,-0.92 2.16,-2.49 -2.77,-3.66 -2.05,-1.2 -2.33,3.55 -0.85,-4.14 -3.83,-1.64 1.26,-0.48 -0.31,-3.76 1.92,-2.68 1.3,1.04 0.21,-2.26 2.14,-1.3 2.74,-0.21 -1.15,-2.68 1.49,-3.26 1.26,2.1 3.9,-0.29 1.53,-1.19 0.54,-2.35 2.7,-4.74 3.28,-7.51 1.48,-0.31 3.12,-1.58 1.37,-2.69 1.12,-2.77 3.18,-4.87 5.44,-6.15 -0.1,-1.8 -3.04,-1.6 -1.06,-3.51 0.73,-2.38 2.55,-3.81 3.48,-6.49 2.08,-2.53 2.36,-5.49 3.47,-8.34 0.29,-1.69 3.72,-3.96 0.35,-4.97 -1.01,-0.43 2.31,-2.04 0.29,-3.41 -1.75,-1.68 3.22,-0.78 0.65,-2.37 -1.73,-0.49 3.06,-0.82 1.8,-2.5 2.25,-1.54 6.79,-0.26 5.35,-4.64 -0.2,-2.91 3.08,-0.72 4.32,0.28 1.69,1.75 4.12,-0.2 4.78,2.52 1.5,0.9 1.01,3.62 3.74,3.35 2.67,0.01 -0.81,-3.38 2.11,-2.14 1.93,-0.51 -0.97,-4.41 1.41,-3.27 0,52.65 0,105.3 0,157.95 -2.28,4.16 -5.07,8.03 -7.49,12.09 -2.11,1.94 -4.29,5.26 -1.49,7.58 3.01,4.53 6.37,8.91 8.98,13.65 0.02,6.62 -0.04,13.29 0.04,19.87 -3.05,0.34 -6.58,0.54 -8.5,3.49 -2.48,2.8 -4.81,5.91 -5.35,9.73 -0.09,0.46 -0.18,0.92 -0.25,1.38z","name":"Kazakhstan"},"fi":{"path":"m382.62,208.07c0.7,-3.07 -2.78,1.32 -3.86,-1.32 0.05,-0.96 1.56,-3.75 -0.71,-2.21 -1.13,1.69 -1.33,-1.45 -2.92,-0.68 -0.94,0.89 -2.97,-0.9 -3.55,-0.42 -0.14,-2.36 -1.97,-0.15 -2.25,-0.03 -0.63,-1.67 -0.91,-3.6 -2.08,-5.17 1.86,-0.74 1.72,-4.06 0.26,-5.25 -0.34,-1.47 3.17,-0.38 1.07,-2.02 -1.2,-2.15 -2.78,-4.06 -3.52,-6.25 0.62,-2.08 -0.63,-3.97 -1.49,-4.42 0.49,-1.2 -0.5,-2.29 -0.95,-2.29 0.13,-1.71 3.82,-4.59 2.52,-5.52 -3.07,-0.18 0.32,-3.17 1.17,-0.45 1.02,-1.23 3.05,-2.66 2.12,-4.84 0.01,-1.7 0.15,-2.94 1.36,-1.21 0.12,-2.42 1.26,-4.91 3.64,-5.85 -0.72,-2.45 1.54,-4.8 2.24,-7.01 -0.27,-2.84 0.9,-5.24 3.71,-6.24 1.6,-1.13 1.77,-3.36 -0.51,-2.84 -0.44,-2.27 -0.12,-5.32 -2.74,-6.02 -2.3,1.99 -2.43,-3.68 -4.97,-1.88 -1.75,-2.03 -4.37,-4.52 -3.48,-7.48 1.52,-3.03 -0.83,-5.16 -2.34,-7.18 -0.2,-1.46 0.87,-4.46 -1.6,-3.74 -0.01,-2.39 -0.15,-4.83 -1.27,-7.01 -2.48,-1.84 -4.57,-4.14 -8.05,-4.18 -1.93,-1.7 -6.43,-2.88 -5.46,-6.12 -0.41,-2.16 1.14,-3.53 2.73,-1.48 2.59,1.31 1.85,6.17 5.39,5.44 2.27,0.35 4.34,-0.45 4.98,-2.51 2.4,-0.26 6.27,3.96 5.78,-0.87 -0.39,-2.02 3.32,-1.43 1.97,-3.98 -1.32,-3.02 -2.11,-7.03 -0.35,-9.99 -0.31,-2.74 4.21,-0.11 4.22,-3.35 1.47,-1.91 3.36,2.08 5.49,1.78 2.95,0.9 3.14,3.84 1.7,6.03 1.41,1.64 0.21,2.38 -0.46,3.84 1.14,0.8 2.75,1.02 1.72,2.87 -0.47,3.13 2.02,6.77 5.45,6.28 1.67,2.35 6.13,3.59 3.92,7.14 -0.75,2.27 -1.97,4.85 -0.96,7.21 3.59,3.29 6.5,7.25 9.05,11.36 0.06,1.49 -2.83,0.38 -0.84,2.06 -0.22,2.17 0.21,4.77 1.29,6.07 -1.26,3.74 5.08,3.34 3.58,6.82 0.48,3.1 6.13,1.5 4.41,5.52 -0.25,1.99 -2.95,4.48 0.53,5.03 2.93,1.69 6.43,2.67 8.87,5.07 1.06,2.48 -0.3,5.24 -0.57,7.75 -2.26,6.49 -4.21,13.14 -7.27,19.3 -1.55,2.69 -3.59,5.26 -4.3,8.32 -1.76,0.21 -3.5,-1.24 -4.38,1.19 1.52,0.77 -3.01,1.75 -1.49,-0.16 -0.76,-2.31 -1.99,0.16 -1.56,1.47 -1.82,-2.09 -4.5,1.44 -1.45,2.01 0.62,2.53 -3.67,-2.15 -3.14,-0.28 0.89,2.06 -2.52,3.25 -2.85,3.52 -2.72,0.33 -4.14,2.39 -6.64,3.79l-0.57,0.27 -0.58,0.1 0,0z","name":"Finland"},"de":{"path":"m302.45,372.15c0.39,-0.91 1.99,-2.77 0.16,-1.49 -1.57,0.93 -2.11,-2.91 -4.19,-2.08 -2.04,1.85 -3.44,-2.27 -6.01,-1.15 -2.15,0.46 -2.02,-2.87 -4.5,-1.23 -1.72,0.52 0.38,3.76 -1.44,1.73 -1.84,0.2 -4.84,0.84 -5.69,-0.07 -0.64,-1 1.16,-4.13 0.65,-5.99 1.9,-2.36 0.91,-6.25 3.86,-7.87 2.56,-1.63 0.59,-4.12 -1.86,-3.67 -2.56,0.2 -2.84,-3.15 -5.48,-1.32 -1.23,0.08 -2.11,-2.54 -3.28,-1.12 -0.17,-2.33 -4.09,-3.23 -1.38,-5.35 1.81,-3.01 -5.32,-3.18 -1.88,-6.63 1.67,-1.33 2.21,-2.89 0.22,-4.22 1.95,-2 -1.2,-0.75 -1.34,-2.77 1.01,-1.22 0.18,-2.51 -0.16,-3.21 1.78,-1.86 2.88,-5.05 1.22,-7.64 -2.19,-2.06 0.71,-2.52 2.29,-1.67 2.39,0.34 3.33,-2.08 3.64,-3.33 2.38,-1.19 2.15,-5.11 -0.59,-5.64 -0.03,-1.55 3.42,0.08 2.83,-2.66 0.31,-2.54 1.52,-4.9 2.38,-7.37 -0.34,-0.18 -3.53,0.96 -2.22,-1.41 0.9,-2.9 4.25,-1.28 6.2,-2.15 0.16,2.03 2.57,6.54 4.4,3.34 0.14,-1.85 -1,-6.59 2.18,-4.76 1.27,0.28 4.88,-0.75 2.09,-1.66 -3.15,0.44 1.18,-4.81 -1.98,-5.31 4.2,-1.72 -2.92,-4.5 -0.43,-6.3 2.37,1.37 6.56,0.38 7.64,2.55 -0.45,0.53 1.55,0.68 -0.04,1.71 -1.46,1.22 0.47,2.21 1.51,1.23 -1.09,2.31 1.04,2.07 1.81,0.68 1.67,1.18 3.81,1.56 5.14,0.49 0.21,1.77 -4.56,3.93 -2.04,5 1.38,0.2 3.65,-1.17 3.27,1.31 2.66,-0.01 2.46,-4.21 4.91,-4.12 1.43,1.57 3,-1.39 3.56,-2.49 0.61,-2.1 3.54,-0.7 4.16,-0.17 0.88,1.8 2.57,3.83 4.93,3.32 -0.95,4 4.51,3.57 4.6,6.93 3.14,3.28 -3.49,6.24 0.16,9.19 2.04,0.76 2.91,2.01 2.23,4.17 0.93,1.99 2.9,4.81 0.48,6.79 1.68,1.23 1.03,4.11 3.18,4.83 0.68,1.92 0.82,5.65 -0.66,6.5 -0.87,-1.78 -4.46,-3.53 -3.95,-0.41 1.16,0.88 -2.8,1.08 -3.3,2.22 -2.5,0.18 -3.71,2.69 -5.8,3.41 -0.73,-0.12 -0.57,1.65 -2.06,0.72 -2.78,-0.99 -2.28,4.11 -4.17,1.96 -3.51,0.44 1.56,4.5 2.19,5.46 -2.26,2.79 1.42,6 3.88,7.15 1.53,1.88 3.04,3.44 5.43,4.44 2.44,1.22 2.24,4.86 -1.02,3.8 -0.57,1.52 -0.37,3.53 -2.79,3.73 -3.29,0.46 -2.9,3.65 -1.01,5.5 0.76,1.93 -3,3.3 -3.36,1.75 -0.45,-0 -3.6,-1.29 -2.93,0.98 -3.48,-0.65 -5.56,1.87 -8.47,2.95 -1.59,-0.45 -2.06,-3.03 -4.27,-1.95 -2.85,-1.05 -0.37,3.13 -2.89,3.37z m-6.7,-79.27c-0.21,2.06 4.44,6.44 3.78,2.2 -1.59,0.14 -2.26,-2.95 -3.66,-2.25L295.75,292.88z m29,76.43c-1.59,-1.17 -0.3,-3.24 0.69,-1.13 -0.04,0.43 -0.23,0.99 -0.69,1.13z m-0.01,-83.07c-2.42,-0.16 -2.07,-4.22 0.32,-2.83 -1.17,-1.29 -0.5,-0.74 0.89,-0.58 -1.82,1.06 2.32,2.92 -0.86,3.34l-0.35,0.07 0,0z","name":"Germany"},"se":{"path":"m323.06,272.38c-2.85,0.68 -1.5,-2.92 -0.88,-3.47 -1.34,-1.73 -2.37,-3.77 -4.04,-5.01 0.79,-1.22 -1.53,-2.8 1.01,-1.48 2.77,0.18 -2.19,-2.84 0.98,-2.65 2.38,-2.15 -2.21,-3.59 -2.38,-5.5 -2.18,-0.93 -1.38,-4.24 -3.57,-5.03 -0.5,-2.35 -1.05,-4.69 -2.37,-6.57 0.36,-2.06 3.34,-6.36 -0.08,-6.96 -1.38,2.23 -3.39,1.39 -2.89,-1.18 0.66,-1.66 -0.9,-5.32 -0.3,-5.55 1.22,1.95 2.5,1.63 3.29,-0.5 0.91,-2.52 -0.9,-5.03 -0.38,-7.57 2.08,-1.14 -0.02,-3.96 3.05,-4 2.39,-1.51 1.37,-4.54 1.71,-6.85 0.8,-2.58 -4.53,-6.31 0,-6.91 1.04,-0.81 1.22,-3.31 1.37,-4.79 -1.12,-2.38 -6.01,-2.81 -4.1,-6.25 1.84,-3.74 -1.45,-6.92 -1.02,-10.47 0.52,-2.44 0.53,-5.73 -0.14,-7.32 0.64,-2.96 1.19,-6.43 4.34,-7.91 2.35,-0.49 6.23,1.31 6.51,-2.71 0.96,-3.43 -4.73,-4.28 -1.85,-7.71 0.9,-2.93 3.32,-5.66 2.42,-8.87 0.15,-1.92 0.67,-3.87 -0.11,-5.73 -1.01,-2.32 3.73,-0.74 3.99,-3.33 -0.13,-2.25 -0.54,-4.21 1.52,-5.81 2.69,-2.56 2.7,-6.48 0.46,-8.94 2.93,-1.39 1.66,-4.89 3.52,-7.09 1.35,-0.88 5.1,1.96 4.84,-1.65 -0.51,-1.95 -1.78,-6.23 1.75,-4.92 2.24,0.45 5.5,2.66 7.12,-0.07 1.29,-1.53 -2.75,-1.44 -0.66,-3.53 0.95,-1.42 0.76,-3.57 -0.83,-4.28 3.02,-0.52 2.64,2.5 5.35,3.5 2.17,2.8 6.24,2.01 8.45,4.17 1.81,1.26 3.78,2.76 3.22,5.22 1.03,1.27 -0.68,4.42 1.98,4.24 -0.85,2.83 1.11,4.63 2.62,6.51 0.04,2.86 -1.49,6.25 1.05,8.57 1.6,1.29 3.31,4.27 -0.1,3.45 -1.76,0.14 -2.91,-0.92 -2.17,1.42 -0.95,1.6 -5.22,-2.83 -4.14,0.58 0.84,1.65 -2.05,2.45 -1.57,1.13 -2.06,-0.65 -0.53,1.54 0.66,1.49 -0.6,0.2 -1.52,0.57 -0.3,1.82 -1.49,0.26 -4.7,1.58 -1.68,2.64 2.32,2.25 -3.2,4.64 -1.02,7.19 1.54,0.9 4.4,2.82 1.64,4.33 -1.68,2.21 -0.66,5.89 -3.12,7.17 -0.94,1.59 -3.16,2.96 -4.81,3.45 -0.21,1.34 -1.22,2.8 -1.35,4.54 -1.77,-1.72 -2.61,0.56 -2.76,1.85 -1.12,0.81 -2.56,2.13 0.01,2.01 -0.44,1.31 -4.33,0.73 -2.47,3.43 -0.06,0.73 -0.49,2.94 -1.88,1.95 -2.76,-0.24 -2.07,3.37 0.06,3.69 -0.77,1.95 -1.46,4.89 0.24,6.81 -3.74,-1.85 -2.36,2.41 -0.94,3.91 0.18,1.27 -3.07,0.5 -0.73,1.44 0.84,1.85 1.12,4.66 1.43,6.67 -0.32,2.79 5.02,-0.22 4.86,2.53 0.7,1.96 4.04,1.71 4.48,1.82 -3.19,-0.43 -0.28,3.53 1.17,3.32 1.13,1.08 3.55,2.93 0.69,3.17 -0.96,1.32 -2.08,3.54 -3.42,3.71 1.54,1.27 -2.79,1.25 -1.63,-0.68 0.49,-2.21 -4.13,-4.8 -3.64,-1.69 1.43,0.51 0.2,2.21 2.13,2.69 -1.79,0.21 -3.94,-2.79 -5.52,-0.41 -0.59,-1.15 -2.36,-1.3 -1.99,0.35 -2.53,-0.76 -3.68,2.49 -1.03,1.96 1.95,-0.49 4.14,0.17 6.05,0.67 -0.71,2.97 4.28,-1.28 2.88,1.93 -0.14,2.13 -0.95,4.88 -3.12,4.77 0.18,1.44 -0.14,1.56 -2.15,1.24 -1.48,-0.93 -5.69,1.16 -2.24,1.59 0.93,-0.93 4.88,0.08 2.51,0.95 -1.3,-0.74 -2.65,-1.15 -1.6,0.7 1.1,0.49 3.58,1.85 1.37,2.42 -0.48,1.93 2.49,4.34 -0.83,3.78 -1.22,1.55 3.46,2.55 0.79,3.59 -0.59,1.57 1.8,1.83 -0.1,3.07 -0.36,1.71 1.22,3.68 -0.24,4.3 0.8,1.29 0.72,4.62 -0.49,4.51 -0.92,1.99 -0.01,8.09 -3.9,5.74 -0.75,-0.04 -1.2,1.04 -1.28,-0.03 -1.81,1.13 -4.91,0.3 -5.24,2.54 -3.47,0.86 -2.77,5.15 -1.48,7.22 -1.25,2.12 -3.78,-0.71 -5.21,1.44 -0.58,0.2 -1.19,0.28 -1.8,0.28z m21.76,-13.69c-0.6,-1.64 -0.03,-5.51 0.58,-5.62 -0.47,1.84 -0.07,3.79 -0.58,5.62z m11.16,-10.28c-1.47,-2.04 -0.57,-3.97 -1.15,-6.17 0.13,-1.54 3.5,-5.82 3.93,-3.32 -1.59,1.67 -1.23,4.3 -0.42,5.29 -0.56,1.58 -2.33,2.58 -2.36,4.21z m-6.04,-22.62c-0.58,-0.9 -1.01,-2.64 0.37,-3.19 0.51,-2.57 3.62,1.5 0.73,1.06 -0.71,0.44 -0.93,1.57 -1.1,2.14z m3.41,-4.74c-1.71,-0.56 1.15,-0.98 0,0z","name":"Sweden"},"no":{"path":"m283.92,239.69c-2.05,0.82 -1.04,-2.38 -3.04,-0.45 -2.25,0.63 -2.45,-1.19 -0.48,-1.71 1.16,-1.98 -1.94,-1.69 -2.54,-0.89 -1.88,-1.69 -4.73,-3.13 -5.46,-5.54 0.16,-1.17 0.04,-2.84 1.26,-1.53 2.45,-0.31 0.5,-3.28 2.63,-3.15 -0.92,-1.74 3.6,-1.24 2.16,-3.19 -1.49,-0.01 -3.77,0.75 -1.5,-1.08 1.07,-1.87 -4.03,-2.48 -3.95,0.31 -0.43,1.99 -1.31,-1.27 0.03,-1.59 -0.59,-1.71 3.37,0.46 2.3,-1.73 2.11,-0.09 3.7,-3.31 0.62,-1.92 -2.12,1.06 -0.9,-1.62 0.69,-0.69 -1.77,-1.8 3.78,-2.21 0.57,-3.6 -0.56,-4.05 -3.61,3.53 -2.9,-0.4 -0.09,-1.07 2.45,-2.14 0.56,-2.38 1.23,-1.75 0.14,-1.45 -1.12,-1.67 -0.48,-2.03 3.39,-0.54 1.29,-2.62 -1.57,-0.11 -2.3,1.01 -2.92,1.83 0.23,-1.47 -0.96,-1.1 0.71,-1.97 1.17,-0.81 3,-0.92 0.68,-1.9 -1.68,1.41 -3.48,-0.55 -1.63,-1.27 2.35,2.15 4.25,-2.5 6.35,0.43 1.83,1.86 1.2,0.18 2.05,-1.15 2.54,-0.3 -0.18,4.44 3.17,3.6 2.08,-1.21 -0.36,-4.05 -1.72,-4.82 -1.87,-1.19 -2.86,1.17 -4.77,-0.24 -1.71,-0.32 -5.74,2.24 -5.21,-1.12 1.24,-0.84 -1.48,-1.91 1.02,-1.63 0.93,-0.21 -1.41,2 0.86,1.55 1.15,0.42 4.11,-2.74 2.32,-2.56 -1.17,0.24 -3.58,0.07 -2.04,-0.78 0.01,-1.15 -2.86,-0.72 -1.37,-2.6 1.92,-1.21 1.67,-2.06 2.44,-3.76 1.13,0.7 1.55,1.95 2.59,0.89 1.71,1.83 3.67,-1.21 0.78,-1.26 -1.72,-1.7 2.02,-2.98 1.47,-0.81 -0.08,1.94 2.1,2.28 1.49,0.15 -1.54,-0.73 -0.39,-3.26 1.26,-2.04 -0.9,2.54 1.99,2.46 3.2,1.29 -0.57,-1.07 -3.07,-0.84 -2.76,-2.61 -1.93,-0.78 -0.88,-1.18 0.63,-1.75 -0.31,2.53 1.54,0.84 1.46,0.89 0.76,2.66 4.97,0.16 2.35,-0.64 -1.68,1.13 0.97,-2.47 -1.62,-1.35 -1.33,0.1 -1.92,0.19 -0.62,-0.55 0.77,-1.45 -3.3,-3.11 -0.25,-2.56 1.36,2.34 4.5,0.23 4.77,-0.42 0.76,1.21 1.99,4.78 3.9,2.5 -0.19,-1.38 -1.61,-1.13 -0.15,-1.91 -0.52,-0.88 -3.96,-0.82 -1.31,-0.98 2.56,1.07 3.94,-2.68 1.6,-3.22 -2.38,3 -0.29,-2.57 1.23,-0.79 -1.13,2.54 3.47,1.05 2.52,-0.37 0.79,-1.1 1.41,-2.4 1.63,-0.68 1.42,0.16 -1.15,3.34 1.22,2.27 1.23,1.9 3.05,-0.32 1.25,-1.45 2.02,0.81 5.84,0.23 4.08,-2.68 2.55,-0.11 3.44,-2.71 1.89,-3.48 2.7,-0.44 1.04,-4.25 -0.61,-2.47 -0.94,0.99 -4.98,3.53 -3.32,4.59 1.36,-0.14 -3.55,4.36 -3.84,1.11 1.8,-0.4 1.59,-2.97 -0.14,-1.47 -1.54,1.59 -1.58,-0.15 0.05,-0.55 1.29,-0.12 3.11,-2.23 0.74,-1.96 0.49,-1.84 0.69,-1.57 2.55,-2.66 -0.01,-1.8 3.87,-1.75 1.44,-3.46 1.6,-3.11 2.62,3.25 4.94,0.36 -0.07,-0.91 1.83,-2.92 -0.44,-2.32 -1.97,0.37 0.51,-3.35 0.91,-3.77 2.46,-0.4 5.23,-2.14 6.04,-4.52 -0.69,-1.41 -1.97,0.46 -0.84,-1.25 0.83,-2.9 -4.58,-0.06 -1.84,-2.23 2.88,-0.42 -1.2,-4.08 2.2,-4.17 1.93,2.26 1.6,-1.88 -0.02,-2.41 1.79,-0.55 2.5,-1.55 4.25,-0.42 0.51,-2.76 -3.45,-2.33 -4.43,-3.58 -0.26,-3.01 2.59,-3.12 4.58,-3.67 0.29,-0.78 -0.81,-3.13 0.47,-2.48 2.46,0.65 2.45,-2.36 2.11,-3.23 1.27,-0.62 3.06,1.08 2.81,-1.49 0.06,-2.75 -4.88,2.23 -2.7,-0.53 -0.33,-1.84 3.17,-2.65 3.79,-1 0.44,2.38 2.69,0.96 0.74,-0.53 -0.37,-0.19 2.89,-3.12 0.16,-2.12 -1.52,1.62 -2.69,-1.67 -0.67,-0.49 2.18,0.6 1.78,-2.26 0.1,-2.63 1.64,-0.99 1.76,-1.25 3.09,0.31 2.65,0.05 -0.04,3.53 -1.13,3.83 -0.13,2.43 3.49,4.78 1.03,6.94 -1.52,2.38 -4.26,5.02 -2.96,8.1 -1.03,2.23 -5.62,0.34 -3.97,3.87 1.08,2.24 -0.41,4.62 0.29,6.91 -0.21,2.4 -1.5,4.65 -2.48,6.84 -1.89,2.33 -0.64,4.78 1.42,6.24 1.36,2.71 -1.06,4.75 -3.56,3.4 -3.47,0.13 -6.05,3.54 -6.55,6.75 -0.09,2.61 -2.39,4.76 -0.87,7.58 1.7,0.33 -0.26,3.51 0.65,5.09 0.93,2.11 2.11,4.27 1.04,6.66 -1.85,3.6 1.33,5.61 3.87,7.28 0.34,1.26 -0.49,2.52 -0.69,3.78 -4.37,0.5 -1.64,4.45 -0.68,6.73 -0.19,2.39 0.87,5.69 -1.37,7.29 -2.33,-0.08 -2.37,2.05 -2.44,3.42 -2.81,2.64 1.45,6.5 -0.89,9.33 -0.63,-0.51 -0.86,-4.28 -3.41,-3.07 -1.98,0.66 -1.1,-2.02 -2.18,-2.85 0.06,-1.66 0.25,-4.8 -1.34,-6.05 -1.51,0.96 0.6,3.37 -1.47,1.82 -1.6,1.08 1.29,3.05 0.43,4.75 1.82,1.57 -1.36,1.57 -0.61,3.28 -0.57,0.33 -1.78,3.28 -2.33,0.68 -1.69,-2.25 -3.03,0.06 -1.93,1.1 -2.37,0.2 -1.22,2.58 -3.27,2.72 0.26,1.74 0.63,2.15 -0.66,0.4 -0.55,-0.29 -0.31,3.24 -1.72,3.89 -1.13,1.13 -2.53,1.14 -2.96,2.81 -1.25,-1.4 -1.53,-2.14 -2.1,0.08 -0.58,1.07 -1.97,0.9 -2.97,1.19z m1.79,-42.62c-2.02,0.59 -1.81,3.69 -1.92,5.35 2.29,1.58 5.16,-1.56 2.82,-2.47 -2.51,1.62 -0.41,-2.26 1.2,-2.22 -0.69,-0.24 -1.35,-0.63 -2.1,-0.66z m-8.26,-3.48c1.26,1.05 1.96,-0.59 3.75,0.18 2.86,-0.7 0.32,-3.31 -1.23,-1.63 -0.54,1.11 -4.66,-2.16 -3.53,0.83 -0.64,0.74 0.98,1.54 1.01,0.63z m-1.56,-1.31c1.64,-1.54 -2.29,-0.9 0,0l0,0z m-3.39,20.54c-1.15,-1.48 -0.79,-2.31 1.27,-2.09 -0.5,0.65 -0.76,1.45 -1.27,2.09z m20.58,-43.12c1.89,-0.99 1.05,0.09 0,0z m18.74,-19.12c-0.11,-1.35 1.21,-2.72 0.71,-0.65l-0.24,0.29 -0.47,0.36 0,0z m7.46,-19.18c-1.61,-0.55 0.1,-1.14 0,0l0,0z m3.95,-10.61c-1.42,-0.85 2.16,-3.22 0.98,-0.56 -0.23,0.31 -0.59,0.56 -0.98,0.56z m8.03,-3.21c-0.35,-1.4 -4.22,-5.53 -0.69,-3.55 1.98,-0.66 -2.87,-2.41 0.24,-2.21 2.34,-1.07 1.29,3.96 3.81,2.24 0.12,-1.58 -1.95,-2.83 0.76,-2.09 1.98,-2.01 2.51,5.82 -0.36,3.01 -2.2,-1.1 -3.01,1.06 -3.76,2.6z m-5.57,-1.57c-2.14,-0.36 2.05,-0.11 0,0z m-7.93,-1.09c-0.6,-2.04 2.47,-0.64 0,0z m7.12,-4.13c0.59,-2.37 4.58,-1.01 4.01,-4.46 0.66,-1.69 0.95,3.05 2.77,1.99 1.53,1.25 -2.5,3.06 -1.7,0.6 -1.05,-1.01 -2.27,1.66 -3.77,0.7 -0.56,0.22 -0.96,0.7 -1.3,1.17z m7.58,-0.78c-1.19,-2.28 3.86,-0.43 2.34,-2.88 -3.7,-0.04 1.43,-1.56 0.6,-2.56 -2.52,-1.2 0.41,-2.37 1.15,-2.81 0.41,-3.22 -2.85,-1.84 -4.06,-0.47 -1.59,-2.04 2.26,-2.36 2.32,-4.57 0.14,1.33 0.46,2.85 1.65,2.42 0.8,1.52 3.32,1.84 3.24,-0.37 1.68,1.68 2.77,1.67 2.31,-0.48 0.79,-1.17 0.35,-2.79 1.61,-3.02 -0.4,-0.66 -1.42,-3.92 0.2,-3.31 0.95,2.39 -0.14,5.28 -0.89,7.26 2.94,1.88 1.55,-3.57 4.12,-3.05 0.22,-1.76 -3.3,-2.79 -1.17,-4.59 1.11,2.64 2.9,-1.39 2.9,-1.08 0.95,0.44 4.33,3.19 2.86,0.58 0.52,-1.54 -0.4,-5.86 -2.92,-3.36 -3.05,-0.22 1.04,-4.05 2.23,-1.43 1.8,-0.47 3.36,-0.55 3.65,1.78 1.6,2.82 3.68,-1.17 2.1,-1.52 0.07,-0.51 -0.69,-2.47 -0.41,-3.71 -0.86,-0.45 -2.21,1.67 -1.86,-0.59 0.28,-1.23 2.77,-3.11 1.94,-0.75 0.94,1.47 4.41,-0.15 2,-1.03 0.6,-1.49 3.48,0.04 1.97,-2.16 -0.79,-0.71 -2.04,-3.95 0.25,-3.13 1.93,-0.42 3.84,0.45 2.02,2.21 -1.75,1.98 -0.56,3.61 -0.42,5.65 -2.28,2.68 3.1,3.87 2.24,0.45 -0.18,-2.74 0.93,-5.32 1.76,-8.05 1.89,-3.05 -1.06,3.6 0.33,2.81 1.3,-1.62 0.64,3.35 2.9,1.4 2.12,-1.22 -1.68,-4.46 1.77,-4.91 0.72,-1.47 -2.34,-1.18 -0.57,-2.18 -0.51,-2.17 4.79,-1.62 2.39,1.11 -1.65,1.09 -1.95,4.14 -0.56,3.08 -0.4,2.24 2.84,0.85 3.62,0.4 -0.89,-1.13 -1.79,-4.79 0.32,-4.87 0.09,2.52 4.6,3.29 3.84,0.25 1.3,0.25 1.81,0.78 0.68,1.44 0.12,2.4 2.78,-0.68 3.9,1.46 2.08,1.26 -1.72,0.74 -1.03,2.68 -0.51,3.31 -7.08,0.08 -6.25,3.51 1.53,-0.19 4.57,0.06 4.67,1.27 -0.73,2.54 2.28,1.63 2.62,2.01 1.41,2.24 -3.5,3.67 -1.9,6.17 0.12,3.04 -1.51,0.49 -0.35,-1.03 0.73,-2.35 -0.61,-5.22 -3.22,-5.51 -2.52,-0.23 -4.95,-4.8 -6.83,-0.86 -0.98,2.59 -3.07,-0.98 -3.73,2.03 -1.82,2.85 -1.43,6.39 -0.81,9.47 1.12,1.85 1.17,3.38 -0.82,4.1 -0.7,1.31 0.29,4.41 -1.67,2.5 -2.14,-1.69 -5.02,-0.86 -5.85,1.4 -2.54,0.85 -4.72,0.04 -5.34,-2.66 -0.99,-2.14 -5.91,-6.2 -6.14,-1.61 0.57,2.13 -0.39,0.96 -1.13,1.23 -0.7,0.99 -4.96,0.92 -2.14,2.3 2.85,1.94 -1.88,4.5 0.34,5.92 1.59,3.24 -4.12,0.39 -5.68,0.21 -2.06,-1.04 -3.15,2.55 -4.42,0.38 -1.01,-0.36 -2.16,1.19 -2.67,1.07z m-9.01,-1c0.11,-2.56 2.91,0.13 0,0z m-1.13,-1.28c-0.8,-1.29 3.49,-1.49 0.69,-0.52l-0.34,0.34 -0.36,0.18 0,0z m4.3,-0.48c-1.71,-0.47 -0.9,-2.93 0.17,-2.2 -0,0.74 -0.11,1.47 -0.17,2.2z m4.79,-4.64c0.18,-0.78 1.29,-1.07 0,0z m7.64,-3.83c-2.24,0.29 -1.11,-3.47 -0.22,-0.75 0.06,0.35 1.74,0.98 0.22,0.75z m2.2,-0.62c-2.38,-0.91 -2.84,-5.4 0.1,-4.68 0.37,1.54 -0.1,3.12 -0.1,4.68z m-1.72,-6.1c-4,-0.97 3.45,-2.52 1.03,-0.52 -0.42,0.05 -0.59,0.56 -1.03,0.52z m5.27,-4.48c-0.27,-0.28 0.7,-0.67 0,0z m42.25,-2.91c-1.73,0.39 -2.88,-3.16 -0.45,-1.74 1.34,-0.78 2.3,1.96 0.45,1.74z m-35.9,-2.93c0.17,-2 2.33,-0.17 0,0z m1.12,-1.12c1.6,0.69 0.37,-2.16 2.16,-2.14 -0.43,0.5 -1.9,3.93 -2.16,2.14z m20.87,-4.79c0.68,-1.68 0.54,-0.43 0,0z m-9.67,-2.21c-2.58,-0.52 -0.4,-3.09 0.65,-0.8 -0.07,0.3 -0.24,0.8 -0.65,0.8z M319.32,12.08c-0.3,-1.14 -1.45,-2.77 -2.39,-2.03 -1.57,-1.66 3.97,-2.79 -0.11,-4.02 -1.19,0.78 -1.7,1.41 -2.54,-0.32 -1.8,0.29 -3.52,-4 -2,-4.15 0.28,2.4 2.41,-1.85 3.57,0.39 1.62,1.46 1.99,-0.61 1.81,-1.03 1.1,0 2.2,0 3.3,0 -1.65,1.5 0.79,4.98 -1.45,5.97 1.81,0.96 -0.87,3.73 0.84,4.72 -0.27,0.27 -0.64,0.46 -1.03,0.47z M334.56,1.41c-0.71,-0.78 1.26,-0.59 0,0z","name":"Norway"},"ua":{"path":"m458.88,376.43c-1.65,0.13 -4.78,-1.76 -1.5,-2.12 1.11,-0.94 -0.88,-2.9 1.02,-4.06 0.62,-1.77 2.75,-4.95 1.17,-6.55 -2.35,-0.6 0.77,-4.92 0.58,-1.37 1.22,0.09 1.33,-0.46 2.29,-1.4 1.42,1.03 2.11,1.68 2.01,-0.49 0.8,-0.31 0.98,2.31 1.91,0.48 2.09,-0.77 2.07,-2.38 0.02,-2.62 0.48,-3.05 -2.01,-4.08 -4.34,-4.76 -1.03,-1.35 0.14,-4.1 -2.32,-4.58 -0.19,2.48 -3.85,-0.68 -2.94,-2.62 0.58,-1.57 -1.58,-5.77 -2.62,-3.02 -1.32,-0.9 -3.45,-3.78 -4.76,-1.05 -0.61,-1.26 -0.31,-1.31 -2.39,-0.85 -1.59,-0.19 -3.7,-2.91 -5.96,-1.05 -1.9,1.41 -4.52,1.99 -6.34,2.49 -0.3,1.21 -2.98,2.87 -3.26,4.06 0.69,2.88 -3.92,2.94 -5.88,3.36 -1.91,1.06 -2.85,5.5 -5.12,2.22 -2.55,-1.4 -4.85,1.16 -7.45,0.17 -2.78,0.68 -6.22,-1.81 -7.42,1.27 -1.7,-1.79 -4.36,-1.99 -6.08,-3.8 -1.69,-1.99 1.67,-4.76 1.1,-7.32 0.71,-2.08 3.89,1.72 3.03,-0.71 -0.43,-1.86 -2.14,-2.21 -2.09,-4.41 -1.6,-2.52 1.02,-5.01 1.85,-7.4 1.48,-2.09 2.06,-5.46 4.76,-6.09 3,-1.14 0.85,-4.79 0.14,-5.51 2.5,-2.1 -3.76,-3.23 -3.93,-5.84 -0.3,-1.41 -1.88,-4.75 0.96,-3.25 2.78,-0.65 2.08,-4.77 5.31,-4.83 2.44,-2.13 5.65,-1.09 8.41,-2.29 2.86,0.12 5.82,0.8 8.71,-0.13 1.44,0.02 2.96,3.43 4.46,0.67 0.48,-0.61 1.02,3.11 2.27,0.92 -0.68,-2.01 1.68,-0.28 2.33,-1.83 1.72,1.64 3.14,-2.06 4.36,1.19 0.98,-0.83 1.53,-5.36 3.12,-2.13 0.91,1.83 2.9,1.59 3.18,-0.37 1.11,-0.89 4.84,0.77 2.92,-1.35 2.22,-0.55 3.94,4.29 5.74,0.82 -0.53,-2.27 -3.24,-4.21 -1.65,-7.03 0.3,-2.91 3.55,-3.36 5.73,-4.62 2.8,0.98 5.55,-1.1 4.6,-3.99 2.15,-0.59 4.74,-0.01 5.62,-2.79 1.28,-1.72 2.08,2.03 2.83,-0.54 3.15,-1.7 3.09,3.74 6.17,3.78 2.69,0.81 -2.77,1.83 -0.06,3.34 0.97,1.1 0.27,1.92 1.66,2.64 0.13,1.93 0.76,2.76 1.8,0.93 1.75,0.21 3.63,-0.42 4.86,-1.04 1.22,1.6 2.86,1.33 3.58,3.44 0.66,2.12 2.97,6.38 5.86,3.86 0.95,-2.66 2.98,0.62 4.61,-0.26 2.96,0.38 3.76,-3.58 5.99,-4.66 2.15,1.36 3.87,3.07 6.32,3.78 2.39,1.73 1.46,-2.06 1.83,-2.22 2.04,0.83 3.63,-0.35 5.65,0.78 1.64,-1.06 3.29,-0.67 5.4,-0.98 -0.34,2.96 3.78,0.35 3.93,-0.21 -1.54,1.79 2.89,1.91 1.36,4.34 -0.91,1.71 -3.3,4.32 0.42,4.36 1.34,-0.17 -2.51,1.76 -0.87,3.22 0.73,1.16 4.31,0.82 2.94,3.4 -1.12,2.14 2.56,-1.79 1.05,1.32 0.04,1.92 1.74,4.67 -1.56,4.6 -2.59,0.04 -5.57,1.58 -4.88,4.34 -1.93,1.59 -3.46,4.3 -2.04,6.74 1.21,-0.9 1.4,3.27 -0.48,2.33 -2.61,-0.17 -4.34,2.86 -4.47,4.25 -3.32,-0.37 -1.93,5.58 -4.94,3.83 -1.97,0.68 -1.55,3.31 -3.9,2.83 -2.31,2.16 -4.28,4.87 -4.46,8.16 0.05,2.37 -1.89,1.63 -2.69,0.94 -1.43,2.66 1.92,4.83 3.49,6.52 1.72,1.52 4.3,4.21 6.67,2.42 1.12,-1.05 0.41,-2.57 2.09,-1.56 1.41,-0.15 1,-2.82 3.17,-2.37 1.15,-0 0.13,2.98 0.5,4.21 -1.72,0.79 -3.13,2.24 -5.41,1.17 -2.72,0.19 -1.51,3.05 -3.33,4.45 -1.46,1.36 -5.27,2.16 -5.39,5.34 -0.65,2.52 -2.91,5.33 -5.63,3.62 -2.92,-0.52 2.13,-0.53 -0.45,-1.77 -0.6,-1.76 -0.24,-6.9 -3.31,-5.63 -2.51,0.74 -5.09,-2.4 -7.49,-0.19 -0.84,-1.11 2.17,-2.44 2.5,-3.9 1.15,-2.11 4.76,-3.17 5,-5.4 -1.21,-0.47 -1.1,-4.45 -2.98,-2.14 -0.01,2.53 -3.55,-2.55 -3,-0.06 -1.18,1.35 -4.02,3.26 -6.29,3.26 -0.55,-2.41 -5.82,0.8 -2.84,-2.01 -2.07,-2.11 3.13,-0.37 2.51,-2.12 0.43,-0.87 2.54,-3.83 0.04,-2.33 -1.67,2.49 -5.64,0.74 -4.34,-2.2 -3.44,-0.71 0.17,4.67 -3.05,4.35 -0.95,0.4 -1.24,-2.89 -2.18,-0.81 1.19,3.1 -5.65,1.69 -4.31,5.43 -0.19,2.64 -0.71,6.16 -2.65,8.5 -1.92,0.15 -2.28,-0.37 -1.97,1.56 1.06,2.6 -1.47,1.65 -1.44,-0.04 -3.03,0.54 1.86,5.97 -1.63,4.84 -1.69,1.04 -2.76,2.58 -4.85,3.23 -0.33,0.68 0.22,1.06 -0.9,0.94z m8.84,-3.13c-1.24,-0.5 0.31,-1.59 0,0z M480,354.71c-2.02,-0.24 1.4,-0.94 0,0z","name":"Ukraine"},"il":{"path":"m564.91,519.32c-2.79,-0.13 -5.59,-0.02 -8.39,-0.06 1.03,-3 0.55,-6.35 0.36,-9.47 -0.77,-1.89 -0.08,-3.97 0.69,-5.38 -2.21,-3.68 3.62,-1.36 3.34,-4.63 0.16,-2.5 0.5,0.45 0.78,1.3 0.41,1.74 0.97,3.45 0.64,5.26 0.64,4.15 2.85,8.05 2.93,12.32 -0.33,0.17 0.28,0.88 -0.36,0.66z","name":"Israel"},"sa":{"path":"m593.15,519.31c-2.83,-0.62 -5.1,-2.77 -7.77,-3.86 -1.58,-0.98 -5.22,-1.86 -2.02,-3.26 5.2,-3.81 10.77,-7.23 15.26,-11.9 1.43,-2.99 4.63,-3.12 7.49,-3.98 3.73,-1.26 7.76,-1.54 11.57,-0.41 3.34,1.04 6.79,1.79 10.32,1.49 3.1,-0.23 6.16,0.27 9.07,1.36 7.05,2.14 14.23,3.86 21.25,6.06 3.22,1.22 7.13,2.8 10.33,0.7 3.47,-1.54 7.12,-2.66 10.59,-4.19 0,5.98 0,11.96 0,17.94 -28.52,0 -57.04,0 -85.55,0l-0.54,0.05z","name":"Saudi Arabia"},"iq":{"path":"m665.09,505.54c-3.93,-0.14 -7.37,-2.41 -11.2,-3.08 -6.98,-1.9 -13.93,-3.92 -20.88,-5.88 -4.51,-0.55 -9.21,0.46 -13.56,-1.25 -4.06,-1.23 -8.45,-1.67 -12.53,-0.27 -2.28,0.01 -6.14,3.28 -6.23,-0.28 -1.25,-1.52 -3.9,2.58 -3.26,-0.38 2.09,0.09 -1.51,-3.02 -1.67,-4.04 -1.32,-2.57 -5.49,-5.02 -2.13,-7.49 4.5,-5.84 9.16,-11.56 13.6,-17.45 2.04,-3.07 2.39,-7.4 0.02,-10.4 -1.41,-3.28 0.38,-7.66 -2.62,-10.31 -3.09,-2.29 -2.71,-6.73 0.85,-8.16 2.5,-2.92 2.33,-7.04 4.39,-10.19 0.66,-2.04 0.93,-3.47 3.19,-3.89 2.1,-2.75 5.72,-0.13 8.03,-2.44 0.9,-1.04 2.2,-3.85 2.95,-0.99 0.24,2.01 2.47,2.98 2.75,0.39 0.38,-1.99 1.84,-3.41 3.5,-1.73 2.25,0.16 -1.13,2.67 1.73,2.71 2.42,-0.18 1.65,4.3 5.21,2.73 1.14,1.18 1.93,5.76 4.16,3.01 2.6,0.76 5.25,0.47 7.14,-1.59 0.61,0.22 -3.19,2.13 -1.4,3.83 1.09,1.94 5.9,4.19 1.79,5.59 0.41,2.25 -2.38,5.11 0.78,6.65 -2.86,-0.58 -2.74,5.86 0.16,4.24 -0.52,2.48 -0.45,5.39 2.6,5.52 0.99,0.71 1.98,1.43 2.96,2.14 0.34,-1.31 1.06,-1.78 0.88,-0.17 1.65,-0.62 3.99,0.32 4.03,2.59 0.12,1.35 0.91,3.75 2.75,1.76 3.33,-1.46 6.61,1.38 9.97,1.03 2.56,-1.77 4.83,0.86 6.18,2.91 0,13.19 0,26.38 0,39.57 -4.3,1.87 -8.8,3.32 -13.06,5.23 -0.36,0.05 -0.72,0.08 -1.09,0.08z","name":"Iraq"},"az":{"path":"m625.84,392.01c-2.29,-1.74 -6.12,-1.39 -7.67,-4.17 -2.87,-0.9 2.82,-3.1 1.5,0.21 -0.29,2.16 0.66,-0.38 1.38,-0.86 1.98,0.67 2.99,-0.38 4.14,-1.97 0.78,0.36 1.17,3.12 3.09,2.25 0.41,1.86 5.4,3.6 1.25,3.88 -1.24,0.15 -2.44,0.52 -3.69,0.66z m9.25,-4.53c-1.22,-1.31 -1.37,-1.74 -0.58,-3.22 -0.7,-1.79 -4.05,0.28 -2.18,-2.45 -0.71,-3.07 -3.86,1.6 -5.74,-0.73 -1.12,-1.04 -4.8,-0.64 -2.24,-1.72 1.66,-3.91 -3.46,-4.05 -5.96,-4.45 -3.06,-0.54 1.31,-0.13 -0.04,-1.79 -1.74,-0.11 0.76,-3.32 -2.15,-2.78 -1.13,-2.07 -3.77,1.24 -3.43,-1.3 -3.83,0.78 -1.14,-4.07 1.25,-3.79 1.55,-0.11 2.45,2.19 4.64,1.11 1.17,-0.47 1.66,-2.32 3.53,-1.24 4.04,0.44 2.81,-5.63 -0.82,-5.09 -1.19,-0.23 -4.57,-0.92 -2.6,-1.97 -1.03,-3.22 2.59,-2.79 4.29,-1.55 1.8,0.76 4.71,-0.66 4.29,1.94 2.3,1.27 5.96,-0.02 6.83,-2.57 -0.51,-2.81 0.78,-5.44 1.5,-8.17 0.77,-1.87 3.93,1.21 5.57,1.75 2.04,2.28 4.63,3.86 7.4,4.84 2.72,2.9 5,-2.29 8.05,-0.66 2.42,0.7 -1.69,0.86 -2.16,1.8 -1.58,1 -0.94,2.98 -2.64,4.05 -0.87,2.65 2.35,4.7 1.48,7.28 0.01,2.24 2,3.06 1.53,5.18 2.05,2.31 -2.94,0.21 -1.67,3.07 0.41,2.71 2.06,5.63 2.66,7.96 -1.4,1.58 -3.89,-2.8 -4.72,-0.12 -0.51,-2.33 -5.01,-0.05 -2.24,-2.75 1.89,-2.25 -0.89,-2.79 -2.14,-3.4 -0.39,-1.7 3.13,-2.19 0.43,-2.98 -2.55,-2.17 -6.8,-1.82 -7.18,2.01 -1.56,2.2 -2.45,4.87 -3.2,7.25 -1.02,1.28 -1.42,2.9 -1.76,4.47z","name":"Azerbaijan"},"ir":{"path":"m679.21,458.81c-1.85,-0.64 -2.96,-4.67 -5.07,-2.4 -2.51,1.13 -4.99,-0.69 -7.5,-0.94 -1.54,-1.25 -4.65,1.4 -4.88,0.3 -0.35,-2 -1.76,-5.08 -4.31,-4.59 -0.55,-2.48 -2.8,0.93 -4,-1.28 -1.15,-1.36 -3.82,-0.5 -2.7,-3.18 1.2,-2.24 -1.18,-2.93 -1.92,-2.92 -0.76,-2.14 0.85,-1.8 1.93,-2.95 -0.87,-1.54 -2.25,-2.23 -1.18,-3.98 1.41,-1.22 -0.93,-2.74 1.62,-3.12 2.22,-2.84 -3.32,-4.02 -3.44,-6.68 1.23,-0.62 3.69,-3.96 0.62,-3.5 -2.16,1.88 -4.6,2.34 -7.4,1.61 -2.13,2.68 -1.52,-4.01 -4.35,-3.02 -2.59,1.12 -1.74,-3.71 -4.6,-2.9 0.47,-2.81 -2.6,-2.62 -3.34,-4.74 -3.51,-0.37 -2.73,-5.88 -6.79,-4.9 -2.43,-0.23 0.88,-4.74 -1.15,-6.42 -2.63,1.81 -2.65,-3.09 -4,-4.32 -2.26,0.51 -1.17,-4.01 -3.82,-4.01 -1.08,-1.34 3.43,-0.98 2.24,-3.41 -0.62,-1.73 -1.46,-4.27 1.42,-2.93 2.06,1.49 5.14,2.91 7.63,3.88 2.25,1.24 5.18,-0.04 7.5,-0.74 2.07,-1.71 5.07,-2.61 4.75,-5.97 2.3,-2.33 1.71,-5.53 3.7,-8.09 0.98,-2.61 2.58,-5.68 5.71,-3.44 1.82,0.32 -1.95,3.66 1.08,3.95 4.06,-0.35 -2.73,4.32 1.52,4.83 1.27,-1.49 2.59,2.44 3.8,0.15 1.45,1.58 3.99,1.1 4.87,0.71 1.82,2.85 3.68,6.92 7.62,6.9 3.17,0.36 5.34,-2.56 8.13,-3.02 2.01,0.9 4.99,2.01 6.34,2.88 -0.02,22.74 0.03,45.49 -0.03,68.23z","name":"Iran"},"ge":{"path":"m581.92,380.27c-2.26,-0.5 1.41,-3.83 -0.72,-5.4 -1.82,-2.3 -4.05,-4.17 -5.45,-6.77 -1.72,-2.18 -4.46,-0.36 -5.95,-2.58 -2.48,-1.15 -5.99,1.77 -7.69,-0.38 -1.24,-0.61 -3.4,-1.34 -1.11,-2.52 2.92,-1.18 5.31,-0.74 8.31,-1.17 2.62,-0.64 4.81,0.81 7.27,-1.05 1.64,-1.03 2.03,-2.53 4.37,-2.32 3.09,-1.55 5.23,0.93 8.34,0.23 1.97,-0.34 3.8,-1.06 3.76,1.37 3.33,1.16 4.09,-3.43 6.09,-4.97 1.82,1.19 3.56,0.44 3.29,-1.84 2.38,1.1 4.89,0.94 6.98,-0.29 0.1,2.19 0.6,4.52 3.44,3.9 1.82,0.87 6.7,-2.08 4.44,1.62 -1.04,4.09 6.18,1.33 6.51,4.88 -0.55,2.71 -3.63,-0.63 -4.78,1.93 -2.42,2.07 -3.95,-2.25 -6.59,-0.28 -2.88,0.84 -1.75,4.15 -4.11,5.26 -2.15,1.64 -6.02,2.97 -7.99,5.72 -1.4,1.55 -3.24,0.61 -4.57,1.11 -0.32,-2.7 -4.41,-0.39 -5.08,-2.59 -2.74,0.39 -1.4,4.41 -4.46,3.55 -2.08,-0.04 -2.63,2.5 -4.3,2.58z","name":"Georgia"},"sy":{"path":"m570.98,505.1c-2.37,-0.06 -4.22,-2.23 -6.66,-1.9 -1.76,1.54 -0.95,-3.61 -2.17,-4.66 0.26,-2.1 3.06,-4.25 2.48,-6.23 -2.86,0.37 -0.12,-3.18 1.61,-2.81 1.41,-1.1 -2.08,-2 0.23,-3.24 2.46,-1.85 0.82,-6.41 -2.32,-5.73 1.74,-2.54 -3.41,-1.48 -4.52,-0.5 -2.16,-1.45 -1.71,-4.59 -2.2,-6.89 -0.72,-2.13 -3.63,-2.2 -2.69,-4.95 -1.91,-3.07 4.61,0.44 2.96,-3.37 1.96,-1.34 -0.54,-4.12 2.56,-4.37 1.92,-1.95 -2.9,-3.08 -1.96,-5.67 -0.17,-2.68 3.53,-1.88 4.07,-0.24 2.8,-1.4 6.26,-2.87 7.96,-6.08 1.77,-3.87 6.01,-0.57 8.96,-1.32 4.89,-1.98 9.3,-5.28 12.15,-9.78 2.06,-3.09 5.52,-4.42 8.88,-5.51 3.15,-0.62 4.71,-4.01 6.68,-5.54 2.16,2.06 -0.35,4.49 -0.71,6.75 -0.34,2.94 -3.64,3.54 -4.67,5.93 -0.77,2.72 0.96,5.34 2.92,7.06 1.91,2.86 0.25,6.61 2.05,9.52 1.43,2.7 2.07,6.08 0.11,8.71 -2.41,4.04 -5.84,7.35 -8.54,11.19 -6.92,8.84 -13.8,17.72 -20.31,26.87 -1.64,2.62 -4.19,2.66 -6.86,2.76z","name":"Syrian Arab Republic"},"tr":{"path":"m494.91,482.2c-2.64,-0.83 -6.61,0.7 -6.69,-3.38 -0.28,-2.26 -4.06,-2.7 -3.32,0.14 -2.13,0.72 -2.01,-4.36 -4.24,-2.06 -1.1,1.64 -1.71,4.09 -2.75,1.3 -0.06,-0.7 3.87,-0.84 1.58,-2.85 -2.66,-0.75 -4.9,2.05 -7.56,2.3 -3.22,0.12 2.63,-2.09 -0.16,-3.58 -1.02,-1.26 -2.59,-1.78 -3.85,-0.25 0.8,-2.14 -2.11,-2.59 -0.3,-4.42 0.7,-2.91 -3.46,-4.14 -4.72,-3.08 -0.35,-2.13 -2.41,-1.66 -2.94,-0.12 -0.96,-0.52 -4.49,-1.13 -1.65,-1.67 1.95,-1.12 -0.35,-1.93 -0.64,-2.3 -0.1,-2.91 1.76,1.21 2.44,2.3 1.21,0.53 0.61,-1.54 2.32,-0.91 2.14,0.31 3.08,-4.19 0.9,-2.3 -2.98,0.71 -3.35,-2.88 -0.63,-3.63 1.42,-2.31 -2.41,-1.49 -2.02,-3.47 -1.48,-1.26 -3.08,-1.7 -1.12,-3.61 1.88,-4.06 -3.41,-1.44 -4.89,-0.21 -3.22,2.13 -1.41,-2.71 -2.53,-4.43 0.27,-1.5 2.4,-1.02 1.65,-3 1.08,-2.79 3.49,-3.54 5.85,-4.95 1.33,-0.2 3.18,2.13 5.06,0.5 2.19,-0.32 0.53,-4.12 2.21,-2.66 -1.01,2.78 3.65,-0.5 5.07,-0.34 1.73,-0.22 7.01,-0.13 5.15,-2.97 -1.48,-0.21 -3.18,0.39 -0.99,-0.95 1.96,-1.62 4.19,-2.4 6.66,-2.8 2.77,-0.54 1.2,-2.91 -0.89,-1.86 -1.93,1.45 -3.4,0.81 -4.38,0.32 -3.58,0.35 -2.31,-4.79 0.81,-3.52 2.71,0.01 5.57,-0.39 7.64,-2.28 2.46,-0.32 5.31,1.16 7.39,-0.69 2.9,-0.41 1.41,-4.52 4.23,-5.54 2.71,-2.98 4.61,-6.84 8.39,-8.68 2.29,-1.78 4.29,-3.83 7.39,-4.02 3.16,-0.7 6.47,-1.22 9.26,-2.97 -0.18,-2.01 2.92,-3.03 2.12,-0.46 1.09,2.77 5.37,3.22 7.04,0.72 1.14,-1.37 -0.27,2.45 1.16,0.14 2.04,-1.94 2.88,3.79 5.57,2.83 1.27,-1.86 4.62,-3.78 5.67,-1.09 1.67,-0.99 4.1,0.27 5.52,-0.17 -0.07,-1.45 1.44,-1.93 0.76,-0.72 3.48,0.31 7.66,-0.08 9.71,-3.32 2.34,-1.18 4.33,-4.18 7.15,-3.36 2.71,-0.07 6.67,-0.67 7.5,-3.83 1.38,-2.88 4.81,-4.34 5.49,-7.63 0.34,-3.02 3.69,-0.01 3.89,-2.79 0.79,-1.71 6.06,-0.8 5.2,-2.54 -0.27,-1.98 1.64,-2.11 0.91,-0.61 1.97,-1.13 4.24,-0.33 5.11,0.95 0.95,1.76 2.34,-1.7 3.43,0.93 2.07,0.94 4.5,1.8 3.64,4.81 0.12,2.83 2.56,6.38 5.64,4.35 1.45,-1.61 6.05,-1.12 6.12,-0.28 -2.87,1.25 2.28,4.65 -1.45,5.76 -2.31,0.86 -1.86,1.74 0.02,2.55 2.07,1.41 1.16,4.02 3.6,4.69 1.23,1.57 1.59,5.71 3.8,4.2 0.43,2.37 -1.79,7.52 2.74,6.05 2.64,-0.44 0.94,3.97 3.94,4.02 3.58,1.02 -1.74,2.3 -1.12,4.76 -1.2,0.98 -0.5,-3.85 -3.12,-2.67 -1.98,1.2 -2.57,4.14 -5.61,3.29 -2.88,-0.31 -4.84,1.72 -7.02,2.7 -0.69,1.88 -0.86,5.21 -2.91,2.44 -2.75,-0.22 -2.61,4.46 -5.58,4.92 -2.98,1.72 -6.75,1.93 -9.15,4.66 -2.61,2.66 -4.36,6.14 -7.61,8.16 -2.25,1.32 -4.52,3.36 -7.26,3.28 -3.54,-1.52 -7.49,-0.78 -9.08,3.03 -1.68,2.28 -5.43,4.75 -7.39,2.82 -3.82,-1.14 -4.64,3.62 -2.75,6 0.73,1.14 2.5,1.57 0.17,2.12 -3,0.1 0.83,3.76 -2.09,4.07 1.59,1.89 -1.39,2.48 -1.35,0.31 -1.32,-1.73 -3.85,-3.07 -1.43,-5.18 3.46,-2.09 -0.87,-8.48 -3.12,-4.45 -0.21,1.09 -4.52,4.06 -1.07,3.29 -0.14,0.32 -3.7,3.62 -5.39,1.57 -3.14,-1.5 -6.7,0.91 -7.75,3.93 -2.31,1.12 0.64,5.77 -2.52,4.44 -0.89,2.68 -3.25,3.27 -5.84,4.06 -1.96,1.06 -3.83,3.65 -6.37,2.47 -2.84,-1.55 -5.07,-4.65 -8.7,-4.14 -2.94,-0.38 -6,-0.94 -8.9,-0.06 -3.48,-0.29 -3.26,3.57 -2.85,5.62 -0.19,1.75 1.15,3.5 -1.34,2.67 -2.13,0.36 -2.94,2.88 -4.85,3.38z m-22.48,-0.92c1.54,-1.56 1.67,0.46 0,0z m4.91,-2.51c-0.79,-0.93 0.97,-1.15 0,0z m-7.81,-0.87c-2.21,-0.79 -0.04,-1.14 0.54,-0.39 -0.12,0.2 -0.29,0.4 -0.54,0.39z m-17.07,-35.78c-2.05,-1.66 3.84,-4.8 1.02,-1.64 -0.17,0.27 -1.7,3.54 -1.02,1.64z m-2.5,-4.63c-2.27,-0.95 2.99,-3.59 0.8,-5.77 -1.18,-2.59 4.67,-3.55 1.64,-6.24 -1.25,-1.27 -3.7,-1.75 -1.56,-3.41 0.31,-2.43 2.93,-0.92 3.7,-3.21 1.99,-1.8 4.08,2.49 6.12,-0.22 3,-2.82 1.8,3.03 4.59,3.75 2.54,1.72 5.71,1.31 8.59,1.46 1.59,1.71 -1.83,5.17 -3.31,2.87 -1.59,0.83 -4.21,-0.49 -5.46,2.07 -2.23,0.06 -4.36,0.17 -4.68,3.06 -0.43,2.55 -2.87,5.66 -5.23,3.75 -1.9,0.1 -3.3,1.78 -5.2,1.9z","name":"Turkey"},"am":{"path":"m631.96,389.85c-1.96,-0.78 -2.5,-4.05 -4.9,-3.4 0,-2.98 -2.99,-2.85 -3.89,-0.42 -0.72,0.59 -2.05,-1 -2.73,0.47 -1.44,-4.24 -3.82,2.15 -6.08,-0.34 -2.43,-1.36 -5.05,-0.13 -7.33,0.88 -1.6,1.02 -2.24,-1.35 -3.25,-2.19 -0.22,-2.63 -0.35,-6.8 -3.95,-6.8 -1.56,-1.33 3.34,-2.22 3.67,-4.1 2.01,-1.81 4.84,-2.17 7,-3.75 -1.93,-0.72 2.92,-0.35 0.29,0.72 0.12,2.73 3.55,-1.6 5.25,0.33 2.07,0.17 -1.51,3.12 1.09,4.06 1.57,1.97 7.78,-0.09 6.04,3.56 -1.81,0.88 -2.21,2.81 0.36,2.27 2.62,0.26 4.73,3.06 7.3,0.67 1.25,-0.38 -1.56,2.52 0.95,2.4 1.37,0.14 2.22,0.32 0.58,1.07 -0.16,1.55 3.78,3 0.58,4.04l-0.53,0.37 -0.44,0.16 0,0z","name":"Armenia"},"cy":{"path":"m527.35,491.44c-2,0.03 -5.42,-2.87 -2.34,-3.85 0.27,-2.84 4.77,-0.45 3.78,-3.88 -1.1,-2.02 2.82,-0.4 4.03,-1.67 3.21,-1.08 5.34,-3.84 7.9,-5.9 -1.85,1.69 -5.66,5.67 -1.55,7.09 -1.16,0.96 -4.02,1.69 -3.88,3.92 -1.79,0.94 -4.14,2.55 -4.75,3.95 -1.18,-1.33 -2.1,0.23 -3.19,0.34z","name":"Cyprus"},"ie":{"path":"m160.13,300.45c-1.94,-0.73 -5.41,-0.29 -5.93,-1.1 2.68,-0.96 1.02,-3.47 -1.27,-2.29 -2.17,-0.03 4.61,-0.27 1.86,-1.87 -1.29,0.35 -5.82,0.84 -4.6,-0.88 0.33,-2.41 5.15,0.07 4.57,-2.91 -1.5,-0.99 -3.62,0.6 -3.81,-1.26 1.2,-0.91 6.26,2.54 3.91,-0.67 0.38,-1.38 3.44,-1.82 5,-1.34 1.1,0.96 5.65,0.21 3.16,-0.84 -0.11,-2.83 -2.54,-0.03 -3.01,-0.47 -0.23,-0.23 -3.43,-0.5 -1.1,-1.34 2.22,-1.01 0.54,-4 2.82,-3.42 2.56,1.02 3.91,-3.17 0.52,-2.46 -1.68,0.14 -2.56,-0.23 -2,-1.83 -0.18,-2.01 -5.12,-1.21 -3.94,-2.82 2.15,0.5 2.19,-2.65 4.57,-1.69 2.67,-0.16 1.13,-2.7 -0.21,-3.26 0.29,-1.31 0.02,-3.18 -0.75,-3.28 2.65,-0.82 4.91,0.87 5.93,2.56 1.46,-1.86 3.2,1.45 5.23,1.05 -1.45,-1.4 -1.04,-3.03 1.32,-2.78 1.21,-0.78 -0.05,1.72 1.32,2.45 1.11,1.84 4.55,5.05 6.16,2.17 -0.49,-1.92 2.26,-1.77 1.43,0.13 0.94,1.15 1.06,2.27 0.8,3.26 0.63,1.48 4.47,-0.64 2.75,0.86 -2.34,0.42 -0.05,3.2 -0.77,4.83 0.46,1.62 -0.08,2.98 -1.28,2.32 1.02,2.41 1.46,5.54 -0.48,7.61 -1.25,2.01 -3.34,4.38 -4.14,6.02 -2.56,-0.85 -5.09,-0.34 -7.67,-1.06 -1.16,0.41 -0.62,2.52 -2.3,1.42 -1.5,0.14 -2.91,2.49 -3.4,0.19 -2.29,-1.05 -1.04,2.27 -2.69,2.29 -0.11,0.95 -1.6,-1.12 -2.01,0.4z m13.73,-33.46c2.33,-2.06 -0.9,-1.95 -2,-2.14 -1.29,-0.53 -2.55,-1.96 -0.25,-1.08 1.89,0.69 2.47,-1.66 2.15,-3.1 -1.16,-1.71 7.03,-1.16 4.23,1.31 -0.31,1.85 2.66,-0.08 1.09,1.63 -0.53,1.73 -5.09,0.69 -2.83,2.72 -0.77,0.31 -1.61,0.36 -2.38,0.64z m6.45,-5.05c0.02,-0.88 0.61,0.23 0,0z","name":"Ireland"},"gb":{"path":"m182.64,325.46c0.06,-1.95 -4.47,-2.09 -0.74,-2.3 2.67,-0.61 3.94,-3.31 6.49,-4.14 2.12,-0.77 1.4,-4.5 3.94,-3.31 1.45,-3.67 5.43,-1.45 8.06,-0.26 2.91,0.6 2.6,-3.72 5.07,-4.06 1.35,-0.1 4.35,-3.93 1.42,-2.57 -1.86,1.99 -5.05,0.84 -6.82,2.84 -2.27,-0.51 -2.72,-5.62 -5.77,-3.31 0.24,-2.37 -1.53,-4.27 -3.69,-2.44 -0.87,0.75 -2.94,0.79 -1.58,-0.17 0.16,-1.27 -3.6,-0.88 -1.52,-2.98 1.52,-0.74 3.44,0.29 4.82,-1.36 2.13,0.95 4.49,-1.92 5.83,-3.38 1.68,-2.26 0.05,-8.36 -3.37,-5.58 -1.46,1.33 -0.19,-1.41 0.97,-0.91 1.28,-1.84 2.91,-2.79 5,-2.8 1.2,0.32 4.62,-0.54 5.23,2.01 0.71,1.84 0.61,0.28 0.62,-0.81 -0.49,-1.45 0.01,-1.88 0.83,-1.63 -1.44,-2.21 1.58,-2.99 1.67,-4.6 -1.45,-0.49 -1.63,-2.14 0.09,-1.51 0.69,-1.16 0.79,-2.38 1.37,-3.56 -0.63,-2.27 -3.62,2.01 -2.38,-1.12 -0.36,-1.35 -2.39,0.41 -1.46,-1.51 -2.08,-2.31 0.12,-6.19 3.07,-5.98 2.74,-1.73 -0.83,-1.86 -2.08,-2.37 -0.92,0.48 -3.28,2.29 -4.42,1.19 -1.32,1.2 -1.79,-3.4 -3.43,-0.83 0.32,2.13 0.14,1.46 -0.76,0.01 -1.33,-0.68 -2.66,-1.39 -1.32,-3.18 1.13,-2.26 5.13,-4.6 2.33,-7.17 0.52,-2.42 1.47,-4.31 0.99,-6.83 -1.19,-2.25 -5.91,3.7 -3.96,0.19 -1.17,-1.95 1,-2.29 1.54,-3.39 -1.93,-1.31 3.92,-1.92 1.97,-3.06 1.93,-2.14 -1.4,-1.12 -1.91,0.17 -2.64,0.37 -2.78,2.95 -5.17,3.25 1.64,-1.88 1.56,-3.32 4.36,-3.1 0.45,-1.67 -5.98,-1.25 -1.81,-1.19 1.82,-0.7 -1.08,-3.69 1.83,-2.58 2.2,1.18 2.55,-1.86 1.62,-2.28 3.21,-0.32 0.94,-5 -0.12,-6.67 -1.49,-3.19 1.62,1.59 1.66,-1.31 -0.16,-0.99 3.11,1.17 2.06,-1.21 -1.02,-1.19 -0.29,-1.17 0.73,-0.82 0.07,-1.49 0.01,-1.71 1.64,-1.31 1.56,-1.15 -0.74,-2.21 0.86,-3.26 -0.88,-3.08 1.49,-0.59 1.87,-0.27 0.74,0.04 0.92,2.92 2,0.79 2.21,-0.9 6.43,0.18 7.86,0.3 -1.51,1.12 -1.16,3.83 -3.76,4.28 -1.25,1.24 -5.25,2.21 -4.45,4.19 2.02,-0.77 1.46,0.73 0.51,0.2 -2.65,-1.31 -3.91,3.83 -0.65,3.27 1.6,-1 4.76,-1.27 6.96,-0.43 2.15,0.77 9,0.4 6.36,4.13 -2.17,1.32 -1.95,4.3 -3.79,5.88 -1.36,2.24 -3.73,4.99 -6.67,3.85 -2.54,0.88 -0.66,2.52 1.1,1.38 0.78,-0.5 3.15,3.35 0.84,1.99 -2.07,-0.28 -3.16,1.31 -5.18,1.63 -0.02,2.53 4.56,1.95 5.82,1.47 2.3,1.2 3.8,3.55 4.55,5.85 2,2.23 0.13,5.79 1.35,8.49 -0.45,3.02 1.26,4.86 3.81,6.01 1.66,1.49 2.34,4.19 3.57,5.37 -2.57,1.95 1.1,5.12 0.44,6.31 -2.04,-0.08 1.34,3.78 1.3,5.11 0.78,2.24 -5.08,2.32 -2.09,4.71 1.56,2.69 3.3,0.05 4.83,-1 2.51,1.1 6.37,1.79 6.61,5.25 -0.28,2.6 -1.71,7.67 -4.87,6.84 -2.14,0.29 1.39,3.23 -1.35,2.01 -1.64,-1.62 -4.38,2.64 -1.7,1.39 1.98,0.5 -1.21,2.23 -2.35,1.41 -3.04,0.03 -0.52,3.18 1.11,2.57 2.13,-1.55 -0.82,1.67 1.85,1 1.37,0.01 4.16,-1.13 2.4,1.04 0.18,1.94 -3.04,1.77 -3.79,3.01 -3.03,-0.26 -5.14,2.46 -7.81,0.22 -2.14,-0.87 -5.12,1.06 -5.71,-1.04 -0.97,0.35 -1.61,-1.39 -2.37,0.11 -0.34,-1.96 -3.3,-2.15 -1.9,0.13 -1.76,0.29 -4.97,-1.2 -5.38,0.98 -2.03,-0.7 -3.26,-0.69 -4.99,-2.14 -2.67,-1.4 -6.68,-1.13 -6.68,2.71 -0.68,3.61 -3.23,0.34 -4.72,-0.57 -1.81,-0.09 -4.28,-1.13 -5.91,0.19 -1.52,-0.34 -2.18,1.47 -2.78,2.5z m18.76,-70.13c1.65,1.54 3.03,-0.19 0.57,-0.92 -0.47,-0.23 -0.39,0.68 -0.57,0.92z m-3.12,31.93c0.55,0.53 0.27,0.88 0,0z m-1.17,-10.07c0.02,-1.53 3.39,-4.02 1.66,-1.22 -0.39,0.58 -0.96,1.08 -1.66,1.22z m-10.63,-1.73c-1.59,-0.31 -2.08,-2.29 -3.03,-0.36 -1.91,-0.73 1.49,-2.2 -1,-2.29 0.13,-2.31 -2.8,-4.88 -3.79,-2.04 0.08,3.32 -3.97,-0.09 -4.6,-1.78 -1.85,-2.46 4.1,-0.54 2.7,-3.31 3.07,0.55 2.59,-4.32 5.36,-2.92 1.06,-1.19 2,-1.61 3.15,-1.03 2.23,-0.98 4.88,1.21 3.52,3.35 -0.19,2.26 3.15,1.24 0.87,3.27 -2.06,1.44 -0.04,2.03 1.25,1.47 1.84,1.95 -0.91,4.87 -2.77,3.75 -0.28,0.8 -0.67,1.84 -1.67,1.88z m10.61,-7.92c-1.67,-0.09 0.88,-0.41 0,0z m-4.29,-6.97c1.08,-0.83 2.3,-4.85 2.33,-3.8 -0.86,1.14 -0.52,3.62 -2.33,3.8z m2.73,-6.13c0.35,-1.24 0.97,-0.17 0,0l0,0z m-3.97,-25.03c-1.05,-1.04 1.79,-1.33 0,0z m1.85,-1.48c-0.51,-1.01 -1.32,-1.32 -0.4,-1.6 -1.54,-1.3 0.12,-2.32 1.22,-0.9 1.22,-0.53 0.35,-2.59 1.9,-1.78 0.84,-0.86 3.02,-1.98 1.27,-0.28 -1.41,1.61 -1.17,5.41 -3.42,2.95 -0.74,0.32 -0.1,1.35 -0.58,1.61z m38.33,-20.76c-1.93,-1.65 4.17,-0.89 0.99,-0.51l-0.47,0.12 -0.53,0.39 0,0z","name":"United Kingdom"},"ch":{"path":"m292.05,389.98c-1.12,-2.03 -1.49,-3.96 -4.14,-4.68 0.24,-1.27 0.28,-4.19 -2.02,-2.48 -2.76,1.07 -0.98,6.19 -4.8,5.6 -1.34,-2.05 -4.35,2.18 -5.85,-0.49 -0.66,-1.9 -1.54,-2.82 -1.22,-5.23 -0.26,-1.58 -4.49,-1.34 -5.35,0.35 0,0.96 -0.92,3.04 -1.36,2.14 2.08,-0.65 -0.4,-3.99 1.78,-5.21 1.94,-0.57 2.18,-1.6 2.3,-3.5 2.42,-0.82 3.23,-3.53 5.4,-5.02 0.92,-1.36 3.51,-0.53 3.7,-1.93 2.51,-0.36 5.31,-0.33 7.48,-0.01 1.57,-0.63 0.5,-2.03 0.36,-2.23 1.31,-1.57 1.36,1.33 2.5,0.98 1.1,0.96 4.91,-0.68 5.97,2.04 0.36,1.7 -2.95,6.33 1.28,6.08 1.9,0.87 4.09,3.47 5.78,0.3 -0.28,1.18 -0.17,4.33 -0.42,4.42 -1.87,-2.39 -4.17,0.79 -2.27,2.33 0.4,3.64 -0.7,-1.85 -2.69,-0.06 -1.62,2.46 -2.25,-1.46 -3.43,-1.76 -2.43,0.76 -0.07,4.33 -2.78,4.97 -1.02,0.89 -0.72,2.33 -0.22,3.4z M275.63,370.8c0.49,-1.83 2.92,0.14 0.45,0.04l-0.53,0.11 0.08,-0.14 0,0z","name":"Switzerland"},"at":{"path":"m338.89,381.72c-2.92,-0.37 -5.68,-0.8 -8.68,-1.29 -3.41,-0.44 -7.47,0 -10.13,-2.59 -0.49,-1.79 -2.01,-0.99 -0.74,-2.9 -1.54,-1.34 -4.15,1.63 -6.36,0.74 -2.58,-0.56 -3.71,1.14 -4.67,3.02 -0.77,-1.61 -4.07,-0.58 -3.15,-2.45 -2.02,-1.72 -4.43,3.34 -5.34,-0.45 -2.71,0.05 -3.32,-2.5 -1.76,-4.48 -0.11,-1.92 0.65,-1.26 2.03,-1.24 0.77,2.34 2.91,4.54 4.57,1.3 -0.46,-2.13 1.09,-1.56 2.51,-1.62 1.01,3.44 4.52,1.32 6.34,0.3 1.07,-2.1 5.55,-0.39 5.96,-2.32 1.02,0.88 3.01,0.37 3.69,0.59 0.18,3.89 5.07,0.73 2.69,-1.53 -0.2,-1.43 -1.39,-3.39 -2.11,-5.03 1.93,-1.47 5.36,-2.58 5.54,-5.05 1.88,0.9 2.55,-1.98 3.13,-1.73 2,1.9 4.33,0.91 6.33,0.45 0.7,-1.97 2.92,-2.39 2.31,-5.03 1.96,0.92 4.91,0.17 6.97,1.75 1.9,2.39 4.37,-0.77 6.11,0.38 1.43,-0.03 2.77,1.31 1.21,2.94 -0.45,2.79 3.86,4.35 2.35,7.1 1.97,3.48 -4.51,0.08 -4.56,2.79 1.63,1.11 3.27,1.96 0.42,2.95 -0.98,1.81 1.97,4.01 -0.88,5.49 -1.01,1.14 -3.1,1.64 -2.24,3.63 -2.75,-0.79 -4.87,2.27 -7.7,0.89 -1.89,0.31 -2.39,2.61 -3.87,3.38z","name":"Austria"},"cz":{"path":"m335.18,355.05c-3.65,-0.41 -4.96,-4.57 -8.41,-5.66 -1.31,-1.75 -2.19,-2.91 -4.32,-3.66 -1.8,-1.56 -2.64,-3.53 -1.6,-5.57 -0.16,-1.57 -4.02,-3.53 -3.2,-4.17 1.42,3.2 2.44,-2.24 4.26,-2.25 1.35,1.3 3.09,-0.63 3.77,-1.12 1.58,-1.86 4.18,-2.74 6.59,-3.91 1.63,-0.69 3.11,-2.35 4.59,-0.56 2.65,1.13 2.61,-4.69 4.17,-1.06 1.38,1.66 3.64,0.69 5.11,2.36 0.67,1.75 5.33,-1.17 2.84,1.24 -1.67,2.06 2.09,2.81 2.61,4.74 2.09,1.86 2.12,-0.93 3.96,-1.42 0.43,-1.39 -1.9,-2.7 0.65,-1.55 1.23,1.3 3.29,0.96 4.4,0.53 -3.27,0.95 2.17,5.16 3.09,2.65 2.93,0.44 4.53,2.63 6.07,4.63 -2.15,1.71 -4.92,3.04 -5,6.15 -1.22,2.56 -3.35,3.75 -6.24,3.67 -1.85,1 -3.16,2.67 -5.05,0.79 -2.11,1.83 -4.69,0.96 -6.9,-0.42 -1.92,-1.1 -4.07,-0.45 -5.85,-0.93 -0.34,2.31 -2.03,3.48 -2.87,5.34 -1.07,-1.47 -1.28,0.34 -2.66,0.17z m-0.68,-28.45c-2.43,-2.03 2.32,0.24 0,0z","name":"Czech Republic"},"sk":{"path":"m364.44,362.94c-2.39,-2.37 -6.56,-2.63 -7.73,-6.02 -0.46,-2.43 0.4,-6.56 3.64,-6.16 3.23,0.29 4.91,-3 5.9,-5.48 0.17,-1.96 3.95,-5.08 5.19,-3.02 2.43,1.82 3.49,-4.97 4.66,-0.89 1.56,0.35 1.91,0.85 1.91,2.52 2.64,1.02 3.89,-1.84 5.57,-3.22 1.58,-0.07 4.26,1.88 5.1,-0.34 0.99,-1.59 4.74,-1.57 6.47,-0.13 1.28,2.35 6.24,0.73 4.22,4.32 -1.5,2.17 -0.53,7.67 -4.43,6.22 -0.53,-3.18 -3.88,-1.31 -5.83,-0.46 -2.77,-2.02 -4.98,0.68 -5.07,3.51 -1.08,0.67 -2.09,-0.14 -2.29,1.79 -1.29,1.17 -3.96,-2.16 -4.46,1.1 -0.72,2.43 -5.78,-0.07 -5.66,3.66 1.11,2.54 -4.04,1.94 -5.84,2.51 -0.44,0.04 -0.88,0.07 -1.32,0.1z","name":"Slovakia"},"hu":{"path":"m369.77,387.01c-2.75,-0.58 -5.39,-1.37 -7.78,-2.73 -2.27,-2.63 -5.77,-3.91 -7.5,-7.04 -1.21,-1.85 -2.06,-2.65 0.1,-3.74 1.43,-1.97 -1.64,-4.55 1.32,-5.48 2.04,-1.7 -3.3,-3.48 -0.09,-2.71 2.81,1.04 3.86,-1.91 3.11,-3.93 1.93,-1.05 3.43,2.43 5.44,2.58 3.24,-0.18 6.53,-0.68 9.48,-2.09 -2.94,-1.84 0.68,-3.88 2.85,-2.99 1.75,-0.27 1.26,-4.31 3.33,-2 2.26,0.8 3.01,-1.99 4.8,-2.5 0.41,-2.48 1.52,-4.92 4.25,-3.08 1.93,-0.18 4.28,-2.95 5.05,0.14 2.1,1.7 4.8,-1.81 6.38,0.84 2.12,-0.07 1.45,3.23 3.34,1.35 3.46,3.21 -4.18,3.49 -4.55,6.38 0.35,2.87 -2.65,4.72 -2.5,7.52 0.37,3.17 -2.46,5.43 -2.51,8.54 0.01,3.02 -4.16,0.17 -4.1,3.12 -3.14,1.57 -7.09,0.21 -9.73,1.82 -1.24,2.36 -3.12,1.16 -4.53,3 -2.57,0.36 -3.31,3.42 -6.16,3.01z","name":"Hungary"},"lt":{"path":"m397.76,280.99c-1.28,-1.32 -1.63,-4.58 -4.11,-3.7 -1.13,-2.07 -4.01,-0.28 -3.26,-3.14 1.62,-3.48 -2.4,-7.19 -5.64,-5.13 -2.28,0.26 -5.13,-1.48 -6.05,-2.17 -0.51,-2.23 -1.53,-3.51 -2.2,-5.4 -1.37,-2.68 1.24,-5.63 3.5,-7 1.88,-1.44 4.85,-0.65 6.6,-1.37 0.56,-1.26 2.33,2.09 2.82,-0.31 2.06,-0.86 4.97,0.1 6.62,-0.3 1.76,-0.28 3.35,-0.61 3.78,-2.83 1.19,2.4 3.3,3.12 5.7,2.26 2.79,0.52 4.16,3.86 7.04,4.08 1.64,1.42 -0.82,5.15 2.39,4.69 0.41,1.84 -3.75,0.79 -2.82,3.52 -2.05,1.6 -2.93,3.79 -1.88,6.23 -0.12,2.13 -0.68,3.69 -2.75,4.26 -0.43,1.13 -0.04,1.82 -1.97,2.11 -0.51,1.51 -1.38,2.09 -2.67,3.35 -1.72,-1.32 -3.41,0.53 -5.09,0.87z m13.27,-5.67c-0.11,-1.17 -1.77,-2.09 0.31,-1.22 0.43,0.34 0.36,1.19 -0.31,1.22z","name":"Lithuania"},"lv":{"path":"m375.49,257.31c-1.25,-2.79 -1.57,-6.54 -0.19,-9.24 2.63,-2.07 -0.8,-6.67 2.34,-8.6 1.69,0.07 4.11,-4.27 4.4,-1.32 2.44,1.48 4.79,3.19 5.76,5.78 2.55,1.96 6.17,0.07 7.13,-2.71 1.39,-2.75 -1.14,-5.3 -1.86,-7.82 1.34,-1.86 3.66,-3.57 5.64,-3.47 0.08,-0.9 1.63,1.08 2.69,0.67 1.72,0.06 3.13,2.25 4.97,3.22 2.21,0.36 3.53,-2.11 5.72,-1.12 1.76,-0.72 2.78,1.38 4.4,2.33 -0.55,1.5 -1.61,1.77 0.06,2.4 -0.17,1.1 -0.46,3.72 1.44,2.57 1.53,2.66 6.04,5.32 2.65,8.5 -1.42,1.56 -0.49,4.51 -3.48,3.69 -2.28,0.64 -3.94,4.9 -6.51,1.93 -2.03,-2.26 -5.06,-3.95 -7.91,-2.78 -1.1,-1.49 -3.6,-4.26 -4.46,-0.94 -1.47,1.77 -5.35,0.57 -7.87,1.17 -1.87,0.26 -2.16,0.89 -3.44,-0.06 -2.37,1.98 -6.1,0.17 -8.37,2.54 -1.6,0.14 -2,4.17 -3.11,3.25z","name":"Latvia"},"md":{"path":"m454.92,374.42c-0.33,-2.09 -1.86,-4.78 -2.23,-7.4 0.38,-3.56 0.07,-7.47 -2.96,-9.91 -3.2,-3.43 -7.96,-5.44 -9.93,-9.93 -0.24,-2.34 -6.31,-3.34 -2.39,-4.03 2.67,0.33 3.73,-3.48 6.57,-2.14 1.32,0.97 1.83,2.54 3.78,1.18 -0.02,0.82 2.42,2.73 2.56,0.37 1.33,-1.44 3.96,3.6 4.43,1.55 1.2,-1.55 0.65,3.03 1.22,3.93 0.07,2.32 4.57,4.13 4.42,2.59 -0.43,1.81 0.64,4.31 3.01,4.64 2.61,-0.41 1.35,4.32 2.84,4.34 -0.24,1.12 -3.35,-2.1 -2.5,0.78 -1.04,0.18 -2.3,-2.64 -2.02,-0.03 -1.22,0.21 -2.31,-1.71 -3.62,0.36 -1.34,1.85 1.39,3.73 0.77,5.48 -0.5,2.25 -2.95,4.34 -2.23,7.32 -0.82,-0.46 -1.48,0.35 -1.72,0.91z","name":"Moldova"},"ro":{"path":"m414.71,404.53c-2.94,-0.37 2.3,-2.82 -0.89,-3.86 -1.36,-0.38 -6.12,-1.72 -3.63,-3.39 3.62,-1.4 -2.29,-3.42 -3.82,-3.63 -1.25,0.73 1.78,4.33 -1.06,3.46 -0.47,-2.42 -4.24,0.23 -4.49,-2.27 -1.54,0.07 -1.87,0.1 -0.31,-0.74 0.46,-1.41 -2.15,-1.17 -0.71,-2.27 0.07,-4.02 -6.25,-1.24 -6.86,-4.86 0.56,-2.93 -2.25,-4.23 -4.45,-5.46 -1.23,-1.35 3.36,-1.23 3.59,-2.71 4.37,0.45 2.54,-4.6 4.68,-6.55 1.28,-2.95 0.7,-6.3 2.76,-8.97 0.62,-2.75 1.58,-5.21 4.69,-5.79 2.24,-1.25 2.4,-5.8 5.34,-3.67 2.44,-0.6 4.8,0.38 7.17,-0.21 2.51,-1.94 3.7,1.15 5.91,1.18 2.03,-1.31 2.68,-4.39 5.67,-3.96 2.31,-0.28 4.86,-1.95 4.49,-4.32 1.75,-2.97 4.98,-1.01 6.29,1.29 1.93,4.74 7.06,6.72 10.28,10.39 2.93,2.37 2.34,6.09 2.36,9.35 0.53,2.52 1.69,4.86 1.92,7.13 1.82,1.67 4.12,3.74 6.83,2.36 1.37,-1.24 4.51,-5.35 6.51,-2.84 1.18,1.97 2.1,5.63 -1.2,6.33 -1.85,1.04 -1.42,-3.67 -3.88,-1.61 -1.51,1.92 1.84,2.51 -0.11,4.51 -0.61,2.57 2.04,-0.86 0.82,1.98 -2.28,2.63 -0.38,5.59 -0.04,8.5 -1.15,2.51 -5.2,-0 -6.02,-1.11 -1.09,1.46 -1.67,-0.92 -3.54,0.54 -1.82,0.49 -3.31,-1.46 -5.44,0.01 -3.08,1.35 -6.52,2.81 -8.17,5.95 -1.31,3.55 -4.97,3.29 -8.01,2.77 -2.75,-0.48 -4.92,1.71 -7.44,1.75 -2.74,-0.25 -5.83,-1.37 -8.31,0.42l-0.52,0.24 -0.43,0.06 0,0z","name":"Romania"},"bg":{"path":"m419.98,434.43c-0.77,-1.6 0.33,-5.03 -1.67,-6.74 -1.14,-2.34 -7.05,-2.04 -4.41,-5.19 -0.49,-1.45 -2.46,-4.37 -1,-5.23 2.16,0.54 4.75,-3.78 2.92,-5.59 -2.57,-1.55 -5.66,-2.78 -5.98,-6.24 -0.97,-2.47 2.74,-1.99 1.69,-4.32 2.08,-0.06 3.2,1.11 1.22,2.59 -0.15,3.28 3.83,0.6 5.65,0.71 2.58,-0.64 5.13,0.94 7.65,0.08 2.61,-1.18 5.46,-2.28 8.27,-1.01 3.32,0.37 5.6,-2.51 6.93,-5.13 2.16,-2.35 5.29,-3.61 8.27,-4.56 1.69,0.75 3.92,0.92 5.2,0.32 0.77,1.61 2.46,-1.39 3.17,1.07 1.58,2.18 6.09,-1.71 5.26,2.45 0.21,2.63 -4.48,0.38 -4.02,3.94 -1.88,1.85 1.39,5.32 -0.17,7.14 -1.24,1.25 -1.7,3.03 -2.93,4.26 0.82,1.66 4.27,-0.37 3.64,2.02 1.44,0.86 3.71,1.89 1.23,2.18 -1.9,3.08 -4.18,-1.08 -6.49,0.5 -1.52,1.95 -4.37,1.58 -4.82,4.55 -1.37,1.04 -4.43,1.49 -2.91,4.13 3.08,3.26 -3.78,2.7 -5.13,4.68 -1.95,0.62 -4.22,-2.41 -5.93,-0.29 -2.04,-2.63 -5.18,-1.43 -7.46,0.15 -2.06,2.52 -5.54,1.17 -7.76,3.47l-0.43,0.06 0,0z","name":"Bulgaria"},"al":{"path":"m396.5,458.88c-2.16,0.08 -0.81,-2.55 -2.74,-3.41 -0.91,-2.13 -5.81,-2.06 -5.48,-3.81 2.36,-1.04 -1.62,-3.19 -0.48,-4.99 0.36,-1.26 2.66,-2.2 0.57,-3.3 1.39,-2.49 -3.57,-5.96 0.77,-6.52 2.37,-0.03 -1.92,-0.89 -0.55,-2.51 -0.14,-2.15 -3.24,-0.23 -2.21,-2.9 -1.48,-2.28 0.07,-4.41 1.36,-6.71 1.01,3.42 4.23,-2.13 4.66,1.78 1.21,1.69 4.6,1.07 3.88,4.25 -0.33,2.87 -0.02,5.6 0.51,8.19 0.21,1.77 2.38,5.51 4.15,4.74 1.69,-0.32 2.5,4.45 0.05,5.02 -0.86,1.75 -0.27,5.37 -3.24,5.56 -2.01,1.26 1.3,2.75 -0.81,3.98l-0.23,0.5 -0.19,0.12 0,0z","name":"Albania"},"ee":{"path":"m378.18,234.33c-0.29,-1.42 0.77,-0.85 0,0z m29.34,-1.46c-2.55,-0.18 -3.15,-3.15 -5.39,-3.23 -0.21,-1.76 -1.21,1.44 -2.27,-0.65 -2.12,-1.63 -4.52,1.21 -6.27,2.48 -1.26,-0.67 1.67,-5.98 -1.81,-5.74 -1.1,1.92 -1.82,2.36 -3.83,1.3 -0.08,-2.54 -3.43,-2.95 -2.01,-5.67 0.96,-2.03 -3.8,-2.6 -0.62,-3.95 1.35,-0.61 4.23,-0.97 2.3,-2.67 2.82,-0.9 4.5,-2.4 7.47,-2.41 1.66,-0.56 1.5,-2.75 3.42,-1.67 0.91,-1.72 4.64,0.07 6.63,-0.66 2.13,-0.1 4.26,0.22 6.03,-1.29 -1.43,2.67 -1.02,5.84 -2.24,8.62 2.11,2.2 1.2,5.64 3.15,7.83 0.24,0.52 1.89,2.24 1.35,2.38 -0.73,0.83 -0.81,2.27 -1.35,2.68 1.66,2.85 -2.28,0.25 -2.89,1.26 -0.29,0.68 -0.83,1.4 -1.65,1.38z m-28.89,-1.28c-1.29,-0.43 -2.59,-1.4 -0.92,-2.29 -0.22,-0.67 0.59,-1.5 0.99,-0.78 -0.53,-2.4 4.69,-3.37 4.19,-1.27 0.07,2.48 -3,2.5 -4.26,4.33z m1.02,-7.14c-0.54,-0.34 -0.96,-2.14 -1.01,-2.27 0.8,-1.29 0.79,-1.32 2,-0.55 1.89,-0.4 1.35,1.06 -0.17,0.69 0.83,0.84 0.55,2.1 -0.81,2.14z","name":"Estonia"},"lb":{"path":"m557.2,501.39c0.58,-2.8 0.32,-5.88 1.17,-8.53 -0.92,-2.02 1.77,-3.87 0.09,-5.88 -0.28,-2.6 2.65,-3.83 2.23,-6.01 1.03,-0.93 3.35,-2.1 2.42,0.09 1.64,0.57 3.96,0.89 3.49,3.25 -1.11,1.34 -2.61,3.51 -1.84,4.51 -2.48,0.69 -2.89,3.8 -1.53,5.08 -0.04,2.15 -2.43,3.34 -3.12,4.26 0.57,1.87 -1.28,3.1 -2.91,3.25z","name":"Lebanon"},"ad":{"path":"m225.99,427.08c-4.4,2.06 -0.81,-5.33 0.49,-0.98l-0.2,0.53 -0.29,0.45z","name":"Andorra"},"sm":{"path":"m321.66,413.68c0.71,-2.83 1.59,1.21 0,0z","name":"San Marino"},"mc":{"path":"m273.92,416.64c-2.8,-1.65 2.23,-1.64 0.39,-0.13l-0.39,0.13 0,0z","name":"Monaco"},"lu":{"path":"m268.7,344.38c-1.34,-0.37 0.48,-2.79 -0.9,-3.99 -1.47,-1.94 2.76,-5.38 1.98,-1.49 0.37,1.78 4.79,2.33 1.84,4.09 -0.47,1.66 -1.49,1.22 -2.93,1.39z","name":"Luxembourg"},"fr":{"path":"m292.72,444.55c-0.12,-2 -3.86,-0.94 -2.75,-2.99 -2.34,-0.62 -0.11,-2.51 0.75,-3.57 0.35,-0.55 -3.76,1.07 -1.24,-0.63 0.32,-1.34 -2.6,-2.05 -0.51,-3.01 -0.25,-1.14 -1.13,-1.51 -0.02,-1.71 -0.89,-2.66 3.14,-1.71 3.48,-3.51 1.94,0.96 2.98,-0.2 2.33,-2.11 1.79,-2.18 -0.99,3.51 1.02,4.43 1.2,3.29 -2.09,6.35 -1.33,9.73 -0.95,0.89 -1.15,2.64 -1.75,3.36z m-58.87,-15.16c-2.27,-2.01 -5.59,-0.28 -7.2,-2.87 1.48,-2.11 -2.14,-2.13 -2.92,-2.19 -1.78,-1.34 -3.82,-2.36 -5.67,-3.53 -1.54,0.58 -1.53,2.27 -3.51,1.46 -1.54,0.07 -2.66,-0.59 -3.93,-0.35 -0.8,-2.33 -2.93,-1.69 -4.53,-2.09 -1.06,-2 -2.81,-3.32 -5.06,-3.18 -1.57,-1.15 -1.33,-1.7 -1.45,-3.5 -1.23,-0.24 -3.44,-0.96 -1.02,-1.55 3.04,-3.75 2.96,-8.84 4.5,-13.21 0.85,-1.4 2.99,0.68 2.08,-1.85 -1.2,-1.06 -2.14,-0.84 -1.15,-2.81 1.1,-1.59 0.63,-5.99 2.35,-6.1 1.89,1.55 0.82,3.87 1.88,5.79 -0.05,2.01 2.7,3.12 1.93,0.38 -2.25,-2.11 -0.08,-5.11 -2.23,-7.23 -1.52,-1.07 -0.74,-1.21 -0.52,-2.39 -2.12,-1.87 0.87,-2.79 -0.3,-5.08 -0.91,-0.78 2.06,-4.15 0.31,-2.92 -1.7,1.58 -2.8,-0.99 -4.34,-1.54 -1.66,-0.48 -1.34,-4.04 -3.07,-5.27 1.45,-1.37 2.03,-3.5 -0.17,-4.21 -1.28,-1.38 -1.85,-1.7 -0.64,-3.42 1.28,-3.05 -5.85,-0.88 -2.14,-2.3 -0.4,-2.26 -4.49,0.28 -3.4,-2.31 -0.36,-2.67 -3.56,0.62 -4,-1.74 -2.28,-0.09 -2.42,-4.2 -4.81,-1.84 -1.78,1.57 -0.33,-2.39 -2.37,-2.56 1.59,0.62 3.87,-0.51 1.92,-2.13 1.84,1.1 2.88,-0.7 0.65,-1.01 0.13,0.05 1.59,-2.28 -0.46,-1.5 -1.34,1.45 -4.19,-0.07 -1.73,-1.25 1.3,-0.76 2.79,-0.81 2.95,-0 1.4,-0.85 2.87,-0.97 3.66,0.09 0.65,-1.02 3.21,1.35 3.19,-1.26 2.43,-1.62 2.22,2.03 2.47,2.06 1.69,-2.75 1.86,2.19 3.17,3.11 1.26,-0.74 3.83,-3.16 3.73,-0.14 1.62,2.63 2.82,-1.65 4.78,0.11 0.83,-0.47 4.32,1.06 3.36,-0.07 -1.65,-1.65 -2.42,-4.02 -1.35,-6.19 0.76,-2.4 -2.42,-4.6 -1.19,-7.04 1.21,1.81 5.2,-0.98 3.31,2.03 -0.19,2.43 1.93,3.76 3.68,2.84 2.59,0.56 5.12,3.56 7.68,1.11 2.16,-0.17 1.32,-1.39 0.53,-2.64 1.54,-3 5.41,-2.03 8.05,-3.16 1.81,-0.67 4.58,-1.88 5.31,-3.4 -1.75,-1.03 0.04,-4.18 -0.3,-6.15 0.44,-3.1 4.2,-2.36 6.44,-2.8 0.98,0.77 1.49,6.24 4.58,4.17 1.46,-0.35 0.7,4.82 3.67,3.62 -0.14,3.07 3.12,1.53 4.18,2.82 -0.64,1.44 -0.56,1.83 -0.25,2.78 -0.88,2.67 3.93,2.4 4.83,0.49 0.88,1.69 -1.1,3.55 1.66,3.61 2.55,0.29 2.49,4.49 5.21,3.37 2.65,1.52 6.43,-0.33 7.5,3.53 0.45,0.9 2.96,3.41 2.01,0.96 0.54,-1.16 0.79,1.42 0.5,1.49 1.47,-0.3 3.92,-1.81 4.53,0.32 1.92,0.28 7.08,0.84 3.22,2.94 -2.39,2.02 -1.66,5.55 -3.51,7.88 -0.4,2.45 -0.29,5.21 -1.25,7.67 -1.85,0.33 -4.65,-1.22 -4.94,2.33 0.2,1.24 -1.59,3.49 -3.64,4.12 -0.97,0.48 0.4,3.01 -1.75,3.44 -3.21,1.4 -0.53,4.69 -2.87,6.5 1.14,2.08 4.46,-0.29 3.63,-2.44 2.64,-1.79 4.27,0.65 3.32,3.02 0.97,1.33 2.7,2.42 0.16,3.24 -1.7,2.56 4.01,4.8 1.9,7.11 -0.78,1.84 -6.17,0.54 -3.47,3.57 1.68,1.38 4.39,3.16 1.43,4.85 -1.24,3.13 2.12,7 5.6,6.15 2.64,-0.69 -0.62,4.28 -2,4.64 -1.17,-0.72 -4.03,-3.03 -4.38,0.05 0.55,1.28 1.71,2.84 -0.72,3.26 -2.25,0.54 -0.87,3.61 -3.15,2.9 -1.62,1.27 -2.66,0.82 -4.12,0.04 -1.35,1.82 -1.33,-1.1 -3.38,-0.87 -2.84,0.75 -0.64,-3.44 -1.53,-2.84 -0.63,0.89 -3.09,1.3 -1.09,0.56 1.49,-2.74 -3.49,-2.8 -2.54,-0.31 -2.24,0.5 -1.46,-2.79 -1.57,-3.36 -1.08,1.05 -1.96,2.65 -0.52,3.91 -1.04,-0.28 -1.31,-2.83 -3.36,-2.08 -2.5,-1.7 -5.52,-1.71 -6.96,1.2 -2.68,0.79 -5.03,2.02 -5.69,4.77 0.13,1.89 -0.47,3.75 0.65,5.49 -1.42,-0.84 -3.32,-0.38 -4.33,0.88z","name":"France"},"li":{"path":"m296.51,373.48c1.45,1.4 -0.83,3.11 -0.11,0.58 0.04,-0.19 0.08,-0.38 0.11,-0.58z","name":"Liechtenstein"},"nl":{"path":"m269.04,328.72c-2.4,0.87 -0.84,-4.47 0.3,-2.01 0.8,0.23 0,1.75 -0.3,2.01z m-0.07,-3.78c0.6,-3.32 -5.02,-1.6 -5.27,-4.51 -0.12,-2.74 -3.14,1.24 -2.06,-1.29 -0.99,-0.79 -2.22,1.2 -3.22,-0.45 -0.9,0.27 -1.14,2.68 -1.08,0.81 0.68,-2.17 -1.32,-2.87 -3.53,-3.17 2.34,0.11 2.58,-2.07 3,-3.35 2.89,-2.17 4.59,-5.57 4.61,-9.18 -0.19,-3.29 4.06,-0.89 5.3,-3.43 1.14,-2.76 4.56,-2.87 7.04,-3.65 2.21,-0.91 4.28,0.51 5.07,2.25 2.56,1.19 -1.21,4.26 -0.45,6.54 -1.09,0.31 -2.87,-0.17 -2.83,1.81 -1.46,0.58 -1.58,0.91 0.09,0.93 3.35,-0.05 2.57,4.59 -0.38,4.58 -2.35,0.19 2.62,1.25 -0.12,2.19 -2.05,1.07 -3.43,-1.35 -5.33,0.59 -1.38,2.19 2.97,4.39 0.94,6.8 -0.8,0.77 -1.72,1.2 -0.27,1.66 -0.44,0.36 -0.82,1.02 -1.51,0.87z m-14.99,-3c-0.33,-1.2 -5.07,-0.99 -2.8,-1.87 1.14,1.13 2.85,1.22 3.93,0.81 -0.06,0.56 -0.57,1.04 -1.13,1.06z m0.03,-2.7c-1.37,-0.05 -4.02,-1.94 -1,-1.43 0.49,-0.33 2.23,1.73 1,1.43z","name":"Netherlands"},"ba":{"path":"m376.75,425.9c-1.98,-1.6 -4.83,-1.93 -6.41,-4.05 -1.67,0.65 -0.52,0.38 -0.54,-0.48 -1.09,-2.31 -4.84,-2.74 -4.68,-5.7 -3.06,-0.33 -4.09,-3.71 -6.36,-5.29 -1.63,-1.9 -4.06,-2.19 -3.82,-4.87 -1.04,-2.44 -3.06,-3.46 -4.21,-5.63 -0.7,-2.04 0.84,-4.87 2.73,-2.36 1.15,1.84 2.68,1.49 3.04,-0.59 0.75,-2.51 2.6,0.54 3.87,-1.57 1.61,1.11 3.76,0.32 5.58,0.98 1.67,0.69 2.8,0.63 3.98,-0.64 1.28,0.32 2.43,1.79 1.94,-0.33 2.34,0.41 3.8,0.76 5.26,2.77 1.51,0.59 4.58,-2.46 3.33,0.9 -1.48,2.62 -1.55,6.27 2.2,6.4 -0.16,1.48 3,1.5 0.7,2.04 -2.41,-1.63 -1.77,2 -0.04,2.77 1.22,1.2 1.32,2.1 -0.54,1.97 -0.8,1.43 -2.82,1.15 -3.55,0.9 0.15,1.26 1.77,2.85 -0.32,2.67 -1.22,1.98 -1.74,4.24 -3.03,5.92 0.2,1.48 1.25,2.79 0.88,4.2z","name":"Bosnia and Herzegovina"},"si":{"path":"m332.96,393.93c-2.25,0.07 3.69,-1.78 0.33,-3.25 -2.05,-0.05 -1.39,-3.19 -2.18,-3.5 2.21,-1.77 -0.2,-2.6 -1.36,-3.11 1.58,-3.35 4.85,-1.64 7.7,-1.58 3.3,1.9 3.73,-4.65 7.02,-2.86 2.43,0.1 4.45,-1.78 6.8,-1.33 -0.07,-1.25 0.26,-3.28 1.79,-1.82 0.58,1.34 2.29,2.96 -0.11,2.97 0.07,3.17 -6.44,2.43 -4.97,6.04 0.89,1.87 0.62,3.86 -1.85,3.13 -2.37,0.85 1.33,6.35 -2.15,4.17 -1.76,0.02 -2.78,0.57 -3.81,-1.48 -1.83,-1 -1.59,2.92 -3.88,1.76 -1.41,-0.46 -2.2,0.65 -3.34,0.85z","name":"Slovenia"},"mk":{"path":"m403.18,443.19c-1.28,-0.84 -1.77,-0.72 -3.14,-0.4 -2.27,-2.33 -2.73,-5.58 -2.85,-8.64 -1.26,-2.44 2.39,-0.6 1.33,-3.13 0.23,-2.42 3.43,-3.85 5.06,-1.8 1.38,1.18 -1.35,-3.28 1.33,-2.73 2.83,0.6 4.67,-2.89 7.49,-1.79 1.51,2.18 4.77,1.95 5.79,4.72 1.29,2.63 0.37,4.95 -1.12,7.01 -1.05,2.69 -5.33,0.11 -7.05,2.7 -0.97,2.88 -4.09,3.39 -6.84,4.04z","name":"Macedonia"},"hr":{"path":"m375.93,426.49c-1.17,-0.64 -1.03,-0.77 0,0z m-5.08,-2.9c-0.73,0.27 -1.25,-2.08 0,0z m-2.28,-1.81c-3.23,-1.04 -5.06,-4.7 -8.53,-5.08 -1.74,-1.23 -4.13,-1.36 -6.19,-0.38 -0.54,-3.7 -5.51,-3.9 -7.37,-6.92 -1.68,-2.86 2.16,-0.38 2.91,-1.43 -1.18,-2.05 -5.06,-2.05 -5.62,-5.05 0.07,-2.45 -0.12,-5.23 -2.77,-6.41 -1.46,-3.02 -5.35,-1.33 -4.75,1.8 -0.1,1.22 -1.81,1.15 -1.78,3.18 -0.42,-0.02 -2.43,-3.25 -2.8,-4.77 0.5,-1.41 -1.33,-2.59 0.97,-1.85 1.93,-0.05 3.32,-1.26 5.49,-0.87 1.75,-0.28 1.19,-2.99 2.55,-0.54 1.83,1.65 2.98,0.1 5.14,0.7 1.63,-0.59 0.6,-2.35 1.05,-3.41 -2.13,-1.84 3.84,-0.57 2.93,-3.42 -1.1,-1.62 -1.88,-3.53 0.82,-4.04 1.16,-1.26 3.54,-0.9 3.14,-3.3 3.59,0.79 6.21,3.61 8.62,6.19 2.91,-0.18 5.33,2.55 8.31,1.69 2.32,0.95 5.06,-5.2 5.33,-0.4 0.15,1.9 1.2,2.64 1.4,4.46 1.55,0.76 2.24,0.37 1.04,2.01 -0.17,1.69 1.08,1.86 -0.44,2.99 -1.42,0.96 -2.53,-3.66 -4.34,-2.06 -2.98,-1.4 -5.14,1.63 -8.13,0.38 -2.22,0.17 -4.52,-1.28 -6.44,-0.34 -1.8,-0.84 -3.54,0.72 -3.99,2.64 -1.51,-1.59 -4.97,-3.78 -5.35,0.02 -1.16,3.92 2.99,5.58 4.38,8.58 -0.13,1.41 -1.05,2.05 0.83,2.59 2.9,1.5 4.8,4.21 6.98,6.53 2.65,1.59 3.98,4.49 6.78,6.28l-0.16,0.23 0,0z","name":"Croatia"},"dk":{"path":"m311.37,281.37c-1.81,-0.13 -3.63,-2.95 -0.99,-2.75 0.71,0.89 2.21,0.72 1.2,1.27 0.93,0.68 0.95,1.07 -0.21,1.48z m2.12,-1.04c1.35,-0.18 -0.34,1.13 0,0z m0.84,-0.24c-0.07,-1 -2.35,-2.59 0.16,-1.62 2.08,0.28 -0.51,1.71 -0.16,1.62z m-17.99,-0.84c-2.31,-0.88 -6.15,-0.22 -4.5,-3.71 0.81,-2.84 -1.69,-4.3 -3.84,-4.7 -1.19,-2.12 0.77,-2.92 1.79,-2.7 1.1,-1.9 -0.71,-4.04 -1.69,-4.68 0.35,-1.37 0.2,-5.41 0.68,-4.97 1.59,3.78 6.34,-5.25 4.96,-0.56 0.24,2.86 4.45,-0.07 2.01,-1.61 0.04,-2.03 -0.06,-3.57 2.27,-2.05 0.18,-1.79 3.93,-0.45 2.6,-2.4 -2.36,-1.07 -4.97,1.4 -7.44,0.51 -0.9,0.41 -2.06,0.6 -1.03,-0.46 2.89,0.74 6.43,-0.56 7.07,-3.76 0.42,-1.7 4.2,-3.59 3.75,-0.9 2.01,1.66 -0.21,4.73 -1.55,6.01 0.4,0.87 0.32,2.52 0.39,3.1 -1.16,1.34 2.36,4.31 4.12,3.09 1.32,1.67 -1.85,5.56 -2.69,2.65 -3.21,0.21 -0.77,4.74 -2.69,6.35 -0.74,1.02 -5.24,-0.82 -2.77,1.37 1.61,1.85 3.89,1.32 5.37,0.39 1.04,1.32 2.66,0.54 1.88,1.61 2.2,1.44 0.71,6.32 -1.89,3.8 -0.99,-0.9 -2.97,-2.42 -3.55,-4.38 -0.8,-2.14 -4.39,1.02 -3.28,1.06 2.19,-0.86 -0.04,1.87 1.38,2.68 -1.87,1.01 -1.25,3.06 -0.58,3.35 -0.3,0.27 -0.55,0.59 -0.78,0.92z m18.96,-2.29c-1.92,-0.02 -1.04,-3.7 -3.92,-2.81 -3.51,-0.09 0.22,-3.64 -2.76,-5.02 -1.79,-1.21 3.2,0.15 3.13,-2.28 0.04,-2.46 4.91,0.23 1.92,1.9 1.06,2.45 3.33,-0.76 2,-2.36 -0.51,-1.34 -2.25,-2.02 0.21,-1.96 2.33,-0.37 1.21,1.23 1.29,2.13 2.22,2.03 -1.98,3.78 -1.88,4.86 2.05,0.87 2.04,2.76 -0.28,2.66 -0.97,0.83 0.11,2.08 0.29,2.88z m-25.23,-19.54c-1.89,-1.51 1.09,-5.6 1.21,-4.99 -1.52,1.21 -1.11,3.3 -1.21,4.99z","name":"Denmark"},"ru":{"path":"m558.98,364.3c-2.56,-0.91 -4.97,-2.14 -7.36,-3.43 -2.39,-1.15 -4.94,-2.06 -7.59,-2.35 -2.81,2.28 -5.5,-0.94 -8.06,-1.85 -1.23,0.3 0.78,2.15 -1.52,1.8 -2.42,-0.25 -3.69,-3.69 -6.4,-2.82 -1.31,0.16 -4.41,0.18 -1.55,-0.66 1.64,-0.7 0.81,-3.34 -0.75,-1.74 0.37,-1.63 2.93,0.94 3.87,-1 1.25,-0.31 2.74,-1.24 3.63,-1.06 1.16,-2.32 -3.44,-3.39 -1.08,-5.92 0.57,-0.81 -0.94,-4.08 0.12,-2.72 0.39,2.37 2.24,1.11 1.25,-0.78 -1.26,-3.41 3.86,0.53 3.04,-2.81 -1.97,-1.81 -4.99,-1.7 -7.55,-2.54 -2.06,-0.94 2.06,-1.24 1.86,-3.16 2.06,1.7 4.87,-1.76 1.32,-1.4 -0.21,-1.02 3.11,-2.69 3.56,-4.64 3.16,0.27 3.03,-5.1 -0.28,-4.48 -2.62,0.21 -2.08,3.91 -4.95,4.14 -2.31,1.85 -0.59,-0.97 -1.26,-1.15 -2.27,0.02 -1.28,-3.82 0.48,-4.34 1.4,-2.13 0.73,-5.08 4.3,-4.68 2.91,0.1 4.24,-2.66 2.99,-5.05 -0.44,-0.81 1.31,-4.54 -0.5,-3.12 -0.89,0.38 -1.08,-3.79 -3.06,-2.28 -2.61,-1.85 3.34,-2.5 1.03,-4.59 -1.03,0.14 -4.3,0.91 -2.02,-0.74 1.96,-2.14 1.02,-4.53 -0.68,-6.4 1.16,-2.59 -2.93,-0.35 -3.64,0.61 0.41,-2.95 -3.61,-0.32 -4.74,-2.01 -1.3,0.69 -2.17,2.73 -3.44,0.57 -1.62,0.46 -2.9,0.42 -4.52,-0.03 -1.18,0.97 0.35,3.57 -1.91,1.94 -2.66,-0.03 -3.84,-4.48 -6.19,-3.24 -2.12,0.99 -3.16,6.03 -6.01,3.79 -0.55,1.88 -3.23,-1.75 -4.12,0.93 -2.26,2.15 -4.17,-0.6 -4.14,-2.64 -1.31,-0.74 -1.67,-2.47 -1.76,-3.17 -1.84,0.68 -2.55,-1.54 -3.04,-1.81 -1.53,1.29 -5.9,2.64 -6.27,0.53 -0.46,-1.43 -3.35,-2.71 -0.58,-3.43 0.87,-2.91 -3.85,-2.55 -4.29,-5.27 -1.34,-1.28 -2.82,-2.7 -4.07,-0.62 -2.6,-1.29 -3.34,1.16 -4.86,2.57 -2.29,-0.64 -4.88,0.47 -3.99,3.28 -1.64,3.09 -5.33,-1.16 -5.28,-3.38 0.29,-1.54 -1.99,-0.85 -0.93,-2.73 -1.04,-1.23 -5.06,-2.53 -2.44,-4.58 2.85,1.31 6.86,-0.11 6.98,-3.34 2.36,-1.51 -0.16,-3.89 -1.6,-4.2 -0.58,-2.91 -4.71,-0.88 -5.61,-1.07 0.65,-2.69 -1.62,-3.41 -3.71,-3.4 -2.11,-1.16 -3.32,-2.8 -3.81,-4.83 -2.42,0.17 -3.41,-1.67 -2.18,-3.83 -0.02,-1.71 -2.9,-2.44 -1.99,-4.84 -0.01,-1.79 -0.45,-2.87 -2.15,-2.08 -2.12,-2.07 -5.85,-2.66 -7.51,0.31 -0.95,2.92 -2.17,-0.33 -1.92,-1.55 -1.94,-2.34 -4.43,2.65 -5.64,-0.22 -1.71,0.04 -3.09,1.26 -3.28,-1.31 -0.9,-2.65 -2.85,-5.01 -4.71,-6.53 -1.83,-1.02 1.04,-5.27 -2.45,-5.76 -1.67,-0.51 -0.04,-2.71 -2.19,-1.57 0.05,-1.42 0.26,-2.99 1.68,-3.72 -0.54,-0.99 -1.34,-2.16 -1.45,-2.96 -2.84,-0.69 -1.01,-4.26 -2.77,-5.86 -2.08,-2.24 0.85,-4.53 0.39,-6.92 -1.01,-2.41 3.22,-2.6 0.55,-4.16 -0.83,-1.3 -2.35,-4.31 0.18,-2.28 1.51,-0.56 0.02,-3.79 2.55,-2.16 2.03,-0.4 0.55,-4.34 3.6,-3.39 1.61,0.41 6.06,0.64 4.72,-1.87 -2.47,0.38 -3.46,-3.31 -5.66,-1.7 -1.73,1.59 -3.35,0.22 -4.28,-0.75 -2.83,1.04 -0.5,-5.97 -3.43,-3.33 -0.79,1.95 -3.72,3.09 -1.67,0.48 4.94,-7.07 7.08,-15.55 9.98,-23.55 0.44,-3.03 2.51,-7.51 -0.31,-9.8 -2.38,-1.89 -5.29,-2.93 -7.96,-4.32 -3.88,-1.06 2.38,-6.07 -1.12,-8.02 -2.45,-0.36 -4.96,-1.94 -3.33,-4.47 -1.48,-1.21 -6.02,-2.28 -3.05,-4.86 0.42,-0.7 -3.23,-0.64 -2.08,-2.79 0.39,-2.06 -0.85,-2.94 1.09,-3.89 -0.82,-2.4 -2.73,-4.51 -4.14,-6.68 -1.51,-2.32 -3.78,-4.06 -5.41,-6.21 -0.98,-3.34 2.21,-6.3 1.62,-9.59 -0.91,-2.31 -3.95,-2.73 -4.86,-5.04 -3.1,0.98 -6.11,-2.82 -4.58,-5.63 1.26,-2.13 -3.52,-2.39 -0.66,-3.49 1.51,-2.49 0.64,-5.59 3.12,-7.72 -0.6,-2.56 3.46,0.62 3.16,-2.41 -2.11,-2.17 1.85,-1.54 2.99,-1.35 2.03,1.63 4.11,1.29 6.52,0.08 0.37,0.23 -0.76,2.57 1.13,2.81 -1.22,0.77 -1.32,4.65 0.4,2.88 0.2,-1.73 1.36,-3.42 1.9,-5.04 3.21,0.08 6.07,-1.95 9.29,-1.34 2.75,0.76 5.58,1.26 8.28,2.2 2.14,0.82 4.03,2.32 6.18,3.01 2,-1.35 5.54,1.61 7.21,-0.07 2.23,0.7 3.31,3.46 5.54,1.69 1.16,1.01 0.65,2.43 2.18,2.82 1.01,2.1 3.8,2.21 3.29,5.21 -0.09,3.44 0.15,7.2 -2.11,10.07 -2.26,3.09 -6,5.79 -10.02,4.97 -2.84,-0.74 -5.34,0.99 -8.08,1.16 -2.01,0.97 -5.49,-2.15 -6.54,-0.13 -1.33,0.97 -2.24,-0.89 -2.89,-1.46 -1,2.57 -7.21,1.52 -6.06,-1.62 -0.53,-0.64 -4.07,0.19 -5.44,0.48 -1.33,1.22 -0,2.41 1.25,1.32 2.16,-0.38 0.62,2.19 3.06,2.74 1.23,1.53 6.57,0.25 5.42,2.51 -1.91,3.1 2.22,0.91 3.81,1.72 2.09,0.58 5.78,2.19 4.56,4.13 2.75,1.59 0.23,3.96 -0.48,5.25 2.3,-0.18 4.43,1.99 4.35,4.27 2,-0.84 0.78,1.8 1.68,2.47 0.1,3.23 4.49,3.53 6.69,2.22 2.28,0.22 3.06,3.83 6.02,2.68 3.14,0.7 6.51,-0.4 7.17,-3.81 0.24,-2.71 -4.02,-6.69 -5.49,-3.3 -2.65,0.34 -5.44,-2.93 -6.7,-4.13 2.45,-0.62 0.68,-2.65 0.87,-3.74 2.98,-0.53 5.18,2.7 8.25,1.24 2.42,-0.59 5.57,1.81 7.6,-0.26 0.47,-1.42 5.9,0.3 3.69,-2.76 -1.12,-2.61 -3.65,-4.39 -6.37,-5.3 -3.26,-1.55 -1.48,-4.68 -0.67,-7 0.13,-2.98 3,-4.72 3.48,-7.44 -0.29,-1.95 -0.01,-6.22 2.42,-3.58 1.94,-2.25 5.82,-1.29 7.83,0.68 1.2,2.1 3.32,0.53 1.22,-1.06 -2.48,-1.87 -1.81,-4.87 -2.24,-7.47 -1.88,-1.57 -2.53,-5.38 -5.87,-5.07 -3.66,0.72 -1.05,-5.18 -3.4,-6.67 -1.19,-0.92 0.46,-3.75 -1.48,-3.55 -1.01,-2.39 -5.64,-2.94 -6.17,-3.55 2.64,0.97 4.98,-0.76 6.95,-2.52 2.55,-2.21 4.69,1.32 7.17,1.82 2.66,0.14 2.98,2.58 0.58,3.55 -1.44,1.01 -3.37,2.5 -1.86,4.15 -2.05,2.82 1.45,5.04 4.18,4.46 2.24,0.66 3.9,4.74 5.89,0.83 -0.45,2.74 1.7,0.82 1.6,-0.76 0.67,-1.92 4.97,-2.44 2.12,-4.7 -0.88,-2.08 -0.93,-5.08 -2.83,-6.29 1.51,-0.41 1.74,-3.36 4.33,-3.14 0.74,-1.52 -4.26,-0.47 -1.65,-2.01 1.38,-2.03 1.95,-4.13 2.25,-6.48 -0.71,-3 2.32,-4.04 2.61,-6.78 0.79,-1.07 0.87,-3.3 2.02,-0.85 0.37,3.39 3.79,-1.54 1.28,-2.71 -2.87,-0.55 -1.44,-3.38 -0.47,-5.41 0.59,0.58 1.75,-1.54 1.49,0.66 0.07,2.26 4.9,2.03 2.07,4.51 -3.06,1.89 2.52,2.73 3.16,0.29 0.8,-0.58 2.28,-0.85 1.45,-2.12 2.18,1.11 3.08,-1.11 1.14,-2.24 -0.63,-3.15 1.27,-6.2 4.04,-7.12 3.15,-0.33 1.76,-4.5 2.46,-6.7 2.68,1.91 1.44,-1.23 0.17,-1.57 -0.24,-1.73 3.07,-1.64 3.49,-0.99 -0.52,3.68 4.93,5.45 5.98,1.6 -0.74,-2.19 -4.02,-2.52 -1.51,-4.94 1.37,-2.71 -0.97,-5.14 -3.64,-5.47 -2.06,-0.69 -6.98,-0.83 -4,-3.86 -2.84,-2.24 1.77,-2.66 3.14,-4.1 2.67,-3.27 6.84,-5.01 10.97,-5.41 2.08,0.66 3.04,-0.42 5.04,-0.78 3.26,-0.69 5.53,-2.7 8.88,-1.89 1.83,0.09 3.72,-0.92 5.18,-0.23 3.3,-0.51 -0.59,-3.78 0.31,-4.05 7.13,0.01 14.26,-0.01 21.38,0.01 2.09,0.14 -2,3.01 0.93,2.93 1.33,0.5 2.97,0.39 1.78,1.28 0.04,1.2 -0.09,5.95 -1.36,3.75 0.88,-1.97 -1.47,-3.03 -1.4,-0.65 -0.13,1.49 -3.77,0.21 -3.69,2.55 -3.37,1.5 0.23,4.73 2.72,4.05 3.82,-0.71 6.21,-3.84 8.09,-6.94 1.84,-0.32 4.98,-2.24 2.66,-4.31C557.34,3.94 555.66,1.55 558.62,2.18c40.17,0 80.35,0 120.52,0 0,32.42 0,64.83 0,97.25 -2.09,0.36 -2.95,2.3 -1.54,3.74 -2.44,-1.53 -2.16,1.82 -2.17,2.03 -1.83,-0.06 -0.41,-2.79 -2.86,-3.06 -0.55,-1.54 -1.56,-2.65 -3.54,-1.77 -1.52,-1.23 -4.42,-2.86 -6,-3.08 -2.3,1.54 0.4,6.71 -3.71,5.55 -1.63,0.21 -3.74,1.9 -3.4,2.86 -1.22,-0.25 -2.92,1.14 -1.43,2.07 -2.82,1.19 1.7,2.9 -0.94,4.55 -2.72,2.09 2.48,0.44 1.29,3.06 -2.53,0.4 -0.3,2.61 -2.09,4 -0.4,3.26 -2.41,5.93 -3.86,8.82 0.28,0.79 -3.1,0.12 -1.27,1.6 -1.02,2.01 -3.11,4.53 -0.2,6.39 -2.52,0.22 -3.43,3.38 -5,5.17 -0.91,1.5 1.12,2.54 -1.32,2.93 -1.23,2.37 -2.15,5.27 -3.97,7.32 1.46,1.7 -3.54,1.33 -2.2,4 0.89,0.84 -2.06,0.35 -2,1.51 -2.16,-0.19 -3.58,4.12 -1.57,4.8 2.75,-1.67 -0.46,5.07 2.92,2.57 1.47,-1.64 1.11,3.68 3.89,2.06 1.15,-1.3 4.64,-3.43 5.55,-1.97 -0.97,2.34 -5.83,2.91 -5.32,5.59 1.65,1.51 -1.67,5.32 2.05,4.87 0.58,1.25 3.67,-0.2 3.17,2.56 -0.46,2.07 -2.09,3.57 -1.96,5.92 -2.28,1.79 1.99,3.07 3.27,1.27 1.22,3.88 3.54,-2.53 5.73,-0.07 1.71,0.15 3.48,-3.04 4.82,-0.75 0.7,2.54 3.93,4.85 1.33,7.39 -0.96,2.05 -3.49,5.21 -5.83,2.98 -2.18,1.39 0.8,4.71 -0.35,6.74 -1.64,-3.35 -4.19,2.67 -7,1.13 -1.58,0.37 -1.77,-1.65 -2.62,-1.81 -0.7,0.72 -4.76,0.36 -3.34,1.66 -0.36,0.87 -3.77,2.22 -1.73,4.23 -0.31,2.89 -2.88,-1.51 -4.31,1.09 -1.46,1.61 -3.55,2.49 -3.46,4.75 -0.41,1.43 -0.54,3.48 -0.05,5.34 -0.27,1.74 -0.64,1.81 -2.46,1.7 -2.35,1.24 -5.67,-2 -7.94,0.36 -1.02,1.19 0.11,2.72 -2.11,2.54 -1.91,-2.74 -5.13,1.42 -6.94,-1.53 -3.68,-1.24 -4.83,6.16 -8.08,2.91 -0.68,-0.31 -3.05,-3.22 -2.23,-1.07 0.44,2 -3.21,4.32 -1.91,5.59 -1.58,-0.54 -1.24,3.52 -1.64,0.7 -1.39,-2.07 -3.9,0.94 -5.63,0.87 0.37,1.37 0.82,0.9 -0.34,1.77 -0.21,2.03 1.56,4.11 -0.43,6.09 -0.26,2.82 -3.85,3.15 -3.39,6.04 1.82,1.79 -0.1,4.43 -1.07,6.43 -3.76,0.87 1.99,2.12 2.03,4.1 0.89,1.78 3.76,2.19 1.71,4.57 -2.3,2.9 -5.15,-1.81 -7.83,-2.01 -3.78,-1.12 -4.32,3.77 -2.19,5.82 -2.31,2.78 -0.33,6.19 0.38,9.1 0.77,1.86 4.43,0.77 3.16,3.54 -0.62,2.49 -0.11,4.99 0.21,7.43 1.17,3.44 5.88,-1.22 6.9,2.2 0.63,0.39 -1.33,1.3 0.64,1.71 0.61,2 4.71,2.89 4.1,0.07 2.42,-0.19 4.16,-3.38 6.65,-1.26 2.61,1.3 4.67,3.68 7.51,4.49 2.44,-0.41 2.29,3.63 -0.15,2.17 -3.16,1.33 0.69,4.72 2.95,3.33 2.69,-1.74 4.67,2.16 2.98,3.28 -1.53,-1.48 -3.23,1.37 -1.51,2.46 -1.66,0.09 -1.17,4.59 -3.15,5.57 -2.16,-0.57 -0.01,3.21 -2.03,1.18 -1.51,-0.51 -1.63,0.74 -2.82,1.17 0.46,1.78 3.76,-0.82 2.44,1.78 0.45,1.46 -0.73,2.48 0.5,3.94 -0.91,1.42 1.06,4.29 -0.87,5.01 0.89,2.05 -1.39,4.46 -0.11,6.57 1.6,2.36 2.84,-1.08 4.63,0.84 2.19,0.61 6.36,2.5 5.42,5.48 1.51,1.9 3.6,2.8 3.89,5.79 1.08,1.98 3.28,1.24 4.3,3.24 2.25,0.68 4.45,1.39 6.37,2.79 1.16,1.48 3.78,2.23 4.69,2.86 -0.38,2.65 -2.37,5.25 -1.49,7.93 0.05,2.46 -6.1,4.34 -5.15,1.14 -2.52,-0.74 -5.24,-0.5 -7.55,-1.88 -1.49,0.54 -3.24,0.69 -4.5,0.55 -1.71,1.13 -6.19,1.11 -5.4,-1.84 -0.88,-3.94 -4.63,1.38 -6.95,-0.97 -1.81,-1.22 -2.73,1 -2.64,2.13 -3.4,-2.47 -4.1,3.12 -6.37,4.33 -1.56,1.14 -0.42,-3.07 -2.75,-1.69 -2.4,0.37 -5.28,1.01 -7,-0.66 -2.78,0.67 -5.63,0.98 -8.42,1.61 1.94,1.66 -2.76,2.56 -3.79,2.43 -2.67,-0.72 -5.06,0.99 -7.69,0.02 -2.34,1.37 -6.27,0.31 -6.05,4.11l-0.04,0.01 0,0z m57.81,-33.85c-0.89,-1.57 0.49,-2.17 0,0z m-241.23,-51.26c-1.5,-0.26 -4.88,0.4 -5.3,-0.46 2.59,-1.58 -0.9,-5.56 2.71,-5.44 2.09,-0.97 5.31,1.36 6.88,-1.15 -0.17,-1.75 -1.39,-4.59 1.04,-3 2.58,1.66 5.83,-0.05 8.09,1.03 2.4,1.17 -0.19,4.14 1.51,6.12 -0.91,2.05 -4.72,1.7 -6.85,2.38 -2.67,0.39 -5.38,0.53 -8.08,0.53z m245.17,-54.27c-0.96,-0.5 -1.79,-4.14 -0.7,-1.7 0.41,0.34 1.1,1.13 0.7,1.7z m15.47,-62.08c-0.5,-1.68 1.86,0.26 0,0z M392.43,81.96c-1.18,-1.24 -0.52,-3.74 1,-1.58 0.97,0.64 4.51,-0.85 3.11,1.22 -1.28,-0.1 -4.06,-2.2 -4.11,0.36z m69.72,-22.48c-3.13,-0.37 -5.18,-4.96 -3.51,-7.6 1.49,-0.95 5.9,-1.19 6.08,0.31 -0.75,2.23 0.93,5.01 -1.2,6.83 -0.37,0.32 -0.88,0.46 -1.36,0.46z m1.2,-32.66c0.64,-1.98 -0.94,-1.7 -1.81,-2.37 0.83,-0.97 3.57,-1.76 1.01,-2.23 -1.29,0.52 -2.78,0.7 -3.28,0.14 -1.2,0.89 -3.04,-4.18 -2.96,-0.9 1.94,3.97 -3.66,-2.01 -2.98,1.25 2.3,2.87 -2.86,2.37 -3.53,0.29 -1.84,-1.41 -2.9,-5.04 0.07,-4.98 -0.36,-1.21 -1.52,-2.86 -0.18,-4.45 -3.01,0.94 -0.61,-2.79 -2.49,-3.65 -1.26,2.21 -4.03,0.25 -1.58,-1.13 2.3,-1.91 -4.09,-1.91 -1.43,-4.6 0.66,-1.81 2.03,-2.29 3.79,-2.01 1.73,-0.33 3.25,0.66 4.85,0.17 2.53,-1.3 -3.03,3.08 0.48,2.2 3.11,-1.44 -1.22,5.41 2.65,3.83 2.34,0.52 1.33,4.72 3.21,4.64 2.81,0.65 4.59,3.49 7.55,3.98 2.95,1.5 6.52,1.02 9.42,1.43 -0.95,0.85 -5.31,2.46 -4.34,3.45 -1.86,0.24 -4.2,1.89 -2.01,3.36 -1.56,0.82 -3.63,-0.42 -4.9,1.06 -0.87,-0.61 -1.05,-0.3 -1.52,0.53z m23.35,-5.93c-1.68,-0.42 -4.33,-0.5 -2.76,-2.36 -1.89,0.07 -1.65,-3.14 0.36,-1.62 2.48,0.8 5.12,0.27 7.63,0.6 2.21,1.62 -2.46,4.83 -3.16,1.83 -0.45,0.12 -0.96,1.84 -2.07,1.55z","name":"Russian Federation"},"mt":{"path":"m343.65,509.08c-1.52,-0.23 -1.75,-0.24 0,0z m1.95,2.72c-1.32,-0.63 -1.5,-0.7 0,0z","name":"Malta"},"me":{"path":"m385.29,433.13c-1.98,-1.45 -3.12,-5.3 -6.16,-4.27 -0.68,-0.6 -0.46,-1.87 -1.44,-2.17 0.16,-1.66 0.06,-3.3 -0.89,-4.86 1.96,-1.05 1.28,-4.74 3.12,-5.09 1.81,3.01 2.14,-1.15 0.71,-2.43 2.24,-0.2 3.4,-2.11 5.57,-0.36 3.49,0.56 2.95,4.72 6.22,5.9 -2.5,0.45 -0.84,6.17 -3.72,4.67 0.19,-3.37 -2.81,0.5 -2.99,1.87 -0.8,1.83 -2.3,3.26 -0.46,4.87 0.08,0.47 0.4,1.59 0.03,1.87z","name":"Montenegro"},"rs":{"path":"m397.48,431.57c-0.16,-2.49 -1.05,-5.46 -3.99,-5.18 -0.83,-1.86 -3.16,-3.89 -0.74,-5.1 2.42,-2.35 -3,-3.15 -2.73,-5.8 -1.28,-2.34 -5.16,-1.7 -5.47,-5.07 -0.61,-1.48 -2.43,-2.36 0.08,-2.14 2.37,-1.69 -1.79,-3.25 -2.79,-4.49 -3.49,-0.35 0.76,-4.99 -0.07,-7.08 -1.54,-0.41 -2.38,-0.6 -2.22,-2.53 -0.29,-0.9 3.52,-0.03 1.84,-1.89 -1.99,-0.46 -4.18,-1.03 -2.61,-2.61 0.5,-1.92 -2.64,0.29 -1.69,-2.2 -0.12,-1.58 -1.93,-2.81 0.65,-3.27 2.64,-1.35 4.3,-3.64 7.52,-3.04 2.34,-0.11 4.56,2.67 6.11,3.82 1,0.92 0.22,4.94 3.24,4.94 1.65,0.3 5.5,0.5 3.47,2.78 1.27,1.27 0.97,1.07 -0.4,2.22 0.32,1.47 3.21,0.4 3.09,2.01 1.78,0.14 4.21,-0.13 4.93,1.74 2.85,0.45 1.17,-3.79 1.99,-3.56 1.66,0.7 3.37,1 1.04,1.99 -1.64,2.21 4.19,3.86 0.86,5.71 -2.2,2.75 0.34,6.72 2.98,8.19 2.92,0.51 3.82,2.98 1.52,5.06 -0.82,0.05 -2.7,-0.25 -2.65,1.85 -1.23,2.37 3.66,5.04 -0.48,5.54 -2.42,1.11 -4.61,2.18 -7.35,2.39 -1.32,2.74 -6.31,0.55 -6.16,5.74z","name":"Serbia"}}});
--- /dev/null
+jQuery.fn.vectorMap('addMap', 'fr_regions_2016_mill',{
+ "insets": [
+ {
+ "width": 100,
+ "top": 600,
+ "height": 122.71220181016422,
+ "showTooltip": true,
+ "backgroundColor": '#a5bfdd',
+ "hoverColor": '#c9dfaf',
+ "bbox": [
+ {"y": -640515.9263248637, "x": -6082830.163693012},
+ {"y": -235112.28629661424, "x": -5752460.702426716}],
+ "left": 0
+ },
+ {
+ "width": 50,
+ "top": 440,
+ "height": 42.928059423707,
+ "bbox": [
+ {"y": -1855676.1027106678, "x": -6882793.3793751765},
+ {"y": -1778355.8860469644, "x": -6792735.480530344}],
+ "left": 0
+ },
+ {
+ "width": 50, "top": 510, "height": 57.21127928831266,
+ "bbox": [
+ {"y": -1668974.3969949444, "x": -6819419.302373176},
+ {"y": -1615651.747314515, "x": -6772817.783980524}],
+ "left": 0
+ },
+ {
+ "width": 50,
+ "top": 700,
+ "height": 42.31095479952366,
+ "bbox": [
+ {"y": 2357030.8412201093, "x": 6150785.273719754},
+ {"y": 2416319.6251247157, "x": 6220848.433704593}],
+ "left": 740
+ },
+ {
+ "width": 40,
+ "top": 690,
+ "height": 55.96611426730096,
+ "bbox": [
+ {"y": 1415975.8044653006, "x": 5016650.333473452},
+ {"y": 1454680.1669724442, "x": 5044313.045465417}],
+ "left": 640
+ },
+ {
+ "width": 900,
+ "top": 0,
+ "height": 749.2159980728637,
+ "bbox": [
+ {"y": -6244653.662562441, "x": -571670.6975907331},
+ {"y": -4882430.695155527, "x": 1064707.428102987}],
+ "left": 0
+ }
+ ],
+ "paths": {
+// "fr-gf": {
+// "path": "M0.97,715.11l0.03,-0.01l1.04,0.32l0.16,0.02l0.86,-0.15l0.51,-0.46l0.86,-2.17l2.19,-0.54l1.75,-1.7l3.1,-6.63l2.47,-3.35l0.8,-2.07l0.47,-0.34l0.06,-0.66l-0.55,-0.79l0.94,-2.39l-0.02,-0.46l-0.64,-0.76l0.44,-0.66l-0.5,-1.65l0.23,-1.91l-0.45,-0.69l-0.46,-0.14l0.86,-1.73l2.07,-2.81l1.19,-0.89l0.84,-2.29l1.16,-1.21l0.63,-1.48l-0.08,-2.67l0.59,-2.69l-0.24,-0.63l-0.99,-0.8l-0.94,0.14l-0.73,-1.11l-0.67,-2.34l-1.1,-1.52l-2.15,-0.96l-0.85,-1.38l-0.94,-0.69l-0.78,-1.45l-0.91,-0.91l-0.6,-1.53l-1.41,-1.5l0.64,-2.85l-0.13,-0.85l-2.32,-1.44l0.46,-1.46l-0.01,-1.08l-0.33,-1.55l-1.0,-2.09l-0.57,-3.53l0.9,-2.56l0.01,-1.55l-0.48,-1.52l0.02,-2.19l-1.39,-1.38l0.0,-4.12l-0.26,-0.77l1.19,-1.14l-0.22,-1.91l0.25,-0.92l2.73,-3.76l0.74,-0.61l1.11,-2.37l4.66,-4.06l2.22,-1.17l1.58,-1.93l1.87,-4.21l0.52,-3.48l1.46,-2.55l2.53,0.36l1.76,0.65l0.25,-0.36l3.4,2.05l6.81,3.12l3.05,0.38l3.49,0.88l0.86,-0.07l1.81,1.42l0.75,-0.24l0.28,-0.38l-0.11,-0.54l0.6,0.16l3.21,1.77l2.63,0.74l0.44,-0.2l3.1,1.65l2.24,2.12l1.54,0.85l1.06,1.69l7.47,6.54l0.33,0.77l1.43,0.41l2.53,2.16l0.64,1.06l-0.27,1.23l0.6,0.43l2.01,-1.77l1.2,0.54l0.54,0.96l-2.76,4.28l0.03,1.47l0.4,0.37l0.6,-0.32l0.54,-0.93l0.57,-1.94l2.11,-1.78l0.87,0.63l1.21,1.89l2.18,1.25l2.26,2.1l0.89,1.31l1.5,6.51l-0.33,1.34l-1.91,1.37l-0.89,1.13l-0.01,0.47l0.45,0.15l2.11,-0.67l1.15,-0.61l0.64,-0.84l0.53,-2.04l-0.28,-4.87l0.65,-1.95l1.05,-0.2l1.97,1.65l0.0,0.74l1.13,1.9l0.28,1.83l0.66,0.89l-0.25,0.37l0.26,0.94l0.51,0.66l1.03,0.2l-0.69,0.86l-0.09,1.41l1.97,3.43l0.18,0.84l-0.06,2.16l-0.64,2.0l-0.3,0.58l-2.4,1.19l-1.04,0.92l-1.71,3.75l-2.1,2.32l-1.35,0.82l-0.13,1.42l-0.89,0.24l-0.67,0.68l-0.88,2.96l-1.99,3.34l-0.78,0.63l0.04,0.74l-4.48,7.35l-0.56,0.42l-1.13,0.12l-0.77,0.72l-0.64,1.51l-1.27,1.01l-0.24,0.8l0.31,2.33l-2.32,4.42l0.33,0.96l-1.39,1.05l-2.96,7.18l-1.09,0.6l0.67,2.17l-2.13,3.57l-1.21,1.07l-1.71,2.4l-5.24,2.87l-0.69,0.6l-0.84,1.79l-2.17,0.93l-2.57,-0.42l-1.92,-1.13l-5.09,0.79l1.41,-1.11l-0.13,-0.65l-2.09,-1.75l-0.88,-1.21l-0.87,-0.45l-0.43,0.08l-1.13,1.43l-2.74,1.58l-2.14,0.34l-1.52,-0.76l-2.22,-0.27l-2.22,-0.96l-0.87,-0.06l0.23,-1.21l-0.6,-0.69l-0.75,-0.14l-1.33,0.55l-1.05,1.47l-1.27,0.26l-0.98,1.22l-1.24,-0.04l-0.49,1.63l-0.46,0.33l-1.97,0.97l-0.71,-0.32l-1.16,0.23l-0.87,2.01l-0.86,0.39l-1.72,-1.68l-2.66,0.42l-1.6,-0.21l-2.03,-1.41l-3.41,-0.59l-1.86,-1.51l0.34,-0.7l-0.6,-0.59l-1.7,-0.92Z",
+// "regionName": "Guyane fran\u00e7aise",
+// "post_id": "47"
+// },
+ "fr-h": {
+ "path": "M838.53,672.37l1.08,0.06l0.88,-0.67l0.97,0.12l1.07,-2.21l1.86,-0.26l0.74,-0.59l0.25,-1.79l0.9,-1.48l-0.38,-0.73l-0.69,-0.15l0.49,-1.84l0.66,-0.7l2.07,-0.66l0.26,-0.57l-0.29,-0.57l0.29,-1.57l1.09,-0.31l1.75,0.99l1.22,-0.28l0.96,-0.92l0.83,-2.39l1.69,-0.12l3.84,-1.79l6.8,-1.3l2.03,-0.92l0.4,-1.61l3.75,-3.54l2.7,-0.22l4.3,0.91l1.55,0.91l1.19,2.4l0.37,0.25l0.75,-0.18l2.19,-3.35l0.93,-2.22l-0.53,-1.78l0.44,-1.29l-0.33,-1.53l-1.69,-2.25l1.55,-2.06l-0.41,-1.45l0.2,-1.05l1.75,-1.77l0.11,-1.69l-1.01,-1.98l0.14,-1.93l0.77,-0.45l2.42,-0.01l0.97,-0.35l0.69,0.85l1.59,0.95l-0.62,1.65l0.32,1.04l0.64,0.74l-0.24,1.34l1.15,6.71l-0.1,2.14l-1.97,6.87l-0.02,4.12l-0.45,1.01l0.91,0.83l0.24,0.8l-0.14,1.25l1.14,1.91l2.33,1.17l0.51,-0.65l0.25,0.54l0.31,7.85l0.73,1.54l-0.6,1.91l-0.19,2.68l1.67,5.79l-0.45,9.13l0.43,1.76l-0.38,2.31l-0.37,0.56l-1.68,1.43l-1.61,2.76l-5.49,7.01l-0.58,7.85l0.53,5.07l-0.08,5.26l-1.16,0.85l-0.93,1.45l0.36,0.56l0.38,0.0l-0.34,1.47l-1.74,0.45l-0.13,1.0l-2.1,-0.31l-0.71,0.1l-0.34,0.46l0.08,0.47l-0.87,1.33l0.15,0.53l1.18,0.53l2.94,-0.89l0.29,0.34l-0.16,0.77l-1.25,1.25l-1.71,0.61l-1.08,1.44l-0.92,0.16l-0.29,0.57l0.28,0.85l-0.28,0.85l0.82,0.98l-0.71,0.84l0.01,0.67l-2.14,1.17l-0.98,0.12l-0.35,0.4l0.0,0.54l0.75,0.99l-0.59,0.7l-0.15,0.77l0.54,0.37l1.71,-1.1l-1.36,2.96l-0.77,0.37l-0.56,-0.17l-1.56,-1.26l-4.09,-1.13l0.5,-1.41l0.63,-0.25l0.15,-0.7l-3.04,-1.76l0.64,-0.96l0.0,-0.46l-0.51,-0.38l-2.15,1.21l-0.36,-0.76l-1.07,0.38l-0.9,-0.82l-1.69,-0.51l-2.48,-0.05l-1.61,-1.23l-1.4,-0.31l-0.77,-0.93l-1.36,-0.18l0.42,-0.48l-0.28,-0.83l-3.45,-1.04l0.22,-1.42l-0.44,-0.73l-0.5,-0.17l1.06,-2.73l1.05,0.33l3.28,-1.35l0.76,-0.71l0.25,-0.88l2.21,-1.71l-0.28,-0.67l-8.03,-1.29l-0.49,-0.46l0.45,-1.23l-0.37,-0.54l-1.66,0.01l-3.15,0.9l0.15,-0.36l-0.39,-0.56l-1.58,-0.18l1.37,-0.22l1.43,-1.12l0.36,-1.08l-0.11,-0.68l-0.53,-0.48l2.22,-0.4l2.07,-1.1l0.18,-0.51l-0.3,-0.7l-0.72,-0.7l1.32,-0.68l0.04,-0.58l-0.51,-0.92l1.44,-2.22l-1.63,-2.04l-1.3,-0.47l-1.37,0.15l-3.3,1.36l-2.54,0.15l-1.78,0.63l-0.16,-0.36l0.64,-1.35l-0.36,-1.17l-1.16,-1.23l2.2,-0.2l1.3,-0.47l1.04,-1.45l-0.12,-0.56l-0.44,-0.27l0.27,-0.44l1.08,-0.73l3.47,-1.33l0.38,-0.36l0.09,-0.92l-0.43,-0.78l-0.97,-0.68l-1.71,-2.86l-0.82,-0.13l-1.52,0.37l-0.72,-1.14l-1.11,-0.59l-2.23,-0.31l0.1,-0.87l-0.66,-0.46l0.63,-0.4l0.19,-0.89l-0.4,-0.4l-0.84,0.0l0.49,-1.2l-0.24,-0.73l-0.53,-0.37l0.18,-0.95l-1.46,-1.0l2.12,-0.06l1.46,-0.81l2.49,-0.44l2.27,-0.94l0.28,-0.91l-1.26,-1.16l-2.16,-0.95l-0.59,-1.02l-0.54,-0.04l-0.76,0.57l-0.02,-0.4l1.8,-0.96l0.05,-0.67l-1.61,-1.07l-1.41,0.12l-1.48,0.55l-0.55,-1.32l-0.01,-0.82Z",
+ "regionName": "Corse",
+ "post_id": "495"
+ },
+ "fr-f": {
+ "path": "M352.12,269.71l-0.39,-0.79l0.59,-1.42l1.29,-1.16l5.17,-2.45l1.63,-1.53l1.57,-4.34l0.07,-3.55l0.45,-1.34l2.91,-2.22l0.88,-1.62l-0.43,-1.98l0.6,-3.59l-0.6,-0.63l-1.31,-0.12l-0.88,-2.08l2.47,-0.44l0.71,-0.46l0.07,-1.0l-1.12,-0.94l0.07,-0.52l3.99,-2.03l0.86,-0.92l-0.08,-0.73l-0.51,-0.52l-3.66,-0.66l-2.36,-1.54l1.12,-0.96l0.25,-1.0l-1.86,-3.44l0.07,-2.76l-0.31,-0.7l-0.92,-0.77l0.03,-1.1l0.42,-0.63l2.29,-0.4l5.6,-2.3l2.13,-1.95l0.67,-1.64l1.22,-1.8l-0.16,-0.83l-1.74,-2.11l0.08,-3.7l-3.65,-3.73l-2.55,-1.62l-1.61,-2.81l-0.36,-3.23l1.82,-1.67l1.34,-0.77l5.76,-1.41l2.04,-0.07l0.74,-0.36l1.7,-2.02l3.48,-0.35l0.63,-0.53l0.22,-1.53l3.0,1.67l3.49,-0.02l1.93,0.63l4.71,-2.07l1.42,-1.16l0.69,-1.87l0.95,-1.4l1.34,-1.03l2.49,-1.16l1.05,-1.01l0.26,-1.64l-0.52,-1.68l0.12,-0.44l2.22,-1.39l3.12,5.29l1.41,1.78l0.26,1.59l-0.56,2.83l0.31,1.68l0.56,0.67l1.6,0.81l-0.36,1.11l-1.35,1.63l-0.2,0.71l0.26,0.98l1.48,0.99l0.55,1.38l1.5,1.71l3.83,2.4l0.73,2.38l2.38,1.58l0.52,0.67l0.38,1.69l-0.03,2.29l1.38,2.04l1.1,0.79l4.59,1.88l2.43,-0.21l0.24,2.38l2.15,2.42l0.66,2.91l0.56,0.84l1.26,0.74l-1.59,2.0l-0.13,0.8l0.28,0.63l1.27,0.64l8.96,-1.77l2.18,-0.89l1.74,-2.19l1.08,0.42l1.34,1.84l0.89,0.32l1.9,-0.44l1.41,-1.25l0.41,-0.04l2.61,1.32l2.42,-0.25l1.05,1.47l1.06,3.38l3.56,2.09l1.09,1.21l-0.82,1.86l0.48,1.68l-2.36,-0.11l-1.14,1.09l0.09,1.33l1.07,0.83l2.02,0.26l3.17,-0.65l8.35,0.59l2.29,-0.94l1.66,-1.6l0.83,-0.26l2.03,0.05l-0.41,1.53l0.32,0.38l1.06,0.2l7.05,-1.97l1.76,0.12l2.27,0.58l1.52,1.02l1.38,4.33l1.05,1.28l2.81,2.18l0.52,2.18l-1.42,3.21l-0.46,0.6l-2.42,1.45l-1.42,1.43l-1.36,0.14l-0.46,0.42l0.1,2.67l0.95,2.06l-0.78,1.4l0.13,1.67l-0.42,0.96l-4.41,2.06l-4.17,0.46l-1.07,0.84l-0.36,1.76l0.56,1.49l2.33,0.9l2.32,2.0l1.13,2.08l-0.6,1.62l0.07,0.78l2.52,3.57l-3.82,0.47l-2.79,1.57l-0.07,0.91l1.55,1.67l1.57,3.11l1.42,1.89l-0.51,2.82l-0.86,1.93l-2.02,2.99l-0.1,0.83l0.94,1.66l1.73,0.94l3.6,3.47l0.78,3.4l1.43,3.27l1.23,3.95l-0.07,3.7l2.22,2.27l0.43,5.38l-1.31,4.71l1.12,2.83l-0.12,0.92l-2.12,3.69l-0.31,1.64l-3.08,-0.17l-2.72,0.77l-4.06,2.3l-1.68,2.09l-2.02,-0.32l-1.56,1.24l-2.13,-0.62l-0.64,-0.74l-0.84,-0.12l-4.12,3.34l-1.44,0.06l-0.57,0.31l-0.14,1.87l-2.29,0.13l-0.55,1.04l1.04,1.73l-0.51,1.0l0.05,1.2l1.67,2.1l0.3,1.38l-5.07,1.34l-7.99,0.81l-3.73,1.66l-1.58,1.88l-1.55,0.74l-2.19,3.55l-5.83,-0.29l-3.22,0.59l-2.11,-0.72l-3.44,0.0l-2.44,-0.84l-5.56,-0.15l-1.36,0.29l-1.79,1.06l-1.02,-0.37l-1.84,-1.89l-0.73,-0.15l-0.91,0.28l-0.52,0.62l-0.16,2.28l-0.72,0.98l-3.85,-0.24l-2.6,1.5l-1.18,-0.45l-0.12,-1.0l-0.46,-0.52l-0.8,-0.24l-1.55,0.21l-2.31,-0.53l-1.04,0.29l-3.98,3.58l-1.69,0.94l-2.46,-1.47l-0.93,-1.4l-0.84,-0.54l-0.84,-0.04l-0.83,0.37l-0.7,1.07l-1.07,0.49l-3.45,0.3l-2.25,-0.75l-0.71,-0.49l0.93,-3.22l-0.72,-1.01l-1.32,-0.68l-1.11,-1.06l0.45,-2.58l-0.5,-1.16l-0.91,-1.04l-1.23,-0.68l-5.0,-0.37l-0.32,-1.41l-0.46,-0.57l-3.41,-1.35l-2.07,-1.8l-0.45,-0.65l-0.51,-2.09l-0.01,-1.46l0.61,-2.86l-0.92,-2.42l-1.83,-2.14l-2.6,-1.8l-7.16,-9.22l-1.26,-3.31l-1.36,-1.88l-6.25,-3.03l-0.71,0.68l0.16,1.39l0.73,1.37l-0.4,0.35l-5.41,0.31l-1.21,0.29l-1.78,1.09l-2.67,-0.46l-2.71,0.24l-1.01,-0.19l-0.92,-0.81l-0.25,-0.98l0.04,-2.48l0.47,-2.57l-0.35,-1.03l-2.01,-0.4l-0.72,-1.12l-0.61,-0.29l-3.43,0.61l-0.29,-0.38l0.35,-1.68l-0.32,-1.32l-0.99,-0.39l-1.98,0.41l-0.5,-1.99l-0.74,-0.2l-1.7,0.66l-1.69,-2.39l0.88,-5.76l1.43,-5.26l4.43,-6.2l-0.2,-2.84l0.98,-2.98l1.96,-3.88l-0.45,-3.6l1.51,-3.81l7.61,1.68l0.98,-0.08l0.62,-0.83l-0.48,-2.31l0.7,-0.71l2.9,0.89l2.04,-1.63l2.39,-0.48l3.32,-1.45l2.28,-0.47l0.53,-0.73l-0.22,-1.26Z",
+ "regionName": "Centre",
+ "post_id": "497"
+ },
+ "fr-e": {
+ "path": "M25.63,242.25l0.98,-1.98l0.98,0.49l19.62,-3.77l3.65,0.88l0.91,-0.32l0.5,-0.76l0.62,-2.51l-0.36,-1.04l-0.81,-0.89l-0.58,-2.39l-1.01,-0.81l-2.92,-0.69l-0.66,-1.14l-0.5,-0.27l-1.37,0.44l-3.11,-1.71l-2.01,0.46l-2.96,4.7l-0.73,0.21l0.57,-1.39l-1.14,-2.33l0.91,-1.36l-0.39,-1.22l-1.09,-0.38l-3.21,-0.11l-0.03,-1.0l1.84,0.17l0.95,-0.24l0.41,-0.81l-0.22,-0.93l0.98,-2.21l0.53,-0.43l0.46,0.19l-0.71,2.55l0.23,0.48l1.87,0.72l5.36,-0.32l1.36,0.83l1.04,0.18l3.66,-0.78l2.04,-0.12l0.21,0.35l1.46,0.44l5.01,-0.91l0.33,-0.98l-0.42,-0.4l-1.83,0.11l-0.45,-0.19l-0.2,-0.74l-0.68,-0.16l-1.09,0.67l-1.22,-1.03l-2.07,0.18l0.59,-0.25l0.44,-0.73l1.79,-1.5l0.1,-0.44l-0.38,-0.25l-1.24,0.08l-1.29,0.8l0.0,-0.47l-0.85,-0.4l-0.96,1.04l-0.96,-0.2l-1.87,1.11l-0.5,0.08l-0.43,-0.77l-0.56,-0.05l-1.09,0.68l-1.02,0.2l3.24,-3.36l6.46,-3.39l0.19,-0.5l-0.47,-0.25l-4.22,1.6l-4.19,0.6l-5.77,2.77l-2.94,0.62l-1.85,0.8l-1.08,0.12l-4.35,-1.11l-0.58,0.4l-0.15,1.12l-0.27,0.13l-3.57,-0.23l-0.68,-1.74l0.68,-0.06l0.36,-0.44l-0.1,-1.01l-1.05,-2.18l-0.09,-1.34l0.28,-1.34l0.6,-0.89l1.01,-0.27l0.3,-0.88l-1.49,-1.16l0.52,-1.93l2.34,-3.42l1.07,0.45l0.46,-0.14l-0.19,-0.71l0.54,-0.32l2.86,-0.47l3.08,1.22l1.04,-0.16l0.21,-0.65l-1.67,-2.31l0.37,-0.22l2.65,0.59l1.24,-0.03l0.38,-0.34l-0.26,-0.44l-1.23,-0.43l0.07,-0.55l-0.35,-0.44l4.17,-0.0l3.43,-1.04l1.35,-0.03l0.38,-0.31l-0.2,-0.45l-0.86,-0.45l1.38,-0.23l3.24,-1.36l1.36,0.05l0.84,0.86l-0.39,1.52l0.42,0.5l1.58,-0.18l2.35,-1.07l2.95,0.58l0.4,-0.4l0.0,-0.59l-1.04,-0.57l0.11,-0.28l1.91,-1.43l2.45,-0.6l1.27,0.07l1.03,0.52l0.71,-0.39l0.36,0.69l0.75,0.24l1.01,-1.05l-0.02,-1.18l4.45,-1.51l-0.24,1.62l0.55,0.4l-0.25,0.84l1.04,1.07l-0.07,1.9l0.48,-0.03l1.68,-1.43l0.9,-0.29l-0.28,0.38l0.1,0.75l3.35,2.74l0.61,-0.01l0.45,-0.54l-0.24,-0.79l0.28,-0.74l-0.54,-1.41l0.79,0.35l0.21,-0.4l0.01,-2.72l0.24,-0.43l0.93,0.16l0.45,-0.85l1.48,0.59l2.89,-0.11l2.82,1.61l2.57,-0.38l0.28,1.21l1.61,0.42l1.96,-0.05l0.87,-0.41l0.21,-0.49l-0.71,-3.08l2.98,-0.46l0.33,-0.33l-3.03,-3.0l-0.19,-0.98l2.29,-1.26l1.58,-2.51l0.68,0.39l1.86,0.1l2.17,1.06l-0.28,0.54l0.32,0.6l2.25,0.04l1.71,-1.23l5.84,-2.09l1.17,0.0l1.67,-1.78l0.55,0.11l0.26,2.26l-0.4,1.28l-0.83,1.08l0.5,1.21l0.41,0.18l0.97,-1.9l1.78,-1.89l1.89,-1.51l0.81,0.06l1.06,-1.09l0.51,-0.13l0.85,0.83l-0.4,1.97l0.68,0.68l-1.05,2.42l-1.65,2.02l-0.1,0.85l0.4,0.4l0.8,-0.2l3.03,-4.81l0.76,0.15l1.33,-0.56l0.67,0.24l-0.02,0.75l-1.71,1.0l-0.01,1.15l2.48,1.16l4.01,0.41l0.01,1.2l-0.8,0.72l0.21,0.84l1.94,1.27l1.37,1.73l3.87,2.85l0.88,3.1l-0.26,0.69l0.22,0.77l2.78,1.74l3.18,1.32l-1.16,1.99l1.46,0.52l1.88,1.65l0.62,-0.24l0.25,-2.13l2.16,0.1l1.16,-0.4l3.22,-3.61l5.89,-2.95l0.99,-1.12l0.0,-0.53l-0.84,-0.45l1.49,-0.39l1.05,0.13l0.44,0.89l0.49,0.2l3.51,-1.61l2.1,-2.09l0.67,0.82l1.02,0.23l-1.01,1.46l-1.68,1.58l0.05,0.62l1.51,0.76l3.43,-2.2l0.62,2.37l0.78,0.42l0.63,2.14l0.57,0.3l1.25,-1.02l0.75,0.88l1.35,-0.4l0.22,-0.89l-0.64,-0.57l0.93,-0.86l1.16,0.66l0.55,-0.01l0.02,-0.55l-1.01,-1.64l2.26,-0.68l2.61,-0.22l1.31,2.11l0.42,1.64l1.16,0.92l-0.26,1.06l1.54,2.0l0.32,0.9l-0.23,1.64l0.21,0.41l0.46,-0.06l2.43,-1.55l0.01,-0.69l-1.38,-0.83l0.13,-0.69l-0.92,-1.66l0.91,0.63l0.48,-0.04l0.09,-0.48l-1.1,-1.52l-1.85,-0.63l-1.61,-3.1l0.13,-0.41l0.98,-1.09l1.07,-0.34l0.37,-1.34l0.28,-0.13l2.22,0.0l0.28,-0.7l4.99,-0.86l0.54,1.16l-1.35,1.87l-0.06,2.08l1.7,1.73l2.67,0.63l4.54,0.04l4.83,-0.64l3.02,-1.39l2.6,5.45l1.04,3.06l1.91,2.9l3.27,2.38l2.44,0.21l1.93,-0.61l2.78,-1.91l2.08,-0.77l2.22,-2.4l2.39,0.03l6.14,1.5l2.32,1.25l-0.2,5.67l0.77,8.15l-1.95,4.1l0.21,1.05l0.9,1.52l0.8,4.72l-0.73,1.74l0.74,4.88l0.57,1.17l1.18,1.08l0.09,4.44l-1.36,0.63l-4.18,0.61l-2.21,1.9l-0.63,1.08l-2.9,9.1l-1.14,1.77l-0.41,1.91l-6.47,-1.09l-0.75,-0.44l-0.77,-1.22l-1.29,-0.55l-3.34,-0.0l-1.83,1.23l-6.34,2.57l-1.86,1.31l-1.2,1.55l-2.58,1.54l-7.31,2.01l-3.72,-0.8l-4.42,1.41l-1.22,0.67l-2.07,-0.04l-2.38,0.42l-3.35,1.92l-0.46,1.34l0.13,2.04l-0.71,1.59l-0.73,3.38l-0.54,0.87l-2.15,1.35l-1.11,2.03l-0.68,0.15l-0.2,-1.32l-0.56,-0.55l-0.75,-0.02l-2.38,0.9l-1.56,-0.86l-0.9,0.05l-0.9,0.52l-1.08,1.85l-1.37,1.25l-3.37,0.29l-1.9,-0.8l-1.35,0.35l-0.47,0.66l-0.66,-0.06l-0.41,-0.22l0.4,-1.16l-0.67,-1.08l0.25,-0.19l3.7,-0.17l2.26,-0.53l1.21,0.07l0.42,-0.34l-0.3,-0.45l-0.99,-0.24l-2.8,0.23l-5.66,-1.72l-2.91,0.66l-1.93,0.0l1.05,-1.04l0.47,-1.05l-0.12,-0.48l-0.5,0.01l-0.86,0.73l-2.73,0.25l-0.32,0.4l1.11,0.66l-1.57,-0.11l-0.6,-0.37l-0.61,0.32l-0.09,1.63l-0.48,0.24l-1.89,-0.59l-1.16,0.04l-4.35,1.05l-1.51,-0.37l-2.24,-2.86l-1.34,-0.5l-0.54,-0.67l1.53,-0.13l1.13,1.56l1.15,-0.56l0.69,0.46l0.65,-0.25l0.21,-0.93l0.66,0.6l1.69,0.45l1.67,-0.14l1.46,-0.78l-0.13,-0.88l2.17,-2.6l0.37,-1.63l-1.48,-1.88l-0.44,-0.11l-0.26,0.86l0.64,0.9l-1.1,0.64l0.6,0.74l-0.39,0.02l-1.13,-0.82l0.39,-0.14l-0.02,-0.47l-0.84,-1.0l-0.86,-0.45l-1.89,-0.29l-0.44,0.26l0.31,0.55l-3.56,0.47l-0.85,0.64l-0.55,0.91l-2.13,0.65l0.0,-0.48l-0.46,-0.4l-1.32,0.49l-0.19,-1.21l0.7,-1.13l-1.61,-0.61l-0.47,-1.47l-0.85,-0.33l-0.4,0.46l0.45,2.1l0.01,1.94l0.27,0.88l1.3,1.72l-0.77,0.06l-1.84,-1.77l-0.48,-0.01l0.02,1.33l-0.45,-1.98l-0.51,-0.31l-0.67,0.4l-0.04,1.56l-1.22,-0.46l-1.86,0.87l-0.79,0.06l0.11,-0.88l-1.36,-0.9l-0.9,-0.02l-0.6,0.64l-1.75,-2.35l-1.96,-1.13l0.78,-2.82l4.43,-1.77l0.2,-0.57l-0.36,-1.98l-0.6,-0.34l-0.71,0.3l0.01,-1.53l-0.4,-0.43l-0.73,0.2l-0.33,0.57l-1.35,-0.45l-0.97,0.16l-0.33,0.36l1.51,1.12l0.5,1.38l-0.92,0.03l-0.89,0.76l-0.75,0.18l-0.19,0.67l0.52,0.61l-0.59,0.38l-0.66,1.45l-2.06,-1.94l-1.14,-0.34l-0.21,-0.79l-2.13,-0.87l-1.87,-0.17l0.38,-0.4l0.08,-1.06l0.95,0.1l0.65,-0.32l1.28,-2.54l0.88,-0.82l-0.25,-0.95l-0.44,0.09l-2.95,2.66l-1.78,0.9l-1.23,0.25l-0.32,0.34l0.22,0.41l0.92,0.77l-4.61,0.99l-0.63,-0.17l-2.02,-2.33l-2.01,-3.11l-0.6,-0.18l-0.57,0.4l-0.83,-0.02l-2.13,-0.46l-2.06,0.0l-1.4,-1.03l-2.45,0.05l-0.95,-0.29l-0.44,-0.91l-0.74,-0.41l-3.29,1.44l-0.96,-0.68l-3.48,0.2l-1.22,-1.97l-0.89,-0.77l0.11,-1.0l-0.37,-0.51l-1.34,-0.44l-0.26,-0.87l-1.15,-1.13l-1.72,-1.0l-1.75,-0.32l-0.44,0.53l0.51,1.46l-0.36,0.96l-0.24,0.22l-0.49,-0.49l-1.37,0.27l-0.79,0.62l-1.44,-1.0l-2.43,-0.67l-0.69,-0.82l-1.04,-2.67l-0.42,0.16l-0.7,1.27l0.43,1.31l1.4,1.55l-1.0,0.23l-0.97,0.66l-0.91,-1.34l-1.28,0.04l-0.48,1.28l0.73,0.75l-0.22,0.89l0.4,0.4l1.27,0.0l-1.81,1.5l-2.27,0.79l-8.52,-0.35l-0.07,-1.48l1.2,-0.18l0.52,-0.76l-0.21,-1.72l-1.54,-4.18l-0.96,-1.47l-2.99,-3.31l-6.1,-3.99l-1.18,0.45l-1.3,1.04l-1.84,-1.46l-3.15,-0.06l-3.8,-0.92ZM122.84,278.42l0.11,0.08l-0.08,0.32l-0.03,-0.4ZM122.52,282.02l0.23,1.3l1.65,2.47l-0.96,-0.23l-0.59,0.29l-0.71,-2.5l0.37,-1.33ZM133.84,278.57l0.45,0.38l-0.04,0.12l-0.41,-0.51ZM123.36,297.99l1.01,0.42l1.66,-0.07l0.33,0.33l-0.17,0.99l-1.32,0.33l-4.68,-0.38l-3.08,-0.8l-0.79,-0.48l0.14,-1.16l-1.41,-3.37l0.57,-0.67l4.02,1.8l3.72,3.05ZM1.37,208.95l2.5,-0.92l1.47,0.95l-2.48,1.11l-0.61,-1.01l-0.88,-0.14Z",
+ "regionName": "Bretagne",
+ "content": "The region of tradition and folklore. Music and the Feznoz parties. The magical coast of Brittany offer a very spectacular landscape. The charm and gentleness of the people, fine regional cuisine, cider, traditional costumes, language and Celtic influence makes this a very special region.\nThe dramatic coast lines, with cliffs, rock lined beaches and emerald waters are ideal for sailors, wind surfers and divers.\n Old fishing ports are dotted along the coast, from where the boats used to set sail to \"La Terre-Neuve (the Newfoundland) in Canada.\nThe shell fish and other sea food is excellent and abundant. Another very traditional dish from Brittany is the \"Pancake\".",
+ "post_id": "498"
+ },
+ "fr-x1": {
+ "path": "M572.78,248.31l2.08,2.76l1.34,0.84l0.91,0.04l2.45,-1.72l13.22,-1.52l1.29,-0.82l0.21,-1.86l1.83,-1.16l3.72,0.47l2.38,-0.98l2.0,1.2l3.68,0.69l0.55,0.46l-0.52,1.12l0.41,0.79l2.84,0.99l0.59,0.52l-1.02,1.96l0.47,1.65l1.15,0.43l0.67,-0.37l0.54,-0.83l0.47,-0.03l3.02,3.37l2.43,4.0l0.05,1.03l-2.6,0.55l-0.58,0.46l-0.24,0.88l1.41,1.97l0.37,2.77l0.83,1.89l1.58,0.62l1.84,-1.46l0.41,0.07l2.15,2.8l2.67,1.55l2.02,-0.25l1.44,-1.65l0.75,-0.28l0.74,1.67l1.78,1.46l2.45,1.22l0.68,2.08l0.94,0.42l0.76,-0.18l2.08,-1.37l1.1,1.03l1.19,-0.18l2.67,-4.97l0.7,-0.81l0.64,-0.2l3.99,-0.6l3.21,1.65l1.53,0.3l6.58,-1.86l0.7,-0.44l0.69,-0.83l0.2,-0.97l-0.19,-2.21l0.55,-2.48l-0.58,-2.14l0.19,-0.51l0.63,-0.82l6.42,-3.94l2.41,-2.91l2.03,-0.75l0.4,-0.92l-0.24,-0.87l1.66,-0.91l1.8,-2.61l0.31,0.88l-0.17,1.53l0.84,0.59l3.53,-2.14l2.66,-2.84l1.54,-0.3l2.78,0.53l1.12,0.68l0.83,1.02l-0.06,1.28l0.31,0.67l3.72,1.77l2.64,-0.19l2.39,-1.21l3.0,-0.19l2.26,0.8l5.28,2.92l1.38,0.35l2.17,-0.03l1.59,-0.57l1.93,-2.36l0.72,-0.14l3.61,3.45l3.4,1.51l6.19,4.28l1.5,0.2l0.14,1.19l0.91,0.99l8.6,4.3l0.93,0.78l0.84,1.51l0.15,2.71l-0.51,1.44l-1.54,2.09l0.01,1.47l0.98,0.9l2.57,0.38l3.76,3.82l0.41,1.01l0.0,1.19l-0.38,1.14l-2.02,-0.53l-3.13,0.45l-2.79,-0.68l-2.25,0.79l-0.29,0.46l0.15,0.87l0.88,1.86l-1.14,1.05l-2.47,0.75l-0.32,0.37l-0.08,1.24l-1.37,0.7l-1.02,1.11l-1.15,2.35l0.42,0.52l7.29,-0.62l1.04,-0.41l2.04,1.73l-0.29,0.52l-1.73,0.73l-0.94,1.05l-0.92,0.22l-1.15,1.02l-0.52,1.79l0.21,1.82l-4.0,2.53l-1.78,1.58l-1.19,1.68l-3.91,3.12l-1.76,0.53l-0.28,0.41l0.06,1.05l-0.9,0.44l-0.31,0.51l-1.37,0.42l-0.72,0.57l-0.9,1.31l0.59,1.61l-1.2,1.49l-3.98,2.62l-6.53,1.77l-3.04,1.51l-1.11,2.94l1.07,2.32l0.08,1.66l-1.81,4.3l0.94,1.51l-0.16,1.55l-1.18,1.03l-2.12,1.0l-2.15,1.96l-4.43,2.12l-8.29,6.58l-0.92,1.27l0.3,1.23l1.2,1.17l-1.94,2.13l-3.09,4.33l0.33,2.88l-3.79,4.35l-2.1,1.94l-1.03,1.64l-4.26,3.58l-2.33,0.56l-7.03,-0.44l-0.45,-0.65l-0.22,-1.3l-0.66,-0.88l-3.08,-2.47l-0.52,-0.06l-2.8,2.33l-0.57,1.15l-1.28,0.24l-1.18,1.22l-1.45,0.59l-0.82,0.73l-1.63,-0.33l-0.55,-0.58l0.17,-3.09l-0.55,-0.51l-1.61,-0.3l-0.9,-1.08l-2.54,-0.97l-1.18,-3.01l-1.25,-0.94l-1.43,-0.41l-0.41,-0.65l-0.02,-2.61l-0.31,-0.39l-4.28,-1.02l-1.53,-0.8l-2.16,-1.97l-1.58,-0.52l-2.05,0.18l-3.7,1.25l-1.28,0.13l-3.18,-1.12l-1.8,-0.3l-1.05,0.23l-0.72,0.64l-1.5,3.9l-0.84,4.18l-1.47,2.56l-0.15,1.93l-3.53,6.7l-1.32,4.86l0.08,0.87l-2.89,-0.32l-0.98,-0.75l-0.98,-2.54l0.04,-1.79l-1.73,-1.29l-0.18,-1.86l-0.76,-0.6l-1.87,-0.55l-1.12,0.62l-0.53,1.93l-1.03,0.26l-2.35,-2.01l-0.72,0.04l-1.62,0.92l-1.03,0.08l-2.29,-0.51l-2.25,-0.92l-0.92,0.11l-0.68,0.9l-1.27,4.46l-1.74,2.06l-1.51,1.09l-1.62,0.57l-1.65,0.02l-4.83,-1.24l-3.08,0.65l-4.17,-0.93l-4.25,1.28l-1.42,-0.08l-2.06,-1.47l-2.77,-1.06l0.11,-2.73l-0.6,-1.7l5.26,-2.58l1.52,-1.33l0.08,-0.97l-0.86,-1.29l0.04,-1.38l-0.52,-1.25l0.64,-3.0l-0.8,-3.17l-2.08,-1.35l-4.18,-0.89l-2.7,-2.24l-1.72,-0.07l-3.83,-1.94l0.37,-3.1l-0.38,-1.88l-1.07,-0.72l-1.57,-2.64l-2.41,-2.14l-0.51,-1.65l-1.52,-2.44l-2.0,-0.46l-0.44,0.26l-0.43,1.96l-1.36,0.87l-0.44,1.79l-3.8,2.0l-1.31,0.28l-0.45,-0.19l-0.06,-1.53l-1.67,-2.57l-1.59,-0.43l-0.82,0.13l-1.33,1.43l-0.97,0.48l-2.64,-1.07l-1.82,-0.29l-1.87,0.11l-3.04,1.06l-3.34,-2.82l-1.29,-0.36l-1.77,0.04l-2.77,-1.63l-1.05,-1.28l-0.19,-0.83l0.34,-2.43l2.35,-4.46l-1.16,-3.32l1.31,-4.66l-0.44,-5.56l-2.26,-2.43l0.11,-3.58l-1.26,-4.05l-1.41,-3.21l-0.84,-3.54l-3.63,-3.57l-1.85,-1.04l-0.71,-1.21l2.92,-5.34l0.56,-3.19l-0.17,-0.62l-1.7,-2.2l-1.25,-2.57l-1.44,-1.56l0.08,-0.29l2.27,-1.1l2.94,-0.21l1.27,-0.38l0.25,-0.54l-0.6,-1.33l-2.08,-2.61l0.57,-2.21l-1.26,-2.45l-2.54,-2.22l-2.26,-0.85l-0.21,-1.48l0.17,-0.7l0.75,-0.56l4.07,-0.42l4.77,-2.29l0.53,-0.86l-0.08,-2.09l0.82,-1.64l-0.97,-2.16l-0.15,-2.18l1.55,-0.25l1.46,-1.47l2.5,-1.52l2.08,-4.18l-0.63,-2.78l-2.95,-2.35l-0.89,-1.09l-1.46,-4.45l-1.91,-1.27l-3.81,-0.73l0.73,-2.78l3.72,-2.26l1.64,-2.66l0.15,-0.86l-0.86,-1.48l-0.18,-1.43l1.15,-3.5l0.41,-0.36l3.03,0.06l2.27,-0.89l4.61,0.48l6.23,-0.91l2.51,0.47l0.72,-0.38l0.87,-1.43l1.29,-1.21l0.68,0.48l0.65,2.62l0.7,0.31l1.89,-0.13l2.82,1.56l5.42,6.18l0.37,0.67l0.39,2.99l-1.82,2.13l0.14,1.13l2.19,0.89l3.06,2.04l1.02,0.12l1.09,-0.29l0.78,-1.18l1.07,0.24l1.04,2.12l1.93,1.93l4.55,6.82l-1.58,0.69l-0.06,1.02l2.02,1.14l2.25,-0.31l0.24,0.47l-0.05,2.31l0.83,1.24l2.41,0.53l2.82,-0.18l1.96,0.66l0.71,-0.08l1.68,-1.15l1.71,0.44l2.04,-0.07l2.04,-1.61l0.63,0.05l1.22,0.92l0.82,0.12l0.66,-0.82l0.03,-1.6Z",
+ "regionName": "Bourgogne – Franche Comt\u00e9",
+ "post_id": "492"
+ },
+// "fr-mq": {
+// "path": "M29.58,521.59l2.04,4.09l0.61,0.13l1.69,-1.37l2.35,-1.15l2.71,-0.7l1.66,-0.01l-1.1,1.0l0.15,0.92l-1.99,2.03l-1.17,-1.91l-0.57,-0.12l-1.08,0.91l-0.34,2.42l0.25,2.72l0.56,0.33l1.58,-0.37l0.87,0.65l-2.81,1.51l-0.09,0.63l0.51,0.51l-0.97,0.5l-0.21,0.44l0.48,1.35l1.03,0.35l0.45,-0.14l0.84,-1.13l2.53,1.1l-1.26,0.61l-0.22,0.52l0.83,1.98l1.01,1.02l2.32,1.31l0.92,2.1l2.03,0.78l0.32,0.71l-0.03,1.98l0.6,0.39l0.71,-0.41l-0.25,2.4l0.41,1.46l0.77,1.07l-1.35,1.57l0.15,0.59l1.42,0.69l1.69,5.35l-1.43,0.75l-1.43,3.51l-1.14,1.51l-1.19,0.51l-1.52,0.14l-1.15,-0.51l-0.42,-1.43l0.56,-0.96l1.27,-0.41l1.36,-0.96l0.05,-2.11l-1.15,-1.71l-0.48,-0.15l-3.49,1.8l-1.39,-0.1l0.06,-0.84l-0.32,-0.42l-0.79,-0.15l-3.38,0.55l-6.91,-0.91l-2.07,0.3l-2.92,1.18l-1.59,0.24l-0.81,-0.46l-2.5,-3.48l-0.12,-1.4l-1.35,-0.99l2.86,-2.99l3.07,-1.49l0.78,-0.71l1.21,1.62l2.11,0.55l1.94,-0.83l0.87,-2.13l-2.15,-3.7l-0.25,-2.0l-0.53,-0.33l-3.16,0.87l-5.49,-0.02l-1.6,-2.4l-4.32,-2.94l-2.07,-1.98l-1.24,-3.51l-1.31,-1.93l0.78,-2.27l-0.31,-1.75l-1.64,-2.67l-3.41,-3.56l-0.79,-1.4l-0.29,-1.59l0.29,-1.51l0.74,-1.23l0.98,-0.9l4.61,-2.61l4.02,-0.06l3.94,1.27l5.23,3.33l4.71,2.09l1.84,1.19l1.36,2.81l1.45,0.5Z",
+// "regionName": "Martinique",
+// "post_id": "500"
+// },
+// "fr-yt": {
+// "path": "M678.38,715.39l-0.52,0.0l-2.02,-6.29l2.65,-2.73l0.87,2.15l0.24,2.21l-0.38,2.26l-0.84,2.4ZM647.49,692.27l-1.04,0.75l-0.14,0.46l1.6,0.36l0.6,0.88l2.18,1.87l2.93,3.52l1.63,1.28l2.49,0.62l4.96,-0.04l2.61,0.78l2.6,1.74l1.05,1.73l0.02,2.1l-0.68,2.82l-3.71,5.46l-1.53,1.19l0.14,2.09l1.04,1.92l2.81,1.86l-0.3,1.89l-3.07,6.4l-2.6,3.07l-1.21,3.45l2.82,4.18l-1.15,1.69l-1.53,1.06l-0.76,-1.37l-0.41,-0.2l-1.1,0.17l-1.53,1.03l-1.83,0.51l-1.63,-0.43l-2.25,-1.33l-1.24,0.41l0.12,-1.88l-0.84,-1.8l-1.74,-0.77l-1.92,0.17l0.0,-0.31l2.91,-1.61l0.29,-2.68l-1.49,-2.81l-2.83,-1.57l0.22,-0.43l1.06,-0.67l1.55,-0.14l0.82,0.5l2.83,3.33l2.81,1.68l1.89,-0.73l0.6,-2.42l-0.76,-2.88l-1.37,-2.17l-1.74,-1.96l-4.21,-3.56l2.58,-0.75l0.36,-0.4l-0.07,-1.34l-0.91,-1.33l-0.68,-2.3l-0.55,-4.71l-0.6,-2.37l-1.57,-1.23l-1.87,-0.61l-1.59,-1.03l-1.74,-2.81l-0.41,-4.1l7.31,-7.87l0.59,1.27l-0.82,0.34Z",
+// "regionName": "Mayotte",
+// "post_id": "501"
+// },
+ "fr-x4": {
+ "path": "M522.82,186.37l0.16,-1.02l1.68,-1.84l-0.22,-0.68l-0.89,-0.72l3.35,-0.37l0.76,-1.01l0.2,-1.75l1.48,-2.59l4.29,-3.81l1.07,-2.07l1.68,-1.1l0.81,-1.18l2.06,-1.61l0.39,-0.63l-0.02,-1.16l-0.99,-0.78l-3.39,0.04l-0.83,-0.47l0.06,-1.11l1.31,-0.86l1.17,-1.67l0.21,-0.79l-0.25,-2.97l1.17,-0.73l3.12,0.34l1.45,-0.25l1.33,-1.0l0.36,-0.86l-0.5,-1.26l-1.41,-0.81l-0.87,-0.98l-1.6,-0.47l-0.56,-4.86l-0.91,-2.12l2.95,-1.52l5.1,-1.23l4.31,-0.57l0.52,-0.78l-0.12,-1.35l0.85,-0.54l2.04,0.1l3.04,1.4l2.06,-0.68l2.32,0.84l1.14,-0.78l0.49,-1.35l0.08,-2.0l-0.52,-1.32l-0.68,-0.44l0.36,-0.58l1.56,-0.48l0.31,-0.52l-1.82,-3.65l1.76,-1.97l-0.32,-2.31l0.46,-1.54l-1.6,-4.48l0.75,-0.67l1.86,-0.09l1.55,-0.83l1.47,-2.03l1.72,-1.03l3.2,-2.67l0.94,-1.48l0.01,-1.35l-1.51,-2.11l0.44,-2.67l1.83,-3.2l0.19,-1.43l-0.27,-1.06l-1.76,-2.77l-0.03,-2.56l3.32,-0.4l9.73,2.22l1.91,-0.29l8.49,-3.54l2.64,-0.38l0.81,-0.51l1.03,-2.26l0.49,-2.73l-0.42,-1.4l0.42,-1.14l6.43,-5.47l1.16,-0.45l0.43,1.03l0.89,0.26l1.7,-0.3l0.3,0.34l-0.46,3.48l-0.42,-0.16l-0.65,0.28l-1.15,2.13l-0.07,2.33l-2.32,4.87l-0.3,1.37l0.89,1.44l2.96,1.1l0.83,1.27l-0.04,1.46l-1.51,3.13l0.87,1.86l0.09,3.19l0.8,0.73l1.7,0.19l5.18,-1.02l3.3,2.38l3.4,1.12l3.27,3.72l2.07,1.47l1.72,0.4l3.86,-0.67l2.26,2.11l0.31,0.88l-0.71,0.59l-0.19,1.13l0.55,1.39l1.85,0.16l0.84,-1.02l2.66,0.93l1.03,0.78l2.89,4.41l0.2,1.33l-0.26,1.48l0.69,1.13l1.59,0.26l4.1,-2.17l2.36,0.84l1.04,-0.1l1.27,-1.8l1.33,-0.57l4.11,0.97l2.13,-1.42l2.44,0.88l3.06,3.02l1.61,0.63l3.79,0.76l0.99,0.85l0.81,2.18l0.48,0.25l7.2,-0.85l1.6,-1.26l0.33,-1.21l1.94,-0.22l0.21,-0.79l2.88,-0.27l3.24,0.68l4.79,2.7l1.85,0.15l2.29,-0.93l0.53,0.08l5.52,2.34l0.95,0.78l0.43,1.78l3.49,3.43l-1.28,0.51l-0.34,1.05l0.39,0.92l5.12,4.46l-0.0,1.31l1.48,0.85l1.03,2.86l0.65,0.17l0.76,-0.38l0.24,0.78l-0.46,1.9l1.04,1.55l0.86,0.29l2.67,0.02l2.33,0.73l0.97,-0.14l1.37,-1.65l-0.67,-2.53l0.24,-0.75l2.79,0.42l1.85,-0.14l4.34,1.88l1.09,0.08l-0.03,2.41l0.73,2.3l1.51,1.11l2.29,-0.99l0.3,-0.66l-0.21,-0.77l0.26,-0.22l2.39,1.43l1.98,0.72l5.31,0.06l2.06,0.7l0.67,-0.41l0.98,-1.46l2.37,-0.6l0.98,-1.9l2.23,-0.77l0.85,0.06l0.55,0.9l3.47,0.42l0.22,0.64l-0.49,0.46l-0.0,0.71l3.02,3.51l1.57,0.84l2.62,0.39l1.24,0.55l0.93,1.37l0.84,0.6l1.01,0.16l2.14,-0.55l2.64,0.55l2.77,-0.96l5.0,1.23l4.59,-0.2l9.65,4.37l6.29,1.29l-1.02,1.01l-1.91,3.08l-2.79,6.52l-0.7,1.0l-3.2,1.38l-0.7,0.85l-0.46,1.3l-2.12,0.14l-0.95,0.41l-0.65,2.78l-3.8,3.45l-2.72,1.47l-2.58,3.44l-0.59,2.73l-0.01,2.81l0.72,2.0l-2.23,1.72l-0.47,2.28l-1.12,1.98l-0.77,3.01l-0.07,1.2l0.89,2.96l-0.06,0.91l-0.71,0.98l-2.24,1.43l-0.92,4.51l-4.46,5.68l-0.61,2.23l-1.16,1.77l-0.81,2.75l0.18,3.35l2.65,4.1l0.12,2.21l-2.19,2.41l-0.36,2.63l-1.24,1.91l0.21,3.21l-1.19,0.9l-1.06,3.68l0.75,2.84l-0.03,1.09l-1.25,1.28l-0.34,0.8l0.43,2.7l1.23,0.87l2.11,3.24l1.05,1.06l-0.21,1.33l-3.51,1.37l-2.73,1.91l0.1,0.7l1.12,0.69l0.01,0.32l-1.72,0.61l-0.07,0.53l0.6,1.0l-0.84,0.74l-2.31,-0.79l-0.93,0.18l-0.3,0.87l0.9,1.46l-1.22,1.75l-1.53,0.53l-4.27,-0.15l-4.24,1.21l-0.96,-0.82l-3.02,-1.12l-0.26,-0.95l1.04,-2.07l-0.39,-0.58l-1.82,0.11l0.39,-1.2l0.0,-1.45l-1.12,-2.14l-3.45,-3.28l-0.86,-0.37l-1.8,-0.05l-0.57,-0.53l0.01,-0.77l1.5,-2.01l0.61,-1.75l-0.17,-3.01l-1.03,-1.85l-1.11,-0.92l-8.58,-4.29l-0.62,-0.69l-0.07,-1.18l-0.36,-0.37l-1.57,-0.16l-6.14,-4.25l-3.36,-1.49l-2.89,-3.05l-1.0,-0.52l-0.66,-0.08l-0.72,0.37l-1.82,2.29l-1.32,0.48l-1.98,0.03l-1.09,-0.27l-5.28,-2.92l-2.42,-0.87l-3.37,0.19l-1.11,0.31l-1.36,0.92l-2.15,0.18l-3.33,-1.51l-0.16,-1.78l-1.1,-1.33l-1.36,-0.79l-2.91,-0.55l-2.05,0.41l-2.72,2.89l-3.08,1.95l0.04,-2.28l-0.66,-0.67l-0.65,0.03l-0.83,0.72l-1.26,2.11l-1.69,0.8l-0.26,0.52l0.33,0.93l-0.2,0.45l-1.94,0.67l-2.38,2.89l-6.41,3.93l-0.82,1.02l-0.32,1.1l0.57,2.0l-0.54,2.43l0.2,2.14l-0.58,1.27l-6.85,2.14l-1.15,-0.23l-3.43,-1.72l-4.29,0.62l-1.46,0.81l-2.83,5.28l-0.39,0.11l-0.67,-0.88l-0.77,-0.22l-2.89,1.56l-0.53,-0.69l-0.42,-1.51l-3.74,-2.21l-0.5,-0.48l-0.45,-1.41l-0.55,-0.47l-1.19,0.09l-1.76,1.89l-1.49,0.14l-2.23,-1.34l-2.42,-2.98l-1.06,-0.04l-1.62,1.4l-0.89,-0.42l-0.59,-1.48l-0.36,-2.77l-1.38,-1.79l0.33,-0.6l2.33,-0.37l0.83,-0.93l-0.18,-1.31l-1.18,-2.31l-4.52,-5.41l-1.18,-0.18l-1.09,1.24l-0.51,-0.21l-0.23,-0.95l0.85,-1.35l0.11,-1.07l-1.02,-0.91l-2.65,-0.91l0.44,-1.3l-0.31,-0.7l-0.84,-0.49l-3.68,-0.69l-1.99,-1.23l-2.67,0.98l-2.98,-0.51l-1.76,0.38l-1.47,1.25l-0.22,1.84l-0.81,0.45l-13.17,1.5l-2.39,1.7l-0.5,0.01l-1.12,-0.71l-1.95,-2.64l-0.78,-0.38l-0.55,0.41l-0.26,2.11l-1.42,-0.99l-1.02,-0.13l-0.91,0.39l-1.31,1.25l-1.75,0.05l-1.93,-0.43l-1.85,1.2l-2.25,-0.63l-2.87,0.17l-1.97,-0.36l-0.57,-0.86l0.08,-2.22l-0.52,-0.94l-0.98,-0.2l-1.67,0.35l-1.41,-0.73l1.56,-0.67l0.12,-0.94l-4.65,-7.0l-1.91,-1.9l-0.72,-1.79l-0.62,-0.61l-1.22,-0.42l-0.78,0.28l-0.57,1.04l-1.58,0.12l-2.82,-1.93l-2.05,-0.84l1.35,-1.41l0.55,-1.05l-0.39,-3.31l-0.49,-0.96l-5.62,-6.39l-3.0,-1.66l-2.3,-0.01l-0.47,-2.37l-1.12,-0.92l-0.15,-0.51l0.56,-2.27l-0.63,-1.75l1.81,-1.89l-0.93,-1.96l2.55,-0.54l0.75,-0.59l1.02,-2.47l0.98,-1.32l2.66,-1.99l0.06,-0.58l-1.98,-2.34l-2.8,0.05l-0.2,-1.26l0.51,-1.93l-0.76,-3.12l-2.03,-2.25l-1.36,-0.04Z",
+ "regionName": "Grand-Est",
+ "post_id": "502"
+ },
+ "fr-x5": {
+ "path": "M296.09,638.61l-0.69,-4.39l0.23,-0.9l1.78,-2.58l-0.28,-3.88l2.39,-2.45l2.79,-0.25l0.84,-0.59l0.32,-0.83l-0.41,-1.39l0.02,-1.75l0.72,-0.92l2.37,-1.37l1.67,-2.92l1.05,0.11l0.6,-0.32l1.2,-3.37l1.88,-1.77l0.55,-1.02l0.07,-0.67l-0.62,-1.7l0.51,-2.21l0.68,-0.76l2.02,-0.75l0.47,-0.89l-1.07,-3.38l0.21,-2.73l-0.21,-0.77l-0.56,-0.5l-0.61,-0.06l-0.78,0.37l-1.02,1.09l-0.38,-0.27l-0.07,-1.71l1.65,-0.19l0.44,-0.8l-0.43,-1.63l-1.92,-3.78l-1.59,-1.2l-0.74,-1.54l-1.23,-0.77l-5.85,-1.11l-1.94,0.13l-0.8,-1.93l-0.88,-0.6l1.33,-2.32l-0.5,-1.87l1.41,-0.23l0.84,-0.72l1.33,-3.17l-0.83,-1.53l0.05,-2.22l1.48,-3.42l-0.0,-0.64l-0.91,-2.1l-1.51,-1.7l0.06,-0.26l3.02,-2.18l2.14,0.33l2.17,-0.22l1.91,-1.79l2.5,-1.32l1.3,0.7l0.06,0.52l-0.83,1.47l0.06,0.63l0.61,0.78l1.48,0.53l2.83,0.04l0.81,-0.49l0.46,-0.83l-0.21,-2.54l0.68,-1.02l1.79,-0.56l0.96,0.87l1.31,-0.01l1.3,-0.95l2.0,-2.61l0.42,-0.08l4.36,1.63l0.81,-0.02l3.09,-1.56l1.3,-0.2l4.46,-1.96l1.1,-0.75l2.5,0.3l5.09,-1.52l1.7,0.75l2.19,1.82l1.56,-0.16l3.92,-2.03l1.14,-2.97l2.17,-1.22l0.77,-1.7l1.0,-0.23l2.2,0.69l1.76,-0.35l0.51,-0.77l-0.02,-0.8l-0.33,-0.62l-1.03,-0.71l2.05,-1.55l2.29,-4.41l0.28,-1.14l-0.68,-1.14l-2.14,-0.75l-0.89,-1.21l0.8,-1.93l0.2,-2.29l0.6,-0.27l1.68,0.95l1.42,0.26l5.01,-0.38l1.18,-1.19l0.12,-3.52l-1.84,-1.84l-0.96,-2.38l-0.09,-1.96l-1.19,-1.7l0.07,-0.49l0.56,-0.53l2.99,-1.33l3.6,-2.94l3.41,-5.27l0.78,-0.63l2.29,-0.5l4.57,-2.86l1.44,-2.18l-0.02,-1.02l-0.61,-0.82l0.11,-0.81l0.64,-0.86l2.37,-0.76l1.69,-2.66l2.13,-1.79l0.74,-1.12l-0.14,-1.73l0.68,-1.13l0.08,-1.03l-1.31,-3.89l0.24,-0.96l3.33,-2.09l1.05,-0.26l1.04,-0.9l1.16,1.27l2.28,-0.55l2.62,0.91l4.01,2.82l1.3,1.87l1.92,0.91l1.31,1.01l0.85,0.2l1.52,0.03l3.21,-0.98l3.94,-1.84l2.17,0.72l1.98,-0.89l4.23,-0.19l0.61,1.12l0.9,5.86l3.12,4.71l1.22,2.47l-0.85,4.57l-0.66,1.67l0.13,0.4l1.71,1.0l1.23,3.98l0.91,0.71l0.84,0.16l0.43,-0.29l0.49,-1.7l5.01,-1.51l1.0,0.08l1.12,1.11l0.62,0.08l1.36,-0.63l3.34,0.11l1.98,-0.21l1.25,-0.59l3.91,-4.25l0.61,-2.45l2.43,-3.52l0.63,-2.44l7.94,-7.42l2.16,2.45l0.35,2.78l0.85,0.31l2.55,-0.29l2.18,2.96l0.8,2.12l1.02,0.73l1.85,0.66l-1.03,0.82l-0.2,0.72l0.58,1.36l0.58,3.63l1.38,2.09l2.07,1.57l0.62,-0.19l0.85,-2.42l1.89,-2.92l0.36,-2.65l1.38,-4.58l0.47,-0.79l1.76,-1.22l0.98,-3.72l0.74,-0.4l1.59,1.82l1.21,-0.05l1.38,-0.79l3.42,-3.06l2.41,-0.28l3.68,-2.03l1.93,-0.24l0.36,0.35l0.79,2.6l3.5,5.9l1.31,1.29l1.23,0.42l1.33,-0.63l3.37,-0.36l1.07,-0.91l0.56,-2.31l0.89,-0.32l1.69,0.16l0.84,0.67l-0.48,1.5l0.3,0.89l4.51,0.95l4.08,3.38l2.89,1.45l1.57,0.41l-0.03,2.85l1.28,3.55l0.51,3.07l0.72,2.11l0.66,1.17l1.36,0.88l0.8,1.32l2.21,6.94l1.77,1.52l1.64,2.61l-0.83,2.07l0.49,3.26l0.42,0.65l0.92,0.24l4.17,-0.59l1.08,1.04l4.93,2.42l1.51,0.3l1.25,-0.53l1.13,-1.2l2.93,-1.99l2.23,-0.62l0.91,0.24l-0.18,1.71l0.35,0.84l1.54,0.89l0.98,-0.13l1.05,-0.78l0.46,-2.02l0.63,-0.49l3.18,-0.06l1.68,0.67l2.19,2.02l1.73,0.78l2.57,0.61l0.57,1.69l1.23,1.54l0.1,1.58l1.9,1.83l0.18,2.73l-0.33,2.14l0.45,2.79l0.62,0.47l1.22,-0.4l1.2,0.21l4.51,5.33l-0.09,0.53l-1.09,-0.09l-0.55,0.26l-0.07,2.45l-1.05,1.25l-1.67,1.19l-2.8,1.16l-5.36,3.57l-0.17,0.92l0.54,4.15l-1.95,4.79l0.01,1.9l-0.43,1.1l-4.47,-1.25l-2.03,0.57l-1.49,1.04l-1.68,2.12l-1.37,2.92l0.45,1.06l1.58,0.26l-0.52,1.33l-2.32,0.57l-0.61,1.38l-1.54,0.44l-3.46,2.46l-2.02,0.48l-1.44,1.06l-1.17,0.31l-1.37,3.01l-2.27,-0.34l-2.81,-1.63l-0.8,-1.47l0.85,-1.47l-0.07,-0.6l-1.92,-1.42l-3.63,-0.32l-3.46,0.39l-2.41,0.83l-13.11,9.5l-7.26,2.86l-2.05,1.55l-4.61,5.42l-1.04,0.41l-2.52,-1.04l-4.05,0.36l-4.36,1.63l-4.56,3.3l-1.44,1.8l-2.59,2.25l-1.5,2.23l-2.41,2.09l-2.8,6.09l-1.93,6.26l0.17,0.94l0.79,0.58l0.07,1.22l-0.96,8.67l0.17,4.88l-0.34,3.08l0.26,4.02l0.72,5.72l1.02,1.05l4.27,1.24l0.37,0.52l-0.12,1.76l1.98,2.59l0.3,1.34l-2.29,0.36l-3.05,-0.09l-1.83,-0.7l-1.61,-2.13l-2.87,-0.28l-1.16,0.57l-2.17,-0.57l-1.94,1.35l-3.1,0.24l-3.76,2.65l-4.83,-0.08l-1.22,0.53l-2.65,1.86l-0.57,0.72l0.5,1.8l0.52,0.57l-2.26,-0.17l-2.79,-0.85l-1.31,0.01l-0.83,0.63l-0.48,1.11l-0.67,0.22l-2.94,-1.07l-1.08,-0.76l-1.67,-2.44l-2.78,-0.4l-6.16,-2.91l-1.99,0.2l-3.71,1.04l-3.02,-0.29l-1.14,0.54l-1.01,1.86l-2.45,1.95l-0.62,0.36l-2.45,0.36l-0.71,-0.1l-1.77,-1.24l-1.32,-3.75l-1.07,-1.5l-3.53,-0.74l-4.73,-2.58l-4.65,-0.78l-0.31,-0.6l0.18,-1.54l0.62,-1.4l0.95,-0.83l1.41,-0.12l0.28,-0.64l-0.97,-1.12l-2.03,-0.75l0.42,-1.19l-0.34,-0.53l-6.9,-0.61l-4.12,-2.32l-2.77,0.67l-1.86,-0.09l-0.4,0.28l-0.88,2.73l-0.91,0.33l-0.66,-0.77l-1.07,-2.58l-2.23,-3.15l-1.29,-0.49l0.21,-0.83l-0.29,-0.49l-1.53,-0.36l-7.55,-0.02l-2.58,0.53l-0.9,-0.58l-1.64,-3.14l-1.32,-1.06l-1.36,-0.37l-5.14,-0.31l-1.98,-1.15l-1.93,0.82l-1.92,-1.37l-4.63,-2.09l-2.28,-0.07l-4.25,-1.04l-1.85,0.13l-1.67,0.77l-0.3,1.2l0.12,1.49l-0.82,1.99l0.47,0.91l-0.83,1.28l0.24,0.56l0.76,0.24l0.61,0.69l0.36,0.97l-0.05,1.0l-0.39,0.58l-10.29,0.14l-1.18,-0.37l-3.41,0.59l-1.07,-0.19l-0.39,-1.05l-2.06,-1.35l-1.26,0.44l-2.75,3.06l-0.55,0.07l-2.26,-3.03l-4.31,-1.22l-1.14,0.13l-1.23,0.71l-3.75,0.5l-4.68,1.54l-1.99,0.16l-2.26,-0.8l-1.02,-1.0l-1.36,-0.45l-0.27,-0.97l-1.39,-1.16l-0.66,-0.99l-0.32,-1.14l0.13,-1.21l-0.54,-0.42l-2.76,0.82l-1.36,-0.14l-0.79,-1.35l-3.39,-1.83ZM436.08,668.09l0.96,-0.22l0.2,-0.59l-1.32,-2.33l-0.63,-0.79l-0.47,-0.12l-0.9,0.48l-0.67,1.33l0.07,1.16l0.97,0.84l1.79,0.25ZM309.0,601.52l-0.8,-0.16l-0.41,-0.99l0.4,-2.01l0.84,-0.4l0.79,0.28l0.31,0.77l-0.59,2.03l-0.54,0.47ZM307.75,607.5l-0.9,-0.16l-0.53,-1.24l0.07,-0.86l1.14,-1.14l1.03,0.52l0.48,1.4l-0.86,1.31l-0.43,0.15Z",
+ "regionName": "Languedoc-Roussillon and Midi-Pyr\u00e9n\u00e9es",
+ "post_id": "503"
+ },
+ "fr-x6": {
+ "path": "M415.84,70.92l0.57,0.0l0.4,-0.4l0.0,-0.59l-0.39,-0.4l-2.26,-0.33l-0.8,-0.54l-1.15,-2.03l-2.54,-1.04l-0.42,-0.47l0.59,-5.43l1.08,-1.83l2.08,0.36l0.47,-0.39l-0.18,-0.83l-3.2,-2.12l1.12,-3.04l0.33,-6.83l1.74,-1.1l0.1,-0.58l-1.61,-2.08l-0.3,-1.01l-0.26,-3.74l-0.64,-3.46l0.26,-2.94l2.0,-4.41l0.34,-1.54l-1.52,-6.24l1.26,-0.84l3.05,-0.71l2.82,-2.96l1.8,-1.42l11.58,-4.22l1.24,0.13l2.03,-1.0l9.83,-1.04l11.16,-3.16l4.16,0.3l5.0,-1.09l3.16,-1.35l0.71,1.42l0.6,3.51l0.63,1.64l3.14,3.26l0.16,1.34l-1.61,1.47l-0.46,0.87l1.16,3.76l-0.52,1.99l1.22,0.87l1.03,1.61l4.25,0.56l0.92,1.61l2.23,1.78l1.46,2.61l1.24,0.91l5.27,2.03l1.32,0.13l0.92,-0.63l1.82,-2.63l2.37,-1.63l7.93,-2.08l1.41,0.36l0.92,0.73l2.64,4.35l0.72,0.59l1.48,0.27l0.38,0.58l0.61,1.69l-0.8,1.48l0.51,2.38l1.6,4.47l0.09,2.5l0.42,1.17l1.9,1.66l3.82,1.44l1.7,-0.16l2.68,-0.82l2.06,-1.38l0.72,-0.05l0.89,0.38l-0.6,1.19l0.12,0.56l0.76,0.47l4.13,0.08l2.56,0.75l1.12,0.9l0.91,1.39l1.05,10.05l2.3,1.94l1.29,-0.74l1.51,-2.44l1.09,-0.6l2.59,-0.16l2.45,0.25l3.52,1.61l1.52,-0.04l3.85,-1.36l1.15,-0.1l1.03,0.41l1.98,1.84l2.53,1.56l1.84,3.13l1.53,0.38l0.59,-0.74l-0.06,-0.72l0.39,-0.14l1.83,1.02l0.14,0.88l-2.69,2.35l-1.79,5.34l-0.17,1.55l1.11,0.78l1.48,-0.45l0.84,0.08l1.74,4.81l-3.86,2.3l-0.55,0.59l-0.59,1.62l0.62,1.5l0.04,0.67l-0.45,0.3l0.22,0.46l3.43,1.56l1.54,0.17l0.08,2.76l1.79,2.83l0.07,1.8l-1.86,3.26l-0.49,2.91l0.31,0.92l0.9,0.74l0.32,1.65l-0.7,1.08l-3.14,2.62l-1.8,1.1l-1.44,2.0l-1.21,0.65l-2.01,0.15l-1.16,1.07l0.06,0.89l1.48,3.98l-0.45,1.42l0.37,2.06l-1.37,1.28l-0.45,0.95l0.11,0.84l1.61,2.67l-1.45,0.55l-0.75,1.27l0.2,0.5l0.68,0.33l0.4,0.93l-0.07,1.86l-0.63,1.32l-0.79,0.0l-1.69,-0.75l-2.03,0.68l-2.88,-1.37l-2.38,-0.13l-1.45,0.91l-0.06,1.82l-4.11,0.52l-5.16,1.25l-3.39,1.78l-0.06,0.98l0.85,1.81l0.67,5.15l0.51,0.49l1.41,0.26l2.36,2.15l-0.2,0.54l-0.95,0.74l-1.13,0.21l-3.3,-0.33l-1.51,0.77l-0.45,1.51l0.35,1.68l-0.15,1.05l-0.98,1.37l-1.47,1.05l-0.1,1.7l0.34,0.61l1.16,0.44l3.19,-0.1l0.6,0.44l-0.02,0.44l-2.28,1.99l-0.73,1.1l-1.76,1.18l-1.05,2.05l-3.83,3.24l-2.02,3.25l-2.26,0.11l-3.0,-1.67l-0.43,-0.63l-0.47,-2.75l-0.76,-0.9l-0.81,-0.01l-0.99,0.47l-0.51,-0.14l-8.73,-6.6l-0.51,-1.18l0.6,-1.73l-0.09,-0.9l-0.97,-1.91l-1.19,-1.29l-3.91,-1.13l-2.27,1.08l-1.86,0.05l-1.84,1.04l-1.74,-0.79l-5.87,1.07l-4.04,-0.91l-0.77,0.16l-1.31,1.18l-0.79,0.15l-2.03,-1.11l-1.93,0.48l-1.66,-1.34l-1.69,-0.39l-2.67,0.99l-1.08,-0.76l-1.25,-1.57l-0.8,-0.23l-1.37,0.39l-10.67,-5.04l-1.18,-0.26l-1.21,0.29l-2.01,1.11l-1.55,-0.09l-3.94,-1.5l-2.4,-0.25l-1.47,-0.68l-1.66,-1.28l-0.74,-0.17l-1.89,0.7l-3.44,2.04l-4.01,0.26l-2.09,0.47l-5.65,-1.4l-2.68,-0.11l-1.23,-0.58l-0.69,-1.87l-0.93,-0.84l-0.28,-0.86l-0.07,-0.43l0.7,-0.94l0.92,-0.28l0.45,0.19l1.28,1.38l0.8,0.35l0.78,-0.08l0.66,-0.55l-0.41,-1.62l-1.62,-3.45l-1.74,-5.57l-0.28,-3.2l1.24,-3.11l1.48,-1.09l0.51,-1.75l-0.83,-1.22l-2.26,0.41l-0.42,-0.32l-0.42,-3.51l-0.53,-1.76l-0.18,-3.85l-0.71,-1.37l2.2,-1.38l0.74,-1.07l0.26,-1.01l-0.65,-0.89l-2.49,0.44l-0.22,-0.26l2.37,-3.65l2.12,-1.58l0.03,-1.31l-2.65,-4.66l-0.9,-3.09l-1.01,-1.33l-10.08,-8.97l-8.3,-4.93l5.17,-5.05l1.41,-4.28l1.94,-2.2l1.85,-0.21l5.97,2.46l0.78,-0.01l0.75,-0.53l0.14,-0.85l-1.42,-0.64Z",
+ "regionName": "Hauts-de-France",
+ "post_id": "504"
+ },
+ "fr-x7": {
+ "path": "M458.84,445.76l1.95,-0.35l3.03,1.58l1.95,0.27l1.37,-0.72l0.73,-1.76l1.22,-4.68l-1.19,-1.15l-0.26,-4.14l-1.44,-1.87l-0.36,-0.94l0.86,-2.7l1.65,-0.68l0.84,-1.03l0.29,-4.28l-0.66,-1.43l-1.92,-2.11l-0.96,-0.86l-1.78,-0.64l-0.67,-1.98l-1.72,-2.4l0.64,-0.91l3.14,-2.29l2.41,-0.16l2.48,-2.58l1.63,-3.33l1.7,-1.93l0.19,-3.74l-0.21,-0.9l-1.86,-3.26l-0.2,-1.44l0.37,-3.62l-2.17,-3.8l-1.06,-3.16l-3.18,-4.2l-1.27,-0.36l-1.13,0.66l-0.76,-1.76l-0.96,-0.91l-3.48,-0.95l-0.4,-0.39l-0.94,-2.84l-1.76,-1.56l-1.91,-2.38l2.1,-3.42l1.46,-0.64l1.48,-1.8l3.52,-1.57l7.94,-0.8l5.53,-1.6l0.14,-1.5l-1.97,-2.78l-0.03,-0.72l0.53,-1.33l-1.03,-1.64l0.3,-0.35l2.27,-0.17l0.41,-0.79l-0.09,-1.21l1.63,-0.12l4.07,-3.3l0.82,0.8l2.29,0.76l0.71,-0.21l1.28,-1.11l2.21,0.26l1.77,-2.17l3.83,-2.18l2.59,-0.73l2.86,0.18l0.27,1.52l1.25,1.52l3.22,1.84l2.72,0.19l2.74,2.56l0.75,0.33l1.03,0.0l2.4,-1.05l1.66,-0.1l1.61,0.25l2.97,1.11l1.41,-0.68l1.06,-1.27l1.82,0.28l1.29,2.19l0.04,1.49l0.5,0.54l0.6,0.12l1.71,-0.33l4.06,-2.15l0.58,-1.97l1.34,-0.87l0.39,-1.8l1.21,0.2l1.4,2.25l0.6,1.79l2.46,2.19l1.56,2.63l0.94,0.54l0.28,1.5l-0.41,3.04l0.32,0.67l4.03,2.05l1.74,0.08l2.67,2.22l3.67,0.71l2.19,1.13l0.73,2.83l-0.64,3.08l0.52,1.3l-0.02,1.46l0.82,1.68l-1.19,1.0l-5.58,2.73l-0.18,0.55l0.71,1.8l-0.19,2.42l0.26,0.72l1.01,0.63l2.01,0.62l2.09,1.49l0.85,0.18l1.12,-0.06l4.06,-1.25l3.56,0.89l3.56,-0.61l4.78,1.24l1.97,-0.03l1.79,-0.63l1.67,-1.19l1.89,-2.21l1.71,-5.14l5.06,1.43l1.25,-0.12l1.94,-0.93l1.54,1.64l0.93,0.37l1.05,-0.11l0.65,-0.45l0.57,-1.97l0.55,-0.28l1.79,0.68l0.27,1.99l1.62,1.08l0.05,2.15l1.07,2.48l1.36,0.98l3.59,0.4l0.43,-0.51l-0.22,-1.1l1.28,-4.71l3.52,-6.66l0.17,-1.98l1.46,-2.52l0.86,-4.24l1.47,-3.8l1.04,-0.4l5.0,1.43l1.47,-0.15l3.7,-1.24l1.74,-0.16l1.25,0.39l2.16,1.97l1.64,0.85l4.11,0.99l0.02,2.41l0.61,1.09l1.69,0.58l0.98,0.74l0.72,2.39l1.08,1.11l2.12,0.65l0.91,1.09l1.74,0.37l-0.08,3.17l0.9,0.94l1.79,0.47l2.93,-1.5l1.13,-1.19l1.49,-0.38l0.56,-1.17l2.38,-2.03l2.83,2.21l0.53,0.68l0.4,1.81l0.7,0.56l7.33,0.5l2.1,-0.36l4.85,-3.81l1.29,-1.9l5.29,-5.36l2.71,1.45l1.49,1.81l0.06,0.64l-2.15,4.4l-0.57,4.01l-1.43,0.34l-1.32,-0.11l-3.71,1.58l-1.69,1.08l-0.18,1.23l1.62,2.13l-1.39,2.81l0.08,0.46l0.46,0.07l1.43,-0.74l2.69,-0.56l2.68,-0.09l2.31,0.77l2.11,-0.97l3.09,-3.14l3.94,-2.28l1.58,-1.45l-0.19,-2.13l-0.68,-0.47l-1.16,0.35l-0.4,-0.18l-0.89,-2.03l4.08,-5.7l3.32,0.16l1.15,1.46l0.93,0.33l0.77,-0.37l0.82,-1.0l4.35,-1.83l1.15,-1.48l11.95,-1.05l5.16,0.78l0.08,0.91l-0.38,1.12l-1.55,1.58l-0.38,1.39l1.23,1.83l2.14,1.97l1.23,1.83l-2.07,3.51l-1.08,2.81l-0.54,2.86l0.83,1.53l4.77,0.91l0.69,0.58l-1.17,1.69l0.25,3.27l1.29,0.49l1.46,-0.85l1.18,0.45l4.32,4.17l1.84,4.74l-1.27,1.06l-1.66,3.08l-1.14,0.85l-2.54,0.9l-1.94,0.05l-0.44,1.16l-1.45,-0.68l-2.83,1.09l-0.84,1.25l-0.34,1.34l0.12,2.79l0.7,3.2l1.31,1.78l1.75,1.17l2.44,0.57l2.19,1.73l2.63,0.83l0.29,0.87l-0.98,2.48l1.03,2.1l0.33,3.09l0.49,1.22l5.55,3.27l1.58,2.67l3.72,1.73l-0.54,1.71l-1.23,1.93l-2.31,2.53l0.24,2.49l0.65,1.55l0.0,0.91l-1.6,1.21l-1.13,1.81l-0.21,0.18l-0.84,-0.84l-0.72,-0.2l-4.4,1.41l-2.78,3.01l-2.44,0.32l-0.53,0.84l0.54,1.12l-1.68,0.71l-4.37,-1.72l-2.37,-0.29l-2.05,1.2l-2.07,0.11l-2.41,1.23l-1.98,0.23l-2.21,1.2l-2.35,0.04l-0.74,0.29l-1.11,2.4l-0.81,0.88l-1.02,0.26l-3.86,-1.22l-0.85,-1.84l-1.43,-1.0l-4.05,-0.41l-1.45,-0.84l-0.51,0.04l-1.75,2.08l-1.05,4.98l0.01,1.51l0.51,1.03l1.24,0.41l3.69,-0.43l0.93,0.46l0.56,3.36l1.75,2.0l0.32,1.03l-0.27,3.17l-0.32,0.52l-3.52,-0.79l-3.8,0.98l-1.71,-0.15l-1.86,0.35l-2.28,-0.4l-3.91,2.12l-0.99,0.14l-1.72,-0.45l-1.28,0.35l-2.59,1.78l-0.33,0.77l0.25,1.63l-0.69,0.66l-2.32,0.66l-3.68,0.21l-1.02,0.38l-2.07,2.9l0.34,1.1l0.66,0.51l0.02,0.62l-1.63,1.7l-4.53,1.21l-3.09,-0.29l-1.24,0.51l-0.43,1.87l-2.53,3.81l-0.14,0.94l0.84,1.52l2.0,1.4l0.28,0.97l-0.33,0.33l-3.19,1.81l-4.16,-1.25l-1.98,-0.25l-1.44,0.11l-0.53,0.46l-0.21,0.76l0.41,1.66l1.65,1.36l0.07,0.45l-0.58,0.32l-2.77,-0.46l-0.85,0.34l-0.32,0.69l0.24,0.71l1.21,1.35l0.6,1.94l2.45,1.8l2.52,0.64l1.16,0.61l4.22,0.12l-0.41,1.18l0.12,0.71l1.56,1.75l2.09,1.43l-0.14,4.66l-0.66,1.16l0.12,1.87l-0.76,-0.17l-0.63,-1.31l-0.81,-0.55l-1.74,-0.29l-0.98,0.29l-3.26,3.17l-1.73,0.96l-2.39,-0.41l-3.82,-2.56l-1.16,-2.83l-0.73,-0.49l-2.0,-0.2l-4.34,-1.4l-2.82,0.21l-2.6,-0.66l-0.67,-0.77l-0.1,-1.5l0.78,-2.2l-0.29,-0.88l-0.62,-0.28l-2.47,1.42l-4.48,-0.52l-4.27,1.08l-3.5,1.47l-2.77,0.41l-2.98,1.5l-1.01,-0.71l-1.77,-4.15l-1.43,-1.32l-1.13,-0.54l-3.59,-0.26l-1.8,0.22l-0.35,0.4l0.02,2.88l-3.85,-1.27l-2.16,-2.01l-1.82,-0.73l-3.57,0.03l-1.2,0.93l-0.35,1.86l-1.3,0.63l-0.49,-0.12l-0.72,-0.87l0.27,-1.36l-0.32,-0.86l-0.67,-0.41l-0.94,-0.05l-2.47,0.7l-4.94,3.64l-1.17,-0.23l-4.88,-2.4l-1.24,-1.11l-4.78,0.52l-0.65,-3.42l0.81,-1.28l-0.0,-0.88l-1.75,-2.86l-1.71,-1.42l-2.22,-6.93l-0.89,-1.48l-1.35,-0.86l-0.56,-0.98l-0.68,-1.98l-0.52,-3.12l-1.27,-3.49l0.08,-2.96l-0.31,-0.43l-1.46,-0.31l-3.14,-1.55l-4.13,-3.41l-4.32,-0.85l0.51,-1.34l-0.08,-0.66l-1.42,-1.21l-1.93,-0.18l-1.33,0.48l-0.47,0.69l-0.31,1.9l-0.69,0.54l-3.23,0.32l-1.34,0.6l-0.62,-0.3l-1.06,-1.05l-3.45,-5.83l-0.79,-2.59l-0.84,-0.77l-2.38,0.25l-3.69,2.03l-1.69,-0.0l-0.85,0.32l-4.65,3.8l-0.58,0.1l-1.2,-1.57l-0.6,-0.32l-1.46,0.59l-0.57,0.8l-0.62,3.19l-1.64,1.03l-0.58,0.99l-1.42,4.71l-0.35,2.6l-1.83,2.78l-0.72,2.01l-1.6,-1.21l-1.15,-1.79l-0.53,-3.47l-0.56,-1.36l1.14,-0.77l-0.12,-1.16l-2.88,-1.38l-0.69,-1.95l-2.44,-3.26l-0.78,-0.22l-2.44,0.35l0.05,-1.49l-0.34,-1.19l-1.91,-2.42l-1.03,-0.42l-8.44,7.7l-0.74,2.6l-2.44,3.55l-0.58,2.41l-3.68,3.99l-0.93,0.45l-1.89,0.2l-3.45,-0.1l-1.45,0.62l-1.19,-1.14l-1.48,-0.11l-5.33,1.64l-0.67,1.8l-0.21,-0.03l-0.95,-1.01l-0.89,-3.39l-1.7,-1.05l1.55,-5.49l-0.1,-0.85l-1.32,-2.73l-3.07,-4.61l-0.85,-5.71l-0.6,-1.16l0.94,-0.4l2.23,-0.24l1.11,-0.74l0.08,-1.24l-1.43,-2.43l-0.11,-0.76l3.2,-2.58l2.85,-5.59l0.22,-1.14l-1.07,-2.31l0.11,-1.37l2.59,-1.98l0.51,-1.87l3.08,-1.33l2.04,-2.9l1.09,-0.69l1.42,-3.08l-0.14,-1.07l-0.95,-0.99ZM619.51,528.65l1.54,-0.89l1.27,-2.18l1.36,-1.26l0.07,-0.97l-0.77,-1.43l-2.49,-2.28l-2.0,-0.54l-1.01,0.36l-0.89,0.76l-3.05,4.55l-0.55,2.1l0.5,1.33l0.7,0.43l5.31,0.04Z",
+ "regionName": "Auvergne and Rh\u00f4ne-Alpes",
+ "post_id": "471"
+ },
+ "fr-x3": {
+ "path": "M215.0,114.74l0.19,0.68l0.67,0.4l0.84,-0.17l1.4,-0.93l2.84,0.51l1.15,-0.47l3.33,-3.1l2.74,-0.72l1.03,-0.08l7.56,1.27l2.02,5.19l-1.5,1.01l-0.48,1.56l-1.27,0.04l-1.1,0.67l-0.37,2.34l1.83,2.99l0.97,2.27l4.63,4.95l0.53,1.09l0.2,1.62l-0.78,2.24l0.19,0.81l0.44,0.3l1.7,-0.5l1.69,1.31l1.46,-0.25l0.31,-0.93l-0.57,-0.85l0.33,-0.79l0.91,-0.85l0.91,-0.36l7.94,0.35l7.3,2.35l10.46,0.54l4.16,0.79l2.31,-1.02l4.08,1.27l4.12,0.0l2.91,1.4l3.03,0.6l5.69,2.93l0.43,-0.04l1.48,-1.14l9.72,-1.95l2.93,-1.18l1.7,-1.25l1.45,-0.37l2.06,-2.35l3.94,-2.42l15.26,-2.94l2.9,-1.27l2.26,-2.14l0.01,-0.51l-0.5,-0.1l-4.29,2.28l-4.93,0.6l-4.99,-0.57l-4.35,-1.26l-3.7,-0.45l-1.09,-0.56l-0.79,-1.28l-0.73,-0.42l0.09,-1.68l3.15,-4.92l2.42,-6.93l3.76,-2.82l9.31,-3.67l0.73,-0.8l7.56,-3.82l2.18,-0.58l2.37,-1.37l4.68,-1.45l5.32,0.04l25.22,-6.87l1.56,-1.02l1.59,-0.51l2.41,-2.26l6.63,-4.5l8.53,5.05l10.02,8.92l0.82,1.05l0.92,3.13l2.44,4.07l0.21,1.13l-2.03,1.49l-2.12,2.89l-0.43,1.1l0.07,0.84l0.35,0.34l2.53,-0.43l0.4,0.34l-0.82,1.37l-1.94,1.09l-0.47,0.89l0.74,1.37l0.19,3.89l0.54,1.79l0.44,3.63l0.8,0.82l2.01,-0.46l0.65,0.53l-0.4,1.31l-1.05,0.52l-0.44,0.58l-1.34,3.49l0.3,3.4l1.76,5.64l1.98,4.52l-0.91,-0.06l-0.81,-0.99l-1.21,-0.74l-0.85,0.03l-0.88,0.48l-0.92,1.37l0.38,1.6l-1.77,3.08l-2.9,8.4l-2.17,1.01l-7.75,1.57l-0.75,0.55l-0.17,1.05l0.69,1.52l-0.24,2.26l0.57,0.74l1.67,0.42l0.21,2.28l-2.16,1.15l-0.44,0.6l-0.21,0.94l0.52,1.61l-0.14,1.15l-0.79,0.76l-2.47,1.15l-1.51,1.17l-1.09,1.61l-0.67,1.82l-0.53,0.5l-4.94,2.31l-1.82,-0.62l-3.38,0.04l-2.24,-1.49l-1.25,-0.15l-0.48,0.48l-0.06,1.17l-0.31,0.42l-3.47,0.34l-2.42,2.37l-1.92,0.04l-5.91,1.45l-1.53,0.88l-2.02,1.86l0.26,3.84l0.66,1.39l1.17,1.83l2.61,1.67l3.16,2.99l0.37,0.83l-0.39,1.76l0.17,1.43l1.87,2.7l-1.12,1.47l-0.63,1.57l-1.95,1.77l-5.36,2.18l-2.34,0.41l-0.55,0.48l-0.55,1.79l1.37,1.79l-0.05,2.88l1.83,3.34l-0.85,1.08l-2.22,0.71l-2.49,-1.01l-2.47,-2.98l-1.91,-1.6l-3.5,0.2l-5.14,-1.24l-0.71,-0.36l-0.06,-1.74l-0.56,-0.94l-3.09,-0.02l-2.45,-1.44l-1.01,-1.58l-0.49,-1.75l0.16,-5.51l-0.43,-0.91l-1.29,-0.88l-2.69,-1.04l-1.85,-0.2l-5.49,1.1l-3.21,1.67l-1.67,2.12l-2.54,0.86l-0.71,1.68l-2.54,-0.46l-3.9,0.33l-0.22,-3.58l-0.39,-0.79l-0.77,-0.81l-1.89,-0.44l-3.02,-2.76l-0.65,-1.6l0.49,-1.46l-0.32,-0.81l-0.74,-0.61l-3.82,-1.27l-0.99,0.47l-0.03,1.62l-0.34,0.71l-1.15,0.57l-1.4,-0.02l-1.63,0.51l-1.2,1.45l-0.68,0.11l-4.11,-0.95l-3.98,-0.16l-1.2,0.44l-2.14,1.99l-1.05,0.56l-5.18,1.05l-1.18,-1.31l-0.96,-0.14l-3.52,0.92l-0.5,1.08l-0.81,0.48l-1.68,-1.15l-1.86,0.23l-1.74,-2.89l-1.1,-0.85l-2.45,0.29l-2.37,-0.8l-3.57,1.1l-2.0,0.01l-3.01,-0.43l-2.56,-1.35l-7.85,-1.68l-1.41,0.23l-2.22,2.41l-1.99,0.71l-2.78,1.91l-1.65,0.53l-2.09,-0.17l-2.56,-1.81l-2.2,-3.13l-0.99,-2.96l-2.54,-5.28l4.98,0.51l6.48,-1.24l2.14,0.69l0.44,-0.14l0.0,-0.47l-1.13,-1.5l-1.5,-0.64l-2.34,-0.18l-0.46,0.44l-0.7,-1.34l-2.87,-0.97l-0.88,-2.35l-2.17,-1.65l-0.47,-1.69l-0.34,-4.2l-0.74,-1.24l-1.4,-0.44l1.45,-1.15l0.44,-1.03l0.49,-3.71l0.92,-0.11l0.34,-0.9l0.0,-1.07l-1.2,-0.91l0.97,-5.38l0.51,-0.24l1.33,0.54l0.55,-0.37l-0.25,-0.86l-1.33,-0.51l-1.38,0.0l-1.32,0.6l-0.59,1.22l-0.56,-1.29l0.43,-3.35l-0.31,-0.52l-0.67,-0.12l-0.18,-0.32l0.72,-2.62l1.48,-1.06l0.02,-0.68l-0.75,-0.5l-0.56,0.09l-0.66,-2.09l-0.35,-2.8l0.3,-0.47l0.85,-0.05l2.15,0.54l0.5,-0.39l0.0,-0.49l-0.3,-0.39l-2.96,-0.99l-1.32,-0.03l-0.67,1.15l-0.44,-0.44l-0.98,-2.84l-0.71,-0.78l0.42,-0.24l0.06,-0.7l-2.38,-1.94l-0.24,-0.63l0.68,0.0l0.4,-0.4l-0.83,-2.29l-0.82,-0.22l-0.71,1.2l-3.02,-2.14l0.32,-0.66l-0.42,-0.61l-2.16,0.52l-0.37,-0.34l-0.17,-5.35l-1.15,-1.92l-0.39,-1.49l-2.39,-2.79l0.28,-0.81l1.64,-1.27l0.51,-0.95l0.27,-4.14l-1.3,-2.8l-0.63,-0.67l-4.47,-1.27l0.4,-1.53l-0.1,-1.22l0.13,-0.3l1.34,-0.15l2.46,1.07l1.75,-0.2l0.58,0.33l0.27,1.01l0.5,0.53l6.68,0.92l5.27,1.29Z",
+ "regionName": "Basse-Normandie and Haute-Normandie",
+ "post_id": "505"
+ },
+ "fr-r": {
+ "path": "M159.66,300.12l3.14,1.13l1.62,-0.32l1.05,-1.07l0.07,-0.47l-0.56,-1.04l-2.21,-2.2l-0.46,-0.11l-0.82,0.44l-0.77,-1.59l-2.05,-1.2l4.12,-2.13l1.57,0.33l-0.09,0.55l0.45,0.48l0.58,0.01l2.59,-1.53l0.4,-0.74l-0.31,-0.53l-2.95,-0.38l0.35,-0.69l-0.16,-0.53l-0.77,-0.68l0.87,-0.21l2.37,0.81l3.21,-0.37l0.81,-0.45l0.88,-1.05l1.08,-1.85l0.93,-0.29l1.83,0.9l2.88,-0.91l0.01,0.96l0.41,0.72l0.57,0.29l0.85,-0.14l0.92,-1.04l0.66,-1.38l2.05,-1.24l0.71,-1.09l0.79,-3.53l0.74,-1.69l0.12,-1.43l-0.24,-0.62l0.35,-1.02l2.91,-1.59l2.21,-0.38l2.07,0.05l5.67,-2.08l1.82,0.61l1.95,0.17l7.4,-2.04l2.87,-1.7l1.19,-1.55l1.73,-1.21l6.3,-2.55l1.6,-1.15l1.76,-0.13l1.82,0.29l1.17,1.44l1.85,0.86l6.14,0.89l0.45,-0.31l0.47,-2.16l1.14,-1.77l2.89,-9.08l0.53,-0.9l1.85,-1.62l4.09,-0.58l1.25,-0.49l0.67,-0.66l-0.07,-4.84l-1.76,-2.27l-0.71,-4.7l0.64,-0.86l0.08,-0.99l-0.82,-4.82l-1.09,-2.36l1.95,-4.01l-0.03,-2.5l-0.74,-5.78l0.2,-5.45l4.76,0.37l3.56,-1.09l2.14,0.78l2.29,-0.33l0.82,0.61l1.89,3.04l0.78,0.28l1.22,-0.43l1.2,1.0l0.96,0.2l0.9,-0.36l0.74,-1.34l3.16,-0.79l0.67,0.27l0.43,0.85l0.82,0.32l5.49,-1.07l1.32,-0.69l2.1,-1.96l0.92,-0.33l3.75,0.17l4.09,0.95l1.06,-0.14l1.34,-1.53l1.33,-0.41l1.5,0.0l1.45,-0.72l0.62,-1.2l-0.17,-1.13l0.3,-0.28l3.98,1.51l0.19,0.36l-0.49,1.44l0.18,1.02l0.67,1.13l3.2,2.92l2.03,0.53l0.36,0.46l0.28,0.51l0.24,3.91l0.44,0.37l3.61,-0.38l3.37,0.46l0.6,-0.45l0.44,-1.41l2.46,-0.81l2.23,-2.53l2.43,-1.15l5.27,-1.07l1.66,0.18l3.55,1.66l0.35,1.07l-0.32,2.68l0.3,3.32l0.87,2.03l1.63,1.4l1.84,0.94l2.82,-0.07l0.41,2.48l1.13,0.63l5.3,1.27l2.3,0.07l0.97,-0.32l1.62,1.39l1.93,2.55l2.19,1.39l1.53,0.31l1.53,-0.36l2.97,1.92l3.09,0.38l0.63,0.45l-0.41,0.52l-4.24,2.22l-0.26,1.28l1.21,1.18l-2.67,0.5l-0.56,0.47l-0.11,1.1l0.84,1.7l0.5,0.5l1.48,0.31l-0.65,3.22l0.42,1.92l-0.15,0.49l-3.53,3.05l-0.56,1.67l-0.05,3.43l-1.51,4.18l-1.33,1.2l-1.74,0.98l-3.44,1.47l-1.46,1.3l-0.79,1.81l0.64,1.76l-0.14,0.45l-2.17,0.43l-3.23,1.43l-2.52,0.52l-1.04,0.58l-0.9,0.99l-1.95,-0.85l-1.07,0.0l-0.78,0.53l-0.36,0.7l0.4,2.57l-8.48,-1.68l-0.46,0.23l-1.7,4.29l0.46,3.58l-1.91,3.72l-1.03,3.13l0.2,2.82l-4.39,6.08l-1.47,5.38l-0.85,5.56l-2.84,-0.47l-1.46,0.44l-2.01,2.22l-0.96,2.4l-2.38,0.81l-1.53,2.05l-1.11,-0.31l-0.83,-2.02l-0.97,-0.76l-0.79,-0.2l-1.88,0.35l-3.55,-0.08l-6.53,0.7l-5.83,1.67l-2.05,-0.73l-2.08,0.46l-1.21,0.8l-0.31,0.62l0.12,0.77l0.69,0.97l-0.13,0.38l-4.92,2.46l-3.85,0.33l-5.2,-0.68l-4.23,0.56l-4.16,-1.9l-0.94,-0.18l-0.84,0.51l-0.29,1.01l0.17,0.47l2.2,1.37l2.18,3.03l1.67,0.89l0.69,0.84l0.32,2.18l1.04,2.25l0.66,0.7l3.5,1.91l1.73,1.57l0.1,0.48l-0.78,1.59l0.1,0.98l3.83,6.52l0.57,3.11l1.44,2.21l0.79,4.91l-1.22,1.54l-0.25,0.91l0.97,4.27l-0.6,2.86l0.25,1.23l0.83,0.72l1.04,-0.23l1.97,1.38l0.71,1.02l-0.74,0.77l-1.26,-0.1l-1.22,0.34l-2.25,2.0l-2.76,0.16l-3.62,1.68l-4.06,-2.24l-1.7,-0.27l-6.67,1.09l-0.44,-0.27l0.9,-1.15l0.15,-0.7l-0.48,-0.9l-0.77,-0.24l-6.96,1.54l-1.16,0.7l-1.12,1.42l-0.75,-0.72l-2.95,-0.11l-2.27,1.19l-0.16,2.27l-1.02,-0.24l-2.4,-2.73l-1.56,-0.33l-4.08,-2.32l-3.43,0.87l-1.24,-0.06l-0.97,-3.42l-1.1,-1.51l-1.55,-0.91l-6.9,-0.76l0.18,-1.01l-1.0,-0.83l-3.36,-0.58l-1.97,-1.51l-2.47,-0.81l-1.08,-2.24l-0.58,-0.83l-0.45,-0.15l-0.28,0.39l0.27,2.62l-0.46,-0.56l-1.32,-5.47l0.25,-1.25l-0.25,-0.45l-0.84,-0.31l-1.14,-2.75l-2.53,-2.31l-0.74,-2.09l-0.93,-0.62l-1.98,-0.4l-2.24,-3.59l-3.47,-3.13l-4.07,-2.07l-0.39,-1.05l-0.3,-2.69l0.47,-2.19l1.48,-0.93l0.17,-0.46l-0.28,-0.85l3.12,-1.98l2.48,-5.26l1.17,-1.01l-0.16,-1.45l-0.69,-1.37l-1.7,-1.83l-3.77,-1.84l-7.12,-1.1l-1.45,-0.69l1.47,-1.03l1.91,-0.24l0.8,-0.55l0.42,-2.94l-0.66,-1.35l-0.09,-1.84l1.02,-2.31l1.32,-0.5l5.58,-0.5l1.1,-0.5l1.01,0.86l3.14,0.71l1.04,-0.02l0.24,-0.51l0.65,0.2l-0.47,0.4l0.19,0.91l2.51,1.59l2.62,0.48l1.97,1.62l1.54,0.57l3.31,0.09l0.4,-0.29l-0.19,-0.46l-1.37,-0.76l-2.42,-0.42l-2.85,-2.6l-4.32,-2.68l-2.78,-0.52l-1.38,-0.93l-2.33,-0.59l-8.74,0.54l-2.06,1.13l-1.5,1.94l-1.74,0.44l-1.54,1.27l-1.02,0.36l-2.05,-0.36l-2.32,-2.13l-1.22,-0.61l-2.17,0.0l-0.78,0.6l-0.33,0.97l-1.39,-0.03l-4.87,-2.21ZM161.53,297.57l0.02,0.14l-0.01,0.02l-0.01,-0.17ZM179.99,325.41l2.68,1.47l0.24,2.88l-0.47,-0.24l-2.28,-3.55l-1.56,-0.93l-1.75,0.59l-0.73,-0.9l-0.93,-2.89l-0.56,-0.68l2.62,-0.12l2.02,0.71l-0.04,2.78l0.75,0.89ZM174.33,345.92l-4.93,-0.12l-0.49,-0.98l0.24,-0.36l1.99,0.02l3.18,1.44Z",
+ "regionName": "Pays de la Loire",
+ "post_id": "506"
+ },
+// "fr-gp": {
+// "path": "M44.87,452.95l2.26,-1.9l1.31,-0.53l0.63,0.19l-2.39,1.57l-1.81,0.66ZM16.07,454.56l0.99,-3.24l0.45,-0.54l1.25,-0.4l0.33,-0.98l-0.15,-1.3l-1.63,-0.93l-0.61,-3.02l1.65,-2.23l2.47,-1.44l2.87,2.33l0.67,1.2l0.24,4.01l1.84,2.68l1.77,1.09l0.71,-0.33l2.34,0.36l6.21,4.32l1.16,0.34l-0.55,0.18l-3.31,-0.89l-10.9,2.46l-3.09,1.07l-2.38,-0.65l-1.77,-1.2l-0.78,-1.34l0.24,-1.57ZM29.3,476.81l1.29,-2.59l1.05,-1.18l1.16,-0.64l1.27,0.28l1.08,0.91l0.68,1.72l0.94,0.93l0.13,1.34l-1.12,1.36l-1.47,0.73l-1.99,0.48l-1.58,-0.25l-1.44,-3.1ZM6.63,475.24l-0.25,-0.65l0.35,-0.72l-0.44,-0.85l-1.95,-1.6l-0.87,-1.97l-0.57,-0.45l-0.69,-2.06l-0.05,-4.94l-0.89,-2.29l0.25,-1.07l-1.09,-2.09l0.05,-3.66l1.5,-2.21l0.77,-0.65l0.89,-0.23l1.5,1.13l3.84,1.09l2.02,1.06l0.67,0.81l-0.4,0.18l0.01,0.74l0.87,0.07l0.72,0.74l0.65,-0.12l0.7,-0.95l0.47,-0.08l0.26,0.32l-0.35,1.27l0.32,1.1l-1.34,0.42l-0.48,0.89l0.13,2.94l0.8,2.29l0.41,3.37l-0.49,3.19l-1.83,2.19l-2.76,1.62l-2.74,1.16ZM13.68,480.6l0.09,-0.17l0.15,-0.01l-0.11,0.1l-0.13,0.09ZM10.63,481.22l0.17,0.27l-0.27,0.31l-0.19,-0.11l0.3,-0.46Z",
+// "regionName": "Guadeloupe",
+// "post_id": "46"
+// },
+ "fr-u": {
+ "path": "M574.87,589.37l0.92,-0.18l1.37,-1.04l2.17,-0.54l3.45,-2.45l1.63,-0.49l0.58,-1.36l1.97,-0.33l0.5,-0.38l0.72,-1.53l-0.09,-0.84l-1.94,-0.6l1.3,-2.75l1.5,-1.9l1.28,-0.92l2.03,-0.52l3.72,1.32l1.03,-0.3l0.65,-1.54l-0.04,-1.78l1.98,-4.92l-0.49,-4.74l5.08,-3.33l2.76,-1.14l1.8,-1.27l1.33,-1.63l0.03,-2.18l1.18,0.07l0.47,-0.43l0.15,-1.04l-0.37,-0.8l-4.15,-4.77l-1.27,-0.56l-1.83,0.31l-0.37,-2.47l0.33,-2.07l-0.19,-2.88l-0.5,-0.93l-1.47,-1.11l-0.09,-1.56l-1.29,-1.64l-0.54,-1.66l-0.02,-2.97l3.17,-0.14l2.43,0.62l1.57,1.66l1.7,4.01l1.31,0.65l1.08,-0.2l2.24,-1.34l2.77,-0.41l3.47,-1.46l4.07,-1.05l3.48,0.59l1.1,-0.08l2.31,-1.4l0.14,0.38l-0.71,1.56l-0.03,1.7l0.31,1.17l0.77,0.67l2.96,0.79l2.82,-0.21l4.22,1.37l1.95,0.19l0.66,0.8l0.94,2.37l4.51,2.92l2.5,0.22l1.96,-1.1l2.53,-2.56l1.32,-0.74l1.8,0.54l0.64,1.31l0.52,0.4l0.87,0.13l0.61,-0.33l0.31,-0.68l-0.23,-1.68l0.64,-1.04l0.14,-4.96l-0.53,-0.87l-1.46,-0.73l-1.74,-1.84l0.47,-1.33l-0.29,-0.71l-1.33,-0.38l-2.81,0.16l-3.98,-1.31l-2.2,-1.6l-0.54,-1.85l-1.31,-1.69l0.85,-0.19l2.33,0.46l0.67,-0.16l0.58,-0.67l-0.17,-1.21l-1.58,-1.26l-0.32,-1.32l0.2,-0.43l2.95,0.15l4.34,1.28l0.95,-0.24l2.8,-1.78l0.61,-0.81l-0.12,-1.02l-0.85,-1.05l-1.56,-0.99l-0.6,-0.98l0.34,-1.04l1.84,-2.49l0.74,-2.54l1.28,-0.26l2.49,0.32l4.9,-1.34l1.9,-1.99l0.0,-1.34l-0.94,-1.02l1.78,-2.52l4.33,-0.43l2.59,-0.77l1.06,-1.17l-0.23,-1.81l1.51,-1.3l1.93,-0.81l1.61,0.45l1.3,-0.18l3.71,-2.08l2.21,0.4l1.91,-0.35l1.7,0.15l3.74,-0.98l2.72,0.76l1.33,-0.13l0.6,-0.99l0.28,-3.45l-0.47,-1.39l-1.68,-1.88l-0.61,-3.45l-1.52,-0.82l-3.62,0.45l-0.92,-0.3l-0.21,-0.57l1.03,-6.05l1.31,-1.51l1.5,0.78l3.9,0.36l1.08,0.74l1.0,1.99l4.33,1.4l1.59,-0.46l0.96,-1.07l0.85,-2.13l2.87,-0.24l2.8,-1.28l-0.62,0.73l-0.02,0.5l2.03,2.18l0.17,1.69l0.79,1.24l0.95,0.66l2.05,0.17l1.38,0.88l0.35,1.96l-0.12,4.19l1.23,1.91l2.07,1.56l4.22,2.16l1.41,0.3l3.93,-0.45l2.94,1.06l1.2,1.26l-0.4,2.57l1.25,4.13l2.03,3.55l-3.87,-0.56l-1.7,0.81l-1.13,1.22l-0.53,1.69l0.58,1.56l-0.69,0.5l-2.06,3.14l-3.05,2.06l-0.83,1.38l0.25,2.53l1.44,2.18l2.96,2.54l-1.46,0.71l-0.59,0.79l-0.73,3.01l0.24,1.21l1.67,1.86l1.59,2.88l2.27,1.81l0.83,2.02l0.66,0.7l1.16,0.41l2.19,-0.38l0.67,0.17l6.04,2.48l6.53,3.55l3.45,0.91l0.74,1.13l1.35,0.71l2.64,0.05l10.62,-2.7l1.73,-0.12l2.57,-1.44l1.28,0.21l-0.66,2.31l0.83,1.51l1.3,1.15l0.87,1.66l-0.1,1.05l-2.22,2.08l-1.33,3.37l-4.45,3.63l-1.3,1.81l-2.63,2.56l-1.02,1.63l0.26,2.23l1.1,3.29l-1.5,0.69l0.05,1.26l-0.73,0.15l-1.26,1.13l-0.56,-0.67l-1.18,-0.6l-1.65,0.49l-1.0,1.05l-0.43,1.64l-1.32,1.04l-0.71,1.53l-2.86,-0.54l-1.41,0.13l-2.01,1.42l0.04,0.96l-1.09,1.0l-0.54,-0.78l-1.17,-0.24l-2.01,0.57l-0.96,1.09l-0.66,2.71l0.71,3.75l-0.22,0.12l-0.57,-0.92l-0.68,-0.42l-1.15,-0.07l-1.27,0.64l-1.75,1.52l-0.56,-0.6l-2.19,-0.07l-1.21,0.15l-0.99,0.57l-1.1,1.01l-0.38,1.3l0.79,0.89l-1.67,1.9l-0.35,1.79l-1.2,0.73l-0.35,0.74l-0.79,0.06l-0.5,-0.8l-0.56,-0.07l-0.45,0.47l0.04,1.32l-0.33,0.1l-1.7,-0.24l-2.06,0.51l-0.64,-0.66l-0.97,-0.32l-1.96,1.17l-0.06,2.1l-0.82,1.01l-0.09,1.11l-2.6,0.48l-0.8,1.76l-2.13,1.86l-1.64,0.87l-0.58,1.35l0.27,0.52l1.27,0.34l3.83,-0.86l1.01,0.19l-0.51,1.21l-1.15,0.87l-0.18,1.36l0.76,1.4l-2.03,1.21l-1.78,0.59l-1.1,-1.03l-3.19,0.39l-1.04,1.7l-1.07,0.59l-1.62,-0.35l-3.45,0.27l-1.36,0.42l-1.49,0.84l-0.91,1.44l0.37,1.87l-1.34,0.0l-1.03,-0.98l-2.86,-1.09l-1.75,-0.16l-3.76,0.92l-1.97,1.27l-0.72,1.7l-0.05,1.91l0.91,0.63l-3.08,0.19l0.74,-0.26l0.95,-0.93l-0.33,-1.65l-1.19,-0.96l-5.05,0.37l-0.84,-1.54l-3.51,-0.25l-1.12,-0.63l0.3,-1.17l-0.36,-0.56l-2.16,0.24l-1.78,0.81l-0.23,0.38l1.15,0.68l1.01,1.7l1.93,0.76l-3.17,0.02l-0.89,0.28l-1.2,1.7l-1.96,-0.54l-1.85,-1.41l1.88,-1.3l0.07,-0.54l-0.41,-0.57l-1.72,-0.7l-0.74,-1.26l-2.11,-0.09l-2.49,-1.0l-0.47,-1.46l-1.08,-1.07l-2.53,-0.57l-1.03,0.91l-0.53,0.98l-2.05,-0.53l-1.98,-2.66l-0.96,-0.55l-1.48,0.47l-6.6,-0.49l-1.53,0.31l-1.02,-0.43l0.34,-1.68l0.94,-1.98l-0.08,-0.43l-0.62,-0.64l-1.13,-3.95l-2.92,-1.81l-3.73,1.99l-4.48,-0.09l-2.35,0.26l-3.62,-0.16l-1.71,-0.5l-1.11,-1.51l-0.44,-1.53l1.11,-1.82l1.71,-0.86l5.36,0.0l1.8,-0.48l2.62,-2.32l0.89,-2.0l-0.21,-1.77l-0.6,-0.3l-3.34,1.54l-1.34,-0.21l-1.17,-1.2l-0.81,-2.2l-1.53,-0.53l-1.81,-0.01l-1.47,-1.47l-0.5,0.08l-0.49,0.59l-0.81,2.82l0.42,1.59l2.15,1.63l0.63,1.61l-0.57,1.4l-1.25,0.8l-1.63,0.16l-4.46,-1.86l-2.21,1.1l-1.58,0.35l-0.71,0.61l-0.46,1.44l0.98,2.54l0.42,0.33l0.81,-0.05l-1.29,0.81l-1.31,-2.62l-2.66,-1.4l-1.98,-1.65l-0.86,-1.8l-0.02,-5.7l-1.08,-2.53l-0.85,-1.1l-1.19,-0.67l-0.59,0.35l0.0,0.46l2.09,3.43l0.0,5.28l0.86,2.64l4.89,4.15l-0.11,1.02l-9.05,-0.1l-4.41,-0.9l-1.34,-0.7l-0.03,-0.85l1.11,-1.09l0.22,-1.41l-0.65,-1.13l-1.58,-1.03l-2.76,-0.96l-6.31,0.6l-10.72,-0.78l1.08,-2.45ZM708.84,625.18l0.07,-0.56l1.07,-0.35l0.67,-0.95l0.94,-0.47l-1.31,1.7l-1.44,0.64ZM692.6,626.12l1.76,-0.0l0.97,-0.54l0.94,-0.02l0.43,-0.62l0.24,0.26l0.04,0.66l-2.62,1.0l-1.76,-0.73ZM619.44,527.85l-4.96,0.01l-0.37,-0.2l-0.33,-0.9l0.44,-1.6l2.99,-4.46l1.31,-0.8l1.47,0.37l2.37,2.16l0.58,1.0l-0.0,0.54l-1.24,1.1l-1.26,2.17l-1.01,0.62Z",
+ "regionName": "Provence-Alpes-C\u00f4te-d'Azur",
+ "post_id": "508"
+ },
+ "fr-j": {
+ "path": "M472.43,160.67l2.91,-0.96l1.28,0.25l1.79,1.42l0.99,0.02l1.16,-0.44l1.27,0.83l1.39,0.28l2.4,-1.49l4.01,0.91l5.72,-1.07l1.57,0.83l2.35,-1.11l1.82,-0.03l2.03,-1.04l3.48,0.96l0.98,1.05l0.87,1.67l-0.52,2.79l0.73,1.41l8.88,6.73l0.87,0.26l1.23,-0.5l0.48,0.14l0.61,2.97l0.7,1.03l3.28,1.81l2.3,-0.04l-0.11,1.1l-0.51,0.67l-2.55,0.08l-0.94,0.42l-0.16,0.75l1.09,1.07l-1.54,1.52l-0.27,1.55l0.54,0.66l1.24,-0.02l1.67,1.83l0.7,2.85l-0.5,1.9l0.28,1.65l0.9,0.56l2.22,-0.3l1.49,1.83l-2.45,1.85l-1.06,1.42l-0.92,2.34l-0.48,0.4l-2.35,0.42l-0.63,0.51l-0.08,0.73l0.94,1.41l-1.79,1.84l-0.05,0.79l0.65,1.23l-0.56,2.16l0.16,0.69l-2.61,2.88l-2.24,-0.49l-6.28,0.91l-4.68,-0.48l-2.32,0.9l-3.26,0.0l-0.8,0.78l-1.14,3.17l0.16,2.32l0.83,1.42l-1.58,2.76l-3.77,2.32l-0.95,3.37l-5.9,1.83l-1.36,-0.07l0.46,-1.24l-0.4,-0.63l-0.91,-0.28l-2.7,0.45l-1.78,1.66l-1.87,0.81l-8.32,-0.58l-3.25,0.65l-1.6,-0.18l-0.78,-0.59l0.23,-0.94l0.72,-0.24l1.65,0.3l0.91,-0.65l0.07,-0.64l-0.51,-1.19l0.65,-0.98l0.11,-1.36l-1.39,-1.54l-3.36,-1.92l-1.3,-3.89l-1.33,-1.28l-2.27,0.3l-2.83,-1.36l-0.86,0.16l-1.36,1.23l-1.4,0.35l-0.76,-0.38l-0.47,-1.03l-0.68,-0.61l-0.85,-0.52l-0.84,-0.03l-0.66,0.4l-1.38,1.92l-1.99,0.8l-8.7,1.71l-0.72,-0.42l-0.0,-0.42l1.65,-1.87l0.02,-0.74l-1.91,-1.77l-0.62,-2.84l-0.52,-0.9l-1.62,-1.5l-0.35,-2.59l-0.81,-0.45l-2.11,0.38l-4.37,-1.8l-0.92,-0.66l-1.17,-1.71l0.01,-2.65l-0.44,-1.51l-0.7,-0.87l-2.25,-1.46l-0.79,-2.45l-3.87,-2.43l-1.32,-1.5l-0.63,-1.5l-1.41,-0.91l0.0,-0.93l1.6,-2.06l0.18,-1.09l-0.28,-0.53l-1.69,-0.85l-0.41,-0.65l-0.06,-1.41l0.53,-2.41l-0.31,-1.9l-1.49,-1.94l-3.28,-5.55l-0.4,-2.82l-2.11,-0.85l0.25,-2.13l-0.72,-1.71l0.41,-0.57l7.7,-1.56l2.46,-1.13l3.15,-8.76l1.58,-2.72l0.43,0.35l0.8,2.03l0.97,0.67l3.39,0.3l5.65,1.41l6.54,-0.78l5.01,-2.69l3.66,2.09l2.47,0.26l3.97,1.5l1.83,0.1l3.18,-1.39l11.5,5.26l0.91,0.03l0.87,-0.37l1.31,1.53l1.38,0.99Z",
+ "regionName": "\u00cele-de-France",
+ "post_id": "509"
+ },
+ "fr-x2": {
+ "path": "M204.81,598.27l0.63,0.4l0.52,-0.08l1.38,-0.84l5.64,-0.92l1.36,-1.72l2.57,-1.46l2.17,-3.85l5.18,-6.42l0.5,-2.5l1.48,-4.27l2.51,-12.23l1.46,-4.3l2.15,-9.72l3.95,-21.25l1.68,-10.56l0.42,-4.7l-0.62,-3.76l1.59,-2.05l1.5,-4.83l1.04,-1.14l1.32,-0.04l3.84,0.81l2.32,-0.34l1.43,-1.11l0.02,-1.15l-1.01,-1.12l0.28,-0.48l-0.7,-1.19l-4.63,-3.83l-1.79,-0.89l-0.92,0.36l-3.56,5.22l-0.53,2.34l3.34,-33.36l2.55,-12.04l1.09,-15.98l3.2,-5.75l1.08,-0.08l-0.29,2.7l1.44,2.01l4.22,2.89l3.51,1.53l7.32,7.13l1.65,2.15l1.65,6.53l1.42,7.99l2.13,4.49l2.13,2.43l2.35,2.0l2.44,1.49l0.52,1.41l-0.17,1.23l0.35,3.2l0.54,1.31l0.97,0.73l0.45,-0.0l0.16,-0.42l-0.81,-4.06l0.53,-2.18l-0.8,-1.78l-1.38,-1.23l1.66,0.3l2.68,1.57l0.51,-0.03l0.06,-0.51l-1.72,-2.53l-5.08,-1.82l-2.05,-1.4l-1.05,-1.86l-0.76,-2.33l-2.32,-14.51l-0.81,-2.98l-2.08,-4.88l-2.62,-4.07l-2.95,-2.95l-8.61,-5.47l-0.48,-1.77l-2.47,-1.03l-3.22,-2.81l-4.04,-1.44l-2.76,-2.39l-2.34,0.33l-0.67,-0.24l0.99,-5.73l3.71,-0.99l0.98,0.04l3.79,3.91l1.46,1.04l4.4,1.81l0.48,-0.15l-0.05,-0.5l-1.38,-1.36l-5.52,-3.9l-1.51,-1.58l-1.36,-4.22l2.03,-1.93l0.85,-0.46l1.1,-0.0l0.61,-0.43l0.19,-1.83l-0.98,-1.77l0.89,-0.77l-0.02,-0.68l-0.92,-0.54l-1.09,-2.34l1.55,0.32l1.08,-0.72l0.78,-1.42l-0.03,-0.9l-1.1,-1.07l-1.08,-0.37l-0.71,-3.23l-1.9,-1.16l0.55,-0.47l-0.04,-0.64l-1.96,-1.09l0.07,-0.62l-0.38,-0.5l-2.85,-0.2l-0.39,-0.36l0.27,-0.97l1.24,-1.31l-0.29,-1.3l0.52,-0.79l4.3,-2.4l0.5,-0.98l-0.01,-0.83l-0.87,-2.37l1.16,-1.51l0.86,-0.51l6.69,-1.49l0.44,0.35l-0.06,0.32l-1.0,1.63l0.99,0.9l1.99,-0.09l4.86,-0.96l1.46,0.21l4.42,2.32l3.79,-1.72l2.86,-0.19l2.34,-2.04l2.77,-0.34l0.86,-1.23l-0.25,-0.98l-0.76,-0.79l-2.09,-1.47l-1.48,-0.05l-0.2,-0.92l0.59,-2.98l-0.97,-4.09l1.47,-2.55l-0.66,-4.53l-1.62,-2.86l-0.6,-3.2l-3.78,-6.41l-0.05,-0.67l0.8,-2.07l-0.78,-1.19l-1.4,-1.1l-3.53,-1.93l-0.48,-0.54l-0.88,-1.94l-0.43,-2.43l-0.91,-1.07l-1.53,-0.78l-2.22,-3.06l-2.05,-1.29l0.13,-0.56l1.47,0.22l2.4,1.36l1.33,0.38l4.31,-0.56l5.13,0.68l3.99,-0.34l1.28,-0.41l1.37,-1.03l2.73,-1.24l0.34,-1.13l-0.81,-1.37l1.0,-0.85l1.73,-0.42l2.13,0.74l5.97,-1.69l6.45,-0.7l5.88,-0.12l0.56,0.42l1.0,2.22l1.71,0.55l0.45,-0.18l1.48,-2.08l2.51,-0.92l1.0,-2.45l1.89,-2.08l0.9,-0.26l2.97,0.49l1.47,2.34l0.64,0.37l0.98,-0.07l1.14,-0.55l0.13,1.56l0.57,0.55l2.68,-0.26l0.19,0.85l-0.35,1.75l0.25,0.7l0.48,0.33l1.15,0.07l2.51,-0.61l1.03,1.31l1.83,0.26l-0.34,5.65l0.36,1.29l1.37,1.15l1.25,0.23l2.61,-0.25l2.91,0.46l1.93,-1.14l1.04,-0.24l5.49,-0.33l0.79,-0.44l0.19,-0.71l-0.77,-1.6l-0.1,-0.95l5.63,2.78l1.17,1.63l1.3,3.39l7.23,9.31l2.64,1.85l1.67,1.93l0.84,2.19l-0.61,2.63l0.01,1.65l0.57,2.3l0.55,0.83l2.33,2.03l3.29,1.27l0.85,2.04l0.88,0.33l3.79,0.0l1.03,0.35l0.88,0.74l0.67,1.18l-0.49,1.9l0.16,1.06l0.74,0.86l1.78,1.01l0.54,0.76l-1.01,2.95l0.15,0.46l1.04,0.72l2.54,0.83l3.65,-0.3l1.07,-0.33l1.0,-1.33l1.05,-0.24l1.47,1.8l3.13,1.64l2.0,-1.13l3.93,-3.54l0.68,-0.15l2.17,0.53l2.02,-0.06l0.36,1.35l0.7,0.52l1.01,0.19l1.02,-0.2l1.87,-1.33l3.01,0.41l0.9,-0.2l1.03,-0.98l0.25,-2.59l0.71,-0.54l0.76,0.32l1.92,1.93l0.96,0.16l2.07,-1.12l1.08,-0.24l5.41,0.14l2.45,0.84l3.5,0.01l2.22,0.72l3.19,-0.59l5.83,0.29l2.01,2.5l1.67,1.44l0.91,2.78l0.59,0.64l0.74,0.43l2.88,0.63l0.67,0.63l1.08,2.07l0.77,0.02l0.86,-0.61l1.19,0.76l2.45,3.45l1.01,3.07l2.11,3.67l-0.39,3.35l0.22,1.7l2.06,4.03l-0.15,3.39l-1.62,1.78l-1.56,3.24l-2.36,2.46l-1.64,-0.11l-1.29,0.59l-1.33,1.29l-1.33,0.73l-0.92,1.43l0.25,0.94l1.58,1.96l0.73,2.07l0.5,0.47l1.47,0.35l0.84,0.76l1.85,2.04l0.51,1.09l-0.24,3.82l-0.55,0.67l-1.67,0.69l-0.46,0.57l-0.73,2.83l0.51,1.34l1.35,1.7l0.25,4.1l1.11,1.0l-1.14,4.37l-0.87,1.76l-2.16,-0.09l-3.12,-1.6l-1.18,-0.01l-1.52,0.59l-0.21,0.82l0.95,0.93l0.15,0.84l-1.24,2.6l-1.06,0.64l-1.96,2.84l-3.1,1.35l-0.66,2.04l-2.65,2.08l-0.16,1.81l0.96,1.75l-0.04,1.26l-2.76,5.43l-2.8,2.03l-0.55,0.87l-0.03,0.76l1.6,2.88l-0.03,0.57l-4.22,1.17l-4.52,0.2l-1.94,0.88l-1.38,-0.66l-0.83,-0.05l-4.06,1.88l-3.12,0.95l-1.23,-0.04l-3.73,-1.98l-1.24,-1.82l-2.13,-1.68l-3.07,-1.73l-1.98,-0.53l-2.06,0.56l-0.77,-1.17l-0.7,-0.11l-1.4,1.03l-1.03,0.25l-3.64,2.43l-0.29,1.46l1.3,3.78l-0.03,0.72l-0.72,1.24l-0.01,2.07l-2.54,2.21l-1.66,2.62l-2.23,0.65l-0.87,1.1l-0.29,0.94l0.72,1.44l-0.03,0.57l-1.25,1.78l-4.31,2.66l-2.39,0.56l-0.98,0.82l-3.33,5.17l-3.48,2.85l-2.93,1.29l-0.86,0.82l-0.26,0.78l1.31,2.09l0.06,1.85l0.83,2.15l2.02,2.25l-0.18,3.0l-0.59,0.58l-4.81,0.36l-1.13,-0.2l-1.77,-0.98l-0.77,0.08l-0.72,0.57l-0.27,2.47l-0.74,1.55l-0.06,0.88l0.85,1.37l2.45,0.96l0.36,0.51l-2.45,5.11l-2.16,1.72l0.1,0.72l1.14,0.8l-0.03,0.97l-1.25,0.21l-2.22,-0.7l-1.4,0.32l-0.49,0.48l-0.46,1.35l-2.26,1.33l-1.04,2.84l-3.57,1.87l-1.05,0.18l-2.71,-2.15l-1.51,-0.47l-5.15,1.53l-2.7,-0.26l-1.21,0.8l-4.35,1.91l-1.3,0.2l-3.0,1.53l-4.83,-1.62l-0.8,0.09l-1.07,0.84l-1.29,1.99l-1.07,0.78l-0.59,0.02l-0.58,-0.74l-0.76,-0.21l-2.4,0.81l-0.9,1.56l0.26,2.33l-0.72,0.77l-2.48,-0.06l-1.1,-0.37l-0.37,-0.73l0.78,-1.23l-0.06,-1.08l-0.91,-0.88l-1.22,-0.35l-1.33,0.44l-1.59,1.05l-1.8,1.72l-1.77,0.13l-2.38,-0.3l-2.89,1.82l-0.59,0.71l-0.12,1.04l1.31,1.37l1.05,2.2l-1.49,3.87l-0.05,2.41l0.82,1.36l-1.48,3.09l-1.21,0.16l-0.79,0.5l-0.11,0.65l0.54,1.41l-1.07,1.59l-0.25,1.25l0.98,0.76l0.47,1.52l0.52,0.63l2.33,-0.0l5.59,1.04l1.06,0.66l0.67,1.47l1.56,1.16l2.16,4.89l-0.31,0.26l-1.15,-0.07l-0.56,0.49l0.03,2.28l0.52,0.69l0.76,0.17l1.43,-1.29l0.75,0.02l-0.11,3.16l1.06,3.23l-0.48,0.48l-1.62,0.52l-0.96,1.06l-0.61,2.64l0.6,2.08l-0.4,0.75l-1.97,1.89l-1.1,3.23l-1.55,0.13l-1.74,2.98l-2.28,1.29l-0.98,1.23l0.15,3.83l-0.4,0.28l-2.98,0.33l-2.69,2.77l-0.17,0.81l0.39,1.61l-0.03,1.69l-1.67,2.29l-0.35,1.23l0.55,3.77l-0.88,-0.07l-0.78,1.18l-0.86,-0.35l-4.31,2.79l-1.69,0.12l-3.22,-1.34l-1.7,-0.07l-0.41,0.38l-0.09,1.49l-1.58,0.74l-0.62,-1.55l-1.55,-0.25l-0.08,-0.92l-2.44,-2.91l-3.24,-2.0l-1.85,-0.11l-0.47,-0.41l-0.25,-0.49l0.25,-1.36l-1.4,-2.86l-1.82,-0.51l-4.68,0.75l-4.79,-0.35l-2.24,-0.65l-2.95,-2.22l-3.08,-0.49l-2.02,-1.09l-2.32,0.15l-4.04,-2.44l-3.6,-0.59l-1.04,-0.56l-0.92,-0.94l-0.21,-0.75l0.38,-0.75l1.21,-0.93l-0.15,-0.71l-1.6,-0.32l-1.53,0.56l-1.05,1.06l-0.53,1.66l-0.16,1.94l-0.41,0.78l-0.81,0.24l-3.0,-0.46l-1.26,-0.64l-1.02,-1.03l-0.63,-1.32l3.7,-3.88l0.95,-2.41l0.66,-2.96l-0.35,-3.1l-2.03,-1.72l-2.04,0.3l-2.51,-1.16l-3.21,-0.56l-1.3,0.75l-0.75,1.77l-1.7,0.25l-0.8,-0.46l-0.49,-1.68l0.17,-0.84l-0.85,-0.76l-1.84,-0.58l-3.76,1.0l-0.43,-1.87l-0.91,-1.03l-1.52,-0.66l0.07,-2.41ZM309.11,602.32l1.15,-0.9l0.67,-2.47l-0.61,-1.33l-1.64,-0.44l-1.19,0.8l-0.49,2.49l0.63,1.45l1.49,0.4ZM307.84,608.3l0.94,-0.4l1.08,-1.94l-0.6,-1.74l-1.63,-0.95l-0.46,0.07l-1.45,1.45l-0.2,1.38l0.25,1.08l0.52,0.68l1.55,0.37ZM235.41,400.43l1.09,0.41l1.35,-0.28l0.64,0.57l0.15,2.37l0.68,0.73l-0.16,1.32l2.38,1.46l0.35,0.53l-0.41,3.62l-0.61,1.91l-0.67,0.91l-0.62,-0.25l-0.84,-2.53l-1.25,-2.19l-3.59,-3.54l-1.32,-0.83l-2.14,-2.59l0.33,-1.57l-1.72,-3.8l1.1,0.13l1.99,0.91l3.27,2.7ZM219.58,381.29l3.07,-0.67l0.94,0.18l0.51,0.48l-0.09,0.29l-1.95,-0.5l-0.35,0.62l1.41,1.8l1.75,-0.06l1.83,-0.69l0.25,0.77l1.02,0.43l6.19,0.88l1.32,0.74l1.5,1.94l-0.96,0.35l-3.3,-0.75l-5.87,-3.31l-3.6,0.51l-0.76,-0.27l-2.9,-2.73Z",
+ "regionName": "Aquitaine, Limousin and Poitou-Charentes",
+ "post_id": "469"
+ }
+// "fr-re": {
+// "path": "M761.79,701.36l1.08,0.18l1.12,-0.39l1.21,0.39l2.77,-0.03l2.17,1.11l3.51,0.8l0.97,0.55l2.4,2.39l0.54,1.06l0.32,2.77l0.52,1.06l1.9,1.97l0.91,3.81l1.85,0.93l1.43,2.47l3.94,1.89l0.84,0.82l0.32,1.39l-1.08,2.72l-1.31,6.18l-0.27,4.98l-0.6,1.25l-1.42,0.53l-4.24,0.16l-2.56,1.32l-1.76,0.26l-1.74,-0.1l-1.22,-0.48l-1.58,0.46l-1.92,0.08l-3.62,-0.55l-3.79,-2.43l-5.72,-1.87l-1.23,-0.75l-1.75,-2.11l-3.42,-0.26l-3.52,-4.42l-0.9,-1.55l-0.63,-4.75l-3.33,-4.36l-1.6,-3.39l0.0,-1.42l0.43,-1.55l0.75,-1.19l2.55,-1.05l1.15,-1.41l0.43,-1.65l-0.32,-1.19l0.55,-0.82l-0.29,-0.86l0.61,-0.27l2.76,-0.09l5.6,-3.4l4.93,-0.0l2.25,0.81Z",
+// "regionName": "R\u00e9union",
+// "post_id": "510"
+// }
+ },
+ "height": 749.2159980728637,
+ "projection": {
+ "type": "mill",
+ "centralMeridian": 0.0
+ },
+ "width": 900.0
+});
\ No newline at end of file
--- /dev/null
+jQuery.fn.vectorMap('addMap', 'france_fr', {"width": 520, "height": 550, "paths":{"fr-01" : {"path": "M 383.28125,262.59375 L 381.125,262.8125 L 379.75,265.34375 L 376.0625,279.78125 L 375.53125,280.96875 L 375.15625,285.53125 L 374.09375,287 L 374.09375,293.59375 L 373.46875,295.09375 L 377.28125,297.40625 L 378.78125,297.625 L 381.125,299.75 L 381.53125,303.15625 L 384.09375,302.3125 L 388.0625,303.46875 L 388.125,302.71875 L 390.03125,302.71875 L 392.78125,305.28125 L 395.34375,304 L 396.625,300.1875 L 397.90625,298.6875 L 399.59375,298.90625 L 401.28125,300.40625 L 402.15625,303.15625 L 410,312.71875 L 412.34375,311.03125 L 412.75,307.40625 L 415.3125,306.96875 L 415.3125,300.59375 L 416.59375,299.53125 L 417,293.8125 L 417.5,294.21875 L 417.4375,292.125 L 416.375,290.1875 L 416.8125,284.6875 L 418.71875,285.75 L 419.78125,283.8125 L 421.6875,283.1875 L 423.65625,281.625 L 421.53125,281.625 L 421.53125,277.90625 L 423.875,276.53125 L 427.375,276.15625 L 427.59375,274.1875 L 426.40625,273.40625 L 429.34375,269.6875 L 428.9375,268.53125 L 425.59375,266.75 L 417.46875,275.6875 L 411.8125,275.6875 L 411.8125,273.34375 L 408.6875,271.78125 L 404.96875,275.875 L 402.03125,276.28125 L 402.03125,273.53125 L 399.5,272.375 L 395.59375,266.90625 L 392.0625,265.53125 L 390.90625,263 L 388.9375,262.59375 L 387,263.96875 L 385.4375,264.375 L 383.28125,262.59375 z ", "name" : "Ain"}, "fr-02" : {"path": "M 328.40625,62.21875 L 325.28125,64.375 L 323.71875,63 L 322.34375,63 L 319.21875,65.15625 L 316.875,63.78125 L 314.53125,65.15625 L 313.75,65.34375 L 313.15625,64.15625 L 311,64.15625 L 309.4375,65.15625 L 309.375,65.15625 L 309.84375,67.90625 L 307.28125,70.6875 L 307.28125,73.25 L 305.5,75.25 L 305.90625,77.625 L 306.875,81.59375 L 308.0625,88.34375 L 307.6875,94.28125 L 306.875,96.0625 L 309.25,97.84375 L 307.46875,98.65625 L 306.28125,103.40625 L 302.90625,104.1875 L 301.71875,106.1875 L 304.09375,106.59375 L 304.5,109.34375 L 302.71875,109.75 L 302.90625,112.71875 L 303.5,112.53125 L 304.5,110.9375 L 306.875,112.53125 L 308.28125,114.125 L 307.875,116.78125 L 309.65625,118.0625 L 310.25,122.375 L 315.5,127.4375 L 317.25,128.03125 L 318.25,130.375 L 321.53125,131.0625 L 321.9375,130.5625 L 322.9375,128.4375 L 325.875,127.0625 L 327.4375,122.96875 L 329.1875,121.78125 L 328.1875,120.40625 L 325.65625,120.40625 L 325.28125,119.0625 L 327.03125,118.28125 L 327.8125,117.09375 L 326.0625,115.9375 L 326.625,114.15625 L 331.125,113.78125 L 330.34375,112.03125 L 327.625,110.25 L 327.625,105 L 331.3125,102.25 L 335.4375,102.25 L 335.03125,100.3125 L 337.375,99.3125 L 340.6875,101.46875 L 342.0625,101.09375 L 341.875,94.4375 L 342.46875,92.09375 L 343.25,89.375 L 340.6875,88 L 341.28125,86.4375 L 345,85.65625 L 345,83.125 L 347.9375,81.5625 L 348.71875,79.21875 L 347.75,77.65625 L 347.9375,74.71875 L 349.6875,73.15625 L 347.9375,69.84375 L 348.46875,66.375 L 344.5,66.375 L 343.4375,67.09375 L 339.71875,66.125 L 338.9375,63.59375 L 337.78125,63.59375 L 335.625,65.53125 L 335.25,63.78125 L 330.9375,63.375 L 329.75,62.40625 L 328.40625,62.21875 z ", "name" : "Aisne"}, "fr-03" : {"path": "M 301.625,247.96875 L 298.90625,251.46875 L 297.34375,251.65625 L 295.59375,253.4375 L 293.625,251.28125 L 288.375,256.5625 L 288.375,259.6875 L 289.34375,260.46875 L 289.53125,262.03125 L 286.8125,264.15625 L 284.25,263.375 L 279.375,264.375 L 276.84375,267.28125 L 275.90625,269.28125 L 276.0625,269.25 L 278.40625,272.5625 L 278.40625,274.90625 L 279.75,276.65625 L 281.125,274.90625 L 282.6875,277.65625 L 284.84375,278.4375 L 287,283.5 L 287.09375,284.96875 L 290.0625,287.28125 L 291.65625,286.5625 L 292.90625,283.5625 L 294.125,283.21875 L 294.125,281.625 L 296.25,281.4375 L 296.4375,282.5 L 299.09375,279.5 L 302.09375,279.5 L 302.625,280.5625 L 301.21875,282.5 L 303.3125,284.8125 L 303.6875,286.21875 L 308.625,289.0625 L 314.625,289.9375 L 316.40625,289.75 L 319.0625,290.28125 L 321.34375,288.875 L 323.125,289.75 L 323.46875,292.21875 L 325.78125,292.75 L 328.78125,292.59375 L 329.65625,294.71875 L 332.40625,295.8125 L 332.5,294.84375 L 337.1875,294.625 L 336.8125,283.5 L 335.4375,280.78125 L 336,278.625 L 339.25,278.0625 L 339.34375,277.84375 L 343.4375,274.71875 L 343.625,267.09375 L 342.25,265.15625 L 339.125,265.15625 L 337.96875,263.59375 L 334.65625,263.59375 L 333.6875,262.40625 L 333.6875,259.46875 L 329.75,252.0625 L 327.8125,250.6875 L 324.09375,255.78125 L 322.53125,256.15625 L 321.9375,253.625 L 320.1875,252.84375 L 319.40625,254.40625 L 316.5,254.40625 L 316.09375,252.65625 L 314.125,253.8125 L 312,255 L 309.65625,252.4375 L 306.3125,250.875 L 306.125,248.34375 L 301.625,247.96875 z ", "name" : "Allier"}, "fr-04" : {"path": "M 463.84375,364.34375 L 461.71875,367.53125 L 458.71875,369.3125 L 457.65625,371.4375 L 455,371.59375 L 455,373.53125 L 454.28125,374.59375 L 453.21875,377.25 L 446.875,377.09375 L 443.875,375.5 L 441.90625,376.90625 L 438.21875,376.71875 L 437.3125,377.96875 L 438.21875,377.96875 L 438.75,381.3125 L 437.84375,381.6875 L 434.5,379.5625 L 434.5,378.3125 L 432.5625,376.71875 L 431.5,376.71875 L 431.5,378.5 L 429.90625,378.84375 L 426.53125,380.78125 L 424.40625,384.34375 L 423.875,386.09375 L 425.125,386.4375 L 425.3125,389.28125 L 424.0625,389.28125 L 422.125,387.5 L 421.0625,387.6875 L 421.59375,389.28125 L 424.59375,392.625 L 422.65625,393.34375 L 421.25,392.46875 L 417.6875,392.46875 L 414.6875,395.28125 L 414.65625,395.25 L 414.53125,396.40625 L 413.375,395.03125 L 411.8125,393.65625 L 410.8125,396.59375 L 409.0625,398.15625 L 408.3125,398.09375 L 408.34375,398.28125 L 408.5,400.9375 L 410.625,401.3125 L 410.625,403.78125 L 408.6875,404.65625 L 409.03125,407.5 L 412.5625,409.25 L 412.5625,411.1875 L 410.96875,412.96875 L 410.96875,414.5625 L 415.40625,414.5625 L 419.46875,419.15625 L 419.4375,419.25 L 424.59375,417.5625 L 430.96875,421.8125 L 434.5,419.15625 L 435.375,417.375 L 440.34375,415.78125 L 443.5,417.90625 L 448.09375,414.5625 L 453.40625,414.75 L 454.8125,413.3125 L 457.78125,413.1875 L 457.84375,413.15625 L 457.125,411.375 L 458,410.3125 L 457.65625,408.90625 L 460.46875,408.90625 L 461.1875,408.03125 L 463.84375,406.59375 L 465.96875,408.03125 L 467.375,407.125 L 464.03125,404.125 L 460.46875,400.78125 L 459.25,400.40625 L 459.0625,397.75 L 456.9375,394.59375 L 457.65625,390 L 458.71875,387.5 L 460.65625,385.90625 L 460.84375,383.4375 L 463.5,382.03125 L 463.90625,381.875 L 463.90625,378.09375 L 466.65625,377.71875 L 465.09375,376.34375 L 463.125,375.75 L 462.15625,373.21875 L 462.9375,371.46875 L 466.4375,367.75 L 465.875,365 L 466.375,364.46875 L 463.84375,364.34375 z ", "name" : "Alpes de Haute Provence"}, "fr-05" : {"path": "M 447.34375,339.15625 L 445.59375,339.9375 L 445.1875,342.875 L 441.6875,343.28125 L 441.09375,340.53125 L 439.9375,339.375 L 436.40625,339.75 L 435.03125,340.9375 L 434.25,345.03125 L 434.84375,346 L 438.9375,346.40625 L 439.71875,348.9375 L 441.28125,349.71875 L 441.28125,354 L 437.5625,353.8125 L 436,355.5625 L 431.53125,354.78125 L 429,356.9375 L 427.21875,356.15625 L 424.6875,358.125 L 425.65625,359.875 L 424.09375,361.4375 L 419.21875,361.4375 L 419.21875,363.78125 L 420.78125,364.5625 L 420.1875,365.9375 L 416.875,367.28125 L 412.78125,367.6875 L 411.59375,371.40625 L 411.40625,373.75 L 413.5625,375.5 L 411.40625,378.03125 L 408.6875,376.65625 L 405.5625,376.46875 L 405.15625,378.21875 L 407.125,379.59375 L 404.75,381.15625 L 405.5625,384.46875 L 412.1875,386.25 L 413.375,388.78125 L 415.3125,389.15625 L 414.65625,395.25 L 414.6875,395.28125 L 417.6875,392.46875 L 421.25,392.46875 L 422.65625,393.34375 L 424.59375,392.625 L 421.59375,389.28125 L 421.0625,387.6875 L 422.125,387.5 L 424.0625,389.28125 L 425.3125,389.28125 L 425.125,386.4375 L 423.875,386.09375 L 424.40625,384.34375 L 426.53125,380.78125 L 429.90625,378.84375 L 431.5,378.5 L 431.5,376.71875 L 432.5625,376.71875 L 434.5,378.3125 L 434.5,379.5625 L 437.84375,381.6875 L 438.75,381.3125 L 438.21875,377.96875 L 437.3125,377.96875 L 438.21875,376.71875 L 441.90625,376.90625 L 443.875,375.5 L 446.875,377.09375 L 453.21875,377.25 L 454.28125,374.59375 L 455,373.53125 L 455,371.59375 L 457.65625,371.4375 L 458.71875,369.3125 L 461.71875,367.53125 L 463.84375,364.34375 L 466.375,364.46875 L 468.21875,362.46875 L 470.34375,362.65625 L 470.34375,360.90625 L 467.625,359.53125 L 467.03125,353.875 L 464.875,353.09375 L 462.15625,353.5 L 457.0625,350.9375 L 456.28125,345.09375 L 453.375,344.125 L 452.375,342.15625 L 451.09375,339.34375 L 447.34375,339.15625 z ", "name" : "Hautes Alpes"}, "fr-06" : {"path": "M 463.90625,381.875 L 463.5,382.03125 L 460.84375,383.4375 L 460.65625,385.90625 L 458.71875,387.5 L 457.65625,390 L 456.9375,394.59375 L 459.0625,397.75 L 459.25,400.40625 L 460.46875,400.78125 L 464.03125,404.125 L 467.375,407.125 L 465.96875,408.03125 L 463.84375,406.59375 L 461.1875,408.03125 L 460.46875,408.90625 L 457.65625,408.90625 L 458,410.3125 L 457.125,411.375 L 457.84375,413.15625 L 455.53125,414.5625 L 456.40625,416.6875 L 458.71875,416.84375 L 461,417.90625 L 461.375,421.625 L 463.5,423.75 L 464.71875,423.75 L 467.03125,424.625 L 467.375,426.59375 L 465.96875,427.8125 L 467.03125,428.875 L 467.03125,430.125 L 469.21875,432.375 L 469.375,432.1875 L 469.5625,427.71875 L 473.46875,428.5 L 474.84375,426.71875 L 476.8125,427.125 L 477,421.0625 L 481.5,420.6875 L 485.40625,417.15625 L 488.90625,417.15625 L 489.09375,415 L 492.625,412.875 L 490.65625,408.375 L 493.59375,405.84375 L 493,402.90625 L 497.3125,401.53125 L 498.46875,397.25 L 497.90625,394.3125 L 496.90625,392.5625 L 496.125,390 L 493.21875,390.21875 L 484.03125,393.53125 L 481.09375,393.53125 L 476.03125,389.4375 L 470.9375,388.0625 L 468,388.0625 L 468,384.53125 L 463.90625,382 L 463.90625,381.875 z ", "name" : "Alpes Maritimes"}, "fr-07" : {"path": "M 375.25,328.5 L 370.71875,331.1875 L 369.84375,335.03125 L 366.46875,335.65625 L 364.65625,336.15625 L 364.71875,336.25 L 363.5625,340.9375 L 360.8125,342.09375 L 359.65625,344.0625 L 360.4375,346.59375 L 361,347.96875 L 358.09375,347.96875 L 357.875,351.65625 L 354.75,351.875 L 353.1875,356.75 L 348.5,356.75 L 343.4375,360.46875 L 340.625,364.9375 L 341.09375,365.53125 L 342.46875,372.71875 L 345.78125,376.3125 L 345.21875,380.4375 L 349.375,382.9375 L 349.375,388.46875 L 351.59375,387.34375 L 356.28125,390.40625 L 358.5,391.21875 L 359.03125,387.34375 L 361.8125,386.8125 L 362.625,389.84375 L 365.40625,389.5625 L 365.9375,386.53125 L 372.28125,390.09375 L 373.3125,388 L 376,387.59375 L 376.21875,383.46875 L 375.59375,382.59375 L 374.75,382.40625 L 374.75,380.90625 L 375.375,379.40625 L 374.3125,377.71875 L 374.9375,373.90625 L 377.5,370.90625 L 377.5,366.6875 L 376.4375,361.78125 L 378.34375,361.375 L 378.78125,359.25 L 380.6875,355.625 L 381.75,352.875 L 380.0625,348.625 L 379,345.21875 L 377.5,339.28125 L 377.5,331.3125 L 376.4375,330.96875 L 375.25,328.5 z ", "name" : "Ardèche"}, "fr-08" : {"path": "M 367.625,55.84375 L 365.65625,58.75 L 363.90625,60.53125 L 363.90625,62.28125 L 363.90625,64.625 L 361.5625,66.1875 L 357.28125,67.5625 L 354.9375,68.53125 L 352.1875,66.375 L 348.46875,66.375 L 347.9375,69.84375 L 349.6875,73.15625 L 347.9375,74.71875 L 347.75,77.65625 L 348.71875,79.21875 L 347.9375,81.5625 L 345,83.125 L 345,85.65625 L 341.28125,86.4375 L 340.6875,88 L 343.25,89.375 L 342.46875,92.09375 L 341.875,94.4375 L 342,99.3125 L 346.75,99.4375 L 350.90625,102.03125 L 351.6875,103.21875 L 353.875,103.8125 L 357.0625,106.1875 L 359.625,106.375 L 360.21875,105.78125 L 362.8125,105.78125 L 364,108.375 L 365.375,108.375 L 366.1875,107.1875 L 370.9375,107.375 L 371.71875,108.375 L 372.3125,108.375 L 374.3125,106.375 L 376.09375,107.96875 C 376.09375,107.96875 376.33461,107.94351 376.375,107.9375 L 376.25,107.125 L 378.59375,105.96875 L 379.75,104.78125 L 379,102.84375 L 378.78125,101.46875 L 380.9375,99.71875 L 381.71875,95.8125 L 379.375,92.875 L 380.15625,91.5 L 382.125,87.8125 L 382.6875,88.59375 L 385.625,88.59375 L 387,89.9375 L 388.75,88.78125 L 390.125,86.53125 L 388.71875,86.3125 L 387.9375,82.40625 L 386.375,81.21875 L 380.90625,80.625 L 379.9375,78.09375 L 378.15625,76.9375 L 371.90625,76.15625 L 371.53125,71.65625 L 372.3125,70.875 L 372.3125,69.125 L 369.1875,67.15625 L 369.78125,65 L 370.5625,63.0625 L 369.1875,61.875 L 371.34375,59.9375 L 371.34375,56.40625 L 370.5625,55.84375 L 367.625,55.84375 z ", "name" : "Ardennes"}, "fr-09" : {"path": "M 237.21875,446.375 L 235.96875,447.25 L 235.4375,448.3125 L 237.90625,450.09375 L 238.625,451.34375 L 238.09375,452.375 L 233.84375,452.75 L 232.625,454.5 L 232.78125,455.03125 L 234.375,455.5625 L 235.28125,456.8125 L 234.21875,458.5625 L 232.96875,458.40625 L 231.03125,456.625 L 228.71875,455.9375 L 226.4375,456.09375 L 222.375,458.5625 L 222.53125,461.9375 L 223.59375,462.65625 L 222.90625,465.28125 L 218.28125,466.53125 L 216.53125,468.65625 L 216.53125,472.1875 L 217.25,473.25 L 215.59375,474.78125 L 216.65625,475.375 L 222.6875,476.53125 L 225.25,476.53125 L 228.5625,480.84375 L 236.96875,480.4375 L 240.28125,485.71875 L 243.21875,484.53125 L 251.8125,485.71875 L 252.4375,489.3125 L 258.5,487.90625 L 260.71875,485.96875 L 264.03125,485.125 L 264.84375,483.46875 L 272.03125,482.9375 L 267.625,477.6875 L 264.03125,479.625 L 257.6875,474.375 L 259.0625,472.4375 L 264.03125,472.4375 L 263.46875,467.75 L 263.46875,464.15625 L 262.65625,457.5 L 252.96875,452.8125 L 253.53125,451.15625 L 251.6875,449.09375 L 250.125,449.75 L 248,450.09375 L 244.09375,448.3125 L 243.03125,447.96875 L 244.625,449.90625 L 243.9375,451.5 L 240.5625,451.15625 L 240.40625,449.375 L 238.4375,446.71875 L 237.21875,446.375 z ", "name" : "Ariège"}, "fr-10" : {"path": "M 349.3125,138.6875 L 345.34375,140.875 L 341.96875,143.25 L 338.625,143.25 L 333.0625,147.03125 L 328.3125,147.8125 L 324.9375,144.25 L 324.09375,144.4375 L 324.09375,145.03125 L 321.375,146.1875 L 321.1875,148.53125 L 319.8125,150.3125 L 319.03125,154.21875 L 318.59375,157.5 L 319.8125,158.5 L 322.15625,158.5 L 327.21875,163.78125 L 326.625,169.0625 L 330.15625,171.78125 L 332.125,170.40625 L 335.25,174.125 L 335.625,177.65625 L 337.78125,180.5625 L 338.75,182.71875 L 346.5625,183.125 L 350.46875,181.15625 L 351.625,183.3125 L 353,183.5 L 354,181.34375 L 360.4375,181.15625 L 362.96875,179.78125 L 363.375,177.25 L 369.03125,177.25 L 369.8125,177.6875 L 369.15625,175.1875 L 367.5625,174.1875 L 369.75,172.21875 L 373.125,172 L 374.3125,170.21875 L 374.09375,163.09375 L 373.3125,158.9375 L 369.9375,157.75 L 366.375,152.78125 L 366.5625,149.8125 L 367.59375,147.65625 L 365.78125,147.03125 L 360.21875,148.21875 L 356.25,148.21875 L 352.6875,142.875 L 352.28125,138.90625 L 349.3125,138.6875 z ", "name" : "Aube"}, "fr-11" : {"path": "M 274.25,438.46875 L 273.96875,442.0625 L 270.375,440.9375 L 266.5,440.9375 L 266.78125,439.5625 L 264.84375,439.84375 L 260.71875,441.21875 L 259.34375,438.71875 L 256.5625,441.21875 L 257.40625,443.15625 L 254.34375,444.53125 L 253.8125,447.5625 L 251.3125,448.6875 L 253.53125,451.15625 L 252.96875,452.8125 L 262.65625,457.5 L 263.46875,464.15625 L 263.46875,467.75 L 264.03125,472.4375 L 259.0625,472.4375 L 257.6875,474.375 L 264.03125,479.625 L 267.625,477.6875 L 272.03125,482.9375 L 271.375,483 L 272.21875,483.5 L 280.15625,479.625 L 278.21875,476.78125 L 278.0625,473.4375 L 296.59375,473.4375 L 296.25,470.9375 L 300.5,468.65625 L 305.4375,472.53125 L 308,473.71875 L 307.84375,468.125 L 308.0625,461.6875 L 305.71875,461.875 L 303.75,458.96875 L 305.3125,456.40625 L 308.625,459.53125 L 311.5625,457.1875 L 313.53125,455.25 L 313.78125,453.1875 L 311.28125,453.09375 L 310.40625,450.28125 L 307.9375,450.09375 L 305.625,446.71875 L 303.84375,446.90625 L 301.75,445.65625 L 301.375,442.65625 L 300.3125,443.1875 L 300.84375,445.3125 L 298.375,445.3125 L 298.1875,448.84375 L 294.5,450.09375 L 292.71875,446.375 L 290.25,447.96875 L 288.125,446.375 L 287.0625,443.90625 L 288.84375,441.78125 L 288,439.5 L 287.78125,439.5625 L 281.96875,439.5625 L 275.90625,438.46875 L 274.25,438.46875 z ", "name" : "Aude"}, "fr-12" : {"path": "M 294.6875,353.375 L 289.15625,358.09375 L 289.15625,362.78125 L 287.78125,362.78125 L 287.21875,367.1875 L 285.84375,367.75 L 284.75,370.21875 L 278.65625,370.21875 L 278.125,369.40625 L 275.34375,369.40625 L 273.6875,372.15625 L 273.09375,372.09375 L 272.75,373.1875 L 271.5,374.59375 L 267.96875,374.59375 L 267.25,375.5 L 265.5,375.3125 L 262.3125,378.84375 L 261.25,378.5 L 258.96875,380.4375 L 259.65625,383.96875 L 261.4375,386.625 L 260.0625,388.0625 L 260.375,392.09375 L 263.1875,392.28125 L 261.59375,395.46875 L 262.84375,398.65625 L 264.4375,397.75 L 265.15625,399.34375 L 267.4375,397.0625 L 270.8125,396.875 L 274.15625,399.34375 L 280,400.40625 L 282.125,404.125 L 285.125,405.53125 L 286.71875,409.59375 L 286.53125,411.1875 L 288.46875,414.75 L 288.46875,416.6875 L 292,421.28125 L 295.375,423.03125 L 297.5,422.5 L 298.5625,421.09375 L 300.15625,421.46875 L 303.8125,423.8125 L 303.84375,423.8125 L 305.46875,423.8125 L 308.78125,423.8125 L 308.5,418.03125 L 308.5,416.09375 L 310.15625,416.09375 L 313.1875,417.75 L 316.21875,417.75 L 315.6875,414.4375 L 317.34375,413.03125 L 320.65625,412.5 L 320.65625,409.71875 L 324.25,408.0625 L 323.40625,404.21875 L 320.375,404.21875 L 317.625,403.65625 L 317.0625,401.4375 L 319.28125,400.90625 L 319.28125,398.125 L 321.46875,396.1875 L 319.8125,395.375 L 315.125,396.1875 L 315.40625,394 L 312.09375,392.59375 L 311.25,385.96875 L 311.25,381.28125 L 308.5,379.34375 L 308.78125,375.46875 L 302.96875,368.3125 L 302.40625,362.78125 L 300.5,362.78125 L 299.65625,357.25 L 295.78125,357.8125 L 295.25,354.21875 L 294.6875,353.375 z ", "name" : "Aveyron"}, "fr-13" : {"path": "M 379.71875,409.90625 L 374.25,413.03125 L 372.84375,423.53125 L 367.0625,422.71875 L 365.40625,427.125 L 366.78125,429.0625 L 360.4375,432.9375 L 358.6875,437 L 364.875,437.28125 L 373.09375,437.875 L 374.65625,439.4375 L 371.71875,439.4375 L 369.78125,442.75 L 378.15625,444.5 L 384.8125,443.34375 L 381.28125,440 L 383.625,438.0625 L 387.34375,439.625 L 389.09375,443.34375 L 400.25,443.53125 L 403.15625,442.34375 L 403.75,444.125 L 400.625,446.84375 L 404.9375,447.03125 L 404.15625,449 L 402.96875,450.375 L 412.53125,450.375 L 417.21875,451.9375 L 417.6875,452.5625 L 417.875,448.6875 L 419.28125,447.09375 L 421.0625,446.03125 L 420.875,444.96875 L 419.46875,443.5625 L 418.0625,443.5625 L 417.15625,442.5 L 418.75,441.0625 L 418.75,440.53125 L 417,439.65625 L 417,438.25 L 420.875,438.4375 L 421.78125,437.71875 L 418.40625,434.53125 L 418.59375,430.8125 L 416.46875,429.0625 L 418.21875,425.53125 L 422.46875,422.6875 L 419.28125,420.5625 L 417,422.34375 L 411.6875,423.5625 L 407.4375,423.03125 L 399.84375,419.875 L 395.25,420.03125 L 391.375,418.28125 L 389.9375,416.3125 L 386.9375,412.96875 L 379.875,409.96875 L 379.71875,409.90625 z ", "name" : "Bouches du Rhône"}, "fr-14" : {"path": "M 202.65625,97.78125 L 198.09375,98.59375 L 190.65625,102.90625 L 182.28125,106.21875 L 175.625,102.5 L 159.625,100.15625 L 155.90625,98.21875 L 150.125,99.6875 L 150.46875,101.84375 L 149.34375,102.96875 L 149.5,104.5625 L 153.21875,108.28125 L 155.46875,109.5625 L 157.09375,107.46875 L 158.375,109.09375 L 156.75,111.1875 L 158.21875,113.59375 L 157.5625,114.40625 L 158.6875,116.6875 L 158.0625,119.25 L 156.4375,121.84375 L 153.84375,123.4375 L 152.40625,122.3125 L 150.96875,123.59375 L 152.5625,125.0625 L 151.28125,127.46875 L 148.21875,128.59375 L 151.9375,133.28125 L 155.625,133.59375 L 158.46875,135.4375 L 162.40625,134.25 L 165.3125,130.875 L 169.34375,132 L 172.875,129.5625 L 175,128.78125 L 177.25,131.03125 L 180.96875,130.375 L 184.1875,132.15625 L 188.21875,130.875 L 191.90625,128.125 L 194.34375,125.375 L 195.96875,125.0625 L 196.4375,127.15625 L 197.71875,126.84375 L 197.875,125.375 L 201.59375,124.75 L 202.875,125.53125 L 206.84375,124.65625 L 207.5,122.75 L 207.3125,121 L 205.34375,120.21875 L 205.15625,118.84375 L 206.90625,117.6875 L 207.125,115.71875 L 205.9375,111.03125 L 203.59375,107.71875 L 205.5625,106.5625 L 205.5625,105.78125 L 203.59375,105.1875 L 202.65625,97.78125 z ", "name" : "Calvados"}, "fr-15" : {"path": "M 285.84375,323.71875 L 285.25,325.875 L 286.21875,328.21875 L 285.03125,329.59375 L 283.09375,329.59375 L 281.125,327.4375 L 279.375,326.46875 L 279.1875,331.9375 L 275.65625,334.09375 L 273.125,337.59375 L 273.71875,341.125 L 272.9375,342.6875 L 271.9375,345.8125 L 270.375,345.8125 L 268.8125,347.75 L 270,348.9375 L 270.78125,350.875 L 268.25,352.65625 L 269.28125,359.1875 L 272.59375,361.65625 L 270.09375,367.46875 L 272.59375,368.5625 L 271.5,371.875 L 273.6875,372.15625 L 275.34375,369.40625 L 278.125,369.40625 L 278.65625,370.21875 L 284.75,370.21875 L 285.84375,367.75 L 287.21875,367.1875 L 287.78125,362.78125 L 289.15625,362.78125 L 289.15625,358.09375 L 294.6875,353.375 L 295.25,354.21875 L 295.78125,357.8125 L 299.65625,357.25 L 300.5,362.78125 L 302.40625,362.78125 L 302.96875,368.3125 L 304.6875,370.4375 L 307.5,363.96875 L 310.25,355.375 L 313.75,357.71875 L 315.3125,354.21875 L 320.3125,352.40625 L 320.3125,350.75 L 319.25,349.15625 L 317.125,347.90625 L 318.1875,346.3125 L 317.28125,345.4375 L 318.34375,345.09375 L 319.59375,344.03125 L 317.46875,343.84375 L 316.40625,342.4375 L 316.0625,338.71875 L 314.8125,337.46875 L 313.9375,334.3125 L 309.5,334.3125 L 308.625,331.8125 L 307.21875,331.65625 L 306.5,333.0625 L 303.6875,332.875 L 301.03125,328.8125 L 299.96875,328.65625 L 297.84375,327.59375 L 296.59375,328.8125 L 293.4375,328.8125 L 291.84375,325.46875 L 285.84375,323.71875 z ", "name" : "Cantal"}, "fr-16" : {"path": "M 206.28125,284.875 L 204.59375,286.15625 L 204.8125,288.9375 L 203.75,289.78125 L 200.75,288.0625 L 197.78125,289.125 L 194.375,289.34375 L 191.8125,286.21875 L 191,286.375 L 187.59375,288.0625 L 185.03125,288.71875 L 185.03125,290.1875 L 183.5625,291.90625 L 183.96875,292.96875 L 182.0625,294.03125 L 180.375,300.1875 L 179.9375,304.21875 L 178.46875,304.84375 L 176.34375,304.65625 L 175.90625,303.59375 L 173.5625,303.59375 L 172.3125,304.65625 L 169.53125,304.65625 L 167.1875,305.90625 L 168.90625,306.5625 L 169.125,311.03125 L 169.96875,311.21875 L 168.46875,312.9375 L 170.1875,314 L 172.5,316.125 L 173.78125,318.25 L 175.28125,319.71875 L 174.84375,321.84375 L 174,322.6875 L 175.28125,323.96875 L 175.28125,325.46875 L 172.71875,327.59375 L 173.78125,328.4375 L 175.28125,328.875 L 175.28125,329.28125 L 173.15625,330.125 L 173.34375,331.1875 L 174.625,331.84375 L 178.65625,331.1875 L 180.375,333.09375 L 181.65625,334.8125 L 185.8125,337.625 L 186.40625,336.625 L 190.3125,337.03125 L 192.25,335.25 L 195.78125,331.75 L 195.96875,324.90625 L 205.15625,318.65625 L 205.34375,313.96875 L 208.09375,313.59375 L 209.84375,310.46875 L 210.9375,310.5 L 211.59375,307.53125 L 213.15625,307.34375 L 214.125,304.59375 L 216.09375,304 L 218.4375,302.4375 L 218.0625,297.5625 L 219.8125,296.96875 L 223.3125,296.1875 L 223.125,294.4375 L 222.53125,291.71875 L 219.8125,291.5 L 218.25,289.75 L 219.21875,288 L 219.28125,286.40625 L 217.53125,285.53125 L 214.15625,285.53125 L 212.65625,287.21875 L 209.03125,288.71875 L 207.78125,287.4375 L 206.28125,284.875 z ", "name" : "Charente"}, "fr-17" : {"path": "M 149.3125,270.625 L 146.5625,270.8125 L 140.59375,274.4375 L 142.03125,275.75 L 138.90625,278.28125 L 138.53125,280.25 L 135.59375,280.625 L 134.03125,278.875 L 130.125,278.5 L 129.71875,276.53125 L 127.375,274.96875 L 124.0625,276.15625 L 126.21875,279.28125 L 128.9375,279.28125 L 131.6875,281.03125 L 133.84375,282.78125 L 137.9375,282.59375 L 138.71875,284.34375 L 141.4375,284.9375 L 142.4375,287.65625 L 144.1875,288.4375 L 144,290.59375 L 141.65625,290.21875 L 140.875,291.375 L 142.625,293.90625 L 141.65625,298.21875 L 139.3125,298.03125 L 139.5,300.75 L 140.09375,301.71875 L 137.34375,301.71875 L 136.96875,300.15625 L 138.71875,297.8125 L 138.125,296.46875 L 137.15625,295.6875 L 136.75,291 L 133.4375,290.59375 L 130.71875,287.28125 L 130.3125,294.125 L 134.8125,297.4375 L 135.1875,301.15625 L 135.96875,305.4375 L 136.375,309.75 L 138.71875,309.53125 L 142.8125,312.875 L 145.5625,314.4375 L 145.75,316.375 L 147.90625,316.78125 L 154.15625,323.03125 L 155.625,329.78125 L 161.40625,329.78125 L 162.375,328.8125 L 162.5625,331.75 L 167.65625,332.34375 L 168.4375,338.59375 L 171.1875,338.78125 L 175.65625,343.28125 L 178,343.65625 L 180.75,342.28125 L 182.6875,343.65625 L 184.25,340.34375 L 185.8125,337.625 L 181.65625,334.8125 L 180.375,333.09375 L 178.65625,331.1875 L 174.625,331.84375 L 173.34375,331.1875 L 173.15625,330.125 L 175.28125,329.28125 L 175.28125,328.875 L 173.78125,328.4375 L 172.71875,327.59375 L 175.28125,325.46875 L 175.28125,323.96875 L 174,322.6875 L 174.84375,321.84375 L 175.28125,319.71875 L 173.78125,318.25 L 172.5,316.125 L 170.1875,314 L 168.46875,312.9375 L 169.96875,311.21875 L 169.125,311.03125 L 168.90625,306.5625 L 167.1875,305.90625 L 169.53125,304.65625 L 172.3125,304.65625 L 173.5625,303.59375 L 175.90625,303.59375 L 176.34375,304.65625 L 178.46875,304.84375 L 179.9375,304.21875 L 180.375,300.1875 L 182.0625,294.03125 L 182.125,294 L 180.59375,292.53125 L 180.15625,290.40625 L 177.40625,289.125 L 173.78125,286.59375 L 169.3125,287 L 166.5625,283.40625 L 162.53125,283.1875 L 159.34375,280.84375 L 159.34375,279.5625 L 157.21875,277.25 L 157.125,274.375 L 154.1875,272.1875 L 150.46875,273.75 L 149.3125,270.625 z ", "name" : "Charente Maritime"}, "fr-18" : {"path": "M 275.53125,200.84375 L 272.6875,202.25 L 270.15625,204.34375 L 270.28125,205.1875 L 272.8125,205.875 L 273.8125,208 L 275.34375,208.5625 L 274.78125,209.8125 L 274.78125,211.90625 L 272.40625,212.90625 L 270.5625,216.25 L 270.4375,218.09375 L 271.125,218.9375 L 271.40625,219.90625 L 268.90625,221.3125 L 264.96875,221.71875 L 264,220.625 L 262.875,220.75 L 261.75,222 L 261.875,224.53125 L 259.375,224.6875 L 259.21875,226.90625 L 256.96875,228.75 L 257.25,229.59375 L 258.65625,230.71875 L 261.46875,231.125 L 263.5625,230.28125 L 266.21875,230.15625 L 267.5,231.125 L 267.0625,233.78125 L 269.3125,236.75 L 269.3125,238 L 268.34375,239.6875 L 268.34375,240.375 L 269.46875,241.65625 L 271.28125,241.65625 L 271.40625,242.46875 L 269.1875,244.3125 L 269.3125,245.5625 L 267.90625,246.28125 L 268.46875,247.25 L 270.28125,248.78125 L 270.28125,249.90625 L 268.34375,251.03125 L 268.34375,252.71875 L 271,254.125 L 271.5625,256.09375 L 273.25,257.625 L 273.09375,258.1875 L 272.40625,259.03125 L 272.25,261.5625 L 271.84375,262.40625 L 272.96875,264.625 L 273.375,266.3125 L 271.40625,268.28125 L 271.3125,269.84375 L 275.90625,269.28125 L 276.84375,267.28125 L 279.375,264.375 L 284.25,263.375 L 286.8125,264.15625 L 289.53125,262.03125 L 289.34375,260.46875 L 288.375,259.6875 L 288.375,256.5625 L 293.625,251.28125 L 295.59375,253.4375 L 297.34375,251.65625 L 298.90625,251.46875 L 301.625,247.96875 L 306.125,248.34375 L 306.1875,249.40625 L 307.6875,244.625 L 306.71875,242.875 L 306.90625,240.34375 L 307.5,235.25 L 305.34375,233.125 L 305.75,228.4375 L 303.78125,224.3125 L 303.59375,221.59375 L 300.0625,218.84375 L 299.5,216.5 L 301.25,213.96875 L 301.25,210.25 L 299.21875,207.875 L 297.21875,208.6875 L 296.25,208.28125 L 294.84375,206.4375 L 294,206.3125 L 293.4375,206.59375 L 293.28125,209.40625 L 292.03125,209.53125 L 291.0625,208.6875 L 288.8125,205.59375 L 287.96875,204.5 L 284.75,204.34375 L 283.1875,202.375 L 281.9375,202.375 L 281.375,203.09375 L 279.28125,203.375 L 277.59375,201.8125 L 275.625,200.96875 L 275.53125,200.84375 z ", "name" : "Cher"}, "fr-19" : {"path": "M 265.75,307.625 L 264.90625,309.75 L 261.71875,310.375 L 260.46875,312.5 L 258.96875,312.5 L 256.84375,311.875 L 255.34375,314.40625 L 253.03125,314.625 L 251.53125,317.375 L 249.625,317.375 L 248.125,318.875 L 244.3125,318.4375 L 243.03125,320.5625 L 241.5625,320.375 L 239,323.5625 L 236.65625,322.6875 L 235.5625,324.90625 L 236.40625,327.0625 L 238.5625,328.8125 L 234.65625,332.34375 L 234.65625,335.0625 L 236.21875,335.84375 L 234.65625,337.8125 L 236.8125,339.5625 L 235.25,341.5 L 237,342.6875 L 241.28125,342.5 L 241.09375,346.78125 L 242.71875,349.34375 L 243.3125,349.25 L 247.46875,347.3125 L 252.4375,349.53125 L 256.28125,355.03125 L 258.5,354.75 L 261.8125,351.4375 L 262.90625,353.375 L 265.125,351.1875 L 268.15625,352 L 268.25,352.65625 L 270.78125,350.875 L 270,348.9375 L 268.8125,347.75 L 270.375,345.8125 L 271.9375,345.8125 L 272.9375,342.6875 L 273.71875,341.125 L 273.125,337.59375 L 275.65625,334.09375 L 279.1875,331.9375 L 279.375,326.46875 L 281.125,327.4375 L 283.09375,329.59375 L 285.03125,329.59375 L 286.21875,328.21875 L 285.25,325.875 L 286.21875,322.375 L 285.625,319.0625 L 284.4375,317.6875 L 284.4375,314.9375 L 286.21875,312.03125 L 285.8125,309.28125 L 285.375,308.84375 L 283.40625,310.375 L 279.5625,310.375 L 278.3125,312.28125 L 275.96875,312.28125 L 274.0625,310.375 L 273.1875,309.09375 L 268.3125,309.09375 L 267.25,307.625 L 265.75,307.625 z ", "name" : "Corrèze"}, "fr-2a" : {"path": "M 445.33847,488.9562 L 445.33847,491.11245 L 447.30722,492.48745 L 450.61972,494.42495 L 450.83847,495.98745 L 448.86972,496.5812 L 445.74472,497.17495 L 445.74472,498.5187 L 446.90097,499.7062 L 447.11972,503.61245 L 451.40097,504.98745 L 452.96347,505.36245 L 454.33847,507.5187 L 453.36972,508.8937 L 451.80722,509.4562 L 450.61972,511.61245 L 449.46347,512.98745 L 450.02597,516.48745 L 452.96347,516.29995 L 453.74472,516.8937 L 456.49472,515.5187 L 457.27597,516.29995 L 455.90097,519.23745 L 457.27597,520.61245 L 454.93222,522.36245 L 453.36972,525.86245 L 457.65097,526.86245 L 463.71347,527.42495 L 461.18222,530.36245 C 461.18222,530.36245 459.99289,529.90364 459.46347,530.1437 C 459.44782,530.15141 459.41536,530.16589 459.40097,530.17495 C 459.39647,530.17828 459.37406,530.20271 459.36972,530.2062 C 459.36553,530.20986 459.34249,530.23363 459.33847,530.23745 C 459.33478,530.24161 459.31073,530.26437 459.30722,530.2687 C 459.30054,530.27771 459.28192,530.29022 459.27597,530.29995 C 459.27319,530.30499 459.27856,530.32597 459.27597,530.3312 C 459.27118,530.34203 459.24871,530.38211 459.24472,530.3937 C 459.24293,530.39969 459.2463,530.41876 459.24472,530.42495 C 459.24199,530.43772 459.21532,530.47387 459.21347,530.48745 C 459.21207,530.50144 459.21394,530.53512 459.21347,530.54995 C 459.21348,531.52651 457.86972,533.8937 457.86972,533.8937 L 459.80722,536.0187 L 463.33847,538.17495 L 469.96347,539.92495 L 471.90097,540.7062 L 473.68222,541.48745 L 472.49472,543.6437 L 475.61972,543.4562 L 476.21347,544.8312 L 479.33847,544.8312 L 480.11972,541.11245 L 478.15097,540.7062 L 480.90097,537.79995 L 479.93222,536.79995 L 480.11972,535.04995 L 483.65097,533.11245 L 483.83847,530.9562 L 481.49472,530.7687 L 479.93222,532.11245 L 479.93222,530.17495 L 483.05722,529.98745 L 484.02597,527.6437 L 484.80722,520.79995 L 484.21347,517.86245 L 484.15097,515.04995 L 480.74472,517.29995 L 476.68222,517.4562 L 476.33847,514.6437 L 476.86972,513.92495 L 475.61972,513.04995 L 475.27597,508.2687 L 474.74472,507.3937 L 472.61972,507.3937 L 471.55722,506.5187 L 471.55722,503.1437 L 470.15097,502.2687 L 469.08847,501.73745 L 466.96347,499.0812 L 467.11972,497.48745 L 464.49472,497.48745 L 463.58847,494.8312 L 459.86972,494.8312 L 457.93222,492.17495 L 458.46347,491.29995 L 457.24472,490.5812 L 454.40097,491.11245 L 453.33847,490.42495 L 449.46347,490.42495 L 449.08847,489.36245 L 446.90097,488.9562 L 445.33847,488.9562 z ", "name" : "Corse du Sud"}, "fr-2b" : {"path": "M 477.96347,449.8937 L 475.02597,451.86245 L 475.43222,453.79995 L 476.99472,455.7687 L 475.24472,457.11245 L 476.02597,458.67495 L 474.83847,460.04995 L 474.83847,461.79995 L 476.80722,463.5812 L 476.80722,466.29995 L 475.61972,468.8312 L 474.27597,469.42495 L 472.71347,467.2687 L 469.96347,467.48745 L 469.36972,467.0812 L 467.02597,467.0812 L 464.90097,469.04995 L 464.08847,472.36245 L 459.02597,473.3312 L 455.11972,476.6437 L 454.33847,478.79995 L 452.40097,478.61245 L 451.40097,477.42495 L 450.83847,480.7687 L 449.46347,481.3312 L 449.05722,484.4562 L 449.65097,485.8312 L 447.49472,487.3937 L 446.90097,488.9562 L 449.08847,489.36245 L 449.46347,490.42495 L 453.33847,490.42495 L 454.40097,491.11245 L 457.24472,490.5812 L 458.46347,491.29995 L 457.93222,492.17495 L 459.86972,494.8312 L 463.58847,494.8312 L 464.49472,497.48745 L 467.11972,497.48745 L 466.96347,499.0812 L 469.08847,501.73745 L 470.15097,502.2687 L 471.55722,503.1437 L 471.55722,506.5187 L 472.61972,507.3937 L 474.74472,507.3937 L 475.27597,508.2687 L 475.61972,513.04995 L 476.86972,513.92495 L 476.33847,514.6437 L 476.68222,517.4562 L 480.74472,517.29995 L 484.15097,515.04995 L 484.02597,509.2687 L 488.71347,502.6437 L 488.71347,491.7062 L 486.77597,487.98745 L 486.18222,476.2687 L 484.80722,474.11245 L 482.27597,472.17495 L 481.86972,464.92495 L 483.05722,461.61245 L 481.49472,456.3312 L 480.52597,452.04995 L 479.71347,450.86245 L 477.96347,449.8937 z ", "name" : "Haute-Corse"}, "fr-21" : {"path": "M 363.375,177.25 L 362.96875,179.78125 L 360.4375,181.15625 L 354,181.34375 L 354.28125,182.75 L 354.4375,184.15625 L 352.46875,185.5625 L 352.46875,187.9375 L 352.875,188.375 L 354.4375,188.375 L 355.40625,190.03125 L 354.84375,192.84375 L 352.59375,194.53125 L 352.59375,196.21875 L 353.3125,196.78125 L 353.15625,197.1875 L 351.75,197.75 L 351.34375,199.84375 L 349.09375,204.625 L 347.5625,206.875 L 347.5625,209.125 L 348.125,210.09375 L 347.28125,211.21875 L 345.3125,212.1875 L 345.4375,214.15625 L 347.28125,215.28125 L 347.96875,216.8125 L 347.6875,218.9375 L 347.28125,220.46875 L 348.25,222.15625 L 351.0625,222.71875 L 352.3125,224.6875 L 352.3125,225.53125 L 351.46875,225.8125 L 351.46875,227.84375 L 351.625,227.90625 L 355.40625,231.8125 L 359.34375,231.6875 L 362.84375,234.34375 L 365.375,236.1875 L 365.5,238.5625 L 368.15625,239.125 L 370.40625,240.9375 L 376.3125,238.84375 L 380.375,237.5625 L 382.1875,237.28125 L 382.75,236.46875 L 384.71875,236.59375 L 386.25,237.5625 L 388.5,237 L 390.75,235.46875 L 392.4375,235.65625 L 392.46875,235.46875 L 393.8125,234.6875 L 393.625,233.6875 L 393.25,232.53125 L 394.21875,230.96875 L 397.53125,229.40625 L 397.53125,227.84375 L 398.71875,226.28125 L 399.875,224.71875 L 399.5,223.34375 L 400.0625,221.1875 L 400.46875,218.0625 L 401.25,218.0625 L 401.0625,216.90625 L 400.28125,216.125 L 400.0625,212.21875 L 398.3125,212.03125 L 397.9375,208.90625 L 395.78125,207.90625 L 396.5625,206.9375 L 397.75,206.5625 L 400.28125,203.625 L 400.0625,202.0625 L 398.5,198.9375 L 396.1875,198.53125 L 395.375,200.5 L 391.09375,201.46875 L 390.6875,200.5 L 387.5625,196.59375 L 385.8125,197.5625 L 383.46875,197.375 L 382.6875,195.8125 L 379.5625,196 L 379.375,192.6875 L 377.625,191.5 L 380.15625,188.78125 L 375.65625,182.71875 L 372.15625,179 L 369.03125,177.25 L 363.375,177.25 z ", "name" : "Côte d'Or"}, "fr-22" : {"path": "M 69.78125,123.21875 L 68,124.59375 L 63.53125,125.15625 L 62.53125,126.53125 L 59.40625,124.1875 L 55.3125,126.9375 L 56.875,129.0625 L 54.15625,132.78125 L 54.03125,132.71875 L 52.90625,137.96875 L 55.3125,138.125 L 55.15625,140.21875 L 56.9375,141.34375 L 55.3125,142.96875 L 54.1875,143.78125 L 54.34375,145.6875 L 56.78125,146.5 L 54.5,147.15625 L 54.5,149.5625 L 55.96875,151.5 L 56.28125,157.15625 L 55.3125,158.125 L 56.125,161.03125 L 59.1875,161.84375 L 59.5,163.4375 L 61.4375,163.59375 L 63.0625,162.46875 L 64.03125,163.4375 L 67.75,165.0625 L 70.8125,163.4375 L 71.59375,161.84375 L 74.1875,161.65625 L 77.09375,164.25 L 79.84375,163.59375 L 82.25,166.03125 L 83.375,166.03125 L 84.5,167.46875 L 86.78125,167.46875 L 87.5625,166.34375 L 88.53125,168.4375 L 90.96875,169.40625 L 94.03125,167.46875 L 94.03125,165.375 L 96.28125,164.5625 L 97.71875,164.5625 L 99.5,167.8125 L 103.375,168.125 L 105.3125,165.6875 L 107.40625,161.1875 L 110.15625,160.21875 L 111.59375,158.125 L 113.0625,159.5625 L 116.125,158.9375 L 117.09375,150.0625 L 118.0625,146.5 L 117.09375,144.5625 L 115.46875,143.9375 L 114.375,138.03125 L 113.125,139.4375 L 109.40625,139.03125 L 109.03125,141.1875 L 106.6875,141.375 L 106.5,138.65625 L 104.53125,138.0625 L 103.15625,139.625 L 103.15625,135.71875 L 100.8125,137.46875 L 97.3125,136.875 L 96.125,139.21875 L 88.90625,143.125 L 88.90625,145.09375 L 87.34375,145.09375 L 87.34375,141.5625 L 83.25,139.625 L 83.625,136.09375 L 79.9375,133.375 L 79.9375,130.0625 L 77.1875,129.46875 L 77.375,126.34375 L 75.25,126.15625 L 75.4375,124 L 71.53125,124 L 70.9375,125.9375 L 69.78125,123.21875 z ", "name" : "Côtes d'Armor"}, "fr-23" : {"path": "M 256.125,267.875 L 254.96875,271 L 251.4375,270.8125 L 250.65625,270.40625 L 248.3125,270.625 L 246.5625,269.4375 L 243.1875,273.3125 L 243.25,276.1875 L 240.90625,280.84375 L 241.34375,283.1875 L 243.875,283.8125 L 245.59375,288.0625 L 247.28125,289.78125 L 246.65625,297.84375 L 250.25,296.78125 L 251.75,298.6875 L 249.40625,300.59375 L 249.40625,302.53125 L 251.3125,302.71875 L 254.71875,302.53125 L 255.78125,301.03125 L 256.625,301.03125 L 256.21875,303.59375 L 258.96875,304.84375 L 261.53125,306.5625 L 261.53125,307.625 L 260.03125,307.625 L 260.46875,310.15625 L 261.46875,310.78125 L 261.71875,310.375 L 264.90625,309.75 L 265.75,307.625 L 267.25,307.625 L 268.3125,309.09375 L 273.1875,309.09375 L 274.0625,310.375 L 275.96875,312.28125 L 278.3125,312.28125 L 279.5625,310.375 L 283.40625,310.375 L 285.375,308.84375 L 281.3125,304.78125 L 280.9375,303.03125 L 284.65625,300.875 L 286.8125,299.71875 L 287.375,296.96875 L 289.71875,295.21875 L 288.9375,291.5 L 287.375,289.5625 L 287,283.5 L 284.84375,278.4375 L 282.6875,277.65625 L 281.125,274.90625 L 279.75,276.65625 L 278.40625,274.90625 L 278.40625,272.5625 L 276.0625,269.25 L 269.625,270.03125 L 265.90625,269.0625 L 256.125,267.875 z ", "name" : "Creuse"}, "fr-24" : {"path": "M 209.84375,310.46875 L 208.09375,313.59375 L 205.34375,313.96875 L 205.15625,318.65625 L 195.96875,324.90625 L 195.78125,331.75 L 192.25,335.25 L 190.3125,337.03125 L 186.40625,336.625 L 184.25,340.34375 L 183.6875,341.5625 L 184.71875,342.78125 L 186.65625,342.78125 L 187.71875,344.375 L 186.65625,347.21875 L 186.125,350.375 L 184.34375,351.4375 L 184.34375,352.5 L 185.0625,353.5625 L 185.0625,355.5 L 183.65625,357.28125 L 185.40625,358.15625 L 185.9375,359.59375 L 191.96875,359.40625 L 194.4375,356.40625 L 196.90625,358 L 194.96875,359.40625 L 195.125,363.28125 L 197.96875,365.25 L 198.3125,368.9375 L 201.3125,370 L 203.09375,368.40625 L 206.96875,368.40625 L 209.09375,366.65625 L 210.34375,366.84375 L 210.6875,368.25 L 214.59375,368.25 L 215.46875,367.1875 L 216.875,367.375 L 218.46875,369.125 L 218.46875,370.375 L 217.0625,371.25 L 217.59375,372.5 L 219.53125,372.65625 L 222,370.375 L 224.125,370.375 L 225.53125,371.96875 L 228.59375,373.25 L 228.78125,372.75 L 230.5625,371 L 230.75,368.0625 L 235.03125,367.6875 L 237.78125,363.78125 L 236.59375,363.375 L 236.40625,361.25 L 239.71875,360.84375 L 239.9375,358.90625 L 241.5,357.90625 L 243.25,354.78125 L 241.5,352.84375 L 241.5,350.6875 L 242.84375,349.53125 L 241.09375,346.78125 L 241.28125,342.5 L 237,342.6875 L 235.25,341.5 L 236.8125,339.5625 L 234.65625,337.8125 L 236.21875,335.84375 L 234.65625,335.0625 L 234.65625,332.34375 L 238.5625,328.8125 L 236.40625,327.0625 L 235.25,324.125 L 231.125,323.53125 L 229.75,322.5625 L 232.6875,321.1875 L 231.71875,319.84375 L 227.4375,319.25 L 226.4375,315.34375 L 220.1875,314.75 L 218.8125,316.71875 L 217.46875,317.09375 L 215.6875,314.75 L 216.5,312.59375 L 215.5,310.65625 L 209.84375,310.46875 z ", "name" : "Dordogne"}, "fr-25" : {"path": "M 447.40625,199.71875 L 447.21875,199.9375 L 444.96875,199.9375 L 443.8125,201.53125 L 442.34375,202.375 L 442.34375,204.34375 L 438.6875,204.78125 L 436.71875,203.375 L 434.0625,203.78125 L 431.53125,205.75 L 429.71875,208.84375 L 427.90625,209.40625 L 427.0625,211.5 L 424.8125,211.90625 L 421.71875,214.4375 L 417.65625,214.3125 L 416.40625,215.28125 L 415.28125,215.28125 L 411.34375,218.5 L 409.5625,218.4375 L 409.53125,219.625 L 409.8125,221.71875 L 412.34375,223.40625 L 413.75,225.25 L 413.3125,227.1875 L 412.0625,230.15625 L 411.21875,232.09375 L 416.6875,233.9375 L 420.1875,233.65625 L 420.46875,236.59375 L 420.46875,240.53125 L 424.8125,241.9375 L 426.78125,242.46875 L 429.59375,245.15625 L 429.3125,247.40625 L 428.03125,249.21875 L 424.53125,250.34375 L 425.375,252.3125 L 425.78125,253.84375 L 424.25,255.375 L 424.40625,256.78125 L 426.78125,257 L 426.8125,256.8125 L 438.90625,245.46875 L 438.53125,236.09375 L 442.8125,233.96875 L 445.75,232.59375 L 448.46875,230.0625 L 448.6875,226.34375 L 451.40625,224.96875 L 457.65625,217.75 L 456.6875,215.40625 L 458.84375,214.4375 L 461.375,211.3125 L 460,209.9375 L 455.3125,210.90625 L 455.125,210.125 L 459.4375,205.15625 L 447.40625,199.71875 z ", "name" : "Doubs"}, "fr-26" : {"path": "M 384.9375,329.28125 L 382.1875,331.1875 L 379.84375,332.03125 L 377.5,331.3125 L 377.5,339.28125 L 379,345.21875 L 380.0625,348.625 L 381.75,352.875 L 380.6875,355.625 L 378.78125,359.25 L 378.34375,361.375 L 376.4375,361.78125 L 377.5,366.6875 L 377.5,370.90625 L 374.9375,373.90625 L 374.3125,377.71875 L 375.375,379.40625 L 374.75,380.90625 L 374.75,382.40625 L 375.59375,382.59375 L 376.21875,383.46875 L 376,387.59375 L 378.59375,387.21875 L 379.75,388.59375 L 379.1875,392.5 L 379.96875,393.46875 L 382.875,390.53125 L 385.4375,390.34375 L 386,388.78125 L 382.6875,388.375 L 382.125,384.875 L 384.25,381.5625 L 387,381.34375 L 389.71875,383.90625 L 387,387.59375 L 387.78125,388.96875 L 391.6875,389.375 L 394.21875,387.21875 L 392.84375,390.15625 L 393.25,392.5 L 397.34375,392.875 L 402.8125,393.28125 L 403.59375,395.8125 L 406.53125,397.96875 L 409.0625,398.15625 L 410.8125,396.59375 L 411.8125,393.65625 L 413.375,395.03125 L 414.53125,396.40625 L 415.3125,389.15625 L 413.375,388.78125 L 412.1875,386.25 L 405.5625,384.46875 L 404.75,381.15625 L 407.125,379.59375 L 405.15625,378.21875 L 405.5625,376.46875 L 408.6875,376.65625 L 411.40625,378.03125 L 413.5625,375.5 L 411.40625,373.75 L 411.59375,371.40625 L 412.78125,367.6875 L 416.875,367.28125 L 420.1875,365.9375 L 420.53125,365.15625 L 417,364.75 L 415.75,363.6875 L 413.8125,363.5 L 411.90625,362 L 409.375,360.5 L 406.59375,360.5 L 405.53125,359.4375 L 405.34375,343.53125 L 404.6875,343.53125 L 403.84375,345 L 401.9375,346.28125 L 397.46875,345 L 394.0625,343.9375 L 392.59375,344.375 L 392.15625,343.3125 L 393.21875,340.34375 L 392.78125,337.34375 L 393.65625,335.21875 L 391.53125,332.25 L 388.5625,332.25 L 384.9375,329.28125 z ", "name" : "Drôme"}, "fr-27" : {"path": "M 211,94.5625 L 209.3125,94.96875 L 207.0625,97.375 L 202.6875,97.9375 L 203.59375,105.1875 L 205.5625,105.78125 L 205.5625,106.5625 L 203.59375,107.71875 L 205.9375,111.03125 L 207.125,115.71875 L 206.90625,117.6875 L 205.15625,118.84375 L 205.34375,120.21875 L 207.3125,121 L 207.5,122.75 L 205.9375,127.25 L 207.5,129.21875 L 212.96875,129.40625 L 214.125,132.125 L 216.09375,134.09375 L 218.8125,135.0625 L 219.625,138 L 218.25,139.9375 L 221.09375,141.84375 L 223.90625,139.15625 L 226.625,139.15625 L 233.6875,135.46875 L 236,136.4375 L 240.90625,136.4375 L 242.0625,135.0625 L 242.0625,132.125 L 245.96875,130.1875 L 245.96875,127.0625 L 247.03125,126.1875 L 246.9375,125.3125 L 247.9375,124.3125 L 246.1875,123.9375 L 246.1875,122.375 L 245.1875,120.8125 L 245.96875,119.84375 L 251.4375,118.28125 L 252.8125,115.9375 L 254,111.625 L 255.4375,109.84375 L 255.75,107.53125 L 257.5,108.5 L 258.875,108.125 L 257.875,106.5625 L 257.3125,102.0625 L 255.5625,100.5 L 255.59375,100.375 L 252.5,100.03125 L 247.3125,97.375 L 242.8125,97.5 L 240.4375,99.59375 L 239.15625,103.25 L 234.125,103.8125 L 229.34375,105.21875 L 231.03125,106.34375 L 230.34375,108.03125 L 228.09375,108.03125 L 226.84375,105.34375 L 225.4375,105.34375 L 223.1875,103.65625 L 226.28125,102.6875 L 221.5,99.3125 L 216.75,99.59375 L 215.625,97.65625 L 212.9375,97.9375 L 211,94.5625 z ", "name" : "Eure"}, "fr-28" : {"path": "M 247.15625,126.09375 L 245.96875,127.0625 L 245.96875,130.1875 L 242.0625,132.125 L 242.0625,135.0625 L 240.90625,136.4375 L 236,136.4375 L 233.6875,135.46875 L 226.625,139.15625 L 223.90625,139.15625 L 221.09375,141.84375 L 221.75,142.28125 L 221.9375,145.625 L 226.0625,149.125 L 226.4375,156.34375 L 224.5,158.6875 L 221.5625,159.28125 L 218.625,161.03125 L 219.03125,162.59375 L 220.375,164.375 L 220.375,169 L 220.78125,169.0625 L 223.5,171 L 222.5,172.25 L 224.4375,173.21875 L 227.53125,172.65625 L 229.34375,172.65625 L 229.21875,173.5 L 227.53125,174.46875 L 228.65625,175.3125 L 231.46875,175.3125 L 232.4375,177.5625 L 234.125,178.53125 L 235.375,181.34375 L 239.71875,182.46875 L 242.40625,182.1875 L 244.78125,179.9375 L 246.90625,180.53125 L 247.4375,179.375 L 247.3125,178.125 L 248.4375,177.28125 L 250.25,178.40625 L 251.375,177.5625 L 251.375,176.03125 L 252.90625,175.03125 L 254.3125,175.59375 L 255.5625,177 L 257.8125,175.75 L 260.1875,175.75 L 261.875,173.90625 L 262.875,170.28125 L 264.40625,170 L 264,166.34375 L 265.8125,164.8125 L 265.25,163.6875 L 265.46875,163.3125 L 264.9375,163.375 L 264.53125,158.125 L 264.125,157.53125 L 263.75,155 L 259.65625,154.21875 L 257.875,152.0625 L 257.3125,147.75 L 254.96875,147.375 L 254.5625,145.21875 L 251.84375,143.28125 L 250.46875,139.9375 L 251.84375,137.59375 L 250.46875,136.03125 L 250.46875,134.09375 L 251.25,131.9375 L 249.6875,130.375 L 249.09375,128.03125 L 247.15625,126.09375 z ", "name" : "Eure et Loir"}, "fr-29" : {"path": "M 40.65625,129.0625 L 38.53125,131.40625 L 36.1875,130.4375 L 31.875,130.84375 L 31.09375,132.78125 L 28.5625,133.375 L 28.15625,131.21875 L 23.6875,131.8125 L 23.6875,133.1875 L 20.5625,133.375 L 19.1875,132.40625 L 17.625,133.1875 L 17.21875,135.53125 L 11.96875,135.71875 L 9.21875,139.03125 L 11.5625,140.78125 L 8.4375,143.34375 L 9.40625,145.09375 L 8.625,149.375 L 11.75,149.78125 L 12.9375,148.59375 L 13.53125,149.375 L 20.9375,148.40625 L 25.8125,144.90625 L 21.53125,149 L 21.90625,150.9375 L 25.8125,149.1875 L 25.03125,151.9375 L 29.34375,152.125 L 29.15625,153.28125 L 24.46875,153.09375 L 20.75,152.125 L 16.25,149.96875 L 13.53125,153.09375 L 17.03125,154.28125 L 16.84375,159.53125 L 17.8125,158.75 L 19.96875,155.4375 L 24.0625,157.78125 L 26.03125,158.1875 L 26.8125,161.3125 L 25.625,163.4375 L 23.09375,163.25 L 20.75,163.25 L 16.84375,163.84375 L 10.1875,164.21875 L 8.84375,166 L 10.78125,167.15625 L 12.9375,166.96875 L 14.6875,168.53125 L 17.21875,168.34375 L 21.34375,173.03125 L 22.3125,178.09375 L 20.9375,180.84375 L 25.03125,181.625 L 29.53125,181.40625 L 30.5,179.65625 L 28.75,177.3125 L 30.5,178.09375 L 32.28125,177.90625 L 35.40625,179.65625 L 37.34375,179.28125 L 37.34375,175.9375 L 38.125,179.28125 L 40.65625,183.375 L 46.125,183.75 L 46.34375,182.59375 L 47.6875,184.53125 L 51.03125,185.125 L 53.5625,185.125 L 53.71875,185.34375 L 54.65625,181.5 L 56.9375,181.5 L 58.0625,179.71875 L 59.5,179.71875 L 59.65625,176.84375 L 60.46875,175.875 L 58.875,173.75 L 57.90625,174.90625 L 55.46875,172.96875 L 50.46875,172.15625 L 49.65625,169.25 L 48.21875,165.53125 L 48.0625,164.09375 L 50.46875,162.15625 L 52.75,162.15625 L 56,160.59375 L 55.3125,158.125 L 56.28125,157.15625 L 55.96875,151.5 L 54.5,149.5625 L 54.5,147.15625 L 56.78125,146.5 L 54.34375,145.6875 L 54.1875,143.78125 L 55.3125,142.96875 L 56.9375,141.34375 L 55.15625,140.21875 L 55.3125,138.125 L 52.90625,137.96875 L 54.03125,132.71875 L 50.8125,130.84375 L 45.34375,131.03125 L 45.34375,134.9375 L 43.78125,134.9375 L 43.40625,133.1875 L 41.0625,133.5625 L 40.65625,129.0625 z ", "name" : "Finistère"}, "fr-30" : {"path": "M 346.1875,381.03125 L 345.21875,382.90625 L 344,383.96875 L 341.6875,384.34375 L 344.5,387.34375 L 344.5,391.40625 L 345.75,391.75 L 344.34375,393.34375 L 344.34375,396.34375 L 342.03125,399.875 L 336.90625,399.34375 L 333.90625,396.53125 L 331.78125,397.0625 L 332.5,398.8125 L 331.625,400.0625 L 326.46875,401.125 L 320.4375,397.09375 L 319.28125,398.125 L 319.28125,400.90625 L 317.0625,401.4375 L 317.625,403.65625 L 320.375,404.21875 L 323.40625,404.21875 L 324.25,408.0625 L 320.65625,409.71875 L 320.65625,411.46875 L 323.46875,412.4375 L 323.46875,414.03125 L 324.71875,414.75 L 325.78125,413.84375 L 327.1875,413.84375 L 327.90625,415.4375 L 330.03125,415.4375 L 331.09375,411.71875 L 332.84375,411.71875 L 335.5,408.375 L 338.6875,408.71875 L 339.21875,413.3125 L 340.4375,414.75 L 342.40625,413.6875 L 345.75,415.4375 L 347,417.5625 L 352.8125,421.09375 L 354.9375,426.0625 L 354.9375,428.6875 L 351.21875,430.8125 L 348.8125,432.96875 L 351.8125,433.1875 L 351.8125,437.09375 L 356.28125,436.875 L 358.6875,437 L 360.4375,432.9375 L 366.78125,429.0625 L 365.40625,427.125 L 367.0625,422.71875 L 372.84375,423.53125 L 374.25,413.03125 L 381.96875,408.625 L 381.96875,406.125 L 376.15625,400.34375 L 376.15625,395.90625 L 372.84375,390.40625 L 365.9375,386.53125 L 365.40625,389.5625 L 362.625,389.84375 L 361.8125,386.8125 L 359.03125,387.34375 L 358.5,391.21875 L 356.28125,390.40625 L 351.59375,387.34375 L 349.375,388.46875 L 349.375,382.9375 L 346.1875,381.03125 z ", "name" : "Gard"}, "fr-31" : {"path": "M 245,412.4375 L 242.15625,413.5 L 241.28125,414.90625 L 240.21875,413.6875 L 238.28125,413.5 L 237.90625,415.28125 L 236.6875,415.78125 L 238.4375,416.6875 L 237.21875,418.625 L 232.78125,419.875 L 230.84375,417.5625 L 229.09375,417.5625 L 227.65625,418.4375 L 222.53125,418.4375 L 222,418.65625 L 222.53125,420.5625 L 225.53125,423.5625 L 225.375,425.15625 L 227.65625,427.46875 L 229.09375,427.46875 L 229.78125,429.21875 L 231.5625,429.40625 L 232.09375,431 L 230.3125,431.71875 L 226.59375,433.3125 L 224.84375,437.375 L 223.4375,441.59375 L 222.53125,442.84375 L 219.71875,440.90625 L 213.15625,440.375 L 209.625,444.96875 L 207.6875,446.03125 L 206.4375,447.78125 L 205.03125,449.90625 L 205.03125,451.15625 L 202.75,452.03125 L 200.96875,455.03125 L 200.78125,456.625 L 203.96875,458.9375 L 204.5,461.21875 L 203.4375,463 L 205.5625,462.28125 L 206.625,463.1875 L 207.5,466.875 L 205.03125,468.3125 L 205.21875,470.25 L 203.96875,471.46875 L 202.21875,470.59375 L 200.25,470.59375 L 200.5,481.09375 L 208.4375,481.625 L 208.84375,472.03125 L 211.5625,472.4375 L 215.59375,474.78125 L 217.25,473.25 L 216.53125,472.1875 L 216.53125,468.65625 L 218.28125,466.53125 L 222.90625,465.28125 L 223.59375,462.65625 L 222.53125,461.9375 L 222.375,458.5625 L 226.4375,456.09375 L 228.71875,455.9375 L 231.03125,456.625 L 232.96875,458.40625 L 234.21875,458.5625 L 235.28125,456.8125 L 234.375,455.5625 L 232.78125,455.03125 L 232.625,454.5 L 233.84375,452.75 L 238.09375,452.375 L 238.625,451.34375 L 237.90625,450.09375 L 235.4375,448.3125 L 235.96875,447.25 L 237.21875,446.375 L 238.4375,446.71875 L 240.40625,449.375 L 240.5625,451.15625 L 243.9375,451.5 L 244.625,449.90625 L 243.03125,447.96875 L 244.09375,448.3125 L 248,450.09375 L 250.125,449.75 L 251.6875,449.09375 L 251.3125,448.6875 L 253.8125,447.5625 L 254.34375,444.53125 L 257.40625,443.15625 L 256.5625,441.21875 L 259.34375,438.71875 L 260.71875,441.21875 L 264.84375,439.84375 L 265.625,439.71875 L 265.6875,438.4375 L 265.6875,435.9375 L 263.5625,436.3125 L 260.90625,435.59375 L 258.59375,432.78125 L 257.71875,431.53125 L 253.125,429.59375 L 252.0625,428 L 253.46875,427.46875 L 253.46875,425.53125 L 252.0625,423.9375 L 250.28125,421.09375 L 250.125,418.625 L 249.59375,418.28125 L 247.46875,415.78125 L 246.59375,413.15625 L 245,412.4375 z ", "name" : "Haute Garonne"}, "fr-32" : {"path": "M 207.875,401.875 L 202.03125,402.4375 L 200.46875,405.1875 L 196.9375,405.5625 L 193.625,406.15625 L 192.25,404.21875 L 189.125,407.34375 L 186.8125,405.375 L 185.4375,408.3125 L 185.625,410.84375 L 183.46875,411.4375 L 182.5,410.0625 L 181.53125,407.125 L 178.78125,409.46875 L 176.84375,408.6875 L 174.6875,409.09375 L 172.75,411.4375 L 175.0625,415.34375 L 173.5,416.90625 L 174.09375,420.21875 L 172.15625,422.75 L 170.78125,426.46875 L 172.34375,429.21875 L 177.28125,429.5625 L 179.21875,428.53125 L 182.21875,428.53125 L 182.0625,431.875 L 184.34375,433.125 L 186.65625,433.46875 L 187.71875,436.3125 L 188.25,436.84375 L 187.90625,438.59375 L 187.1875,439.3125 L 189.3125,440.71875 L 189.46875,442.3125 L 192.125,442.3125 L 192.84375,441.59375 L 195.125,441.59375 L 195.84375,443.1875 L 198.3125,443.1875 L 199.03125,444.625 L 203.8125,444.625 L 207.375,446.46875 L 207.6875,446.03125 L 209.625,444.96875 L 213.15625,440.375 L 219.71875,440.90625 L 222.53125,442.84375 L 223.4375,441.59375 L 224.84375,437.375 L 226.59375,433.3125 L 230.3125,431.71875 L 232.09375,431 L 231.5625,429.40625 L 229.78125,429.21875 L 229.09375,427.46875 L 227.65625,427.46875 L 225.375,425.15625 L 225.53125,423.5625 L 222.53125,420.5625 L 222,418.65625 L 220.0625,419.5 L 219.53125,418.4375 L 220.78125,416.5 L 219.34375,415.09375 L 219.34375,412.625 L 218.125,411.375 L 214.21875,411.1875 L 214.21875,408.90625 L 216.34375,407.3125 L 216.34375,405.53125 L 218.65625,404.46875 L 217.40625,403.78125 L 216,404.46875 L 213.15625,404.46875 L 212.28125,403.65625 L 211.8125,403.8125 L 210.8125,404.78125 L 207.875,401.875 z ", "name" : "Gers"}, "fr-33" : {"path": "M 141.25,315.21875 L 138.125,319.90625 L 137.15625,336.3125 L 134.625,352.90625 L 132.84375,365.78125 L 132.65625,369.125 L 134.03125,364.625 L 136.75,361.09375 L 140.65625,364.625 L 141.0625,365.78125 L 142.21875,367.34375 L 137.34375,367.5625 L 136.5625,366.375 L 134.625,367.15625 L 134.21875,370.09375 L 132.0625,373.03125 L 132.0625,377.5 L 132.03125,377.6875 L 133.625,377.625 L 139.8125,374.4375 L 143.15625,375.65625 L 143,377.96875 L 141.5625,379.71875 L 143.15625,380.78125 L 146.53125,379.375 L 148.8125,380.96875 L 150.25,380.78125 L 152.34375,379.03125 L 155.90625,378.5 L 157.125,379.5625 L 158.1875,380.4375 L 158.1875,381.5 L 157.3125,382.5625 L 160.5,383.4375 L 162.4375,384.6875 L 162.625,386.28125 L 164.375,386.4375 L 166.84375,389.09375 L 167.5625,393.53125 L 171.09375,394.75 L 174.46875,394.59375 L 174.46875,393.53125 L 174.09375,390 L 175.15625,390.34375 L 177.15625,392.78125 L 180.28125,392.28125 L 181.71875,390.875 L 181.53125,388.9375 L 180.28125,387.875 L 180.65625,385.90625 L 182.59375,385.90625 L 184.53125,384.6875 L 183.65625,382.90625 L 183.125,380.25 L 184.53125,377.78125 L 187.53125,373.1875 L 189.3125,371.0625 L 190.90625,370.53125 L 191.25,368.78125 L 189.125,368.59375 L 188.25,366.65625 L 188.9375,364.71875 L 191.4375,364.1875 L 193.1875,363.65625 L 195.25,363.375 L 195.125,363.28125 L 194.96875,359.40625 L 196.90625,358 L 194.4375,356.40625 L 191.96875,359.40625 L 185.9375,359.59375 L 185.40625,358.15625 L 183.65625,357.28125 L 185.0625,355.5 L 185.0625,353.5625 L 184.34375,352.5 L 184.34375,351.4375 L 186.125,350.375 L 186.65625,347.21875 L 187.71875,344.375 L 186.65625,342.78125 L 184.71875,342.78125 L 183.6875,341.5625 L 182.6875,343.65625 L 180.75,342.28125 L 178,343.65625 L 175.65625,343.28125 L 171.1875,338.78125 L 168.4375,338.59375 L 167.65625,332.34375 L 162.5625,331.75 L 162.375,328.8125 L 161.40625,329.78125 L 155.625,329.78125 L 155.90625,331.03125 L 157.28125,336.6875 L 157.65625,342.34375 L 156.6875,343.90625 L 155.71875,339.21875 L 152.96875,328.5 L 143,319.5 L 143.21875,315.40625 L 141.25,315.21875 z ", "name" : "Gironde"}, "fr-34" : {"path": "M 335.5,408.375 L 332.84375,411.71875 L 331.09375,411.71875 L 330.03125,415.4375 L 327.90625,415.4375 L 327.1875,413.84375 L 325.78125,413.84375 L 324.71875,414.75 L 323.46875,414.03125 L 323.46875,412.4375 L 320.65625,411.46875 L 320.65625,412.5 L 317.34375,413.03125 L 315.6875,414.4375 L 316.21875,417.75 L 313.1875,417.75 L 310.15625,416.09375 L 308.5,416.09375 L 308.5,418.03125 L 308.78125,423.8125 L 305.46875,423.8125 L 303.8125,423.8125 L 302.6875,426.03125 L 295.5,428.5 L 292.75,426.59375 L 291.09375,429.0625 L 290.28125,431.8125 L 293.3125,434.59375 L 292.1875,438.1875 L 288,439.5 L 288.84375,441.78125 L 287.0625,443.90625 L 288.125,446.375 L 290.25,447.96875 L 292.71875,446.375 L 294.5,450.09375 L 298.1875,448.84375 L 298.375,445.3125 L 300.84375,445.3125 L 300.3125,443.1875 L 301.375,442.65625 L 301.75,445.65625 L 303.84375,446.90625 L 305.625,446.71875 L 307.9375,450.09375 L 310.40625,450.28125 L 311.28125,453.09375 L 313.78125,453.1875 L 313.90625,452.125 L 320.9375,449.96875 L 321.71875,448.21875 L 327.1875,448.03125 L 328.9375,445.875 L 339.5,437.46875 L 346.125,432.78125 L 348.8125,432.96875 L 351.21875,430.8125 L 354.9375,428.6875 L 354.9375,426.0625 L 352.8125,421.09375 L 347,417.5625 L 345.75,415.4375 L 342.40625,413.6875 L 340.4375,414.75 L 339.21875,413.3125 L 338.6875,408.71875 L 335.5,408.375 z ", "name" : "Hérault"}, "fr-35" : {"path": "M 116.25,135.90625 L 114.375,138.03125 L 115.46875,143.9375 L 117.09375,144.5625 L 118.0625,146.5 L 117.09375,150.0625 L 116.125,158.9375 L 113.0625,159.5625 L 111.59375,158.125 L 110.15625,160.21875 L 107.40625,161.1875 L 105.3125,165.6875 L 104.03125,167.3125 L 104.5,169.40625 L 103.6875,172.625 L 102.25,173.9375 L 102.25,175.21875 L 103.21875,175.53125 L 105.96875,175.53125 L 108.375,177 L 110,179.90625 L 108.53125,181.84375 L 109.03125,183.75 L 111.125,183.75 L 111.28125,185.6875 L 109.65625,187.625 L 107.90625,188.4375 L 109.03125,189.09375 L 109.34375,190.0625 L 107.5625,191.5 L 109.625,195.375 L 113.5625,193.28125 L 125.65625,192.6875 L 126.4375,190.53125 L 128.40625,188.59375 L 132.6875,188 L 132.875,185.84375 L 135.8125,186.25 L 137.5625,188.59375 L 141.5,189.5625 L 142.25,188 L 143.25,184.46875 L 145.78125,178.21875 L 147.15625,177.4375 L 150.46875,177.84375 L 150.46875,172.5625 L 149.09375,171.1875 L 149.09375,165.53125 L 148.5,163.59375 L 148.5,160.46875 L 150.46875,158.5 L 150.46875,154.59375 L 149.5,153.8125 L 149.6875,148.34375 L 148.125,147.5625 L 145.78125,147.5625 L 143.8125,146 L 141.6875,148.53125 L 139.9375,148.75 L 138.375,150.875 L 136.8125,150.5 L 133.46875,147.5625 L 132.3125,143.84375 L 131.71875,141.375 L 122.125,141.375 L 118.59375,139.21875 L 120.9375,136.09375 L 116.25,135.90625 z ", "name" : "Ille et Vilaine"}, "fr-36" : {"path": "M 254.71875,221.4375 L 253.46875,221.875 L 250.9375,221.71875 L 248,222.71875 L 247.3125,224.25 L 247.03125,223.6875 L 243.65625,223.84375 L 241.96875,225.25 L 240,225.53125 L 239.71875,226.5 L 241.28125,228.59375 L 240.84375,230.4375 L 239.03125,230.5625 L 239.03125,232.09375 L 237.625,233.375 L 236.09375,235.90625 L 234.6875,234.625 L 232.59375,234.21875 L 229.5,235.34375 L 228.78125,238.84375 L 227.8125,241.65625 L 226.28125,249.625 L 224.15625,251.59375 L 222.4375,251.75 L 222.9375,252.25 L 222.9375,255.96875 L 222.15625,258.3125 L 225.875,261.25 L 227.8125,263.1875 L 230.9375,263.59375 L 232.125,267.6875 L 234.25,268.84375 L 233.875,271.78125 L 232.3125,272.0625 L 232.875,272.1875 L 237.78125,272.5625 L 239.53125,270.8125 L 242.65625,273.9375 L 246.5625,269.4375 L 248.3125,270.625 L 250.65625,270.40625 L 251.4375,270.8125 L 254.96875,271 L 256.125,267.875 L 265.90625,269.0625 L 269.625,270.03125 L 271.3125,269.84375 L 271.40625,268.28125 L 273.375,266.3125 L 272.96875,264.625 L 271.84375,262.40625 L 272.25,261.5625 L 272.40625,259.03125 L 273.09375,258.1875 L 273.25,257.625 L 271.5625,256.09375 L 271,254.125 L 268.34375,252.71875 L 268.34375,251.03125 L 270.28125,249.90625 L 270.28125,248.78125 L 268.46875,247.25 L 267.90625,246.28125 L 269.3125,245.5625 L 269.1875,244.3125 L 271.40625,242.46875 L 271.28125,241.65625 L 269.46875,241.65625 L 268.34375,240.375 L 268.34375,239.6875 L 269.3125,238 L 269.3125,236.75 L 267.0625,233.78125 L 267.5,231.125 L 266.21875,230.15625 L 263.5625,230.28125 L 261.46875,231.125 L 258.65625,230.71875 L 257.25,229.59375 L 256.96875,228.75 L 259.21875,226.90625 L 259.375,224.6875 L 256.40625,223 L 254.71875,221.4375 z ", "name" : "Indre"}, "fr-37" : {"path": "M 212.1875,196.875 L 212.5625,197.75 L 206.90625,199.3125 L 205.5625,201.28125 L 203.1875,199.71875 L 204.375,203.625 L 202.21875,203.625 L 198.3125,200.875 L 196.375,204.78125 L 197.34375,205.96875 L 197.34375,207.125 L 195.375,209.6875 L 195.59375,213.96875 L 192.46875,217.6875 L 190.25,225.6875 L 190.5,225.6875 L 191.28125,228.8125 L 195,229.59375 L 195,231.9375 L 199.6875,233.3125 L 199.6875,237.03125 L 199.5,239.375 L 205.34375,239.375 L 210.4375,238.1875 L 210.03125,236.03125 L 211.59375,235.0625 L 213.15625,237.21875 L 214.53125,237.8125 L 215.6875,242.5 L 219.03125,246 L 219.40625,248.75 L 222.4375,251.75 L 224.15625,251.59375 L 226.28125,249.625 L 227.8125,241.65625 L 228.78125,238.84375 L 229.5,235.34375 L 232.59375,234.21875 L 234.6875,234.625 L 236.09375,235.90625 L 237.625,233.375 L 239.03125,232.09375 L 239.03125,230.5625 L 240.84375,230.4375 L 241.28125,228.59375 L 239.71875,226.5 L 239.96875,225.625 L 238.875,224.6875 L 235.9375,220.34375 L 232.15625,220.34375 L 231.03125,218.65625 L 231.03125,211.625 L 229.5,207.5625 L 229.21875,202.53125 L 227.25,202.375 L 225,200.6875 L 224.4375,200.6875 L 222.46875,202.09375 L 221.21875,201.25 L 220.9375,199.3125 L 222.34375,198.59375 L 222.46875,197.90625 L 221.65625,197.1875 L 212.1875,196.875 z ", "name" : "Indre et Loire"}, "fr-38" : {"path": "M 397.90625,298.6875 L 396.625,300.1875 L 395.34375,304 L 392.78125,305.28125 L 390.03125,302.71875 L 388.125,302.71875 L 387.90625,305.5 L 390.6875,307.84375 L 386.4375,313.34375 L 380.90625,314.625 L 376.65625,316.125 L 379.40625,318.875 L 380.0625,320.15625 L 375.8125,322.28125 L 375.375,328.4375 L 375.25,328.5 L 376.4375,330.96875 L 379.84375,332.03125 L 382.1875,331.1875 L 384.9375,329.28125 L 388.5625,332.25 L 391.53125,332.25 L 393.65625,335.21875 L 392.78125,337.34375 L 393.21875,340.34375 L 392.15625,343.3125 L 392.59375,344.375 L 394.0625,343.9375 L 397.46875,345 L 401.9375,346.28125 L 403.84375,345 L 404.6875,343.53125 L 405.34375,343.53125 L 405.53125,359.4375 L 406.59375,360.5 L 409.375,360.5 L 411.90625,362 L 413.8125,363.5 L 415.75,363.6875 L 417,364.75 L 420.53125,365.15625 L 420.78125,364.5625 L 419.21875,363.78125 L 419.21875,361.4375 L 424.09375,361.4375 L 425.65625,359.875 L 424.6875,358.125 L 427.21875,356.15625 L 429,356.9375 L 431.53125,354.78125 L 436,355.5625 L 437.5625,353.8125 L 441.28125,354 L 441.28125,349.71875 L 439.71875,348.9375 L 438.9375,346.40625 L 434.84375,346 L 434.25,345.03125 L 435.03125,340.9375 L 436.40625,339.75 L 435.28125,338.21875 L 433.15625,336.9375 L 431.875,338.21875 L 432.3125,336.5 L 432.3125,334.8125 L 430.59375,333.09375 L 431.46875,329.0625 L 433.375,328 L 433.15625,325.25 L 429.125,321.21875 L 427.625,321.21875 L 426.5625,322.6875 L 424.03125,319.3125 L 422.53125,319.5 L 421.25,322.28125 L 422.125,323.96875 L 421.46875,324.625 L 419.78125,323.34375 L 414.875,322.28125 L 412.5625,318.03125 L 412.5625,316.3125 L 410.21875,313.78125 L 409.96875,312.6875 L 402.15625,303.15625 L 401.28125,300.40625 L 399.59375,298.90625 L 397.90625,298.6875 z ", "name" : "Isère"}, "fr-39" : {"path": "M 401.15625,217.53125 L 401.25,218.0625 L 400.46875,218.0625 L 400.0625,221.1875 L 399.5,223.34375 L 399.875,224.71875 L 398.71875,226.28125 L 397.53125,227.84375 L 397.53125,229.40625 L 394.21875,230.96875 L 393.25,232.53125 L 393.625,233.6875 L 393.8125,234.6875 L 392.46875,235.46875 L 392.25,238 L 393.8125,238.1875 L 395.59375,241.125 L 397.75,241.125 L 398.90625,242.5 L 400.28125,242.5 L 399.875,244.0625 L 395.375,244.625 L 395.78125,246.1875 L 397.34375,247.1875 L 397.34375,249.125 L 396.75,249.71875 L 397.9375,251.28125 L 399.6875,254.40625 L 398.90625,257.71875 L 396.9375,259.09375 L 397.15625,261.8125 L 399.5,262.59375 L 400.28125,263.78125 L 398.3125,265.34375 L 393.1875,265.96875 L 395.59375,266.90625 L 399.5,272.375 L 402.03125,273.53125 L 402.03125,276.28125 L 404.96875,275.875 L 408.6875,271.78125 L 411.8125,273.34375 L 411.8125,275.6875 L 417.46875,275.6875 L 425.59375,266.75 L 425.25,266.5625 L 425.625,262.46875 L 428.5625,258.96875 L 426.59375,258.1875 L 426.78125,257 L 424.40625,256.78125 L 424.25,255.375 L 425.78125,253.84375 L 425.375,252.3125 L 424.53125,250.34375 L 428.03125,249.21875 L 429.3125,247.40625 L 429.59375,245.15625 L 426.78125,242.46875 L 424.8125,241.9375 L 420.46875,240.53125 L 420.46875,236.59375 L 420.1875,233.65625 L 416.6875,233.9375 L 411.21875,232.09375 L 412.0625,230.15625 L 413.3125,227.1875 L 413.75,225.25 L 412.34375,223.40625 L 409.8125,221.71875 L 409.53125,219.625 L 409.5625,218.4375 L 407.84375,218.375 L 406.875,219.34375 L 404.34375,219.34375 L 402.65625,217.9375 L 401.15625,217.53125 z ", "name" : "Jura"}, "fr-40" : {"path": "M 139.8125,374.4375 L 133.625,377.625 L 132.03125,377.6875 L 128.5625,396.25 L 124.0625,413.4375 L 122.6875,420.09375 L 121.53125,424.78125 L 118.625,429.78125 L 124.25,432.59375 L 129.375,432.25 L 132.375,429.59375 L 134.84375,431.53125 L 133.4375,432.9375 L 134.5,433.3125 L 135.375,432.0625 L 139.8125,432.40625 L 142.28125,430.46875 L 146.875,430.65625 L 148.65625,429.75 L 151.46875,429.75 L 152.1875,430.65625 L 154.46875,429.9375 L 156.59375,431.53125 L 159.4375,430.65625 L 163.15625,429.40625 L 163.6875,430.28125 L 169.34375,430.46875 L 172.15625,428.875 L 170.78125,426.46875 L 172.15625,422.75 L 174.09375,420.21875 L 173.5,416.90625 L 175.0625,415.34375 L 172.75,411.4375 L 174.6875,409.09375 L 176.84375,408.6875 L 178.78125,409.46875 L 181.53125,407.125 L 182.5,410.0625 L 183.46875,411.4375 L 185.625,410.84375 L 185.4375,408.3125 L 186.0625,406.9375 L 185.59375,405.71875 L 186.125,401.84375 L 188.25,399.71875 L 187.1875,398.46875 L 184.875,398.28125 L 182.21875,397.25 L 178.34375,397.59375 L 177.625,393.34375 L 175.15625,390.34375 L 174.09375,390 L 174.46875,393.53125 L 174.46875,394.59375 L 171.09375,394.75 L 167.5625,393.53125 L 166.84375,389.09375 L 164.375,386.4375 L 162.625,386.28125 L 162.4375,384.6875 L 160.5,383.4375 L 157.3125,382.5625 L 158.1875,381.5 L 158.1875,380.4375 L 157.125,379.5625 L 155.90625,378.5 L 152.34375,379.03125 L 150.25,380.78125 L 148.8125,380.96875 L 146.53125,379.375 L 143.15625,380.78125 L 141.5625,379.71875 L 143,377.96875 L 143.15625,375.65625 L 139.8125,374.4375 z ", "name" : "Landes"}, "fr-41" : {"path": "M 222.5,172.25 L 221.1875,173.9375 L 219.625,176.65625 L 221.5625,178.4375 L 221.375,182.53125 L 220.59375,185.25 L 218.625,185.25 L 218.625,188.96875 L 215.90625,192.5 L 212.96875,193.65625 L 211.59375,195.40625 L 212.1875,196.875 L 221.65625,197.1875 L 222.46875,197.90625 L 222.34375,198.59375 L 220.9375,199.3125 L 221.21875,201.25 L 222.46875,202.09375 L 224.4375,200.6875 L 225,200.6875 L 227.25,202.375 L 229.21875,202.53125 L 229.5,207.5625 L 231.03125,211.625 L 231.03125,218.65625 L 232.15625,220.34375 L 235.9375,220.34375 L 238.875,224.6875 L 239.96875,225.625 L 240,225.53125 L 241.96875,225.25 L 243.65625,223.84375 L 247.03125,223.6875 L 247.3125,224.25 L 248,222.71875 L 250.9375,221.71875 L 253.46875,221.875 L 254.71875,221.4375 L 256.40625,223 L 259.375,224.6875 L 261.875,224.53125 L 261.75,222 L 262.875,220.75 L 264,220.625 L 264.96875,221.71875 L 268.90625,221.3125 L 271.40625,219.90625 L 271.125,218.9375 L 270.4375,218.09375 L 270.5625,216.25 L 272.40625,212.90625 L 274.78125,211.90625 L 274.78125,209.8125 L 275.34375,208.5625 L 273.8125,208 L 272.8125,205.875 L 270.28125,205.1875 L 270.15625,204.34375 L 272.6875,202.25 L 275.53125,200.84375 L 273.9375,198.46875 L 266.78125,198.1875 L 265.8125,199.3125 L 263.84375,199.3125 L 263.15625,198.59375 L 260.0625,198.1875 L 259.21875,200 L 257.25,200.5625 L 255.4375,198.46875 L 255,196.0625 L 253.34375,194.65625 L 250.8125,194.375 L 248.96875,193.125 L 248.96875,191.875 L 247.875,189.1875 L 250.09375,186.96875 L 249.8125,185.84375 L 248.84375,184.71875 L 247.71875,184.71875 L 247.71875,183.71875 L 248.84375,181.78125 L 248.96875,180.65625 L 247.3125,180.65625 L 244.78125,179.9375 L 242.40625,182.1875 L 239.71875,182.46875 L 235.375,181.34375 L 234.125,178.53125 L 232.4375,177.5625 L 231.46875,175.3125 L 228.65625,175.3125 L 227.53125,174.46875 L 229.21875,173.5 L 229.34375,172.65625 L 227.53125,172.65625 L 224.4375,173.21875 L 222.5,172.25 z ", "name" : "Loir et Cher"}, "fr-42" : {"path": "M 339.53125,278.03125 L 336,278.625 L 335.4375,280.78125 L 336.8125,283.5 L 337.1875,294.625 L 332.5,294.84375 L 332.3125,296.59375 L 335.4375,299.125 L 333.6875,300.875 L 333.09375,305.1875 L 335.4375,308.3125 L 337.5625,313.375 L 342.65625,316.71875 L 344.40625,323.15625 L 340.6875,326.65625 L 341.28125,329 L 346.75,330.78125 L 351.0625,327.25 L 353.1875,327.0625 L 359.4375,329.78125 L 359.0625,333.5 L 362.1875,333.3125 L 364.65625,336.15625 L 366.46875,335.65625 L 369.84375,335.03125 L 370.71875,331.1875 L 375.375,328.4375 L 375.8125,322.28125 L 375.96875,322.1875 L 373.6875,321.84375 L 371.5625,322.6875 L 369.84375,321.625 L 371.96875,319.09375 L 371.34375,317.1875 L 364.75,316.125 L 359.21875,311.03125 L 359.21875,309.3125 L 360.5,308.25 L 360.5,306.78125 L 359.03125,305.90625 L 360.28125,304 L 360.28125,301.25 L 357.75,298.90625 L 357.75,296.5625 L 356.03125,294.875 L 356.03125,292.96875 L 355.1875,289.78125 L 356.46875,288.5 L 356.6875,284.6875 L 360.71875,284.6875 L 361.78125,283.40625 L 360.5,281.28125 L 360.5,279.375 L 359.4375,278.53125 L 358.6875,282.53125 L 356.53125,282.53125 L 354.96875,284.09375 L 353.78125,282.90625 L 347.53125,281.9375 L 345.1875,283.3125 L 343.625,283.3125 L 343.25,281.9375 L 340.3125,281.34375 L 340.125,278.21875 L 339.53125,278.03125 z ", "name" : "Loire"}, "fr-43" : {"path": "M 317.8125,326.34375 L 316.40625,327.0625 L 316.40625,328.28125 L 314.28125,328.46875 L 312.34375,330.0625 L 308.8125,330.59375 L 308,331.75 L 308.625,331.8125 L 309.5,334.3125 L 313.9375,334.3125 L 314.8125,337.46875 L 316.0625,338.71875 L 316.40625,342.4375 L 317.46875,343.84375 L 319.59375,344.03125 L 318.34375,345.09375 L 317.28125,345.4375 L 318.1875,346.3125 L 317.125,347.90625 L 319.25,349.15625 L 320.3125,350.75 L 320.3125,352.40625 L 320.78125,352.25 L 324.3125,361.25 L 329.375,359.6875 L 329.75,357.34375 L 331.71875,357.34375 L 332.5,360.0625 L 336.125,359.1875 L 340.625,364.9375 L 343.4375,360.46875 L 348.5,356.75 L 353.1875,356.75 L 354.75,351.875 L 357.875,351.65625 L 358.09375,347.96875 L 361,347.96875 L 360.4375,346.59375 L 359.65625,344.0625 L 360.8125,342.09375 L 363.5625,340.9375 L 364.71875,336.25 L 362.1875,333.3125 L 359.0625,333.5 L 359.4375,329.78125 L 353.1875,327.0625 L 351.0625,327.25 L 346.75,330.78125 L 342.8125,329.5 L 342.03125,330.25 L 339.5625,329.53125 L 337.8125,327.75 L 336.75,329.875 L 333.71875,329.71875 L 332.3125,328.46875 L 331.25,330.9375 L 329.3125,330.0625 L 328.0625,327.75 L 326.46875,327.75 L 325.0625,326.53125 L 322.9375,327.40625 L 320.46875,327.59375 L 319.0625,326.6875 L 318.1875,327.21875 L 317.8125,326.34375 z ", "name" : "Haute Loire"}, "fr-44" : {"path": "M 132.875,185.84375 L 132.6875,188 L 128.40625,188.59375 L 126.4375,190.53125 L 125.65625,192.6875 L 113.5625,193.28125 L 108.46875,196 L 108.28125,201.46875 L 102.8125,203.625 L 99.09375,205.5625 L 95.96875,205.5625 L 94.8125,204.21875 L 93.0625,205.96875 L 92.21875,206.125 L 93.21875,206.8125 L 89.5,210.125 L 90.28125,210.90625 L 91.0625,212.46875 L 89.09375,215.21875 L 91.25,216.375 L 94.96875,217.15625 L 95.34375,215.59375 L 97.5,218.34375 L 101.03125,218.34375 L 103.5625,215.59375 L 106.875,215.59375 L 103.375,217.34375 L 103.5625,219.3125 L 104.34375,221.0625 L 102.1875,223.21875 L 99.84375,223.21875 L 100.25,226.15625 L 104.53125,225.375 L 109.625,230.0625 L 109.375,230.375 L 113.0625,232.78125 L 113.875,234.71875 L 117.25,236.1875 L 119.84375,236.5 L 120.96875,239.5625 L 125,240.53125 L 127.71875,241.03125 L 129.1875,239.40625 L 127.71875,237.3125 L 127.09375,232.78125 L 128.375,231.34375 L 130.15625,231.34375 L 130.96875,233.125 L 130.46875,236.34375 L 131.59375,237.15625 L 134.5,236.1875 L 135.46875,232.96875 L 134.1875,231.65625 L 137.40625,231.65625 L 138.53125,229.5625 L 139.65625,229.71875 L 142.25,232.15625 L 144.125,232.40625 L 144.1875,230.375 L 142.5625,228.28125 L 141.125,228.28125 L 140.625,228.4375 L 139.65625,227.96875 L 140.46875,227.15625 L 140.46875,225.6875 L 142.09375,225.21875 L 143.0625,222.96875 L 142.25,222.15625 L 142.09375,219.40625 L 140,219.40625 L 137.90625,216.8125 L 137.90625,214.90625 L 140.15625,213.75 L 144.1875,212.96875 L 150.46875,213.125 L 152.40625,211.8125 L 151.75,207.78125 L 148.84375,205.0625 L 145.3125,205.53125 L 144.34375,204.71875 L 144.1875,201.84375 L 146.75,199.5625 L 144.8125,197.15625 L 143.53125,193.75 L 141.4375,192.46875 L 141.4375,190.21875 L 141.21875,189.5 L 137.5625,188.59375 L 135.8125,186.25 L 132.875,185.84375 z ", "name" : "Loire Atlantique"}, "fr-45" : {"path": "M 273.71875,160.46875 L 271.1875,162.8125 L 265.46875,163.3125 L 265.25,163.6875 L 265.8125,164.8125 L 264,166.34375 L 264.40625,170 L 262.875,170.28125 L 261.875,173.90625 L 260.1875,175.75 L 257.8125,175.75 L 255.5625,177 L 254.3125,175.59375 L 252.90625,175.03125 L 251.375,176.03125 L 251.375,177.5625 L 250.25,178.40625 L 248.4375,177.28125 L 247.3125,178.125 L 247.4375,179.375 L 246.90625,180.53125 L 247.3125,180.65625 L 248.96875,180.65625 L 248.84375,181.78125 L 247.71875,183.71875 L 247.71875,184.71875 L 248.84375,184.71875 L 249.8125,185.84375 L 250.09375,186.96875 L 247.875,189.1875 L 248.96875,191.875 L 248.96875,193.125 L 250.8125,194.375 L 253.34375,194.65625 L 255,196.0625 L 255.4375,198.46875 L 257.25,200.5625 L 259.21875,200 L 260.0625,198.1875 L 263.15625,198.59375 L 263.84375,199.3125 L 265.8125,199.3125 L 266.78125,198.1875 L 273.9375,198.46875 L 275.625,200.96875 L 277.59375,201.8125 L 279.28125,203.375 L 281.375,203.09375 L 281.9375,202.375 L 283.1875,202.375 L 284.75,204.34375 L 287.96875,204.5 L 288.8125,205.59375 L 291.0625,208.6875 L 292.03125,209.53125 L 293.28125,209.40625 L 293.4375,206.59375 L 294,206.3125 L 294.84375,206.4375 L 296.25,208.28125 L 297.21875,208.6875 L 299.21875,207.875 L 298.90625,207.53125 L 298.71875,205.5625 L 302.625,204.40625 L 302.03125,202.25 L 301.4375,199.125 L 298.90625,195.625 L 298.3125,193.46875 L 302.21875,193.46875 L 304.96875,191.5 L 305.34375,188.59375 L 303.59375,186.625 L 308.6875,182.34375 L 308.6875,178.8125 L 306.125,176.09375 L 305.15625,172.96875 L 301.625,169.625 L 296.75,172.375 L 296.375,170.8125 L 294.21875,170.625 L 293.625,172.1875 L 291.6875,172.5625 L 286.40625,172.375 L 284.25,173.75 L 282.5,172.1875 L 285.625,170.03125 L 285.4375,166.71875 L 283.09375,165.53125 L 281.125,162.59375 L 275.875,162.21875 L 273.71875,160.46875 z ", "name" : "Loiret"}, "fr-46" : {"path": "M 247.46875,347.3125 L 243.3125,349.25 L 242.71875,349.34375 L 242.84375,349.53125 L 241.5,350.6875 L 241.5,352.84375 L 243.25,354.78125 L 241.5,357.90625 L 239.9375,358.90625 L 239.71875,360.84375 L 236.40625,361.25 L 236.59375,363.375 L 237.78125,363.78125 L 235.03125,367.6875 L 230.75,368.0625 L 230.5625,371 L 228.78125,372.75 L 227.8125,375.3125 L 223.90625,375.5 L 225.46875,381.34375 L 227.125,384.96875 L 229.625,384.875 L 229.78125,385.90625 L 228.375,387.5 L 229.4375,389.625 L 231.03125,389.625 L 232.78125,391.5625 L 234.375,391.5625 L 235.625,390.15625 L 235.96875,390.53125 L 235.96875,392.28125 L 236.5,394.59375 L 240.21875,394.75 L 243.21875,391.5625 L 244.8125,391.40625 L 245.34375,392.28125 L 246.21875,394.21875 L 247.65625,394.21875 L 248.1875,390.6875 L 251.1875,391.0625 L 252.9375,388.9375 L 255.78125,389.625 L 260.03125,387.6875 L 260.0625,388.0625 L 261.4375,386.625 L 259.65625,383.96875 L 258.96875,380.4375 L 261.25,378.5 L 262.3125,378.84375 L 265.5,375.3125 L 267.25,375.5 L 267.96875,374.59375 L 271.5,374.59375 L 272.75,373.1875 L 273.09375,372.09375 L 271.5,371.875 L 272.59375,368.5625 L 270.09375,367.46875 L 272.59375,361.65625 L 269.28125,359.1875 L 268.15625,352 L 265.125,351.1875 L 262.90625,353.375 L 261.8125,351.4375 L 258.5,354.75 L 256.28125,355.03125 L 252.4375,349.53125 L 247.46875,347.3125 z ", "name" : "Lot"}, "fr-47" : {"path": "M 195.25,363.375 L 193.1875,363.65625 L 191.4375,364.1875 L 188.9375,364.71875 L 188.25,366.65625 L 189.125,368.59375 L 191.25,368.78125 L 190.90625,370.53125 L 189.3125,371.0625 L 187.53125,373.1875 L 184.53125,377.78125 L 183.125,380.25 L 183.65625,382.90625 L 184.53125,384.6875 L 182.59375,385.90625 L 180.65625,385.90625 L 180.28125,387.875 L 181.53125,388.9375 L 181.71875,390.875 L 180.28125,392.28125 L 177.15625,392.78125 L 177.625,393.34375 L 178.34375,397.59375 L 182.21875,397.25 L 184.875,398.28125 L 187.1875,398.46875 L 188.25,399.71875 L 186.125,401.84375 L 185.59375,405.71875 L 186.0625,406.9375 L 186.8125,405.375 L 189.125,407.34375 L 192.25,404.21875 L 193.625,406.15625 L 196.9375,405.5625 L 200.46875,405.1875 L 202.03125,402.4375 L 207.875,401.875 L 210.8125,404.78125 L 211.8125,403.8125 L 213.75,403.21875 L 212.96875,400.5 L 215.90625,399.71875 L 219.625,398.9375 L 218.8125,396.59375 L 220,395.21875 L 220.96875,391.5 L 218.8125,389.15625 L 220.1875,384.6875 L 223.125,386.4375 L 227.4375,385.65625 L 225.46875,381.34375 L 223.90625,375.5 L 227.8125,375.3125 L 228.59375,373.25 L 225.53125,371.96875 L 224.125,370.375 L 222,370.375 L 219.53125,372.65625 L 217.59375,372.5 L 217.0625,371.25 L 218.46875,370.375 L 218.46875,369.125 L 216.875,367.375 L 215.46875,367.1875 L 214.59375,368.25 L 210.6875,368.25 L 210.34375,366.84375 L 209.09375,366.65625 L 206.96875,368.40625 L 203.09375,368.40625 L 201.3125,370 L 198.3125,368.9375 L 197.96875,365.25 L 195.25,363.375 z ", "name" : "Lot et Garonne"}, "fr-48" : {"path": "M 320.78125,352.25 L 315.3125,354.21875 L 313.75,357.71875 L 310.25,355.375 L 307.5,363.96875 L 304.6875,370.4375 L 308.78125,375.46875 L 308.5,379.34375 L 311.25,381.28125 L 311.25,385.96875 L 312.09375,392.59375 L 315.40625,394 L 315.125,396.1875 L 319.8125,395.375 L 321.46875,396.1875 L 320.4375,397.09375 L 326.46875,401.125 L 331.625,400.0625 L 332.5,398.8125 L 331.78125,397.0625 L 333.90625,396.53125 L 336.90625,399.34375 L 342.03125,399.875 L 344.34375,396.34375 L 344.34375,393.34375 L 345.75,391.75 L 344.5,391.40625 L 344.5,387.34375 L 341.6875,384.34375 L 344,383.96875 L 345.21875,382.90625 L 346.1875,381.03125 L 345.21875,380.4375 L 345.78125,376.3125 L 342.46875,372.71875 L 341.09375,365.53125 L 336.125,359.1875 L 332.5,360.0625 L 331.71875,357.34375 L 329.75,357.34375 L 329.375,359.6875 L 324.3125,361.25 L 320.78125,352.25 z ", "name" : "Lozère"}, "fr-49" : {"path": "M 141.9375,188.6875 L 141.5,189.5625 L 141.21875,189.5 L 141.4375,190.21875 L 141.4375,192.46875 L 143.53125,193.75 L 144.8125,197.15625 L 146.75,199.5625 L 144.1875,201.84375 L 144.34375,204.71875 L 145.3125,205.53125 L 148.84375,205.0625 L 151.75,207.78125 L 152.40625,211.8125 L 150.46875,213.125 L 144.1875,212.96875 L 140.15625,213.75 L 137.90625,214.90625 L 137.90625,216.8125 L 140,219.40625 L 142.09375,219.40625 L 142.25,222.15625 L 143.0625,222.96875 L 142.09375,225.21875 L 140.46875,225.6875 L 140.46875,227.15625 L 139.65625,227.96875 L 140.625,228.4375 L 141.125,228.28125 L 142.5625,228.28125 L 144.1875,230.375 L 144.125,232.40625 L 144.5,232.46875 L 146.125,233.4375 L 151.125,233.4375 L 153.78125,235.6875 L 157.5,234.09375 L 163.5625,235.46875 L 166.28125,233.6875 L 166.28125,230.96875 L 171.5625,230.5625 L 176.4375,229.59375 L 181.71875,229.40625 L 182.3125,230.78125 L 183.6875,231.9375 L 185.03125,229.59375 L 188.75,225.6875 L 190.25,225.6875 L 192.46875,217.6875 L 195.59375,213.96875 L 195.375,209.6875 L 197.34375,207.125 L 197.34375,205.96875 L 196.375,204.78125 L 197,203.5 L 194.34375,202.46875 L 186.125,197.46875 L 178.53125,195.21875 L 175.625,195.0625 L 175.625,193.125 L 173.84375,191.65625 L 171.9375,191.65625 L 168.375,190.53125 L 166.125,192.78125 L 160.96875,192.96875 L 158.6875,191.65625 L 152.90625,189.90625 L 151.59375,191.5 L 148.375,189.40625 L 145.46875,189.40625 L 141.9375,188.6875 z ", "name" : "Maine et Loire"}, "fr-50" : {"path": "M 119.5625,77.5 L 118.78125,79.46875 L 122.90625,82.78125 L 122.90625,87.09375 L 121.34375,89.03125 L 122.3125,90 L 122.90625,90.40625 L 122.5,94.125 L 123.875,97.25 L 128.375,102.3125 L 129.34375,106.8125 L 130.3125,108.1875 L 130.3125,115.21875 L 132.65625,119.90625 L 132.65625,125.375 L 130.125,130.4375 L 132.84375,137.46875 L 137.15625,138.4375 L 137.53125,140.40625 L 135.40625,141.375 L 131.71875,141.375 L 132.3125,143.84375 L 133.46875,147.5625 L 136.8125,150.5 L 138.375,150.875 L 139.9375,148.75 L 141.6875,148.53125 L 143.8125,146 L 145.78125,147.5625 L 148.125,147.5625 L 149.6875,148.34375 L 149.6875,148.71875 L 153,149.125 L 154.96875,147.5625 L 157.875,148.75 L 157.9375,148.875 L 161.28125,146.03125 L 162.40625,142.3125 L 162.09375,140.6875 L 162.5625,138.78125 L 160.625,136.84375 L 155.625,133.59375 L 151.9375,133.28125 L 148.21875,128.59375 L 151.28125,127.46875 L 152.5625,125.0625 L 150.96875,123.59375 L 152.40625,122.3125 L 153.84375,123.4375 L 156.4375,121.84375 L 158.0625,119.25 L 158.6875,116.6875 L 157.5625,114.40625 L 158.21875,113.59375 L 156.75,111.1875 L 158.375,109.09375 L 157.09375,107.46875 L 155.46875,109.5625 L 153.21875,108.28125 L 149.5,104.5625 L 149.34375,102.96875 L 150.46875,101.84375 L 150.125,99.6875 L 148.28125,100.15625 L 148.09375,95.46875 L 143,89.4375 L 144.5625,85.53125 L 146.71875,85.53125 L 144.78125,80.25 L 136.375,79.84375 L 131.875,82.96875 L 126.8125,79.65625 L 119.5625,77.5 z ", "name" : "Manche"}, "fr-51" : {"path": "M 337.375,99.3125 L 335.03125,100.3125 L 335.4375,102.25 L 331.3125,102.25 L 327.625,105 L 327.625,110.25 L 330.34375,112.03125 L 331.125,113.78125 L 326.625,114.15625 L 326.0625,115.9375 L 327.8125,117.09375 L 327.03125,118.28125 L 325.28125,119.0625 L 325.65625,120.40625 L 328.1875,120.40625 L 329.1875,121.78125 L 327.4375,122.96875 L 325.875,127.0625 L 322.9375,128.4375 L 321.9375,130.5625 L 320.96875,131.75 L 321.1875,132.90625 L 319.625,133.90625 L 319.21875,136.625 L 320.78125,137.59375 L 321.5625,140.53125 L 320.59375,142.28125 L 321.1875,143.65625 L 324.09375,143.46875 L 324.09375,144.4375 L 324.9375,144.25 L 328.3125,147.8125 L 333.0625,147.03125 L 338.625,143.25 L 341.96875,143.25 L 345.34375,140.875 L 349.3125,138.6875 L 352.28125,138.90625 L 352.6875,142.875 L 356.25,148.21875 L 360.21875,148.21875 L 365.78125,147.03125 L 369.75,148.40625 L 373.90625,145.4375 L 374.5,140.5 L 379.09375,139.71875 L 379,136.625 L 375.28125,133.6875 L 374.875,132.125 L 376.25,129.78125 L 375.0625,128.8125 L 376.25,125.875 L 378.40625,124.90625 L 379.96875,120.03125 L 376.84375,120.21875 L 378.59375,118.28125 L 377.21875,113.96875 L 375.875,111.03125 L 377.625,109.46875 L 376.625,109.28125 L 376.375,107.9375 C 376.33461,107.94351 376.09375,107.96875 376.09375,107.96875 L 374.3125,106.375 L 372.3125,108.375 L 371.71875,108.375 L 370.9375,107.375 L 366.1875,107.1875 L 365.375,108.375 L 364,108.375 L 362.8125,105.78125 L 360.21875,105.78125 L 359.625,106.375 L 357.0625,106.1875 L 353.875,103.8125 L 351.6875,103.21875 L 350.90625,102.03125 L 346.75,99.4375 L 342,99.3125 L 342.0625,101.09375 L 340.6875,101.46875 L 337.375,99.3125 z ", "name" : "Marne"}, "fr-52" : {"path": "M 379.09375,139.71875 L 374.5,140.5 L 373.90625,145.4375 L 369.75,148.40625 L 367.59375,147.65625 L 366.5625,149.8125 L 366.375,152.78125 L 369.9375,157.75 L 373.3125,158.9375 L 374.09375,163.09375 L 374.3125,170.21875 L 373.125,172 L 369.75,172.21875 L 367.5625,174.1875 L 369.15625,175.1875 L 369.8125,177.6875 L 372.15625,179 L 375.65625,182.71875 L 380.15625,188.78125 L 377.625,191.5 L 379.375,192.6875 L 379.5625,196 L 382.6875,195.8125 L 383.46875,197.375 L 385.8125,197.5625 L 387.5625,196.59375 L 390.6875,200.5 L 391.09375,201.46875 L 395.375,200.5 L 396.1875,198.53125 L 396.375,198.5625 L 396.375,196.59375 L 399.09375,195.40625 L 402.21875,196.59375 L 405.15625,195.40625 L 406.90625,195.40625 L 407.5,191.5 L 408.46875,190.34375 L 406.71875,190.15625 L 406.53125,187.8125 L 409.25,187.21875 L 409.4375,185.65625 L 412.1875,185.65625 L 412.1875,183.125 L 414.34375,182.34375 L 413.75,180.78125 L 414.34375,180.40625 L 412.5625,179 L 410.4375,179.78125 L 410.4375,175.6875 L 404.96875,172.96875 L 406.125,167.6875 L 407.875,166.5 L 407.3125,164.75 L 404.75,164.375 L 404.1875,161.8125 L 401.84375,161.8125 L 399.09375,158.125 L 395.96875,157.90625 L 394.625,155.96875 L 396.375,154.21875 L 392.25,149.71875 L 390.5,149.125 L 385.8125,146.78125 L 383.28125,144.0625 L 379.1875,143.46875 L 379.09375,139.71875 z ", "name" : "Haute Marne"}, "fr-53" : {"path": "M 182.5,146.40625 L 180.5625,146.59375 L 179.75,148.53125 L 176.84375,149.71875 L 171.5625,148.9375 L 166.28125,152.0625 L 164.34375,150.6875 L 161.40625,152.65625 L 159.25,151.09375 L 157.875,148.75 L 154.96875,147.5625 L 153,149.125 L 149.6875,148.71875 L 149.5,153.8125 L 150.46875,154.59375 L 150.46875,158.5 L 148.5,160.46875 L 148.5,163.59375 L 149.09375,165.53125 L 149.09375,171.1875 L 150.46875,172.5625 L 150.46875,177.84375 L 147.15625,177.4375 L 145.78125,178.21875 L 143.25,184.46875 L 142.25,188 L 141.9375,188.6875 L 145.46875,189.40625 L 148.375,189.40625 L 151.59375,191.5 L 152.90625,189.90625 L 158.6875,191.65625 L 160.96875,192.96875 L 166.125,192.78125 L 168.375,190.53125 L 171.9375,191.65625 L 173.84375,191.65625 L 173.875,191.6875 L 174.5,190.21875 L 174.5,184.40625 L 173.84375,183.4375 L 174.1875,182.46875 L 176.9375,182.3125 L 178.21875,181.1875 L 178.375,180.21875 L 176.9375,176.65625 L 177.40625,175.21875 L 180.625,174.90625 L 180.3125,174.09375 L 181.125,172.15625 L 180.46875,170.6875 L 181.28125,169.09375 L 184.1875,166.65625 L 183.84375,164.09375 L 184.34375,159.90625 L 185.46875,157.96875 L 189.125,156.78125 L 188.5625,156.75 L 187.5625,153.21875 L 185.03125,152.25 L 184.25,147.96875 L 182.5,146.40625 z ", "name" : "Mayenne"}, "fr-54" : {"path": "M 401.59375,88.4375 L 399.25,90.59375 L 395.9375,90.78125 L 394.78125,91.96875 L 394.53125,91.96875 L 394.40625,94.3125 L 395.5625,96.21875 L 395.15625,97.375 L 394.78125,98.71875 L 394.96875,99.46875 L 395.9375,98.71875 L 396.875,97 L 398.8125,96.8125 L 402.0625,95.84375 L 403.78125,97.1875 L 404.53125,98.71875 L 405.125,100.4375 L 405.125,102.15625 L 406.0625,102.9375 L 406.0625,104.25 L 405.125,105.40625 L 404.9375,107.90625 L 405.6875,109.0625 L 405.875,110.59375 L 406.0625,113.0625 L 407.21875,114.03125 L 408.9375,114.78125 L 408.1875,116.3125 L 410.28125,118.25 L 408.375,120.34375 L 408.75,121.6875 L 410.65625,122.625 L 410.65625,123.59375 L 408.375,123.59375 L 407.40625,124.9375 L 407.59375,125.90625 L 409.125,127.4375 L 407.8125,131.0625 L 406.28125,134.5 L 407.03125,136.625 L 407.03125,140.0625 L 407.8125,141.78125 L 408.9375,141.78125 L 409.53125,142.75 L 407.8125,142.75 L 406.28125,143.5 L 406.28125,144.65625 L 408.1875,146.375 L 408.1875,149.0625 L 410.09375,148.46875 L 412.96875,148.65625 L 413.15625,151.71875 L 414.3125,152.125 L 412.96875,153.0625 L 412.78125,154.03125 L 414.875,154.40625 L 416.21875,156.125 L 422.53125,155.75 L 423.875,153.25 L 426.75,153.25 L 427.90625,152.3125 L 429.8125,153.46875 L 431.53125,152.875 L 434.03125,153.0625 L 436.125,152.3125 L 438.21875,150.78125 L 439.375,151.9375 L 439.5625,149.25 L 441.09375,148.65625 L 441.875,151.15625 L 444.15625,151.34375 L 446.46875,151.9375 L 447.40625,152.125 L 450.6875,150.59375 L 452.40625,149.4375 L 453.9375,147.53125 L 457,146.375 L 459,145.9375 L 457.875,144.84375 L 460.03125,145.03125 L 460.4375,144.625 L 458.125,143.875 L 454.875,141.59375 L 452,139.46875 L 448.5625,139.46875 L 444.9375,137.375 L 442.0625,137.1875 L 442.0625,136.40625 L 437.65625,133.75 L 432.6875,131.625 L 430.1875,131.625 L 429.25,128.96875 L 425.40625,124.15625 L 421.59375,124.15625 L 420.0625,122.0625 L 417,122.0625 L 417.1875,119 L 413.15625,116.5 L 413.34375,114.03125 L 415.46875,114.03125 L 415.46875,111.90625 L 416.21875,110.375 L 414.5,108.65625 L 416.03125,106 L 414.875,102.9375 L 413.9375,102.15625 L 411.4375,96.8125 L 412.40625,95.28125 C 412.40625,95.28125 412.32712,94.02401 412.25,92.34375 L 409.625,92.34375 L 406.09375,88.4375 L 401.59375,88.4375 z ", "name" : "Meurthe et Moselle"}, "fr-55" : {"path": "M 390.125,86.53125 L 388.75,88.78125 L 387,89.9375 L 385.625,88.59375 L 382.6875,88.59375 L 382.125,87.8125 L 380.15625,91.5 L 379.375,92.875 L 381.71875,95.8125 L 380.9375,99.71875 L 378.78125,101.46875 L 379,102.84375 L 379.75,104.78125 L 378.59375,105.96875 L 376.25,107.125 L 376.625,109.28125 L 377.625,109.46875 L 375.875,111.03125 L 377.21875,113.96875 L 378.59375,118.28125 L 376.84375,120.21875 L 379.96875,120.03125 L 378.40625,124.90625 L 376.25,125.875 L 375.0625,128.8125 L 376.25,129.78125 L 374.875,132.125 L 375.28125,133.6875 L 379,136.625 L 379.1875,143.46875 L 383.28125,144.0625 L 385.8125,146.78125 L 390.5,149.125 L 392.25,149.71875 L 396.375,154.21875 L 395.9375,154.65625 L 399.375,154.21875 L 399.375,152.5 L 403.21875,151.71875 L 403.21875,150.40625 L 404.15625,150.40625 L 404.15625,151.53125 L 407.21875,150.59375 L 408.40625,149 L 408.1875,149.0625 L 408.1875,146.375 L 406.28125,144.65625 L 406.28125,143.5 L 407.8125,142.75 L 409.53125,142.75 L 408.9375,141.78125 L 407.8125,141.78125 L 407.03125,140.0625 L 407.03125,136.625 L 406.28125,134.5 L 407.8125,131.0625 L 409.125,127.4375 L 407.59375,125.90625 L 407.40625,124.9375 L 408.375,123.59375 L 410.65625,123.59375 L 410.65625,122.625 L 408.75,121.6875 L 408.375,120.34375 L 410.28125,118.25 L 408.1875,116.3125 L 408.9375,114.78125 L 407.21875,114.03125 L 406.0625,113.0625 L 405.875,110.59375 L 405.6875,109.0625 L 404.9375,107.90625 L 405.125,105.40625 L 406.0625,104.25 L 406.0625,102.9375 L 405.125,102.15625 L 405.125,100.4375 L 404.53125,98.71875 L 403.78125,97.1875 L 402.0625,95.84375 L 398.8125,96.8125 L 396.875,97 L 395.9375,98.71875 L 394.96875,99.46875 L 394.78125,98.71875 L 395.15625,97.375 L 395.5625,96.21875 L 394.40625,94.3125 L 394.53125,91.96875 L 393.59375,91.96875 L 392.8125,88.25 L 391.25,86.6875 L 390.125,86.53125 z ", "name" : "Meuse"}, "fr-56" : {"path": "M 56,160.59375 L 52.75,162.15625 L 50.46875,162.15625 L 48.0625,164.09375 L 48.21875,165.53125 L 49.65625,169.25 L 50.46875,172.15625 L 55.46875,172.96875 L 57.90625,174.90625 L 58.875,173.75 L 60.46875,175.875 L 59.65625,176.84375 L 59.5,179.71875 L 58.0625,179.71875 L 56.9375,181.5 L 54.65625,181.5 L 53.71875,185.34375 L 55.90625,188.84375 L 59.03125,189.625 L 60.1875,187.875 L 59.625,190 L 62.34375,191.1875 L 65.875,194.6875 L 67.03125,196.84375 L 66.65625,199.375 L 66.25,201.9375 L 68.59375,203.6875 L 69.78125,202.3125 L 68.59375,200.75 L 68.59375,197.25 L 70.9375,197.8125 L 71.71875,195.46875 L 72.3125,196.84375 L 74.84375,199 L 76.03125,197.03125 L 74.84375,194.3125 L 77,197.25 L 79.71875,196.84375 L 79.15625,195.46875 L 81.6875,196.0625 L 83.625,198.40625 L 82.65625,199.96875 L 80.125,199.1875 L 77.1875,197.8125 L 75.625,199.78125 L 77.96875,200.5625 L 79.71875,203.28125 L 90.28125,202.3125 L 93,202.90625 L 91.65625,204.0625 L 91.84375,205.84375 L 92.21875,206.125 L 93.0625,205.96875 L 94.8125,204.21875 L 95.96875,205.5625 L 99.09375,205.5625 L 102.8125,203.625 L 108.28125,201.46875 L 108.46875,196 L 109.625,195.375 L 107.5625,191.5 L 109.34375,190.0625 L 109.03125,189.09375 L 107.90625,188.4375 L 109.65625,187.625 L 111.28125,185.6875 L 111.125,183.75 L 109.03125,183.75 L 108.53125,181.84375 L 110,179.90625 L 108.375,177 L 105.96875,175.53125 L 103.21875,175.53125 L 102.25,175.21875 L 102.25,173.9375 L 103.6875,172.625 L 104.5,169.40625 L 104.03125,167.3125 L 103.375,168.125 L 99.5,167.8125 L 97.71875,164.5625 L 96.28125,164.5625 L 94.03125,165.375 L 94.03125,167.46875 L 90.96875,169.40625 L 88.53125,168.4375 L 87.5625,166.34375 L 86.78125,167.46875 L 84.5,167.46875 L 83.375,166.03125 L 82.25,166.03125 L 79.84375,163.59375 L 77.09375,164.25 L 74.1875,161.65625 L 71.59375,161.84375 L 70.8125,163.4375 L 67.75,165.0625 L 64.03125,163.4375 L 63.0625,162.46875 L 61.4375,163.59375 L 59.5,163.4375 L 59.1875,161.84375 L 56.125,161.03125 L 56,160.59375 z ", "name" : "Morbihan"}, "fr-57" : {"path": "M 423.09375,90.40625 L 420.15625,90.59375 L 417.8125,92.5625 L 417.21875,93.53125 L 413.90625,93.53125 L 412.75,92.34375 L 412.25,92.34375 C 412.32712,94.02401 412.40625,95.28125 412.40625,95.28125 L 411.4375,96.8125 L 413.9375,102.15625 L 414.875,102.9375 L 416.03125,106 L 414.5,108.65625 L 416.21875,110.375 L 415.46875,111.90625 L 415.46875,114.03125 L 413.34375,114.03125 L 413.15625,116.5 L 417.1875,119 L 417,122.0625 L 420.0625,122.0625 L 421.59375,124.15625 L 425.40625,124.15625 L 429.25,128.96875 L 430.1875,131.625 L 432.6875,131.625 L 437.65625,133.75 L 442.0625,136.40625 L 442.0625,137.1875 L 444.9375,137.375 L 448.5625,139.46875 L 452,139.46875 L 454.875,141.59375 L 458.125,143.875 L 460.4375,144.625 L 463.9375,141.125 L 465.125,137.03125 L 463.5625,135.46875 L 463.375,134.09375 L 465.6875,129.78125 L 460.25,126.65625 L 457.125,129 L 455.34375,127.84375 L 456.125,126.09375 L 454.1875,124.71875 L 451.625,123.53125 L 451.625,121 L 454.1875,120.21875 L 455.15625,115.71875 L 456.90625,113.78125 L 457.6875,116.71875 L 459.84375,117.6875 L 463.5625,118.28125 L 465.5,120.21875 L 467.84375,120.21875 L 469.8125,118.84375 L 472.34375,120.625 L 473.71875,120.625 L 475.28125,119.25 L 475.28125,116.3125 L 477,113.3125 L 476.59375,113.4375 L 475.25,111.5 L 471.34375,109.15625 L 469.96875,107 L 465.28125,107.40625 L 462.53125,109.9375 L 455.90625,110.125 L 453.9375,108.75 C 453.80551,108.51057 452.84437,106.81438 452,106.34375 C 451.96729,106.32639 451.91355,106.29802 451.875,106.28125 C 451.84646,106.26959 451.80512,106.25698 451.78125,106.25 C 451.77058,106.24458 451.73002,106.22452 451.71875,106.21875 C 451.71591,106.21876 451.69093,106.21861 451.6875,106.21875 C 451.66248,106.21745 451.61378,106.21875 451.59375,106.21875 C 450.67823,106.21876 448.90565,105.19125 448.6875,105.0625 L 445.9375,106.21875 L 445.75,108.5625 L 442.4375,108.96875 L 440.46875,105.25 L 439.3125,104.84375 L 439.3125,102.125 L 436.5625,100.9375 L 436.375,96.25 L 434.40625,94.3125 L 430.3125,92.34375 L 428.375,92.34375 L 427.78125,92.75 L 425.8125,92.75 L 423.09375,90.40625 z ", "name" : "Moselle"}, "fr-58" : {"path": "M 306.75,203.78125 L 305.78125,205.3125 L 303.9375,205.3125 L 301.46875,204.75 L 298.71875,205.5625 L 298.90625,207.53125 L 301.25,210.25 L 301.25,213.96875 L 299.5,216.5 L 300.0625,218.84375 L 303.59375,221.59375 L 303.78125,224.3125 L 305.75,228.4375 L 305.34375,233.125 L 307.5,235.25 L 306.90625,240.34375 L 306.71875,242.875 L 307.6875,244.625 L 306.1875,249.40625 L 306.3125,250.875 L 309.65625,252.4375 L 312,255 L 314.125,253.8125 L 316.09375,252.65625 L 316.5,254.40625 L 319.40625,254.40625 L 320.1875,252.84375 L 321.9375,253.625 L 322.53125,256.15625 L 324.09375,255.78125 L 327.8125,250.6875 L 329.75,252.0625 L 330.0625,252.65625 L 333.125,250.75 L 334.375,250.90625 L 335.34375,253.28125 L 337.1875,253 L 338.59375,251.59375 L 340.40625,251.59375 L 341.8125,249.78125 L 343.21875,249.5 L 343.5,248.5 L 346.5625,248.65625 L 346.71875,247.9375 L 345.3125,246.6875 L 345.3125,245.4375 L 347.28125,244.3125 L 347.28125,243.46875 L 345.4375,242.34375 L 345.15625,240.25 L 345.3125,238.28125 L 344.0625,237.4375 L 345.15625,235.90625 L 346.15625,235.34375 L 346.84375,233.65625 L 345.875,233.09375 L 344.75,231.40625 L 346.15625,229.4375 L 348.53125,228.03125 L 351.46875,228.03125 L 351.46875,225.8125 L 352.3125,225.53125 L 352.3125,224.6875 L 351.0625,222.71875 L 348.25,222.15625 L 347.28125,220.46875 L 347.6875,218.9375 L 347.96875,216.8125 L 347.46875,215.6875 L 344.34375,217.8125 L 343.0625,218.375 L 341.375,217.25 L 341.53125,214.4375 L 339.6875,214.4375 L 338.15625,215.4375 L 337.75,214.15625 L 338.59375,212.75 L 337.59375,211.5 L 336.46875,213.1875 L 336.625,214.4375 L 333.96875,214.3125 L 329.75,210.375 L 326.53125,210.25 L 326.53125,208.125 L 324.28125,206.71875 L 323.84375,204.90625 L 323.15625,204.78125 L 323.15625,208.28125 L 321.90625,208.5625 L 320.0625,208 L 318.125,209.25 L 317,209.53125 L 315.875,208.5625 L 314.75,209.125 L 312.21875,207.4375 L 310.40625,207.4375 L 309.125,206.59375 L 309.40625,205.03125 L 308,203.78125 L 306.75,203.78125 z ", "name" : "Nièvre"}, "fr-59" : {"path": "M 285.78125,4.0625 L 279.53125,7 L 269.78125,8.5625 L 269.25,8.65625 L 272.96875,14.5625 L 275.5625,21.125 L 279.90625,21.3125 L 281.6875,22.6875 L 279.53125,23.6875 L 279.53125,26.0625 L 282.28125,29.03125 L 287.25,30.25 L 293.40625,30.625 L 294.78125,28.4375 L 296.78125,28.4375 L 297.75,30.4375 L 295.1875,32.03125 L 295.59375,36 L 299.15625,36.96875 L 302.71875,37.375 L 303.71875,39.9375 L 305.5,40.75 L 305.09375,42.125 L 302.53125,43.3125 L 302.3125,44.5 L 304.3125,46.90625 L 305.6875,47.875 L 305.3125,49.0625 L 303.71875,50.25 L 304.3125,50.65625 L 306.875,50.84375 L 309.0625,52.25 L 308.875,54.03125 L 307.6875,54.8125 L 307.46875,58 L 305.6875,58.1875 L 303.90625,58 L 301.9375,59.1875 L 303.125,59.59375 L 305.09375,59.59375 L 306.875,59.96875 L 307.46875,60.96875 L 306.3125,63.1875 L 307.875,64.75 L 309.4375,65.15625 L 311,64.15625 L 313.15625,64.15625 L 313.75,65.34375 L 314.53125,65.15625 L 316.875,63.78125 L 319.21875,65.15625 L 322.34375,63 L 323.71875,63 L 325.28125,64.375 L 328.40625,62.21875 L 329.75,62.40625 L 330.9375,63.375 L 335.25,63.78125 L 335.625,65.53125 L 337.78125,63.59375 L 338.9375,63.59375 L 339.71875,66.125 L 343.4375,67.09375 L 344.5,66.375 L 344.1875,66.375 L 344,64.4375 L 347.90625,62.09375 L 347.3125,58.375 L 343.59375,57.40625 L 344.5625,56.40625 L 344.5625,53.6875 L 347.5,51.53125 L 346.71875,49.96875 L 340.46875,45.09375 L 329.53125,45.6875 L 328.375,47.625 L 327,47.625 L 327.1875,40.78125 L 324.0625,37.09375 L 321.71875,37.46875 L 320.34375,35.90625 L 316.4375,37.65625 L 315.09375,36.3125 L 312.34375,35.90625 L 311.5625,33.375 L 311.375,25.5625 L 309.625,24.78125 L 309.40625,23.59375 L 308.25,23.59375 L 307.84375,21.25 L 305.3125,21.46875 L 300.4375,23.03125 L 298.09375,25.9375 L 295.75,25.9375 L 294.1875,24 L 293.59375,21.84375 L 291.65625,19.6875 L 288.90625,19.6875 L 287.75,17.5625 L 287.75,14.21875 L 289.09375,12.09375 L 288.3125,9.15625 L 285.78125,4.0625 z ", "name" : "Nord"}, "fr-60" : {"path": "M 257.21875,80.21875 L 255.9375,81.75 L 255.15625,83.6875 L 256.71875,83.6875 L 255.9375,85.65625 L 255.15625,89.5625 L 256.3125,91.5 L 256.3125,94.84375 L 258.28125,94.84375 L 257.5,96.1875 L 256.125,98.75 L 255.5625,100.5 L 257.3125,102.0625 L 257.875,106.5625 L 258.875,108.125 L 257.5,108.5 L 255.75,107.53125 L 255.4375,109.84375 L 255.5625,109.6875 L 256.3125,111.4375 L 257.5,113.375 L 262.78125,113.78125 L 266.5,113.375 L 269.03125,111.4375 L 272.15625,113.375 L 273.71875,114.5625 L 276.0625,113.96875 L 278.1875,113 L 282.3125,115.15625 L 286.59375,117.6875 L 287.96875,119.0625 L 290.3125,117.5 L 292.25,118.65625 L 293.4375,119.625 L 295.1875,119.4375 L 296.375,117.875 L 299.09375,119.4375 L 302.4375,118.0625 L 304.375,118.65625 L 306.3125,117.09375 L 307.5,116.5 L 307.875,116.78125 L 308.28125,114.125 L 306.875,112.53125 L 304.5,110.9375 L 303.5,112.53125 L 302.90625,112.71875 L 302.71875,109.75 L 304.5,109.34375 L 304.09375,106.59375 L 301.71875,106.1875 L 302.90625,104.1875 L 306.28125,103.40625 L 307.46875,98.65625 L 309.25,97.84375 L 306.875,96.0625 L 307.6875,94.28125 L 308.0625,88.34375 L 307.25,83.75 L 303.125,84.15625 L 300.34375,83.78125 L 295.1875,85.15625 L 290.8125,89.3125 L 287.25,88.125 L 283.6875,87.75 L 280.90625,84.96875 L 275.9375,83.5625 L 269.21875,84.15625 L 267.4375,82.78125 L 263.84375,82.78125 L 261.28125,83.78125 L 260.09375,82.96875 L 260.09375,80.8125 L 259.6875,80.21875 L 257.21875,80.21875 z ", "name" : "Oise"}, "fr-61" : {"path": "M 206.84375,124.65625 L 202.875,125.53125 L 201.59375,124.75 L 197.875,125.375 L 197.71875,126.84375 L 196.4375,127.15625 L 195.96875,125.0625 L 194.34375,125.375 L 191.90625,128.125 L 188.21875,130.875 L 184.1875,132.15625 L 180.96875,130.375 L 177.25,131.03125 L 175,128.78125 L 172.875,129.5625 L 169.34375,132 L 165.3125,130.875 L 162.40625,134.25 L 158.46875,135.4375 L 160.625,136.84375 L 162.5625,138.78125 L 162.09375,140.6875 L 162.40625,142.3125 L 161.28125,146.03125 L 157.9375,148.875 L 159.25,151.09375 L 161.40625,152.65625 L 164.34375,150.6875 L 166.28125,152.0625 L 171.5625,148.9375 L 176.84375,149.71875 L 179.75,148.53125 L 180.5625,146.59375 L 182.5,146.40625 L 184.25,147.96875 L 185.03125,152.25 L 187.5625,153.21875 L 188.5625,156.75 L 191.875,156.9375 L 197.15625,152.0625 L 202.4375,151.875 L 204,154 L 204.96875,161.03125 L 208.28125,162.21875 L 210.25,165.15625 L 214.34375,165.15625 L 214.53125,166.5 L 214.71875,164.5625 L 215.5,164.5625 L 218.25,168.65625 L 220.375,169 L 220.375,164.375 L 219.03125,162.59375 L 218.625,161.03125 L 221.5625,159.28125 L 224.5,158.6875 L 226.4375,156.34375 L 226.0625,149.125 L 221.9375,145.625 L 221.75,142.28125 L 218.25,139.9375 L 219.625,138 L 218.8125,135.0625 L 216.09375,134.09375 L 214.125,132.125 L 212.96875,129.40625 L 207.5,129.21875 L 205.9375,127.25 L 206.84375,124.65625 z ", "name" : "Orne"}, "fr-62" : {"path": "M 269.25,8.65625 L 258.4375,10.71875 L 249.84375,17.34375 L 249.84375,43.71875 L 249.78125,44.5 L 252.8125,45.21875 L 253.78125,47.375 L 256.125,46.78125 L 257.5,45.03125 L 259.25,45.625 L 262.96875,48.53125 L 264.34375,47.96875 L 265.3125,50.3125 L 268.8125,51.875 L 268.8125,53.8125 L 271.375,54.78125 L 273.90625,53.8125 L 278.78125,53.21875 L 279.96875,54.21875 L 282.3125,53.21875 L 283.46875,55.1875 L 280.5625,57.125 L 280.5625,59.875 L 281.53125,60.84375 L 282.3125,60.65625 L 282.875,59.09375 L 284.65625,57.90625 L 286.40625,59.28125 L 290.5,60.65625 L 292.25,60.65625 L 292.25,58.6875 L 294.8125,60.46875 L 295,62.03125 L 293.8125,63.78125 L 295.96875,62.59375 L 297.75,61.8125 L 298.5,63.1875 L 298.5,64.5625 L 301.4375,63 L 306.125,63 L 306.3125,63.1875 L 307.46875,60.96875 L 306.875,59.96875 L 305.09375,59.59375 L 303.125,59.59375 L 301.9375,59.1875 L 303.90625,58 L 305.6875,58.1875 L 307.46875,58 L 307.6875,54.8125 L 308.875,54.03125 L 309.0625,52.25 L 306.875,50.84375 L 304.3125,50.65625 L 303.71875,50.25 L 305.3125,49.0625 L 305.6875,47.875 L 304.3125,46.90625 L 302.3125,44.5 L 302.53125,43.3125 L 305.09375,42.125 L 305.5,40.75 L 303.71875,39.9375 L 302.71875,37.375 L 299.15625,36.96875 L 295.59375,36 L 295.1875,32.03125 L 297.75,30.4375 L 296.78125,28.4375 L 294.78125,28.4375 L 293.40625,30.625 L 287.25,30.25 L 282.28125,29.03125 L 279.53125,26.0625 L 279.53125,23.6875 L 281.6875,22.6875 L 279.90625,21.3125 L 275.5625,21.125 L 272.96875,14.5625 L 269.25,8.65625 z ", "name" : "Pas de Calais"}, "fr-63" : {"path": "M 299.09375,279.5 L 296.4375,282.5 L 296.25,281.4375 L 294.125,281.625 L 294.125,283.21875 L 292.90625,283.5625 L 291.65625,286.5625 L 290.0625,287.28125 L 287.09375,284.96875 L 287.375,289.5625 L 288.9375,291.5 L 289.71875,295.21875 L 287.375,296.96875 L 286.8125,299.71875 L 284.65625,300.875 L 280.9375,303.03125 L 281.3125,304.78125 L 285.8125,309.28125 L 286.21875,312.03125 L 284.4375,314.9375 L 284.4375,317.6875 L 285.625,319.0625 L 286.21875,322.375 L 285.84375,323.71875 L 291.84375,325.46875 L 293.4375,328.8125 L 296.59375,328.8125 L 297.84375,327.59375 L 299.96875,328.65625 L 301.03125,328.8125 L 303.6875,332.875 L 306.5,333.0625 L 307.21875,331.65625 L 308,331.75 L 308.8125,330.59375 L 312.34375,330.0625 L 314.28125,328.46875 L 316.40625,328.28125 L 316.40625,327.0625 L 317.8125,326.34375 L 318.1875,327.21875 L 319.0625,326.6875 L 320.46875,327.59375 L 322.9375,327.40625 L 325.0625,326.53125 L 326.46875,327.75 L 328.0625,327.75 L 329.3125,330.0625 L 331.25,330.9375 L 332.3125,328.46875 L 333.71875,329.71875 L 336.75,329.875 L 337.8125,327.75 L 339.5625,329.53125 L 342.03125,330.25 L 342.8125,329.5 L 341.28125,329 L 340.6875,326.65625 L 344.40625,323.15625 L 342.65625,316.71875 L 337.5625,313.375 L 335.4375,308.3125 L 333.09375,305.1875 L 333.6875,300.875 L 335.4375,299.125 L 332.3125,296.59375 L 332.40625,295.8125 L 329.65625,294.71875 L 328.78125,292.59375 L 325.78125,292.75 L 323.46875,292.21875 L 323.125,289.75 L 321.34375,288.875 L 319.0625,290.28125 L 316.40625,289.75 L 314.625,289.9375 L 308.625,289.0625 L 303.6875,286.21875 L 303.3125,284.8125 L 301.21875,282.5 L 302.625,280.5625 L 302.09375,279.5 L 299.09375,279.5 z ", "name" : "Puy de Dôme"}, "fr-64" : {"path": "M 172.15625,428.875 L 169.34375,430.46875 L 163.6875,430.28125 L 163.15625,429.40625 L 159.4375,430.65625 L 156.59375,431.53125 L 154.46875,429.9375 L 152.1875,430.65625 L 151.46875,429.75 L 148.65625,429.75 L 146.875,430.65625 L 142.28125,430.46875 L 139.8125,432.40625 L 135.375,432.0625 L 134.5,433.3125 L 133.4375,432.9375 L 134.84375,431.53125 L 132.375,429.59375 L 129.375,432.25 L 124.25,432.59375 L 118.625,429.78125 L 117.8125,431.21875 L 113.3125,436.6875 L 109.8125,438.0625 L 107.28125,438.4375 L 107.28125,440.59375 L 109.625,442.75 L 113.125,442.9375 L 113.3125,445.46875 L 116.0625,445.6875 L 116.84375,443.90625 L 120.5625,445.46875 L 122.90625,446.0625 L 123.46875,448.40625 L 122.125,449.59375 L 122.125,453.28125 L 119.375,454.65625 L 119.1875,456.40625 L 120.9375,458.375 L 124.0625,459.34375 L 124.65625,456.40625 L 126.40625,454.46875 L 126.21875,457 L 127.59375,458.96875 L 131.09375,458.96875 L 132.65625,461.09375 L 137.34375,461.875 L 141.84375,464.625 L 149.25,464.625 L 149.65625,468.71875 L 154.71875,472.625 L 156.6875,474.96875 L 158.84375,473.8125 L 160.78125,473.40625 L 161.75,474.375 L 163.53125,473.40625 L 166.9375,471.53125 L 167.25,467.5 L 168.8125,466.3125 L 169.625,459.875 L 172.53125,460.46875 L 173.71875,459.6875 L 172.34375,456.9375 L 177.625,452.4375 L 180.75,445.40625 L 182.6875,442.875 L 180.34375,439.375 L 178.78125,437.03125 L 180.9375,435.0625 L 177.625,429.59375 L 172.34375,429.21875 L 172.15625,428.875 z ", "name" : "Pyrénées Atlantiques"}, "fr-65" : {"path": "M 179.21875,428.53125 L 177.28125,429.5625 L 177.625,429.59375 L 180.9375,435.0625 L 178.78125,437.03125 L 180.34375,439.375 L 182.6875,442.875 L 180.75,445.40625 L 177.625,452.4375 L 172.34375,456.9375 L 173.71875,459.6875 L 172.53125,460.46875 L 169.625,459.875 L 168.8125,466.3125 L 167.25,467.5 L 166.9375,471.53125 L 167.4375,471.25 L 170.75,473.21875 L 174.65625,476.15625 L 175.03125,478.5 L 178.15625,481.03125 L 180.71875,481.03125 L 187.15625,478.28125 L 189.875,481.40625 L 193.59375,482.40625 L 194.96875,480.0625 L 196.71875,480.84375 L 200.5,481.09375 L 200.25,470.59375 L 202.21875,470.59375 L 203.96875,471.46875 L 205.21875,470.25 L 205.03125,468.3125 L 207.5,466.875 L 206.625,463.1875 L 205.5625,462.28125 L 203.4375,463 L 204.5,461.21875 L 203.96875,458.9375 L 200.78125,456.625 L 200.96875,455.03125 L 202.75,452.03125 L 205.03125,451.15625 L 205.03125,449.90625 L 206.4375,447.78125 L 207.375,446.46875 L 203.8125,444.625 L 199.03125,444.625 L 198.3125,443.1875 L 195.84375,443.1875 L 195.125,441.59375 L 192.84375,441.59375 L 192.125,442.3125 L 189.46875,442.3125 L 189.3125,440.71875 L 187.1875,439.3125 L 187.90625,438.59375 L 188.25,436.84375 L 187.71875,436.3125 L 186.65625,433.46875 L 184.34375,433.125 L 182.0625,431.875 L 182.21875,428.53125 L 179.21875,428.53125 z ", "name" : "Hautes Pyrénées"}, "fr-66" : {"path": "M 300.5,468.65625 L 296.25,470.9375 L 296.59375,473.4375 L 278.0625,473.4375 L 278.21875,476.78125 L 280.15625,479.625 L 272.21875,483.5 L 271.375,483 L 264.84375,483.46875 L 264.03125,485.125 L 260.71875,485.96875 L 258.5,487.90625 L 252.4375,489.3125 L 252.78125,491.375 L 255.71875,494.125 L 261.5625,495.6875 L 261.75,499.1875 L 264.875,501.9375 L 267.21875,501.53125 L 270.5625,497.4375 L 274.65625,496.65625 L 281.09375,498.8125 L 286.5625,503.5 L 288.125,501.53125 L 289.5,501.53125 L 290.875,502.5 L 292.03125,501.9375 L 292.21875,499.1875 L 298.09375,497.8125 L 300.03125,495.28125 L 302.96875,494.3125 L 307.0625,494.3125 L 309.625,497.03125 L 312.75,497.25 L 312.75,494.125 L 311.1875,491.96875 L 308.4375,490.78125 L 308,473.71875 L 305.4375,472.53125 L 300.5,468.65625 z ", "name" : "Pyrénées Orientales"}, "fr-67" : {"path": "M 480.71875,112.28125 L 477,113.3125 L 475.28125,116.3125 L 475.28125,119.25 L 473.71875,120.625 L 472.34375,120.625 L 469.8125,118.84375 L 467.84375,120.21875 L 465.5,120.21875 L 463.5625,118.28125 L 459.84375,117.6875 L 457.6875,116.71875 L 456.90625,113.78125 L 455.15625,115.71875 L 454.1875,120.21875 L 451.625,121 L 451.625,123.53125 L 454.1875,124.71875 L 456.125,126.09375 L 455.34375,127.84375 L 457.125,129 L 460.25,126.65625 L 465.6875,129.78125 L 463.375,134.09375 L 463.5625,135.46875 L 465.125,137.03125 L 463.9375,141.125 L 460.03125,145.03125 L 457.875,144.84375 L 459.25,146.1875 L 458.46875,149.71875 L 459.25,155 L 462.96875,155.96875 L 462.65625,156.6875 L 465.59375,156.53125 L 467.3125,158.625 L 468.84375,160.53125 L 472.6875,160.34375 L 474.40625,165.3125 L 477.40625,166.625 L 477.375,166 L 482.46875,156.03125 L 481.875,150.375 L 484.21875,142.75 L 484.8125,136.09375 L 489.875,132.40625 L 489.875,130.0625 L 491.84375,127.5 L 493.40625,127.5 L 495.15625,125.75 L 494.78125,122.4375 L 496.53125,117.75 L 499.25,117.15625 L 496.53125,115 L 491.65625,114.4375 L 487.34375,112.28125 L 484.40625,114.03125 L 482.84375,112.28125 L 480.71875,112.28125 z ", "name" : "Bas-Rhin"}, "fr-68" : {"path": "M 465.59375,156.53125 L 462.65625,156.6875 L 460.8125,160.84375 L 458.46875,165.53125 L 459.0625,168.46875 L 457.125,172.96875 L 453.78125,175.875 L 453.59375,183.5 L 451.15625,185.59375 L 451.25,185.65625 L 452.03125,187.21875 L 455.15625,187.40625 L 458.6875,190.15625 L 459.25,191.5 L 459.0625,193.84375 L 458.09375,195.625 L 458.46875,197.96875 L 461.21875,197.5625 L 461.8125,199.71875 L 462.78125,203.875 L 465.09375,203.5 L 464.6875,205.625 L 466.0625,206.8125 L 473.28125,206.625 L 477,203.6875 L 477.1875,199.375 L 479.15625,196.84375 L 476.59375,193.90625 L 475.25,190.78125 L 476.8125,188.65625 L 476.8125,183.75 L 477.78125,181.40625 L 477.78125,177.5 L 479.53125,174.96875 L 477.59375,172.25 L 477.40625,166.625 L 474.40625,165.3125 L 472.6875,160.34375 L 468.84375,160.53125 L 467.3125,158.625 L 465.59375,156.53125 z ", "name" : "Haut Rhin"}, "fr-69" : {"path": "M 371.75,275.3125 L 369.625,275.5 L 367.84375,277.25 L 366.6875,275.6875 L 364.9375,277.25 L 362.5625,275.6875 L 360.625,275.6875 L 359.84375,276.28125 L 359.4375,278.53125 L 360.5,279.375 L 360.5,281.28125 L 361.78125,283.40625 L 360.71875,284.6875 L 356.6875,284.6875 L 356.46875,288.5 L 355.1875,289.78125 L 356.03125,292.96875 L 356.03125,294.875 L 357.75,296.5625 L 357.75,298.90625 L 360.28125,301.25 L 360.28125,304 L 359.03125,305.90625 L 360.5,306.78125 L 360.5,308.25 L 359.21875,309.3125 L 359.21875,311.03125 L 364.75,316.125 L 371.34375,317.1875 L 371.96875,319.09375 L 369.84375,321.625 L 371.5625,322.6875 L 373.6875,321.84375 L 375.96875,322.1875 L 380.0625,320.15625 L 379.40625,318.875 L 376.65625,316.125 L 380.90625,314.625 L 386.4375,313.34375 L 390.6875,307.84375 L 387.90625,305.5 L 388.0625,303.46875 L 384.09375,302.3125 L 381.53125,303.15625 L 381.125,299.75 L 378.78125,297.625 L 377.28125,297.40625 L 373.46875,295.09375 L 374.09375,293.59375 L 374.09375,287 L 375.15625,285.53125 L 375.53125,280.96875 L 374.875,282.53125 L 373.5,282.34375 L 372.75,278.4375 L 371.75,275.3125 z ", "name" : "Rhône"}, "fr-70" : {"path": "M 423.5,175.5 L 419.8125,176.09375 L 419.21875,178.03125 L 417.25,179.40625 L 415.90625,177.84375 L 414.9375,178.4375 L 415.6875,179.59375 L 413.75,180.78125 L 414.34375,182.34375 L 412.1875,183.125 L 412.1875,185.65625 L 409.4375,185.65625 L 409.25,187.21875 L 406.53125,187.8125 L 406.71875,190.15625 L 408.46875,190.34375 L 407.5,191.5 L 406.90625,195.40625 L 405.15625,195.40625 L 402.21875,196.59375 L 399.09375,195.40625 L 396.375,196.59375 L 396.375,198.5625 L 398.5,198.9375 L 400.0625,202.0625 L 400.28125,203.625 L 397.75,206.5625 L 396.5625,206.9375 L 395.78125,207.90625 L 397.9375,208.90625 L 398.3125,212.03125 L 400.0625,212.21875 L 400.28125,216.125 L 401.0625,216.90625 L 401.15625,217.53125 L 402.65625,217.9375 L 404.34375,219.34375 L 406.875,219.34375 L 407.84375,218.375 L 409.5625,218.4375 L 411.34375,218.5 L 415.28125,215.28125 L 416.40625,215.28125 L 417.65625,214.3125 L 421.71875,214.4375 L 424.8125,211.90625 L 427.0625,211.5 L 427.90625,209.40625 L 429.71875,208.84375 L 431.53125,205.75 L 434.0625,203.78125 L 436.71875,203.375 L 438.6875,204.78125 L 442.34375,204.34375 L 442.34375,202.375 L 443.8125,201.53125 L 444.96875,199.9375 L 447.21875,199.9375 L 448.46875,198.625 L 448.9375,195.5 L 448.9375,193.5625 L 448.09375,190.59375 L 448.09375,188.09375 L 449.625,186.96875 L 451.4375,186.03125 L 451.25,185.65625 L 445,182.34375 L 443.25,180.375 L 441.5,179.21875 L 439.9375,180 L 439.71875,181.15625 L 438.15625,182.125 L 437.1875,182.125 L 434.25,178.8125 L 430.15625,178.8125 L 428.40625,180.1875 L 426.84375,180.375 L 424.3125,178.4375 L 424.5,176.28125 L 423.5,175.5 z ", "name" : "Haute Saône"}, "fr-71" : {"path": "M 351.46875,227.84375 L 351.46875,228.03125 L 348.53125,228.03125 L 346.15625,229.4375 L 344.75,231.40625 L 345.875,233.09375 L 346.84375,233.65625 L 346.15625,235.34375 L 345.15625,235.90625 L 344.0625,237.4375 L 345.3125,238.28125 L 345.15625,240.25 L 345.4375,242.34375 L 347.28125,243.46875 L 347.28125,244.3125 L 345.3125,245.4375 L 345.3125,246.6875 L 346.71875,247.9375 L 346.5625,248.65625 L 343.5,248.5 L 343.21875,249.5 L 341.8125,249.78125 L 340.40625,251.59375 L 338.59375,251.59375 L 337.1875,253 L 335.34375,253.28125 L 334.375,250.90625 L 333.125,250.75 L 330.0625,252.65625 L 333.6875,259.46875 L 333.6875,262.40625 L 334.65625,263.59375 L 337.96875,263.59375 L 339.125,265.15625 L 342.25,265.15625 L 343.625,267.09375 L 343.4375,274.71875 L 339.34375,277.84375 L 339.25,278.0625 L 339.53125,278.03125 L 340.125,278.21875 L 340.3125,281.34375 L 343.25,281.9375 L 343.625,283.3125 L 345.1875,283.3125 L 347.53125,281.9375 L 353.78125,282.90625 L 354.96875,284.09375 L 356.53125,282.53125 L 358.6875,282.53125 L 359.84375,276.28125 L 360.625,275.6875 L 362.5625,275.6875 L 364.9375,277.25 L 366.6875,275.6875 L 367.84375,277.25 L 369.625,275.5 L 371.75,275.3125 L 372.75,278.4375 L 373.5,282.34375 L 374.875,282.53125 L 376.0625,279.78125 L 379.75,265.34375 L 381.125,262.8125 L 383.28125,262.59375 L 385.4375,264.375 L 387,263.96875 L 388.9375,262.59375 L 390.90625,263 L 392.0625,265.53125 L 393.1875,265.96875 L 398.3125,265.34375 L 400.28125,263.78125 L 399.5,262.59375 L 397.15625,261.8125 L 396.9375,259.09375 L 398.90625,257.71875 L 399.6875,254.40625 L 397.9375,251.28125 L 396.75,249.71875 L 397.34375,249.125 L 397.34375,247.1875 L 395.78125,246.1875 L 395.375,244.625 L 399.875,244.0625 L 400.28125,242.5 L 398.90625,242.5 L 397.75,241.125 L 395.59375,241.125 L 393.8125,238.1875 L 392.25,238 L 392.4375,235.65625 L 390.75,235.46875 L 388.5,237 L 386.25,237.5625 L 384.71875,236.59375 L 382.75,236.46875 L 382.1875,237.28125 L 380.375,237.5625 L 376.3125,238.84375 L 370.40625,240.9375 L 368.15625,239.125 L 365.5,238.5625 L 365.375,236.1875 L 362.84375,234.34375 L 359.34375,231.6875 L 355.40625,231.8125 L 351.625,227.90625 L 351.46875,227.84375 z ", "name" : "Saône et Loire"}, "fr-72" : {"path": "M 202.4375,151.875 L 197.15625,152.0625 L 191.875,156.9375 L 189.125,156.78125 L 185.46875,157.96875 L 184.34375,159.90625 L 183.84375,164.09375 L 184.1875,166.65625 L 181.28125,169.09375 L 180.46875,170.6875 L 181.125,172.15625 L 180.3125,174.09375 L 180.625,174.90625 L 177.40625,175.21875 L 176.9375,176.65625 L 178.375,180.21875 L 178.21875,181.1875 L 176.9375,182.3125 L 174.1875,182.46875 L 173.84375,183.4375 L 174.5,184.40625 L 174.5,190.21875 L 173.875,191.6875 L 175.625,193.125 L 175.625,195.0625 L 178.53125,195.21875 L 186.125,197.46875 L 194.34375,202.46875 L 197,203.5 L 198.3125,200.875 L 202.21875,203.625 L 204.375,203.625 L 203.1875,199.71875 L 205.5625,201.28125 L 206.90625,199.3125 L 212.5625,197.75 L 211.59375,195.40625 L 212.96875,193.65625 L 215.90625,192.5 L 218.625,188.96875 L 218.625,185.25 L 220.59375,185.25 L 221.375,182.53125 L 221.5625,178.4375 L 219.625,176.65625 L 221.1875,173.9375 L 223.5,171 L 220.78125,169.0625 L 218.25,168.65625 L 215.5,164.5625 L 214.71875,164.5625 L 214.53125,166.5 L 214.34375,165.15625 L 210.25,165.15625 L 208.28125,162.21875 L 204.96875,161.03125 L 204,154 L 202.4375,151.875 z ", "name" : "Sarthe"}, "fr-73" : {"path": "M 417,293.8125 L 416.59375,299.53125 L 415.3125,300.59375 L 415.3125,306.96875 L 412.75,307.40625 L 412.34375,311.03125 L 410,312.71875 L 409.96875,312.6875 L 410.21875,313.78125 L 412.5625,316.3125 L 412.5625,318.03125 L 414.875,322.28125 L 419.78125,323.34375 L 421.46875,324.625 L 422.125,323.96875 L 421.25,322.28125 L 422.53125,319.5 L 424.03125,319.3125 L 426.5625,322.6875 L 427.625,321.21875 L 429.125,321.21875 L 433.15625,325.25 L 433.375,328 L 431.46875,329.0625 L 430.59375,333.09375 L 432.3125,334.8125 L 432.3125,336.5 L 431.875,338.21875 L 433.15625,336.9375 L 435.28125,338.21875 L 436.40625,339.75 L 439.9375,339.375 L 441.09375,340.53125 L 441.6875,343.28125 L 445.1875,342.875 L 445.59375,339.9375 L 447.34375,339.15625 L 451.09375,339.34375 L 451.03125,339.21875 L 456.875,336.875 L 459.03125,338.25 L 461.1875,338.25 L 461.375,335.90625 L 463.90625,334.53125 L 464.875,333.375 L 469.96875,331.40625 L 470.5625,328.09375 L 469.5625,326.53125 L 472.3125,321.84375 L 469.78125,320.875 L 469,318.125 L 463.71875,315 C 463.71875,315 464.03377,309.01275 463.53125,307.9375 C 463.51544,307.91055 463.48155,307.86019 463.46875,307.84375 C 463.46374,307.8383 463.44264,307.81713 463.4375,307.8125 C 463.43393,307.81272 463.4091,307.81243 463.40625,307.8125 C 463.4062,307.80552 463.40608,307.78312 463.40625,307.78125 C 463.40269,307.78137 463.37784,307.78121 463.375,307.78125 C 463.37209,307.7811 463.3467,307.78118 463.34375,307.78125 C 463.34022,307.78117 463.31534,307.78126 463.3125,307.78125 C 462.53125,307.97657 459.625,308.1875 459.625,308.1875 L 456.6875,304.84375 L 456.78125,301.625 L 455.46875,301.46875 L 453.96875,303.15625 L 452.0625,304.4375 L 452.5,303.375 L 450.5625,300.1875 L 447.375,300.1875 L 445.46875,297.84375 L 446.53125,296.5625 L 446.125,295.28125 L 444.625,294.875 L 442.71875,296.15625 L 441.21875,300.59375 L 439.3125,302.09375 L 438.46875,305.5 L 437.625,307.1875 L 434.21875,307.84375 L 433.15625,306.78125 L 430.1875,303.59375 L 428.46875,303.59375 L 427.84375,304.84375 L 424.4375,304.4375 L 422.96875,301.65625 L 419.125,301.03125 L 419.125,295.5 L 417,293.8125 z ", "name" : "Savoie"}, "fr-74" : {"path": "M 446.125,266.1875 L 441.65625,266.96875 L 437.34375,270.46875 L 436.1875,268.71875 L 434.03125,268.90625 L 432.0625,273.21875 L 432.28125,274.96875 L 434.40625,276.71875 L 430.5,279.28125 L 427.96875,281.625 L 423.65625,281.625 L 421.6875,283.1875 L 419.78125,283.8125 L 418.71875,285.75 L 416.8125,284.6875 L 416.375,290.1875 L 417.4375,292.125 L 417.5,294.21875 L 419.125,295.5 L 419.125,301.03125 L 422.96875,301.65625 L 424.4375,304.4375 L 427.84375,304.84375 L 428.46875,303.59375 L 430.1875,303.59375 L 433.15625,306.78125 L 434.21875,307.84375 L 437.625,307.1875 L 438.46875,305.5 L 439.3125,302.09375 L 441.21875,300.59375 L 442.71875,296.15625 L 444.625,294.875 L 446.125,295.28125 L 446.53125,296.5625 L 445.46875,297.84375 L 447.375,300.1875 L 450.5625,300.1875 L 452.5,303.375 L 452.0625,304.4375 L 453.96875,303.15625 L 455.46875,301.46875 L 456.78125,301.625 L 456.875,298.21875 L 463.53125,295.46875 L 464.3125,293.53125 L 463.90625,289.21875 L 459.625,284.75 L 458.25,285.53125 L 458.25,283.75 L 458.25,280.84375 L 454.53125,279.0625 L 454.34375,277.5 L 456.5,275.15625 L 456.5,272.4375 L 452.96875,268.71875 L 452.78125,266.1875 L 446.125,266.1875 z ", "name" : "Haute Savoie"}, "fr-75" : {"path": "M 280.28125,129.0625 L 277.75,129.09375 L 276.625,129.59375 L 276.15625,130.21875 L 275.125,130.28125 L 274.1875,131.34375 L 274.21875,131.9375 L 274.4375,132.625 L 276,133.0625 L 277.90625,134.03125 L 279.125,134.09375 L 279.9375,133.875 L 280.78125,133.28125 L 281.0625,133.53125 L 282.875,133.78125 L 283.1875,133.125 L 283.1875,132.46875 L 282.875,132.34375 L 281.625,132.40625 L 281.71875,132.71875 L 281.5,132.90625 L 281.09375,132.90625 L 281.25,132.5 L 281.3125,132.0625 L 281.25,132.0625 L 281.09375,130.3125 L 280.28125,129.0625 z ", "name" : "Paris"}, "fr-76" : {"path": "M 241.9375,61.5 L 240.65625,63.0625 L 232.28125,69.5 L 217.4375,73.21875 L 207.65625,76.71875 L 199.65625,81.03125 L 194.96875,88.0625 L 194,93.53125 L 197.90625,96.46875 L 203.5625,97.625 L 202.65625,97.78125 L 202.6875,97.9375 L 207.0625,97.375 L 209.3125,94.96875 L 211,94.5625 L 212.9375,97.9375 L 215.625,97.65625 L 216.75,99.59375 L 221.5,99.3125 L 226.28125,102.6875 L 223.1875,103.65625 L 225.4375,105.34375 L 226.84375,105.34375 L 228.09375,108.03125 L 230.34375,108.03125 L 231.03125,106.34375 L 229.34375,105.21875 L 234.125,103.8125 L 239.15625,103.25 L 240.4375,99.59375 L 242.8125,97.5 L 247.3125,97.375 L 252.5,100.03125 L 255.59375,100.375 L 256.125,98.75 L 257.5,96.1875 L 258.28125,94.84375 L 256.3125,94.84375 L 256.3125,91.5 L 255.15625,89.5625 L 255.9375,85.65625 L 256.71875,83.6875 L 255.15625,83.6875 L 255.9375,81.75 L 257.875,79.40625 L 255.9375,75.875 L 255.34375,72.375 L 246.75,63.96875 L 245.78125,62.03125 L 243.625,62.21875 L 241.9375,61.5 z ", "name" : "Seine Maritime"}, "fr-77" : {"path": "M 307.5,116.5 L 306.3125,117.09375 L 304.375,118.65625 L 302.4375,118.0625 L 299.09375,119.4375 L 296.375,117.875 L 295.1875,119.4375 L 293.4375,119.625 L 292.25,118.65625 L 290.3125,117.5 L 287.96875,119.0625 L 287.875,118.96875 L 287.03125,124.375 L 288.1875,131.25 L 288.1875,135.84375 L 286.65625,139.6875 L 287.03125,142.34375 L 285.3125,143.6875 L 286.25,148.875 L 285.5,150 L 284.9375,155.1875 L 286.25,156.90625 L 281.875,159.78125 L 281.875,163.71875 L 283.09375,165.53125 L 285.4375,166.71875 L 285.625,170.03125 L 282.5,172.1875 L 284.25,173.75 L 286.40625,172.375 L 291.6875,172.5625 L 293.625,172.1875 L 294.21875,170.625 L 296.375,170.8125 L 296.75,172.375 L 301.625,169.625 L 303.40625,167.5 L 305.75,164.75 L 304.1875,163 L 305.5625,160.0625 L 309.0625,158.3125 L 316.6875,158.6875 L 318.4375,157.34375 L 318.59375,157.5 L 319.03125,154.21875 L 319.8125,150.3125 L 321.1875,148.53125 L 321.375,146.1875 L 324.09375,145.03125 L 324.09375,143.46875 L 321.1875,143.65625 L 320.59375,142.28125 L 321.5625,140.53125 L 320.78125,137.59375 L 319.21875,136.625 L 319.625,133.90625 L 321.1875,132.90625 L 320.96875,131.75 L 321.53125,131.0625 L 318.25,130.375 L 317.25,128.03125 L 315.5,127.4375 L 310.25,122.375 L 309.65625,118.0625 L 307.5,116.5 z ", "name" : "Seine et Marne"}, "fr-78" : {"path": "M 251.5,118.15625 L 251.4375,118.28125 L 245.96875,119.84375 L 245.1875,120.8125 L 246.1875,122.375 L 246.1875,123.9375 L 247.9375,124.3125 L 246.9375,125.3125 L 247.03125,126.1875 L 247.15625,126.09375 L 249.09375,128.03125 L 249.6875,130.375 L 251.25,131.9375 L 250.46875,134.09375 L 250.46875,136.03125 L 251.84375,137.59375 L 250.46875,139.9375 L 251.84375,143.28125 L 254.5625,145.21875 L 254.96875,147.375 L 257.3125,147.75 L 257.875,152.0625 L 259.65625,154.21875 L 262.8125,154.8125 L 263.28125,151.71875 L 264.625,150.1875 L 263.5,148.46875 L 266.34375,148.46875 L 268.28125,145.8125 L 266.9375,143.5 L 267.3125,141.40625 L 270.1875,140.0625 L 270.5625,137.9375 L 272.46875,137.1875 L 274.21875,136.40625 L 274.5625,136.625 L 274.5625,136.40625 L 272.8125,134.4375 L 271.71875,131.46875 L 273.46875,127.65625 L 272.59375,124.78125 L 269.1875,122.71875 L 264.375,122.5 L 259.875,119.625 L 256.25,120.28125 L 251.5,118.15625 z ", "name" : "Yvelines"}, "fr-79" : {"path": "M 181.71875,229.40625 L 176.4375,229.59375 L 171.5625,230.5625 L 166.28125,230.96875 L 166.28125,233.6875 L 163.5625,235.46875 L 157.5,234.09375 L 153.40625,235.84375 L 155.34375,238.59375 L 155.34375,240.9375 L 160.03125,244.84375 L 158.875,247.375 L 162,250.875 L 160.625,252.65625 L 162.5625,255.5625 L 163.15625,261.03125 L 162,262.59375 L 163.375,264.9375 L 162,267.5 L 162.1875,269.0625 L 163.75,267.875 L 165.6875,269.84375 L 162.96875,271.59375 L 162,272.75 L 159.84375,273.34375 L 157.3125,274.53125 L 157.125,274.375 L 157.21875,277.25 L 159.34375,279.5625 L 159.34375,280.84375 L 162.53125,283.1875 L 166.5625,283.40625 L 169.3125,287 L 173.78125,286.59375 L 177.40625,289.125 L 180.15625,290.40625 L 180.59375,292.53125 L 182.125,294 L 183.96875,292.96875 L 183.5625,291.90625 L 185.03125,290.1875 L 185.03125,288.71875 L 187.59375,288.0625 L 191,286.375 L 194.59375,285.75 L 195.25,283.8125 L 192.25,282.96875 L 190.78125,280.625 L 191.84375,278.09375 L 193.125,276.59375 L 193.125,273.40625 L 191.84375,272.5625 L 190.15625,273.40625 L 190.15625,274.46875 L 189.28125,275.75 L 187.59375,273.84375 L 187.375,272.5625 L 188.03125,271.09375 L 186.53125,270.03125 L 186.53125,265.5625 L 185.6875,265.34375 L 185.6875,263.84375 L 186.96875,261.71875 L 187.15625,260.65625 L 188.03125,258.34375 L 187.375,256.84375 L 185.25,256 L 187.375,252.8125 L 188.03125,251.125 L 188.03125,250.0625 L 186.53125,248.34375 L 186.53125,247.71875 L 187.375,246.21875 L 186.75,245.15625 L 188.03125,243.6875 L 186.96875,241.34375 L 186.3125,237.9375 L 186.09375,235.8125 L 184.40625,236.03125 L 184.09375,231.21875 L 183.6875,231.9375 L 182.3125,230.78125 L 181.71875,229.40625 z ", "name" : "Deux Sèvres"}, "fr-80" : {"path": "M 249.78125,44.5 L 249.25,50.9375 L 253.5625,54.84375 L 253.5625,56.8125 L 248.28125,53.6875 L 241.9375,61.5 L 243.625,62.21875 L 245.78125,62.03125 L 246.75,63.96875 L 255.34375,72.375 L 255.9375,75.875 L 257.875,79.40625 L 257.21875,80.21875 L 259.6875,80.21875 L 260.09375,80.8125 L 260.09375,82.96875 L 261.28125,83.78125 L 263.84375,82.78125 L 267.4375,82.78125 L 269.21875,84.15625 L 275.9375,83.5625 L 280.90625,84.96875 L 283.6875,87.75 L 287.25,88.125 L 290.8125,89.3125 L 295.1875,85.15625 L 300.34375,83.78125 L 303.125,84.15625 L 307.25,83.75 L 306.875,81.59375 L 305.90625,77.625 L 305.5,75.25 L 307.28125,73.25 L 307.28125,70.6875 L 309.84375,67.90625 L 309.375,65.15625 L 307.875,64.75 L 306.125,63 L 301.4375,63 L 298.5,64.5625 L 298.5,63.1875 L 297.75,61.8125 L 295.96875,62.59375 L 293.8125,63.78125 L 295,62.03125 L 294.8125,60.46875 L 292.25,58.6875 L 292.25,60.65625 L 290.5,60.65625 L 286.40625,59.28125 L 284.65625,57.90625 L 282.875,59.09375 L 282.3125,60.65625 L 281.53125,60.84375 L 280.5625,59.875 L 280.5625,57.125 L 283.46875,55.1875 L 282.3125,53.21875 L 279.96875,54.21875 L 278.78125,53.21875 L 273.90625,53.8125 L 271.375,54.78125 L 268.8125,53.8125 L 268.8125,51.875 L 265.3125,50.3125 L 264.34375,47.96875 L 262.96875,48.53125 L 259.25,45.625 L 257.5,45.03125 L 256.125,46.78125 L 253.78125,47.375 L 252.8125,45.21875 L 249.78125,44.5 z ", "name" : "Somme"}, "fr-81" : {"path": "M 270.8125,396.875 L 267.4375,397.0625 L 265.15625,399.34375 L 264.4375,397.75 L 262.84375,398.65625 L 262.6875,398.28125 L 261.78125,399.1875 L 258.96875,400.25 L 256.65625,401.65625 L 250.65625,402.375 L 249.9375,405.375 L 252.25,405.375 L 249.9375,407.5 L 248.875,409.4375 L 245.53125,409.4375 L 247.28125,411.375 L 246.28125,413.03125 L 246.59375,413.15625 L 247.46875,415.78125 L 249.59375,418.28125 L 250.125,418.625 L 250.28125,421.09375 L 252.0625,423.9375 L 253.46875,425.53125 L 253.46875,427.46875 L 252.0625,428 L 253.125,429.59375 L 257.71875,431.53125 L 258.59375,432.78125 L 260.90625,435.59375 L 263.5625,436.3125 L 265.6875,435.9375 L 265.6875,438.4375 L 265.625,439.71875 L 266.78125,439.5625 L 266.5,440.9375 L 270.375,440.9375 L 273.96875,442.0625 L 274.25,438.46875 L 275.90625,438.46875 L 281.96875,439.5625 L 287.78125,439.5625 L 292.1875,438.1875 L 293.3125,434.59375 L 290.28125,431.8125 L 291.09375,429.0625 L 292.75,426.59375 L 295.5,428.5 L 302.6875,426.03125 L 303.8125,423.8125 L 300.15625,421.46875 L 298.5625,421.09375 L 297.5,422.5 L 295.375,423.03125 L 292,421.28125 L 288.46875,416.6875 L 288.46875,414.75 L 286.53125,411.1875 L 286.71875,409.59375 L 285.125,405.53125 L 282.125,404.125 L 280,400.40625 L 274.15625,399.34375 L 270.8125,396.875 z ", "name" : "Tarn"}, "fr-82" : {"path": "M 220.1875,384.6875 L 218.8125,389.15625 L 220.96875,391.5 L 220,395.21875 L 218.8125,396.59375 L 219.625,398.9375 L 215.90625,399.71875 L 212.96875,400.5 L 213.75,403.21875 L 212.28125,403.65625 L 213.15625,404.46875 L 216,404.46875 L 217.40625,403.78125 L 218.65625,404.46875 L 216.34375,405.53125 L 216.34375,407.3125 L 214.21875,408.90625 L 214.21875,411.1875 L 218.125,411.375 L 219.34375,412.625 L 219.34375,415.09375 L 220.78125,416.5 L 219.53125,418.4375 L 220.0625,419.5 L 222.53125,418.4375 L 227.65625,418.4375 L 229.09375,417.5625 L 230.84375,417.5625 L 232.78125,419.875 L 237.21875,418.625 L 238.4375,416.6875 L 236.6875,415.78125 L 237.90625,415.28125 L 238.28125,413.5 L 240.21875,413.6875 L 241.28125,414.90625 L 242.15625,413.5 L 245,412.4375 L 246.28125,413.03125 L 247.28125,411.375 L 245.53125,409.4375 L 248.875,409.4375 L 249.9375,407.5 L 252.25,405.375 L 249.9375,405.375 L 250.65625,402.375 L 256.65625,401.65625 L 258.96875,400.25 L 261.78125,399.1875 L 262.6875,398.28125 L 261.59375,395.46875 L 263.1875,392.28125 L 260.375,392.09375 L 260.03125,387.6875 L 255.78125,389.625 L 252.9375,388.9375 L 251.1875,391.0625 L 248.1875,390.6875 L 247.65625,394.21875 L 246.21875,394.21875 L 245.34375,392.28125 L 244.8125,391.40625 L 243.21875,391.5625 L 240.21875,394.75 L 236.5,394.59375 L 235.96875,392.28125 L 235.96875,390.53125 L 235.625,390.15625 L 234.375,391.5625 L 232.78125,391.5625 L 231.03125,389.625 L 229.4375,389.625 L 228.375,387.5 L 229.78125,385.90625 L 229.625,384.875 L 227.125,384.96875 L 227.4375,385.65625 L 223.125,386.4375 L 220.1875,384.6875 z ", "name" : "Tarn et Garonne"}, "fr-83" : {"path": "M 457.78125,413.1875 L 454.8125,413.3125 L 453.40625,414.75 L 448.09375,414.5625 L 443.5,417.90625 L 440.34375,415.78125 L 435.375,417.375 L 434.5,419.15625 L 430.96875,421.8125 L 424.59375,417.5625 L 419.4375,419.25 L 419.1875,420.625 L 419.28125,420.5625 L 422.46875,422.6875 L 418.21875,425.53125 L 416.46875,429.0625 L 418.59375,430.8125 L 418.40625,434.53125 L 421.78125,437.71875 L 420.875,438.4375 L 417,438.25 L 417,439.65625 L 418.75,440.53125 L 418.75,441.0625 L 417.15625,442.5 L 418.0625,443.5625 L 419.46875,443.5625 L 420.875,444.96875 L 421.0625,446.03125 L 419.28125,447.09375 L 417.875,448.6875 L 417.6875,452.5625 L 418.21875,453.28125 L 421.71875,454.84375 L 422.6875,458.75 L 424.84375,459.15625 L 426.8125,457.78125 L 430.3125,455.625 L 436.375,456.21875 L 436.1875,457.78125 L 434.21875,458.75 L 438.90625,458.96875 L 437.75,457.78125 L 437.34375,455.25 L 439.875,453.5 L 442.8125,454.46875 L 444,454.84375 L 444.96875,456.03125 L 446.34375,455.0625 L 446.71875,452.5 L 448.28125,451.15625 L 452.375,451.15625 L 453.5625,449.375 L 456.28125,450.15625 L 459.40625,448.8125 L 459.40625,443.71875 L 455.3125,443.90625 L 458.4375,441.96875 L 460,439.8125 L 460.40625,436.6875 L 466.0625,435.90625 L 469.21875,432.375 L 467.03125,430.125 L 467.03125,428.875 L 465.96875,427.8125 L 467.375,426.59375 L 467.03125,424.625 L 464.71875,423.75 L 463.5,423.75 L 461.375,421.625 L 461,417.90625 L 458.71875,416.84375 L 456.40625,416.6875 L 455.53125,414.5625 L 457.78125,413.1875 z ", "name" : "Var"}, "fr-84" : {"path": "M 387,381.34375 L 384.25,381.5625 L 382.125,384.875 L 382.6875,388.375 L 386,388.78125 L 385.4375,390.34375 L 382.875,390.53125 L 379.96875,393.46875 L 379.1875,392.5 L 379.75,388.59375 L 378.59375,387.21875 L 373.3125,388 L 372.28125,390.09375 L 372.84375,390.40625 L 376.15625,395.90625 L 376.15625,400.34375 L 381.96875,406.125 L 381.96875,408.625 L 379.71875,409.90625 L 379.875,409.96875 L 386.9375,412.96875 L 389.9375,416.3125 L 391.375,418.28125 L 395.25,420.03125 L 399.84375,419.875 L 407.4375,423.03125 L 411.6875,423.5625 L 417,422.34375 L 419.1875,420.625 L 419.46875,419.15625 L 415.40625,414.5625 L 410.96875,414.5625 L 410.96875,412.96875 L 412.5625,411.1875 L 412.5625,409.25 L 409.03125,407.5 L 408.6875,404.65625 L 410.625,403.78125 L 410.625,401.3125 L 408.5,400.9375 L 408.34375,398.28125 L 408.3125,398.09375 L 406.53125,397.96875 L 403.59375,395.8125 L 402.8125,393.28125 L 397.34375,392.875 L 393.25,392.5 L 392.84375,390.15625 L 394.21875,387.21875 L 391.6875,389.375 L 387.78125,388.96875 L 387,387.59375 L 389.71875,383.90625 L 387,381.34375 z ", "name" : "Vaucluse"}, "fr-85" : {"path": "M 138.53125,229.5625 L 137.40625,231.65625 L 134.1875,231.65625 L 135.46875,232.96875 L 134.5,236.1875 L 131.59375,237.15625 L 130.46875,236.34375 L 130.96875,233.125 L 130.15625,231.34375 L 128.375,231.34375 L 127.09375,232.78125 L 127.71875,237.3125 L 129.1875,239.40625 L 127.71875,241.03125 L 125,240.53125 L 120.96875,239.5625 L 119.84375,236.5 L 117.25,236.1875 L 113.875,234.71875 L 113.0625,232.78125 L 109.375,230.375 L 103.5625,237.875 L 103.375,242.5625 L 109.40625,248.40625 L 109.21875,250.15625 L 110.96875,250.15625 L 114.6875,261.3125 L 118.59375,263.25 L 122.5,267.15625 L 127,267.15625 L 128.75,271.0625 L 133.0625,271.0625 L 135,274 L 139.3125,276.15625 L 139.5,273.40625 L 140.59375,274.4375 L 146.5625,270.8125 L 149.3125,270.625 L 150.46875,273.75 L 154.1875,272.1875 L 157.3125,274.53125 L 159.84375,273.34375 L 162,272.75 L 162.96875,271.59375 L 165.6875,269.84375 L 163.75,267.875 L 162.1875,269.0625 L 162,267.5 L 163.375,264.9375 L 162,262.59375 L 163.15625,261.03125 L 162.5625,255.5625 L 160.625,252.65625 L 162,250.875 L 158.875,247.375 L 160.03125,244.84375 L 155.34375,240.9375 L 155.34375,238.59375 L 153.40625,235.84375 L 153.78125,235.6875 L 151.125,233.4375 L 146.125,233.4375 L 144.5,232.46875 L 142.25,232.15625 L 139.65625,229.71875 L 138.53125,229.5625 z ", "name" : "Vendée"}, "fr-86" : {"path": "M 188.75,225.6875 L 185.03125,229.59375 L 184.09375,231.21875 L 184.40625,236.03125 L 186.09375,235.8125 L 186.3125,237.9375 L 186.96875,241.34375 L 188.03125,243.6875 L 186.75,245.15625 L 187.375,246.21875 L 186.53125,247.71875 L 186.53125,248.34375 L 188.03125,250.0625 L 188.03125,251.125 L 187.375,252.8125 L 185.25,256 L 187.375,256.84375 L 188.03125,258.34375 L 187.15625,260.65625 L 186.96875,261.71875 L 185.6875,263.84375 L 185.6875,265.34375 L 186.53125,265.5625 L 186.53125,270.03125 L 188.03125,271.09375 L 187.375,272.5625 L 187.59375,273.84375 L 189.28125,275.75 L 190.15625,274.46875 L 190.15625,273.40625 L 191.84375,272.5625 L 193.125,273.40625 L 193.125,276.59375 L 191.84375,278.09375 L 190.78125,280.625 L 192.25,282.96875 L 195.25,283.8125 L 194.59375,285.75 L 191.8125,286.21875 L 194.375,289.34375 L 197.78125,289.125 L 200.75,288.0625 L 203.75,289.78125 L 204.8125,288.9375 L 204.59375,286.15625 L 206.28125,284.875 L 207.78125,287.4375 L 209.03125,288.71875 L 212.65625,287.21875 L 214.15625,285.53125 L 217.53125,285.53125 L 219.28125,286.40625 L 219.40625,282.71875 L 218.0625,281.15625 L 219.625,280 L 222.15625,277.0625 L 226.4375,276.875 L 226.4375,274.53125 L 228.59375,272.75 L 233.875,271.78125 L 234.25,268.84375 L 232.125,267.6875 L 230.9375,263.59375 L 227.8125,263.1875 L 225.875,261.25 L 222.15625,258.3125 L 222.9375,255.96875 L 222.9375,252.25 L 219.40625,248.75 L 219.03125,246 L 215.6875,242.5 L 214.53125,237.8125 L 213.15625,237.21875 L 211.59375,235.0625 L 210.03125,236.03125 L 210.4375,238.1875 L 205.34375,239.375 L 199.5,239.375 L 199.6875,237.03125 L 199.6875,233.3125 L 195,231.9375 L 195,229.59375 L 191.28125,228.8125 L 190.5,225.6875 L 188.75,225.6875 z ", "name" : "Vienne"}, "fr-87" : {"path": "M 239.53125,270.8125 L 237.78125,272.5625 L 232.875,272.1875 L 232.3125,272.0625 L 228.59375,272.75 L 226.4375,274.53125 L 226.4375,276.875 L 222.15625,277.0625 L 219.625,280 L 218.0625,281.15625 L 219.40625,282.71875 L 219.21875,288 L 218.25,289.75 L 219.8125,291.5 L 222.53125,291.71875 L 223.125,294.4375 L 223.3125,296.1875 L 219.8125,296.96875 L 218.0625,297.5625 L 218.4375,302.4375 L 216.09375,304 L 214.125,304.59375 L 213.15625,307.34375 L 211.59375,307.53125 L 210.9375,310.5 L 215.5,310.65625 L 216.5,312.59375 L 215.6875,314.75 L 217.46875,317.09375 L 218.8125,316.71875 L 220.1875,314.75 L 226.4375,315.34375 L 227.4375,319.25 L 231.71875,319.84375 L 232.6875,321.1875 L 229.75,322.5625 L 231.125,323.53125 L 235.25,324.125 L 235.5625,324.90625 L 236.65625,322.6875 L 239,323.5625 L 241.5625,320.375 L 243.03125,320.5625 L 244.3125,318.4375 L 248.125,318.875 L 249.625,317.375 L 251.53125,317.375 L 253.03125,314.625 L 255.34375,314.40625 L 256.84375,311.875 L 258.96875,312.5 L 260.46875,312.5 L 261.46875,310.78125 L 260.46875,310.15625 L 260.03125,307.625 L 261.53125,307.625 L 261.53125,306.5625 L 258.96875,304.84375 L 256.21875,303.59375 L 256.625,301.03125 L 255.78125,301.03125 L 254.71875,302.53125 L 251.3125,302.71875 L 249.40625,302.53125 L 249.40625,300.59375 L 251.75,298.6875 L 250.25,296.78125 L 246.65625,297.84375 L 247.28125,289.78125 L 245.59375,288.0625 L 243.875,283.8125 L 241.34375,283.1875 L 240.90625,280.84375 L 243.25,276.1875 L 243.1875,273.3125 L 242.65625,273.9375 L 239.53125,270.8125 z ", "name" : "Haute Vienne"}, "fr-88" : {"path": "M 459,145.9375 L 457,146.375 L 453.9375,147.53125 L 452.40625,149.4375 L 450.6875,150.59375 L 447.40625,152.125 L 446.46875,151.9375 L 444.15625,151.34375 L 441.875,151.15625 L 441.09375,148.65625 L 439.5625,149.25 L 439.375,151.9375 L 438.21875,150.78125 L 436.125,152.3125 L 434.03125,153.0625 L 431.53125,152.875 L 429.8125,153.46875 L 427.90625,152.3125 L 426.75,153.25 L 423.875,153.25 L 422.53125,155.75 L 416.21875,156.125 L 414.875,154.40625 L 412.78125,154.03125 L 412.96875,153.0625 L 414.3125,152.125 L 413.15625,151.71875 L 412.96875,148.65625 L 410.09375,148.46875 L 408.40625,149 L 407.21875,150.59375 L 404.15625,151.53125 L 404.15625,150.40625 L 403.21875,150.40625 L 403.21875,151.71875 L 399.375,152.5 L 399.375,154.21875 L 395.9375,154.65625 L 394.625,155.96875 L 395.96875,157.90625 L 399.09375,158.125 L 401.84375,161.8125 L 404.1875,161.8125 L 404.75,164.375 L 407.3125,164.75 L 407.875,166.5 L 406.125,167.6875 L 404.96875,172.96875 L 410.4375,175.6875 L 410.4375,179.78125 L 412.5625,179 L 414.34375,180.40625 L 415.6875,179.59375 L 414.9375,178.4375 L 415.90625,177.84375 L 417.25,179.40625 L 419.21875,178.03125 L 419.8125,176.09375 L 423.5,175.5 L 424.5,176.28125 L 424.3125,178.4375 L 426.84375,180.375 L 428.40625,180.1875 L 430.15625,178.8125 L 434.25,178.8125 L 437.1875,182.125 L 438.15625,182.125 L 439.71875,181.15625 L 439.9375,180 L 441.5,179.21875 L 443.25,180.375 L 445,182.34375 L 451.15625,185.59375 L 453.59375,183.5 L 453.78125,175.875 L 457.125,172.96875 L 459.0625,168.46875 L 458.46875,165.53125 L 460.8125,160.84375 L 462.96875,155.96875 L 459.25,155 L 458.46875,149.71875 L 459.25,146.1875 L 459,145.9375 z ", "name" : "Vosges"}, "fr-89" : {"path": "M 318.4375,157.34375 L 316.6875,158.6875 L 309.0625,158.3125 L 305.5625,160.0625 L 304.1875,163 L 305.75,164.75 L 303.40625,167.5 L 301.625,169.625 L 305.15625,172.96875 L 306.125,176.09375 L 308.6875,178.8125 L 308.6875,182.34375 L 303.59375,186.625 L 305.34375,188.59375 L 304.96875,191.5 L 302.21875,193.46875 L 298.3125,193.46875 L 298.90625,195.625 L 301.4375,199.125 L 302.03125,202.25 L 302.625,204.40625 L 301.46875,204.75 L 303.9375,205.3125 L 305.78125,205.3125 L 306.75,203.78125 L 308,203.78125 L 309.40625,205.03125 L 309.125,206.59375 L 310.40625,207.4375 L 312.21875,207.4375 L 314.75,209.125 L 315.875,208.5625 L 317,209.53125 L 318.125,209.25 L 320.0625,208 L 321.90625,208.5625 L 323.15625,208.28125 L 323.15625,204.78125 L 323.84375,204.90625 L 324.28125,206.71875 L 326.53125,208.125 L 326.53125,210.25 L 329.75,210.375 L 333.96875,214.3125 L 336.625,214.4375 L 336.46875,213.1875 L 337.59375,211.5 L 338.59375,212.75 L 337.75,214.15625 L 338.15625,215.4375 L 339.6875,214.4375 L 341.53125,214.4375 L 341.375,217.25 L 343.0625,218.375 L 344.34375,217.8125 L 347.46875,215.6875 L 347.28125,215.28125 L 345.4375,214.15625 L 345.3125,212.1875 L 347.28125,211.21875 L 348.125,210.09375 L 347.5625,209.125 L 347.5625,206.875 L 349.09375,204.625 L 351.34375,199.84375 L 351.75,197.75 L 353.15625,197.1875 L 353.3125,196.78125 L 352.59375,196.21875 L 352.59375,194.53125 L 354.84375,192.84375 L 355.40625,190.03125 L 354.4375,188.375 L 352.875,188.375 L 352.46875,187.9375 L 352.46875,185.5625 L 354.4375,184.15625 L 354.28125,182.75 L 354,181.34375 L 353,183.5 L 351.625,183.3125 L 350.46875,181.15625 L 346.5625,183.125 L 338.75,182.71875 L 337.78125,180.5625 L 335.625,177.65625 L 335.25,174.125 L 332.125,170.40625 L 330.15625,171.78125 L 326.625,169.0625 L 327.21875,163.78125 L 322.15625,158.5 L 319.8125,158.5 L 318.4375,157.34375 z ", "name" : "Yonne"}, "fr-90" : {"path": "M 451.4375,186.03125 L 449.625,186.96875 L 448.09375,188.09375 L 448.09375,190.59375 L 448.9375,193.5625 L 448.9375,195.5 L 448.46875,198.625 L 447.40625,199.71875 L 459.4375,205.15625 L 460.1875,204.28125 L 462.78125,203.875 L 461.8125,199.71875 L 461.21875,197.5625 L 458.46875,197.96875 L 458.09375,195.625 L 459.0625,193.84375 L 459.25,191.5 L 458.6875,190.15625 L 455.15625,187.40625 L 452.03125,187.21875 L 451.4375,186.03125 z ", "name" : "Territoire de Belfort"}, "fr-91" : {"path": "M 274.21875,136.40625 L 272.46875,137.1875 L 270.5625,137.9375 L 270.1875,140.0625 L 267.3125,141.40625 L 266.9375,143.5 L 268.28125,145.8125 L 266.34375,148.46875 L 263.5,148.46875 L 264.625,150.1875 L 263.28125,151.71875 L 262.8125,154.8125 L 263.75,155 L 264.125,157.53125 L 264.53125,158.125 L 264.9375,163.375 L 271.1875,162.8125 L 273.71875,160.46875 L 275.875,162.21875 L 281.125,162.59375 L 281.875,163.71875 L 281.875,159.78125 L 286.25,156.90625 L 284.9375,155.1875 L 285.5,150 L 286.25,148.875 L 285.3125,143.6875 L 287.03125,142.34375 L 286.6875,139.90625 L 284.53125,138.90625 L 280.90625,138.90625 L 278.8125,137.75 L 277.28125,138.53125 L 274.21875,136.40625 z ", "name" : "Essonne"}, "fr-92" : {"path": "M 277.3125,125.78125 L 273.8125,127.65625 L 273.4375,127.71875 L 271.71875,131.46875 L 272.8125,134.4375 L 274.5625,136.40625 L 274.5625,136.625 L 277.28125,138.53125 L 277.9375,138.1875 L 277.4375,137.25 L 277.9375,135.78125 L 277.625,135.25 L 277.96875,134.03125 L 277.90625,134.03125 L 276,133.0625 L 274.4375,132.625 L 274.21875,131.9375 L 274.1875,131.34375 L 275.125,130.28125 L 276.15625,130.21875 L 276.625,129.59375 L 277.75,129.09375 L 277.375,128.1875 L 277.90625,128.09375 L 278.3125,127.21875 L 277.90625,126.59375 L 277.46875,126.5 L 277.3125,125.78125 z ", "name" : "Hauts de Seine"}, "fr-93" : {"path": "M 287.28125,122.8125 L 285.4375,124.125 L 282.5625,125.4375 L 277.3125,125.78125 L 277.46875,126.5 L 277.90625,126.59375 L 278.3125,127.21875 L 277.90625,128.09375 L 277.375,128.1875 L 277.75,129.09375 L 280.28125,129.0625 L 281.09375,130.3125 L 281.25,132.0625 L 282.125,131.9375 L 282.9375,131.28125 L 284.15625,131.34375 L 285.6875,132.21875 L 286.5625,133.1875 L 286.96875,133.375 L 287.21875,133.84375 L 288.1875,134.09375 L 288.1875,131.25 L 287.03125,124.375 L 287.28125,122.8125 z ", "name" : "Seine Saint-Denis"}, "fr-94" : {"path": "M 282.9375,131.28125 L 282.125,131.9375 L 281.3125,132.0625 L 281.25,132.5 L 281.09375,132.90625 L 281.5,132.90625 L 281.71875,132.71875 L 281.625,132.40625 L 282.875,132.34375 L 283.1875,132.46875 L 283.1875,133.125 L 282.875,133.78125 L 281.0625,133.53125 L 280.78125,133.28125 L 279.9375,133.875 L 279.125,134.09375 L 277.96875,134.03125 L 277.625,135.25 L 277.9375,135.78125 L 277.4375,137.25 L 277.9375,138.1875 L 278.8125,137.75 L 280.90625,138.90625 L 284.53125,138.90625 L 286.6875,139.90625 L 286.65625,139.6875 L 288.1875,135.84375 L 288.1875,134.09375 L 287.21875,133.84375 L 286.96875,133.375 L 286.5625,133.1875 L 285.6875,132.21875 L 284.15625,131.34375 L 282.9375,131.28125 z ", "name" : "Val de Marne"}, "fr-95" : {"path": "M 255.5625,109.6875 L 254,111.625 L 252.8125,115.9375 L 251.5,118.15625 L 256.25,120.28125 L 259.875,119.625 L 264.375,122.5 L 269.1875,122.71875 L 272.59375,124.78125 L 273.46875,127.65625 L 273.4375,127.71875 L 273.8125,127.65625 L 277.3125,125.78125 L 282.5625,125.4375 L 285.4375,124.125 L 287.28125,122.8125 L 287.875,118.96875 L 286.59375,117.6875 L 282.3125,115.15625 L 278.1875,113 L 276.0625,113.96875 L 273.71875,114.5625 L 272.15625,113.375 L 269.03125,111.4375 L 266.5,113.375 L 262.78125,113.78125 L 257.5,113.375 L 256.3125,111.4375 L 255.5625,109.6875 z ", "name" : "Val d'Oise"}}});
\ No newline at end of file
--- /dev/null
+/** Add Germany Map Data Points */
+jQuery.fn.vectorMap('addMap', 'germany_en', {"width":592,"height":801,"paths":{"th":{"path":"m312.19,352.19c-2.73,0.22 -2.22,4.11 -3.64,5.97 -1.01,2.7 -4.71,2.26 -7.13,2.91 -2.52,0.84 -2.65,-2.93 -5,-3.11 -2.02,-1.67 -5.36,0.2 -4.98,2.55 -0.62,4.82 -6.22,6.91 -9.72,9.65 -2.98,3.28 -7.8,2.07 -11.1,4.73 -2.55,1.59 -5.81,3.14 -7.87,5.03 0.64,3.74 1.96,8.43 6.44,8.84 3.41,0.33 2.07,4.91 5.71,5.17 2.12,1.11 4.61,1.57 6.04,3.67 2.61,-0.18 1.95,2.83 0.13,3.41 -0.75,1.55 1.21,2.98 -0.06,4.88 -2.65,1.33 -1.59,-4.91 -4.58,-2.96 -2.15,1.14 2.24,4.28 1.18,6.62 -0.73,2.87 3.35,2.38 3.93,4.97 0.22,2.4 -1.82,4.2 -4.4,4.04 -1.89,0.05 -3.04,-2.14 -5.19,-1.69 -2.29,-1.13 -3.6,1.4 -2.29,3.19 0.92,3.27 2.06,6.86 1.64,10.24 -1.04,2.07 -1.35,6.09 -4.56,5.07 -2.5,-0.54 -3.05,2.78 -2.17,4.43 0.33,2.11 -1.94,1.58 -0.64,3.71 0.2,3.37 -2.96,5.74 -4.05,8.57 -1.46,3 3.1,3.73 4.61,2.61 -1.8,-1.67 -0.95,-4.04 1.83,-4.18 2.21,-0.46 5.52,-0.43 5.9,2.47 2.29,2.61 -2.68,2.96 -1.96,5.59 0.5,1.86 -0.79,8.31 0.95,7 1.72,-3.38 5.8,-2.18 8.88,-2.88 2.69,0.85 3.11,5.24 6.43,5.5 3.89,0.66 4.77,4.88 6.09,7.93 -0.55,3.14 2.45,3.82 4.54,1.98 0.31,5.02 5.89,6.45 10.06,7.19 -0.2,3.63 -1.27,7.43 0.53,10.84 2.35,0.1 5.18,2.71 7.07,1.85 0.03,-1.3 -1.32,-4.82 1.27,-4.26 2.07,-0.06 5.3,2.5 6.66,0.25 0.29,-2.71 -3.43,-1.58 -4.54,-3.52 -1.94,-1.64 -5.47,-2.54 -4.67,-5.79 -0.91,-3.55 3.89,-3.37 6.02,-4.77 2.87,-1.54 6.27,-0.65 9.38,-0.79 1.61,1.84 2.4,4.9 5.49,4.49 2.33,1.02 3.21,-1.38 4.71,-2.1 2.52,-0.39 4.79,2.85 4.64,5.17 -2.32,0.34 -2,2.87 -0.04,3.79 1.25,1.09 4.62,-1.62 5.78,-2.97 1.07,-2.95 1.98,-5.92 0.84,-9.01 0.33,-2.69 -1.49,-4.1 -2.06,-6.05 -0.35,-1.26 0.15,-3.52 1.89,-2.72 2.51,-0.54 3.16,-3.11 5.03,-4.31 2.41,-0.31 6.41,-0.25 6.75,2.81 -1.09,1.47 -1.71,2.75 -1.31,4.94 2.04,1.91 4.67,0.65 4.88,4.5 0.54,1.96 3.79,3.19 4.05,0.56 1.06,-1.74 3.34,-0.66 4.25,0.63 6.13,-1.07 12.67,-0.94 18.25,-3.97 -1.68,-0.65 -2.19,-2.46 -0.38,-3.31 1.4,-0.73 5.24,-2.7 2.32,-4.13 -1.1,-2.24 -4.24,-0.26 -4.55,-3.08 -1.3,-2.44 2.29,-4.28 3.11,-6.33 2.98,-0.71 2.97,-4.68 5.91,-5.31 1.95,1.54 1.58,4.54 1.16,6.72 1.66,-0.64 6.6,0.71 6.33,-0.74 -3.05,-0.17 -0.61,-3 1.2,-3.1 2.57,-1.22 5.33,-2.23 7.87,-3.14 1.72,-1.51 4.46,-4.54 0.25,-4.48 -1.74,-1.64 -3.31,-4.12 -3.69,-6.5 0.38,-2.82 0.28,-5.87 1.72,-8.41 0.89,2.58 5.82,0.77 5.81,-1.09 0.71,-1.83 4.18,-2.99 5.41,-0.97 2.56,-0.68 0.59,-4.69 3.44,-5.44 3.25,-1.87 7.85,-0.32 10.53,-2.97 -2.57,-1.55 -0.79,-6.34 -4.47,-6.16 -2.74,-0.84 -6.28,-2.6 -5.42,-6.03 0.8,-2.88 -3.5,-2.46 -5.15,-3.47 -2.87,-0.81 -6.3,-2.89 -8.61,0.02 -2.54,2.1 0.01,3.58 1.21,5.21 -0.17,3.21 -2.39,6.03 -3.68,8.9 -1.08,1.71 -2.42,1.35 -2.66,-0.64 -2.24,-4.02 -1.09,1.94 -3.66,-0.66 -2.71,-1.39 -5.95,-1.32 -8.59,0.19 -0.02,-4.6 -5.04,-6.77 -8.31,-9 -2.72,-0.06 -5.6,1.79 -8.33,0.1 -2.65,-0.52 -5.05,-1.27 -4.7,-4.45 -2.02,-1.11 -5.86,-2.21 -7.53,-1.16 -1.29,1.98 -3.84,1.06 -5.84,1.31 -1.81,-1.01 -2.04,-3.39 -2.5,-5.41 3.14,0.3 2.23,-3.59 0.51,-4.83 -1.37,-2.03 -4.15,0.89 -5.53,-1.6 -1.69,-0.96 1.02,-5.32 2.36,-2.94 1.62,-1.63 2.76,-3.73 4,-5.66 -0.78,-1.58 -4.12,-2.02 -3.47,-4.09 -2.15,-0.17 -2.01,-2.77 -1.75,-4.31 -4.91,-2.77 -10.54,-0.91 -15.84,-1.69 -2.69,-0.42 -5.41,-2.8 -8.03,-1.28 -1.99,0.45 -4.28,-1.52 -3.68,-3.5 0.86,-2.86 -0.76,-4.88 -2.35,-7.1 -1.55,-2.64 -4.98,-6.28 -2.16,-9.19 -2.47,-3.43 -7.17,-3.03 -10.89,-3.21 -0.41,0.09 -0.82,0.18 -1.23,0.27z m95.09,106.63c0.36,0.47 0.77,-0.65 0,0z","name":"Thüringen"},"sh":{"path":"m173.41,0.78c-1.96,2.02 -2.32,5.26 -3.72,7.72 0.61,-2.46 2.87,-3.44 4.94,-4.31 1.37,-2.31 1.87,-2.9 -1.22,-3.41z m-4.63,9.69c-1.37,3.14 -2.78,7.11 -2.63,10.16 1.42,-1.81 3.12,-2.33 4.66,-0.67 1.41,1.35 2.9,1.87 4.52,0.27 2.61,-1.53 -0.74,-0.41 -1.92,-1.16 -2.06,-1.81 -4.59,-3.55 -3.89,-6.71 -0.29,-0.68 0.25,-4.89 -0.73,-1.88z m16.78,8.5c-1.27,2.96 0.71,4.89 2.59,6.89 3.39,3 2.55,7.98 4.79,11.67 0.62,3.55 5.38,3.23 6.46,6.57 3.09,5.18 8.01,9.55 9.53,15.49 -0.32,3.65 -4.55,4.93 -6.72,7.41 -1.75,1.07 -3.73,2 -5.62,0.78 -2.44,0.59 -7.26,-0.45 -7.37,2.95 0.9,2.44 -1.97,3.88 -3.95,4.18 -1.94,-2.13 -2.52,-1.01 -2.77,1.45 -0.87,2.9 3.21,3.7 4.93,4.64 1.92,-3.3 6.38,-1.94 9.56,-2.06 2.21,2.21 1.18,5.9 0.57,8.61 -1.14,2.05 -2.44,4.23 -0.74,6.43 0.5,2.36 2.45,2.12 4.01,1.08 3.24,-0.45 3.19,4.26 4.78,6.16 2.07,2.16 -0.11,6.53 -3.11,5.16 -1.14,-1.75 -5.79,-1.46 -5.26,0.73 2.63,2.93 2.85,7.1 5.04,10.2 1.56,1.12 3.1,3.53 5.09,1.5 1.43,0.34 0.36,3.67 3.4,2.47 5.03,0.4 10.67,-0.76 14.8,2.92 4.21,3.5 4.64,9.55 8.23,13.45 3.79,1.81 5.25,6.01 5.59,9.84 1.82,3.22 5.7,4.78 8.7,6.74 2.98,1.76 2.45,-2.04 3.3,-3.87 0.32,-3.07 2.7,-3.68 2.95,-0.51 1.97,4.21 4.12,0.09 5.74,-1.98 1.13,-1.81 1.09,-3.61 3.84,-2.85 2.75,1.63 4.73,-1.94 6.94,-3.16 -0.04,-2.48 1.02,-3.47 3.73,-4.47 1.51,-1.18 4,-1.93 4.95,0.16 -0.92,3.02 -1.41,6.74 1.26,9.04 1.1,1.47 -0.59,3.76 -1.58,5.02 -3.72,1.55 -2.94,7.3 0.6,8.57 3.05,0.71 1.81,2.28 4.18,4.34 1.9,2.3 3.7,4.33 6.71,5.17 4.24,1.47 7.8,5.01 12.4,5.13 1.57,-2.96 0.71,-7.47 3.24,-9.94 1.76,-0.99 3.85,1.15 5.23,-1.34 4.78,-3.66 7.65,-9.11 11.5,-13.72 0.07,-2.89 2.79,-4.69 1.09,-7.69 -1.21,-2.36 -3.12,-1.39 -5.13,-1.38 -2.37,-1.11 -4.33,-3.37 -5.88,-5.25 0.57,-2.78 0.94,-5.55 -0.72,-8.01 -1.68,-4.33 3.4,-6.71 6.26,-8.75 2.76,0.39 4.62,-1.55 2.8,-4.28 -2.57,0.04 -0.18,-3.45 -2.47,-3.84 -2.6,1.03 -5.44,-0.16 -6.16,-2.94 -1.95,-2.52 -0.1,-5.31 2.05,-6.91 1.09,-2.74 3.32,0.44 5.2,-0.9 2.94,-4.13 6.93,-7.19 11.06,-10.05 2.63,-1.56 0.21,-5.06 0.5,-7.57 -0.21,-3.63 -1.2,-7.39 -0.01,-10.84 0.18,-2.96 -5.24,-0.47 -7.49,-1.07 -5.13,1.62 -7.3,9.04 -13.4,8.34 -3.13,0.69 -4.64,-2.86 -6.1,-4.84 -4.97,-2.87 -10.19,-5.54 -15.47,-7.76 -2.99,-1.52 -6.08,0.55 -8.5,2.13 -0.97,2.39 -2.38,4.59 -2.88,7.13 -1.56,-1.44 -3.01,-3.67 -0.84,-5.3 1.62,-1.77 -1.68,-4.84 0.9,-6.58 0.02,-1.27 -2.39,-3.21 -3.97,-2.94 -4.31,0.8 -8.65,1.68 -12.59,3.47 -2.43,1.23 -4.15,-0.86 -4.81,-2.94 1.24,-1.68 2.97,0.32 4.34,-1.22 3.92,-1.6 8.22,-4.79 7.48,-9.56 -0.08,-4.17 0.91,-8.43 -1.14,-12.32 -1.21,-3.12 -1.73,-8.59 -5.28,-9.18 -0.59,1.71 -1.3,5.52 -3.94,3.91 -3.94,-2.44 -5.62,-7.87 -10.62,-8.75 -2.4,-0.95 -5.92,-1.49 -2.94,-4.34 -2.83,-1.32 -4.46,2.91 -6.75,4.06 -1.81,0.77 -3.7,1.77 -5.55,1.1 -2.17,-0.1 -2.78,3.34 -5.32,2.53 -2.44,-0.17 -5.39,0.15 -5.47,-3.04 1.26,-2.25 -1.79,-2.35 -3.37,-3.29 -2.69,-1.82 -6.3,0.87 -8.88,-1.52 -3,-2.97 -8.01,-2.63 -12.09,-2.77 -2.73,-0.05 -5.94,1.35 -8.19,-0.63 -2.53,-0.79 -2.34,1.14 -3.28,2.91z M165.38,30.69c0.26,2.81 0.4,-8.09 0.17,-2.47 -0.06,0.82 -0.12,1.65 -0.17,2.47z m13.5,1.44c-2.38,0.11 -5.93,-0.19 -6.48,2.95 -0.84,2.31 2.84,2.19 4.01,3.33 2.08,0.12 5.59,1.6 6.02,-1.46 1.83,-2.49 -0.07,-5.86 -3.55,-4.82z m-11.97,6.41c-1.92,2.44 0.88,5.14 2.25,6.97 3.61,0.13 0.82,-1.45 -0.03,-3.16 -0.91,-0.75 -0.95,-5.89 -2.22,-3.81z M181.53,44c-3.16,2.07 3.2,-1.05 4.68,-0.94 3.57,-2.86 -4.04,0.86 -4.68,0.94z m-1.31,6.22c-3.19,-0.54 3.33,2.8 0.63,-0.13 -0.17,-0.12 -0.42,0.08 -0.63,0.13z m8.44,2.63c-1.5,0.95 -5.02,0.69 -5.3,2.69 0.04,2.05 2.12,3.65 4.01,2.44 0.45,-0.74 3.48,-5.42 1.28,-5.13z m142.28,2.25c-2.22,2.09 -3.42,5.93 -2.84,8.5 1.81,-1.93 6.45,-1.17 5.53,2.13 0.75,2.01 5.23,1.5 7.53,1.68 3.9,0.79 4.95,-0.34 2.64,-3.56 -1.78,-3.59 -4.09,-7.7 -8.61,-7.85 -1.38,-0.32 -3.03,-0.37 -4.25,-0.9z m-134.34,2.94c-1.42,2.56 1.08,4.09 3.5,3.69 1.95,-0.37 3.87,-2.9 3.63,-4.91 -2.37,-0.51 -4.91,-1.04 -6.76,0.98l-0.36,0.24z M140.06,88.88c-0.28,2.81 2.92,0.39 0,0z m48.13,13.38c-1.61,1.32 0.69,2.85 0.06,-0.03l-0.06,0.03z","name":"Schleswig-Holstein"},"st":{"path":"m367.5,207.72c-2.53,0.49 -2.68,6.11 -5.69,3.88 -1.54,-0.27 -2,4.74 -0.62,6.28 -1.83,0.03 -4.69,1.23 -5.84,3.45 -2.16,1.75 -5.06,2.95 -7.73,3.81 -1.55,-0.32 -3.98,0.25 -4.38,-1.66 -3.96,-2.32 -9.18,-1.22 -13.69,-1.78 -0.82,1.11 0.07,3.08 -1.73,3.89 -1.82,3.69 -6.1,1.61 -9.28,2.54 -2.64,-0.11 -4.45,1.7 -3.62,4.38 -0.45,3.07 1.59,5.83 2.38,8.76 4.58,2.95 6.91,8.32 9.22,13.03 -1.02,4.14 2.73,7.03 5,9.88 -2.35,-0.75 -6.67,0.93 -4.41,3.78 2.13,2.7 4,5.66 7.03,7.25 2.19,1.61 0.12,4.97 -2.22,4.59 -1.88,2.15 -0.66,5.73 1.52,7.3 1.12,1.37 4.12,3.9 1.64,5.39 -1.82,-0.07 -4.08,1.44 -3.31,3.44 0.85,1.22 3.42,-0.32 2.88,2 0.05,3.3 -3.89,4.53 -5.42,6.71 -0.9,2.3 0.67,6.76 -2.83,4.48 -2.5,-0.5 -4.36,0.86 -6.64,1.31 -3.5,0.14 -7.17,-0.75 -10.56,0.56 0.56,2.46 -2.44,4.29 -4.71,3.94 -2.29,1.2 4.79,4.03 4.2,5.21 -3.3,0.45 -2.03,3.05 0.01,3.98 1.13,2.32 -0.87,4.55 -2.86,5.36 -2.94,1.53 -1.17,5.3 -1.3,7.86 2.06,2.6 4.65,5.37 5.72,8.78 -0.64,2.04 0.85,6.26 3.56,4.75 3.65,0.5 8.21,-0.2 10.69,3.16 4.64,-2.48 0.38,1.08 -0.35,3.49 0.67,3.87 3.9,7.06 5.79,10.42 0.02,2.22 -1.14,5.56 1.78,6.09 2.2,-1.04 4.22,-0.48 6.44,0.45 5.84,2.46 12.54,-0.89 18.17,2.38 2.32,0.62 -0.45,4.34 2.28,4.54 1.79,0.31 -0.33,2.19 2.35,3 1.69,0.92 2.02,2.61 0.5,3.94 -1.45,1.35 -2.21,4.99 -4.56,4.59 -2.63,-0.91 0.09,3.99 2.28,1.66 2.83,0.66 5.62,4.8 3.25,7.41 -2.57,1.08 1.05,5.18 3.56,3.71 1.96,-0.79 2.91,-2.94 5.65,-1.43 2.6,0.08 6.05,0.91 5.78,4.15 1.33,1.52 4.58,2.03 6.72,2.37 2.49,-0.44 5.14,-1.91 7.2,0.43 2.77,1.74 6.17,3.82 6.94,7.21 2.79,-1.13 5.73,-0.73 8.41,0.53 1.23,-2 2.73,-1.49 3.69,0.66 0.59,3.07 2,-0.72 2.48,-1.83 0.83,-2.27 3.92,-5.75 0.2,-7.01 -1.99,-2.12 2.54,-4.35 -0.47,-5.52 -3.54,-1.32 0.06,-3.71 -3.77,-3.68 -1.13,-1.82 -0.14,-5.31 -0.45,-7.77 0.09,-3.62 -2.36,-6.17 -3.27,-9.5 -2.24,-2.8 3.78,-1.95 2.18,-4.77 -0.27,-3.83 -1.97,-7.24 -2.66,-10.91 1.12,-2.57 2.7,-5.07 2.75,-7.88 2.68,-2.78 6.09,-4.94 9.75,-6.06 4.81,0.08 9.58,-1.34 13.94,-3.25 0.29,-3.17 3.92,1.99 5.64,-1.8 0.58,-1.59 1.27,-4.54 3.8,-3.39 2.22,1.16 4.46,1.71 7.03,1.3 4.79,-0.31 9.85,0.27 14.45,-1.01 2.63,-2.16 7.03,-3.34 7.55,-7.13 -2.51,-3.21 -2.57,-7.84 -4.05,-11.66 -1.56,-2.32 0.46,-2.56 1.11,-3.49 -1.21,-1.69 -2.84,1.88 -4.93,0.87 -3.35,0.33 -4.21,-4.14 -7.34,-4.73 -1.95,-1.81 -4.21,-0.39 -6.46,-1.61 -1.95,-1.37 -5.09,-1.98 -5.86,-4.32 -2.25,-0.71 -4.5,-3.34 -6.75,-2.88 0.04,3.1 -4.02,3.62 -6.31,2.65 -6.29,-1.76 -13.04,-4.4 -16.59,-10.25 -1.82,-2.88 -4.27,-5.73 -5.88,-8.53 1.69,-2.65 1.92,-5.52 1.61,-8.56 0.08,-3.49 1.94,-6.54 3.57,-9.44 -0.44,-3.76 -2.35,-8 0.31,-11.34 1.69,-3.42 -2.77,-5.17 -4.84,-4.84 -0.77,1.84 -4.03,2.12 -4.73,-0.07 -3.16,-2.02 -0.66,-5.45 -0.28,-8.33 0.25,-2.72 1.68,-3.75 3.82,-4.6 0.52,-2.45 0.69,-5 -1.29,-6.86 -2,-2.13 -0.72,-5.29 -0.24,-7.76 2.19,-2.1 2.75,-4.3 1.28,-7.4 -0.37,-2.87 -3.52,-1.27 -5.2,-0.49 -2.2,0.23 -1.98,-4.35 -5.66,-2.08 -3.04,0.71 -6,0.64 -8.83,-0.79 -2.04,-1.1 -6.47,-1.05 -6.16,-4.18 0.48,-0.96 2.72,-2.17 0.45,-2.84 -2.36,-0.92 -4.97,-4.41 -7.35,-1.78 -2.26,0.12 -3.78,-2.34 -5.44,-3.56 -1.33,-1.14 2.25,-2.99 -0.03,-2.78z m-35.72,88.19c-0.1,0.03 0.04,0.06 0,0z","name":"Sachsen-Anhalt"},"sn":{"path":"m438.91,347.22c-0.71,1.7 -1.23,3.74 -3.22,4.5 -2.58,1.63 -3.52,-1.1 -5.94,1.53 -4.3,1.22 -8.55,2.77 -13.09,2.53 -3.01,1.74 -7.34,3.17 -8.45,6.62 0.03,3.26 -3.77,5.91 -1.75,9.19 1.33,3.2 1.78,6.8 2.19,10.31 -4.06,0.29 -2.18,3.87 -0.74,6.17 2.24,3.72 1.36,8.42 1.53,12.58 2.6,-0.28 2.73,2.06 3.18,3.2 1.51,2.44 3.44,1.13 5.41,0.39 3.7,1.5 8.18,1.88 11.41,4.16 0.74,1.94 -0.81,4.85 2,5.77 1.72,1.99 6.37,0.62 6.03,4.01 -0.35,2.66 3.75,3.98 1.22,5.97 -3.58,1.98 -8.34,0.37 -11.41,3.34 -0.07,2.05 -0.66,4.73 -3.19,4.69 -0.84,-2.38 -4.84,-0.74 -3.91,1.56 -2.16,0.55 -4.73,2.38 -6.75,1.41 -0.26,3.26 -1.99,6.93 0.66,9.67 0.13,3.51 6.2,1.64 4.46,5.11 -1.54,2.13 -3.26,4.42 -6.11,4.51 -2.19,1.15 -4.93,1.82 -6.85,3.17 1.14,0.4 3.92,-0.58 2.97,1.81 -1.3,0.56 -2.71,1.18 -4.15,1.04 -1.87,-0.95 -6.83,1.68 -5.71,-1.56 0.5,-1.28 0.39,-7.08 -1.74,-3.97 -0.56,2.99 -4.53,3.58 -5.56,6.44 -1.97,1.1 -1.24,4.78 1.19,3.64 1.33,1.03 5.21,3.22 2.79,5.13 -0.59,1.68 -5.69,2.39 -2.69,4 2.14,0.67 3.79,2.61 5.05,4.37 -0.72,2.68 -0.54,4.28 2.54,4.44 2.89,0.5 5.02,2.48 7.96,1.72 3.8,-1.14 4.85,3.42 6.85,5.61 1.23,2.16 4.76,5.08 2.59,7.58 -0.49,1.72 3.93,3.14 3.09,0.38 -2.48,-2.46 -0.08,-6.44 1.28,-8.97 2.86,-4.57 6.53,-8.74 9.94,-12.84 4.56,-2.02 9.99,-0.84 14.06,-4.03 2.14,-0.66 4.2,-3.73 6.38,-3.05 2.63,1.52 5.07,3.45 7.78,4.83 2.07,-1.12 5.11,-3.24 4.13,-5.91 0.2,-2.04 -0.2,-5.69 2.84,-5.24 2.59,-0.29 5.2,-0.72 7.63,0.55 2.91,-0.54 1.72,-4.96 3.88,-6.45 2.35,-2.97 5.63,-5.26 8.68,-7.26 2.67,-0.81 5.51,3.8 7.01,0.39 1.65,-1.64 3.72,-4.3 2.58,-6.74 3.93,-2.17 7.47,-5.47 12.25,-5.22 2.33,-0.49 4.94,-0.78 7,0.62 2.41,-0.15 5.15,-2.09 4.01,-4.81 -1.95,-3.53 3.27,-1.43 5.18,-3.05 2.77,-1.08 6.09,-1.25 7.96,-3.69 5.86,-2.9 11.49,-6.39 17.78,-8.32 1.88,-3.11 -0.76,-3.48 -3.2,-3.83 -2.51,-0.45 -4.28,-2.72 -5.9,-4.48 1.17,-2.33 1.01,-5.72 3,-7.44 2.01,-0.54 2.32,2.64 4.53,2.3 2.11,1.26 6.52,1.34 7.5,-0.58 -0.17,-3.74 3.64,0.67 5,1.7 3.7,2.16 4.3,6.67 5.45,10.42 1.49,2.62 -2.09,6.06 2.42,6.33 2.67,0.89 5.37,2.57 8.28,1.87 0.47,-3.78 1.26,-7.7 4.06,-10.39 2.84,-3.18 3.04,-7.91 3.71,-11.62 2.05,-4.17 1.85,-9.14 2.71,-13.74 0.26,-3.07 0.84,-6.1 1.99,-8.91 0.22,-5.15 -3.62,-9.39 -5.25,-14.09 -0.63,-2.47 0.48,-5.37 -1.69,-7.4 -2.96,-2 -6.81,-2.81 -10.16,-4.16 -2.63,0.45 -5.28,-0.92 -5.64,-3.77 -0.41,-2.32 0.72,-4.39 -0.77,-0.54 -0.78,2.23 -4.07,1.99 -5.91,1.44 -0.89,-2.72 -3.76,-2.22 -5.89,-1.05 -2.43,0.03 -4.2,1.93 -3.78,3.04 -2.98,-1.35 -5.85,1.55 -8.48,2.42 -3.55,-1.67 -7.51,-1.35 -11.28,-1.56 -3.58,3.73 -3.22,9.41 -5.54,13.67 -1.24,3.16 -4.34,3.42 -7.26,3.89 -3.26,1.02 -6.88,-0.1 -9.67,2.35 -1.59,0.79 -4,-0.13 -5.49,-0.56 -4.01,0.9 -8.8,0.36 -12.18,-2.44 -2.57,-1.34 -4.55,-3.47 -6.76,-5.28 -2.23,1.37 -5.63,2.37 -6.56,4.87 -0.02,1.86 -4.09,1.87 -5.44,1.29 -1.42,-2.13 -2.64,-3.94 -1.26,-6.61 0.56,-3.54 0.3,-7.09 -1.63,-10.2 -0.72,-1.89 -2.32,-5.98 -4.72,-4.31 -2.79,1.33 -2.48,-5.48 -5.68,-3.53 -5.59,0.15 -11.31,0.77 -16.84,0.31 -1.25,-0.57 -2.44,-1.63 -3.94,-1.22z","name":"Sachsen"},"sl":{"path":"m63.72,553.88c-2.9,2.18 -6.1,2.82 -9.5,4.44 -3.47,4.51 -10,4.1 -15.06,5.38 -4.6,0.18 -8.97,-1.26 -13.22,-2.78 -2.47,1.73 -0.51,5.04 -0.84,7.5 1.8,0.96 4.08,-1.32 5.97,0.4 2.44,1.62 5.28,3.2 6.78,5.81 -3.49,0.44 0.05,4.79 -0.09,6.94 1.05,3.41 4.13,4.95 6.56,7.16 1.79,1.94 0.3,5.34 3.04,6.13 2.43,1.92 -2.53,4.66 1.39,5.86 2.37,0.12 6.25,2.27 7.13,-1.09 -0.35,-2.25 -3.03,-3.71 0.38,-4.78 4.42,0.26 10.1,1.27 11.81,5.94 0.51,1.58 -0.22,5.5 1.56,5.84 2.33,-0.7 1.95,-7.32 3.65,-3.1 1.02,1.94 2.67,2.87 4.44,1.6 2.61,-0.08 5.35,0.47 7.44,1.84 0.63,-1.3 5.37,-2.76 3.56,-3.91 -1.62,-2.52 -4.36,-5.17 -3.81,-8.41 1.42,-2.72 5.03,-3.05 6.69,-5.31 0.32,-2.19 -0.19,-4.41 0.63,-6.91 -2.49,1.08 -4.55,-2.01 -6.84,-2.72 1.25,-2.57 -1.08,-3.33 -2.41,-4.88 -1.38,-2.57 3.05,-1.81 2.04,-4.46 0.15,-3.03 0.9,-7.08 -0.66,-9.48C81.13,563.37 78.01,559.23 75,558.25c-1.82,-1.1 -4.05,-5.12 -6.16,-3.76 -1.8,1.27 -2.93,1.15 -3.06,-0.42 -0.68,-0.01 -1.4,-0.33 -2.06,-0.19z","name":"Saarland"},"rp":{"path":"m124.22,422c-3.08,1.37 -2.76,4.11 -2.15,6.91 -0.74,2.27 -2.92,4.57 -5.35,5.28 1.82,2.98 -1.68,6.02 -4.55,6.28 -3.87,1.42 -8.15,2.76 -11.74,4.31 -2.53,-1.67 -5.28,-0.25 -4.24,2.84 0.38,2.78 -1.77,4.53 -4.33,4.8 -2.21,0.9 -4.57,1.03 -6.93,0.89 0.24,-3.01 0.16,-2.77 -0.66,-0.16 -2.61,2.5 -6.78,2.21 -10.16,3.14 -1.7,1.36 -3.59,4.13 -6.33,3.09 -1.84,0.93 -1.47,5.36 -2.5,7.61 -0.31,2 -3.88,3.46 -5.32,1.71 -2.49,-2.13 -5.07,1.92 -3.92,4.39 -1.32,2.14 3.87,6.32 1.33,6.03 -2.57,-0.38 -4.98,1.47 -7.53,-0.25 -1.87,-0.86 -4.14,-1.17 -5.28,-3.06 -3.07,1.11 -6.64,2.41 -9.75,2.06 -1.18,-2.88 -5.27,-3.74 -3.13,0.21 0.06,1.85 3.77,4.69 0.04,3.72 -2.34,1.34 -4.33,-0.2 -6.47,-0.11 -0.71,2.72 -2.48,4.43 -4.99,5.59 -1.73,1.37 -5.12,2.04 -4.14,4.93 1.73,3.46 -1.97,4.26 -2.68,6.98 -1.38,4.14 -2.64,8.53 -0.77,12.73 1.47,5.09 3.95,10.18 7.71,13.93 3.19,1.73 6.27,3.8 8.6,6.49 1.94,2.68 4.29,-1.39 6.06,0.93 1.74,1.25 1.47,4.34 1.36,6.37 -1,5.55 -4.71,9.97 -7.61,14.63 -1.1,1.62 -3.21,1.58 -3.81,3.7 1.32,3.4 5.62,2.86 8.44,4.25 6.02,0.99 12.25,-0.27 17.78,-2.55 1.84,-1.13 2.94,-3.18 5.35,-3.48 2.7,-0.62 4.85,-2.4 7.33,-3.4 2.47,-0.56 3.3,1.96 4.66,0.63 1.69,-1.87 4.4,2.01 6.06,3.12 2.19,1.85 4.96,3.22 7.6,4.23 2.08,-1.3 3.07,-1.77 3.74,1 0.63,3.7 0.2,7.6 -0.21,11.34 -3.62,0.15 -1.02,2.73 0.84,3.34 -0.88,3.1 1.79,3.86 4.18,5.17 2.7,-0.99 3.7,-0.04 2.19,2.5 -0.63,2.28 0.81,4.56 -1.1,6.61 -1.8,1.77 -5.4,2.25 -6.16,5.03 0.5,2.47 2.45,5.22 3.88,6.72 0.53,-2.07 4.25,-1.3 6.09,-2.06 2.18,0.88 4.73,2.02 3.59,4.81 0.57,4.16 4.15,6.47 7.58,8.3 4.06,2.82 9.28,1.81 13.75,1.03 5.57,0.87 11.49,1.89 16.04,5.46 1.5,1.92 4.34,2.91 6.75,3.03 1.44,0.1 3.88,-0.46 4.75,1.03 2.73,-1.42 4.25,-4.04 4.38,-7.03 0.97,-3.35 4.62,-5.13 4.47,-8.92 0.59,-3.28 2.22,-6.72 1.35,-9.86 0.74,-2.94 4.48,-3.42 5.84,-6.03 2.45,-0.61 0.47,-2.16 -0.81,-2.44 -2.02,-2.71 2.93,-3.58 2.9,-6.17 0.3,-2.2 -0.42,-4.5 0.69,-6.55 -1.31,-0.77 -4.55,0.38 -4.34,-2.22 1.3,-2.38 -0.67,-5.57 -0.94,-8.16 -1.05,-1.55 -0.56,-3.22 -0.06,-4.81 -2.06,-3.14 -3.58,-6.56 -4.31,-10.28 -0,-3.21 3.88,-3.16 5.84,-4.38 1.83,-1.95 0.9,-4.67 -1.26,-6.04 -2.48,-3.08 -4.3,-6.94 -4.99,-10.83 0.78,-1.71 1.4,-3.41 0.25,-5.25 -0.12,-3.38 -3.6,-5.04 -5.13,-7.75 -2.86,-3.27 -7.52,-1.08 -10.66,0.56 -4.69,1.79 -9.52,4.51 -14.68,3.47 -2.44,-2.49 -4.42,-5.7 -6.29,-8.66 -2.19,-2.94 2.65,-2.19 3.79,-4.33 1.44,-3.52 5.56,-1 5.95,-3.31 1.05,-2.62 -4.12,-2.88 -2.51,-5.79 1.38,-2.83 4.79,-3.85 7.44,-4.63 1.92,2.63 5.73,-0.22 2.09,-1.81 -1.3,-2.26 2.57,-3.89 4.23,-2.24 3.08,0.46 1.96,-3.71 0.96,-5.33 -1.37,-3.08 -3.17,-5.78 -6.33,-7.23 -3.79,-0.63 -1.12,-3.37 -0.49,-6.08 0.24,-1.88 -1.87,-3.91 -0.43,-6.13 1.19,-2.18 3.39,-6.07 6.28,-3.97 1.67,3.39 3.78,0.05 4.16,-2.21 1.81,-2.05 -0.69,-2.3 -1.07,-3.97 -0.17,-2.37 -1.93,-5.43 0.13,-7.42 -0.88,-3.78 -6.22,1.19 -5.36,-1.83 1.28,-4.22 -5.99,-5.38 -4.53,-9.85 1.32,-2 0.84,-5.3 -1.94,-5.86 -1.78,-2.03 -5.71,-1.54 -6.82,-3.48 -0.21,-1.96 2.71,-4.06 -0.25,-4.94C125.29,422.08 124.64,421.87 124.22,422z","name":"Rheinland-Pfalz"},"nw":{"path":"m177.25,263.34c-2.1,-1.63 -5.7,-1.31 -6.06,1.91 0.19,3.63 -4.48,4.11 -7,3.66 -1.11,-1.64 -4.06,-2.21 -2.35,0.66 0.52,3.14 4.56,4.05 6.57,6.26 1.92,1.46 2.52,4.49 2.62,6.8 0.18,2.64 0.19,5.1 -0.9,7.58 -1.32,1.99 0.48,3.83 2.46,3.92 3.25,0.58 0.3,2.71 -0.78,3.97 -1.55,0.88 -3.89,0.86 -4.75,2.84 1.66,2.95 -2.56,1.58 -4.29,1.1 -2.41,-0.95 -5.38,-1.98 -7.02,0.74 -2.16,1.92 -4.56,3.57 -7.26,4.5 -1.87,2.2 -2.96,-0.94 -5.46,-0.31 -2.18,0.39 -2.63,4.37 -4.84,2.75 -2.6,-0.41 -3.41,-2.28 -4.46,-4.35 -2.31,-1 2.21,-2.81 3.55,-2.98 3.51,0.2 5.07,-3.48 2.41,-5.69 -1.71,-1 -4.92,-1.05 -5.1,-3.81 -0.4,-2.56 2.07,-4.87 2.81,-7.19 0.91,-0.72 -1.83,-2.26 -0.5,-3.69 3.14,-1.64 1.45,-5.72 -1.26,-6.8 -2.05,-1.15 -4.05,1.71 -6.33,0.21 -2.51,-1.72 -6.07,-2.59 -6.27,-6.18 -0.22,-2.85 -2.57,-3.65 -4.96,-4.34 -1.35,-0.64 -3.78,3.65 -1.27,3.96 1.72,1.12 -0.74,4.19 -1.92,5.19 -4.58,2.06 -9.39,4.71 -12.83,8.28 -0.91,2.09 -3.91,0.71 -4.63,3.16 -3.68,0.16 -7.44,-1.07 -11.03,-0.19 -1.13,2.36 -3.53,1.5 -5.41,2.92 -3.3,2.56 -8.23,3.82 -10.15,7.67 -0.16,4.41 -5.85,3.29 -8.27,5.42 -1.07,1.95 -3.97,5.3 -0.36,6.02 2.12,2 6.43,3.97 4.59,7.5 -2.07,2.76 -4.18,5.76 -7.59,6.94 -1.43,-2.65 -3.58,-2.35 -5.97,-1.09 -2.93,0.68 -5.59,2.43 -8.37,3.24 -1.83,0.92 -6.4,-1.52 -6.2,0.14 1.25,2.44 1.32,5.11 -1.64,2.71 -2.84,-2.65 -6.23,-5.14 -10.34,-4.5 -2.26,1.13 -4.86,1.79 -7.57,1.91 -2.94,-0.3 -6.47,1.11 -7.66,3.97 0.91,4.49 1.78,9.09 3.5,13.31 3.65,0.48 3.87,3.28 3.59,6.38 -0.03,2.95 4.03,4.36 4.95,7.23 3.16,3.93 2.85,9.32 1.32,13.83 -1.07,2.64 2.37,5.59 -1.15,7.3 -2.71,3.53 -6.04,6.82 -8.16,10.71 -0.6,1.66 -1.81,5.57 0.42,6.15 1.79,-1.07 4.45,-3.48 6.03,-0.89 -1.83,0.74 -3.77,2.52 -4.63,4.79 -4.06,2.72 -7.88,5.86 -12.82,6.75 -2.54,0.57 -4.87,1.7 -3.17,4.63 0.65,3.73 2.86,3.68 5.9,3.34 1.73,-0.12 4.7,0.11 2.92,2.43 -1.62,2.73 0.97,3.7 3.18,4.3 2.89,0.68 -1.54,3.27 0.66,4.81 0.17,1.78 -1.03,5.56 -2.97,3.06 -2.7,0.41 -2.86,4.47 -3.11,6.49 1.25,3.17 3.86,4.98 6.86,6.32 1.73,2.64 2.03,6.34 4.88,8.31 -3.91,1.75 5.55,0.78 2.22,4.39 0.29,3.25 -5.37,3.94 -3.38,7.37 0.76,1.42 1.86,4.52 3.66,2.67 3.25,-0.44 6.22,1.26 7.36,4.35 2.36,2.77 -0.08,6.31 -0.45,9.15 2.56,4.82 -0.8,-1.03 2.06,-1.07 2.71,-1.06 3.44,4.11 6.19,2.53 2.75,0.37 5.82,-2.69 8.02,-1.5 1.92,2.23 5.39,3.01 8.14,3.37 3.72,-0.21 2.3,-1.41 1.51,-3.82 0.04,-2.95 -1.16,-6.55 2.63,-7.5 2,-1.69 3.89,3.12 6.16,0.31 1.15,-2.86 1.77,-6.3 2.41,-9.46 2.7,1.12 5.4,-0.08 6.75,-2.56 3.27,-1.13 7.52,-0.86 10.35,-2.91 0.37,-1.12 0.98,-4.32 2.62,-2.66 -0.82,3.1 2.33,2.44 4.39,1.84 2.3,-0.53 5.31,-1.22 4.81,-4.28 -0.51,-2.22 0.4,-5.33 3.3,-4.47 2.78,1.45 5.46,-1.31 8.27,-1.76 3.1,-1.68 7.91,-1.4 9.45,-5.05 -0.47,-2.98 -4.28,-3.7 0.44,-3.18 2.74,-1.08 5.31,-3.89 4.08,-6.99 -1.04,-2.52 1.87,-4.26 3.71,-5.24 2.21,0.36 5.37,2.16 3.03,4.28 -1.84,2.46 1.06,2.47 2.69,2.94 2.57,1.6 7.18,2.77 6.12,6.74 -0.22,1.83 -1.49,3.93 0.54,5.35 1.58,1.78 4.44,3.29 3.47,6.09 1.92,-1.91 4.28,0.75 5.25,0.78 1.15,-1.97 2.94,-4.17 0.84,-6.13 -1.97,-2.33 -1.27,-4.35 1.26,-5.9 2.67,-2.21 4.81,-5.42 7.75,-7.15 2.53,-0.53 5,4.12 6.81,1 1.81,-2.99 4.43,-5.63 4.94,-9.19 1.73,-1.11 2.77,-3.4 4.66,-4.63 0.39,-1.91 -1.57,-4.12 -1.75,-6.25 0.73,-3.23 4.88,-3.7 7.64,-2.9 1.98,0.85 4.51,0.77 5.94,-0.93 1.31,-3.2 3.81,-6.24 2.52,-9.88 -0.64,-1.84 0.53,-6.24 -2.48,-5.85 -2.48,0.46 -4.55,3.29 -7.13,2.53 -1.37,-1.68 -3.72,-3.65 -1.3,-5.48 2.34,-4.53 6.76,-7.46 11.73,-8.41 3.83,-1.47 7.94,-1.54 11.98,-1.11 1.92,-2.78 -0.9,-3.85 -1.9,-6.19 -1.82,-1.61 -1.41,-4.36 1.19,-4.68 3.14,-1.44 7.01,-2.83 10,-0.32 2.4,1.63 -0.27,3.86 1.25,5.59 1.92,0.62 4.04,0.65 4.63,-1.66 3.98,-3.61 9.19,-6.08 11.4,-11.26 1.23,-2.28 4.7,-5.14 4.82,-6.65 -1.68,0.55 -4.34,-0.05 -3.2,-2.36 0.05,-5.23 2.13,-10.09 3.74,-14.92 1,-2.69 -2.16,-5.66 -4.66,-4.72 -3.16,2.83 -0.64,-2.27 -0.81,-4.06 -0.05,-2.72 -2.54,-1.8 -3.99,-2.62 -2.61,-2.3 -7.4,-3.71 -6.62,-8.03 0.39,-2.34 -1.28,-5.79 0.83,-7.47 -2.23,-1.73 -1.62,-3.85 -2.5,-6.03 -2.65,-0.77 -5.5,-0.87 -7.39,-3.23 -1.18,-0.94 -5.31,-5.84 -2.07,-3.89 2.92,3.3 5.04,-1.41 4.58,-3.56 -1.6,-1.73 -4.39,-1.61 -6.02,-2.94 -1.48,-2.41 1.21,-4.72 1.94,-6.91 1.84,-2.01 5.4,-1.29 6.16,-4.38 1.42,-2.09 2.16,-4.3 0.81,-6.53 1.2,-2.26 2.95,-5.17 -0.91,-5.56 -3.17,-1.51 -3.6,3.21 -5.58,4.74 -1.93,2.12 -2.98,5.59 -6.39,5.38 -3.28,0.88 -6.88,0.85 -10.18,0.44 -3.79,-0.66 -2.03,-5.2 -2.58,-7.89 -0.63,-2.02 1.28,-4.76 -1.4,-5.81 -1.68,-1.96 -4.73,1.64 -6.71,2.05z m32.09,14.69c-0.04,0.06 0.1,0.03 0,0z","name":"Nordrhein-Westfalen"},"ni":{"path":"m186.44,120.91c-5.6,0.51 -6.88,7.11 -8.44,11.54 -1.55,4.84 -4.41,10.19 -1.33,15.08 0.62,2.76 4.51,0.93 6.62,1.66 3.74,-0.55 1.44,3.37 1.28,5.34 -0.09,2.27 2.07,5.17 -0.81,6.68 -0.57,2.01 -4.6,1.89 -4.47,0.01 0.2,-1.62 -2.19,-2.79 -1,-4.38 -2.39,-2.05 -5.8,-0.88 -8.29,-2.92 -3.19,-0.55 -3.1,-6.58 -7,-4.9 -3.25,1.5 -2.87,5.42 -3.31,8.39 1.73,1.09 4.31,-1.81 5,0.84 0.65,4.51 -0.3,10.35 -4.66,12.69 -2.05,0.33 -4.01,-0.7 -4.44,-2.75 -1.01,-1.99 -2.84,-4.1 -4.91,-2.06 -2.51,-1.99 -2.84,-5.26 -2.69,-8.25 1.7,2.41 4.86,0.82 6.63,-0.53 1,-2.85 -1.94,-5.58 -2.55,-8.38 -0.35,-2.68 -2.75,-3.1 -4.67,-3.53 -0.88,-2.07 -1.59,-4.78 -0.56,-6.72 -5.56,-1.98 -11.61,-0.89 -17.16,0.47 -4.67,-1.16 -9.01,2.41 -13.75,2.56 -2.64,-2.27 -6.36,-1.45 -9.63,-2 -6.44,-0.16 -11.29,4.48 -15.23,9 -2.96,1.82 0.86,2.65 1.75,4.06 2.29,2.26 -1.66,3.67 -2.74,5.44 -1.44,-2.96 -5.14,-3.8 -4.27,0.54 -0.65,3.9 -0.71,8.05 -1.52,11.83 -1.87,1.87 0.95,4.14 2.97,3.58 5.28,0.29 10.96,-0.24 15.72,2.42 -2.08,0.69 -5.45,-0.97 -5.28,2.53 -1.3,3.55 -0.88,7.6 -1.89,11.2 -1.02,2.31 -3.53,5.58 -0.77,7.39 -1.04,4.96 1.43,10.17 -1.09,14.86 -1.44,6.42 -8.35,10.37 -8.34,17.29 -0.73,5.37 -0.65,11.06 -2.02,16.22 -1.54,2.43 -4.12,-1.19 -6.18,-0.78 -4.31,-0.59 -8.85,-1.62 -13.15,-0.5 -3.28,1.5 -0.59,5.19 -1.65,7.89 0.05,2.71 -1.96,5.6 -1.13,7.99 3.96,3.35 9.48,3.72 14.25,5.18 1.32,-0.55 1.98,-4.64 3.66,-2.59 1.6,4.04 5.43,7.78 4.44,12.38 -1.84,2.71 -4.41,6.49 -1.89,9.57 1.86,2.89 3.08,-1.11 5.12,-1.16 3.32,-0.74 7.21,1.07 10.28,0.08 0.77,-2.08 3.82,-0.65 4.33,-3.02 3.95,-3.24 8.34,-6.11 13.06,-8 3.49,-2.99 -0.93,-3.55 0.23,-6.31 0.69,-1.71 1.95,-4.41 4.07,-2.55 2.19,0.59 4.44,1.49 4.69,4.05 0.24,3.46 3.25,4.66 5.87,6.2 2.49,1.33 5.1,-2.32 7.3,0.36 2.1,0.86 2.8,3.79 2.88,5.66 -2.14,1.36 -2.99,3.7 -0.25,5 -2.47,1.24 -2.71,4.41 -4.06,6.59 -0.13,3.3 3.86,2.19 5.28,4.24 1.61,1.34 2.29,6.23 -0.56,6.24 -2.12,1.03 -7.72,1.03 -4.44,4.18 0.32,1.52 3.77,3.35 4.41,1.19 1.64,-2.26 4.29,-2.15 6.63,-1.31 1.36,-0.07 3.99,-1.2 5.52,-2.37 2.72,-1.18 4.39,-5.59 7.79,-3.97 1.75,0 5.6,2.6 5.94,0.72 0.62,-2.2 3.26,-3.09 5.19,-3.63 2.15,-1.43 1.31,-2.65 -0.91,-2.81 -3.46,-2.11 -0.12,-6.05 -0.14,-8.9 -0.15,-3.52 0.05,-8 -3.58,-9.88 -2.14,-2.11 -6.14,-3.08 -5.9,-6.7 -1.51,-2.43 0.6,-3.29 2.77,-2.04 1.45,1.42 4.2,1.38 5.98,0.03 1.26,-1.81 0.54,-4.61 3.46,-5.43 2.32,-1.11 5.18,2.05 7.68,-1.07 2.13,-2.24 4.04,-0.2 5.66,1.43 0.57,2.57 -0.21,5.4 0.22,8.09 -0.93,3.21 1.85,4.85 4.75,4.17 3.21,-0.08 7.22,0.09 9.7,-1.99 2.54,-2.97 4.51,-6.31 6.89,-9.36 2.02,0.69 5.86,0.77 5.97,3.44 -1.73,2.35 -1.52,4.54 -0.97,7.06 -1.39,2.86 -2.39,6.91 -6.2,7.13 -2.4,1.05 -3.91,4.28 -3.71,6.63 1.97,1.04 4.71,1.6 6.53,3.33 0.07,1.63 -1.12,5.59 -2.84,6.05 -3.41,-0.73 1.6,2.55 2.84,3.1 2.26,0.15 6.09,0.95 5.15,4.09 -0.68,1.53 3.99,3.73 1.27,4.76 -0.76,2.74 -0.13,6 0.12,8.84 1.43,2.32 4.36,3.6 6.57,5.25 3.31,-0.99 4.48,3.42 3.35,5.85 0.3,0.17 2.48,-0.22 3.34,0.68 2.41,1.16 3.09,3.45 2.56,5.97 -2.13,4.96 -3.82,10.38 -3.75,15.72 2.51,0.18 4.77,-1.21 7.34,-1.06 0.61,1.51 -0.65,3.85 2.25,3.24 3.59,-0.55 6.83,1.47 9.03,4.14 1.86,0.23 1.58,3.6 -0.22,2.84 -1.35,2.17 -4.02,2.06 -5.22,4.59 1.78,2.73 3.46,5.34 3.51,8.74 1.02,2.35 -1.28,3.79 -3.38,3.42 -2.32,0.54 -3.56,5.32 -0.53,5.96 3.22,1.18 6.33,2.54 9.36,4.13 4.29,-2.82 0.47,-2.05 -1.06,-3.89 -2.77,-2.53 1.66,-4.59 3.28,-6.24 2.15,-2.54 5.98,-1.9 8.84,-2.34 2.08,1.35 1.61,5.72 4.21,2.64 3.91,-2.4 7.72,-5.21 12.48,-5.45 3.97,-2.72 8.84,-4.93 11.78,-8.85 1.12,-1.78 0.33,-3.88 2.39,-5.63 3.16,-1.67 6.79,0.6 8.47,3.25 2.88,-0.58 7.14,-0.26 7.76,-3.87 -0.05,-2.88 3.65,-4.47 1.75,-6.24 -1.57,-2.46 -0.32,-5.67 -2.8,-7.78 -1.09,-2.4 -4.13,-3.43 -3.79,-6.44 -0.16,-2.66 -0.99,-6.17 2.11,-7.49 1.53,-0.76 3.52,-2.56 1.95,-4.3 -2.69,0.07 -2.43,-3.84 -0.41,-4.53 -1.85,-1.14 -5.14,-4 -4.75,-5.49 2.09,-0.39 4.95,0.22 5.97,-2.13 -0.9,-2.87 3.5,-2.65 5.41,-2.71 2.87,-0.48 6.16,1.13 8.63,-0.98 1.86,-0.84 5.77,1.14 5.58,-1.56 -0.39,-2.88 1.81,-4.27 3.9,-5.7 0.91,-0.47 3.07,-3.7 1.17,-3.53 -3.44,0 -2.76,-5.19 0.13,-5.66 3.82,-0.08 0.19,-3.6 -1.09,-4.81 -2.24,-1.37 -1.88,-4.21 -1.94,-6.38 0.35,-2.73 4.31,-1.12 3.91,-4.03 -1.37,-1.84 -4.07,-2.33 -5.04,-4.76 -1.41,-2.15 -5.08,-4.85 -2.74,-7.55 3.42,-1.12 3.06,-1.7 0.77,-4.08 -1.69,-1.79 -1.55,-4.29 -1.69,-6.46 -2.28,-4.45 -4.68,-9.22 -8.86,-12.09 -1.05,-3.33 -3.02,-6.48 -2.57,-9.99 -0.32,-2.09 0.44,-4.42 2.92,-4.26 2.85,-1.12 6.27,-0.08 8.93,-1.09 1.55,-1.38 2.76,-2.68 2.6,-4.79 1.69,-2.11 5.13,-0.16 7.46,-0.64 2.96,0.35 7.54,-0.38 8.88,2.86 3.56,1.21 6.67,-1.39 9.63,-2.75 1.37,-1.79 3.07,-3.85 5.5,-3.97 -1.07,-2.07 -0.03,-4.66 0.75,-6.72 2.37,0.04 3.51,1.16 4.74,-2.15 -3.03,-0.57 -6.18,-1.13 -7.93,-4.01 -2.99,-1.28 -5.04,3.32 -7.81,2.09 -1.68,-2.2 -4.97,-3.78 -4.59,-6.94 -1.58,-2.26 -4.54,-2.52 -6.84,-3.72 3.01,-0.21 2.65,-3.1 -0.2,-2.77 -6.07,-2.31 -7.72,-9.29 -10.33,-14.6 -2.42,-1.1 -4.9,-1.16 -5.92,1.34 -1.84,1.96 -4.18,1.97 -6.29,0.43 -2.67,-1.78 -3.79,-6.4 -7.79,-5.36 -2.51,-0.77 -4.24,2.4 -6.66,0.76 -4.42,-0.95 -7.78,-4.07 -12.05,-5.47 -1.87,-1.32 -3.8,-1.77 -5.52,0.17 -0.27,2.44 -2.51,2.71 -4.5,2.22 -3.65,-0.29 -5.04,-4.84 -7.84,-6.5 -1.55,0.25 -1.89,4.05 -4.47,4.49 -2.08,0.15 -3.58,-2.52 -5.1,-3.8 -1.02,-1.09 -2.8,3.74 -4.07,0.89 -2.45,-1.59 -2.98,-4.24 -4.53,-6.41 -0.49,-1.9 1.56,-6.03 -2.15,-5.31 -4.45,-0.29 -7.84,-3.81 -11.28,-6.28 -1.97,-2.7 -0.94,-6.7 -3.64,-9.09 -3.37,-1.87 -5.18,-5.18 -6.46,-8.69 -1.64,-4.08 -4.33,-8.01 -8.9,-9 -3.99,-0.41 -8.13,-0.36 -12.15,-0.37 -3.37,0.14 1.11,4.61 0.44,4.78 -2.24,-0.97 -4.59,-0.85 -6.63,0.19 -3.12,0.32 -6.61,0.16 -9.54,-0.98 -2.08,-1.54 -4.86,-2.91 -5.69,-5.53l-0.44,0.03z m-49.34,8.94c-0.03,1.09 0.83,-0.73 0,0z m-9.69,0.88c-1.79,0.64 -2,2.84 -0.28,0.69 1.15,0.39 7.48,0.12 5.09,-0.5 -1.6,-0.1 -3.21,-0.36 -4.81,-0.19z m18.53,1.06c0.45,3.21 0.81,1.46 0,0z m-31.41,1c-2.03,0.59 -1.28,4.28 0.3,1.19 1.64,-1.6 4.48,-0.97 6.64,-1.09 -2.3,-0.17 -4.65,-0.31 -6.94,-0.09z M108.19,134.75c-2.3,1.14 5.75,0.85 0.38,-0.03 -0.12,0.04 -0.27,-0.05 -0.38,0.03z m-12.13,0.84c-3.52,0.44 -2.54,2.25 0.41,1.38 2.85,-0.48 5.82,-0.48 8.59,-1.28 -2.97,-0.23 -6.02,-0.18 -9,-0.09z m-32.28,11.06c-1.1,1.27 2.99,3.13 2.5,3.16 1.33,-1.35 0.17,-2.16 3.86,-2.62 3.23,0.07 0.14,-2.1 -1.3,-2.1 -1.69,0.52 -3.38,1.04 -5.06,1.56z M174.25,186.75c0.36,2.67 4.51,2.84 6.35,4.51 3.41,1.6 7.66,0.4 10.79,2.95 3.11,1.84 7.08,3.66 10.49,1.79 1.4,0.19 3.63,2.7 2.89,3.67 -2.99,0.4 -0.11,3.94 -0.78,6.22 0.86,2.85 -2.01,3.95 -3.7,5.61 -3.46,-0.92 -6.93,-3.62 -10.57,-2.86 -2.23,0.9 -3.13,-2.21 -2.65,-3.92 -0.64,-2.4 -4,-3.06 -3.74,-5.78 -0.67,-2.42 -1.42,-4.7 -4.2,-4.81 -3.28,-1.01 -7.24,-4.77 -5.34,-8.44 0.16,0.35 0.31,0.71 0.47,1.06z","name":"Niedersachsen"},"mv":{"path":"m468.38,35.5c-3.45,0.91 -7.31,1.41 -8.93,5.06 -0.26,1.49 -3.68,7.61 -2.06,6.34 1.83,-1.19 3.02,-3.21 2.21,-5.18 0.53,-1.31 3.04,-4.63 4,-2.16 0.98,2.93 -2.17,4.94 -1.91,7.78 2.5,-1.15 4.75,-3.34 7.37,-1.07 2.42,1.29 5.16,2.48 7.7,0.7 1.54,0.46 0.47,5.05 0.71,7.19 0.58,3.31 -4.03,1.68 -5.65,1 -1.59,-1.22 -4.83,-1.69 -5.19,-3.75 1.7,-4.11 -3.26,-1.94 -5.53,-2.31 -2.04,0.6 -6.23,0.55 -4.31,3.72 1.26,1.16 4.35,-0.42 5.38,2.04 2.76,1.44 -0.43,4.39 -2.54,4.37 -2.75,-0.56 -4.74,4.2 -0.71,3.48 2.64,0.57 6.65,0.82 2.18,2.56 -1.86,1.21 -4.55,1.66 -6,3.25 -1.1,2.82 0.47,5.48 1.28,8.13 5.01,1.69 10.02,3.38 15.03,5.06 2.12,-0.23 1.09,-3.14 0.16,-2.97 -0.76,1.88 -3.98,1.99 -3.25,-0.63 2.8,-3.12 5.65,-6.81 9.31,-9 3.6,-0.24 7.24,-1.3 10.81,-1.09 1.21,1.32 2.75,4.02 0.25,4.94 -1.68,2.68 3.83,-2.34 2.14,-4.14 -1.15,-2.6 -3.19,-5.78 -6.42,-4.67 -2.75,-1.52 -4.42,-5.28 -3.91,-8.38 1.26,-2.37 3.94,-3.83 5.78,-5.54 1.61,-2.97 -1.68,-6.36 -4.75,-5.02 -3.75,0.66 -8.71,3.63 -11.63,-0.19 -1.83,-1.92 -3.2,-6.71 0.31,-7.56 2.78,-1.63 0.58,-2.73 -1.84,-1.94z m-11.72,12.09c-0.08,-0.04 -0.09,0.18 0,0z m-4.56,2.28c1.4,-3.26 1.29,-4.92 0.11,-0.61l-0.09,0.49 -0.02,0.12z M457,55.72c-1,0.46 -3.54,5.14 -1.38,3.6 1.48,-0.87 6.21,-2.64 2.44,-3.69 -0.36,-0.17 -0.71,0.02 -1.06,0.09z m-41.09,7c-0.25,1.57 -4.9,6.97 -0.87,4.76 3.72,-1.22 7.4,-2.58 10.67,-4.69 2.93,-0.95 5.29,-0.58 1.12,-0.91 -3,-0.7 -6.71,0.09 -8.98,-2.44 -0.65,1.09 -1.29,2.19 -1.94,3.28z m31.25,-1.97c0.11,0.78 4.7,-2.13 0,0z m-5.81,0.66c-3.54,0.47 -7.66,0.41 -10.88,0.66 0.67,2.11 2.68,1.92 4.62,1.67 3.01,-0.17 6.3,-0.07 8.66,-2.29 -0.79,-0.19 -1.6,-0.03 -2.41,-0.03z m1.56,3.03c-2.88,1.13 -1.21,5.18 -4.19,6.34 -3.6,2.14 -6.72,-2.29 -10.47,-2.06 -3.01,-0.89 -5.76,1.74 -8.35,3.01 -2.71,2.18 -6.52,4.43 -7.27,7.96 0.18,1.51 4.13,0.67 2.84,2.66 -2.29,1.22 -5.24,-0.3 -6.59,-2.13 -0.64,-1.13 1.18,-6.54 -0.53,-3.19 -3.22,4.08 -9.79,4.87 -11.29,10.52 -1.07,2.64 -1.85,5.58 -5.3,3.89 -4.59,-1.7 -8.52,1.77 -12.84,2.72 -3.31,0.47 -6.17,-1.62 -9.5,-0.72 -2.97,1.63 -5.73,4.31 -8.33,6.62 -1.96,2.01 -2.68,5.33 -0.14,1.47 1.06,-1.2 2.41,-4.78 4.19,-3.41 2.37,2.62 -1.24,5.31 -2.34,7.63 -1.89,1.4 -5.07,1.98 -4.85,5.06 -0.11,3.13 -0.5,6.25 -2.62,8.72 -1.16,-0.88 -3.68,-1.23 -3.47,-3.09 -1.92,-1.17 -4.21,-1.95 -5.89,0 -2.35,1.65 -4.97,-1.81 -3.77,-4.13 -1.91,-1.96 -3.3,-5.2 -6.59,-3.87 -5.1,-0.35 -9.02,3.11 -13.04,5.78 1.53,2.15 0.81,6.74 -2.56,5.38 -2.64,1.41 -7.07,3.37 -6.72,7.09 1.31,2.5 2.06,5.12 1.15,7.92 0.24,2.24 3.08,3.96 4.95,5.27 1.49,-0.13 2.88,-0.94 4.38,0.28 1.77,1.48 2.91,4.8 1.54,6.72 -1.07,2.51 -1.74,5.18 -3.94,7.19 -3.45,4.41 -6.57,9.53 -11.63,12.13 -2.85,-1.67 -4.12,1.25 -4.21,3.8 -1.04,3.05 -1.35,4.72 2.28,3.81 4.38,-1.22 5.62,3.97 8.63,5.73 2.06,1.71 4.79,0.13 5.56,-2.03 1.66,-2.26 4.66,-0.28 6.53,0.28 2.66,5.4 4.35,13.11 11.13,14.56 1.97,-0.26 2.54,2.31 1.09,3.34 1.98,0.75 4.2,1.46 5.28,3.41 2.92,0.33 5.86,0.78 7.88,-1.84 2.53,-1.04 4.17,0.11 6.2,0.92 3.41,1.17 3.57,-3.72 2.91,-5.91 -1.19,-2.85 2.75,-4.04 4.19,-5.91 2.26,-0.57 6.06,-0.68 6.92,2.18 2.22,-0.82 7.58,-0.29 4.18,-3.52 1.89,-0.52 5.64,-0.7 8.01,-2.08 1.84,-1.16 5.37,-2.23 4.75,-4.82 0.89,-1.93 2.17,-4.64 4.7,-3.27 2.88,0.17 5.85,-1.68 8.79,-1.42 2.69,2.85 6.38,3.54 9.59,5.47 2.1,1.42 2.54,5.89 5.86,4.62 1.42,-1.54 4.52,-1.23 6.97,-0.84 2.64,0.11 5.42,0.12 6.99,2.65 1.76,1.23 2.9,3.74 4.81,4.36 3.51,-2.08 7.9,-1.79 11.85,-1.57 1.87,0.92 -0.02,2.26 -1.2,2.88 2.73,2.02 3.96,-3.02 6.01,-4.14 1.85,-2.5 5.05,-5.4 8.21,-4.51 0.4,1.63 2.6,4.73 2.69,1.53 -0.18,-4.03 4.85,-6.14 8.16,-4.72 0.92,1.02 1.13,4.66 2.78,2.25 1.94,-2.52 5.64,-4.66 5.83,-7.92 -0.98,-3.87 1.53,-7.87 4.55,-10.15 2.94,-2.19 5.03,-6.55 9.2,-6.14 3.13,-1.46 0.88,-2.47 0.94,-4.94 -0.47,-2.01 1.66,-5.18 3.04,-2.12 2.09,2.5 4.8,4.66 5.08,8.15 0.55,3.39 3.31,3.78 6.08,2.65 2.41,-0.3 6.44,1.78 7.55,-1.21 2.62,0.79 6.91,-0.99 8.25,2.06 1.49,6.11 -3.45,10.78 -7.19,14.78 -1.98,3.1 3.33,1.46 5.03,1.98 3.6,0.68 6.06,-2.53 6.41,-5.79 1,-1.79 6.72,-1.16 5.01,-3.95 -1.75,-4.35 -2.83,-9 -3.99,-13.46 -2.18,-2.83 -4,-6.6 -2.87,-10.22 -0.22,-5.43 -3.03,-10.29 -3.44,-15.72 -0.42,-2.28 -2.57,-2.04 -3.28,-0.22 -1.81,2.36 -5.39,1.17 -7.84,0.59 -3.37,-1.38 -7.23,-1.87 -9.74,-4.72 -2.44,-2.52 -7.36,-2.95 -8.1,-6.78 1.68,-2.2 3.24,-5.36 5.94,-6.13 0.44,-2.04 -2.63,-3.55 -3.67,-5.18 -2.27,-2.24 -3.02,-5.61 -4.55,-8.32 0.21,-2.8 0.27,-5.88 -2.37,-7.5 -1.78,-3.54 -4.86,-2.15 -7.78,-0.99 -2.53,1.08 -5.51,1.39 -7.79,2.9 0.14,1.21 2.98,3.43 0.56,3.84 -3.2,0.18 -3.78,-3.49 -4.59,-5.69 -0.99,-1.26 -3.18,1.08 -3.03,-1.66 3.36,-2.44 -2.45,-0.94 -3.09,-2.5 -1.56,-2.33 -1.97,-5.95 -5.39,-6.49 -2.15,-2.65 -4.68,-0.2 -6.44,-0.76 -2.83,-2.27 -3.42,-6.13 -4.17,-9.38 1.49,-2.52 -2.16,-5.5 -3.62,-7.17 -1.75,-0.48 -3.25,0.75 -4.88,1.21z m52.69,22.19c-3.16,0.36 -1.48,4.22 0.37,5.25 1.73,2.04 0.07,5.76 2.48,7.75 1.23,2.84 2.71,4.73 5.49,2.07 1.56,-1.43 -2.24,-3.39 -0.78,-5.26 2.84,0.22 4.58,0.55 1.09,-0.38 -3.78,-1.63 -6.46,-4.91 -7.63,-8.84 -0.21,-0.29 -0.58,-0.78 -1.03,-0.59z M508.81,98.25c2.29,2.13 4.59,4.76 3.68,8.19 1.29,3.82 -2.55,2.56 -4.59,1.72 -1.01,-1.74 -1.1,-5.02 -3.97,-3.22 -1.8,2.49 2.15,3.83 2.07,6.36 1.37,2.89 -1.67,5.12 -4.12,5.88 -2.51,0.31 -1.55,2.32 0.67,2.35 4.16,0.13 7.86,-2 11.53,-3.58 2.18,-0.69 5.82,0.22 7.3,-1.22 1.43,-3.32 1.05,-6.01 -2.4,-7.65 -4.01,-3.08 -7.07,-7.49 -11.49,-9.99 0.44,0.39 0.88,0.77 1.31,1.16z m-153.22,8.91c-2.07,0.65 -6.19,2.56 -3.84,5.09 3.14,1.72 4.9,-0.57 5.38,-3.56 0.63,-1.6 0.03,-1.86 -1.53,-1.53z","name":"Mecklenburg-Vorpommern"},"he":{"path":"m231.91,351.28c-2.52,4.22 -6.22,7.61 -8.38,12.09 -3.47,2.99 -7.81,5.31 -10.28,9.09 -2.28,0.4 -5.74,0.13 -5.5,-3 2,-3.26 -3.47,-5.21 -5.91,-3.76 -1.41,0.82 -5.95,0.93 -4.65,3.28 0.64,2.39 3.13,3.23 3.37,5.4 0.17,2.42 -1.34,4.44 -3.94,3.29 -5.15,-0.39 -10.41,1.05 -14.95,3.35 -3.17,1.4 -4.72,4.59 -6.61,7.28 0.84,1.05 2.01,4.06 3.59,2.09 2.37,-0.9 6.57,-4.19 7.88,-0.28 0.22,4.19 2.13,8.77 -0.72,12.51 -0.71,2.75 -2.31,4.62 -5.22,4.99 -3.14,-0.43 -7.52,-2.41 -9.63,1.09 0.39,2.15 1.85,4.24 2.13,6.19 -1,1.73 -3.4,2.91 -4,4.63 3.11,2.85 -2.97,-1.27 -1.76,3.31 -1.97,2.72 -3.4,6.11 -5.96,8.25 -2.51,0.68 -5.22,-4.25 -7.23,-1.05 -2.7,2.64 -5.41,5.28 -8.11,7.92 0.49,2.48 3.93,4.74 1.63,7.26 -0.76,2.71 -4.3,4.36 -2.78,7.49 -0.8,2.92 2.77,3.49 2.12,5.75 -1.13,1.85 -1.06,5.6 -3.44,5.9 -1.97,0.22 -2.63,-1.53 -4.06,-2.13 -2.8,1.41 -5.48,6.02 -2.56,8.66 -0.49,2.46 -3.67,5.82 0.27,6.82 3.67,1.53 5.25,5.3 6.61,8.75 0.92,2.04 1.08,4.85 -1.7,5.37 -1.07,-0.93 -5.7,-1.33 -3.5,1.11 2.47,0.99 0.89,3.49 -1,3.99 -2.32,-1.08 -4.25,-1.29 -6.55,0.33 -2.11,0.73 -3.8,3.88 -1.08,4.86 2.02,1.08 1.39,4.09 0.28,5.59 -2.84,-2.01 -4.64,0.94 -6.72,2.5 -3.14,0.7 -2.62,2.78 -0.67,4.69 1.7,1.7 2.49,4.75 4.7,5.72 7.32,0.54 13.26,-4.85 20.19,-5.97 3.41,-0.25 5.55,2.38 7.21,4.9 2.7,2.09 3.72,5.69 3.75,8.95 -2.21,2.91 0.93,6.19 1.75,9.06 1.22,3.02 5.3,4.54 4.69,8.16 -0.83,2.19 -2.69,3.5 -5.03,3.69 -3.67,1.29 -0.58,5.33 -0.19,7.78 1.19,1.23 1.73,4.58 3.56,3.47 2.87,-0.09 4.72,3.15 6.02,5.29 0.45,2.46 3.64,2.83 4.61,0.44 0.84,-1.91 -0.18,-4.52 -1.35,-5.64 -0.49,-3.07 3.89,-2.29 5.74,-3.3 2.12,-0.86 2.95,1.54 1.33,2.77 -0.13,1.19 0.36,6.2 2.44,7.44 3.73,1.71 7.96,2.48 12.06,2.41 0.3,2.37 -0.95,4.21 -3.22,5.14 -2.12,0.41 -4.13,4.05 -2.97,5.83 3.16,0.98 4.62,-3.02 6.97,-4.37 2.62,-1.23 -1.27,-2.95 1.23,-4.7 1.83,-3.04 5.68,-3.23 8.67,-4.31 2.07,1.28 4.67,2.3 1.65,-0.28 -2.77,-0.69 1.28,-2 0.17,-4.09 -1.83,-2.61 0.09,-5.95 0,-8.84 0.67,-3.72 4.45,-6.62 2.87,-10.6 0.27,-3.23 -3.17,-2.82 -4.5,-5.35 -1.88,-1.31 -2.94,-3.09 -2.59,-5.43 1.25,-0.49 -0.57,-3.68 -0.1,-5.19 -0.37,-2.39 0.26,-5.26 -1.15,-7.31 2.19,-0.29 2.3,-4.03 0.75,-4.91 -3.55,0.11 -2.06,-3.18 -1.51,-5.43 1.26,-3.72 6.02,-2.87 8.99,-4.29 3.44,-0.94 6.85,-2.48 10.38,-0.98 2.53,1.03 6.93,-0.17 7.36,3.51 0.22,3.77 3.72,2.22 6.1,1.81 3.18,-0.12 0.4,-3.63 0.68,-5.44 -0.84,-3.13 -0.37,-6.51 1.38,-9.24 2.02,0.57 4.63,1.89 6.47,0.94 0.86,-2.28 1.78,-5.61 4.88,-5.28 3,-1.1 4.77,-5.15 2.22,-7.63 2.46,-1.43 0.46,-5.9 4.2,-5.65 2.35,-1.65 4.24,2.19 6.72,0.64 3.67,-2.12 7.61,-4.88 9.17,-8.99 0.87,-4.15 -0.43,-8.59 0.34,-12.69 1.59,-1.67 2.87,-3.11 0.88,-5.25 -1.95,-0.3 -4.67,-0.51 -5.91,1.03 2.68,1.72 0.06,4.83 -2.4,3.41 -3.4,0.47 -3.73,-2.19 -3.1,-4.85 1.64,-2.54 4.97,-5.54 3.53,-8.77 -2.61,-1.88 3.02,-1.21 0.62,-3.76 -0.39,-2.4 1.7,-5.24 4.25,-4.19 2.32,-0.16 2.52,-3.78 3.13,-5.59 -0.42,-3.72 -1.44,-7.39 -2.41,-10.94 0.58,-3.37 4.7,-2.07 6.91,-1.42 1.33,1.43 3.54,1.27 4.93,0.14 1.65,-2.01 -0.8,-4 -2.88,-4.28 -0.73,-2.4 -0.28,-5.7 -2.15,-8.05 -1.81,-2.17 3.2,-3.84 4.13,-1.92 0.85,2.09 2.04,3.15 0.8,0.19 -0.79,-1.77 1.55,-2.57 1.81,-3.75 -2.16,-0.34 -3.1,-3.03 -5.47,-3.13 -2.41,-1.32 -5.66,-1.92 -5.69,-5.28 -2.73,-1.26 -6.43,-1.62 -7.14,-5.14 -0.93,-2.28 -2.35,-5.29 -0.96,-7.39 -0.41,-3.77 -4.2,-2.41 -6.91,-2.04 -2.44,0.91 -4.65,3.07 -6.27,5.16 0.26,3.75 3.81,-0.17 4,2.53 0.6,2.43 -1.31,3.7 -3.35,4.44 -2.57,-2.31 -6.46,-3.25 -9.7,-4.62 -2.11,-0.64 -2.73,-3.33 -1.64,-5.16 0.52,-2.33 2.7,-3.11 4.88,-2.75 1.13,-2.01 -0.13,-5.09 -0.97,-7.03 -0.84,-1.85 -3.71,-4.21 -0.9,-5.87 1.12,-2.04 3.33,-1.71 4.5,-3.66 2.57,-0.35 -1.93,-2.01 -2.09,-3.38 -2.42,-2.04 -5.4,-1.51 -8.28,-1.84 -2.56,-0.15 0.13,-3.78 -1.82,-2.9 -0.65,0.13 -1.3,0.26 -1.96,0.4z m48.47,53.75c-0.2,0.03 0.16,0.35 0,0z","name":"Hessen"},"hh":{"path":"m273.31,139.16c-1.5,1.09 -0.93,4.3 -3.67,5.06 -1.61,1.47 -3.71,3.26 -5.89,1.85 -2.33,-0.78 -1.81,2.21 -3.43,3.24 -1.3,1.52 -3.26,5.5 -5.37,2.78 -1.64,-2.73 -2.78,-2.89 -3.11,0.48 -1.95,3.52 3.88,1.56 2.16,5.63 -0.89,2.25 0.93,3.48 1.47,5.56 1.11,1.96 3.5,5.01 5.03,1.63 1.82,-0.66 3.1,2.78 4.87,3.63 1.74,1.19 3.59,-1.92 4.1,-3.57 1.25,-2.32 3.61,0.86 4.66,2.15 1.9,2.2 3.93,4.76 7.21,3.97 1.13,-0.62 1.01,-2.97 2.91,-3.07 2.93,-1.45 -2.65,-3.59 -2.97,-5.78 -1.42,-2.02 -5.31,-2.65 -5.35,-5.94 -0.83,-2.64 0.75,-4.88 3,-6.12 2.02,-2.17 0.93,-4.31 -0.94,-5.97 0.01,-2.33 -0.49,-4.73 0.53,-6.88 -1.59,-1.66 -3.52,1.07 -5.22,1.34z","name":"Hamburg"},"hb":{"path":"m177.13,149.91c-1.02,1.81 2,3.93 2.44,6 0.78,1.49 -1.36,2.66 0.47,3.7 0.36,2.05 1.77,2.73 3.27,0.5 2.31,-1.97 -1.15,-5.18 0.62,-7.7 1.79,-3.68 -3.69,-1.91 -5.73,-2.54 -0.36,-0.05 -0.71,0.02 -1.07,0.05z m-2.34,39.47c1.3,3.24 5.12,3.63 7.78,4.94 1.52,2.61 1.31,5.93 3.86,7.69 2.1,1.22 1.38,3.71 2.04,5.46 1.64,0.31 3.99,-0.68 5.77,0.73 2.5,0.16 5.45,3.63 7.38,0.87 2.63,-1.56 0.74,-5.04 0.98,-7.51 -2.78,-1.97 1.76,-2.01 0.87,-3.11 -1.26,-2.73 -3.93,0.26 -6.25,-0.86 -4.35,-0.36 -7.69,-4.63 -12.29,-4.36 -3.91,0.3 -6.92,-2.67 -10.15,-3.86z","name":"Bremen"},"bb":{"path":"m499.25,149.81c-0.84,1.88 -0.81,4.34 1.28,5.34 -1.74,2.06 -3.79,3.29 -6.37,3.46 -3.18,2.74 -6.61,5.55 -9.05,8.91 -1.36,2.25 -1.54,4.68 -0.87,7.16 -2.28,3.16 -4.83,6.45 -8.06,8.63 -2.41,-0.12 -1.19,-4.5 -3.97,-3.53 -3,-0.61 -5.44,2.28 -5,5.15 -0.4,2.7 -4.01,1.19 -3.97,-1.02 -0.57,-1.97 -3.52,0.03 -4.56,0.75 -2.74,2.49 -4.73,6.13 -7.88,8 -1.99,-0.23 -3.86,-2.04 -1.25,-3.16 1.45,-1.47 -4.76,-0.14 -6.18,-0.46 -2.13,-0.19 -5.04,3.22 -6.6,0.49 -2.73,-2.51 -5.01,-6.52 -9.27,-5.91 -2.13,0.04 -5.13,-1.3 -6.45,0.69 -2.87,1.21 -4.79,-0.3 -6.25,-2.72 -1.52,-3.98 -6.92,-3.25 -9.48,-6.32 -1.8,-2.15 -4.65,0.11 -6.93,0.1 -2.38,1.26 -5.39,-1.14 -6.32,2.55 0.99,3.09 -2.96,4.01 -4.77,5.61 -2.15,1.15 -6.11,1.77 -7.27,2.46 2,2.09 -1.36,2.73 -2.94,2.85 -3.43,2.16 -3.88,-1.29 -6.73,-1.81 -3.03,-0.86 -4.57,2.1 -6.63,3.69 0.64,2.72 1.23,7.08 -1.72,8.53 -1.68,-0.03 -3.77,-0.05 -4.75,-1.47 -3.21,-0.91 -4.58,3.15 -7.53,2.47 -2.88,-1 -5.03,0.48 -2.09,2.67 1.36,1.69 3.08,4 5.08,1.55 1.94,-1.5 5.34,-2.28 6.7,0.42 1.5,2.04 4.32,1.65 6.53,2.39 1.23,-1.43 4.73,-0.25 2.95,1.62 -1.67,1.72 2.21,2.59 2.91,3.81 1.43,1.12 2.93,-2.01 4.58,-0.33 1.76,1.64 5.48,1.89 6.03,4.47 0.12,1.23 -2.72,2.23 -0.94,3.16 4.27,1.68 8.68,4.08 13.38,2.66 2.5,1.2 6.82,-4.08 4.61,0.18 -0.35,3.68 2.96,0.6 4.61,0.47 3.29,0.55 2.92,4.31 3.72,6.78 0.37,2.84 -3.59,3.22 -2.84,6.46 -1.66,3.81 3.69,5.99 2.3,9.81 0.77,2.86 -2.32,3.27 -3.45,4.66 -0.54,2.65 -2.13,5.71 -1.65,8.26 0.83,2.24 4.39,3.7 4.36,0.28 2.12,1.42 6.84,0.74 6.61,4.02 1.02,3.09 -2.67,5.39 -1.23,8.53 0.24,2.83 1.88,6.06 -0.69,8.26 -2.05,3.4 -2.35,7.41 -1.88,11.28 -2.17,2.79 -1.48,5.22 1.03,7.44 3.11,5.22 7.1,10.36 13.17,12.16 3.29,1.01 7.58,3.94 10.7,1.22 -0.29,-3.23 3.4,-2.12 4.94,-0.75 2.81,1.03 3.99,2.78 6.11,4.39 2.08,1.33 4.66,2.82 7.04,1.98 3.14,1.39 6,3.2 8.16,5.88 3.11,1.39 3.63,-2.03 5.78,-1.38 1.85,0.64 2.36,3.88 -0.16,3.41 1.53,4.44 1.98,9.42 4.53,13.28 -0.28,4.36 -5.19,5.81 -8.13,8.16 1.38,4.17 2.89,2.17 5.54,3.45 2.71,1.73 3.05,5.69 4.55,8.42 0.92,3.28 0.16,6.97 -0.56,10.28 1.12,1.84 2.33,3.34 4.61,2.31 0.97,-1.14 2.38,-3.45 4.49,-4.31 2.22,-1.43 4.58,-3.03 6.29,-0.12 4.07,3.53 9.06,7.27 14.8,6.16 2.09,-1.58 2.79,0.71 5.58,0.52 2.7,-0.23 5.1,-3 8.17,-1.96 3.29,-1.1 7.81,-0.26 9.47,-3.95 2.24,-4.34 2.1,-9.97 5.65,-13.77 1.52,-0.92 3.97,-0 5.84,-0.31 2.67,-0.5 5.34,2.24 7.62,0.72 1.65,-1.85 4.86,-1.52 6.32,-2.54 1.7,-2.16 5.35,-2.05 7.75,-3.38 2.31,-0.33 2.58,2.04 4.09,2.56 2.19,0.22 4.28,-0.47 4.14,-3.06 1.18,-2.26 3.58,-0.39 3.55,-4.22 -0.1,-2.81 -0.47,-5.99 -3.36,-7.26 -3.75,-2.16 -4.56,-6.65 -6.42,-10.21 -2.9,-0.63 -3.35,-5.09 -0.55,-6.35 3.76,-2.93 5.89,-7.61 5.36,-12.4 -0.5,-2.47 -0,-3.76 1.5,-6 1.18,-2.51 -0.13,-5.99 -3.13,-5.94 -2.3,-1.74 -2.72,-5.61 -0.53,-7.63 -0.28,-2.81 1.52,-6.55 -1.09,-8.56 -2.6,-1.24 -6.3,-0.29 -7.81,-3.19 -1.11,-3.05 -1.39,-6.47 -2.42,-9.42 -1.68,-2.31 -0.63,-6.4 2.17,-7.48 1.98,-2.33 3.3,-5.1 2.57,-8.22 0.38,-2.83 -0.31,-5.28 -2.51,-7.19 -3.54,-2.79 -8.55,-3.73 -11.34,-7.59 -2.56,-5.3 -8.11,-8.18 -12.88,-11.28 -2.02,-1.42 -4.87,-0.97 -6.69,-2.38 -2.03,-2.63 3.01,-4.81 1.15,-7.48 -0.64,-2.66 -2.69,-6.39 0.67,-8.11 3.25,-1.9 6.37,-3.89 8.77,-6.91 3.06,-2.56 2.89,-6.96 3.39,-10.59 -1.83,-1.72 -1.71,-4.98 -0.47,-6.84 1.2,-1.67 4.41,-4.79 3.03,-6.69 -2.15,0.19 -2.35,-3.69 -2.22,-5.41 -2.44,1.01 -5.3,1.53 -5.5,4.63 -1.15,2.4 -3.02,3.91 -5.78,3.72 -2.22,-0.47 -6.15,0.62 -7.41,-0.9 0.47,-4.6 5.82,-6.58 7.23,-10.78 0.81,-2.01 1.54,-5.13 -0.2,-6.73 -3.16,-0.57 -5.69,-0.28 -7.87,1.03 -3.28,0.28 -6.64,-0.73 -9.75,0.5 -4.23,-1.06 -2.75,-6.98 -5.95,-9.24 -1.05,-1.15 -2.07,-2.54 -3.15,-3.54z M484.13,240.25c2.62,1.78 3.22,5.59 5.07,8.15 1.73,3.05 5.13,4.94 5.9,8.6 -0.13,3.15 2.96,3.88 5.31,4.97 3.02,1.16 1.5,3.96 0.62,6.15 -2.11,1.18 -0.3,2.41 -1.81,3.94 -3.37,1.44 -6.8,-1.31 -10.22,-1.72 -2.61,0.29 -4.02,-2.66 -5.44,-2.59 -3.39,0.13 0.93,5.86 -3.25,4.2 -2.15,-1.56 -3.93,-2.85 -6.03,-2.56 -2.2,-2.21 -6.14,-1.55 -8.26,0.46 3.07,1.05 -3.31,1.77 -4.27,0.08 -2.48,-1.03 -0.87,-2.57 0.43,-3.73 -0.55,-1.26 -1.2,-3.36 0.31,-4.63 3.03,-2.14 1.73,-3.7 -0.71,-3.56 0.04,-2.5 -0.02,-5.34 0.62,-7.66 1.31,-1.47 2.88,-1.58 4.41,-0.5 1.08,0.35 -1.33,-2.46 0.8,-3.32 1.36,-1.61 4.71,-0.61 6.85,-0.8 2.24,1.02 3.85,-0.76 4.63,-2.66 1.77,2.37 2.44,0.08 3.29,-1.66 0.36,-0.52 1.13,-1.47 1.74,-1.16z","name":"Brandenburg"},"be":{"path":"m483.38,241.69c-1,1.58 -1.61,5.27 -4.03,2.88 -0.91,2.64 -3.81,2.59 -6.06,2.05 -1.91,-0.31 -7.28,0.09 -4.84,2.79 1.38,2.14 -2.25,1.68 -3.34,0.78 -3.18,-0.15 -1.8,4.36 -2.36,6.45 -0.09,0.87 5.17,1.04 2.51,3.18 -1.16,1.75 -4.04,3.69 -1.89,5.83 0.53,1.82 -3.82,2.76 -0.54,3.7 2.29,1.61 3.52,-2 6.07,-2.2 2.07,-0.34 5.08,-0.28 6.25,1.69 2.29,-3.28 5.18,4.71 6.09,1.16 -1.15,-2.62 1.9,-3.14 3.66,-3.85 0.63,3.56 5.17,2.88 7.8,4.18 1.96,0.26 4.94,2.32 6.26,0.28 -2.5,-1.19 2.5,-2.95 2,-5.26 1.05,-2.66 -3.24,-2.9 -4.77,-4.37 -2.69,-0.38 -1.4,-4.38 -3.15,-6.05 -1.61,-3.03 -4.93,-4.88 -5.94,-8.38 -1.14,-0.99 -1.96,-6.07 -3.71,-4.88z","name":"Berlin"},"by":{"path":"m273.66,464.44c-1.31,1.91 -3.76,2.78 -3.5,5.34 -1.83,4.59 -6.12,7.95 -10.5,9.94 -2.67,1.02 -4.62,-2.49 -7.15,-0.61 -1.54,0.74 -0.64,3.49 -2.13,4.58 2.4,3.04 -0.04,7.53 -3.44,8.47 -3.38,-0.45 -3.01,4.07 -4.66,5.5 -2.16,0.47 -4.23,-0.33 -6.28,-0.91 -2.54,3.91 -0.46,8.53 0,12.63 -0.53,2.87 -4.66,1.74 -6.9,2.55 -3.16,0.27 -1.64,-5.68 -4.98,-5.22 -4.19,-0.72 -8.41,-2.46 -12.49,-0.42 -2.97,1.16 -6.84,1.23 -9.32,2.99 -0.59,1.48 -2.41,4.44 -0.69,5.28 3.02,-0.37 2.55,4.03 2.28,5.63 -2.37,0.86 0.17,4.18 -0.45,6.12 0.28,2.66 -0.27,5.78 1.89,7.78 -3.88,-0.85 0.14,3.73 1.52,4.58 0.84,1.94 3.96,0.92 3.59,3.64 1.27,2.88 0.6,5.62 -0.78,8.31 -2.26,2.93 -2.47,7.6 -2.42,11.23 1.24,2.27 4.6,0.89 6.75,1.12 2.16,0.04 4.75,-2.13 4.73,-4.03 -0.34,-2.04 2.18,-5.23 4.72,-3.63 1.87,0.74 5.34,1.32 4.23,-1.45 1.6,-1.24 -0.63,-7.5 -0.96,-4.79 0.79,2.49 -3.31,2.3 -3.52,0.13 -0.83,-1.56 -3.4,-4.82 -1.19,-6.09 3.07,-0.15 6.37,-1.05 9.34,-0.19 0.41,-2.46 4.94,-2.22 3.88,0.41 0.59,1.49 3.45,3.68 4.43,1.04 1.16,-1.1 4.96,-5.66 4.94,-1.88 -0.59,2.44 0.18,5.72 -1.59,7.45 0.33,2.92 3.79,0.57 5.16,-0.39 2.48,-0.32 5.61,-3.48 7.29,-0.3 2.99,3.39 2.07,8.94 5.01,12.52 2.18,0.31 2.43,3.58 2.41,5.6 0.45,1.81 -0.72,3.89 -0.34,5.16 2.77,0.82 6.24,0.65 7.69,-2.25 -0.15,-1.12 -1.91,-2.61 0.74,-3.68 2.83,-1.31 3.76,2.79 4.2,4.84 -1.95,1.56 1.87,3.4 1.31,5.57 0.26,2.1 4.02,5.65 0.6,6.68 -2.91,-0.9 -2.81,3.3 -1.87,5.04 0.96,2.51 3.11,4.68 1.16,7.27 0.44,2.52 -1.72,6.37 1.65,7.44 1.89,1.55 4.82,1.6 5.41,4.43 1.71,2.58 1.5,5.88 2.31,8.79 -2.03,1.94 3.23,2.14 4.31,3.59 2.13,2.06 5.86,2.95 6.29,6.28 3.84,2.87 1.91,8.3 2.08,12.46 0.25,2.64 -0.94,5.5 -2.07,7.44 -0.04,3.1 4.34,2.42 3.61,6.41 2.49,1.05 0.06,3.97 -1.86,4.33 -1.61,1.16 -4.23,0.12 -2.18,-1.56 2.29,-3.25 -3.46,-0.68 -4.81,-0.69 -2.23,0.84 -5.79,-3.18 -5.97,0.9 -0.14,3 3.91,4.63 3.42,7.93 0.53,2.67 0.99,5.81 0.27,8.32 -1.49,1.89 -3.93,-0.58 -5.06,1.19 0.32,2.29 -3.52,3.66 -4.94,5.41 -3.13,1.93 -4.28,-3.47 -7.13,-0.01 -2.35,0.12 -0.74,3.36 -2.58,4.82 -1.74,2.44 -2.43,5.75 -0.16,8.06 1.31,2.7 4.08,4.51 3.75,7.78 0.56,4.38 1.13,8.84 2.71,12.9 2.91,1.82 1.6,5.52 2,8.41 0.45,2.66 -1.86,4.17 -1.66,6.72 0.19,1.55 -3.47,0.81 -1.84,3.13 2.61,1.07 0.38,3.66 0.87,5.81 0.2,2.47 -0.14,5.78 2.07,7.38 0.5,2.56 -3.74,2.92 -1.81,6.18 1.02,3.01 3.86,6.55 1.16,9.46 -1.18,1.16 -3.19,0.63 -3.38,2.95 -1.52,3.81 -0.35,-4.27 -2.92,-3.81 -1.88,-0.93 -3.51,0.34 -4.08,2.09 -3.48,0.28 -7.46,-0.44 -10.66,0.7 -2.62,1.93 -4.17,6.22 -7.96,5.49 -1.72,0.26 -2.84,-2.34 -4.53,-0.51 -3.88,1.61 -1.7,3.37 1.37,4.04 3.22,2.32 4.79,-0.35 6.38,-2.97 2.19,-2.61 6.67,0.35 5.03,3.47 -1.46,1.59 3.12,2.56 4.5,2.46 2.2,0.75 5.22,-2.54 5.71,-2.37 -1.26,2.65 0.2,5.16 1.79,7.23 3.74,-0.93 5.96,3.27 7.63,5.97 -1.64,1.92 -2.48,3.42 -1,5.94 0.03,1.72 5.17,0.51 4.35,-1.56 0.81,-1.86 3.6,-1.1 5.09,-0.53 2.05,2.24 -1.68,3.98 -1.81,6.26 -0.21,1.48 -3.48,5.59 -1.04,5.45 5.9,-0.28 10.64,-4.27 13.65,-9.1 1.68,-2.49 4.2,-4.8 5.23,-7.51 -0.27,-1.73 0.37,-4.61 -1.96,-4.47 -1.78,-2.98 -0.76,-6.77 -1.03,-10.06 0.59,-1.59 4.6,-2.06 3.97,0.09 -1.67,2.23 -0.39,3.45 2.34,3.77 2.31,0.63 4.34,0.47 4.81,-2.09 1.65,-2.51 5.13,-0.08 7.59,-0.22 0.5,2.03 3.14,2.52 5.19,3.38 2.99,1.48 5.86,-2.19 8.72,-1.09 3.48,2.5 -1.05,3.09 -0.97,5.59 2.55,0.29 4.83,1.11 6.25,3.38 2.96,1.58 0.77,3.77 1.16,5.09 4.01,0.78 8.16,-0.05 11.5,-2.41 2.24,-1.08 5.28,-2.46 7.66,-1.16 -0.63,2.06 -2.84,4.65 1.39,2.92 0.99,-2.2 2.51,-4.2 4.63,-5.64 2.78,-1.69 3.97,-4.98 6.66,-6.66 2.2,2.25 6,0.82 8.75,0.25 1.72,-1.5 -0.11,-4.24 1.75,-6 1.27,-3.31 5.21,-1.69 7.87,-2.01 3.14,-0.06 6.26,-0.02 9.34,0.6 1.3,-3.59 5.97,-3.64 9.18,-3.87 2.61,1.43 5.36,-1.54 7.57,0.5 2.56,0.03 5.94,1.12 8.03,-0.19 -0.56,-3.08 -2.75,-5.66 -1.81,-8.97 1.68,-1.6 3.23,-4.06 5.5,-4.97 2.05,1.73 -0.97,3.82 0.9,5.81 0.74,1.55 6.18,-3.23 5.07,-0.41 2.78,1.55 7.13,-0.47 8.4,3.24 1.5,2.9 4.05,3.71 6.55,1.34 2.39,-0.55 1.97,-4.34 4.92,-3.93 3.45,-1.43 7.22,-0.35 10.38,1.04 0.63,2.57 4.26,5.4 1.53,7.59 -1.91,3.64 3.48,5.29 5.61,7.15 2.86,2.07 5.93,3.86 9.26,5.04 1.6,-1.29 3.65,-3.83 2,-5.66 -1.98,-1.39 0.16,-4.42 -0.13,-6.41 0.81,-2.05 3.05,-3.55 3.5,-5.53 -1.37,-2.88 -2.02,-7.29 -5.72,-7.94 -0.69,2.59 -4.42,1.51 -6.31,1.34 -1.86,-0.73 -2.16,-2.62 -0.73,-4.04 1.53,-3.69 4.03,-7.15 5.39,-10.77 -2.14,-3.41 -3.7,-7.7 -6.59,-10.34 -2.88,0.4 -3.64,-2.11 -3.9,-4.41 -1.24,-4.49 -8.32,-5.42 -8.04,-10.73 0.04,-2.8 4.04,-3.87 5.63,-5.89 1.81,-1.22 1.17,-3.89 2.78,-4.97 2.57,-0.91 6.07,0.24 7.47,-2.89 1.29,-1.84 2.29,-3.74 4.7,-4.4 2.08,-2 5.15,-0.22 7.17,-2.39 2.7,-1.73 6.58,0.63 8.88,-2.3 3.06,-1.95 5.85,-4.79 7.85,-7.65 0.43,-2.52 2.26,-5.13 0.38,-7.38 0.45,-3.1 3.3,-6.59 0.44,-9.38 -0.61,-1.41 4.07,-1.2 4.41,-3.5 -0.1,-4.04 4.08,-0.04 6.17,0.11 3.24,1.6 5.97,4.3 9.52,5.26 3.15,-4.15 7.21,-9.07 5.25,-14.64 0.5,-2.8 -3.41,-5.03 -1.06,-7.39 1.18,-2.53 1.51,-5.28 -0.56,-7.48 -1.75,-2.45 -3.35,-5.1 -5.19,-7.42 -2,1.56 -5.42,0.69 -5.99,-1.97 -0.86,-2.58 -2.84,-4.62 -4.76,-6.5 -2.32,-0.51 -5.25,-0.27 -4.06,2.66 -1.49,2 -4.02,-1.61 -5.78,-2.26 -3.51,-1.84 -1.34,-7.26 -4.67,-9.54 -1.77,-2.1 -3.92,-4.14 -6.4,-5.23 -2.11,1.09 -4.33,0.73 -6.1,-0.79 -2.35,-0.65 -1.29,-3.34 -2.28,-4.52 -5.62,-4.34 -8.22,-11.7 -13.85,-16.05 -0.96,-0.66 -5.12,-1.7 -4.56,-0.67 1,2.66 -3.26,0.86 -4.59,0.92 -2.67,0.16 -4.59,-1.69 -5.1,-4.2 0.33,-2.99 -3.95,-3.91 -5.58,-5.98 -1.3,-1.16 -4.06,-3.42 -2.45,-4.96 0.01,-2.41 0.31,-4 -2.29,-4.05 -2.07,-0.53 -1.46,-1.98 -2.8,-3.5 -2.08,-3.55 -3.13,-7.39 -3.48,-11.47 -1,-2.47 -5.61,-0.9 -6.56,-3.96 -1.46,-1.68 -3.4,-4.99 -0.08,-5.91 3.24,-0.92 2.39,-4.05 3.21,-6.53 0.88,-3.28 4.17,-5.56 3.4,-9.15 -1.69,-2.78 -3.02,-7.24 -7.16,-6.34 -2.89,-1.46 -5.43,-3.31 -7.5,-5.81 -4.37,0.47 -3.42,-1.95 -5.22,-4.41 -1.08,-0.95 -3.08,-0.2 -3.19,-2.3 -0.69,-1.94 -0.29,-3.97 0.91,-5.48 -1.13,-3.44 -4.24,-5.4 -7.25,-6.96 -2.59,-1.3 0.21,-3.74 1.9,-4.17 -1.15,-4.86 -6.38,-5.68 -10.5,-6.63 -1.66,-1.44 1.51,-4.7 -1.45,-5.85 -1.47,-2.96 -3.98,-0.6 -6.15,-0.03 -4.99,1.83 -10.54,1.94 -15.74,2.63 -0.77,-0.67 -2.77,-2.61 -3.03,-0.5 -0.96,2.08 -4.29,1.95 -5.15,-0.33 -1.46,-1.7 -1.05,-3.98 -3.62,-3.71 -2.87,-0.72 -2.28,-4.47 -1.51,-6.47 2.3,-1.83 -2.65,-2.89 -4.3,-2.43 -1.7,1.3 -2.92,3.72 -5.37,4.41 -1.61,-1.19 -1.85,2.9 -0.04,2.88 0.66,3.05 1.58,6.38 1.39,9.48 -1.36,2.21 -0.38,7.05 -3.72,7.01 -1.95,0.12 -2.86,4.45 -5,1.12 -2.19,-1.15 -2.98,-4.4 -0.24,-5.3 -0.32,-1.92 -3.58,-5.33 -4.44,-2.09 -2.92,1.68 -7.59,1.16 -8.96,-2.28 -0.97,-2.98 -4.83,-0.87 -7.1,-1.48 -2.57,0.83 -5.91,1.76 -7.83,3.43 -0.82,2.98 1.43,4.47 3.69,5.77 1.52,2.24 6.27,1.22 5.55,4.87 -1.22,3.47 -5.4,0.77 -7.88,0.59 -0.91,0.73 1.13,4.84 -1.63,4.69 -2.37,-0.99 -5.13,-1.74 -7.34,-2.66 -1.81,-3.33 -1.13,-7.07 -0.75,-10.66 -3.86,-0.79 -8.92,-2.08 -9.69,-6.56 -1.65,1.27 -4.99,0.71 -4.64,-1.87 -0.45,-2.76 -1.64,-5.72 -3.61,-7.69 -2.74,-0.99 -5.53,-1.93 -6.83,-4.79 -1.25,-3.09 -5.32,-0.4 -7.74,-0.8z m46.75,26.38c-0.1,0.03 0.04,0.06 0,0z","name":"Bayern"},"bw":{"path":"m233,542.31c-1,3.03 -3.8,0.55 -6.25,1.41 -1.85,0.3 -6.11,-0.67 -4.1,2.56 0.5,1.4 3.45,5.79 2.97,1.91 0.74,-2.88 3.54,0.29 3.5,2.12 -0.05,2.12 0.13,4.28 -0.67,5.91 -2.21,2.88 -6.93,-2.7 -8.36,1.34 0.26,1.89 -0.96,3.78 -2.66,5.38 -2.87,1.47 -6.48,1.36 -9.56,0.91 -0.14,1.71 -1.09,2.75 0.88,3.56 2.16,2.43 -1.84,4.61 -2.82,1.5 -2.24,-0.41 -4.9,0.87 -7.01,1.83 -1.86,1.31 -3.21,3.14 -1.07,4.79 -2.58,2.03 -4.76,4.93 -7.53,6.53 -2.28,0.77 -4.85,-1.67 -3.07,-3.7 0.44,-3.45 3.31,-3.76 5.49,-5.64 2.15,-2.77 -2.95,-1.33 -4.33,-2.33 -3.36,-0.68 -8.66,-1.27 -8.78,-5.66 -0.37,-2.27 -2.39,-6.18 0.16,-6.35 -1.56,0.22 -6.19,0.51 -5.66,2.03 1.02,1.01 1.63,3.91 1.34,5.81 -0.91,2.56 -4.61,4.01 -6.17,1.22 -1.23,-2.27 -2.8,-5.47 -5.58,-5.87 -1.35,0.5 -2.27,2.96 -1.13,4.34 0.64,2.82 1.72,5.99 1.41,8.75 -1.19,1.47 2.13,0.8 2.94,1.09 2.56,1.28 -0.68,4.01 0.44,6.03 0.58,2.78 -1.68,4.86 -3.44,6.5 -0.2,1.61 2.95,0.95 2.5,3.03 -0.5,1.7 -2.89,2.29 -3.8,3.97 -1.51,1 -4.09,2.21 -3,4.19 -0,4.19 -1.63,8.4 -2.57,12.44 -1.88,2.38 -4.07,4.74 -4.06,8 -0.94,3.32 -4.33,5.15 -7.25,6.25 -3.09,4.3 -5.58,9.02 -6.75,14.19 -2.02,2.94 -5.4,5.15 -8.91,5.69 -0.21,2.82 -1.4,5.14 -3.56,6.99 -1.36,2.17 -3.49,3.53 -5.66,4.61 -1.15,2.67 -3.64,5.13 -2.5,8.22 0.36,2.98 -0.28,5.69 -1.97,8.15 -1.95,4.34 -4.99,8.87 -3.01,13.76 0.98,2.33 -1.6,3.46 -3.29,4.06 -1.58,3.35 -1.03,7.85 -3.97,10.71 -3.45,3.81 -5.74,8.63 -5.57,13.85 -1.32,3.83 3.9,5.48 3.32,9.25 -1.3,3.08 -3.94,5.46 -4.57,8.93 -0.87,1.91 1.04,3.96 -0.54,5.81 -1.06,2.51 -2.87,5.19 -1.04,7.86 1.18,2.15 -0.92,4.15 -2.35,5.35 -0.31,3.89 3.1,6.22 5,9.16 2.34,1.03 6.63,0.35 6.5,3.84 -1.16,1.4 -4.38,2.08 -0.94,3.62 2.67,0.19 5.38,-1.24 7.85,-2.15 1.44,-1.71 2.81,-3.83 5.44,-3.09 2.67,-0.79 2.95,2.96 5.54,2.9 3.15,1.3 6.81,1.64 9.99,0.41 0.13,-3.3 4.53,-3.63 6.59,-5.48 2.38,-1.41 5.39,0.37 7.78,0.98 0.79,1.29 -0,3.08 2.19,3.78 3.61,0.25 7.37,1.32 10.72,-0.47 -3.18,-2.2 -0.41,-3.55 1.74,-5.09 1.44,-1.37 5.34,0.59 4.6,2.72 0.03,1.73 2.81,-2.43 2.91,-3.66 0.99,-2.17 -2.08,-3.31 -3.78,-2.38 -2.21,0.79 -3.16,2.58 -5.97,3.13 -1.88,-0.81 -4.32,-2.21 -5.31,-4.16 0.59,-3.61 2.99,-6.72 5.06,-9.63 1.63,-2.24 5.73,-0.38 6.44,-3.38 2.06,-2.35 5.55,0.44 4.49,3.47 2.07,0.67 0.21,-4.19 4.06,-1.25 1.57,1.2 4.32,3.45 2.25,5.23 0.1,2.76 1.41,4.58 4.22,5.01 1.74,-2.24 3.46,-0.92 5.76,1.59 2.1,2.97 5.8,0.78 7.96,-0.93 3.82,-2.7 8.65,-0.24 12.27,1.62 3.55,2.04 4.43,-1.99 2.13,-4.27 -0.59,-2.2 -2.12,-3.67 -4.12,-4.07 -2.4,-1.85 -6.01,-3.5 -6.96,-6.5 0.3,-2.1 3.03,-1.62 3.78,-0.16 3.5,2.46 7.48,4.47 10.66,7.31 -0.21,3.96 4.69,5.62 7.5,7.39 1.67,0.53 3.72,-1.14 5.59,-0.11 2.75,0.87 6.81,1.33 7.03,4.97 0.46,3.2 4.49,4.9 6.69,2.27 1.24,-1.5 4.61,-2.56 5.4,-0.7 4.17,1.33 6.15,-3.91 8.97,-5.72 3.32,-0.45 7.13,0.12 10.19,-0.66 1,-2.57 4.28,-2.37 6.22,-1.28 0.84,2.31 0.58,2.71 2.56,1.13 2.97,-0.39 2.03,-4.58 0.76,-6.39 -1.17,-2.02 -2,-5.8 -0.79,-7.3 3.32,-0.17 0.06,-2.21 -0,-3.93 -0.63,-3.04 -0.86,-6.31 0,-9.32 -2.23,-0.74 -2.32,-4.76 0.44,-4.66 -0.41,-2.68 2.08,-4.21 1.66,-6.88 -0.15,-2.82 0.59,-6.09 -1.94,-7.94 -2.26,-5.15 -1.96,-11.11 -3.49,-16.32 -1.93,-2.69 -4.53,-5.55 -4.67,-9 0.46,-2.92 3.93,-5.48 2.72,-8.47 0.1,-0.35 4.87,-3.47 6.42,-2.05 2,3.2 4.93,-0.95 6.82,-2.36 0.33,-1.38 1,-2.91 3.14,-2.96 3.03,1.76 2.98,-2.24 2.69,-4.25 -0.32,-3.5 -1.14,-6.78 -3.64,-9.37 -0.98,-1.42 0.15,-4.75 1.23,-5.16 3.02,1.48 6.11,1.47 9.25,0.41 2.37,-0.94 3.55,1.55 1.82,3.19 0.08,1.06 5.19,-1.87 2.3,-2.88 -0.25,-2.1 -0.85,-4.44 -3.47,-3.91 -1,-3.13 0.42,-4.65 1.54,-7.33 0.09,-4.38 1.32,-9.19 -0.13,-13.38 -2.03,-1.38 -1.82,-4.46 -4.4,-5.39 -2.47,-2.1 -5.26,-3.59 -8.29,-4.72 -0.45,-2.63 0.5,-4.11 -0.61,-6.97 -0.35,-3.23 -2.39,-5.85 -5.43,-6.81 -1.8,-1.05 -4.02,-2.25 -3.05,-4.75 -0.53,-2.57 0.99,-5.27 0.62,-7.5 -1.67,-2.84 -3.08,-6.33 -1.5,-9.56 2.72,0.17 4.05,-1.19 2,-3.69 -1.12,-2.08 -1.1,-4.65 -2.84,-6.37 -0.05,-1.52 1.05,-2.79 -0.28,-4.24 -1.33,-3.13 -3.46,0.38 -1.36,0.89 -1.36,2.26 -3.18,4.9 -6.23,4.2 -1.84,0.68 -5.99,-0.78 -4,-3.06 0.32,-2.43 0.8,-5.95 -0.91,-7.66 -1.91,-0.49 -2.69,-3.58 -3.13,-5.51 -1.12,-3.07 -1.07,-6.84 -4.03,-8.84 -3.37,0.71 -6.2,2.77 -9.34,3.81 -2.15,-0.26 -3.2,-3.12 -1.25,-4.19 -0.15,-1.71 1.98,-8.34 -1.11,-4.8 -1.56,1.02 -3.09,4.67 -5.17,2.44 -1.38,-0.64 -3.13,-1.84 -2.32,-3.58 -0.34,-0.5 -0.91,-0.09 -1.41,-0.13z m-57.69,212.03c0.26,4.67 5.28,-0.76 0,0z","name":"Baden-Württemberg"}}});
--- /dev/null
+jQuery.fn.vectorMap('addMap','greece',{"width": 700, "height": 637, "paths":{"30":{"path":"M420.84,610.62l0.6,-2.95l2.52,-1.21l1.51,0.78l1.03,-1.03l0.13,-5.12l0.49,-2.19l0.69,-0.69l2.13,3.43l4.4,-0.52l1.93,-6.25l0.03,-3.74l-2.04,-2.19l1.58,-2.32l-1.7,-2.35l0.23,-0.51l1.97,1.18l0.59,-0.23l0.34,-1.21l3.46,0.17l0.95,-1.95l1.37,1.01l1.07,-0.67l0.98,0.21l-0.15,0.88l1.02,0.9l1.19,0.12l-0.76,1.22l0.24,1.97l0.55,1.17l1.5,0.9l2.54,0.2l6.51,-0.8l1.36,1.17l2.4,-0.2l0.93,0.45l11.41,-0.75l0.68,1.54l1.45,1.2l0.91,0.09l0.73,1.11l4.33,-0.05l-0.1,1.51l-2.21,1.89l-2.68,0.03l-1.29,0.98l0.02,1.76l-1.56,3.51l0.34,1.46l1.06,1.18l6.05,2.92l0.88,0.98l-0.27,2.21l2.54,1.09l1.24,2.29l0.05,4.61l-3.61,0.77l-2.45,-0.82l-3.17,0.44l-3.4,-1.09l-3.46,1.49l-3.85,-0.2l-1.15,1.54l-1.66,0.85l-4.03,1.04l-0.59,-0.72l-4.34,0.12l-2.71,1.72l-0.64,-0.51l-3.66,-0.32l-2.35,1.19l-2.49,-0.5l-1.86,0.83l-0.55,-0.7l-2.58,0.65l-6.38,-1.29l-2.17,0.32l-1.42,1.22l-1.83,-0.47l-2.65,0.59l1.84,-2.13l-0.76,-1.24l0.45,-0.4l-0.38,-1.96l0.08,-0.94l1.05,-0.6l-0.02,-1.74l-1.25,-4.67l-1.74,-1.49l-1.46,-0.17ZM459.6,579.71l-0.31,-0.33l1.25,-0.46l0.42,-0.92l1.68,1.17l-0.16,1.03l-0.79,0.27l-0.35,-0.81l-1.75,0.05Z","name":"Heraklio"},"28":{"path":"M275.61,38.56l4.99,0.09l0.68,0.66l3.98,0.4l1.89,-0.26l5.64,1.51l6.68,-0.2l3.51,-1.66l1.13,-3.67l4.09,-2.23l2.08,0.08l1.54,3.26l3.52,-1.75l1.79,-1.66l1.4,0.24l1.45,-0.73l3.6,0.73l3.36,-0.66l1.72,1.77l2.12,-0.35l1.54,1.17l2.45,0.01l-0.2,1.86l1.18,4.08l6.66,3.06l-1.35,4.61l0.6,1.63l3.83,3.09l4.69,5.15l4.14,2.81l4.19,0.99l2.35,2.15l1.9,-1.23l2.58,-0.02l1.37,0.93l1.75,2.91l5.29,3.67l-0.4,1.12l0.82,2.63l-1.09,3.5l-5.39,4.06l-1.72,2.35l-4.08,3.11l-12.05,3.17l-2.08,0.73l-1.58,1.27l-12.88,0.02l-3.68,-2.34l-2.51,-2.52l-1.88,-0.52l-2.98,1.0l-1.01,-0.36l-0.97,-2.77l-4.22,0.31l-0.97,-1.0l-0.6,-3.84l-1.36,-0.94l-0.48,-1.48l-2.98,-0.46l-2.04,-4.12l-2.87,-3.05l-3.59,-2.52l1.03,-2.29l-0.51,-1.9l-12.37,-4.52l-4.06,-4.34l0.16,-1.31l-0.87,-1.43l-0.55,-0.13l-4.51,2.8l-2.52,-0.63l-1.11,-0.86l-0.5,-1.16l1.05,-4.05l-1.2,-3.99l0.4,-5.98Z","name":"Serres"},"29":{"path":"M261.09,114.12l-4.19,-1.83l-2.31,-5.35l-4.42,-4.66l-5.66,-0.79l2.39,-2.42l2.8,-1.76l1.25,0.19l0.43,-0.55l-1.82,-2.64l-0.88,-2.62l-1.62,-1.01l3.07,-0.25l0.34,-1.26l3.87,0.84l1.55,-0.54l-0.31,-1.25l1.26,-1.51l1.37,-0.67l0.9,0.31l-0.17,2.39l0.9,2.71l2.64,2.12l4.45,-2.1l4.6,0.43l5.98,-1.36l1.63,0.13l1.96,-2.29l4.89,-2.55l-0.05,-3.85l0.66,-0.94l4.95,-2.22l5.91,-0.85l2.36,-2.28l4.58,-1.55l1.0,-0.95l1.64,1.32l1.99,4.11l2.92,0.41l0.44,1.38l1.31,0.86l0.59,3.77l1.3,1.44l4.38,-0.17l0.52,2.34l1.6,0.77l3.25,-1.0l1.41,0.45l2.38,2.44l4.04,2.49l10.33,0.14l-2.67,4.56l-0.44,2.83l0.74,0.82l3.21,0.88l1.91,2.27l-6.67,-0.18l-3.58,3.38l-1.44,0.69l-4.12,-0.43l-2.67,2.17l-7.05,-1.43l-3.01,4.83l-1.1,0.85l-1.23,-0.64l-2.84,-0.2l-2.18,3.74l-4.04,-0.84l-4.81,1.68l-2.33,2.65l-0.25,1.41l0.57,2.49l-2.37,2.06l-1.23,2.15l-1.07,0.02l-0.99,-0.77l-0.34,-3.73l-2.04,-0.5l-1.49,1.22l-1.06,2.4l-0.76,5.1l-0.73,-1.84l-2.64,-2.37l-1.79,-0.28l-1.36,-0.99l-2.85,0.18l0.64,-0.61l-2.23,-3.32l-1.36,-0.83l-0.83,-2.98l-1.17,-0.84l-1.99,-0.38l0.24,-2.01l3.24,0.44l3.59,-0.39l3.02,-1.19l2.7,-2.11l0.31,-1.53l-3.55,-2.77l0.9,-1.0l0.37,-2.36l-1.15,-1.6l-1.81,-0.6l-0.81,0.32l-1.58,-1.03l-2.77,1.87l-1.81,-0.6l-0.44,1.13l0.88,1.05l1.26,0.16l-0.15,1.67l-3.95,2.47l-2.1,-0.7l-2.56,1.06l-0.45,0.56l0.56,1.15l-0.98,0.74l0.39,2.02l-1.09,-0.6l-0.49,0.48l0.19,1.0l-1.11,-1.76l-0.5,0.16l-0.42,-0.86l-0.77,-0.17ZM278.81,128.1l-0.0,0.0l-0.05,-0.0l0.01,-0.01l0.05,0.01Z","name":"Thessaloniki"},"34":{"path":"M502.84,458.49l0.72,0.26l1.34,-1.64l0.88,0.18l0.59,-0.6l2.96,0.43l1.56,-0.58l0.62,-0.58l-0.31,-0.68l1.34,-0.35l-2.04,-1.11l0.41,-0.71l4.64,-1.26l4.73,-2.72l1.13,-0.93l-0.51,-0.8l-1.29,-0.08l1.12,-1.04l2.19,0.13l0.42,-0.94l2.71,2.05l2.69,1.14l-0.98,0.1l-0.97,-0.78l-2.04,0.3l-4.1,1.71l-2.02,2.22l-1.13,0.23l-2.09,2.09l-0.42,1.29l-2.97,2.51l-3.02,0.1l-1.95,1.66l-2.14,-0.13l-2.06,-1.47ZM515.0,449.74l0.37,-0.11l0.75,0.15l-0.19,0.14l-0.92,-0.18ZM501.66,496.87l2.8,-3.07l4.2,2.63l0.67,1.13l1.66,0.48l-0.67,0.25l-1.68,-0.93l-4.01,1.0l-2.45,-0.78l-0.52,-0.72ZM506.66,429.4l1.43,-1.27l1.41,1.52l-0.07,0.81l-1.4,0.35l-1.59,-0.92l-0.31,-0.87l0.53,0.36ZM509.09,505.08l0.62,-0.01l0.04,0.15l-0.39,0.22l-0.28,-0.37ZM497.64,473.35l0.11,0.0l-0.04,0.04l-0.07,-0.04ZM496.21,453.59l0.05,-0.03l0.08,0.11l-0.07,-0.03l-0.06,-0.05ZM492.19,449.99l0.1,-0.84l1.17,0.1l1.54,-1.28l1.72,0.73l-0.13,0.73l0.79,0.93l-0.85,-0.37l-1.4,0.4l-1.27,-0.91l-1.67,0.5ZM490.75,445.09l0.44,-1.01l1.07,-0.1l0.47,0.8l-0.9,0.61l-1.07,-0.29ZM472.0,432.79l-0.92,-1.49l1.94,0.6l0.86,-1.33l-0.11,-0.73l2.88,-2.45l2.71,-0.38l1.96,-1.84l1.07,-2.07l3.57,-1.82l0.6,0.35l0.15,1.14l2.39,2.11l1.61,4.04l-0.65,1.4l0.48,1.44l-0.94,0.85l-0.48,4.64l-0.81,0.73l-1.25,4.94l-3.04,0.15l-1.4,0.68l-0.91,1.39l-0.75,-0.46l-1.72,1.76l-1.67,-1.3l0.13,-2.87l-3.04,-1.35l0.61,-1.0l-1.76,-2.95l0.64,-1.16l-2.15,-3.02ZM488.07,448.11l-0.07,-0.03l0.36,0.02l-0.14,0.03l-0.15,-0.03ZM488.65,447.99l0.33,-0.48l0.27,0.03l-0.48,0.56l-0.12,-0.12ZM490.18,447.02l0.13,-0.23l0.38,-0.18l-0.26,0.31l-0.26,0.1ZM484.44,451.14l-0.69,-0.59l1.29,-1.01l0.79,2.34l-1.39,-0.74ZM481.95,398.56l-0.04,-0.05l0.09,-0.09l0.03,0.06l-0.08,0.08ZM472.63,497.63l0.21,-0.54l0.29,0.16l-0.09,0.0l-0.41,0.38ZM473.26,497.25l0.61,-0.28l2.52,0.53l2.09,-3.08l-0.67,-1.24l-0.12,-1.97l-0.76,-0.56l0.69,-1.19l-0.79,-1.1l-0.42,-0.43l-3.06,0.13l0.0,-0.91l1.18,-0.58l2.27,0.63l5.06,5.69l0.09,2.74l-0.61,0.75l0.46,0.67l-2.95,2.39l-1.62,-1.25l-2.86,-0.11l-1.11,-0.81ZM477.9,455.08l-0.61,-0.55l0.62,0.12l0.55,-0.63l-0.24,-0.58l1.44,-0.56l0.4,-0.4l-0.02,-0.14l0.42,-0.42l-0.07,-0.09l0.2,-0.2l0.19,1.15l0.74,0.67l-0.15,1.23l-1.05,-0.01l-0.73,0.76l-1.69,-0.35ZM468.85,401.16l0.0,-0.0l0.0,0.0l-0.0,-0.0ZM468.87,401.08l-0.79,-0.62l0.07,-0.55l0.5,0.22l0.22,0.95ZM470.07,401.46l-0.46,-0.71l0.57,-3.52l-1.16,-0.91l-0.5,-0.9l0.32,-0.52l3.01,-0.49l0.12,1.85l1.47,1.56l1.08,-1.01l-0.15,-2.2l1.12,-0.03l-0.06,0.89l0.88,0.63l1.09,-0.1l0.27,0.9l2.21,-0.1l-0.34,1.61l-2.31,0.32l-0.65,1.12l-0.73,-0.37l-0.68,1.56l-0.83,-0.55l-0.92,0.99l-0.48,-0.28l-0.39,0.81l-2.04,-0.91l-0.43,0.33ZM474.69,493.39l0.11,-0.58l1.08,0.14l-0.81,0.84l-0.38,-0.4ZM464.56,464.18l-0.3,-0.35l0.74,-1.52l-0.27,-1.94l0.88,-1.27l2.4,-0.59l1.51,1.41l0.27,0.62l-0.51,0.99l0.42,0.43l4.42,2.03l1.01,1.22l-1.67,1.68l0.43,0.67l-0.39,0.41l0.68,0.73l-0.55,0.63l0.61,0.93l-1.33,-0.53l-0.98,1.42l-1.86,-2.68l-2.93,-2.47l0.41,-0.54l-0.6,-0.68l-1.67,0.15l0.52,-0.67l-0.55,-0.58l-0.7,0.5ZM469.77,490.79l0.89,-1.87l0.87,0.45l-0.7,1.3l0.26,1.38l-1.28,-0.53l-0.04,-0.74ZM452.02,436.9l0.77,-1.41l-0.09,-1.83l3.88,-2.43l-0.55,-0.8l-1.02,-0.23l1.95,-1.97l4.07,-1.67l0.04,0.69l-0.83,0.75l1.3,0.91l1.45,-0.71l1.75,0.33l0.74,-0.93l0.31,0.66l-1.36,1.88l0.28,0.89l-1.07,1.08l1.76,1.61l-0.99,0.53l0.43,0.75l-1.46,1.82l-0.22,1.31l-5.07,3.1l-2.73,-0.98l-1.09,-1.16l-0.76,0.38l-1.48,-1.73l0.01,-0.84ZM465.42,427.26l-0.28,-0.9l0.82,-0.38l0.4,0.51l-0.94,0.78ZM464.63,426.32l0.0,0.0l-0.0,0.0l0.0,-0.0ZM465.35,404.05l-0.25,-0.32l0.14,-0.52l0.28,0.58l-0.17,0.25ZM443.43,380.46l-1.14,-1.21l-0.18,-0.89l1.64,0.95l0.6,-1.16l0.87,0.56l0.76,-0.65l0.62,0.81l1.04,-0.66l0.42,1.03l-0.72,0.72l1.15,0.96l1.21,-0.19l0.43,0.82l2.8,-1.22l1.71,1.16l0.33,1.0l0.88,-0.18l0.36,-0.71l1.18,0.39l0.86,-0.49l0.41,0.54l1.22,0.05l2.67,2.2l0.92,-0.08l-0.04,2.07l-1.88,2.64l0.32,1.49l-3.09,0.9l-3.51,-2.45l-1.18,-0.25l-0.53,0.55l-0.77,-0.39l0.39,-1.2l-1.23,-1.29l-2.65,-1.47l-0.43,0.3l-1.57,-2.05l-1.68,-0.67l-2.17,-1.91ZM459.99,400.83l1.13,0.29l0.48,-0.48l0.76,0.62l-0.13,0.65l-1.06,0.5l-0.1,-0.76l-1.07,-0.83ZM463.25,404.57l-0.13,-0.51l0.53,-0.46l-0.04,0.99l-0.36,-0.01ZM461.95,402.29l0.02,0.02l0.0,0.0l-0.02,-0.02ZM461.84,405.15l-0.15,-0.1l0.47,-0.56l-0.04,0.58l-0.27,0.08ZM459.81,507.32l-0.06,-0.0l0.15,-0.25l0.13,0.13l-0.22,0.13ZM449.9,472.1l-0.87,-0.13l1.86,-2.41l0.66,-2.14l3.33,-1.94l2.96,-0.13l-0.16,0.96l-2.04,2.14l-5.74,3.64ZM445.84,441.07l0.5,-1.96l-0.4,-0.45l1.56,-0.81l0.9,-1.61l1.79,-0.6l-0.9,3.14l0.04,2.04l-1.11,1.03l0.85,1.88l-2.01,-2.26l-1.22,-0.41ZM450.22,435.48l-0.09,-0.22l0.15,-0.02l0.07,0.06l-0.13,0.18ZM443.16,443.4l-0.67,-0.59l0.57,-0.82l0.8,0.62l1.27,-0.48l0.6,0.56l-1.47,0.57l-0.46,-0.45l-0.63,0.58ZM420.49,356.11l-0.55,-0.92l0.13,-1.6l-0.7,-0.77l0.43,-1.14l2.83,-1.07l1.45,-1.35l2.99,-0.46l-0.55,1.07l0.66,1.19l3.07,0.96l-0.42,2.09l1.41,2.84l1.95,0.03l0.95,0.71l5.12,-0.31l0.42,0.41l0.43,2.15l-1.38,1.49l-0.37,1.37l1.04,1.03l0.88,0.02l0.42,1.09l0.64,-0.48l0.63,0.9l-2.27,3.87l0.71,0.73l3.15,-0.69l-1.53,3.69l-2.28,2.3l0.61,0.96l-0.37,0.4l-2.82,-2.63l0.26,-0.67l-2.06,-3.62l-0.88,-0.58l-0.94,0.27l-0.55,-1.16l-0.65,0.12l-0.64,-1.62l-1.13,-0.25l-0.04,-1.26l-1.06,-0.98l-1.11,-0.16l-1.01,-2.81l-1.87,-2.03l-2.16,-0.38l-0.55,-0.79l-1.37,1.46l0.15,-1.8l-1.29,-0.74l0.24,-0.93ZM432.87,403.09l0.13,-1.03l1.2,-0.54l0.42,-0.42l-0.34,-0.52l2.09,-1.73l-0.46,-1.72l0.57,-0.81l-0.57,-0.64l0.57,-0.86l-1.75,-1.8l3.26,1.01l1.57,2.18l-0.04,2.25l-0.88,1.77l1.14,0.27l1.47,2.34l-1.36,1.02l-0.48,-0.39l-4.8,2.35l0.36,-2.51l-0.53,-0.5l-1.57,0.27ZM440.58,444.18l0.07,-0.33l0.45,-0.35l-0.31,0.65l-0.21,0.04ZM431.75,470.64l1.26,-0.66l3.6,3.02l1.01,0.18l0.55,-0.48l1.35,0.97l-0.18,0.67l0.82,1.04l-0.6,0.42l-2.63,-0.48l-1.45,-2.94l-2.4,0.0l-1.34,-1.73ZM416.32,436.84l0.02,-0.43l0.55,-0.05l1.45,1.16l1.53,-0.16l4.95,6.08l-1.72,1.98l-0.44,-0.34l-0.71,0.58l-1.03,1.92l-0.76,-0.15l-0.64,-1.06l0.5,-0.81l-0.9,-0.31l-0.46,-1.4l0.37,-0.48l-1.21,-0.85l0.33,-0.66l-0.95,-0.75l1.8,-0.96l-1.77,-0.95l0.28,-0.46l-0.76,-0.7l0.3,-0.81l-0.75,-0.38ZM422.13,448.17l0.0,-0.02l0.02,0.0l-0.02,0.02ZM418.49,384.43l-0.19,-0.05l0.42,0.05l-0.23,0.0ZM419.3,384.48l1.78,-2.01l2.05,-0.35l-0.55,1.98l0.33,0.94l-3.61,-0.56ZM413.17,459.53l0.39,-0.78l2.86,0.88l0.61,1.77l-1.01,0.75l-2.0,-0.53l-0.86,-2.09ZM406.38,456.31l-0.02,-0.64l0.43,0.18l2.27,-2.13l1.25,1.45l1.56,-0.44l0.32,0.19l-0.86,1.13l-0.11,1.61l-1.27,1.58l-0.92,-0.3l-1.29,0.7l-0.66,-0.65l0.18,-0.99l-0.88,-0.63l-0.02,-1.08ZM390.6,470.47l-0.11,-0.96l1.03,-1.0l-0.46,-1.49l0.85,-1.1l-0.51,-0.65l1.32,-2.83l1.55,1.67l1.35,-0.3l0.34,0.44l-0.56,1.29l0.8,0.98l1.75,0.15l1.08,1.16l1.18,0.08l1.77,-0.96l0.47,-1.1l-1.78,-2.03l-1.64,0.35l-1.41,-2.23l0.11,-1.3l0.74,-0.27l-0.31,0.68l0.49,0.53l3.35,1.58l2.83,-1.18l0.53,-1.16l1.86,0.73l-0.77,1.31l1.4,3.45l-1.39,2.25l-0.87,-0.16l-3.31,1.43l-0.68,-0.68l-1.55,-0.28l-2.56,1.18l-5.76,0.43l-0.9,0.65l-0.23,-0.65ZM398.01,427.74l0.38,-0.39l1.04,-0.67l-0.83,-1.59l1.18,-0.4l-0.55,-0.81l1.01,-0.62l0.36,-1.13l0.55,0.39l0.45,-0.79l0.78,0.24l0.56,-0.97l2.24,0.08l1.43,0.76l-0.33,0.86l0.38,0.42l-0.8,1.65l0.78,0.44l0.34,1.13l-0.92,-0.76l-0.75,0.53l0.0,2.32l-1.2,0.56l0.2,-0.67l-0.99,-0.78l-1.7,0.4l0.35,-0.94l-0.62,-0.55l-1.07,0.78l-0.53,-0.58l-1.75,1.08ZM394.19,411.77l0.64,-0.69l-0.41,-1.03l0.85,-1.07l-0.03,-1.1l1.65,-1.78l-0.93,-1.64l0.69,-0.71l0.15,-0.78l-0.68,-0.59l0.6,-0.5l-2.63,-0.85l2.54,-3.33l2.51,-1.78l-0.64,3.46l1.0,0.29l0.21,1.12l2.02,0.03l1.23,2.16l-0.38,0.38l-0.8,-0.59l-1.01,0.55l-0.37,0.86l0.4,0.76l-1.19,2.66l-0.56,-0.13l-0.68,1.38l-0.55,-0.14l-1.96,2.55l-1.66,0.51ZM387.38,387.25l-0.33,-0.97l-0.85,0.04l0.99,-1.44l-0.46,-1.51l0.81,-0.66l-0.27,-0.36l1.3,-2.57l1.79,-0.21l0.63,-1.72l1.2,-0.33l0.47,0.84l0.89,-0.94l3.2,1.85l0.36,0.77l-0.91,0.57l0.26,0.51l-0.86,2.17l-2.58,3.62l-3.02,2.11l-1.93,2.45l-0.99,0.06l-0.26,-1.64l0.56,-2.63ZM382.76,458.05l0.87,-0.71l1.0,0.28l-0.35,2.34l-1.37,-1.11l-0.15,-0.8ZM373.3,379.84l1.99,-7.53l0.84,-1.21l0.61,1.1l-0.43,0.43l0.24,0.89l-1.18,1.08l-0.92,2.18l0.3,0.4l-1.45,2.66Z","name":"Cyclades"},"24":{"path":"M288.95,133.67l0.57,-1.39l0.2,-3.74l0.99,-2.24l1.15,-0.9l0.91,0.14l0.48,3.87l1.24,0.96l1.69,0.06l1.63,-2.46l2.49,-2.23l-0.31,-3.95l2.09,-2.31l4.43,-1.5l4.02,0.89l2.26,-3.77l4.14,0.82l1.48,-1.18l2.59,-4.5l6.97,1.43l2.6,-2.15l4.06,0.42l1.82,-0.8l3.28,-3.26l4.05,0.42l2.99,-0.3l0.57,0.58l0.24,2.03l1.82,1.52l1.14,0.0l1.31,2.16l1.75,-0.29l2.02,0.75l0.51,-0.51l0.16,0.81l1.73,1.19l-1.36,0.79l-4.51,0.0l-0.99,0.71l-0.79,2.88l1.31,4.02l1.32,0.75l-0.15,0.6l0.99,1.3l2.61,2.24l3.02,1.22l2.38,-0.07l0.53,0.43l2.63,-0.54l-0.04,4.51l-0.24,0.81l-2.64,-2.77l-3.39,-1.66l-2.35,0.41l-3.13,-0.93l-3.33,1.35l-2.06,1.77l-1.12,-0.84l-2.69,-0.7l-0.99,1.23l0.19,0.69l-1.28,-0.13l-0.47,0.45l-1.05,4.35l1.18,2.67l2.64,3.04l1.53,0.47l0.15,1.61l1.39,1.51l1.25,0.34l1.24,-0.57l1.3,1.21l6.81,2.1l1.93,1.86l2.95,1.04l1.09,1.14l-0.72,0.84l-0.2,1.65l2.11,2.19l-1.63,1.71l0.64,0.94l1.93,-0.03l0.33,1.35l-0.27,0.98l-0.96,0.18l-1.56,1.79l0.85,1.19l-2.38,0.8l1.17,0.99l1.07,-0.04l-0.9,0.45l-1.44,-0.26l-1.49,0.96l-1.47,-0.9l0.5,-1.3l-1.04,-0.86l-0.21,0.9l-0.57,-0.0l0.02,-1.9l-1.34,-1.28l-1.34,-0.1l-0.85,-1.68l-2.06,-0.93l-1.22,0.43l-0.24,-1.76l-2.02,-2.22l0.38,-2.09l-1.42,-0.83l-0.11,-1.83l-3.1,-2.57l-1.85,-3.43l-1.41,-1.36l-0.98,-0.19l-0.24,-0.8l-2.28,-1.98l-2.91,-0.41l-2.47,0.34l-2.59,-1.14l-1.7,0.08l-2.61,-2.1l-2.8,-0.26l-2.61,-1.4l-2.1,-0.23l-1.38,0.72l-2.92,3.12l-1.75,3.48l-0.51,-1.62l-2.0,-1.72l-5.56,-1.81l-2.01,-0.09l-1.69,-1.28l-2.39,-0.21l-2.36,-1.99l-6.25,-2.37ZM315.18,150.84l2.0,0.36l1.61,1.12l1.69,2.3l1.01,2.63l3.62,3.89l7.71,3.46l3.66,1.19l1.97,0.08l0.92,0.87l-0.3,0.69l1.63,2.98l1.16,0.49l2.78,-0.31l0.19,0.74l-2.37,0.7l-2.39,-0.85l-3.24,0.26l-3.9,-0.62l-1.21,-1.03l-1.8,-0.21l-7.19,-3.31l-1.95,0.0l-1.76,0.93l-2.91,-0.31l-1.13,0.47l1.27,-2.05l0.31,-2.01l-3.09,-4.6l-0.22,-1.19l-2.43,-1.83l-0.17,-1.23l1.38,-2.73l-0.5,-0.99l0.79,-3.51l-0.46,-1.85l1.35,1.68l0.53,2.3l1.47,1.51ZM311.83,145.21l0.0,0.05l-0.01,-0.06l0.01,0.01ZM311.77,145.09l0.0,-0.04l0.01,0.05l-0.01,-0.01ZM311.8,145.12l0.01,0.01l-0.0,0.04l-0.01,-0.01l0.0,-0.04ZM347.7,144.3l-0.23,-0.35l-0.04,-0.53l0.59,0.44l-0.32,0.44ZM356.51,133.08l1.6,-0.55l0.63,0.76l-1.11,0.41l-1.13,-0.62ZM359.96,134.69l0.01,-0.01l0.07,0.07l-0.02,0.0l-0.06,-0.06Z","name":"Chalkidiki"},"25":{"path":"M238.06,57.62l3.34,1.83l3.02,0.11l6.61,-1.25l3.21,1.2l1.77,-1.29l2.48,-4.13l1.12,-0.62l2.17,2.47l2.3,1.02l1.53,-1.3l1.16,-2.35l0.79,-11.67l0.59,-1.95l3.0,-1.17l3.7,0.45l-0.43,5.56l1.2,4.1l-1.06,3.85l0.73,1.81l1.41,1.04l2.76,0.69l4.62,-2.72l0.58,0.95l-0.1,1.48l4.33,4.57l12.31,4.52l0.19,1.2l-0.79,1.18l-0.1,1.66l3.73,2.62l0.66,1.09l-0.81,0.82l-4.58,1.55l-2.26,2.23l-5.83,0.84l-5.21,2.32l-1.05,1.57l0.12,3.55l-4.63,2.25l-1.84,2.21l-1.38,-0.19l-5.99,1.36l-4.58,-0.43l-1.5,0.28l-2.57,1.83l-2.21,-1.7l-0.84,-2.52l-0.06,-2.87l-1.66,-0.44l-1.73,0.89l-1.35,1.62l-9.75,-2.22l-6.01,0.56l-1.3,-2.76l-3.99,-1.96l-0.58,-1.63l-2.09,-2.63l-4.66,-1.23l-0.77,-2.62l0.58,-0.84l2.71,-0.08l0.35,-1.51l1.35,-1.37l-0.29,-1.21l1.08,-2.71l-0.11,-5.36l0.91,-3.05l1.46,0.97l4.23,-0.49Z","name":"Kilkis"},"26":{"path":"M211.87,55.91l0.97,-0.03l0.35,0.81l2.96,1.76l1.98,0.3l3.5,-3.04l3.69,-0.67l2.74,0.05l3.56,1.81l-0.95,3.24l0.11,5.34l-1.06,2.59l0.24,1.33l-1.17,0.93l-0.12,1.22l-2.51,0.07l-1.12,1.34l0.82,3.3l1.5,0.95l3.33,0.49l1.97,2.48l0.67,1.75l3.92,1.89l1.8,3.11l6.08,-0.6l9.74,2.23l0.26,0.33l-0.85,0.29l-1.31,-0.68l-2.85,-0.18l-0.4,1.32l-4.38,0.64l2.67,1.78l0.86,2.56l1.52,1.95l-0.96,-0.05l-2.88,1.81l-2.85,0.31l-1.82,2.39l-1.36,0.47l-2.69,0.07l-1.66,-0.85l-3.49,3.29l-2.89,1.63l-2.21,-2.73l-3.86,-2.37l-11.47,-3.0l-1.72,0.17l-1.08,1.13l-0.08,1.24l-4.29,1.33l-7.33,1.22l-9.96,-1.87l1.72,-3.68l-0.01,-1.47l-2.85,-1.22l-1.99,-5.47l-1.13,-1.18l0.3,-0.7l2.67,0.13l4.59,-1.16l1.47,-1.15l0.38,-1.49l-1.33,-1.56l-2.59,-1.15l-0.54,-3.37l2.17,-0.35l1.01,-1.14l0.56,-2.68l2.19,-1.61l1.49,-2.59l1.42,-0.56l0.68,-1.48l1.05,-0.26l0.95,-1.52l0.35,-3.17l4.14,-2.88l5.48,-0.88l1.1,-0.73l0.85,-1.56Z","name":"Pella"},"27":{"path":"M250.07,150.49l1.64,4.32l0.15,3.81l1.34,1.78l0.57,2.41l3.71,2.96l5.34,2.63l0.46,1.07l-4.87,0.76l-1.29,-0.93l-1.54,-0.21l-6.18,1.56l-2.75,-0.9l-2.32,-2.06l-1.83,-2.89l-5.3,-3.33l-2.29,-2.3l-0.85,-2.53l0.21,-3.97l-0.8,-1.74l-2.89,-1.44l-3.34,1.03l-4.56,4.61l-0.97,-0.33l-0.47,-1.09l-0.02,-2.69l0.99,-2.4l-0.31,-0.47l-4.12,-0.86l-2.37,1.52l-0.28,-0.65l-0.21,-1.66l0.46,-1.2l2.95,-1.26l1.2,-1.21l0.35,-2.92l3.0,-5.52l1.79,-1.14l2.84,-0.32l1.8,-1.1l3.35,-3.66l6.04,-4.69l2.9,-7.46l2.63,-0.51l2.63,1.89l4.04,-0.33l0.43,1.25l2.37,1.35l-0.6,1.36l1.62,1.69l-0.07,1.42l1.42,4.56l2.84,1.31l-4.47,7.52l-1.67,5.31l0.7,1.38l-2.74,3.26l-0.68,3.02Z","name":"Pieria"},"20":{"path":"M74.09,165.63l4.23,0.25l1.93,-0.81l0.4,-2.07l1.27,-2.06l-0.33,-1.04l2.88,-1.98l2.93,0.92l1.98,-1.52l2.73,1.55l1.47,-0.11l2.95,-0.61l1.75,-1.67l4.17,-0.51l0.15,-3.19l1.43,-2.34l-1.44,-1.51l0.29,-1.86l2.05,-0.83l1.5,-2.6l-0.3,-2.94l-1.01,-1.1l0.38,-1.32l1.28,-1.16l0.45,-1.26l3.27,0.53l2.81,-1.98l2.6,-0.55l0.98,1.19l1.6,4.35l3.31,3.72l2.09,4.02l0.99,3.83l-0.23,1.33l-1.96,3.23l1.25,1.38l1.06,3.97l2.11,2.57l3.34,-1.16l0.89,0.66l-0.18,2.46l-2.04,3.71l2.46,2.52l1.04,5.09l1.54,2.86l1.83,0.62l7.34,-2.0l2.67,0.12l4.9,2.6l0.02,0.51l-1.64,-0.42l-1.75,0.56l-2.54,2.14l-0.84,1.46l-0.51,1.44l1.38,7.58l-0.88,0.04l-1.35,-0.93l-3.08,-0.17l-2.91,2.05l1.0,5.99l3.27,3.08l-0.4,2.49l0.61,2.41l-1.13,1.93l-2.03,-0.59l-2.69,1.76l-4.4,-1.69l-1.46,1.41l-0.92,3.67l0.12,2.46l-1.18,2.37l-2.98,1.82l-1.37,-0.68l-1.46,0.97l-1.5,-0.1l-2.81,1.86l-7.21,2.45l-2.44,-1.78l-3.07,-0.76l-1.42,1.43l-2.41,4.57l-0.65,0.19l-2.48,-7.54l-1.51,-2.75l-0.18,-3.64l-1.25,-2.83l0.16,-2.8l-0.62,-1.35l-5.57,-1.41l-3.37,-4.07l0.01,-4.71l1.8,-2.57l-2.19,-3.85l-0.71,-4.09l-4.67,-0.88l-1.93,-2.06l-0.2,-1.8l1.34,0.57l1.07,-0.39l1.89,-2.43l0.31,-2.87l-2.25,-2.71l-0.29,-1.74l-3.64,-3.22l0.51,-2.16l-2.39,-3.57Z","name":"Ioannina"},"21":{"path":"M76.32,229.36l-3.08,-2.41l1.54,-1.5l2.83,-1.16l2.53,0.01l1.37,1.27l0.99,2.25l3.52,2.73l-0.18,0.61l-1.73,-1.12l-0.74,0.72l-0.77,-0.05l-1.84,-0.98l-2.0,0.47l-2.37,-0.29l-0.07,-0.55ZM87.58,231.43l1.78,0.52l3.46,-1.56l2.07,1.26l2.77,-0.72l2.45,0.42l1.42,-0.55l2.46,-4.67l1.13,-1.12l2.37,0.76l2.81,1.86l7.46,-2.54l2.82,-1.85l1.5,0.1l1.36,-0.9l0.53,0.39l-0.98,1.11l-0.43,5.67l-1.22,2.46l-1.18,0.98l-4.65,1.36l-0.74,1.43l1.81,5.73l-0.18,1.03l-2.67,3.22l-2.84,-0.25l-1.73,2.21l-1.46,0.76l-1.37,3.85l0.11,1.6l1.18,2.47l2.18,0.81l0.79,-0.21l2.74,2.2l1.07,0.1l0.21,0.66l-1.67,-0.31l-1.45,-1.13l-1.92,0.0l-0.33,-0.95l-0.82,1.14l0.42,2.04l-1.06,0.3l-0.75,-0.44l-1.92,-3.99l0.89,-0.58l0.35,-1.2l-0.26,-1.9l-0.96,-1.72l-3.4,-3.37l-1.01,-0.67l-0.71,0.2l-2.7,-2.05l-5.65,-6.69l-4.35,-2.72l0.42,-1.58l-0.74,-2.3l0.59,-0.73Z","name":"Preveza"},"48":{"path":"M390.39,225.38l-0.42,-0.15l0.75,-2.52l0.2,1.24l-0.52,1.43ZM376.93,222.06l0.9,-1.16l0.04,-1.94l0.88,-0.87l-0.02,1.04l0.66,0.75l-0.29,0.72l-1.57,1.68l-0.62,-0.21ZM379.18,210.53l-0.05,0.0l0.04,-0.13l0.06,0.06l-0.05,0.06ZM375.77,224.78l0.04,-0.03l0.17,0.24l-0.21,-0.21ZM373.95,250.66l0.31,-0.29l0.21,0.21l-0.21,-0.08l-0.3,0.16ZM373.59,249.38l-0.34,-1.34l0.28,-0.49l0.58,0.53l-0.53,1.31ZM368.63,226.67l0.66,-2.56l1.38,-1.36l0.18,0.45l-1.17,1.51l1.52,0.5l0.72,-1.07l0.46,0.73l-0.48,1.53l0.39,1.13l-1.85,1.5l-1.26,-0.8l1.08,-0.25l0.27,-0.79l-1.04,-1.04l-0.87,0.51ZM360.68,240.06l-0.18,-0.35l1.74,-0.61l1.42,0.35l-0.32,1.5l-0.84,-0.65l-0.96,0.62l-0.88,-0.86ZM363.59,238.14l0.0,-0.08l0.03,-0.06l0.05,0.1l-0.09,0.04ZM363.63,237.97l-1.06,-1.49l0.3,-1.2l0.24,1.81l0.7,0.3l-0.19,0.58ZM351.98,242.46l3.62,-1.95l0.24,-0.64l-0.62,-0.58l0.36,-1.01l-0.5,-0.5l3.18,-2.51l0.46,-1.88l1.55,-1.97l2.65,0.2l0.13,1.0l-3.83,4.81l-0.92,2.7l-1.15,0.26l-3.69,3.59l-0.71,-0.87l-0.91,-0.06l0.18,-0.6ZM360.48,231.05l-0.09,-0.14l0.77,-0.95l0.2,0.5l-0.88,0.6ZM363.28,246.21l0.08,-0.06l-0.03,0.19l-0.04,-0.04l-0.0,-0.09ZM333.53,238.83l-0.6,-1.18l1.21,-0.31l0.05,0.84l1.7,0.84l1.57,2.0l5.39,2.35l0.33,0.49l-0.42,0.66l1.12,1.32l1.04,-1.05l2.83,0.05l0.46,0.48l-1.81,2.72l-1.36,0.18l-1.63,1.38l-1.11,-0.21l0.2,-0.63l-1.3,-0.91l-2.49,0.38l-0.62,-1.01l0.66,-1.1l-0.75,-0.37l-0.74,-2.11l-1.4,-0.89l-2.34,-3.93ZM317.34,242.29l-0.3,-0.33l0.76,-0.65l3.3,-1.22l0.36,-1.62l1.07,-0.91l1.52,0.22l2.31,2.24l-0.0,0.78l-0.27,0.29l-0.44,-0.65l-2.42,1.25l-1.38,1.82l0.53,0.81l-0.58,-0.1l-0.55,-1.21l-1.44,0.51l-1.71,-1.21l-0.7,0.42l-0.04,-0.45ZM325.54,245.15l-0.08,-0.08l0.02,-0.1l0.02,0.09l0.04,0.09ZM325.49,244.9l0.01,-0.01l-0.01,0.03l0.0,-0.02ZM271.1,232.62l0.53,4.39l2.23,4.02l0.07,1.24l1.3,0.48l1.79,-1.76l1.18,0.35l0.66,0.67l0.29,3.29l0.86,1.12l0.94,0.31l1.38,-1.1l2.02,1.76l-0.45,1.05l1.42,1.98l-0.57,1.07l0.3,1.33l-2.29,0.61l-0.24,2.33l1.19,0.55l0.49,-0.69l1.81,-0.36l2.79,-1.84l2.18,-0.08l-0.6,1.12l-1.91,0.08l-0.66,0.55l-1.54,3.67l-0.77,0.47l-2.2,-0.76l-3.0,1.26l-4.31,0.28l-2.39,-2.11l-1.49,-0.48l-2.79,0.3l-5.59,-1.13l-6.59,-3.53l-6.14,0.57l-2.92,-0.21l-1.07,-0.59l-0.82,-5.14l0.37,-1.93l2.74,-1.58l0.65,-1.4l0.99,-3.64l-0.38,-5.28l0.88,-0.91l2.97,-0.41l3.46,-3.27l0.63,-1.4l0.22,-1.46l-0.58,-1.36l-2.42,-1.94l0.42,-2.01l1.15,-0.92l1.16,-0.03l1.75,0.97l1.69,-0.65l1.86,-2.25l-0.22,-2.72l2.81,-3.22l-0.16,-1.42l1.01,-0.8l4.44,-0.24l3.21,-3.31l2.12,-3.47l2.62,-1.72l1.53,2.49l2.86,1.23l0.99,0.98l1.16,-0.13l1.65,2.08l2.23,0.03l3.63,2.67l1.64,3.72l2.75,2.51l1.53,2.24l1.5,0.91l1.1,2.75l5.41,4.76l0.55,3.48l2.59,2.62l-0.0,0.98l1.22,1.24l1.54,3.71l-1.23,1.83l-2.35,1.84l-2.26,-0.17l-1.84,1.33l-1.59,-0.03l-0.62,-0.54l-1.47,1.4l0.4,0.76l0.91,0.23l-0.59,0.26l-2.82,0.07l-1.4,1.02l-1.8,-0.38l-1.09,1.02l-2.06,-0.31l3.72,-2.3l1.12,0.18l0.63,-0.8l0.85,0.18l0.62,-0.6l-0.31,-2.15l2.0,1.21l0.74,-0.46l1.02,-2.89l-0.24,-1.13l-2.3,-2.06l-1.01,-2.63l0.39,-1.01l-1.4,-2.21l-3.86,-3.43l-3.68,-0.9l-1.18,0.41l-2.96,-0.44l-0.35,-1.81l-1.82,-1.48l-1.68,0.36l-2.37,-1.31l-1.54,1.25l0.6,0.86l0.69,-0.01l-1.42,1.95l1.38,2.07l-2.63,0.03l-0.58,0.67l-1.59,-0.46l-2.09,0.98l-0.76,-0.23l-1.96,1.17l-0.55,1.67ZM276.76,240.42l-0.41,-0.55l0.77,-0.36l-0.08,1.09l-0.27,-0.18ZM292.32,248.22l-1.8,-1.0l1.32,-1.57l-0.02,-1.77l0.57,-0.57l1.13,0.38l0.86,-0.99l0.08,1.08l0.58,0.4l-1.78,2.4l0.27,1.37l-1.2,0.28ZM291.97,241.94l0.11,-0.25l0.73,-0.28l-0.44,0.53l-0.4,-0.0Z","name":"Magnesia"},"49":{"path":"M198.51,179.02l1.82,1.52l0.54,7.57l1.26,5.61l1.57,0.67l1.63,-1.07l4.06,-0.59l0.96,0.96l0.5,2.72l1.56,1.02l2.55,-0.11l0.99,1.24l0.57,2.79l2.79,1.15l0.72,1.17l-0.15,2.01l-3.17,0.03l-6.6,2.52l-4.08,-1.31l-4.82,1.81l-2.84,0.33l-1.44,1.09l-3.15,0.32l-3.3,1.92l-1.14,1.27l-0.67,2.23l-1.15,0.41l-1.0,-0.54l-0.85,-1.46l-1.37,-0.2l-3.42,2.33l-2.81,0.34l-2.15,1.35l-2.2,-1.92l-1.81,0.21l-2.29,3.66l-3.32,3.5l-1.19,0.18l-2.49,-1.58l-4.21,-0.84l-1.82,0.73l-1.3,2.42l0.01,1.1l-1.06,0.22l-3.95,-0.55l-2.57,-1.77l-1.22,-3.25l-3.63,-2.72l-0.49,-1.38l0.23,-1.58l-1.67,-3.0l1.22,-2.35l-0.65,-2.54l0.36,-2.67l-0.88,-1.39l-1.44,-0.56l-1.0,-1.23l-0.96,-5.21l2.24,-1.62l2.85,0.16l1.41,0.94l1.81,-0.48l-1.38,-8.0l1.18,-2.34l1.45,-0.75l0.85,-1.19l1.28,-0.46l1.95,0.5l1.19,0.93l1.53,-0.07l4.93,-1.89l1.92,-2.34l4.42,-2.04l11.55,1.38l7.93,1.89l2.91,0.14l5.83,-1.17l4.08,0.59l1.07,-0.74Z","name":"Trikala"},"46":{"path":"M219.74,206.48l-0.38,1.99l0.47,1.71l1.55,1.02l2.82,-0.06l0.91,1.15l-1.44,4.86l0.42,1.5l1.81,2.47l-2.43,1.5l-0.78,1.15l0.21,1.46l-1.53,2.39l0.14,1.52l3.87,5.07l-6.83,7.11l-2.42,5.22l-1.49,1.15l-4.48,1.38l-2.16,2.24l-3.26,1.47l-3.83,0.41l-0.19,-4.97l-1.32,-1.56l-2.59,-0.87l-2.93,-1.95l-1.62,0.11l-4.42,2.86l-2.53,0.32l-1.56,-1.93l0.68,-2.28l-0.61,-1.62l-2.55,-1.47l-0.43,-3.76l-0.72,-1.5l-1.23,-0.94l-7.21,1.55l-1.59,1.04l-1.61,2.1l-2.22,-1.68l-1.78,0.23l-3.06,1.97l-3.53,3.34l-2.61,-2.9l-0.24,-1.32l4.03,-7.13l-1.19,-3.05l-1.86,-2.03l-0.04,-1.04l1.12,-2.09l2.6,-0.53l5.02,2.43l1.75,-0.16l3.68,-3.76l2.01,-3.42l1.1,-0.22l2.76,2.02l2.16,-1.4l2.92,-0.38l3.19,-2.26l0.97,0.14l0.68,1.34l1.61,0.72l1.76,-0.8l0.7,-2.34l0.97,-1.03l2.98,-1.72l3.1,-0.3l1.45,-1.09l2.87,-0.35l4.71,-1.77l3.94,1.31l6.83,-2.56l2.84,-0.0Z","name":"Karditsa"},"47":{"path":"M214.61,148.99l0.35,0.79l0.7,0.06l2.09,-1.75l3.6,0.76l-0.95,2.18l0.06,2.88l0.59,1.36l1.58,0.67l2.04,-1.34l2.88,-3.35l3.11,-0.96l2.31,1.26l0.5,1.15l-0.19,4.11l1.0,2.84l2.46,2.45l5.25,3.31l1.76,2.82l2.43,2.16l3.31,1.05l6.21,-1.57l2.65,1.16l4.94,-0.76l-0.27,1.74l1.91,4.05l2.8,1.51l3.17,3.33l3.41,2.12l0.99,6.32l3.8,11.32l-2.8,1.89l-2.09,3.44l-3.08,3.17l-4.01,0.08l-1.65,1.14l0.12,1.52l-2.79,3.2l0.22,2.73l-1.68,2.03l-1.22,0.42l-1.33,-0.88l-1.65,-0.03l-1.7,1.3l-0.52,2.63l2.52,2.14l0.28,2.21l-0.46,1.07l-3.3,3.12l-2.75,0.3l-1.3,1.22l-0.35,1.57l0.59,4.06l-0.96,3.53l-0.46,1.07l-2.6,1.44l-4.94,0.46l-0.97,-0.75l-0.58,-3.98l-1.37,-1.2l-2.89,-1.75l-5.52,-1.84l-3.67,-2.01l-3.95,-5.28l-0.03,-1.0l1.49,-2.19l-0.21,-1.46l0.61,-0.89l2.6,-1.7l-2.19,-4.41l1.39,-5.11l-1.39,-1.59l-3.07,0.01l-0.98,-0.75l0.33,-6.27l-1.08,-1.57l-2.44,-0.83l-0.54,-2.65l-1.22,-1.61l-3.06,-0.09l-0.96,-0.73l-0.34,-2.43l-1.31,-1.42l-4.71,0.52l-1.36,1.02l-0.96,-0.32l-0.5,-1.15l-1.17,-11.78l-2.17,-1.97l-0.25,-5.12l-0.6,-1.36l-2.16,-1.26l4.79,-3.95l3.25,-1.7l1.62,-2.57l0.75,-2.43l3.78,-3.52l2.37,-3.48l0.77,-2.47l1.34,-1.5Z","name":"Larisa"},"44":{"path":"M195.79,313.36l0.64,-2.02l-0.19,-1.83l1.52,-2.59l3.11,-2.43l4.43,-1.37l0.92,-1.28l-0.23,-2.96l1.26,-2.46l-2.31,-2.71l-0.03,-0.94l1.03,-1.3l-0.3,-2.71l0.99,-2.48l-0.34,-2.44l1.25,-3.01l3.8,2.14l3.26,0.48l3.04,-0.58l4.94,-4.64l4.41,-2.23l2.63,0.62l0.44,1.03l-0.69,4.05l1.83,2.65l3.5,-1.66l2.54,0.39l1.14,0.39l1.72,2.76l3.64,2.82l4.27,-0.55l1.26,6.95l1.03,2.53l-5.49,-1.72l-1.69,1.12l-0.07,0.56l1.07,1.37l1.21,3.97l2.74,3.39l-1.21,1.09l-0.21,1.45l0.57,1.34l2.84,1.12l2.72,-0.26l0.39,0.91l-0.72,3.86l0.98,1.46l-0.33,0.85l1.34,0.91l-1.14,0.92l0.13,0.86l-0.86,0.93l-1.3,0.1l-1.21,-2.68l-1.56,-1.39l1.2,-0.14l0.36,-1.19l-2.04,-1.68l-0.66,-1.86l-4.26,-4.58l-1.7,0.14l-1.17,-1.72l-0.65,0.25l-0.46,-0.68l-0.84,0.48l0.02,1.56l0.92,1.64l-0.85,-0.18l-2.13,2.31l2.26,2.12l-1.38,0.32l-0.43,2.56l-0.93,-0.33l-0.22,-1.22l-2.71,0.48l-2.04,-1.12l-0.98,1.63l-2.94,-2.24l-0.82,0.65l-0.72,-0.4l-2.72,1.94l-0.79,1.51l-2.1,-2.48l-0.95,0.51l-1.48,-2.06l-1.86,-0.05l-4.12,-2.6l-3.66,0.51l-0.81,-0.89l-4.36,-0.71l-3.56,3.26l-1.21,0.33l-1.91,-0.84ZM212.48,314.35l0.0,-0.16l0.4,0.13l-0.17,0.26l-0.23,-0.23ZM212.85,314.9l0.0,-0.06l0.03,0.03l-0.03,0.03Z","name":"Fokida"},"45":{"path":"M239.43,245.04l1.66,1.29l4.62,-0.43l0.03,6.01l0.58,1.35l1.44,0.89l3.28,0.26l5.93,-0.58l6.43,3.49l5.77,1.18l2.93,-0.29l1.15,0.4l2.61,2.19l4.55,-0.29l3.04,-1.25l1.95,0.83l-0.16,1.11l-1.29,-0.78l-2.02,1.31l-0.78,-0.6l-0.75,0.91l0.58,0.79l-0.88,0.04l-0.45,0.68l-4.89,-0.73l-1.76,1.86l-0.17,1.61l-2.21,0.14l-1.42,1.03l-0.88,-0.39l-1.6,1.05l-2.29,-0.48l-1.23,-1.23l-1.27,0.85l-1.78,-0.27l-1.82,-2.04l-2.1,-0.74l-1.18,0.15l-2.24,1.82l-2.3,0.82l-0.6,0.76l0.44,0.6l-1.55,1.22l0.92,0.66l1.84,-0.88l-1.21,0.91l0.58,1.96l1.22,-0.37l0.75,1.26l1.33,-0.64l0.88,0.82l1.84,-1.45l0.77,0.63l1.75,-0.15l2.51,-1.35l6.19,6.36l1.49,-0.54l1.45,0.31l1.07,-0.73l3.39,3.13l2.66,-2.05l1.63,0.52l1.19,1.51l2.63,0.95l3.97,-0.41l0.97,-0.64l2.39,3.25l-0.53,1.67l0.35,1.66l1.47,1.89l0.22,1.59l1.8,1.91l2.14,-0.69l0.88,-1.24l1.41,-0.03l0.55,0.54l0.58,-0.74l1.22,0.0l0.62,-1.06l-2.05,-1.46l1.82,-0.36l4.73,3.4l2.25,-0.56l2.32,0.66l1.56,1.6l0.25,1.38l-2.33,1.12l-2.02,2.98l0.68,0.45l0.68,-0.83l1.0,0.15l1.87,3.24l0.85,-0.59l2.22,0.85l-3.9,0.27l-8.99,1.92l-3.18,-3.5l-2.77,-0.51l-0.52,-2.29l-1.56,-0.75l-3.11,0.53l-3.29,3.29l-1.27,0.24l-3.44,-0.3l-2.72,-1.16l-5.4,0.8l-1.01,-2.84l-4.68,-0.73l-5.11,1.02l-9.93,4.9l-2.32,-1.28l-1.03,-1.32l-1.28,-3.12l-1.4,-7.31l-1.66,-0.45l-2.87,0.8l-3.47,-2.69l-1.66,-2.71l-1.52,-0.62l-3.04,-0.38l-2.87,1.64l-1.42,-2.11l0.73,-3.72l-0.87,-1.85l-2.94,-0.69l-1.79,0.57l-3.21,1.85l-4.69,4.49l-2.72,0.54l-3.11,-0.46l-7.1,-3.98l-1.39,-3.49l-3.08,-2.97l-1.39,-0.51l-2.23,-1.96l-0.61,-4.34l-2.9,-4.86l2.77,-6.33l3.85,-2.52l0.76,0.11l-0.32,0.96l0.65,1.61l4.41,-0.38l3.46,-1.55l2.18,-2.25l4.47,-1.37l1.76,-1.42l2.36,-5.14l6.75,-7.03l3.62,1.97l5.51,1.83l2.71,1.65l1.08,0.83l0.58,3.98ZM294.65,289.32l0.05,0.0l0.17,0.13l-0.05,0.05l-0.17,-0.17ZM293.63,286.56l-0.02,-0.26l0.05,-0.06l0.12,0.17l-0.15,0.15ZM293.66,286.09l0.05,0.04l-0.03,0.03l0.0,-0.04l-0.02,-0.02Z","name":"Fthiotida"},"42":{"path":"M399.78,267.63l-0.5,-0.12l1.69,-1.3l-0.02,-1.03l1.31,-0.94l-0.15,-1.36l-0.85,-0.43l-0.47,-1.24l0.81,-1.39l1.82,-1.13l0.61,0.77l0.76,0.03l0.36,0.87l5.26,3.23l-0.8,1.29l0.58,2.36l-0.78,0.71l0.95,1.04l1.26,-0.15l1.43,1.66l0.78,-0.08l2.88,1.94l1.7,1.91l0.31,1.13l-0.72,0.89l0.53,0.6l-2.02,0.77l-1.39,-0.85l-1.08,1.05l-1.98,-2.33l-0.9,-0.1l-1.91,1.04l0.44,1.62l-0.81,-0.61l-0.22,-1.12l-1.44,-0.52l3.05,-1.74l-0.18,-2.84l-1.17,-0.78l-1.13,0.87l-0.56,-1.43l-1.92,0.45l0.37,-0.71l-0.42,-0.43l-1.63,0.56l-0.6,-1.69l-0.53,-0.4l-0.56,0.58l-0.8,-1.17l-1.35,0.54ZM403.11,274.0l1.09,-1.66l0.39,-0.39l-1.01,1.45l0.15,0.74l-0.62,-0.15ZM404.67,271.81l0.0,-0.02l0.01,-0.01l0.0,0.02l-0.01,0.01ZM404.7,271.75l-0.01,0.01l0.01,-0.05l0.01,0.0l0.0,0.04ZM413.17,279.19l-0.89,-0.04l0.51,-0.64l1.27,0.78l-0.89,-0.1ZM273.39,271.59l0.0,-1.02l1.16,-1.72l0.61,0.18l1.6,-0.92l1.71,0.1l1.59,-1.36l1.13,0.1l0.51,-0.67l3.9,-1.25l1.07,0.26l3.33,-3.2l2.49,0.28l0.93,-1.17l0.22,-2.9l2.9,-2.23l5.71,0.38l1.69,-1.51l2.3,-0.23l2.12,-1.44l2.77,-0.05l1.69,2.18l2.75,0.72l-0.57,1.96l1.23,2.04l3.44,0.89l-0.27,4.36l1.21,1.81l-0.18,1.26l1.25,1.84l1.54,1.65l3.36,1.33l0.45,1.25l0.56,-0.15l1.06,1.1l2.05,0.59l0.66,1.18l0.7,-0.78l-0.16,0.81l0.73,1.35l1.13,-0.41l2.09,1.28l1.3,-0.28l1.81,0.59l1.18,-0.15l1.53,-1.29l2.43,3.17l1.09,0.56l-0.32,0.54l1.1,1.32l1.16,0.66l2.87,0.28l4.03,2.17l2.51,-0.63l5.0,1.62l2.5,-1.63l1.9,0.51l0.36,-0.72l1.22,0.33l0.97,-0.82l7.74,2.58l0.53,0.35l-1.15,0.41l-1.41,1.7l0.13,2.96l3.36,3.16l5.06,3.42l-3.33,3.58l0.36,2.78l-0.71,0.66l0.37,0.64l-0.53,0.51l1.87,1.77l-1.24,0.65l-0.59,1.3l2.45,1.5l-0.11,0.82l0.57,0.53l-1.01,2.33l2.02,2.39l0.54,-0.24l-0.33,0.96l1.82,1.75l-0.42,2.7l0.5,0.66l-0.91,0.51l0.13,1.32l2.24,3.1l1.49,0.2l1.98,1.4l0.76,-0.59l-0.15,1.38l2.11,1.57l3.38,-1.02l0.66,0.99l2.5,1.04l3.7,0.23l0.55,-0.51l1.66,-0.02l3.29,0.58l2.87,-1.65l0.04,1.51l-1.34,2.87l0.56,1.5l-0.38,1.07l0.94,1.6l-0.31,2.24l-0.28,1.37l-1.18,1.14l-0.07,1.32l-0.77,0.66l0.33,0.51l-1.33,0.18l-2.2,2.49l-1.32,-0.04l-1.3,-0.66l0.36,-0.86l-1.58,-2.84l-2.67,-1.42l-1.1,-0.03l-2.09,1.01l-0.5,1.63l0.59,1.07l-0.5,1.06l-3.15,-2.38l-0.85,-2.34l-1.59,-0.62l-0.09,-0.78l1.27,-1.44l-1.41,-2.28l-1.33,-0.01l-0.64,-1.44l-1.71,-0.84l-4.09,0.25l0.62,-2.7l-0.86,-0.68l-1.84,0.17l2.15,-1.99l0.44,-1.27l-0.33,-1.32l-1.21,-1.06l-0.42,-2.17l-2.44,-1.62l-1.66,0.25l-0.92,1.19l-0.38,-0.37l3.28,-4.18l-0.35,-1.1l-1.61,-0.63l-1.79,2.71l-0.64,-1.26l0.29,-0.47l-0.83,-0.41l1.51,-0.73l-0.31,-0.45l0.75,-1.01l-0.92,-0.28l-0.31,-1.32l-2.98,-0.92l-1.58,0.51l-2.01,-0.44l1.64,-0.21l1.3,-0.91l-0.79,-2.01l0.68,-1.48l-1.21,-1.8l-1.22,0.6l-1.25,-0.19l-1.63,-1.33l-2.74,1.68l-5.32,0.26l-2.83,-1.45l-2.72,-0.51l-2.59,1.56l-3.22,-1.18l-0.95,0.18l-1.14,-0.97l-2.56,-0.28l-1.47,0.26l-0.77,1.04l-1.14,-0.08l-0.33,-1.2l-1.42,-1.55l0.02,-1.13l-1.19,-1.11l-0.66,0.33l-0.7,-0.59l0.87,-0.83l0.82,0.38l1.03,-0.88l0.96,-3.21l-0.97,-2.09l0.2,-0.77l-2.1,-2.7l-0.95,-0.63l-1.72,0.15l-1.06,-0.94l-2.4,0.47l-1.12,-0.78l-1.27,-4.07l-2.48,-1.65l-0.96,-0.03l-0.61,-1.92l-1.23,-1.32l-3.25,-1.23l-2.88,-2.63l-2.17,-3.3l-1.78,-0.87l-1.27,0.31l-7.06,-6.19l-4.86,-1.64l-4.11,1.28l-2.85,-1.28l-1.17,-2.79l-3.28,0.13l-2.13,-0.84l-1.54,1.71l0.62,0.66l2.29,0.05l0.66,0.77l-0.41,0.83l-3.64,1.25l-3.13,-0.59l-4.73,1.28l0.07,-0.52ZM332.67,307.98l0.56,1.26l-0.59,0.89l2.83,0.84l0.01,2.7l1.95,2.31l-1.91,0.59l-11.47,-4.11l-1.94,-1.7l0.42,-2.49l-1.35,-1.59l-8.44,-0.11l-5.76,3.84l-1.16,-2.61l3.29,-3.53l2.55,-1.82l1.55,0.59l2.17,-1.17l2.6,0.13l0.93,1.05l3.79,-0.1l1.22,1.25l2.67,0.51l2.06,-2.72l0.89,0.25l2.89,2.83l-1.69,1.23l-0.04,1.1l1.96,0.61ZM392.75,271.92l-0.42,-0.44l0.62,-0.8l0.88,0.72l-1.08,0.52ZM387.34,346.2l0.46,-0.55l-0.32,-0.34l0.41,-0.07l-0.1,1.78l-0.45,-0.82ZM383.59,349.84l0.92,-2.75l0.74,-0.4l1.46,0.83l0.35,1.29l-0.49,1.12l-1.63,-0.56l-0.53,0.85l-0.82,-0.4ZM377.77,333.04l-0.54,-0.85l1.26,-0.06l-0.8,0.5l0.08,0.41ZM373.24,328.16l0.04,-0.04l0.01,0.01l-0.0,0.01l-0.04,0.03ZM373.1,327.8l-0.18,-0.24l0.22,-0.29l0.08,0.67l-0.12,-0.14Z","name":"Evia"},"43":{"path":"M157.36,242.82l0.92,0.11l3.69,-3.49l2.77,-1.81l1.21,-0.25l2.82,1.75l3.31,-3.24l6.5,-1.51l1.53,1.95l0.41,3.79l2.64,1.62l0.48,1.09l-0.66,2.56l0.72,1.51l1.23,0.93l1.74,0.25l5.95,-3.41l1.17,-0.04l2.62,1.84l2.63,0.9l1.0,1.25l0.27,1.94l-2.53,0.43l-2.76,2.2l-2.97,7.2l2.92,4.84l0.71,4.55l6.73,5.46l0.98,2.23l-7.19,3.47l-4.02,-0.34l-0.9,1.43l0.05,2.48l-2.64,1.91l-1.07,0.16l0.07,-0.96l-1.26,-1.56l-6.9,0.49l-6.69,-3.66l-1.1,-1.09l-1.13,-2.54l0.43,-2.36l5.71,-3.07l0.18,-1.64l-2.83,-1.48l-4.3,-0.87l-2.6,-1.13l-1.04,-0.78l0.14,-3.66l-0.74,-1.81l-7.74,-4.3l-0.25,-0.98l1.94,-3.36l0.46,-2.82l-2.63,-3.88l-0.02,-2.31Z","name":"Evritania"},"40":{"path":"M173.44,425.1l0.37,-2.05l1.32,-2.41l4.88,-3.8l1.27,-0.43l2.48,-3.91l0.07,-3.41l-1.25,-3.91l0.88,-0.38l5.15,0.99l2.91,-0.56l2.81,0.58l1.63,-0.87l2.79,-3.31l-0.45,-1.59l0.39,-0.95l3.0,-2.95l1.2,0.88l-0.35,1.82l1.59,1.96l-1.27,5.03l4.57,4.06l0.57,5.15l2.32,1.79l1.6,2.81l2.69,0.87l1.59,2.6l2.47,1.68l1.84,2.94l2.86,-1.41l2.5,-0.05l1.52,2.49l1.32,0.55l0.41,0.96l-1.39,2.07l-0.34,1.59l3.72,3.8l3.2,9.65l-0.68,1.34l1.72,2.54l0.81,2.46l0.02,2.6l-1.41,4.75l-1.73,1.29l-2.04,-6.17l-2.94,-2.72l-0.26,-1.31l-2.77,-3.6l-1.0,-0.07l-0.91,-0.89l-2.43,1.36l-3.16,-1.94l1.61,-2.05l-0.42,-2.57l1.14,-2.64l-0.24,-1.89l-2.11,-1.06l-5.19,-0.48l-6.29,1.61l-4.69,3.0l-0.28,1.91l0.66,0.82l0.02,1.88l-0.79,2.31l-0.28,3.78l0.99,4.33l1.86,1.97l-1.8,1.35l-0.04,1.85l-1.86,0.85l-2.27,2.09l-0.64,-1.89l-1.58,-0.98l-1.16,-1.56l-0.39,-2.37l-0.56,-0.53l-2.36,-0.08l-2.55,1.15l-0.65,-0.68l-1.7,0.03l-1.06,-1.64l-0.98,-0.2l-1.6,-5.8l0.77,-2.06l1.45,-1.18l0.29,-1.74l-2.53,-1.71l-1.9,0.55l0.64,-0.88l-1.62,-3.52l-2.27,-1.69l-0.8,-1.57l-2.16,-1.9l0.45,-2.84l-1.21,-5.95ZM181.17,446.97l-0.13,-0.45l0.15,-0.15l0.08,0.8l-0.1,-0.2ZM187.77,464.51l0.68,-2.69l1.64,0.9l-0.77,2.3l-0.5,-0.44l-0.72,0.53l-0.33,-0.6ZM189.11,465.92l-0.26,0.05l0.1,-0.32l0.04,0.15l0.12,0.13ZM189.02,465.45l0.26,-0.26l0.03,-0.06l0.01,0.03l-0.3,0.29ZM183.39,462.12l-0.22,-0.25l0.1,-0.1l0.38,0.49l-0.33,0.33l0.07,-0.46ZM183.31,462.61l0.04,0.16l-0.07,0.07l-0.06,-0.06l0.09,-0.17ZM183.92,460.86l-0.6,-0.99l0.74,-1.33l0.76,0.45l-0.06,1.44l-0.84,0.42ZM171.45,434.55l-0.04,-0.21l0.76,-0.46l-0.25,0.6l-0.48,0.07Z","name":"Messinia"},"41":{"path":"M253.68,316.17l-0.42,-0.18l0.7,-3.81l-0.57,-1.34l-3.16,0.06l-2.35,-0.81l-0.27,-2.02l1.31,-1.45l-0.8,-1.63l-2.09,-2.07l-1.17,-3.9l-0.94,-1.25l0.84,-0.67l5.98,1.87l1.16,1.43l2.78,1.44l1.58,-0.33l8.63,-4.64l4.85,-0.97l4.24,0.65l1.2,2.96l5.63,-0.84l2.58,1.15l3.56,0.31l1.77,-0.39l3.08,-3.18l2.67,-0.5l0.99,0.35l0.54,2.39l3.12,0.73l3.18,3.51l3.2,-0.22l6.23,-1.53l-3.16,2.38l-3.45,3.71l0.14,1.73l1.23,1.97l1.99,-0.32l4.44,-3.42l8.0,0.09l0.86,1.12l-0.3,2.68l2.24,1.93l11.63,4.19l3.26,-0.77l0.99,0.99l2.96,0.41l0.85,-0.45l0.46,0.53l-4.24,1.21l-2.93,2.48l-1.7,2.68l-0.69,8.53l-1.98,2.02l-2.7,1.68l-6.1,-2.21l-3.01,-3.95l-1.36,-0.81l-2.82,0.01l-0.92,-0.73l0.96,-2.35l-0.78,-1.63l-1.41,-0.88l-3.31,0.76l-2.71,1.92l-0.67,4.27l-0.82,0.84l-6.99,-0.46l-0.12,0.78l3.26,1.01l-3.82,-0.72l-2.58,0.48l1.36,-1.48l-2.81,-2.59l-3.53,3.38l-0.7,-0.76l-1.46,0.01l0.75,-0.18l0.53,-0.99l-2.59,-2.1l-5.14,0.17l-0.53,-0.98l-0.46,0.51l-1.64,0.0l-0.88,1.62l0.61,0.85l-0.61,-0.43l-0.43,0.39l-0.61,-3.58l-0.73,-0.63l-1.03,1.25l-0.94,-0.87l-2.55,0.75l-4.3,-0.77l-0.69,-1.11l0.54,-0.49l0.7,0.28l0.3,-1.01l1.06,-0.58l-0.09,-0.61l-8.33,-4.02l-0.93,-1.31l0.74,-1.34l-0.33,-1.5l-2.46,-2.31l-2.81,1.34l0.53,0.91l0.99,0.13l-0.53,0.96l-0.62,-0.05l-0.75,-1.27l-2.35,1.61ZM278.88,330.45l0.0,0.16l-0.05,-0.06l0.05,-0.09ZM280.56,330.51l1.22,-0.87l1.05,0.96l-1.05,0.56l-1.22,-0.65Z","name":"Viotia"},"1":{"path":"M335.82,35.31l0.94,-1.66l1.88,-1.15l1.43,0.49l2.88,-0.32l3.11,0.98l3.01,-3.48l3.75,-0.28l0.81,-0.8l1.74,-0.42l0.82,0.25l1.39,-0.72l0.64,-1.63l0.74,0.34l0.61,1.67l2.33,1.3l3.85,-2.34l0.52,0.68l1.92,0.27l2.31,-1.39l-0.71,-5.08l1.1,-0.79l0.17,-0.81l1.43,-0.71l0.49,0.59l1.62,0.15l0.41,0.64l1.71,-0.4l1.03,1.51l1.05,0.15l0.84,-0.32l0.25,-1.15l1.38,-1.43l1.41,0.04l2.29,-1.99l0.55,1.16l1.79,1.01l-0.16,1.67l0.94,1.37l2.79,-1.24l2.35,0.71l1.41,-1.49l1.44,-0.24l0.48,0.82l3.16,0.68l1.16,-0.83l0.16,-1.07l1.31,-0.79l3.04,-0.45l1.26,-0.85l0.38,0.97l1.22,0.31l-0.55,0.8l1.07,2.17l-0.46,1.41l0.94,2.62l1.67,0.72l-0.51,1.62l0.85,1.64l0.8,0.43l3.26,-0.51l0.07,1.37l2.33,-0.29l0.91,0.64l2.82,0.28l0.76,3.03l4.04,3.03l-1.83,0.69l-2.94,-0.89l-2.02,2.23l-6.08,1.71l-0.84,4.02l-0.7,0.95l-6.04,1.48l-0.77,2.43l-2.79,0.34l-0.55,1.54l1.19,1.01l-0.54,2.03l1.33,1.5l-11.29,7.76l-2.92,0.5l-2.4,2.26l-1.56,0.73l-0.57,4.92l-4.97,-2.06l-5.63,-0.96l-1.77,-0.79l-3.62,-2.88l-1.66,-2.81l-1.64,-1.16l-3.21,-0.04l-1.38,1.16l-2.16,-1.97l-4.27,-1.03l-3.96,-2.68l-4.68,-5.14l-3.71,-2.93l-0.49,-1.18l1.34,-4.92l-6.74,-3.2l-1.09,-3.79l0.45,-1.77Z","name":"Drama"},"3":{"path":"M354.47,90.69l-0.13,-0.13l6.24,-1.28l1.7,-0.79l4.24,-3.21l1.7,-2.33l4.45,-3.12l1.11,-1.1l1.21,-3.89l-0.82,-2.79l0.35,-0.76l5.3,0.89l5.25,2.17l0.52,-0.2l0.59,-1.41l-0.06,-3.56l1.55,-0.75l2.15,-2.11l3.09,-0.58l11.68,-8.05l0.07,-0.59l-1.47,-1.66l0.5,-1.33l0.96,0.3l3.08,-0.99l4.85,0.08l7.08,1.24l0.52,0.9l-2.86,1.32l-0.06,0.69l2.49,1.72l1.81,2.69l3.77,1.91l0.41,1.36l-1.1,3.57l-0.02,2.79l0.84,4.08l2.47,6.84l-0.56,0.45l0.46,1.26l-2.64,-1.14l-4.48,0.75l1.23,-0.67l-0.64,-0.89l-1.18,0.41l-2.12,-0.9l-1.36,0.16l-1.77,1.16l-1.51,-2.48l-2.48,-2.33l-2.2,-3.9l-3.42,-0.63l-3.04,0.7l-0.55,0.83l-1.89,-0.34l-2.15,1.29l-1.49,-0.12l-1.63,2.5l-2.49,0.73l-1.19,1.67l-1.07,0.45l-0.28,1.28l1.6,0.92l-0.34,0.94l-0.84,-0.67l-1.06,0.97l-0.13,1.43l0.54,0.67l-8.4,4.22l-4.42,3.13l-4.4,1.66l-3.42,0.31l-10.32,-3.46l-3.82,-2.26ZM405.76,102.69l1.03,-3.81l2.69,-4.13l0.18,-1.63l1.37,0.29l1.32,-1.77l3.94,-2.16l2.12,1.92l1.67,0.31l1.55,-0.7l1.54,2.6l1.12,0.94l1.47,0.01l0.45,0.39l-1.18,0.28l-0.79,1.44l0.73,1.41l0.98,0.21l0.37,1.38l-1.58,1.23l0.77,4.26l0.66,0.56l-0.29,0.91l-0.85,-0.88l-1.57,1.35l-1.6,-0.15l-0.58,0.96l-1.64,-0.23l-2.26,2.26l-1.28,0.12l-0.7,-1.03l-0.83,0.1l-3.14,-3.71l-1.03,-0.34l-3.35,0.42l-0.23,-0.9l-0.96,-0.58l-0.09,-1.34Z","name":"Kavala"},"2":{"path":"M494.01,82.96l0.7,-2.64l-0.19,-4.91l1.13,-0.35l2.47,1.2l1.46,-2.31l2.85,0.45l4.65,-2.47l3.12,-0.95l1.35,-2.47l2.57,-2.15l0.95,-3.73l2.93,-1.28l-0.44,-6.58l-1.95,-2.8l0.3,-2.3l2.34,-4.8l-0.86,-1.75l-1.47,-1.28l0.78,-0.59l3.15,0.19l1.96,-0.85l0.92,-1.63l1.76,-0.53l3.53,0.4l1.16,-0.14l0.93,-0.87l2.08,0.17l0.72,-2.02l1.74,-1.76l0.4,-3.08l1.1,-1.23l2.02,-0.4l-0.26,-1.32l-2.19,-3.19l1.34,-0.77l1.01,-2.45l-0.77,-3.37l-0.6,-0.46l-1.81,0.15l0.41,-4.43l-1.27,-1.1l-0.24,-1.78l-1.7,0.63l-1.54,-0.12l-0.33,-1.35l-1.52,-0.72l-0.67,-3.51l0.68,-1.66l0.95,-0.6l2.22,0.3l0.86,-1.64l3.64,-1.68l2.42,1.41l1.36,0.09l0.85,-0.74l1.16,1.49l2.95,1.11l2.52,0.17l1.46,-0.67l2.8,0.52l3.21,1.82l2.54,-0.21l3.93,2.31l1.75,2.83l1.46,1.19l4.65,1.08l0.39,1.36l-0.63,1.46l0.84,2.79l-0.56,1.42l0.88,2.27l-0.23,2.41l1.08,1.58l-0.07,3.1l1.2,1.13l0.59,3.37l-0.37,3.15l-3.23,2.3l-1.99,-1.58l-2.84,-0.13l-2.05,1.2l-0.95,1.69l-1.75,1.13l-1.15,1.76l-3.71,2.52l-2.41,0.34l-2.76,-0.79l-1.17,0.99l-0.72,1.96l0.17,1.9l-1.5,3.69l1.83,2.86l-1.52,2.48l1.17,1.0l-0.88,2.06l0.38,2.29l0.98,2.14l2.18,1.36l-0.49,2.01l-1.61,0.44l-0.7,1.36l2.27,2.89l-2.25,0.56l-0.82,0.8l-1.55,0.05l-0.38,0.71l0.95,1.92l-0.71,0.72l-1.39,-1.86l-0.72,-0.06l-0.99,2.65l-1.88,-0.44l-0.42,0.71l0.29,1.08l-1.97,2.47l1.15,1.47l-4.65,2.13l-2.46,5.48l-3.05,1.31l-2.84,-0.24l0.42,-0.73l-0.57,-0.31l-0.37,-2.01l-0.9,-1.48l-1.03,-0.47l0.18,-1.74l-0.99,-0.45l-0.48,0.6l-3.9,-2.79l-3.18,-0.52l-3.22,0.65l-4.15,-0.91l-6.75,0.57l-7.51,-1.63ZM523.68,89.25l-0.03,0.01l-0.03,-0.03l0.03,0.0l0.03,0.03ZM480.17,120.5l-0.17,-0.33l0.87,0.03l2.06,-2.1l2.17,-0.88l3.39,-0.57l4.03,0.67l1.6,0.86l1.42,0.03l3.17,2.47l-0.3,3.53l-7.2,2.67l-2.02,0.0l-1.0,-0.29l-1.53,-1.73l-2.65,-1.01l-3.83,-3.33Z","name":"Evros"},"5":{"path":"M427.13,38.79l1.4,-0.87l0.94,-3.22l-0.21,-1.08l2.19,0.16l1.37,0.76l3.59,-1.63l1.89,1.93l9.09,2.05l2.21,2.45l1.38,0.39l1.65,-0.81l0.73,1.7l3.68,1.26l0.4,1.14l1.96,0.63l0.97,0.92l0.72,2.89l1.46,0.42l-5.09,3.34l-1.8,-2.43l-0.64,-0.0l-0.85,1.14l0.15,1.43l-2.45,2.08l-2.84,4.68l0.25,3.05l4.31,5.19l0.71,2.96l-1.21,0.39l-2.8,-0.29l-2.02,0.73l-4.93,3.97l-0.81,2.54l-2.16,-0.36l-5.59,1.98l-6.06,5.58l-0.02,-1.47l-2.48,-6.88l-0.81,-3.96l0.01,-2.49l1.12,-3.86l-0.7,-1.88l-3.78,-1.92l-0.58,-1.38l-3.18,-2.64l2.62,-1.21l-0.66,-2.01l-7.64,-1.48l-4.94,-0.08l-3.13,0.98l-1.92,-0.96l0.17,-0.74l3.03,-0.48l0.51,-2.25l6.17,-1.61l0.92,-1.33l0.53,-3.54l6.0,-1.69l1.93,-2.18l2.5,0.92l2.76,-0.94Z","name":"Xanthi"},"4":{"path":"M454.4,74.2l0.04,-1.03l1.81,-0.76l1.06,-1.89l-2.25,-1.45l-0.82,-3.18l-4.23,-5.04l-0.24,-2.42l2.74,-4.51l2.5,-2.09l0.33,-2.13l2.19,2.39l3.41,-1.78l2.75,-2.4l2.18,0.88l0.78,-0.86l3.19,0.33l2.54,-1.78l1.43,0.27l3.27,-0.73l0.56,-1.05l3.22,-1.1l4.38,0.84l1.44,-2.92l0.99,-0.57l3.96,1.29l3.33,-0.8l4.13,1.76l0.67,-0.27l0.42,-1.72l4.71,-0.24l0.74,-0.89l1.9,-0.26l0.62,-0.77l1.8,1.48l1.32,-0.09l-0.36,1.12l1.38,0.86l2.79,-0.52l2.38,2.69l-2.26,4.5l-0.38,2.69l1.97,2.91l0.4,6.04l-1.27,0.06l-1.42,1.03l-1.05,3.87l-2.55,2.11l-1.09,2.22l-3.06,0.94l-4.57,2.42l-3.0,-0.4l-1.14,1.08l-0.13,0.95l-2.05,-0.99l-1.87,0.46l-0.09,5.55l-0.71,2.48l-2.9,-0.43l-2.12,1.12l-0.85,-0.18l-7.42,-3.59l-6.08,-1.15l-1.1,-2.02l-2.39,-1.57l-0.49,0.5l-2.84,-0.13l-2.33,1.88l-1.22,-1.2l-5.83,-0.34l-0.91,-0.96l-2.32,-0.48ZM454.97,70.78l-0.51,-0.54l0.08,-0.08l0.79,0.37l-0.35,0.26Z","name":"Rodopi"},"7":{"path":"M365.19,123.75l0.31,-1.46l1.57,4.27l3.14,3.43l1.84,0.08l1.03,0.65l1.81,-0.17l1.56,0.84l1.02,-0.49l2.39,1.25l-0.46,1.17l0.95,1.15l2.65,0.08l1.24,0.62l0.44,1.15l1.12,0.72l-0.22,0.67l1.75,3.34l3.49,2.42l1.12,1.6l2.12,0.88l0.99,1.03l1.0,3.59l-7.02,2.21l-0.87,-0.97l0.15,-1.4l-0.83,-1.76l-2.83,-2.44l-1.77,-0.65l0.02,-2.14l-2.48,-2.32l-2.68,-3.85l-3.16,-0.75l-2.51,0.26l-2.37,-0.75l-1.01,0.26l-2.27,-1.09l-0.95,-0.92l0.81,-6.99l-1.1,-3.53Z","name":"Ayion Oros"},"6":{"path":"M293.08,343.35l6.44,-1.45l1.2,-1.48l2.32,-0.79l0.62,-1.98l-1.34,-1.29l-0.45,0.32l-1.34,-0.55l0.68,-0.65l1.92,0.05l0.99,-0.55l-0.61,-2.24l-0.99,-0.49l4.57,0.33l1.16,-1.31l0.56,-4.04l2.36,-1.64l2.74,-0.72l0.99,0.56l0.62,1.31l-0.72,1.08l-0.11,1.61l1.38,1.03l2.78,-0.02l1.04,0.59l3.13,4.06l6.58,2.37l3.14,-1.84l2.19,-2.22l0.8,-8.82l1.55,-2.36l2.6,-2.22l6.93,-2.14l1.33,1.35l1.66,-0.61l1.94,1.45l2.86,0.38l2.0,1.25l1.13,-0.33l3.58,1.17l7.6,7.15l1.57,0.68l-1.34,1.18l1.21,1.54l-0.95,0.62l-0.28,1.2l-2.84,0.61l-3.25,3.04l0.31,1.88l1.26,1.73l-0.01,3.05l2.42,3.56l-1.65,1.26l-0.22,1.42l0.85,2.06l-1.18,1.52l2.35,0.66l1.09,1.44l-0.86,0.74l-1.48,-0.27l-0.64,0.83l1.5,2.0l2.34,1.05l-0.7,1.65l0.43,0.58l-0.61,0.76l1.42,0.99l0.36,1.01l1.33,0.46l0.04,1.3l-0.99,2.23l0.55,0.74l-0.81,0.0l-1.3,1.29l-0.07,0.74l0.81,0.83l-0.5,0.44l0.7,1.21l-0.38,0.59l0.61,0.67l-0.44,0.5l-0.43,-0.28l-1.95,2.49l-0.53,-0.59l-0.85,0.28l-1.58,-0.74l-0.83,0.4l-0.64,-0.76l-2.18,-0.18l-0.27,-3.1l0.81,-1.27l-1.25,-0.86l-1.75,0.61l-0.59,-4.64l-5.48,-4.38l-0.6,0.8l-1.05,-0.98l-0.75,0.03l-1.12,1.9l-0.94,-1.29l-0.48,0.26l0.07,-1.84l-3.21,-3.77l-1.0,-2.83l-2.59,-2.1l0.4,-0.67l-0.45,-0.5l-1.64,-0.23l-2.6,1.37l-0.26,-0.43l1.16,-0.66l-0.64,-0.56l-1.28,0.23l-0.93,-1.6l-1.29,0.65l-1.56,-0.88l-0.94,0.23l-0.33,-1.36l1.34,-0.91l-0.11,-0.64l0.94,0.25l0.82,-0.73l1.03,-2.03l-2.64,-2.48l-2.61,1.11l-1.71,-0.95l-2.6,1.79l-2.86,0.06l-2.88,2.64l-0.13,0.69l-1.66,0.25l-0.85,1.27l-2.39,-0.69l-2.04,0.05l-1.52,0.74l-2.1,-0.8l-2.89,0.18l-3.49,2.01l-2.89,0.83l-3.63,-6.94l-2.12,-2.62ZM368.17,360.03l0.02,-0.02l0.01,0.0l-0.02,0.04l-0.01,-0.02ZM360.37,380.33l0.19,-0.28l0.81,-0.03l0.36,0.42l-1.35,-0.1ZM358.86,395.97l-0.21,-0.32l0.84,0.38l0.44,1.08l-1.06,-1.14ZM316.48,411.74l0.05,-0.67l9.66,-4.62l1.08,-0.23l1.15,0.66l0.86,-0.86l0.96,0.17l0.36,0.31l-4.83,1.37l-0.72,2.24l-3.64,0.06l-1.32,1.19l-2.36,0.93l-0.46,-0.71l-0.79,0.15ZM330.81,406.67l-0.14,-0.14l0.17,0.12l-0.03,0.02ZM318.76,357.42l-0.4,-1.04l0.61,-0.99l4.17,0.17l2.39,-3.27l0.2,-0.51l-0.62,-0.5l-1.47,0.13l-1.03,0.89l-1.85,-0.25l1.33,-0.89l-0.06,-0.49l2.1,-0.81l-0.33,-0.91l0.42,-0.39l2.3,0.27l1.78,1.13l-0.79,0.64l-0.26,1.22l1.2,0.7l-0.44,1.76l0.41,0.66l-0.6,1.03l-1.25,-0.2l-0.47,0.45l0.38,1.22l-0.66,-0.61l-1.07,0.13l-3.21,2.47l-2.79,-2.0ZM319.76,352.28l-0.06,-0.09l0.28,-0.13l-0.18,0.22l-0.05,-0.0ZM321.54,350.3l-0.96,-0.0l-0.65,-0.23l1.07,-0.01l0.54,0.24ZM321.58,350.33l-0.01,-0.01l0.02,0.01l-0.01,0.0ZM321.65,350.35l-0.01,-0.01l0.02,0.01l-0.01,0.0ZM319.9,370.67l-0.16,-0.73l1.09,0.22l2.24,-0.82l7.24,0.44l-0.77,1.43l-0.85,-0.05l-0.71,0.68l0.47,1.11l-1.61,1.83l0.33,1.4l-3.03,1.5l-1.57,-1.11l0.91,-0.83l-0.42,-1.39l-2.34,-1.53l-0.83,-2.14ZM322.31,376.53l0.06,-0.03l0.05,0.03l-0.09,0.03l-0.02,-0.03ZM301.09,384.93l5.38,2.51l1.0,1.77l2.35,0.73l1.51,1.47l1.8,-0.3l2.19,-1.75l3.17,1.75l0.25,0.48l-2.24,0.64l0.11,0.83l0.55,0.5l3.43,0.34l2.49,1.45l0.8,1.24l1.31,0.16l1.58,1.43l-0.18,1.7l-5.22,1.57l-0.03,-2.1l-1.26,-1.52l-3.02,-0.0l-1.57,0.73l-3.79,-0.86l-1.39,0.22l-2.17,-1.99l-1.45,-0.3l-2.45,-1.64l-3.79,-1.1l-1.49,-2.2l2.12,-5.77ZM320.84,392.25l2.46,-1.18l1.08,0.39l0.48,-0.49l0.9,1.3l0.78,-0.41l0.35,0.35l-2.01,1.26l-1.77,-0.71l-1.49,0.1l-0.79,-0.61ZM323.91,390.44l0.09,-0.09l-0.07,-0.28l0.07,-0.07l0.06,0.38l-0.14,0.21l0.0,-0.15ZM315.17,388.13l-0.28,-1.12l-3.66,-3.64l0.72,-1.02l1.36,-0.51l4.15,-0.1l0.94,1.45l-0.13,1.04l-1.93,2.71l-0.08,1.17l-1.09,0.03ZM322.58,447.3l-0.13,-0.33l-0.04,-0.23l0.22,0.22l-0.04,0.34ZM312.23,377.62l-0.04,-1.35l1.07,-1.35l1.94,0.53l-0.04,0.57l-1.31,0.51l-0.98,1.24l-0.64,-0.15ZM308.8,408.87l2.91,-0.67l0.62,1.16l1.45,-1.19l0.54,0.36l-2.78,1.3l-1.48,0.05l-1.26,-1.0ZM309.59,540.0l1.25,0.63l0.79,3.94l-2.35,-1.77l-0.88,-1.98l-0.55,-1.83l1.16,1.72l0.59,-0.71ZM311.64,544.64l0.02,0.15l-0.03,0.03l-0.04,-0.09l0.06,-0.09ZM306.82,375.39l-0.01,0.0l0.18,-0.16l-0.16,0.16ZM306.62,364.72l-0.15,-0.03l0.29,-0.09l-0.09,0.09l-0.05,0.03ZM298.96,418.68l0.21,-0.03l0.66,0.76l-0.16,0.03l-0.71,-0.76ZM294.79,415.28l-0.78,-0.98l3.44,0.46l1.6,1.21l-0.27,0.98l-0.46,0.6l-1.36,0.08l-2.16,-2.34ZM278.05,500.88l1.1,-2.81l1.21,-1.22l-0.12,-0.82l1.97,-0.44l1.93,3.21l0.48,1.93l1.71,1.53l3.46,1.73l4.0,3.53l0.18,0.85l-0.73,1.2l-1.38,-0.67l-1.91,1.3l-0.64,2.4l0.13,2.95l0.59,0.72l-0.42,1.31l-1.77,-1.08l-1.05,0.6l-0.82,-0.9l-0.68,0.62l-1.16,-1.14l-1.15,0.08l-0.67,-1.0l-0.78,0.29l-0.13,-1.19l-0.66,-0.21l-1.36,-2.13l0.47,-0.94l-1.23,-1.65l1.82,-1.31l-0.79,-1.95l0.66,-2.13l-0.37,-1.08l-1.91,-1.58Z","name":"Attica"},"9":{"path":"M108.16,271.01l0.99,-1.33l3.33,-0.41l0.58,-0.66l-3.7,-3.59l-0.46,-1.52l1.27,-0.45l-0.33,-0.48l0.28,-1.39l1.56,2.69l1.75,0.51l2.28,-0.23l1.44,-1.76l2.09,1.66l1.07,0.08l0.79,-0.15l1.52,-1.77l1.33,0.84l2.73,-1.14l0.75,0.96l-0.2,1.24l0.47,0.48l0.94,0.1l0.22,-0.97l1.19,-0.13l0.33,1.07l-0.9,1.22l3.88,2.14l1.25,1.41l0.71,-0.37l-0.29,-0.91l0.93,-0.4l-0.3,-2.14l0.69,-0.62l2.84,1.72l0.76,-0.2l0.72,1.93l0.86,0.91l0.59,-0.23l0.53,-1.35l-0.79,-2.61l-2.12,-1.62l0.19,-3.36l0.99,-1.67l-0.13,-1.59l-2.89,-4.3l-1.5,-1.35l-1.51,-0.2l-1.04,0.81l0.11,0.86l-0.25,-0.25l-0.27,-0.74l0.73,-2.13l2.54,-1.47l11.3,-0.47l3.12,-1.37l4.23,-3.2l1.2,-0.34l0.11,2.75l2.54,3.66l-0.41,2.35l-1.97,3.4l0.29,1.6l7.95,4.56l0.47,1.35l-0.42,2.35l0.33,1.47l1.38,1.15l9.35,3.06l0.03,0.75l-5.72,3.13l-0.66,1.6l0.06,1.57l1.19,2.68l1.34,1.35l6.9,3.77l7.02,-0.42l0.9,2.57l1.89,-0.33l2.89,-2.09l0.43,-3.61l4.02,0.29l7.19,-3.48l3.11,2.13l-1.26,3.45l0.34,2.46l-0.98,2.46l0.29,2.63l-1.02,1.26l0.16,1.53l2.14,2.15l-1.22,2.54l0.29,2.66l-2.02,1.64l-3.0,0.65l-3.25,2.53l-1.72,2.88l0.16,1.95l-0.51,1.45l-1.22,-0.71l-2.04,1.52l-1.44,0.16l-1.19,1.83l-0.57,2.45l-2.51,-0.66l-1.45,-1.15l-2.92,0.17l-3.02,-1.11l-2.05,1.49l-1.87,-0.27l-1.13,1.45l-3.71,1.38l-1.38,1.57l-1.53,-0.38l-0.04,-1.86l-0.9,-1.37l0.77,-1.18l-0.68,-0.6l-0.83,0.2l-0.25,-1.29l-1.2,0.34l-0.75,-0.52l-1.17,0.77l-0.02,-1.52l-1.17,-1.44l-2.98,-2.14l-0.87,0.66l0.61,-1.38l-0.61,-2.91l-3.69,-3.95l-1.63,1.96l1.15,1.7l1.59,0.91l0.79,1.57l-0.57,0.56l0.45,1.11l-0.61,2.54l-1.53,1.02l-1.66,0.15l-0.23,1.22l-1.48,-0.15l-0.62,2.32l-1.66,0.51l-1.04,1.4l-0.85,-0.38l-0.73,0.93l0.31,0.39l-4.2,0.56l-1.6,-1.78l0.2,-0.95l-0.95,-0.83l-1.16,0.0l-0.48,-2.28l1.87,-1.7l0.39,-1.23l-0.68,-1.05l1.77,0.76l0.84,-1.01l-2.85,-0.96l-0.64,-2.66l-1.03,-0.94l0.5,-1.36l-1.03,-0.5l0.55,-0.65l-0.94,-0.43l-0.09,-0.69l0.9,-2.68l-1.56,-0.61l-3.05,2.86l-1.02,-0.16l-0.31,-1.53l-0.83,-0.75l0.83,-6.83l-2.54,-3.42l-0.07,-2.25l-1.41,-0.73l-2.25,0.56l-1.01,-0.95l-1.12,0.61l-1.7,-3.15l0.04,-2.25l-1.18,-2.75l0.0,-1.9l-1.17,-1.47l-2.61,0.56l-2.05,2.43l-0.69,-0.33l-2.38,1.15l-1.01,-2.51l-0.71,-0.76l-1.18,-0.18l-0.11,-1.57l1.1,-2.01l-0.25,-0.6ZM135.68,304.09l-0.08,0.18l-0.21,-0.27l0.12,-0.01l0.18,0.1ZM134.05,252.92l-0.03,0.03l0.0,-0.06l0.01,0.01l0.02,0.02ZM117.68,261.03l-0.05,0.04l0.0,-0.06l0.05,0.02ZM136.19,321.02l-0.07,-0.07l0.11,-0.03l0.03,0.03l-0.07,0.07ZM137.18,320.56l-0.29,-0.57l0.13,-0.62l0.46,0.84l-0.3,0.36ZM135.25,310.04l-0.24,-1.2l1.19,1.3l0.2,1.4l-1.15,-1.5ZM132.13,305.92l-0.06,0.03l-0.06,0.06l0.16,-0.19l-0.04,0.1ZM129.74,304.37l0.22,-0.5l0.46,0.7l-0.56,-0.23l-0.11,0.03Z","name":"Aitoloakarnania"},"8":{"path":"M155.27,340.92l0.45,-1.66l1.4,-0.86l0.7,-1.75l-0.4,-3.69l0.92,-2.88l-0.32,-1.15l0.85,-0.04l1.83,2.3l3.26,-0.71l6.44,4.04l1.04,-0.38l4.76,1.47l5.68,-2.87l0.3,-1.12l2.98,-2.74l1.91,-5.43l3.02,-3.27l2.57,-0.8l0.83,0.28l2.11,-2.06l1.09,0.18l0.93,1.1l5.52,-0.28l3.07,1.53l1.86,-0.15l1.39,2.65l1.27,0.89l1.5,0.15l1.28,1.81l2.31,-1.16l1.47,1.22l2.15,3.57l1.67,1.2l1.68,-0.05l1.54,1.96l1.81,-0.19l2.27,0.98l5.23,-0.53l1.07,2.05l-0.34,2.71l1.79,2.85l-3.33,7.9l-7.62,3.49l-1.5,7.9l1.7,2.54l-0.42,1.09l-4.25,1.52l-2.15,2.22l-1.25,0.45l-0.95,-0.33l-0.62,-1.38l-2.72,-0.16l-1.79,0.65l-1.94,2.07l-1.13,0.04l-10.4,-4.72l-0.7,-2.57l-2.37,-2.09l-2.64,-0.92l-0.95,-0.95l0.03,-1.4l-1.21,-0.92l-1.53,-0.27l-1.69,1.23l-2.25,3.37l-3.57,3.18l-1.2,2.17l-0.76,-0.11l-0.38,-3.49l-1.46,-0.99l-4.24,-0.88l-1.34,-1.2l-5.27,-0.27l-3.58,-4.76l0.16,-2.32l-0.86,-1.82l-2.81,-0.54l-2.18,-2.72l-1.28,-0.49l-0.45,-3.66Z","name":"Achaea"},"13":{"path":"M108.83,135.41l0.74,-0.8l-0.18,-1.52l2.26,-2.21l-0.24,-3.58l0.4,-1.19l-0.53,-1.12l2.84,-1.25l1.32,-3.33l2.14,0.69l2.76,-0.43l1.76,1.22l2.28,-0.65l1.26,-2.03l-0.08,-2.62l2.57,-1.58l0.4,-1.4l2.7,-0.62l1.02,-2.41l7.1,-2.79l3.02,-1.95l3.36,-7.22l1.15,-0.24l1.09,0.58l1.62,4.11l2.78,-0.34l1.07,0.8l1.43,2.62l0.49,5.11l0.65,1.49l3.24,-0.87l5.23,6.73l1.25,-0.17l-1.63,1.7l-2.11,3.61l0.13,3.96l-0.84,2.09l-2.74,0.34l-1.16,1.1l-1.07,-0.15l-2.39,-2.05l-1.79,-0.26l-1.73,0.71l-1.47,2.2l-1.12,0.23l-1.29,-1.15l-1.82,0.06l-0.55,1.46l0.71,2.4l-3.77,-1.08l-2.88,0.12l-1.69,0.37l-2.9,1.9l-3.32,5.2l-0.19,1.48l1.25,3.72l-1.51,3.87l-0.08,1.89l-1.31,0.67l-1.29,0.27l-1.7,-0.85l0.2,-1.37l-1.05,-4.04l-2.19,-4.19l-3.29,-3.7l-1.52,-4.21l-1.25,-1.55l-3.35,0.49l-2.64,1.94l-1.56,-0.19Z","name":"Kastoria"},"12":{"path":"M130.61,151.11l4.25,1.8l4.49,-2.35l2.6,2.03l1.62,-0.36l2.82,-1.84l2.82,-0.35l2.48,-3.74l3.04,0.16l6.79,-1.59l5.79,0.31l2.2,1.91l0.69,3.82l1.41,1.19l4.77,-1.3l1.42,0.43l2.33,2.02l2.09,4.23l1.6,0.17l2.96,-1.28l0.99,0.33l-0.25,3.74l0.93,2.65l-1.44,4.75l0.25,1.79l1.89,1.56l1.57,-0.08l3.0,-1.3l1.78,0.11l-0.56,1.07l2.46,1.33l0.49,1.12l0.23,4.86l-0.77,0.66l-4.1,-0.57l-5.85,1.18l-2.72,-0.14l-7.89,-1.89l-11.67,-1.39l-3.3,1.16l-1.7,1.13l-1.78,2.22l-1.46,0.74l-4.43,1.08l-0.73,-0.67l-0.26,-1.45l-5.35,-2.79l-2.91,-0.12l-7.37,2.0l-1.06,-0.35l-1.4,-2.55l-1.06,-5.17l-2.35,-2.13l1.92,-3.5l0.09,-3.28l-1.66,-0.98l-2.8,1.24l-1.86,-2.27l-1.0,-3.87l-1.12,-0.94l1.61,-2.67l1.77,0.88l1.74,-0.28l1.66,-0.84l0.26,-1.63Z","name":"Grevena"},"14":{"path":"M197.12,103.47l-1.68,3.69l0.18,2.81l1.95,2.42l-0.93,2.19l0.17,1.76l1.19,0.9l2.95,4.28l5.38,2.78l0.25,1.42l1.55,0.75l4.12,-0.59l0.54,3.59l2.65,2.78l0.34,2.48l0.93,1.56l3.47,1.55l-1.08,1.89l-0.23,2.63l-0.92,0.96l-3.25,1.52l-0.59,1.64l0.2,1.64l-1.69,1.89l-0.81,2.53l-2.31,3.39l-3.77,3.49l-2.37,4.99l-3.13,1.59l-3.61,3.17l-2.93,-0.18l-4.41,1.38l-1.25,-1.04l-0.23,-1.31l1.46,-4.94l-0.11,-1.48l-0.82,-1.3l0.49,-2.71l-0.32,-1.32l-1.89,-0.72l-2.99,1.3l-1.06,-0.15l-1.83,-4.02l-2.46,-2.13l-1.77,-0.57l-4.57,1.34l-0.96,-0.72l-0.77,-3.95l-2.59,-2.23l-6.1,-0.37l-6.9,1.6l-3.05,-0.17l-1.68,1.45l-1.0,2.33l-2.68,0.34l-4.22,2.17l-2.32,-1.99l-4.73,2.32l-2.75,-0.84l-1.49,-1.06l1.47,-3.72l-1.28,-4.03l0.18,-1.04l3.06,-4.79l2.77,-1.81l1.38,-0.28l2.75,-0.11l2.57,1.09l1.61,-0.03l0.6,-1.57l-0.84,-1.52l0.36,-0.97l2.43,1.33l1.48,-0.31l1.74,-2.4l1.31,-0.48l1.18,0.16l2.39,2.05l1.6,0.29l1.31,-1.15l2.78,-0.34l1.13,-1.49l0.53,-6.19l5.12,-6.35l4.21,-3.15l15.16,-3.86l1.86,-2.3l-0.01,-2.78l0.71,-2.5l6.84,1.53Z","name":"Kozani"},"11":{"path":"M125.21,92.59l1.58,-1.74l-0.0,-5.63l0.91,0.02l0.43,-0.9l9.87,-0.21l3.47,-0.62l4.4,-1.87l2.87,1.89l3.04,0.04l4.07,-1.24l6.98,-4.14l2.34,0.89l5.18,0.04l2.72,3.3l1.13,0.59l1.33,-0.24l2.99,-2.16l2.18,-0.22l0.87,-0.97l0.15,-1.61l2.86,-1.49l3.06,0.98l0.6,3.7l3.85,2.43l-0.17,0.9l-1.19,0.95l-4.37,1.1l-2.8,-0.15l-0.9,1.45l1.23,1.57l2.13,5.69l2.66,0.98l-1.83,4.91l0.24,0.55l2.39,0.44l-0.69,2.43l0.08,2.55l-1.68,2.07l-14.96,3.74l-4.42,3.29l-0.81,1.16l-2.07,0.78l-5.17,-6.65l-2.04,-0.14l-1.19,0.85l-0.87,-5.95l-1.56,-2.92l-1.67,-1.15l-2.55,0.32l-0.4,-2.39l-0.9,-1.4l-1.46,-0.83l-2.04,0.49l-3.25,7.13l-2.78,1.81l-4.5,1.41l-2.96,1.61l0.2,-2.45l0.85,-0.56l-0.37,-1.66l0.38,-3.11l-2.68,-4.04l-3.19,-2.65l-0.16,-2.29l-1.41,-0.71Z","name":"Florina"},"10":{"path":"M137.35,362.35l0.25,-4.66l1.2,-3.38l0.51,-0.41l1.68,1.41l1.66,-0.05l1.8,-0.86l2.59,-2.39l1.44,-0.41l4.23,-5.53l1.76,-3.19l0.53,2.11l1.45,0.68l2.18,2.72l2.76,0.54l0.65,1.29l-0.08,2.63l3.78,5.02l5.6,0.43l1.26,1.17l5.2,1.4l0.73,3.94l1.75,-0.01l1.21,-2.25l3.56,-3.17l2.31,-3.44l1.11,-0.91l1.06,0.16l0.93,0.71l-0.07,1.33l1.16,1.17l2.67,0.95l1.7,1.51l-2.32,0.59l-4.61,6.99l-0.4,3.68l1.65,4.59l0.1,9.89l5.55,1.14l7.16,5.23l2.03,2.31l-1.65,1.18l-1.51,-1.12l-1.78,1.06l-2.16,2.34l-0.49,1.17l0.48,1.41l-2.58,3.06l-1.3,0.67l-2.65,-0.6l-2.76,0.56l-5.2,-1.0l-1.19,0.44l-2.08,-5.15l-2.5,-3.97l-4.18,-5.16l-3.88,-3.49l-11.98,-7.75l-3.59,-0.1l-0.99,0.98l-0.14,1.5l-0.26,-0.51l0.55,-1.9l-0.57,-0.53l1.39,-3.07l-1.07,-2.11l-0.18,-2.73l-1.5,-1.82l-5.06,-3.47l-8.87,-2.79Z","name":"Ilia"},"39":{"path":"M233.82,463.25l2.17,-2.97l0.99,-3.8l-0.03,-2.95l-0.86,-2.6l-1.63,-2.32l0.68,-1.29l-3.29,-9.9l-3.63,-3.57l1.72,-3.68l-0.57,-1.32l-1.38,-0.62l-0.54,-0.88l1.4,-1.18l4.87,-1.47l4.12,-2.25l2.15,-3.19l0.73,-7.04l15.38,3.7l-0.25,8.99l3.98,4.45l1.75,2.88l0.65,5.07l3.59,0.0l2.96,0.85l1.64,1.82l4.69,1.8l1.87,-1.47l9.16,-0.2l0.15,0.43l-0.43,-0.12l-0.82,1.28l2.05,2.64l-0.43,0.61l3.02,6.58l-0.92,0.7l1.54,2.21l2.39,1.56l-0.11,2.95l1.89,1.03l-2.08,1.15l0.34,2.39l-2.13,-1.45l-1.14,0.58l0.14,0.78l-0.81,-0.33l-1.04,1.0l-0.07,1.53l0.91,0.64l-0.32,0.87l0.56,0.96l-1.02,1.95l0.44,3.17l3.73,4.52l2.76,1.88l1.31,-0.03l0.11,1.21l1.34,0.7l-0.77,0.68l0.24,1.41l-1.03,1.15l1.67,1.58l1.03,-0.13l0.7,1.86l1.97,0.48l0.31,1.48l-4.07,-0.48l-1.18,1.23l-1.91,-1.25l-0.78,0.24l-2.21,-2.82l0.43,-2.25l-1.34,-1.53l-2.67,-1.51l-3.94,0.7l-1.01,-2.26l-1.26,-1.15l0.52,-0.86l-0.64,-1.01l-4.86,-3.57l0.68,-1.51l-1.07,-2.24l-2.31,-2.28l-1.12,-0.35l-0.68,0.6l-0.09,1.64l-0.95,-0.48l1.16,-3.82l-0.66,-1.99l-1.01,-1.1l-0.46,-2.9l-1.19,-1.88l-3.46,-0.63l-6.97,-0.08l-2.15,0.08l-4.51,2.64l-0.66,1.23l0.93,2.71l-2.77,1.07l-1.39,1.56l0.55,1.15l-0.7,0.48l0.11,0.8l0.66,0.83l0.81,-0.23l0.73,0.5l-0.18,1.03l0.53,0.43l-0.56,0.13l-0.9,-1.53l-1.82,-0.25l-0.97,1.48l2.34,3.31l-1.11,1.09l-1.18,-1.61l-1.85,0.85l-0.35,2.19l0.79,3.29l-0.75,2.46l2.37,2.99l0.09,2.19l-0.66,0.95l0.42,1.61l-2.27,0.55l-0.7,-1.91l-2.95,-1.0l-1.67,-1.66l-0.77,1.05l-1.55,-0.57l-1.38,-2.61l-0.24,-1.14l0.45,0.21l1.25,-1.2l1.93,-0.71l-0.74,-1.2l0.37,-1.81l-1.12,-0.78l1.12,-0.91l-1.86,-1.18l1.03,-0.81l-0.99,-1.76l1.0,0.03l0.53,-1.0l-1.45,-0.78l-0.31,-1.05l0.22,-0.91l0.72,0.0l1.36,-1.56l-0.95,-0.83l-2.36,0.25l-1.25,-3.37ZM245.08,491.08l0.93,0.75l-0.37,0.98l0.35,0.61l-0.77,0.22l-0.71,-0.98l0.57,-1.58ZM280.65,487.53l0.08,-1.06l1.57,-1.59l2.07,-0.76l-0.04,2.6l0.66,0.82l-0.91,-0.99l-1.21,-0.25l-2.22,1.24Z","name":"Laconia"},"38":{"path":"M235.43,335.0l4.58,1.72l1.06,-0.56l1.64,0.61l3.28,-0.56l4.28,2.87l2.03,0.28l3.01,1.65l2.21,0.46l1.89,1.6l4.9,2.24l3.81,3.43l2.0,2.97l5.96,3.07l2.02,0.1l2.24,-1.09l1.9,0.08l2.44,-3.55l-5.44,-3.93l-3.93,-1.0l2.13,-1.51l1.56,-0.19l1.02,-1.14l1.28,0.08l0.4,-0.91l0.81,-0.31l2.51,0.46l1.23,1.25l1.77,0.58l0.53,-0.73l1.86,0.93l1.61,-0.57l2.51,3.09l3.68,7.05l-1.2,1.62l-2.3,0.48l-1.6,-0.28l-2.21,0.63l-0.73,-0.91l-1.75,0.41l-1.16,-0.53l-0.88,1.21l0.63,1.36l-1.92,1.76l0.53,1.93l1.69,1.85l2.45,-0.38l1.49,0.76l3.39,-0.81l0.66,0.76l0.53,-0.2l3.4,3.3l0.64,-0.04l0.01,2.02l-2.17,1.55l-1.72,-0.51l-0.99,1.11l0.77,1.83l-1.62,1.06l-4.06,-0.15l-2.63,1.79l-5.01,-1.04l-1.06,-0.6l-0.79,-1.45l-3.96,-0.88l-4.79,1.25l-2.87,0.02l-2.79,-0.93l-4.94,-3.01l-4.27,0.3l-2.73,-1.4l-3.96,-0.86l-1.6,0.7l-0.68,-0.38l2.18,-3.5l-0.24,-1.59l-1.24,-0.69l-1.78,0.7l-1.08,-0.17l-1.48,-1.18l-1.48,0.52l-1.51,1.21l-2.3,3.56l-1.22,0.78l-2.68,-0.78l-4.11,0.35l-1.12,-0.38l-5.44,-6.39l0.17,-2.18l0.77,-1.19l0.42,-3.93l5.88,-2.32l2.49,-2.32l0.5,-2.5l2.23,-4.57l-1.85,-3.3l0.31,-1.93Z","name":"Corinthia"},"15":{"path":"M66.98,242.34l0.11,-0.42l1.08,1.04l-1.15,-0.43l-0.04,-0.2ZM60.45,236.48l-0.59,-1.22l0.59,-0.44l2.03,1.19l2.61,3.64l-2.3,-0.36l-2.34,-2.81ZM22.0,187.48l-0.54,-0.66l2.42,-3.64l1.77,-0.13l1.54,0.78l2.49,-0.93l0.84,0.49l1.41,-0.44l1.4,0.8l2.57,-1.32l1.67,-1.67l1.88,0.59l1.04,1.69l2.11,0.92l0.77,-0.4l1.26,1.23l0.94,-0.08l-1.98,3.63l-3.64,0.91l-3.24,1.92l-0.19,2.65l0.95,0.99l-0.82,0.73l1.0,1.51l0.51,-0.22l0.89,0.98l3.21,1.15l1.18,-0.15l-0.6,0.8l0.52,0.71l-0.03,0.99l-1.17,-1.36l-0.86,1.15l1.1,1.25l-0.2,3.41l1.94,7.13l3.21,1.51l1.93,0.08l0.73,1.81l0.98,0.53l2.37,-0.63l1.62,-1.22l1.67,2.64l0.52,2.03l1.61,1.82l-0.5,1.33l-1.06,-0.62l-1.07,0.16l-4.26,-2.46l-2.08,-0.5l-2.72,-2.16l-3.09,-1.03l-1.41,0.13l-2.87,-1.98l-1.49,-3.12l-0.18,-2.64l-0.6,-1.07l0.67,-1.4l-1.58,-2.65l-2.09,-2.08l-2.45,-0.74l0.35,-0.65l-0.42,-0.43l-2.52,-1.04l-0.29,-1.62l-0.92,-1.1l0.31,-1.6l-0.4,-0.39l-1.5,-0.13l-0.58,0.48l-1.93,-0.82l0.75,-2.88l-1.26,-1.1l-0.81,0.19l-0.79,-2.02ZM54.97,214.9l0.01,-0.01l0.01,0.01l-0.02,-0.0ZM43.75,211.98l0.0,0.0l-0.01,0.0l0.0,-0.01ZM37.7,194.99l-0.0,0.0l-0.0,-0.0l0.0,0.0ZM37.67,194.96l-0.01,-0.01l0.01,0.01l-0.0,-0.0ZM43.66,188.25l0.0,0.0l-0.0,0.0l-0.0,-0.0ZM31.96,200.19l0.01,-0.0l-0.0,0.0l-0.0,-0.0ZM16.24,174.41l-0.12,-0.76l1.18,0.67l-0.24,0.51l-0.82,-0.42ZM17.08,174.85l0.01,0.0l-0.0,0.0l-0.0,-0.0ZM12.14,186.04l-0.21,-0.19l-0.03,-0.34l-0.45,-0.55l0.03,-0.08l0.86,0.9l-0.2,0.26ZM0.47,177.23l0.25,-0.79l1.52,0.8l1.87,-0.72l-1.17,1.84l-0.8,-0.11l-0.19,0.46l-1.32,-0.52l-0.14,-0.96ZM3.46,177.15l-0.03,-0.01l0.03,0.01l-0.0,0.0Z","name":"Corfu"},"22":{"path":"M51.81,193.2l-0.47,0.0l-0.06,-0.78l1.19,0.05l1.36,0.48l-2.03,0.25ZM54.71,193.37l1.69,0.66l0.97,0.72l-2.43,-0.95l-0.23,-0.42ZM57.39,194.76l0.37,0.31l0.06,0.05l-0.04,0.04l-0.39,-0.4ZM59.7,196.12l4.2,0.56l0.89,-0.56l0.35,-1.31l1.5,0.51l0.87,-1.26l2.62,1.07l0.2,-2.11l1.34,-1.53l1.22,-0.24l1.9,-1.72l-2.36,-3.25l1.14,-1.55l-1.33,-2.1l0.9,-0.67l3.5,1.25l0.32,2.93l1.06,1.66l1.45,0.99l4.13,0.53l0.7,3.95l1.84,2.56l0.27,1.01l-1.67,2.14l-0.29,1.42l0.3,4.14l3.52,4.25l5.46,1.3l0.46,1.01l-0.44,1.27l0.3,1.56l1.22,2.69l0.22,3.84l1.53,2.78l2.38,7.23l-1.88,-0.31l-2.37,0.73l-2.47,-1.3l-3.5,1.58l-1.98,-0.72l-4.11,-3.19l-0.96,-2.21l-1.82,-1.55l-2.92,0.02l-4.93,2.59l0.23,-0.78l-0.61,-1.17l0.53,-0.65l-1.02,-0.85l0.54,-1.21l-1.45,-1.66l-2.14,-0.72l-1.42,-3.16l3.8,-0.1l0.62,-0.53l0.15,-0.62l-0.64,-0.66l-4.04,-2.7l1.09,-0.2l1.71,1.03l0.84,-1.79l-0.15,-0.93l-2.48,-1.33l-1.17,0.77l-4.17,-2.37l-1.87,0.77l0.57,-1.16l1.42,-0.99l0.75,-2.39l-0.74,-0.55l2.1,-2.66l-1.87,-2.07l-2.1,-0.4l-1.21,-0.91ZM61.93,202.47l-0.23,-0.28l0.69,0.05l-0.23,0.15l-0.23,0.07Z","name":"Thesprotia"},"17":{"path":"M118.71,293.28l2.02,-3.91l4.1,-0.56l-0.33,1.01l-2.06,1.7l-1.92,0.32l-1.23,0.92l-0.4,0.48l0.51,0.51l-0.94,1.13l0.25,-1.59ZM120.68,297.09l-0.17,0.04l0.02,-0.18l0.16,0.03l-0.01,0.11ZM121.78,295.3l0.2,-0.2l0.49,-0.83l-0.22,0.64l-0.47,0.39ZM112.77,304.14l-0.13,-0.04l1.43,-1.5l-0.11,1.62l-1.2,-0.08ZM108.26,290.3l-0.44,-0.77l0.38,-2.08l1.41,0.74l0.83,-0.94l1.84,0.68l-1.28,1.15l-1.21,-0.38l-1.09,1.97l-0.44,-0.36ZM92.66,294.72l1.27,-4.24l-0.24,-4.65l1.42,-2.3l2.15,-6.75l1.93,-1.41l1.58,-3.21l1.96,0.13l1.23,-1.84l1.73,0.46l-0.52,1.08l0.82,2.01l-0.19,4.38l1.12,2.93l-1.31,1.36l-1.42,3.19l1.08,0.73l0.96,2.3l-0.02,1.67l-0.78,-0.01l-1.01,-1.26l-0.51,1.58l-1.01,0.17l0.35,1.3l-1.38,0.29l-0.72,-0.69l-1.33,1.44l-0.44,-0.67l-1.09,0.27l-0.7,-1.32l0.11,-1.05l-1.25,-0.68l-2.28,4.32l-1.02,0.82l-0.48,-0.38ZM99.73,293.95l-0.02,0.15l0.46,0.75l-0.44,-0.45l-0.09,-0.7l0.1,-0.1l0.0,0.35ZM106.03,285.14l-0.2,-0.4l0.05,-0.55l0.38,0.48l-0.14,1.62l-0.1,-1.15ZM105.12,298.27l0.09,-1.29l0.38,-0.36l0.44,0.38l-0.3,1.54l-0.61,-0.27Z","name":"Levkada"},"16":{"path":"M76.75,330.07l1.36,-2.41l-0.18,-2.77l1.11,0.01l1.39,-1.65l-0.1,-2.28l0.63,-0.96l0.38,-2.82l0.51,0.65l0.95,-1.43l1.09,-0.48l0.39,2.3l1.25,0.96l0.72,-0.2l1.01,1.4l5.07,-3.74l0.77,-1.43l-0.54,-1.43l0.63,-0.76l-0.66,-1.75l0.38,-1.89l-0.85,-0.81l0.61,-0.92l-0.48,-2.32l1.47,-0.18l1.03,0.68l-0.01,1.04l0.72,0.53l-0.31,0.62l0.59,0.55l-0.28,0.52l0.91,1.16l-0.21,0.98l1.26,0.66l0.47,1.81l-0.35,0.46l1.23,4.61l-2.39,1.91l1.05,1.04l1.14,2.86l0.95,0.99l1.01,0.0l2.36,-2.62l-0.62,1.38l0.47,0.48l1.06,-0.52l0.52,0.36l-0.23,0.5l1.15,1.37l0.17,1.28l3.47,3.94l2.92,4.66l1.71,1.39l-0.02,0.62l-1.79,4.16l-1.62,-0.98l-1.78,0.76l-3.35,-0.74l-4.85,-3.81l-1.95,-0.66l-3.13,1.25l-1.01,1.3l-2.38,-1.27l-1.13,0.28l-2.0,-1.57l0.54,-1.16l-1.51,-2.17l0.35,-1.24l-0.88,-1.59l2.14,2.63l0.99,-0.81l-2.39,-3.46l-2.19,-5.32l-0.02,-1.17l-1.01,-0.68l-1.14,0.2l-0.99,1.32l1.42,3.79l0.07,5.63l-3.49,0.59l-0.63,0.57l-0.53,-1.38l-2.6,-1.05l0.18,-1.75ZM81.4,316.84l0.03,0.02l-0.03,0.05l0.0,-0.07ZM81.28,316.41l0.0,0.08l-0.05,-0.13l0.02,-0.09l0.03,0.14ZM91.51,313.21l0.0,0.05l-0.05,0.0l0.05,-0.05ZM98.47,305.92l0.24,-1.18l1.51,1.15l0.86,-0.71l0.35,-1.2l-0.5,-1.26l1.64,0.81l-1.11,2.67l2.22,0.81l1.31,1.38l-2.62,5.19l-1.91,-3.88l0.07,-1.64l-1.12,-0.42l-0.94,-1.72ZM103.04,315.34l1.44,-0.82l1.78,0.67l0.2,-0.91l-1.21,-1.0l0.72,0.48l0.82,-0.65l0.63,0.27l0.49,1.07l-0.63,0.46l0.86,0.97l-0.7,1.3l0.39,1.07l1.3,0.71l-3.36,1.24l-1.35,-1.31l-0.55,-2.65l-0.96,-0.51l-0.46,-0.78l0.58,0.38ZM104.12,306.74l-0.07,-0.01l-0.03,0.01l0.08,-0.08l0.03,0.07Z","name":"Kefallonia"},"19":{"path":"M108.62,255.0l0.13,1.05l-0.69,-0.26l-0.89,-2.12l1.04,-4.49l1.52,-0.83l1.58,-2.02l1.26,0.56l1.68,-0.45l2.82,-3.4l0.28,-1.61l-1.81,-5.4l0.36,-0.88l4.54,-1.33l1.56,-1.29l1.33,-2.75l0.42,-5.6l4.31,-3.02l0.89,-1.28l1.41,-7.7l0.97,-0.8l3.96,1.74l3.08,-1.8l1.82,0.69l1.55,2.72l-0.23,1.58l0.57,1.6l3.77,2.9l1.23,3.27l2.93,1.97l5.49,0.31l1.69,1.82l1.09,2.45l-4.05,7.35l0.35,1.72l1.69,2.35l-1.36,0.42l-4.18,3.17l-4.33,1.59l-9.8,0.16l-1.63,0.57l-1.42,1.15l-0.93,2.53l-0.7,0.29l-0.24,1.13l0.48,0.53l-2.31,1.23l-0.71,-0.64l-1.88,0.57l-1.3,-1.83l-0.79,-0.2l-3.16,2.37l-2.14,-2.06l-4.66,-0.03l-1.3,-2.31l-1.58,-0.26l-3.03,2.55l-0.72,2.05Z","name":"Arta"},"18":{"path":"M99.32,361.39l0.11,-1.91l1.42,-1.79l3.85,-2.93l0.54,1.03l-0.45,1.0l0.77,1.52l3.2,3.88l1.82,1.07l1.26,-0.66l2.55,0.79l5.01,2.18l1.06,0.76l-0.49,2.21l3.51,1.92l1.03,1.55l2.62,1.24l0.26,1.37l-3.2,-1.18l-2.27,-1.55l-2.69,0.43l-1.93,1.29l-2.23,3.35l1.82,1.97l-0.13,0.49l-1.47,0.9l-1.32,-0.4l-0.64,-0.3l-0.6,-1.51l-2.97,-2.32l-0.44,-1.2l-3.3,-1.34l-1.47,-1.58l0.33,-1.44l-1.82,-0.83l0.4,-1.88l-0.82,-0.63l-1.51,-0.05l-1.48,-1.59l0.08,-1.76l-0.7,-1.38l0.3,-0.7Z","name":"Zakynthos"},"31":{"path":"M327.75,593.03l-0.42,-0.51l0.29,-0.77l2.19,-1.31l-1.44,-1.44l0.55,-0.9l-0.68,-1.05l0.42,-1.69l1.29,-1.41l-0.57,-1.1l1.09,-0.34l0.84,-1.2l0.13,-1.74l-1.07,-0.59l-0.22,-1.15l2.15,-2.24l-0.26,-1.29l-0.77,-0.65l0.4,-0.47l-0.44,-0.89l0.55,-2.03l1.01,-1.32l-0.44,-0.85l0.93,-0.92l-0.09,-0.75l0.18,-0.78l0.27,-0.5l0.31,0.33l-0.68,0.95l0.22,1.97l0.66,0.67l-0.11,3.64l0.51,0.55l3.5,1.92l4.73,-0.8l0.66,-0.77l0.59,-3.11l-0.37,-2.22l-1.25,-2.32l0.53,-1.69l-0.77,-2.6l0.22,-1.3l1.99,-2.75l2.38,1.89l-0.86,1.85l1.25,4.41l0.04,4.64l1.19,1.0l3.33,0.4l0.86,0.82l4.89,0.75l2.08,-0.35l1.18,0.77l2.13,0.22l0.69,-0.41l1.63,0.31l1.51,-0.69l0.61,0.37l1.91,-1.12l0.33,-1.99l0.83,0.27l1.87,-0.95l-1.04,-1.98l0.44,-1.1l0.99,0.19l0.51,-0.67l1.79,-0.37l3.74,1.3l1.93,3.97l-1.43,2.79l-1.68,0.83l-4.03,-1.22l-1.21,0.35l-0.9,-0.43l-1.4,0.77l-0.51,1.05l4.98,2.39l2.49,-0.07l2.85,1.99l1.12,-0.1l0.9,-1.12l0.74,0.25l1.46,-1.21l1.05,1.51l-0.39,1.97l1.05,1.02l-0.15,1.88l-0.64,1.0l0.42,2.12l1.58,1.05l2.23,0.25l1.11,2.82l-0.18,0.85l-4.4,2.05l0.26,1.27l1.17,0.64l-1.6,7.17l-2.09,-0.12l-2.53,-1.79l-3.7,0.82l-2.06,-0.99l-2.25,0.37l-0.97,-0.42l-0.94,0.61l-1.01,-0.34l-2.1,0.52l-1.26,-0.5l-2.27,-2.63l-2.74,-0.07l-2.47,0.82l-3.38,-1.64l-1.13,0.35l-3.18,-1.24l-1.51,0.17l-0.93,0.84l-0.63,-0.19l-0.38,0.82l-1.3,0.19l-0.73,-0.84l-2.1,-0.22l-2.67,0.17l-1.21,0.8l-1.44,-0.78l-3.62,0.69l-1.73,-0.51l-0.65,0.45l-0.76,-0.84l0.46,-1.45l-1.63,-1.05l-1.4,0.0l-1.4,-1.93ZM333.77,564.73l0.01,0.01l-0.01,0.02l0.0,-0.03ZM368.85,632.83l1.97,-1.56l3.5,0.92l-0.9,2.3l1.57,2.01l-4.18,-1.82l-1.95,-1.85Z","name":"Chania"},"23":{"path":"M245.57,99.28l-2.08,2.1l0.15,0.66l6.13,0.94l1.08,0.83l0.65,1.42l2.38,2.11l2.33,5.41l3.55,1.67l-1.47,0.84l0.78,2.84l-1.07,1.36l-1.3,-0.14l-0.62,-0.78l-0.82,0.86l-0.86,-0.1l-2.56,-1.59l-0.7,-1.47l-4.23,0.35l-2.7,-1.9l-2.99,0.57l-1.15,1.67l-2.01,5.98l-5.98,4.65l-3.26,3.59l-1.53,0.98l-3.01,0.38l-1.96,1.24l-1.8,3.39l-3.25,-1.38l-0.76,-1.23l-0.46,-2.75l-2.56,-2.61l-0.08,-2.53l-0.6,-1.37l-4.71,0.38l-0.98,-0.53l-0.22,-1.38l-5.48,-2.85l-2.8,-4.12l-1.21,-0.96l0.9,-3.74l-2.01,-2.51l-0.08,-2.34l1.78,-3.8l7.22,-1.2l4.59,-1.39l0.28,-1.53l0.85,-0.89l12.37,2.88l3.74,2.29l2.78,2.95l3.31,-1.88l3.28,-3.09l1.24,0.83l3.02,-0.1l1.74,-0.69l1.5,-2.17l1.64,-0.18Z","name":"Imathia"},"51":{"path":"M511.66,240.3l-0.73,-0.21l0.88,-1.29l-0.36,-3.39l0.91,-1.34l-0.45,-0.83l3.98,-3.39l0.78,1.18l1.23,-0.12l0.9,0.6l1.26,-0.95l0.89,0.64l1.62,-0.05l0.83,-1.0l1.98,0.18l0.77,-0.6l2.32,-0.17l2.45,-1.65l0.99,0.72l2.87,-1.62l1.25,-0.08l1.45,-1.4l-0.99,-1.18l0.46,-1.24l-0.41,-0.9l0.9,-0.45l1.0,0.49l2.56,-0.87l6.77,0.98l1.71,-1.29l1.42,0.91l-0.93,1.65l0.93,1.15l1.01,0.64l2.41,-0.31l1.47,0.6l-3.54,4.76l0.15,1.08l7.69,4.54l-0.31,0.65l1.01,0.6l1.2,2.63l1.12,0.94l1.52,0.32l-0.43,2.31l1.48,0.88l0.8,2.0l-0.15,1.14l3.07,2.68l1.14,1.92l0.26,2.77l-1.28,0.38l-2.29,-0.99l-1.71,0.29l-1.05,-1.22l0.5,-1.13l-1.49,-0.42l0.2,-0.77l1.31,-0.7l-0.17,-1.52l-2.46,-2.96l-1.51,-0.87l-2.3,0.59l-1.36,1.43l0.81,1.92l1.63,1.66l1.51,0.36l3.26,3.74l0.61,2.88l-1.32,1.08l-0.35,-0.84l-3.02,0.97l-6.01,0.67l-2.77,-1.24l-2.93,-0.03l-3.25,-2.31l-4.1,-1.36l-3.35,-0.26l-1.63,0.87l-1.98,-1.52l-2.11,-3.32l-1.27,-0.92l-1.17,0.08l1.52,-1.35l2.05,0.69l2.21,-0.95l2.09,-2.67l2.58,-0.41l2.66,-1.9l2.08,-0.38l1.5,-3.12l-1.39,-1.45l-2.19,-0.87l-2.84,0.28l-1.38,-0.41l-1.29,0.9l-1.3,-0.03l-1.45,1.79l0.02,2.09l-2.56,2.04l-0.61,2.41l-1.07,-0.45l-1.63,2.44l-6.52,-2.1l-2.78,0.37l-0.79,-1.06l0.22,-0.42l-1.32,-1.17l-2.45,-0.44l-1.34,-1.13l-0.75,0.03l-0.21,-1.19l-1.13,-0.73ZM510.53,239.98l0.04,-0.09l0.13,0.13l-0.08,0.05l-0.09,-0.09ZM566.85,246.35l0.09,0.0l0.09,-0.03l-0.1,0.1l-0.08,-0.08ZM551.06,221.97l0.02,-0.02l0.01,0.0l-0.02,0.02l-0.01,-0.0ZM551.15,221.94l-0.02,0.0l0.04,-0.02l-0.02,0.02ZM551.27,221.89l-0.01,0.0l0.01,-0.01l0.0,0.01ZM448.04,166.17l-0.08,-0.51l0.88,-0.55l3.11,-0.0l2.94,-1.58l1.0,1.76l3.63,-1.08l1.39,0.23l1.06,-0.72l1.42,1.52l1.11,0.25l-0.15,1.8l1.37,0.89l-0.61,0.58l0.95,1.02l0.79,0.08l2.08,-2.08l0.75,0.47l2.0,-1.25l-0.59,-1.15l2.54,-2.26l-0.37,-1.25l2.34,1.39l1.58,-1.83l1.56,-0.77l-1.18,1.04l0.86,3.47l-1.93,0.81l-2.44,2.62l-0.5,1.76l0.46,1.08l-0.63,-0.47l-1.29,0.44l-0.69,1.02l0.39,1.3l-1.44,0.99l0.22,1.26l0.4,0.4l0.29,-0.03l0.1,0.1l-0.91,0.74l0.18,1.19l2.25,2.54l-1.77,1.02l0.41,1.35l-3.71,-1.11l-0.76,-1.01l0.54,-1.17l-1.28,-1.2l-1.16,-0.08l-1.52,-1.93l1.88,-0.97l-0.55,-0.92l1.29,-1.58l-2.09,-2.15l-1.86,0.08l-3.4,2.53l-0.53,0.71l0.4,0.53l1.27,-0.7l-2.05,2.72l-1.47,-0.58l-2.05,1.89l0.31,-0.51l-1.56,-1.1l-2.08,1.27l-1.96,-0.34l-0.89,0.81l1.25,-1.44l-1.12,-1.04l0.69,-0.74l0.18,-1.21l-0.49,-0.51l0.91,-0.8l0.37,-1.78l-1.01,-1.33l-0.79,-0.21l-0.51,-2.15l0.31,-1.57ZM460.14,174.79l0.05,-0.05l0.04,0.02l-0.03,0.03l-0.06,0.0ZM463.27,177.14l0.03,0.03l0.06,0.02l-0.14,-0.03l0.05,-0.02ZM458.62,178.95l1.05,0.2l0.09,1.26l1.53,1.87l-4.42,0.0l-1.09,-1.01l-0.02,-0.9l0.77,-0.55l0.33,-1.24l0.87,-0.22l0.89,0.6ZM454.4,161.85l0.14,-0.09l0.11,0.04l-0.06,0.03l-0.19,0.03ZM441.92,209.44l0.53,-2.24l0.88,-0.54l0.81,-1.82l3.82,2.78l-5.21,5.52l-0.82,-3.7Z","name":"Lesvos"},"36":{"path":"M264.22,394.85l1.73,2.56l-0.07,1.92l1.74,1.8l-1.41,2.47l0.95,0.98l0.89,-0.03l1.83,2.45l0.82,2.48l1.1,0.8l-0.12,0.74l1.51,2.1l-0.13,0.98l1.75,1.02l-0.52,1.05l2.46,2.42l0.63,2.53l1.2,0.85l-1.36,4.24l0.37,2.27l1.78,1.41l0.92,-0.1l0.47,-0.67l1.76,0.01l-0.39,1.29l2.41,2.2l-0.91,-0.39l-0.73,0.73l3.21,4.32l-0.72,0.39l0.66,0.94l-0.29,0.64l-8.96,0.21l-1.65,1.43l-4.36,-1.67l-1.69,-1.84l-3.23,-0.91l-3.27,0.0l-0.3,-4.6l-1.87,-3.06l-3.79,-4.08l-0.03,-9.53l-16.15,-3.9l-0.49,0.35l-0.77,7.4l-1.97,2.84l-3.79,2.03l-4.91,1.49l-1.51,1.23l-1.05,-1.21l-2.6,0.08l-2.48,1.35l-1.61,-2.57l-2.47,-1.68l-1.62,-2.65l-2.89,-1.04l-1.33,-2.54l-2.36,-1.87l-0.55,-5.11l-4.5,-4.0l1.35,-4.51l-0.59,-1.6l-1.09,-0.9l0.42,-1.2l1.48,-0.62l0.72,-1.62l-2.32,-2.63l-7.24,-5.29l-2.69,-0.93l-2.49,0.13l-0.09,-9.62l-1.64,-4.52l0.38,-3.49l4.4,-6.59l2.32,-0.47l0.8,2.5l10.79,4.83l1.66,-0.17l1.99,-2.12l1.31,-0.47l2.34,0.13l0.5,1.29l1.55,0.44l1.63,-0.63l2.0,-2.11l4.34,-1.55l0.56,-1.06l3.63,3.73l1.45,0.46l4.12,-0.35l2.22,0.67l-1.72,4.47l-0.74,3.88l0.31,1.46l1.66,1.23l2.73,-1.27l0.93,0.32l2.12,5.36l2.52,1.29l0.09,1.2l1.97,2.3l-0.99,3.48l0.57,1.64l1.43,1.15l2.4,0.84l1.8,4.02l1.24,0.69l1.58,0.02l1.53,-0.73l2.64,0.38l1.69,-0.8l-0.12,-4.18l2.16,-1.97l1.33,-0.37l0.61,1.37l-0.92,1.94Z","name":"Arcadia"},"35":{"path":"M655.95,516.09l0.86,-0.68l2.79,-0.55l1.5,-1.58l0.96,-0.02l2.13,-3.15l0.11,-2.12l1.25,-2.36l1.26,-0.05l1.51,-0.98l2.77,-3.56l2.75,-1.8l3.62,-1.0l7.32,-4.0l5.1,-1.94l5.45,-0.15l2.57,-3.07l1.04,1.24l-0.85,3.06l1.37,1.42l-3.21,3.62l0.73,1.82l-2.88,3.72l-0.85,2.1l0.3,0.92l-1.73,2.13l-0.7,1.9l0.02,1.51l-2.89,0.87l-2.13,3.28l-0.77,3.28l0.71,0.75l1.17,-0.21l-0.39,0.58l0.37,0.89l-1.24,1.16l0.77,1.03l-1.45,-0.38l-1.17,-1.33l-1.93,-0.08l-5.37,2.85l-1.91,2.08l-3.22,5.7l-1.97,2.4l-3.06,1.6l-2.35,2.32l-1.0,0.18l-3.35,-2.28l-1.17,-2.32l2.81,-6.35l0.26,-7.4l-1.04,-1.3l-2.92,-0.86l0.56,-1.14l-1.1,-1.88l-0.92,0.45l-0.5,-0.32ZM662.87,475.92l2.06,-1.51l0.25,-1.32l0.58,0.06l0.21,0.8l1.23,-0.21l0.57,0.76l1.07,-0.9l1.13,-0.35l-1.27,0.98l0.58,0.6l1.37,-0.3l-0.72,1.16l0.66,0.63l-1.58,0.83l1.47,0.8l-1.25,0.63l0.73,1.36l-1.17,0.9l-0.93,0.03l-0.13,-0.48l0.63,0.25l0.71,-1.18l-0.64,-0.85l-1.73,-0.93l-1.23,0.4l0.82,-0.76l-0.53,-1.23l-2.21,0.48l-0.67,-0.65ZM666.06,472.87l0.0,0.03l-0.03,0.0l0.03,-0.03ZM667.51,470.92l1.33,-0.73l0.58,0.62l-1.66,0.3l-0.24,-0.2ZM669.44,482.72l0.01,-0.43l0.49,0.1l-0.33,0.15l-0.18,0.18ZM661.51,540.46l-0.28,-0.22l0.58,-0.04l-0.25,0.26l-0.04,-0.0ZM656.06,505.7l0.5,-0.91l1.67,-0.38l-0.27,1.05l-0.62,-0.45l-1.29,0.69ZM657.78,505.91l0.12,0.12l-0.19,0.23l-0.12,-0.12l0.19,-0.23ZM642.85,510.36l0.28,-1.77l1.91,-0.33l0.49,0.41l3.2,-0.95l1.57,0.5l-0.02,0.86l-0.65,0.51l-0.38,-0.29l-1.61,0.71l-2.25,-0.39l-2.55,0.73ZM625.13,491.24l0.26,-3.35l2.18,1.0l0.95,-0.7l0.28,-1.33l1.05,-0.06l2.46,3.88l-0.63,1.5l0.6,0.73l0.74,0.3l0.83,-0.77l1.45,1.48l0.93,-1.38l0.55,0.58l-0.86,1.0l-3.17,0.99l-2.43,-2.32l0.0,-1.53l-0.79,-0.95l-0.85,-0.02l-2.11,1.75l-0.46,-0.89l-0.97,0.11ZM595.85,461.29l2.67,-1.16l2.47,0.45l6.79,-7.27l7.24,-3.62l4.7,-0.23l3.72,-1.96l1.39,1.93l2.01,0.76l1.44,-0.58l0.81,1.51l0.09,0.78l-1.92,1.06l-12.49,3.52l-4.43,4.42l-6.51,-0.9l-3.92,1.63l-0.97,1.03l1.05,2.06l-1.36,1.29l0.28,2.56l-2.99,-2.61l-0.44,-1.17l0.35,-3.5ZM607.4,566.45l-0.29,-1.13l1.38,-0.5l0.42,-0.42l-0.28,-0.58l2.91,-2.09l0.24,-1.12l-0.59,-0.85l0.59,-1.62l3.37,-4.61l-0.53,-2.0l0.74,-4.14l1.15,0.43l1.73,-2.5l1.41,0.1l-0.18,2.46l-1.56,1.73l-0.18,1.8l0.8,2.52l-2.22,2.84l-0.61,2.37l-1.73,1.6l-0.33,2.32l0.37,0.43l-0.87,0.82l1.08,1.52l1.33,0.28l-0.15,0.79l1.14,1.2l0.87,0.15l-0.0,1.22l1.14,0.97l-1.58,1.44l0.09,1.42l1.04,0.95l1.55,-0.07l0.74,0.85l-0.84,1.65l-0.55,-0.76l-1.45,0.05l-1.33,1.57l-1.28,0.55l-1.38,1.77l-0.37,1.54l0.88,0.62l-0.74,0.59l-1.38,-1.86l-1.28,0.15l-1.96,-1.57l1.8,-1.69l0.92,-1.94l-1.14,-2.14l0.59,-3.04l-1.23,-1.7l-1.86,-0.77l0.42,-0.74l-0.81,-0.84ZM619.11,544.06l-1.33,-0.28l-0.98,-1.42l0.73,-0.03l1.52,-1.75l0.07,-1.68l0.98,-0.25l-0.64,2.32l0.75,2.53l-1.1,0.54ZM612.11,477.65l-0.07,-2.67l2.91,-0.82l1.39,0.03l1.8,2.89l-1.49,2.04l-4.13,-0.55l-0.41,-0.9ZM611.67,444.78l-1.14,-0.97l1.82,-0.29l0.44,0.82l0.89,-0.88l0.97,0.39l-1.51,1.3l0.72,0.67l-0.34,0.24l-1.09,-0.03l0.13,-0.57l-0.88,-0.68ZM610.24,470.04l0.38,0.04l-0.33,0.71l-0.14,-0.42l0.09,-0.32ZM611.76,469.09l0.45,-0.51l0.08,0.08l0.09,0.34l-0.62,0.08ZM608.14,433.66l0.37,0.08l0.08,0.07l-0.36,-0.03l-0.09,-0.11ZM608.78,433.87l0.03,0.0l0.05,0.03l-0.03,0.03l-0.06,-0.06ZM608.45,413.96l-0.12,-0.34l0.02,-0.5l0.76,0.82l-0.66,0.03ZM608.37,412.45l0.06,-0.06l0.02,-0.09l0.01,0.09l-0.09,0.06ZM608.64,412.03l0.08,-0.08l0.01,0.01l-0.09,0.09l0.0,-0.02ZM607.28,478.3l-0.07,0.0l0.07,-0.0l-0.0,0.0ZM592.61,432.78l0.31,-0.31l4.77,1.97l0.54,-0.3l2.27,1.38l-1.1,-0.32l-0.4,0.42l2.76,2.59l0.33,1.18l0.84,-0.86l1.39,-0.2l0.86,1.18l-0.58,1.5l-0.99,0.67l1.11,0.58l-1.02,0.76l0.35,0.48l-3.48,-0.15l-0.66,0.65l0.31,1.67l-0.84,0.05l-0.49,-0.58l-0.49,0.58l-1.13,-0.3l-0.9,-0.81l0.09,-0.48l-1.16,-0.59l1.51,-1.45l-0.75,-1.14l1.16,-1.89l-0.02,-1.2l1.82,0.57l0.42,-0.57l-2.04,-2.57l-1.84,-0.23l-0.33,-0.95l-2.62,-1.34ZM594.9,435.64l0.03,-0.08l0.07,0.03l-0.07,0.05l-0.02,0.0ZM595.2,435.61l-0.02,0.0l0.01,-0.01l0.01,0.01ZM605.01,443.52l0.08,0.02l0.11,0.28l-0.31,-0.17l0.13,-0.13ZM589.8,587.02l4.34,-5.04l2.23,0.45l5.29,-1.41l-1.08,2.38l-2.28,0.47l-2.41,2.49l-1.51,0.12l-2.14,2.06l-1.88,-0.59l-0.55,-0.93ZM597.45,396.88l-0.21,-0.44l3.54,0.62l-1.06,1.1l-0.78,-0.7l-1.16,1.11l-0.33,-1.7ZM601.39,397.57l0.01,-0.12l0.24,0.21l-0.07,0.05l-0.18,-0.14ZM599.03,484.53l0.17,-0.18l0.2,0.03l-0.1,0.1l-0.27,0.05ZM594.58,438.91l-1.1,-0.4l-0.36,-0.31l1.36,-0.08l0.81,1.07l-0.71,-0.28ZM584.27,423.73l-0.69,-0.36l0.83,-1.31l1.03,0.73l1.26,-0.57l0.64,0.47l0.71,-0.56l1.9,0.72l-1.69,1.81l0.97,0.85l1.19,-0.39l0.38,0.22l-0.63,0.9l1.97,1.67l0.62,1.15l-0.24,0.67l-1.07,-0.72l-0.58,0.48l0.33,0.56l-1.77,0.08l-0.46,-0.79l1.69,-0.35l0.31,-1.49l-1.01,-0.45l-2.63,1.39l-0.44,-0.81l1.82,-1.46l-0.07,-0.55l-1.43,-0.78l-1.33,0.36l-0.4,-1.07l-1.21,-0.4ZM586.0,421.56l-0.11,-0.11l0.32,-0.12l0.01,0.01l-0.22,0.22ZM590.76,579.99l0.3,0.17l0.14,0.32l-0.94,-0.37l0.5,-0.12ZM579.57,411.16l0.84,-1.12l0.71,1.26l1.26,0.59l-0.84,0.65l-1.96,-1.38ZM583.27,413.28l0.39,-0.73l-0.43,-0.41l1.35,-0.43l0.1,1.3l-1.41,0.28ZM583.11,412.12l-0.03,-0.03l0.04,0.03l-0.0,-0.0ZM579.7,403.28l-0.41,-0.42l2.7,2.23l-1.39,-0.57l-0.9,-1.24ZM579.22,402.85l0.04,-0.03l0.03,0.03l-0.06,0.0ZM578.28,406.43l-0.02,-0.02l0.24,-0.24l-0.01,0.08l-0.21,0.18ZM575.32,498.35l-0.22,-0.4l1.21,-0.37l0.94,1.36l-1.66,0.57l-0.26,-1.15ZM564.78,412.9l0.18,-2.08l0.59,-0.62l1.76,1.31l-0.74,0.37l0.03,0.65l-1.16,-0.24l-0.65,0.61ZM567.25,413.75l0.16,0.66l-1.37,-0.32l0.78,-0.63l0.43,0.29ZM565.0,409.6l0.21,-0.09l0.04,0.23l-0.04,0.04l-0.22,-0.19ZM565.94,409.14l-0.74,-1.62l0.57,-0.51l-0.59,-0.75l0.0,-0.74l1.09,0.93l1.48,-1.04l0.36,0.99l1.48,0.59l0.04,0.8l-2.32,-0.67l-1.38,2.03ZM558.18,439.04l-0.47,0.14l1.45,-0.58l-0.57,0.41l-0.41,0.04ZM557.07,438.84l-0.35,0.05l-0.04,-0.1l0.31,-0.05l0.09,0.11ZM560.55,439.22l-0.29,-0.05l-0.52,-0.43l1.7,0.4l-0.89,0.08ZM559.67,481.46l-0.04,-0.04l0.08,-0.08l0.01,0.06l-0.05,0.05ZM543.97,476.7l-0.11,-0.28l0.34,-0.33l0.57,1.13l1.36,-1.0l0.74,0.15l2.3,1.28l0.38,0.95l0.77,0.03l0.37,1.18l-1.48,1.28l2.0,2.17l-0.73,0.27l-1.06,-0.53l-1.11,0.6l-1.52,-1.15l-0.65,0.28l-0.97,-2.46l-0.86,-0.54l0.31,-1.52l-0.86,-1.02l0.2,-0.48ZM552.22,477.71l-0.38,-0.46l1.03,-0.58l1.11,0.63l-1.75,0.41ZM554.54,477.68l-0.27,-0.26l0.73,-0.63l-1.04,-2.14l1.83,-1.03l-0.71,-0.43l-1.7,0.47l-0.84,-1.15l0.41,-0.58l2.93,1.36l3.52,3.47l-0.38,0.28l-1.08,-0.95l-1.43,0.64l-0.41,-0.28l-0.63,1.26l-0.46,-0.38l-0.47,0.36ZM554.25,523.06l0.07,-0.07l-0.02,0.11l-0.04,-0.04ZM544.74,441.15l0.86,0.08l0.49,-0.5l0.64,0.02l-1.75,0.97l-0.6,-0.28l0.35,-0.28ZM540.76,479.76l-0.1,-0.07l0.1,-0.1l0.02,0.04l-0.02,0.13ZM533.92,479.75l-0.06,-0.06l-0.15,0.07l-0.02,-0.02l0.29,-0.11l-0.07,0.11Z","name":"Dodekanisa"},"52":{"path":"M568.13,373.41l-0.33,-0.57l2.98,-3.09l2.06,0.03l3.09,-2.53l1.34,0.09l3.98,-1.6l8.4,0.66l2.63,2.49l3.63,0.62l2.99,2.19l1.25,-0.93l-2.05,-2.62l5.86,1.19l1.77,-0.46l-1.75,0.64l-0.79,1.44l1.19,0.96l-0.33,1.05l0.47,0.53l1.95,-0.1l0.26,0.6l-4.19,1.04l-2.45,-0.35l-1.82,1.6l-1.97,-0.1l-1.88,0.68l-2.06,1.59l-0.46,2.36l-1.4,0.3l-4.93,-0.55l-2.93,-4.44l-3.03,-1.77l-6.24,0.68l-1.87,1.75l-1.87,0.53l-0.81,-1.03l0.5,-1.1l-1.16,-1.77ZM600.19,367.76l0.05,-0.05l0.06,0.15l-0.0,0.0l-0.11,-0.11ZM554.86,386.52l1.01,-0.48l0.42,0.34l-1.17,0.38l-0.26,-0.24ZM556.31,386.4l0.69,-1.08l1.08,-0.04l0.35,1.53l-0.36,0.85l-0.74,-1.23l-1.01,-0.04ZM561.61,389.72l0.11,-1.24l-1.16,-1.16l0.34,-1.35l0.78,0.77l0.09,1.71l1.02,1.01l-0.43,0.46l0.46,0.7l-1.22,-0.9ZM560.76,385.7l0.11,-0.11l-0.02,0.2l-0.09,-0.09ZM562.99,385.75l-0.05,-0.16l0.65,-0.15l-0.35,0.53l-0.25,-0.21ZM563.89,385.14l-0.46,-1.57l0.37,-0.81l-1.51,-0.9l0.81,-1.77l1.55,1.12l-0.74,0.87l0.22,0.91l0.99,0.46l-1.21,1.7ZM560.89,385.09l-0.11,-0.07l0.04,-0.04l0.07,0.07l0.0,0.05ZM521.1,391.86l2.76,-4.83l3.62,-4.03l1.76,-1.19l1.32,0.61l4.06,-0.73l0.63,0.61l1.37,-0.18l1.69,0.68l7.94,-4.91l4.62,-0.86l-0.05,0.64l-1.38,0.73l-1.64,3.2l-2.15,2.03l-5.41,3.49l-1.9,0.73l-6.33,0.51l-4.43,3.77l-2.67,-0.23l-3.21,0.76l-0.59,-0.79Z","name":"Samos"},"33":{"path":"M386.55,602.99l1.36,-7.37l-1.28,-0.84l-0.15,-0.72l4.28,-1.84l0.24,-1.41l-1.04,-2.64l3.11,0.22l1.55,-1.07l2.75,0.2l0.86,-0.73l1.83,-0.16l1.12,0.52l1.12,-0.74l1.18,0.51l5.06,-0.75l4.86,-1.59l3.0,-2.46l3.31,0.14l0.53,-0.69l6.17,0.62l0.62,1.15l6.76,-0.26l-0.45,1.46l1.65,2.29l-1.57,2.42l2.05,1.98l-0.01,3.49l-1.81,5.89l-3.47,0.2l-1.03,-2.52l-1.66,-0.91l-1.13,1.23l-0.52,2.35l-0.03,4.8l-0.65,0.66l-1.19,-0.78l-1.69,0.42l-1.43,1.06l-0.83,3.18l-10.37,-0.4l-3.62,-3.74l-3.24,-0.84l-1.73,0.37l-2.58,-1.27l-0.62,-1.02l-1.18,0.22l0.38,-0.72l-1.71,-1.29l-1.51,0.2l-1.1,0.87l-2.29,-0.65l-2.88,1.34l-1.0,-0.4ZM434.08,582.94l0.78,-0.96l1.74,0.97l-0.29,1.04l-2.22,-1.05Z","name":"Rethymno"},"37":{"path":"M245.37,362.21l1.56,0.32l1.58,-0.71l0.86,0.48l0.02,0.9l-2.29,3.53l1.38,1.26l1.77,-0.69l3.77,0.82l2.7,1.4l4.28,-0.31l4.78,2.95l3.07,1.02l3.13,-0.03l4.56,-1.23l3.66,0.81l0.65,1.34l1.35,0.74l5.29,1.1l1.36,-1.15l2.69,-0.94l2.71,0.42l1.54,-0.83l2.76,1.44l0.81,-0.15l-1.78,3.22l1.47,2.34l-0.79,0.88l-0.29,1.65l2.35,1.69l-2.18,6.19l0.66,1.69l1.31,1.29l3.83,1.11l2.36,1.6l1.37,0.26l2.23,2.04l1.69,-0.15l3.85,0.88l1.7,-0.74l2.73,0.0l0.67,0.88l0.02,1.9l-2.11,0.84l-0.48,-0.76l-5.19,-0.18l-3.29,1.87l-2.23,-1.16l-0.97,0.88l-0.08,0.81l-2.17,0.53l-0.62,0.93l0.99,1.69l0.63,-0.78l0.66,1.51l1.77,0.16l-1.27,0.1l-1.97,-0.43l-3.11,0.66l-1.23,1.94l1.73,1.71l-0.04,0.71l-1.09,-0.28l-0.77,0.86l-2.17,-1.77l1.32,-0.78l-0.64,-1.13l-0.92,0.07l-2.51,-2.37l-3.05,0.08l0.69,-0.84l-0.68,-2.19l2.36,0.14l1.21,-1.34l-0.16,-1.39l1.42,1.0l1.19,-0.85l-0.99,-0.83l0.13,-1.42l-1.25,-1.46l-2.48,-0.4l-2.59,0.46l-0.47,-0.37l0.6,-0.88l-1.25,-1.56l-2.81,1.58l-1.77,-4.22l-0.68,-0.6l-2.73,-0.25l-1.02,-1.42l-0.92,0.03l-0.33,0.63l-1.33,-0.43l-2.21,0.48l-1.19,1.37l-1.79,-1.49l-0.63,0.1l0.47,-0.97l-2.1,-2.07l0.43,-0.61l-0.35,-0.61l-2.5,-1.54l-2.65,1.01l-1.89,1.79l0.75,2.79l-1.52,0.47l-2.46,2.34l-0.28,1.62l0.52,2.27l-1.16,0.58l-2.74,-0.38l-2.61,0.75l-1.02,-0.57l-1.64,-3.87l-3.8,-1.92l-0.46,-1.08l0.98,-3.83l-2.03,-2.41l-0.27,-1.5l-2.36,-1.06l-2.2,-5.47l-1.51,-0.64l-2.76,1.28l-0.94,-0.73l-0.25,-1.07l0.72,-3.76l1.79,-4.65l1.46,-0.98l2.31,-3.58l1.2,-0.96l1.17,-0.41l0.97,0.99ZM296.07,410.1l0.02,-0.13l-0.65,-0.61l1.41,0.78l-0.79,-0.05ZM296.96,410.15l0.06,-0.01l0.13,-0.13l-0.11,0.16l-0.08,-0.02ZM284.1,399.72l0.02,-0.1l0.12,0.08l-0.07,0.06l-0.07,-0.03ZM279.5,394.13l0.26,0.06l0.19,0.31l-0.27,-0.08l-0.17,-0.29Z","name":"Argolida"},"32":{"path":"M549.55,595.0l0.17,0.07l-0.41,-0.23l0.19,0.16l0.04,0.0ZM549.78,595.1l0.05,-0.01l0.02,0.02l-0.03,0.03l-0.03,-0.04ZM482.85,592.96l2.65,-0.85l1.3,-1.07l2.3,0.17l1.39,-1.19l5.59,-1.41l2.88,1.13l5.21,-0.42l-0.34,1.21l-3.01,1.72l0.28,1.25l-0.7,1.96l0.91,1.17l0.47,2.02l-1.97,1.07l0.41,1.38l-0.5,0.58l0.58,0.63l-0.87,1.21l0.11,0.99l1.46,2.22l-0.28,0.91l0.56,0.57l2.4,-0.0l3.82,1.74l0.98,-0.4l2.29,-2.61l0.18,-1.19l0.41,-0.25l0.61,0.67l2.41,-1.71l0.47,-0.5l-0.27,-0.79l1.8,0.56l2.74,-0.35l0.94,-1.59l0.59,0.52l1.95,-0.32l2.43,-2.86l0.98,0.52l1.23,-0.49l0.89,0.89l1.16,0.17l2.3,-0.87l-0.77,1.36l0.66,0.8l1.86,0.75l2.23,-0.27l1.88,-1.12l0.42,-0.42l-0.33,-0.93l3.4,-2.6l-0.39,-0.95l1.25,-0.69l-0.35,-0.52l0.33,-0.14l0.98,0.81l0.54,-0.77l0.85,-0.02l-1.06,0.89l0.95,3.16l-0.69,1.86l0.74,1.22l2.37,1.29l0.84,-0.79l0.12,0.84l-3.0,1.31l-0.33,1.89l0.74,0.97l-0.33,1.81l-1.42,1.56l0.67,0.81l-1.33,1.23l-1.73,3.06l-0.94,0.01l-2.22,1.91l-2.42,-0.07l-3.2,1.88l-1.37,-0.24l0.13,-0.69l-1.08,-1.22l-1.8,-0.27l-0.94,0.99l-1.27,-0.81l-0.76,0.5l-3.99,-2.28l-1.21,0.68l-2.21,-0.21l-5.94,1.39l-3.64,1.69l-3.07,0.0l-1.82,-0.92l-1.09,0.51l-3.91,-0.91l-1.89,0.87l-5.41,-0.2l-3.88,1.69l-0.06,-5.02l-1.58,-2.83l-2.17,-0.63l0.15,-2.37l-1.18,-1.27l-5.93,-2.83l-1.13,-2.07l1.52,-3.25l-0.12,-1.49l0.97,-0.73l2.89,-0.17l2.4,-2.15l0.28,-2.28ZM544.88,594.27l0.45,0.01l-0.95,0.21l0.13,-0.12l0.37,-0.1ZM545.45,593.01l0.09,0.05l0.32,-0.05l-0.29,0.17l-0.12,-0.17ZM546.42,592.9l0.12,-0.12l0.04,0.04l-0.03,0.03l-0.13,0.05ZM545.59,591.89l0.15,-0.1l0.4,0.0l-0.15,0.12l-0.41,-0.02ZM546.29,591.73l0.37,-0.19l0.45,0.04l-0.54,0.42l-0.29,-0.27ZM502.47,595.99l0.28,-0.47l-0.35,-0.58l0.06,-0.12l0.14,-0.14l0.27,1.46l-0.41,-0.15ZM502.41,593.7l0.07,-0.31l0.82,0.43l-0.49,0.44l-0.39,-0.56ZM536.5,588.82l0.09,-0.62l0.67,-0.05l-0.35,0.47l-0.4,0.2ZM536.47,590.06l0.02,-0.01l0.1,0.02l-0.06,0.06l-0.07,-0.07ZM532.93,624.92l0.29,-0.78l1.51,0.65l-1.04,0.66l-0.77,-0.53ZM497.99,630.73l0.21,-0.25l0.32,0.01l1.44,0.42l-1.97,-0.17Z","name":"Lasithio"},"50":{"path":"M538.11,299.14l0.54,-0.22l0.93,0.82l0.65,-0.41l1.25,1.1l1.8,0.41l-1.73,0.7l-0.64,-0.77l-1.81,-0.38l-0.99,-1.25ZM545.24,302.33l0.09,-0.09l0.32,0.2l-0.22,0.22l-0.19,-0.33ZM510.29,299.18l-0.55,-0.95l1.71,-2.76l2.8,-0.82l3.72,0.1l5.31,-1.55l2.95,1.47l1.17,-0.36l1.59,2.95l0.73,0.58l0.92,-0.38l1.12,1.71l0.62,-0.8l0.61,0.54l0.49,-0.4l0.15,-1.44l1.47,1.1l0.08,0.94l-0.95,1.34l0.26,2.27l-1.73,0.29l-0.69,1.52l0.75,0.58l0.8,-0.3l-0.53,1.15l1.45,0.35l-1.6,3.44l-0.04,1.2l0.7,6.29l1.29,1.04l-0.48,0.71l0.5,0.93l-4.38,3.37l0.04,2.49l0.92,1.2l-1.18,1.85l-4.33,0.65l-1.78,2.36l-0.27,2.19l-1.16,-0.38l-0.55,-0.84l-1.62,-0.27l-1.47,-1.41l0.29,-0.67l-0.4,-0.4l-1.92,0.08l0.28,-0.82l-1.26,-0.49l-0.15,-1.23l-1.59,-0.08l-0.67,-1.95l-1.22,0.28l0.68,-2.09l3.11,-2.23l0.87,0.81l0.51,-0.4l-0.18,-0.58l0.5,0.45l0.5,-0.46l0.51,0.46l0.96,-0.2l1.06,-1.75l-0.4,-0.69l0.31,-0.84l1.84,-1.37l0.07,-0.76l-0.75,-2.73l0.4,-0.99l-0.47,-0.45l-0.48,0.32l-1.36,-1.36l0.0,-1.01l-0.69,-0.4l0.18,-1.84l-1.07,-1.56l-1.71,-1.29l-2.69,-0.41l-1.88,-1.53l-2.04,-3.78ZM532.37,298.24l-0.01,0.01l-0.02,-0.07l0.04,0.04l-0.01,0.01ZM487.0,294.52l-0.64,-0.91l1.18,0.38l1.75,-1.0l0.53,0.37l0.54,-0.39l2.07,1.41l-0.77,4.63l-1.54,-0.05l-1.28,-0.94l-0.54,0.43l0.61,-1.81l-1.91,-2.11ZM483.59,298.89l0.72,-0.92l0.74,0.18l-0.69,1.11l-0.81,0.03l0.04,-0.39Z","name":"Chios"}},"height": 637.163792480661,"width": 700.0});
--- /dev/null
+/**
+ Iran Vector Map
+ Created By Mahmoud Eskandari E-mail:info@webafrooz.com
+ http://Webafrooz.com
+**/
+jQuery.fn.vectorMap('addMap', 'iran_ir', {"width": 600, "height": 600, "paths": {"15": {"path": "M353.778,484.712c-0.204,0.204-0.767,1.047-1.086,0.647c-0.827-1.037-1.373-1.065,0.181-1.321c1.159-0.191,0.241-1.308,0.129-1.762,c1.186-0.392,0.011-1.69,1.216-1.813c0.314-0.032,0.236,0.389,0.362,0.596c0.17,0.278,1.727,0.29,1.5,0.648,c-0.309,0.486-1.089,0.681-1.449,1.269c-0.285,0.466-0.058,0.691,0.129,1.114c0.293,0.664,0.37,0.697,1.035,0.492,c1.294-0.398-0.207,1.125-0.207,1.451c0,0.426,0.75,0.525,0.75,1.166c0,0.801-1.546,0.131-1.733-0.544,c-0.095-0.344,0.073-0.81,0.181-1.088c0.068-0.176-0.222-0.894-0.414-0.751L353.778,484.712L353.778,484.712z M345.481,490.346,l1.34,0.013c0.671,0.399,1.383,0.555,1.319,1.554c-0.074,1.158-0.609,1.96-0.543,3.186c0.061,1.134-1.56,1.24-1.086,2.616,c0.447,1.301,0.758,2.382,0.414,3.782c-0.596,2.42,1.885,3.342,4.293,3.342l0,0c-0.346-1.397-0.552-2.951,0.491-4.196,c1.153-1.153,1.093-2.818,1.966-3.601c1.01-0.907,0.182-2.637,1.371-2.72c0.986-0.069-0.495-1.184-0.414-1.347,c0.24-0.482,0.528-0.418,0.181-0.984c-0.562-0.919,0.188-1.772,0.957-2.383c-0.399-0.526-0.618-0.158-1.164-0.311,c-0.457-0.128-0.411-0.699-0.828-0.699c-1.719,0-0.173-1.046-0.905-1.995c-0.475-0.615-4.146-2.35-4.371-2.124,c-0.819,0.819-1.219,2.63-1.888,3.678C346.177,488.842,345.809,489.582,345.481,490.346L345.481,490.346z", "name": "kish"},"16": {"path": "M88.025,126.032l3.75,9.17l0,0l-1.242,0.466c-1.013,0.757-0.514,0.974,0,1.943c0.528,0.995-0.879,0.732-0.879,1.632,c0,0.626-0.057,0.962-0.491,1.399c-0.707-0.142-2.869,0.147-3.569,0.44c-1.019,0.427-1.894-0.358-2.923-0.544,c-3.022-0.549-4.12-0.821-5.664-3.704c-0.14-0.261-4.453,1.089-5.405,1.14c-2.403,0.129-5.432,0.934-7.785,0.052,c-2.395,0-2.618,1.147-4.449-0.544c-1.483-1.37-3.149-0.943-4.863-0.337c-4.995,1.769,1.601,7.02-4.319,7.02,c-0.814,0-5.872-0.138-5.613,1.062c0.453,2.089,0.013,1.056-1.215,1.865c-0.527,0.347,0.242,0.937-0.052,1.399,c-0.196,0.308-0.76,0.949-0.828,1.217c-0.132,0.033-0.422,0.192-0.569,0.104c-1.182,0.705-0.506,1.224-1.112,2.357l-1.798,1.349l0,0,c-0.607-0.063-1.25-0.02-1.926,0.153c-3.41,0.875-2.708,0.088-2.043-2.513c0.355-1.39-0.312-1.358-1.138-2.487,c-0.83-1.134,0.065-2.718-0.595-3.601c0.582-0.778-0.295,0.567-0.698-1.502l-0.44-2.254c0.613-0.821-0.307-2.06-0.647-2.668,c-0.694-1.244-1.166-0.618-2.38-0.181c-3.151,1.133-2.089-2.262-3.905-3.341c-2.108-1.252,0.281-1.809-0.233-3.135,c-0.276-0.712,1.17-0.287,1.112-1.244c-0.053-0.881-0.172-2.377-0.517-3.16c-0.603-1.364-1.736-0.626-2.406-1.295,c-0.216-0.216-0.034-1.307-0.595-1.114c-0.786,0.27-0.988-0.207-1.707,0.026c-0.962,0.107-1.842,0.142-1.267-1.269,c0.184-0.453,0.599-0.971,0.724-1.347c0.166,0,0.465-0.176,0.621-0.207c0.344-1.361,1.191-1.689,0.13-3.316,c-0.568-0.87,1.157-2.6-0.31-2.953c-0.631-0.152-1.037-1.034-1.707-0.44c-0.432,0.382-0.403-0.434-0.569-0.622,c-0.312-0.353-0.621-0.252-0.621-0.829c0-0.726-0.939-0.56-0.802-1.269l0.621-1.191l0,0l0.052-1.244,c-0.228-0.536-0.488-1.089-0.388-1.684c0.094-0.561,0.719-0.657,1.034-1.088c1.038-1.414-0.911-1.704-1.707-2.28,c-0.711-0.513,0.19-1.551-0.828-1.813c-1.648-0.425-1.354-0.222-1.966-1.762c-2.102-0.297-1.198-1.036-1.811-2.59,c0-1.183,1.781-0.797,0.698-2.306c-0.596-0.83,0.773-1.285-0.44-2.409c-2.093-1.94,1.882-1.913,0.284-4.455,c-0.85-1.353-1.989-1.627-3.388-1.14c-1.449,0.505-1.908-1.46-2.664-2.461c-0.545-0.723-1.717-1.342-2.69-1.062,c-4.412,1.27-0.362-4.35-0.362-5.44c0.706-0.239,0.549-1.572,0.854-1.995c0-1.172,0.596-0.621,1.138-1.295,c0.501-0.622-0.633-1.01,0.543-1.01c0.401,0,1.037-2.409,0.983-2.824c-0.106-0.81-0.721-1.622,0.388-2.176,c0.585-0.292,2.246-1.031,2.302-1.761c0.085-1.131-1.451-2.459-2.431-1.943c-1.234,0.65-1.201-0.215-2.302,0.078,c-1.526,0.406-0.539-1.488-0.569-1.891c-0.078-1.037-1.135-1.662,0.052-2.849c-0.289-0.725-0.225-2.556,0.285-3.264,c-0.157-0.573,0.146-1.12-0.543-1.451c-0.704-0.337-1.434,0.246-0.957-1.218c0.565-1.734-1.473-1.105,0.337-3.057,c0.593-0.64-0.641-0.765,0.103-1.71c0.548-0.697,0.486-2.295-0.647-2.383c-1.784-0.139-1.077-2.062-1.992-2.875,c-0.683-0.608,0.13-1.425-0.336-1.762c-1.082-0.781,0.326-1.169,0.543-1.606c0.206-0.414-0.426-1.14-0.44-1.606,c-0.257-1.276,1.173-1.014,0.621-2.124c-0.139-0.279-1.063-2.11-1.19-2.202c-0.632-0.456-1.216-0.19-1.733-0.466,c-0.894-0.479-0.082-1.512-0.647-2.228c-0.317-0.402-0.166-0.768,0.052-1.166c0.232-0.424-0.607-2.388-1.034-2.668,c-0.624-0.409-0.122-1.53-0.155-1.502c0.621-1.347,1.686-0.641,2.38-0.026c0.743,0.658,2.1-0.974,3-0.751,c0.046,0.188,0.211,0.431,0.259,0.622c0.403,0.079,1.482,0.615,1.552,0.596c0.641-0.182,3.104-1.18,3.492-1.658,c0.745-0.918-1.121-0.886,0.259-2.383c0.746-0.81,0.28-1.267,0.052-2.124c-0.281-1.056,0.889-1.55,1.267-2.564,c0.498-1.334-0.293-2.462,0.853-3.419l3.104-2.772l1.242,2.305l2.354,0.518l0.461,1.31l1.453,0.71l0,0,c0.118,0.363,0.15,0.778,0.384,1.079c0.348,0.446,0.355,0.639,1.09,0.579c0.287-0.023,1.183-0.143,1.215,0.363,c0.002,0.035-0.082,1.047-0.052,1.321c0.004,0.034,0.007,0.112,0.052,0.129c0.68,0.268,0.541,1.293,0.983,1.787,c0.541,0.605,0.776,0.793,0.776,1.658c0,1.208,0.261,2.069,1.474,2.383c1.484,0.384,1.621,0.647,2.172,1.969,c0.242,0.579,0.836,1.044,1.086,1.606c0.448,1.007-0.174,2.844,1.009,3.575c1.055,0.653,4.628,0.653,5.121,1.554,c0.522,0.954,1.678,2.359,1.759,3.342c0.078,0.956,1.604,0.098,1.604,2.072c0,0.861,0.245,1.361,0.631,1.644l0,0l-1.174,3.796,c-0.076,0.058-0.23,0.207-0.336,0.233c-0.236,0.962-1.192,0.73-1.086,2.487c0.065,1.089-0.597,1.442-0.672,2.332,c-0.092,1.096,0.347,3.122,0.827,4.067c0.244,0.48,0.642,1.447,0.673,1.995c0.049,0.864-0.527,0.759-0.646,1.243,c-1.135,0.163-4.156,3.429-5.354,4.145c-1.239,1.553-2.131,2.754-2.276,4.818c-0.188,2.683,3.082,3.757,3.75,6.424,c0.736,2.938,0.724,5.99,0.724,9.041c0.408,2.176,0.336,4.302,1.086,6.45c0.986,2.824,3.563,3.061,3.337,6.321,c-0.254,3.655-2.212,5.331,1.215,8.083c1.672-0.324,5.477,3.043,6.543,4.196c1.91,2.065,1.981,2.36,4.837,1.917,c1.492-0.231,3.489-0.926,4.526,0.622c2.131,3.181,5.285,5.379,7.889,8.367c3.668-0.71,2.64-4.662,6.208-5.388,c1.793-0.365,1.039,1.257,2.405-0.751c1.885-2.772,3.462,1.012,4.759,1.347c2.552,0.66,0.651,2.484,1.759,3.834,c2.171,2.647-1.244,5.854,2.949,6.761C83.021,127.549,84.826,126.482,88.025,126.032L88.025,126.032z", "name": "west azarbaijan"},"17": {"path": "M122.165,111.707l2.286-2.053c2.929-0.999,3.038,0.377,5.215,1.769c1.317,0.842,2.151-0.129,2.923-1.088,c0.477-0.592,3.404-0.882,4.112-0.882l0,0c-0.139-0.34-0.198-0.669-0.155-0.983c0.299-1.103,1.149-3.97,0.181-4.74,c-1.701-1.352-3.029-2.186-4.009-4.274l-5.483-11.683c-0.095-0.774-0.879-1.213-0.879-2.046c0-0.829,0.611-1.261,0.802-1.969,c0.281-1.044-0.181-3.102,0.259-3.756c1.581-2.353,0.112-5.67,2.664-7.616c2.331-1.777-0.965-1.104-1.423-2.228,c-0.527-1.296,0.084-0.907-1.319-1.45l-0.084-5.983l0,0c-0.113-0.095-0.24-0.182-0.382-0.261c-0.222-0.123-0.892-0.409-1.009-0.622,c-0.209-0.381,0.188-0.904-0.052-1.295c-0.399-0.652-1.228,0.111-1.5-0.933c-0.053-0.203-0.258-1.153-0.233-1.166,c-0.362-0.488-1.51,0.147-2.069,0.259c-1.269,0.48-2.168-0.038-2.38-1.321c-0.213-1.293-1.597-0.63-1.319-1.995,c0.576-2.832-2.515-2.004-3.957-3.005c-0.443-0.308-0.427-1.145-1.06-1.425c-1.189-0.526-1.748-2.797-1.474-3.912,c0.444-0.11,0.691,0.145,1.267,0c0.012-0.05,0.028-0.065,0.078-0.078c0.447-2.266,4.801-0.884,6.595-2.409,c1.194-1.014,0.622-1.429,0.957-2.694c-0.105-0.415-0.883-2.154-1.112-2.435c-0.657-0.802-1.633,0.181-2.224-1.347,c-0.674-1.741-3.718-2.309-2.095-4.792c0.437-0.669,1.864-1.925,2.612-2.124c0.974-0.259,0.981,0.262,1.992-0.492,c0.757-0.566,1.46-0.278,1.862-1.269l-9.285-11.165l-2.194-0.998c-0.027,0.064-0.054,0.118-0.082,0.169,c-0.315,0.567-4.093,2.458-4.397,2.357c-1.127-0.375-1.411-0.177-2.121,0.958c-0.554,0.885-0.878,1.014-1.966,1.114,c-0.676,0.062-0.982,1.874-1.811,1.528c-0.233-0.097-0.795,0.09-1.112,0.285c-0.516,0.317-0.533,1.161-1.216,1.502,c-1.153,0.576-2.805,0.306-3.673,0.933c-1.574,1.137-3.351,5.511-5.483,5.673c-0.873,0.066-3.698,1.991-4.164,2.746,c-0.745,1.204-0.494,1.367-1.491,2.249l0,0l2.965,3.451c0.025,0.784,1.235,2.558,1.603,3.368c1.203,2.638-0.732,5.713,0.104,8.238,h0.103c0.149-0.442,2.494-1.829,3-2.668c0.899-1.49,2.311-4.025,3.751-4.87c2.393-1.404,2.378-1.242,2.819,1.217,c0.517,2.881,2.429,4.76,0.905,7.539c-0.91,1.659-4.453,2.773-4.061,4.766c1.718,0.422,1.656-0.441,3.311-0.441,c4.846-1.661-3.133,11.299-3.699,12.305c-0.891,1.586-1.106,1.049,0.491,2.124c1.632,1.098,4.413,2.596,6.259,3.16,c2.359,0.721,4.063-1.082,5.82-0.648c0.173,0.703,0.903,2.148,1.267,2.875l2.095,8.082l2.069,2.409l3.854,0.906,c0,0.73,0.447,1.43,0.052,2.15c-1.03,1.879-1.607,4.278-1.707,6.45c-0.158,3.425,0.743,4.18,3.776,5.699,c1.485-0.24,1.587,4.466,1.681,5.388c0.113,1.113,0.436,1.234,1.241,1.813C120.872,110.372,122.039,111.195,122.165,111.707,L122.165,111.707z", "name": "Ardabil"},"18": {"path": "M37.781,44.496c0.986,0.724,2.892,0.041,3.973,0.403c1.154,0.387,0.601,0.829,2.121,0.829c1.189,0,1.338,0.984,2.25,0.958,c1.591-0.045,1.839-0.001,3.026,1.192c1.474,1.48,1.306,0.056,2.483-0.078c0.887-0.101,0.907,0.981,2.095,0.492,c1.817-0.747,1.99,1.21,3.575,1.363l0,0c0.064,0.006,0.131,0.01,0.201,0.01c2.044,0,3.687-2.735,5.819-2.875,c1.315-0.086,1.208,1.212,2.845,0.751c1.03-0.29,1.67,0.217,2.51,0.315l0,0c0.354,0.041,0.744,0.01,1.215-0.186,c0.865-0.359,1.123-0.534,1.578-1.321c0.13-0.226,0.616-1.112,0.854-1.217c0.547-0.241,0.16-1.326,0.595-1.58,c1.149-0.673,1.968-0.287,2.302-1.813c0.236-1.077,0.846-0.823,1.552-1.528c0.887-0.887,0.963-2.894,2.897-2.357,c0.466,0.129,0.733,0.857,1.397,0.466c0.51-0.3,1.007-0.981,1.474-1.373c0.078-0.066,0.151-0.128,0.217-0.187l0,0l2.965,3.451,c0.025,0.784,1.235,2.558,1.603,3.368c1.203,2.638-0.732,5.713,0.104,8.238h0.103c0.149-0.442,2.494-1.829,3-2.668,c0.899-1.49,2.311-4.025,3.751-4.87c2.393-1.404,2.378-1.242,2.819,1.217c0.517,2.881,2.429,4.76,0.905,7.539,c-0.91,1.659-4.453,2.773-4.061,4.766c1.718,0.422,1.656-0.441,3.311-0.441c4.846-1.661-3.133,11.299-3.699,12.305,c-0.891,1.586-1.106,1.049,0.491,2.124c1.632,1.098,4.413,2.596,6.259,3.16c2.359,0.721,4.063-1.082,5.82-0.648,c0.173,0.703,0.903,2.148,1.267,2.875l2.095,8.082l2.069,2.409l3.854,0.906c0,0.73,0.447,1.43,0.052,2.15,c-1.03,1.879-1.607,4.278-1.707,6.45c-0.158,3.425,0.743,4.18,3.776,5.699c1.485-0.24,1.587,4.466,1.681,5.388,c0.113,1.113,0.436,1.234,1.241,1.813c0.414,0.297,1.581,1.12,1.707,1.632l0,0l-1.319,0.13c-0.578-0.289-1.172-0.427-1.759-0.751,c-0.422-0.233-0.741-0.558-1.215-0.725c-1.084-0.383-2.66-0.217-3.802,0.026c-0.891,0.189-1.832,0.115-2.741,0.285,c-1.364,0.114-2.735-1.294-3.751-0.751c-1.745,0.933-2.549,0.7-4.5,0.7c-2.711,0-6.016,3.304-8.277,4.715,c-1.54,0.961-1.702,3.162-3.233,3.808c-2.723,1.149-2.986,2.524-4.009,5.026l0.465,1.865l0,0c-3.199,0.45-5.004,1.516-8.302,0.803,c-4.193-0.907-0.778-4.114-2.949-6.761c-1.107-1.35,0.793-3.174-1.759-3.834c-1.297-0.335-2.874-4.119-4.759-1.347,c-1.366,2.008-0.613,0.387-2.405,0.751c-3.567,0.726-2.54,4.678-6.208,5.388c-2.603-2.988-5.758-5.186-7.889-8.367,c-1.037-1.548-3.035-0.853-4.526-0.622c-2.855,0.443-2.927,0.148-4.837-1.917c-1.066-1.153-4.872-4.52-6.543-4.196,c-3.428-2.751-1.469-4.427-1.215-8.083c0.227-3.26-2.351-3.497-3.337-6.321c-0.75-2.148-0.679-4.274-1.086-6.45,c0-3.051,0.012-6.102-0.724-9.041c-0.668-2.667-3.939-3.741-3.75-6.424c0.145-2.064,1.037-3.266,2.276-4.818,c1.198-0.716,4.219-3.982,5.354-4.145c0.12-0.484,0.695-0.38,0.646-1.243c-0.031-0.548-0.429-1.515-0.673-1.995,c-0.48-0.945-0.92-2.971-0.827-4.067c0.075-0.889,0.738-1.242,0.672-2.332c-0.106-1.756,0.85-1.525,1.086-2.487,c0.106-0.026,0.26-0.175,0.336-0.233L37.781,44.496L37.781,44.496z", "name": "East azarbaijan"},"19": {"path": "M140.063,222.347c0.521-1.967,4.346-1.949,3.647-4.741c-0.292-1.167-0.69-1.534-0.414-2.849c0.289-1.375-0.134-2.142-0.802-3.316,c-0.837-1.416-1.899-1.953-2.354-3.782c-0.388-1.559,0.446-3.232,0.155-4.818c-0.162-0.882-4.343-2.083-2.923-3.031,c0.431-0.288,2.37,0.698,3.518,0.311c0.939-0.317,2.051,0.602,2.328,1.451c1.473,0-1.464-4.296-1.293-5.181,c0.38-1.967,4.289-0.463,2.535-3.989c-0.259-0.806-1.321-1.903-0.595-2.824c0.082-0.104,4.752,0.657,5.768,0.544,c1.956-0.218,4.43-0.763,3.129,2.072c-0.606,1.32-1.43,2.726,0.337,3.29c1.183,0.378,5.065,4.071,3.957-0.674,c-0.523-2.243-1.266-5.141-3.311-6.451c-1.397-0.894-2.504-1.122-4.035-1.502c-0.623-0.155-2.567-1.427-2.043-2.254,c0.657-1.037,4.298,0.218,4.397-1.969c0.091-2.008-1.167-2.535-2.121-4.067c-0.453-0.783-0.583-3.704,0.207-4.274,c1.273-0.92,1.187,1.234,1.164,1.969c-0.048,1.556,1.723,2.332,2.483,0.803c0.921-1.855-0.828-2.485-0.828-4.041l0.104-1.451l0,0,c-0.811-1.426-3.456,0.009-4.681-0.518c-2.196-0.944-4.186,0.126-6.362-0.155c-1.46-0.188-2.075-1.325-0.828-2.487,c0.45-0.419,1.067-0.197,1.449-0.622c0.543-0.605-0.522-1.51-1.06-1.684c-1.412-1.238-3.036-2.327-4.94-2.435,c-0.679-0.039-1.225,0.363-1.81,0.363c-0.025,0.038-0.026,0.014-0.052,0.052c-0.135,0-0.334,0.214-0.414,0.285l0,0v2.772,l-2.871,1.217c-2.487-0.167-4.042-1.812-6.052-2.979c-2.242-1.301-3.165,1.697-5.509,1.114c-1.395-0.347-1.654-2.166-2.69-3.031l0,0,l-1.164-0.518c-0.916-0.916-2.125-1.987-3.311-2.513c-2.166-0.96-1.862,0.18-0.621,1.425c1.626,1.63,4.677,3.941,0.362,4.43,c-0.825,0.093-1.382,0.753-2.121,1.062c-2.375,0.994-0.793-4.999-2.819-2.643c-0.679,0.79-2.36,0.963-1.681,2.383,c1.071,2.243,2.801,3.924,3.388,6.424c0.233,0.996,0.13,3.497,1.449,3.497c1.379,1.973,3.841,2.384,4.888,4.689,c0.87,1.915,0.577,3.959-0.492,5.751c-1.236,2.073-1.641,1.735-2.457-0.052c-1.48-3.243-1.63,2.221-3.336,1.166,c-0.755-0.467-1.577-0.344-1.707,0.699l0,0c0.088,0.919,0.046,1.665-0.569,2.28c-0.553,0.553-1.326,0.857-1.862,1.451,c-0.692,0.766,1.255,2.616-0.465,3.057c-1.227,0.314-6.279,0.341-4.087,3.109c0.199,0.251,2.2,1.589,2.483,1.632,c0.885,0.135,2.498-0.58,2.845,0.829c0.383,0.723,0.059,2.823,0.647,3.083c1.017,0.449,1.365-1.052,1.681-1.658,c0.622-1.196,1.329-0.516,1.759-1.14c0.604-0.876,1.394-0.673,1.888,0.13c0.459,0.746-0.189,1.676-0.258,2.435,c-0.09,0.974,0.753,2.954-0.104,3.575c-0.485,0.351-4.484-0.717-5.276-0.958c-1.728-0.526-1.63,1.851-2.276,2.72l0,0l2.742,2.409,c0.894,0.689,2.586,1.691,3.207,2.487c1.524,1.952,4.08,0.866,6,3.652c1.278,1.854,2.945,1.843,5.018,1.762,c1.585-0.062,2.803,0.798,4.319,1.01c1.474,0.207,1.978-0.984,2.974-1.761c0.482-0.377,2.72,0.127,4.061-0.544,c1.221-0.612,1.466,1.153,2.483,1.969L140.063,222.347L140.063,222.347z", "name": "Hamadan"},"20": {"path": "M122.165,111.707l2.286-2.053c2.929-0.999,3.038,0.377,5.215,1.769c1.317,0.842,2.151-0.129,2.923-1.088,c0.477-0.592,3.404-0.882,4.112-0.882l0,0c1.049,2.559,6.683,5.723,8.173,7.876c1.143,1.652,1.159,3.67,1.604,5.544,c0.392,1.65,2.933,0.922,3.078,2.098l0,0l-9.492,5.44c-1.217,4.215,3.094,6.887,6.492,7.875c5.659,1.645,5.421,3.828,6.078,9.144,c0.165,1.046,1.605,4.199,0.388,4.844c-1.93,1.023-3.881,2.939-6.207,2.539c-1.483-0.255-2.36,0.391-3.518,1.243,c-0.301,0.221-2.163,1.275-2.354,0.518c-0.859-0.217-5.328-6.648-5.328-0.933c0,3.073-3.231,3.045-2.405,7.201l1.164,1.528l0,0,v2.772l-2.871,1.217c-2.487-0.167-4.042-1.812-6.052-2.979c-2.242-1.301-3.165,1.697-5.509,1.114,c-1.395-0.347-1.654-2.166-2.69-3.031l0,0c-0.545-1.094-0.087-2.106-1.5-2.798l-3.595-1.761c-1.816-0.89-5.851-2.272-3.518-4.767,c1.677-1.793,1.023-3.276,1.604-5.284c1.014-1.269,0.203-2.197-0.543-3.316c-0.959-1.439-0.755-2.357-1.086-3.886,c-0.814-3.756-4.053-2.322-6.828-3.316l-5.716-2.047c-1.38-0.494-1.865,0.483-3.362,0.441l-0.931-1.528l0,0l-3.75-9.17l0,0,l-0.465-1.865c1.023-2.502,1.285-3.877,4.009-5.026c1.531-0.646,1.693-2.847,3.233-3.808c2.26-1.411,5.566-4.715,8.277-4.715,c1.952,0,2.755,0.233,4.5-0.7c1.015-0.543,2.387,0.865,3.751,0.751c0.91-0.17,1.85-0.096,2.741-0.285,c1.143-0.242,2.718-0.409,3.802-0.026c0.475,0.168,0.794,0.493,1.215,0.725c0.587,0.325,1.181,0.462,1.759,0.751L122.165,111.707,L122.165,111.707z", "name": "Zanjan"},"21": {"path": "M91.775,135.203l0.931,1.528c1.497,0.042,1.982-0.934,3.362-0.441l5.716,2.047c2.775,0.993,6.014-0.441,6.828,3.316,c0.331,1.529,0.127,2.446,1.086,3.886c0.746,1.119,1.557,2.047,0.543,3.316c-0.581,2.009,0.074,3.491-1.604,5.284,c-2.333,2.495,1.701,3.877,3.518,4.767l3.595,1.761c1.413,0.692,0.955,1.704,1.5,2.798l0,0l-1.164-0.518,c-0.916-0.916-2.125-1.987-3.311-2.513c-2.166-0.96-1.862,0.18-0.621,1.425c1.626,1.63,4.677,3.941,0.362,4.43,c-0.825,0.093-1.382,0.753-2.121,1.062c-2.375,0.994-0.793-4.999-2.819-2.643c-0.679,0.79-2.36,0.963-1.681,2.383,c1.071,2.243,2.801,3.924,3.388,6.424c0.233,0.996,0.13,3.497,1.449,3.497c1.379,1.973,3.841,2.384,4.888,4.689,c0.87,1.915,0.577,3.959-0.492,5.751c-1.236,2.073-1.641,1.735-2.457-0.052c-1.48-3.243-1.63,2.221-3.336,1.166,c-0.755-0.467-1.577-0.344-1.707,0.699l0,0c-2.219,0-2.778,0.234-4.319-1.787c-1.332-1.748-1.905-3.886-4.371-3.886,c-1.359,0-2.132-2.15-2.974-1.917c-1.794,0.497,1.194,3.274-0.491,3.834c-0.959,0.319-1.928,0.249-2.949,0.052,c-3.336,0-0.63,5.541-3.802,3.86c-3.176-1.684-0.966,1.674-3.957,2.409c-0.175,0.712-0.207,3.038-1.293,2.824,c-2.672-0.528-1.357,1.21-1.448,2.202c-0.139,1.503-6.171-0.474-6.777-0.155c-2.808,1.479-1.613-2.334-1.707-3.264,c-0.13-1.273-1.423-0.466-2.069-0.466c-1.278-5.055-6.586-9.106-10.423-12.538l-3.698-1.714l0,0,c-0.09-0.852-0.645-1.503-1.268-2.198c-1.419-1.427-1.941-2.27-2.871-4.041c-0.793-1.512,0.365-2.007-0.336-3.29,c-0.834-1.524,0.122-0.668,0.905-0.933c0-1.786-1.132-1.532-0.103-3.135c1.145-1.784,1.318-1.036,3.517-1.036,c0.838,0,1.617-0.815,1.733-0.803c1.906,0.194,1.327,0.264,2.845-1.114c2.016-1.829,0.733-1.212,0.233-2.746,c-1.654,0-3.918,2.594-5.044-0.337c-0.479-1.248-5.23,0.406-5.276,0.544c-0.456,0-0.736-0.247-1.216-0.337,c-1.055,0-0.802,1.036-1.577,1.036c-0.509,0-0.997-0.537-1.552-0.259c-1.562,0.781-1.542-0.459-2.354-1.787,c-1.361-2.23-3.354-4.491-5.988-4.764l0,0l1.798-1.349c0.606-1.134-0.07-1.652,1.112-2.357c0.147,0.088,0.437-0.07,0.569-0.104,c0.068-0.268,0.632-0.909,0.828-1.217c0.294-0.462-0.475-1.052,0.052-1.399c1.229-0.809,1.668,0.224,1.215-1.865,c-0.26-1.2,4.798-1.062,5.613-1.062c5.92,0-0.676-5.251,4.319-7.02c1.714-0.607,3.38-1.034,4.863,0.337,c1.83,1.691,2.054,0.544,4.449,0.544c2.353,0.882,5.382,0.077,7.785-0.052c0.952-0.051,5.265-1.401,5.405-1.14,c1.544,2.883,2.643,3.156,5.664,3.704c1.028,0.187,1.904,0.971,2.923,0.544c0.7-0.293,2.862-0.582,3.569-0.44,c0.435-0.437,0.491-0.773,0.491-1.399c0-0.899,1.407-0.636,0.879-1.632c-0.514-0.969-1.013-1.186,0-1.943L91.775,135.203,L91.775,135.203z", "name": "kurdistan"},"22": {"path": "M291.472,136.187l-3.983,1.425c-0.003,0.002-0.293,0.161-0.31,0.233c-1.739,0.439-3.645,3.402-4.112,5.025,c-0.631,2.191,0.275,5.176-2.121,6.269c-1.846,1.406-2.17,2.113-3.362,4.171c-1.991,3.435-3.776,4.279-7.734,3.73,c-1.681-0.233-2.387-0.543-3.595,0.958c-1.045,1.298-2.422,0.725-3.802,0.725l-1.81,0.311l0,0c-1.624-0.41-3.292-2.612-4.733-1.891,c-4.141,2.07-4.712-0.92-8.121-1.632c-1.265-0.264-4.237-0.314-4.733-1.813c-2.851,0-4.758,3.599-6.802,5.155,c-2.517,2.517-3.978,3.94-7.811,1.839c-3.214-1.762-3.148-5.916-6.544-8.134c-2.677-1.749-4.387-1.829-7.604-1.736l-3.931,0.078l0,0,l-0.595-1.373c0-1.44,0.248-2.423-1.629-2.565c-1.424-0.108-2.44-1.111-3.906-1.321c-0.967-0.138-2.114,0.228-2.845-0.596,c-0.767-0.865-1.763-2.313-3-2.383c-0.956-0.054-1.509,0.069-2.354-0.414l-2.897-1.036l0,0c0.451-0.594,0.012-1.819-0.569-2.176,c-0.783-0.481-1.741-0.684-2.509-1.192l-5.173-3.419l-6.895-5.602l0,0c1.728,0.109,3.545-1.323,3.789-3.07,c0.303-2.171-0.663-4.424,1.966-5.518l3.088-1.287l0,0c0.166,0.122,0.319,0.246,0.457,0.374c5.232,4.834,14.559,8.61,21.674,9.507,c0.024,0.002,0.473,0.022,0.491,0.078c1.387-0.697,5.906,2.33,7.397,2.849c2.857,0.995,8.985,1.342,11.923,0.518l13.579-3.808,c0.062,0.006,0.385,0.087,0.466,0.026c1.149,0.46,6.984-1.636,8.535-2.047l12.725-3.368c3.11-0.823,8.528-0.464,11.406-1.554,c1.508,0,5.463-0.45,6.854-0.984c0.622-0.239,1.736-0.655,2.354-0.725c0.93-0.106,0.681,0.296,0.31,0.829,c-0.583,0.839-7.37,1.235-8.819,1.606c-0.702,0.18-6.893-0.06-4.035,0.907c-0.251,0.335-2.489-0.049-3.311,0.466,c-0.24,0.15,0.474,1.3,0.724,1.425c0.948,0.472,3.104-0.544,4.293-0.544c1.757,0,4.643,0.214,6.337,0.648,c1.406,0.36,2.858,0.121,3.982-0.583l0,0l-0.179,1.697l-2.172,1.503l-0.724,2.228l2.173,1.295l4.371,2.331L291.472,136.187,L291.472,136.187z", "name": "Mazandaran"},"23": {"path": "M177.991,128.824l6.895,5.602l5.173,3.419c0.768,0.508,1.726,0.71,2.509,1.192c0.581,0.357,1.02,1.581,0.569,2.176l0,0,c-0.956,0.185-2.726-0.271-3.698-0.544c-0.821-0.23-2.086,0.036-2.974-0.078c-1.547-0.199-2.718-0.596-4.345-0.052,c-2.229,0.745,1.132,3.188,1.785,3.653c-0.149,0.518,2.071,0.96,2.431,1.14c4.234,2.117-1.654,4.289-0.31,6.062,c-0.068,0.113-0.148,0.818-0.181,0.984c-0.745,1.653-0.602,2.011-2.483,2.953c-1.981,0.993-3.81,1.672-5.871,2.357,c-2.433,0.808-1.435,3.302-0.802,4.793l0.672,1.684l0,0c-0.923,0-1.461-0.506-2.354-0.337c-1.024,0.195-2.139,0.651-3,1.244,c-0.551,0.379-1.77,0.832-2.121,1.295c-2.532,0-3.869,1.174-6.13,1.865c-1.397,0.427-4.246,0.263-4.94,1.658,c-0.415,0.834,0.035,1.917-1.164,1.917c-1.093,0-3.694-0.871-4.578-0.233l0,0c-0.811-1.426-3.456,0.009-4.681-0.518,c-2.196-0.944-4.186,0.126-6.362-0.155c-1.46-0.188-2.075-1.325-0.828-2.487c0.45-0.419,1.067-0.197,1.449-0.622,c0.543-0.605-0.522-1.51-1.06-1.684c-1.412-1.238-3.036-2.327-4.94-2.435c-0.679-0.039-1.225,0.363-1.81,0.363,c-0.025,0.038-0.026,0.014-0.052,0.052c-0.135,0-0.334,0.214-0.414,0.285l0,0l-1.164-1.528c-0.826-4.156,2.405-4.128,2.405-7.201,c0-5.715,4.469,0.716,5.328,0.933c0.191,0.757,2.053-0.297,2.354-0.518c1.158-0.852,2.034-1.498,3.518-1.243,c2.327,0.4,4.277-1.516,6.207-2.539c1.217-0.645-0.223-3.798-0.388-4.844c-0.657-5.316-0.419-7.499-6.078-9.144,c-3.398-0.988-7.709-3.66-6.492-7.875l9.492-5.44l0,0l0.543,2.332c1.794,2.647,6.891,4.456,10.087,4.456,c2.774,0,4.297,0.126,6.802-0.984c2.186-0.969,4.466-2.798,6.983-2.798L177.991,128.824L177.991,128.824z", "name": "Qazvin"},"24": {"path": "M136.701,109.452c1.049,2.559,6.683,5.723,8.173,7.876c1.143,1.652,1.159,3.67,1.604,5.544c0.392,1.65,2.933,0.922,3.078,2.098l0,0,l0.543,2.332c1.794,2.647,6.891,4.456,10.087,4.456c2.774,0,4.297,0.126,6.802-0.984c2.186-0.969,4.466-2.798,6.983-2.798,l4.02,0.849l0,0c1.728,0.109,3.545-1.323,3.789-3.07c0.303-2.171-0.663-4.424,1.966-5.518l3.088-1.287l0,0,c-1.733-1.277-4.803-2.304-5.595-4.134c-3-2.984-3.629-2.985-4.94-6.942c-1.034-3.12-1.229-4.93-5.069-5.285,c-2.334-0.216-2.993-1.936-4.759-2.616c-0.017-0.007-1.425,1.136-2.328,1.062c-0.42-0.035-3.172-0.126-3.259-0.388,c-0.13,0-0.107-0.044-0.362-0.052c-1.06-0.635-4.91-0.539-6.311-0.751c-1.874-0.284-4.323-1.151-6-2.072,c-2.409-1.323-7.115-3.843-7.889-6.839c-0.556-2.151-2.472-5.598-2.044-7.823c0-2.644-0.925-4.967-0.724-7.616,c0.216-2.857-1.164-4.907-1.164-7.668c0-0.665-0.06-2.072-0.064-3.338l0,0c-0.891,0-3.049-0.18-3.583,0.54,c-0.821,1.108-1.312,1.098-2.612,1.036c-2.01-0.095-1.54-2.222-2.877-3.34l0,0l0.084,5.983c1.403,0.543,0.791,0.155,1.319,1.45,c0.458,1.124,3.754,0.451,1.423,2.228c-2.552,1.946-1.083,5.262-2.664,7.616c-0.439,0.654,0.022,2.712-0.259,3.756,c-0.19,0.708-0.802,1.14-0.802,1.969c0,0.834,0.784,1.272,0.879,2.046l5.483,11.683c0.98,2.088,2.309,2.922,4.009,4.274,c0.968,0.77,0.118,3.638-0.181,4.74C136.503,108.783,136.562,109.112,136.701,109.452L136.701,109.452z", "name": "Gilan"},"25": {"path": "M95.422,221.311c0.829,0.926,1.398,2.896,1.345,4.145c-0.045,1.062-0.542,1.981-1.5,2.461c-1.444,0.723-1.62,2.461-3.13,3.057,c-1.621,0.64-3.14-0.251-4.837,0.311c-1.616,0.925-4.422,1.215-5.509,3.109c-0.786,1.37-2.393,3.11-3.336,4.119,c-0.489,0.523,2.339,3.963,2.845,4.533c0.882,0.995,1.101,2.094,2.483,2.539c2.308,0.743,2.528,2.502,5.173,2.746,c3.016,0.279,3.665,1.601,5.949,3.031l8.949,6.684c-0.077,0.026,0.525,0.774,0.595,1.088c0.228,1.024,0.185,2.066,0.854,2.927,c0.933,1.2,0.908,2.285,1.629,3.471c0.326,0.537,0.854,0.809,0.854,1.502c0,0.758-0.252,1.698,0.155,2.383l1.707,1.71l0,0,c0,0.416-1.026,2.338-1.216,2.875c-0.387,1.096-0.582,2.419-1.319,3.368c-1.542,1.984-3.646,3.394-2.586,6.113,c0.563,1.444,0.477,2.493-0.828,3.497l-3.798,2.612l0,0c-0.326-0.33-0.606-0.539-0.806-0.565c-1.344-0.177-0.895-0.749-1.397-1.788,c0.211-0.211,0.508-0.395,0.75-0.544c0.223-0.137,0.354-0.541,0.362-0.544c0-0.77-1.111-1.582-1.733-1.736,c-0.109-0.554,0.604-1.228,0.155-1.477c-0.48-0.265-1.378-0.018-1.681-0.57c-0.899-1.636,0.406-1.623,0.077-2.435,c-0.631-1.558-4.353-4.52-5.535-3.186c-2.529,2.854-13.634-6.027-14.458-8.756c-2.075-1.04-4.061-3.123-5.975-4.663,c-2.908-2.34-6.196-3.238-9.88-3.238c-2.33,0-3.543,0.482-3.543-2.331c0.219-0.074,0.22-0.169,0.543-0.13,c0.073,0.009,0.522,0.065,0.543,0c2.97,0-5.567-3.523-1.448-3.523c1.715,0,4.393-1.062,2.638-2.824,c-0.381-0.383,0.513-1.148-0.233-1.865c-0.863-0.686-1.828-1.374-2.405-2.28c-0.407-0.639-0.323-2.148-1.19-2.435,c0-1.129-0.779-4.001-2.276-3.135c-1.276,0.739-3.609-0.016-1.423-1.114c1.892-0.95,0.201-1.53,0.078-2.409,c-0.216-1.537-2.4-1.177-3.518-0.596c-1.727,0.898-0.546,0.31-1.242-0.777c-0.038-0.059-0.1-0.124-0.18-0.194l0,0l0.723-4.676,c0.323-1.005,0.53-2.365,1.086-3.238c0.173-0.27,1.005-2.367,0.621-2.461c-0.048-0.195-2.065-2.628-0.595-2.305,c2.335,0.512,4.671,0.085,6.259-1.503c0.643-0.643,3.364,1.988,4.423,2.331c1.819,0.59,2.713-0.465,4.475-0.285,c2.074,0.212,3.957,2.878,5.509,4.093c2.135,1.671,5.215,1.961,7.837,2.202c0.958,0.028,2.436,0.555,3.311,0.026,c1.403-0.849,4.231-2.422,5.949-2.072c1.451,0.295,1.626,1.678,3.31,0.648c0.824-0.504,1.266-2.369,1.423-3.29,c0.14-0.818-2.771-3.558-0.569-4.015c0.686-0.142,3.987-0.84,4.475-0.544L95.422,221.311L95.422,221.311z", "name": "Illam"},"26": {"path": "M95.422,221.311c0.018-0.092,0.002-0.26,0.078-0.285c0-0.333,0.754-0.668,0.569-1.321c-0.332-1.172-1.443-2.804,0.388-3.264,c2.11-0.531,4.386,0.828,4.837-1.943c0.334-2.056-1.828-3.983,0.724-5.052l2.018,0.363l0,0l2.742,2.409,c0.894,0.689,2.586,1.691,3.207,2.487c1.524,1.952,4.08,0.866,6,3.652c1.278,1.854,2.945,1.843,5.018,1.762,c1.585-0.062,2.803,0.798,4.319,1.01c1.474,0.207,1.978-0.984,2.974-1.761c0.482-0.377,2.72,0.127,4.061-0.544,c1.221-0.612,1.466,1.153,2.483,1.969l5.225,1.554l0,0l-0.207,1.969c0.962,2.372-0.388,2.673-0.388,4.741,c0,0.72-0.611,1.458-0.492,2.15c0.164,0.954,0.781,0.272,1.345,0.648c0.349,0.233,0.605,1.177,1.19,1.01,c1.754-0.5,1.792,0.372,3.181,0.596c1.818,0.292,4.811-1.684,4.811-3.627c0-1.535,4.683-4.143,5.664-3.419,c1.392,1.026,2.845,1.942,2.845,3.86c0,2.004-0.902,3.606,1.448,4.611c1.064,0.293,1.899,0.573,2.38,1.58,c0.28,0.586,0.536,1.07,1.293,0.699c0.801-0.393,0.424-1.575,0.802-2.253c1.167-2.094,1.718,1.548,2.354,1.243,c0.406-0.195,1.392-1.489,1.837-0.596c0.372,0.747-0.647,2.254-0.647,3.135c0,1.603,0.961,0.311,1.759,0.311l0.595,1.14l0,0,c-0.12,0.478-0.537,0.916-0.854,1.295c-0.268,0.322-0.955,0.522-0.569,1.062c0.482,0.674,1.838,0.306,1.759,1.347,c-0.061,0.812-0.621,1.495-0.879,2.254c-0.529,0.526-1.804,2.985-1.992,3.652c-0.325,1.157,0.646,3.212-1.293,3.212,c-1.045,0-2.163,0.976-2.974,0.751c-2.375-0.659-0.681,0.523-2.173,1.011c-0.608,0.198-1.676,0.141-1.914,0.855,c-0.473,1.42,1.912,3.217,0.88,4.715c-1.437,2.085-4.202,0.326-5.638,3.756l0,0c-2.166,0-4.873,1.678-6.802,0.466,c-2.297-1.442-4.044-3.813-6.181-5.492c-1.554-1.22-2.697,1.074-4.113,0.13c-2.507-1.674-2.688,1.342-4.681-2.099,c-1.652-2.85-5.43-1.215-7.423,0.078c-3.419,0.724-8.33-2.58-9.57,1.943c-0.791,2.887-2.44,4.686-2.612,7.849,c-0.075,1.383-2.283,3.047-3.155,4.196l0,0l-1.707-1.71c-0.407-0.685-0.155-1.626-0.155-2.383c0-0.693-0.527-0.965-0.854-1.502,c-0.722-1.186-0.697-2.271-1.629-3.471c-0.669-0.861-0.625-1.903-0.854-2.927c-0.07-0.314-0.672-1.062-0.595-1.088l-8.949-6.684,c-2.283-1.43-2.932-2.752-5.949-3.031c-2.645-0.244-2.865-2.002-5.173-2.746c-1.382-0.445-1.601-1.543-2.483-2.539,c-0.506-0.57-3.334-4.01-2.845-4.533c0.944-1.009,2.55-2.749,3.336-4.119c1.087-1.894,3.893-2.184,5.509-3.109,c1.696-0.561,3.215,0.329,4.837-0.311c1.51-0.596,1.686-2.333,3.13-3.057c0.958-0.48,1.455-1.399,1.5-2.461,C96.82,224.207,96.251,222.237,95.422,221.311L95.422,221.311z", "name": "Lorestan"},"27": {"path": "M57.35,178.719l3.698,1.714c3.838,3.432,9.146,7.483,10.423,12.538c0.646,0,1.939-0.807,2.069,0.466,c0.094,0.93-1.101,4.743,1.707,3.264c0.606-0.319,6.638,1.659,6.777,0.155c0.092-0.992-1.223-2.73,1.448-2.202,c1.087,0.215,1.118-2.112,1.293-2.824c2.991-0.736,0.781-4.093,3.957-2.409c3.172,1.682,0.466-3.86,3.802-3.86,c1.02,0.197,1.99,0.267,2.949-0.052c1.685-0.559-1.303-3.336,0.491-3.834c0.842-0.234,1.615,1.917,2.974,1.917,c2.466,0,3.039,2.138,4.371,3.886c1.542,2.022,2.1,1.787,4.319,1.787l0,0c0.088,0.919,0.046,1.665-0.569,2.28,c-0.553,0.553-1.326,0.857-1.862,1.451c-0.692,0.766,1.255,2.616-0.465,3.057c-1.227,0.314-6.279,0.341-4.087,3.109,c0.199,0.251,2.2,1.589,2.483,1.632c0.885,0.135,2.498-0.58,2.845,0.829c0.383,0.723,0.059,2.823,0.647,3.083,c1.017,0.449,1.365-1.052,1.681-1.658c0.622-1.196,1.329-0.516,1.759-1.14c0.604-0.876,1.394-0.673,1.888,0.13,c0.459,0.746-0.189,1.676-0.258,2.435c-0.09,0.974,0.753,2.954-0.104,3.575c-0.485,0.351-4.484-0.717-5.276-0.958,c-1.728-0.526-1.63,1.851-2.276,2.72l0,0l-2.018-0.363c-2.552,1.068-0.39,2.995-0.724,5.052c-0.45,2.77-2.726,1.412-4.837,1.943,c-1.831,0.46-0.72,2.092-0.388,3.264c0.185,0.653-0.569,0.988-0.569,1.321c-0.075,0.025-0.06,0.193-0.078,0.285l0,0l-1.061,0.078,c-0.488-0.296-3.789,0.402-4.475,0.544c-2.202,0.457,0.709,3.197,0.569,4.015c-0.157,0.921-0.598,2.786-1.423,3.29,c-1.685,1.03-1.859-0.353-3.31-0.648c-1.718-0.35-4.546,1.224-5.949,2.072c-0.874,0.529-2.353,0.002-3.311-0.026,c-2.622-0.241-5.701-0.531-7.837-2.202c-1.552-1.215-3.435-3.882-5.509-4.093c-1.762-0.18-2.655,0.875-4.475,0.285,c-1.058-0.343-3.78-2.974-4.423-2.331c-1.588,1.588-3.925,2.015-6.259,1.503c-1.47-0.323,0.546,2.11,0.595,2.305,c0.384,0.094-0.448,2.191-0.621,2.461c-0.556,0.872-0.763,2.233-1.086,3.238l-0.723,4.676l0,0c-0.562-0.493-2.039-1.243-2.588-1.826,c-0.24-0.255-1.632-3.46-1.655-3.705c-0.729-0.729-0.458-1.409-0.879-2.176c-0.39-0.711-1.049-1.21-1.449-1.943,c-0.969-1.775-3.846-0.082-3.311-2.435c0.177-0.777,1.751-0.275,1.655-1.969c-0.052-0.914,0.862-2.114,1.655-2.668,c0.614-0.429,1.431-0.092,1.061-1.295c-0.493-1.6-0.354-1.055,0.181-2.409c0.488-1.233-0.095-2.216-0.44-3.394,c-0.32-0.74-1.056-0.863-1.785-1.036c-1.236-0.292-0.479-0.98-0.543-1.761c-0.056-0.686-2.186-2.768,0.698-2.28,c0.909,0.154,1.061-1.967,0.879-2.617c-0.081-0.29-0.841-1.908-0.491-1.994c0.09,0.364,2.058,1.149,2.535,1.528,c1.056,0.84,1.802-0.133,3.026,0.544c1.501,0.83-0.155-4.23-0.155-5.129c0-0.99-2.69-0.677-0.543-2.824,c0.837-0.837,0.704-0.893,0.491-2.098c0.798-0.798,3.615,0.398,2.768-2.072c-0.776-2.259,3.13,1.488,2.25-1.684,c-0.137-0.494,0.492-0.476,0.492-0.984c0-1.286-1.336-2.36,0.595-2.902c1.311-0.367-0.031-1.244,0.44-1.425,c0.185-0.07,0.623,0.339,0.802,0.441c0.751,0.425,1.701-0.149,2.069,0.078c0.74,0.455,1.63,1.796,1.63-0.285,c0-0.032,1.77-0.224,2.354-0.518c1.412-0.711-1.37-2.173,0.44-2.772c1.835-0.608-0.519-2.15-1.629-2.15,c-0.154-0.608,0.608-0.875,0.672-1.502C57.368,179.042,57.367,178.877,57.35,178.719L57.35,178.719z", "name": "Kermanshah"},"28": {"path": "M192.722,180.562c-1.182,4.092,0.944,12.279-5.25,12.279c-3.116,0-2.937,3.744-5.949,4.378c-3.162,0.666-3.569,1.323-3.569,4.663,c0.442,0.827,4.428,3.928,5.173,4.119c3.744,0.959,3.692,7.668,6.285,7.668c2.128,0,3.335-0.81,4.397,1.451,c0.891,1.898,0.87,2.564,3.233,2.564l1.112-0.388l0,0c0.82-0.645,1.293-4.819,1.293-5.88c0-9.376,16.095-2.658,21.286-6.451,l1.526-1.036l0,0l0.181-1.269c0.563-0.701,1.701-0.776,2.017-1.606c0.351-0.921,0.28-1.787,0.336-2.772,c0.119-2.102,1.907-4.245-0.181-5.855l0,0l-1.319-0.647c-2.116-2.128-3.718-2.521-6.595-3.264c-3.632-0.938-4.636-3.33-7.371-5.337,c-1.564-1.148-3.484-0.98-5.25-1.451c-2.473-0.66-3.071-2.774-5.897-1.891L192.722,180.562L192.722,180.562z", "name": "Qom"},"29": {"path": "M177.359,164.164c0.579,0.019,1.169,0.164,1.789,0.296c0.548,0.116,1.119,0.223,1.728,0.223c1.219,0,2.73,0.188,3.802,0.725,c0.994,0.498,1.157,1.261,1.836,2.021c0.58,0.649,1.715,0.56,1.112-0.414c-0.456-0.737-1.345-1.82-0.673-2.668,c1.236-1.561,3.052-0.564,3.052,1.243c0,0.746-0.883,2.282,0.207,2.642c1.949,0.646,0.727-3.855,3.026-2.383,c1.042,0.667,1.686,2.629,2.095,3.73c-0.155,0.532,0.197,0.979,0.155,1.528c-0.129,1.705-0.834,3.161-1.319,4.741l-1.449,4.714l0,0,c-1.182,4.092,0.944,12.279-5.25,12.279c-3.116,0-2.937,3.744-5.949,4.378c-3.162,0.666-3.569,1.323-3.569,4.663,c0.442,0.827,4.428,3.928,5.173,4.119c3.744,0.959,3.692,7.668,6.285,7.668c2.128,0,3.335-0.81,4.397,1.451,c0.891,1.898,0.87,2.564,3.233,2.564l1.112-0.388l0,0c0.37,0.679,0.828,1.089,1.371,1.632c1.367-0.275,0.454,2.673,0.336,3.057,c-0.592,1.937-2.845,2.238-3.285,4.093c-0.216,0.911,0.459,1.832-0.026,2.746c-0.648,1.223-1.773,0.25-2.768,0.285,c-1.426,0.049-3.396,2.248-4.63,3.005c-0.981,0.613-3.196,1.621-4.397,1.425c-1.148-0.188-2.361-0.36-3.337,0.441,c-2.222,1.823-4.838,0.92-7.345,2.539c-1.581,1.021-2.781,2.477-4.242,3.627l0,0l-0.595-1.14c-0.797,0-1.759,1.292-1.759-0.311,c0-0.881,1.018-2.388,0.647-3.135c-0.444-0.893-1.43,0.401-1.837,0.596c-0.636,0.304-1.187-3.337-2.354-1.243,c-0.378,0.679-0.001,1.861-0.802,2.253c-0.758,0.371-1.013-0.113-1.293-0.699c-0.481-1.007-1.315-1.288-2.38-1.58,c-2.35-1.005-1.448-2.607-1.448-4.611c0-1.918-1.453-2.834-2.845-3.86c-0.981-0.723-5.664,1.884-5.664,3.419,c0,1.942-2.993,3.919-4.811,3.627c-1.39-0.224-1.428-1.096-3.181-0.596c-0.585,0.167-0.84-0.777-1.19-1.01,c-0.564-0.376-1.181,0.306-1.345-0.648c-0.119-0.692,0.492-1.43,0.492-2.15c0-2.068,1.35-2.369,0.388-4.741l0.207-1.969l0,0,c0.521-1.967,4.346-1.949,3.647-4.741c-0.292-1.167-0.69-1.534-0.414-2.849c0.289-1.375-0.134-2.142-0.802-3.316,c-0.837-1.416-1.899-1.953-2.354-3.782c-0.388-1.559,0.446-3.232,0.155-4.818c-0.162-0.882-4.343-2.083-2.923-3.031,c0.431-0.288,2.37,0.698,3.518,0.311c0.939-0.317,2.051,0.602,2.328,1.451c1.473,0-1.464-4.296-1.293-5.181,c0.38-1.967,4.289-0.463,2.535-3.989c-0.259-0.806-1.321-1.903-0.595-2.824c0.082-0.104,4.752,0.657,5.768,0.544,c1.956-0.218,4.43-0.763,3.129,2.072c-0.606,1.32-1.43,2.726,0.337,3.29c1.183,0.378,5.065,4.071,3.957-0.674,c-0.523-2.243-1.266-5.141-3.311-6.451c-1.397-0.894-2.504-1.122-4.035-1.502c-0.623-0.155-2.567-1.427-2.043-2.254,c0.657-1.037,4.298,0.218,4.397-1.969c0.091-2.008-1.167-2.535-2.121-4.067c-0.453-0.783-0.583-3.704,0.207-4.274,c1.273-0.92,1.187,1.234,1.164,1.969c-0.048,1.556,1.723,2.332,2.483,0.803c0.921-1.855-0.828-2.485-0.828-4.041l0.104-1.451l0,0,c0.884-0.638,3.485,0.233,4.578,0.233c1.199,0,0.749-1.083,1.164-1.917c0.694-1.395,3.543-1.23,4.94-1.658,c2.261-0.691,3.597-1.865,6.13-1.865c0.351-0.463,1.57-0.916,2.121-1.295c0.861-0.592,1.976-1.049,3-1.244,C175.899,163.658,176.436,164.164,177.359,164.164L177.359,164.164z", "name": "Markazi"},"30": {"path": "M177.359,164.164c0.579,0.019,1.169,0.164,1.789,0.296l0,0l1.573-0.814c2.54-1.36,5.817-0.272,8.638-1.321,c1.882-0.699,4.065-0.432,6-0.803c1.039-0.199,7.273,2.43,5.199-0.7c-1.13-1.704-0.844-2.13,0.543-3.057,c0.98-0.654,1.414-2.902,2.767-2.902c1.588-0.614,4.25,3.097,5.095,1.399c0.39-0.784-1.487-2.314-0.104-3.005,c0.445-0.222,0.892-0.044,1.216-0.492c0.243-0.337,0.285-1.443,0.285-1.865l0,0l-0.595-1.373c0-1.44,0.248-2.423-1.629-2.565,c-1.424-0.108-2.44-1.111-3.906-1.321c-0.967-0.138-2.114,0.228-2.845-0.596c-0.767-0.865-1.763-2.313-3-2.383,c-0.956-0.054-1.509,0.069-2.354-0.414l-2.897-1.036l0,0c-0.956,0.185-2.726-0.271-3.698-0.544c-0.821-0.23-2.086,0.036-2.974-0.078,c-1.547-0.199-2.718-0.596-4.345-0.052c-2.229,0.745,1.132,3.188,1.785,3.653c-0.149,0.518,2.071,0.96,2.431,1.14,c4.234,2.117-1.654,4.289-0.31,6.062c-0.068,0.113-0.148,0.818-0.181,0.984c-0.745,1.653-0.602,2.011-2.483,2.953,c-1.981,0.993-3.81,1.672-5.871,2.357c-2.433,0.808-1.435,3.302-0.802,4.793L177.359,164.164L177.359,164.164z", "name": "Alborz"},"31": {"path": "M179.148,164.46c0.548,0.116,1.119,0.223,1.728,0.223c1.219,0,2.73,0.188,3.802,0.725c0.994,0.498,1.157,1.261,1.836,2.021,c0.58,0.649,1.715,0.56,1.112-0.414c-0.456-0.737-1.345-1.82-0.673-2.668c1.236-1.561,3.052-0.564,3.052,1.243,c0,0.746-0.883,2.282,0.207,2.642c1.949,0.646,0.727-3.855,3.026-2.383c1.042,0.667,1.686,2.629,2.095,3.73,c-0.155,0.532,0.197,0.979,0.155,1.528c-0.129,1.705-0.834,3.161-1.319,4.741l-1.449,4.714l0,0l5.458-0.725,c2.826-0.883,3.423,1.231,5.897,1.891c1.766,0.471,3.686,0.303,5.25,1.451c2.735,2.006,3.74,4.398,7.371,5.337,c2.878,0.743,4.479,1.136,6.595,3.264l1.319,0.647l0,0c0.304-0.535,0.796-1.103,1.009-1.658c0.158-0.412-0.104-1.25-0.104-1.735,c0-1.084,1.528-2.679,2.224-3.471c2.782-1.395-2.078-5.21-3.052-6.347c-2.83-3.305-0.104-4.809-0.104-8.082,c0-1.616-0.641-4.264,1.837-2.254c0.286,0.232,1.642,0.065,1.655,0.104c0.065,0,2.116,1.246,2.793,1.425,c1.039,0.274,2.131,1.494,2.897,2.202c1.981,1.831,3.511,2.278,6.078,1.451c2.163-0.539,4.442,1.847,6.518,2.28,c2.245,0.468,4.938-0.205,7.113-0.751c1.999-0.502,8.456-6.824,8.613-8.886c0.187-2.468-1.707-4.971-1.448-7.668l0,0,c-1.624-0.41-3.292-2.612-4.733-1.891c-4.141,2.07-4.712-0.92-8.121-1.632c-1.265-0.264-4.237-0.314-4.733-1.813,c-2.851,0-4.758,3.599-6.802,5.155c-2.517,2.517-3.978,3.94-7.811,1.839c-3.214-1.762-3.148-5.916-6.544-8.134,c-2.677-1.749-4.387-1.829-7.604-1.736l-3.931,0.078l0,0c0,0.423-0.041,1.529-0.285,1.865c-0.324,0.448-0.771,0.27-1.216,0.492,c-1.383,0.691,0.494,2.221,0.104,3.005c-0.846,1.698-3.507-2.013-5.095-1.399c-1.353,0-1.787,2.247-2.767,2.902,c-1.387,0.926-1.673,1.352-0.543,3.057c2.074,3.13-4.16,0.5-5.199,0.7c-1.935,0.371-4.118,0.104-6,0.803,c-2.821,1.048-6.098-0.039-8.638,1.321L179.148,164.46L179.148,164.46z", "name": "Tehran"},"32": {"path": "M176.299,309.698c2.173,1.657,5.344,4.292,8.173,3.419c3.609-1.114,3.981,3.262,6.57,4.56c1.033,1.316,3.139,3.593,4.681,4.223,c0.784,0.32,1.439,1.05,2.327,0.855c1.148-0.252,1.155,0.208,2.069,0.389c0.268,0.822,2.176-0.495,2.431-0.751,c0.729-0.729,0.914-1.215,1.888-1.632l2.666-0.104l0,0c3.428-4.271-3.287-10.555-2.586-15.129c0.14-0.916,0.154-3.983,1.112-4.378,c1.179-0.485,1.205,0.221,1.293-1.14c-0.226-1.126-3.138-2.244-1.009-3.601c2.273-1.448,0.54-0.899,0.362-2.461,c-0.111-0.97,1.259-1.682,1.474-2.513c0.376-1.456-0.846-2.61-1.862-3.523l-5.276-4.741c-0.77-0.692-2.777-1.292-3.207-2.021,c-2.469-2.469,1.996-2.889,0.078-5.544c-0.631-0.873-0.281-0.896-0.388-1.839c-0.116-1.018-1.965,0.363-1.965-1.606,c0-1.297-0.183-3.599-2.173-2.824c-0.762,0.297-0.922,1.339-1.836,1.658c-2.339,0.815-3.876-0.914-6.44,0.829,c-1.154,0.575-1.931,1.43-2.974,2.124c-1.127,0.75-1.64-0.98-2.819-0.751c-1.031,0.2-1.376,0.829-2.354,0.052l-2.509-1.995,c-1.563-1.242-1.973,0.312-3.44,0.725c-0.904,0.254-1.44-0.575-2.224-0.622c-2.325-0.14-3.896,3.394-6.362,3.394l0,0l0.903,3.704,c0.044,1.507,2.161,3.243,3,4.404c1.649,2.283,1.582,5.883,4.681,6.683c2.863,0.74,0.458,5.227,3,7.046,c0.493,1.177,2.347,3.279,3.492,3.886c0.911,0.483,1.954,1.096,1.888,2.254c-0.076,1.336,1.258,2.228,0.336,3.471,C178.383,307.437,177.243,308.522,176.299,309.698L176.299,309.698z", "name": "Charmahal&Bakhtiari"},"33": {"path": "M186.283,354.902c-1.954,1.796,1.107,4.938,2.586,5.751c1.508,0.828,0.523,3.748,2.483,4.352c0.96,0.296,3.129,1.116,4.086,0.933,c1.086-0.208,2.077-0.673,3.207-0.544c0.682,0.077,1.398,0.685,2.043,0.933c2.094,0.804,4.714-0.527,5.147,2.901,c0.355,1.142-0.239,2.008,0.052,2.953c0.15,0.488,2.311,4.151,2.69,4.404c2.674,1.785,5.92,1.346,7.501,4.507,c1.259,2.517,4.095,7.385,4.423,10.051c0.399,1.421,2.156,3.164,3.13,4.326c3.664,4.375,3.763,10.737,5.949,15.673,c-0.084,0.578,2.198,4.905,2.587,5.855c0.396,0.968-0.242,3.614,0.724,4.145c2.484,1.364,3.202,2.063,5.147,4.197,c1.924,2.109,2.464,4.172,3.207,6.917c0.255,2.66,3.21,6.327,5.043,8.16c0.958,0.958,2.523,1.491,3.724,2.124,c1.335,0.703,2.334,1.782,3.466,2.772l1.655,1.606l0,0c-0.639,1.285-4.029,0.907-5.199,0.907c-0.796,0-1.398,0.265-2.147,0.337,l-1.225,1.308l0,0c-0.611-0.754-2.059-1.826-2.603-1.826c-0.326-0.987,0.849-0.318,1.086-1.036c0.566,0,0.983-0.191,1.423-0.337,c0-0.052-0.014-0.039,0.026-0.052c0-1.297-0.892-1.273-1.94-1.736c-1.01-0.446-1.174-2.255-1.888-3.057,c-1.797-2.018-3.391-3.058-6-3.29c-3.503-0.432-5.179-2.21-7.113-4.818c-0.829-1.118-8.63-1.018-10.294-0.699,c-1.204,0.231-1.528-0.475-2.509-0.544c-1.98-0.139-2.881-1.836-4.992-2.357c0.026-0.052-0.436-0.778-0.517-0.881,c-0.253-0.32-0.399-0.519-0.621,0.026c-0.406,0.998-1.164-0.254-1.448-0.933c-0.402-0.946-0.71-3.375-1.707-3.704,c-0.205,0.62-0.259,1.36-0.259,2.124c-0.281,0-0.672-1.988-0.672-2.357c0-0.894-0.667-1.552-0.362-2.746,c0.465-1.822-2.212-5.565-3.44-6.891c-2.024-2.183-1.674-3.783-2.198-6.502c0-1.055-0.074-2.5-0.414-3.445,c-0.404-1.124-1.364-1.748-1.707-2.642c-0.236-0.614,0.238-1.149-0.466-1.502c-0.833-0.418-1.964-0.078-2.871-0.311,c-1.323-0.339-1.386-1.965-2.147-3.109c-0.653-0.981,1.081-2.83,1.5-3.912c0.174-0.449,0.643,1.674,0.828,1.788,c0.735,0.452,0.311-1.943,0.155-2.228c-0.642-1.175-0.855-2.103-2.509-2.228c-0.748-0.056-3.124-1.424-3.673,0.233,c-0.998-0.741-0.855-1.522-0.957-2.591c0-0.569-0.047-0.981,0.077-1.528c0.054-0.238,0.667-1.086,0.569-1.217,c0.229-0.384-0.543-1.505-0.543-2.072c0-0.781,0.015-1.545-0.181-2.253c-0.146-0.527-1.492-3.39-1.759-3.549,c-0.126,0.094-0.494,0.294-0.543,0.44c-0.675,0-1.572-1.398-1.836-1.995c-0.534-1.209-1.344-1.679-2.224-2.564l-1.086-1.062,l-1.242-1.451c-1.286-1.037-1.82-2.711-2.845-3.886l-2.871-3.29c-1.597-1.829,0.635-4.119-0.931-6.787,c-1.176-2.003-1.632-2.272-3.152-2.637l0,0l2.945-1.871c0.777,0.226,1.664,0.055,2.406,0.492c1.184,0.698,1.876,0.669,3.233,0.44,c0.986-0.167,2.479,0.178,3.362-0.156l0,0c1.095,0.193,1.954-0.284,2.69,0.777c0.163,0.234,0.743,0.049,1.009,0.181,C185.761,354.122,185.984,354.603,186.283,354.902L186.283,354.902z", "name": "Bushehr"},"34": {"path": "M154.185,264.054l1.865,4.559c2.63,0.308,4.344-1.291,6.751,0.44c1.244,0.894,0.867,1.603,0.077,2.668,c-0.881,1.189-1.17,1.552-0.879,3.031l0,0l0.903,3.704c0.044,1.507,2.161,3.243,3,4.404c1.649,2.283,1.582,5.883,4.681,6.683,c2.863,0.74,0.458,5.227,3,7.046c0.493,1.177,2.347,3.279,3.492,3.886c0.911,0.483,1.954,1.096,1.888,2.254,c-0.076,1.336,1.258,2.228,0.336,3.471c-0.916,1.236-2.056,2.321-3,3.497l0,0l-1.474,3.238c-0.965,2.504-3.056,2.223-5.302,3.031,c-1.325,0.477-3.29,2.677-3,4.171c0.204,1.05,0.194,1.843,0.517,2.902c0.636,2.08,1.637,2.182,1.06,4.611,c-0.553,2.328-0.113,5.368,2.561,2.694c2.638-2.639,2.226,1.842,3.931,2.824c1.016,0.582,1.804,1.421,2.923,1.917,c1.446,0.64,3.828,0.678,3.828,2.824c0,0.643-1.174,3.213-1.785,3.419c0,1.828-0.819,2.343,0.957,3.938,c1.403,1.259,0.854,3.32,0.854,5.077l0.285,2.616l0,0c-0.883,0.334-2.376-0.011-3.362,0.156c-1.357,0.229-2.049,0.258-3.233-0.44,c-0.742-0.437-1.628-0.266-2.406-0.492l-2.945,1.871l0,0c-0.351-0.084-0.759-0.174-1.245-0.291c-0.97-0.234-1.832,0.903-2.483,0.777,l-5.328,3.808c-0.628,0.449-4.293,3.803-4.888,2.616c-0.21-0.419-1.461-1.904-1.216-2.15c0.319-0.321,2.547-2.927,0.466-2.927,c-1.778,0-4.783-0.768-6.156-0.207c-2.955,1.207-0.535-1.971-4.138-2.565c-1.49-0.245-2.542-0.711-3.466-1.788l-2.535-2.953,c-0.571-0.665,1.775-0.922,1.293-1.166c-0.58-0.292-1.723-0.026-2.354-0.026c-0.335,1.332-1.43,1.638-0.621,3.523l1.19,2.772,c0.82,0.207,0.17,4.416-0.052,5.077c-1.043,3.123-1.798,1.048-3.906,1.606c-3.93-1.464-3.089,2.432-4.63,2.305,c-0.595-0.049-1.331-0.765-1.681,0.207l0,0c-1.066-0.76-3.088-0.918-3.906-1.995c-0.582-0.766-0.159-2.857-0.905-3.186,c-0.868-0.383-0.846-0.874-0.647-1.762c0.207-0.331,0.348-0.887,0.517-1.114c-0.633-1.062-3.1-5.033-4.371-5.129,c-0.313-0.024-1.73,1.316-1.94,0.466c-0.204-0.052-0.429-2.639-0.647-3.083c-0.617-1.26-1.99-1.007-3.026-1.58l-1.291-0.567,l0.362-17.462H101.94V313.74l4.681-11.683c0.394-0.393,0.663-1.729,0.466-2.28c-0.281-0.785-0.953-0.602-1.345-1.217,c-0.219-0.343,0.055-1.028-0.155-1.451c-0.332-0.667-1.291-0.503-1.63-1.399c-0.372-0.984-2.645-4.689-4.056-6.118l0,0l3.798-2.612,c1.305-1.004,1.39-2.053,0.828-3.497c-1.059-2.72,1.044-4.129,2.586-6.113c0.737-0.949,0.932-2.272,1.319-3.368,c0.19-0.538,1.216-2.459,1.216-2.875l0,0c0.872-1.15,3.08-2.813,3.155-4.196c0.172-3.164,1.821-4.962,2.612-7.849,c1.24-4.522,6.151-1.219,9.57-1.943c1.993-1.293,5.771-2.928,7.423-0.078c1.994,3.441,2.174,0.425,4.681,2.099,c1.415,0.944,2.559-1.35,4.113-0.13c2.138,1.679,3.884,4.05,6.181,5.492C149.312,265.732,152.02,264.054,154.185,264.054,L154.185,264.054z", "name": "Khuzestan"},"35": {"path": "M181.653,352.959c1.095,0.193,1.954-0.284,2.69,0.777c0.163,0.234,0.743,0.049,1.009,0.181c0.41,0.204,0.632,0.685,0.931,0.984l0,0,l3.114-0.605c2.433,0.3,3.768,0.755,6.197,0.112c1.57-0.415,2.402-2.306,3.776-2.15c2.228,0.253,5.268-2.741,4.966-5.026,c-0.165-1.244-1.443-2.187-0.543-3.238c0.842-0.983-0.442-2.386-1.19-3.135c-0.143-0.279-0.336-0.493-0.336-0.803,c1.269-0.429-0.155-1.643-0.155-2.202c0-0.605,4.579,0.197,5.121,0.984c0.409,0.594,0.98,0.934,1.629,1.088,c1.478,0.351,1.126,2.046,2.819,2.046c4.777,0,7.105-1.412,6.13-6.372l-0.543-1.606l0,0c-1.617-2.015-4.689-3.401-6.647-5.077,c-2.485-2.128-3.538-5.086-3.516-8.264l0,0l-2.666,0.104c-0.974,0.417-1.159,0.903-1.888,1.632,c-0.256,0.256-2.163,1.573-2.431,0.751c-0.914-0.18-0.921-0.64-2.069-0.389c-0.888,0.195-1.544-0.535-2.327-0.855,c-1.542-0.63-3.649-2.907-4.681-4.223c-2.589-1.298-2.96-5.674-6.57-4.56c-2.829,0.873-6-1.763-8.173-3.419l0,0l-1.474,3.238,c-0.965,2.504-3.056,2.223-5.302,3.031c-1.325,0.477-3.29,2.677-3,4.171c0.204,1.05,0.194,1.843,0.517,2.902,c0.636,2.08,1.637,2.182,1.06,4.611c-0.553,2.328-0.113,5.368,2.561,2.694c2.638-2.639,2.226,1.842,3.931,2.824,c1.016,0.582,1.804,1.421,2.923,1.917c1.446,0.64,3.828,0.678,3.828,2.824c0,0.643-1.174,3.213-1.785,3.419,c0,1.828-0.819,2.343,0.957,3.938c1.403,1.259,0.854,3.32,0.854,5.077L181.653,352.959L181.653,352.959z", "name": "Kohgiluyeh&Boyer-Ahmad"},"36": {"path": "M328.406,243.589c1.906,2.51,4.877,4.674,6.466,7.202l3.776,6.01c1.611,2.564,4.353,5.927,6.621,7.875,c2.773,2.382,3.853,5.413,6.104,8.238c0,2.689,1.991,7.904,4.138,9.637c1.117,0.901,2.01,1.708,2.69,2.953,c0.344,0.63,0.656,1.305,1.035,1.917c0.284,0.46,2.961,3.322,3.026,3.782l0,0c-0.091,0-0.076,0.035-0.129,0.052,c0,1.654-3.957,3.954-5.276,3.316c-2.036,1.021-3.243,2.305-4.785,3.938c-1.384,1.466-3.182,2.129-4.888,3.083,c-3.035,1.697-7.507,2.231-10.164,4.378c-1.909,1.542-1.038,3.974-1.449,6.165c0,3.25,1.695,11.048-3.207,12.072,c-3.162,0.66-9.996,1.105-12.88-0.389c-4.115-0.452-8.991,3.262-12.622,2.565c-4.096-0.786-5.901,1.244-7.889,4.87,c-0.388,0.708-1.611,5.959-0.776,6.165c0.039,0.27,0.901,1.331,1.19,1.373c0.57,1.428,1.958,2.225,1.837,4.119,c0.497,1.361-0.012,4.509,1.034,5.207c1.747,1.167,2.46-0.234,2.328,2.668c-0.186,4.092-2.979,7.959-0.853,11.994,c1.458,2.767,0.491,1.793-2.043,2.28c-1.03,0.198-2.005,0.74-2.897,1.217l0,0c-1.436-2.525-7.139-3.555-9.518-5.129,c-3.245-2.147-1.58-8.77-3.233-12.098c-0.881-1.774-3.902-3.599-4.293-5.336c-4.583-4.571-8.795-14.572-10.449-20.828,c-0.358-2.891-2.099-7.51-3.931-9.818c-1.941-2.444-5.165-3.818-7.759-5.492l-6.053-2.072l0,0c0.415-1.43-1.371-3.374-1.371-5,c0-1.245-0.018-2.551,0.233-3.756c0.294-1.41,0.881-3.158,1.034-4.559c1.074-3.819,1.61-8.519,0.776-12.486,c-0.383-1.825-0.751-3.813,0.465-5.414c1.005-1.322,3.408-0.457,4.733-1.788c2.043-1.8,3.163-3.808,6.337-3.808,c4.46,0,8.005,2.367,12.208,2.176c4.577-0.208,8.73-3.341,12.648-5.311c1.549-0.049,4.662-1.579,6.544-1.891,c6.23-1.034,15.904-2.45,16.797-10.207c0.955-0.939,2.189-0.182,3.223-1.735c0.484-0.726,0.283-1.669,0.776-2.435,c0.749-1.164,1.906-2.208,3.207-2.642c1.616-0.538,2.76-1.722,4.293-2.487L328.406,243.589L328.406,243.589z", "name": "Yazd"},"37": {"path": "M217.268,333.997l2.716-0.803c0.632-1.181-0.157-2.267-0.233-3.445c-0.142-2.215,0.132-4.169,1.319-6.088,c1.409-2.278,2.096-3.955,2.431-6.684c0.258-0.586,1.345-4.213,0.362-4.456c-0.103-0.408-1.818-0.376-2.199-0.466,c-1.501-0.356-3.013-1.063-3.906-2.461c-1.75-2.742,0.776-2.043,2.509-1.503c1.323,0.412,3.749-0.194,4.63-1.373,c0.58-0.776,4.705-3.561,5.638-3.938c2.118-0.855,2.516-2.831,2.328,1.321c-0.171,3.777,3.012,3.336,6.233,4.145,c4.234,1.063,6.898-0.996,10.682-1.528l3.776-1.217l0,0l6.053,2.072c2.594,1.674,5.818,3.048,7.759,5.492,c1.832,2.307,3.574,6.926,3.931,9.818c1.654,6.255,5.866,16.257,10.449,20.828c0.391,1.738,3.412,3.562,4.293,5.336,c1.653,3.328-0.012,9.951,3.233,12.098c2.379,1.574,8.082,2.604,9.518,5.129l0,0l0.259,1.684l2.923,5.777,c-0.111,1.703,2.554,4.288,4.061,4.663c3.502,0.871,7.316-1.335,8.82,3.316c1.181,3.653,1.649,7.247,3.44,10.828l0.983,1.684l0,0,l1.267,3.393c0.318,0.989,0.693,1.643,0.44,2.668c-2.005,0.507-2.702,0.526-0.879,2.487c3.283,3.532,11.574,6.976,9.492,12.719,c-0.602,0.872-2.419,7.516-2.147,8.549c0.504,1.912,3.82,2.072,4.371,4.948c1.006,5.255-4.557,3.116-6.932,3.342,c-1.485,0.141-1.339,2.004-2.923,2.409c-2.152,0.552-2.085,1.495-3.233,3.419c0.261,1.623-1.366,4.54-2.819,5.362,c-3.058,1.729-5.88-1.548-8.613-2.072c-1.571-0.301-3.311,0.254-4.63,1.166c-1.79,1.238-2.089,0.585-3.879-0.311l-9.078,0.855,c-1.092,0.103-5.233,1.085-4.914,2.746c0.144,0.752,0.723,1.308,0.905,2.021c0.119,0.466-0.771,1.38-1.009,1.813,c-0.44,0.802,1.753,2.079,0.698,3.264c-0.564,0.633-1.981-0.064-2.742,0.7c-2.396,2.403-6.193-0.22-9.518-0.259,c-1.299,0.377-3.86,0.387-5.018-0.155c-1.366-0.641-1.28-2.272-3.078-2.72c-1.839-0.458-3.899,0.804-5.794,0.389,c-2.279-0.5-1.943-1.664-2.897-3.342l-1.216-0.7l0,0l-1.655-1.606c-1.132-0.99-2.131-2.068-3.466-2.772,c-1.201-0.633-2.766-1.166-3.724-2.124c-1.833-1.833-4.788-5.5-5.043-8.16c-0.743-2.745-1.283-4.807-3.207-6.917,c-1.945-2.134-2.664-2.833-5.147-4.197c-0.966-0.531-0.328-3.177-0.724-4.145c-0.389-0.95-2.671-5.277-2.587-5.855,c-2.185-4.935-2.284-11.297-5.949-15.673c-0.973-1.162-2.73-2.905-3.13-4.326c-0.328-2.667-3.164-7.534-4.423-10.051,c-1.581-3.162-4.826-2.722-7.501-4.507c-0.379-0.253-2.54-3.916-2.69-4.404c-0.291-0.945,0.303-1.812-0.052-2.953,c-0.433-3.429-3.053-2.098-5.147-2.901c-0.646-0.248-1.361-0.855-2.043-0.933c-1.13-0.129-2.121,0.336-3.207,0.544,c-0.957,0.183-3.126-0.637-4.086-0.933c-1.96-0.604-0.975-3.524-2.483-4.352c-1.479-0.813-4.54-3.955-2.586-5.751l0,0l3.114-0.605,c2.433,0.3,3.768,0.755,6.197,0.112c1.57-0.415,2.402-2.306,3.776-2.15c2.228,0.253,5.268-2.741,4.966-5.026,c-0.165-1.244-1.443-2.187-0.543-3.238c0.842-0.983-0.442-2.386-1.19-3.135c-0.143-0.279-0.336-0.493-0.336-0.803,c1.269-0.429-0.155-1.643-0.155-2.202c0-0.605,4.579,0.197,5.121,0.984c0.409,0.594,0.98,0.934,1.629,1.088,c1.478,0.351,1.126,2.046,2.819,2.046c4.777,0,7.105-1.412,6.13-6.372L217.268,333.997L217.268,333.997z", "name": "Fars"},"38": {"path": "M253.555,305.502c0.415-1.43-1.371-3.374-1.371-5c0-1.245-0.018-2.551,0.233-3.756c0.294-1.41,0.881-3.158,1.034-4.559,c1.074-3.819,1.61-8.519,0.776-12.486c-0.383-1.825-0.751-3.813,0.465-5.414c1.005-1.322,3.408-0.457,4.733-1.788,c2.043-1.8,3.163-3.808,6.337-3.808c4.46,0,8.005,2.367,12.208,2.176c4.577-0.208,8.73-3.341,12.648-5.311,c1.549-0.049,4.662-1.579,6.544-1.891c6.23-1.034,15.904-2.45,16.797-10.207c0.955-0.939,2.189-0.182,3.223-1.735,c0.484-0.726,0.283-1.669,0.776-2.435c0.749-1.164,1.906-2.208,3.207-2.642c1.616-0.538,2.76-1.722,4.293-2.487l2.948-0.57l0,0,c0-8.078-1.04-15.524-1.81-23.522l0,0l-27.623-0.466c-9.167,0-18.756-1.201-27.778-2.642c-6.502-1.039-15.626,0.091-19.064-6.419,c-1.116-0.173-2.22-0.357-3.309-0.55c-3.098-1.123-6.007-3.238-9.337-3.238c-3.639,0-8.011,1.021-11.432,0.13,c-1.074-0.28-4.751-1.938-5.38-2.824c-0.135-0.016-0.291-0.087-0.414-0.13l0,0l-1.526,1.036c-5.191,3.792-21.286-2.925-21.286,6.451,c0,1.062-0.474,5.235-1.293,5.88l0,0c0.37,0.679,0.828,1.089,1.371,1.632c1.367-0.275,0.454,2.673,0.336,3.057,c-0.592,1.937-2.845,2.238-3.285,4.093c-0.216,0.911,0.459,1.832-0.026,2.746c-0.648,1.223-1.773,0.25-2.768,0.285,c-1.426,0.049-3.396,2.248-4.63,3.005c-0.981,0.613-3.196,1.621-4.397,1.425c-1.148-0.188-2.361-0.36-3.337,0.441,c-2.222,1.823-4.838,0.92-7.345,2.539c-1.581,1.021-2.781,2.477-4.242,3.627l0,0c-0.12,0.478-0.537,0.916-0.854,1.295,c-0.268,0.322-0.955,0.522-0.569,1.062c0.482,0.674,1.838,0.306,1.759,1.347c-0.061,0.812-0.621,1.495-0.879,2.254,c-0.529,0.526-1.804,2.985-1.992,3.652c-0.325,1.157,0.646,3.212-1.293,3.212c-1.045,0-2.163,0.976-2.974,0.751,c-2.375-0.659-0.681,0.523-2.173,1.011c-0.608,0.198-1.676,0.141-1.914,0.855c-0.473,1.42,1.912,3.217,0.88,4.715,c-1.437,2.085-4.202,0.326-5.638,3.756l0,0l1.865,4.559c2.63,0.308,4.344-1.291,6.751,0.44c1.244,0.894,0.867,1.603,0.077,2.668,c-0.881,1.189-1.17,1.552-0.879,3.031l0,0c2.466,0,4.037-3.534,6.362-3.394c0.784,0.047,1.32,0.876,2.224,0.622,c1.467-0.413,1.877-1.967,3.44-0.725l2.509,1.995c0.978,0.777,1.322,0.148,2.354-0.052c1.179-0.229,1.692,1.501,2.819,0.751,c1.043-0.694,1.82-1.549,2.974-2.124c2.564-1.743,4.101-0.014,6.44-0.829c0.914-0.318,1.075-1.361,1.836-1.658,c1.99-0.775,2.173,1.526,2.173,2.824c0,1.969,1.85,0.588,1.965,1.606c0.107,0.943-0.243,0.966,0.388,1.839,c1.918,2.655-2.547,3.075-0.078,5.544c0.43,0.729,2.437,1.329,3.207,2.021l5.276,4.741c1.016,0.913,2.238,2.067,1.862,3.523,c-0.215,0.831-1.585,1.542-1.474,2.513c0.178,1.562,1.91,1.013-0.362,2.461c-2.13,1.357,0.783,2.475,1.009,3.601,c-0.089,1.361-0.114,0.655-1.293,1.14c-0.959,0.394-0.972,3.462-1.112,4.378c-0.7,4.573,6.015,10.857,2.586,15.129l0,0,c-0.022,3.177,1.03,6.135,3.516,8.264c1.958,1.677,5.03,3.063,6.647,5.077l0,0l2.716-0.803c0.632-1.181-0.157-2.267-0.233-3.445,c-0.142-2.215,0.132-4.169,1.319-6.088c1.409-2.278,2.096-3.955,2.431-6.684c0.258-0.586,1.345-4.213,0.362-4.456,c-0.103-0.408-1.818-0.376-2.199-0.466c-1.501-0.356-3.013-1.063-3.906-2.461c-1.75-2.742,0.776-2.043,2.509-1.503,c1.323,0.412,3.749-0.194,4.63-1.373c0.58-0.776,4.705-3.561,5.638-3.938c2.118-0.855,2.516-2.831,2.328,1.321,c-0.171,3.777,3.012,3.336,6.233,4.145c4.234,1.063,6.898-0.996,10.682-1.528L253.555,305.502L253.555,305.502z", "name": "Isfahan"},"39": {"path": "M357.141,131.213l1.5,0.518c1.201,0,2.353-0.958,3.543-0.958c1.058,0,1.796-0.148,2.716,0.44c0.566,0.363,0.926,0.958,1.423,1.295,c0.319,3.567-1.947,5.103-2.923,8.29c-1.009,3.293,1.769,6.551,0.905,9.637c1.001,2.417,1.186,4.622,2.845,6.684,c1.243,1.545,3.459,2.404,4.966,3.808c3.294,3.07,6.463,5.144,1.474,9.067c-4.038,4.055-1.004,8.803-7.552,10.492,c-4.116,1.061-6.406,2.549-8.692,5.145c-3.741,2.67-6.647,6.623-9.853,9.828l-0.258,1.606l0,0c5.691,0,10.888,2.374,17.277,1.347,c5.401-0.868,4.617-7.748,9.725-9.067c6.543-1.689,14.046-0.157,14.949,7.72c0.271,2.362-0.23,7.063,2.379,8.134,c2.921,1.2,2.47,4.386,1.19,6.632c-1.142,1.048-0.904,4.496,0.362,5.44c3.082,2.298,6.276-0.777,9.466-0.777,c1.2,0,2.271,0.77,2.949,1.71c0.444,0.615,2.561,2.072,2.535,2.176c2.966,1.111,9.807-0.762,13.423-0.311,c1.708-0.158,3.346,0.518,5.483,0.052c1.669-0.364,3.564-0.829,5.276-0.829c2.427,0,1.829,2.266,4.63,1.684l3.362-0.699,c1.19-0.248,1.962-1.252,3.181-1.373c2.703,0,3.841,1.219,6.311,1.865c4.416,1.154,8.082,3.714,12.337,4.974,c3.698,1.095,7.854-3.462,12.023-3.135l0,0l-0.307-1.709l1.138-3.342l3.31-3.083l0.181-1.114l6.698,0.207,c0.138-0.035,0.072-1.102-0.181-1.166c-0.105-0.535-1.526-1.057-1.526-1.528c0-1.014-0.75-1.308-0.75-2.254,c0-0.817,0.294-0.892-0.414-1.477c-0.277-0.229-2.247-1.188-1.992-1.477c0.142-0.162,2.381-0.855,2.664-0.855,c2.659,0,1.529-1.676,2.845-2.668c2.708,1.646,1.34-3.457,2.948-3.989c0-0.052-0.014-0.039,0.026-0.052,c0-0.058,0.026-0.071,0.026-0.13c0.1-0.033,0.045-0.092,0.052-0.285l0.978-2.085c-0.038-0.15-0.081-0.314-0.124-0.48,c-0.074-0.28,0.502-1.561,0.285-1.658c-0.024-0.01,0.023-0.066,0-0.078c-0.154-0.076,0.207-2.135,0.207-2.642,c0-1.063,1.225-1.48,0.931-2.409c-0.193-0.611-0.548-1.133,0.052-1.736c0.914-0.918,0.924-0.748,0.362-2.021,c-0.656-1.484-1.603-1.195-0.672-2.85c0.414-0.738-0.947-1.38-0.75-2.15c0.203-0.796,1.501-0.649,2.121-0.699,c1.509-0.124,0.501-1.818,0.776-2.539c0.737-1.932,1.302-3.421,2.354-5.129c0.616-1,0.605-2.495,0.179-3.792l0,0,c-0.223-0.68-0.56-1.305-0.98-1.777c-1.113-1.249,0.704-2.446,0.388-3.575c-0.102-0.366-0.052-1.49,0.207-1.969,c0.401-0.742-0.453-3.06-0.672-3.704c-0.507-1.488-0.842-0.742-2.328-0.855c-1.296-0.098-0.526-1.579,0.026-1.839,c0.304-0.144,0.75-2.21,0.828-2.228c0.564-0.128,0.683-1.605,0.983-2.15c1.195-2.17-0.536-3.527-0.983-5.751,c-0.136-0.679-0.75-0.593-0.75-1.347c0-0.489,0.232-0.964-0.052-1.373c-0.892-1.287,0.325-1.477,0.207-2.513,c-0.051-0.451-0.332-1.15,0.336-1.503c0.125-0.066,0.093-0.359-0.026-0.414c-0.966-0.448,0.29-2.215,0.517-2.772,c0.398-0.977-0.546-2.269-1.118-3.328l-8.917,0.349l-14.122-0.104l-3.466-5.647c-0.46-0.749-0.245-1.038-1.19-1.58,c-1.321-0.757-1.156-1.516-2.069-2.539c-0.892-1.601-0.949-3.564-2.587-4.637c-2.051-1.344-3.448,0.594-5.25-2.124,c-1.44-2.172-2.246-0.217-3.414-0.959c-0.615-0.391-0.902-0.941-1.759-0.751c-1.213,0.269-0.629,0.96-2.173,0.155,c-1.428-0.745-1.132-0.371-1.604-1.917c-0.378-1.24-1.474,0.133-1.474-1.839c0-0.409-1.664-2.493-2.095-2.59,c-1.368-0.824-0.68-1.83-1.138-3.109c-0.48-1.338,1.378-1.257,0.026-2.357c-0.312-0.254-0.44-1.673-0.595-2.176,c-0.217-0.704-2.269,0.259-2.897,0.259c-0.379,0-3.637-2.068-3.957-2.409c-1.099-1.172-3.878-2.807-5.505-2.943,c-1.392,0-2.308-1.51-3.531-1.51c-0.238,0.714,0.149,2.755-1.429,1.572l-0.306,0.163c-0.592,2.961-5.027-4.009-6.715-0.633,c-1.251,2.503-6.112,0.227-8.245-0.306c-0.217-1.084-0.338-4.082-1.796-4.082c-0.621,0-1.167-0.042-1.673-0.129l0,0l0.44,4.19,c-0.088,0.948,1.251,5.815,1.966,6.424c-0.014,0.049,1.422,2.678,1.422,3.627c0,2.799-0.193,3.253,2.147,5,c2.965,2.213,0.299,2.318,0,4.689c0.622,1.68-1.981,0.687-2.483,2.772c-0.218,0.906-0.177,1.753,0.491,2.513,c0.11,0.126,1.745,1.495,0.983,1.684c-0.115,0.467-3.774,2.331-4.397,2.643c-3.946,1.97-2.929,3.656-4.707,6.942,c-1.914,3.538-4.823,1.297-7.371,0.026l-10.164-5.259l-13.941-6.217l-11.898,7.823L357.141,131.213L357.141,131.213z", "name": "Razavi Khorasan"},"40": {"path": "M337.484,105.127c-2.603,0-4.637,6.755-5.276,8.73c-0.574,1.774-1.697,2.534-2.095,4.611c-0.323,1.688-0.022,3.997-0.181,5.777,c-0.425,4.993-11.137,1-14.82,1.477c-6.764,0.875-7.284,7.656-12.906,9.999c-1.299,0.345-2.688,1.319-4.061,0.933,c-1.748-0.492-3.578-1.065-5.457-0.907l-1.216,0.44l0,0l-3.828-2.564l-4.371-2.331l-2.173-1.295l0.724-2.228l2.172-1.503,l0.179-1.697l0,0c1.196-0.75,2.019-2.026,2.019-3.666c0-0.638,0.176-1.745-0.414-2.202c-1.087-0.843-0.724-0.593-0.724-1.969,c0-0.435-0.759-2.64-1.086-2.901c0-2.029-0.968-4.843-1.345-6.813c-0.135-0.703-0.238-1.46-0.319-2.246l0,0l9.653,0.876l1.143-1.082,l2.204,0.061l1.347-0.408l2.2-2.169c0.412-0.187,0.576,0.015,0.918-0.194c0.119-0.073,0.217-0.293,0.349-0.389,c0.192-0.137,1.65-0.816,1.733-0.816c0.619,0,1.253,0.631,1.914,0.79c0.856,0.206,1.546-0.597,1.94-1.217,c0.242-0.382,0.398-1.003,0.945-1.003c0.232,0,0.698-0.087,0.905-0.544c0.247-0.544,1.086-3.311,0.724-3.782,c-1.056-1.375,0.694-3.65,1.242-5.077c0.357-0.932,1.636-0.407,2.328-1.528c0.272-0.441,0.725-0.907,1.267-0.907,c0.954,0,0.761-0.768,1.345-1.192c0.556-0.403,1.164-1.653,1.68-2.21c0.38-0.41,1.046-1.019,1.513-1.296,c0.428-0.254,0.825,0.113,1.255-0.285c0.319-0.296,0.44-0.039,0.789-0.039c0.474,0,0.736-0.712,1.125-0.972,c0.516-0.344,1.31-0.667,1.915-0.613c0.614-1.376,2.826-1.114,3.609-2.314c1.267-1.939,1.284-0.075,2.123-0.755,c1.265-1.026,3.969-0.462,5.633-0.735c1.082-0.177,1.342-0.911,2.408-0.612c0.501,0.141,0.96-0.415,1.449-0.143,c0.393,0.218,0.758,0.524,1.143,0.755c2.828,1.515,5.116,0.388,8.021,0.388c0.638,0,1.55,0.68,2.053,0.853l0,0l-0.316,3.236,c-0.217,0.929-0.771,1.902-0.931,2.85c-0.159,0.946,0.091,1.844-0.233,2.798c-0.513,1.51-1.895,3.441-0.776,5.104,c0.822,1.22,2.872,1.077,3.724,2.228c1.106,1.491,0.172,3.851-1.63,4.196c-1.572,0.301-5.485-1.445-5.949,0.855l-1.707,0.674,c-0.873,0.395-1.448,1.025-1.448,2.021c0,0.461,0.014,0.71-0.259,1.088c-0.144,0.199-0.619,0.457-0.672,0.674,C338.53,104.117,337.759,104.714,337.484,105.127L337.484,105.127z", "name": "Golestan"},"41": {"path": "M337.484,105.127c0.225,2.342,2.438,1.913,3.078,3.989c0.353,1.148,0.71,3.203,2.354,2.901c0.857-0.157,2.954-0.161,3.466,0.7,c0.893,1.503-2.429,0.831-2.767,2.59c-0.218,1.138,2.136,1.597,1.371,3.627c-1.496,3.874,0.802,5.308,3.311,7.823,c1.006,1.009,2.256,2.464,3.518,3.057c1.325,0.622,3.015,0.001,4.423,0.881l0.905,0.518l0,0l1.5,0.518,c1.201,0,2.353-0.958,3.543-0.958c1.058,0,1.796-0.148,2.716,0.44c0.566,0.363,0.926,0.958,1.423,1.295,c0.319,3.567-1.947,5.103-2.923,8.29c-1.009,3.293,1.769,6.551,0.905,9.637c1.001,2.417,1.186,4.622,2.845,6.684,c1.243,1.545,3.459,2.404,4.966,3.808c3.294,3.07,6.463,5.144,1.474,9.067c-4.038,4.055-1.004,8.803-7.552,10.492,c-4.116,1.061-6.406,2.549-8.692,5.145c-3.741,2.67-6.647,6.623-9.853,9.828l-0.258,1.606l0,0l-3.983,5.596,c-1.651,3.307-4.342,7.019-5.225,10.621c-0.708,2.888-1.148,6.217-4.397,6.217c-1.517,0-5.844-0.069-7.035,0.57l0,0l-27.623-0.466,c-9.167,0-18.756-1.201-27.778-2.642c-6.502-1.039-15.626,0.091-19.064-6.419c-1.116-0.173-2.22-0.357-3.309-0.55,c-3.098-1.123-6.007-3.238-9.337-3.238c-3.639,0-8.011,1.021-11.432,0.13c-1.074-0.28-4.751-1.938-5.38-2.824,c-0.135-0.016-0.291-0.087-0.414-0.13l0,0l0.181-1.269c0.563-0.701,1.701-0.776,2.017-1.606c0.351-0.921,0.28-1.787,0.336-2.772,c0.119-2.102,1.907-4.245-0.181-5.855l0,0c0.304-0.535,0.796-1.103,1.009-1.658c0.158-0.412-0.104-1.25-0.104-1.735,c0-1.084,1.528-2.679,2.224-3.471c2.782-1.395-2.078-5.21-3.052-6.347c-2.83-3.305-0.104-4.809-0.104-8.082,c0-1.616-0.641-4.264,1.837-2.254c0.286,0.232,1.642,0.065,1.655,0.104c0.065,0,2.116,1.246,2.793,1.425,c1.039,0.274,2.131,1.494,2.897,2.202c1.981,1.831,3.511,2.278,6.078,1.451c2.163-0.539,4.442,1.847,6.518,2.28,c2.245,0.468,4.938-0.205,7.113-0.751c1.999-0.502,8.456-6.824,8.613-8.886c0.187-2.468-1.707-4.971-1.448-7.668l0,0l1.81-0.311,c1.38,0,2.757,0.573,3.802-0.725c1.208-1.501,1.914-1.191,3.595-0.958c3.958,0.548,5.743-0.296,7.734-3.73,c1.192-2.057,1.516-2.765,3.362-4.171c2.396-1.093,1.49-4.078,2.121-6.269c0.468-1.624,2.374-4.586,4.112-5.025,c0.018-0.072,0.307-0.231,0.31-0.233l3.983-1.425l0,0l1.216-0.44c1.879-0.158,3.709,0.415,5.457,0.907,c1.373,0.387,2.761-0.588,4.061-0.933c5.622-2.343,6.142-9.124,12.906-9.999c3.683-0.477,14.395,3.516,14.82-1.477,c0.159-1.779-0.142-4.089,0.181-5.777c0.398-2.077,1.521-2.837,2.095-4.611C332.847,111.882,334.881,105.127,337.484,105.127,L337.484,105.127z", "name": "Semnan"},"42": {"path": "M337.484,105.127c0.225,2.342,2.438,1.913,3.078,3.989c0.353,1.148,0.71,3.203,2.354,2.901c0.857-0.157,2.954-0.161,3.466,0.7,c0.893,1.503-2.429,0.831-2.767,2.59c-0.218,1.138,2.136,1.597,1.371,3.627c-1.496,3.874,0.802,5.308,3.311,7.823,c1.006,1.009,2.256,2.464,3.518,3.057c1.325,0.622,3.015,0.001,4.423,0.881l0.905,0.518l0,0l-0.44-5.88l11.898-7.823l13.941,6.217,l10.164,5.259c2.548,1.271,5.457,3.512,7.371-0.026c1.778-3.286,0.761-4.973,4.707-6.942c0.623-0.311,4.282-2.176,4.397-2.643,c0.762-0.188-0.872-1.558-0.983-1.684c-0.668-0.759-0.71-1.606-0.491-2.513c0.502-2.085,3.105-1.092,2.483-2.772,c0.299-2.371,2.965-2.476,0-4.689c-2.339-1.746-2.147-2.2-2.147-5c0-0.949-1.436-3.578-1.422-3.627,c-0.714-0.609-2.054-5.476-1.966-6.424l-0.44-4.19l0,0c-1.2-0.205-2.184-0.658-3.449-1.381c-1.145-0.52-2.025-1.039-3.021-1.674,c-0.942-0.6-1.756,1.25-2.306-0.163c-0.25-0.642-0.753-1.097-1.408-0.918c-0.737,0.2-0.807-0.832-2.041-0.653,c-0.925,0.134-3-0.819-3.408-0.674c-0.373,0.133-1.394,0.838-1.694,0.755c-0.549-0.152-3.957-1.688-4.102-2.123h-0.041,c-0.314-0.941-0.225-1.184-0.225-2.265c0.407-1.356-0.181-3.258-1.429-3.98c-0.576-0.334-0.687-0.752-0.653-1.408,c0.06-1.151-2.582-5.028-3.817-2.939c-1.07,1.811-1.805,2.905-3.857,2.796c-1.212-0.064-0.66-1.075-1.572-1.184,c-1.355-0.162-2.4,0.134-3.755-0.367c-0.762-0.282-2.692-2.33-3.061-2.102c-1.151,0.71-1.043,0.768-2.429,0.898,c-0.573,0.115-0.897,0.939-1.51,0.939c-0.506-1.519-2.888-1.266-4.388-0.959c-1.57,0.321-2.677,1.887-3.674,3.082,c-0.232,0.278,0.322,2.216,0.265,2.898c-0.111,1.337-2.017,0.666-3.184,1.184c-0.064,0.028-0.158,0.015-0.274-0.025l0,0,l-0.316,3.236c-0.217,0.929-0.771,1.902-0.931,2.85c-0.159,0.946,0.091,1.844-0.233,2.798c-0.513,1.51-1.895,3.441-0.776,5.104,c0.822,1.22,2.872,1.077,3.724,2.228c1.106,1.491,0.172,3.851-1.63,4.196c-1.572,0.301-5.485-1.445-5.949,0.855l-1.707,0.674,c-0.873,0.395-1.448,1.025-1.448,2.021c0,0.461,0.014,0.71-0.259,1.088c-0.144,0.199-0.619,0.457-0.672,0.674,C338.53,104.117,337.759,104.714,337.484,105.127L337.484,105.127z", "name": "North Khorasan"},"43": {"path": "M444.147,339.903l-3.027,12.227l-1.19,9.326c-0.282,1.952-0.828,3.059-1.396,4.922c-1.055,3.458-1.247,4.156,2.121,6.062,c1.804,1.021,0.922,5.156,1.293,7.046c-0.426,2.423,0.592,4.955-0.155,7.616c-0.587,2.089-3.388,4.112-3.388,6.191,c0,2.785,0.33,5.482,1.914,7.745c-0.041,0,0.297,1.091,0.233,1.425c-0.676,3.491-8.794,6.688-11.897,7.461,c-0.644,0.16-3.588,0.974-2.173,2.15c1.863,1.547,4.026,1.193,4.733,3.938c0.723,2.803-1.26,3.829-3.13,5.414l-1.061,1.192,c0,6.92,1.652,13.112-1.19,19.739c-1.174,2.668-2.626,9.347-1.5,12.15c0.946,2.356,0.414,3.369,0.414,5.751,c0,2.643,1.734,3.138,3.336,4.74c1.439,1.25,1.566,5.459-0.207,6.399c-1.267,0.672,1.609,2.62,1.552,3.627,c-0.04,0.704-1.984,0.734-2.276,1.865c-0.822,3.189,2.34,3.672,2.043,5.518c-0.226,1.409-3.004,2.734-2.561,4.792l-0.052,2.357,l-0.892,1.552l0,0c-0.363,0.678-0.906,1.191-0.815,2.085c0.138,1.35,0.538,0.798,1.448,1.23c0.455,0.217,0.485,0.901,0.737,1.296,c1.051,1.641,3.309,2.18,4.41,3.938c0.435,0.491,0.905,0.898,1.034,1.556c0.245,1.255-0.29,1.526,0.957,2.202,c0.517,0.281,1.246,0.447,1.19,1.166c-0.094,1.21,0.734,1.207,1.112,2.254c0.276,0.762,0.951,2.677,0.951,3.504l0,0,c0.978-0.299,1.97-0.628,2.954-0.861c5.065-1.203,5.112,2.658,9.234,2.15c0.753-0.219,4.674-0.268,5.276,0.104,c0.454,0.281,0.944,1.038,1.423,1.425c0.142,0.115,1.075-0.674,1.448-0.777c3.021-0.838,4.624,0.379,6.932,1.269,c0.683,0.263,0.823-1.251,1.526-1.684c2.061-1.269,1.901,1.338,3.362,1.658c0.624,0.137,2.769,0.872,3.13,0.622,c0,0-1.371-1.378-1.371-2.383c0-1.802,3.09-2.096,4.319-1.839c1.371,0.286,2.676,2.711,1.474,3.108,c1.237,1.244-0.647,2.435,2.949,2.435c2.861-0.279,8.055,2.128,11.147,2.564c1.518,0.215,1.46,1.122,2.431,1.891,c2.043,1.617,9.13,3.197,9.13-0.052c0-2.577,2.02-1.763,3.605-1.664l0,0l1.024-3.827l0.517-10.906,c0.404-0.575,0.647-0.432,0.647-1.14c-0.063-0.021,1.397-1.15,1.397-1.839c0.043-0.014,0.057-0.052,0.129-0.052,c0.069-0.204,1.114,0.34,1.164,0.492c0.941,0,1.422-0.939,1.862-1.529l-0.621-2.357c-0.257-0.975,0.916-0.862,1.19-1.477,c0.419-0.942-1.469-1.077-1.552-2.254c-0.056-0.803,0.535-1.047,0.776-1.684c0.191-0.505-0.269-1.093-0.078-1.736,c0.898-1.631,0.773-4.105,1.474-5.829c0.232-0.571,3.217-0.458,3.88-2.461c1.215,0,5.431,3.135,5.431,1.14,c0-0.594,0.198-1.401,1.009-1.088c0.627,0.242,0.285-4.274,0.931-4.274c0.544-1.644,1.234-2.836,3.388-2.616,c0.877,0.09,0.647-1.142,1.655-1.399c0.735-0.188,2.196,0.186,3.104,0.103c1.647-0.039,1.818-1.088,3.207-1.088,c0.19,0.584,2.058-0.806,2.276-1.217c0.418-0.79,4.329,0.53,5.458,0.104c1.103-0.418,8.675,0.749,7.138-1.813,c-0.245-0.408,0.543-2.76,0.077-3.912c-0.407-1.007,0.686-0.814,1.345-0.881c1.012-0.103-0.026-0.991-0.026-1.58,c0.072-0.024,0.251-0.205,0.336-0.233v-0.078l0.155-2.15l-0.026-3.756c0.52-1.282,1.3-0.554,2.069-1.166,c0.376-0.299-1.193-3.503-1.759-3.549c-1.674-0.137-0.931,0.041-2.095-0.984c-0.423-0.372-1.296,0.635-1.81,0.803,c-0.724,0.236-0.975-0.244-1.629-0.207c-0.936,0.053-1.685,0.907-2.871,0.907c-0.44,0-0.825,0.233-1.241,0.233,c-0.53,0-0.588-0.516-0.905-0.596c-0.023-0.092-0.118-0.057-0.181-0.103c-0.701,0.42-0.807,0.711-1.655,0.544,c-0.071-0.289-2.205-1.051-1.474-1.658c2.809-2.333-0.882-1.798,0.569-3.653c1.26-1.61,1.293-2.915,1.293-4.87l-0.414-7.953,l-1.94-8.6l0.88-8.341l-4.5,0.777c-2.099,0.173-2.205-0.202-3.284-1.813c-0.574-0.857-0.693-2.445-1.811-2.616,c-1.164-0.178-1.307-0.757-2.328-1.192c-0.831-0.354-2.33-0.655-3.233-0.829c-1.409-0.404-2.955-1.347-4.345-1.347,c-1.458,0-2.213-0.961-3.492-1.217c-0.806-0.161-2.04-0.081-2.664-0.673c-0.743-0.706-1.159-2.216-2.069-2.668,c-2.074-1.03-1.884-1.599-3.078-3.549c-0.299-0.489-1.801-0.856-2.431-1.736l-2.845-5.336c-0.141-0.719-0.448-1.798-1.267-1.891,c-1.195-0.136-0.432-0.984-0.103-1.399c0.4-0.506-0.604-0.737-0.672-1.036c-0.173-0.762,0.043-1.321-1.086-1.321,c-1.279,0-0.932-1.465-0.724-2.28c0.204-0.797-1.499-1.73-1.785-2.72c-0.213-0.738,0.517-0.968,0.233-1.71,c-0.222-0.578-0.212-1.488-0.388-2.021c-0.049,0-0.064,0.016-0.078-0.026c-0.26,0-0.457,0.103-0.724,0.103,c-0.123-0.372-0.677-0.425-0.698-1.088l-3.699-3.756l-8.509-10.854l0,0l25.89-31.371c-0.616-1.008,1.498-1.558,0.983-2.901,c-0.198-0.516-0.29-1.307-0.432-1.992l1.413-1.375l-0.181-3.963l-0.828-0.933l-0.207-2.124l-0.672-0.622l-0.052-3.471l-1.94-2.435,l-5.638-0.751l-11.505-1.794l0,0c0,1.14,0.876,2.604,0.876,3.763c0,1.028-0.49,1.696-1.164,2.409,c-0.523,0.555-0.605,1.567-1.112,1.969c-1.498,4.51-2.897,7.789-2.897,12.616c0,1.108,0.314,2.971,0.026,3.964,c0,1.973,0.361,3.519,0.646,5.388c0.136,0.889,0.58,3.786,1.061,4.43c-0.384,0.517-0.097,0.72-0.879,1.088,c-0.374,0.176-1.17,0.207-1.604,0.207c-1.095,0-2.285,0.088-3.337-0.181c-1.009-0.259-1.1-1.024-1.836-1.554,c-1.392-1.571-2.241-3.521-3.13-5.388c-0.905-1.899-2.542-1.796-3.828-3.083c-1.089-1.089-1.152-1.511-2.742-1.865,c-1.205-0.269-3.42-0.665-3.802-2.176c-1.545-0.39-2.357,1.444-3.957,1.295l-12.104,3.394l-2.897,0.44L444.147,339.903,L444.147,339.903z", "name": "Sistan&Baluchestan"},"44": {"path": "M298.791,366.275l0.259,1.684l2.923,5.777c-0.111,1.703,2.554,4.288,4.061,4.663c3.502,0.871,7.316-1.335,8.82,3.316,c1.181,3.653,1.649,7.247,3.44,10.828l0.983,1.684l0,0c1.398-0.75,5.471-0.186,6.751,0.699c2.265,1.568,4.853,6.44,7.656,5.984,c3.818-0.622,6.815-6.372,10.242-6.372c1.981-0.575,2.706,2.196,2.638,3.627c-0.134,2.807,0.531,5.67-0.026,8.342,c-0.628,3.011-2.267,4.882-0.285,7.668c0.323,2.5,8.182,7.464,10.604,7.823c3.551,0.527,6.755-1.85,8.897-4.507,c3.721-4.615,6.998-2.555,7.242,2.824c0.054,1.189,0.255,6.373,1.914,6.373c2.812,0,2.03-0.049,3.362,2.616l1.604,2.202,c0.531,0.729,2.942,2.696,2.095,3.653c-0.294,0.332-2.889,1.835-1.241,2.409c2.485,0.866,2.463,1.836,2.69,4.43l0.595,6.813,c-0.436,4.476-0.598,8.603,4.061,9.507c2.401,0.466,5.925,2.582,7.216,4.637c1.63,2.592,4.522-6.142,8.251-1.58,c1.164,1.423,3.195,2.45,4.164,3.912c0.238,0.359,0.775,2.229,0.258,2.487c-0.434,0.216-1.156-0.971-1.94-0.777,c-0.574,1.762,0.885,3.455-0.647,5.207c-0.686,0.715-0.166,2.013-0.776,3.005c-0.453,0.737-0.605,4.277-0.336,5.026,c0.272,0.758-0.396,2.525-0.853,3.212c-1.156,1.737,1.033,0.425,1.604,0.285c2.062-0.508,3.648,1.834,5.38,0.855,c0.345-0.195,1.341-1.639,1.836-0.829c0.579,0.946,1.098,0.917,2.043,1.269c0.376,0,2.433-0.58,2.095,0.44,c-0.302,0.911-0.533,0.728,0.026,1.502c0.436,0.603,0.291,3.427,1.138,3.368c0.509-0.036,0.857-0.596,1.5-0.596,c0.736,0,1.955,0.986,2.328-0.233c0.426-1.392,1.057-1.31,2.147-0.829c1.018,0.45,1.442,1.692,2.186,2.432l0,0l0.892-1.552,l0.052-2.357c-0.444-2.059,2.334-3.383,2.561-4.792c0.296-1.845-2.866-2.328-2.043-5.518c0.292-1.131,2.236-1.161,2.276-1.865,c0.057-1.007-2.819-2.955-1.552-3.627c1.773-0.94,1.646-5.149,0.207-6.399c-1.602-1.602-3.336-2.097-3.336-4.74,c0-2.382,0.533-3.395-0.414-5.751c-1.126-2.802,0.326-9.481,1.5-12.15c2.842-6.627,1.19-12.819,1.19-19.739l1.061-1.192,c1.869-1.585,3.852-2.612,3.13-5.414c-0.708-2.745-2.871-2.39-4.733-3.938c-1.415-1.176,1.529-1.99,2.173-2.15,c3.104-0.772,11.221-3.97,11.897-7.461c0.065-0.334-0.274-1.425-0.233-1.425c-1.584-2.264-1.914-4.961-1.914-7.745,c0-2.079,2.802-4.102,3.388-6.191c0.747-2.661-0.271-5.193,0.155-7.616c-0.371-1.891,0.511-6.025-1.293-7.046,c-3.368-1.906-3.176-2.604-2.121-6.062c0.569-1.863,1.114-2.97,1.396-4.922l1.19-9.326l3.027-12.227l0,0l-5.458-8.652l-5.845-9.844,l-19.76-9.326l-12.932-6.424l-6.104-2.176l0,0l-7.785-3.471c-3.533,0-7.423-3.889-10.708-5.052,c-3.807-1.348-6.55-3.338-10.785-3.601l-2.509-0.156l0,0c-0.091,0-0.076,0.035-0.129,0.052c0,1.654-3.957,3.954-5.276,3.316,c-2.036,1.021-3.243,2.305-4.785,3.938c-1.384,1.466-3.182,2.129-4.888,3.083c-3.035,1.697-7.507,2.231-10.164,4.378,c-1.909,1.542-1.038,3.974-1.449,6.165c0,3.25,1.695,11.048-3.207,12.072c-3.162,0.66-9.996,1.105-12.88-0.389,c-4.115-0.452-8.991,3.262-12.622,2.565c-4.096-0.786-5.901,1.244-7.889,4.87c-0.388,0.708-1.611,5.959-0.776,6.165,c0.039,0.27,0.901,1.331,1.19,1.373c0.57,1.428,1.958,2.225,1.837,4.119c0.497,1.361-0.012,4.509,1.034,5.207,c1.747,1.167,2.46-0.234,2.328,2.668c-0.186,4.092-2.979,7.959-0.853,11.994c1.458,2.767,0.491,1.793-2.043,2.28,C300.658,365.255,299.682,365.797,298.791,366.275L298.791,366.275z", "name": "Kerman"},"45": {"path": "M356.623,456.756c-0.599-0.279-1.332,0.137-1.332,0.842c0,0.331,0.126,0.688,0.414,0.881c0.301,0.201,0.581,0.104,0.918,0.104,c0.006-0.024,0.346-0.207,0.401-0.246c0.153-0.111,0.362-0.376,0.362-0.57c0-0.158-0.094-0.79-0.298-0.79L356.623,456.756,L356.623,456.756z M262.684,466.29c-0.279,0.065-1.269-0.738-1.513-0.933c-0.111-0.089-0.637-0.588-0.556-0.751,c0.042-0.085,0.56,0.13,0.647,0.155c1.065,0.306,2.339,0.458,3.44,0.674c0.475,0.093,2.612,0.106,2.612,0.712,c-1.138,0.363-2.346,0.389-3.569,0.389L262.684,466.29L262.684,466.29z M274.361,470.772c-0.505,0.118-1.321-0.206-1.177-0.803,c0.066,0,0.251-0.06,0.323-0.078c0.102-0.026,0.22,0.056,0.297,0.091c0.353,0.157,0.985-0.069,1.306,0.155,c0.504,0.351,0.054,0.595-0.414,0.635H274.361L274.361,470.772z M283.556,475.72c-0.556,0.126-1.299-0.635-1.397-1.14,c-0.133-0.689,0.726-0.755,1.151-0.855c1.069-0.251,2.033,0.273,2.587,1.179c0.724,1.183-0.839,0.946-1.565,0.946L283.556,475.72,L283.556,475.72z M314.775,496.6c-0.235-0.126-0.429-0.501-0.285-0.752c0.085-0.147,0.204-0.372,0.401-0.401,c0.224-0.034,0.519,0.387,0.595,0.557c0.138,0.309-0.249,0.513-0.504,0.609L314.775,496.6L314.775,496.6z M300.058,495.395,c-0.274,0-0.576-0.139-0.699-0.389c-0.1-0.203,0.293-0.308,0.427-0.375c0.238-0.119,0.571-0.439,0.828-0.259,c0.086,0.06,0.082,0.288,0.09,0.402c0.004,0.061,0.159,0.36,0.207,0.376c0,0.039,0.013,0.083,0.013,0.13,c-0.069,0.023-0.152,0.105-0.246,0.13c-0.133,0.035-0.282,0.085-0.414,0.103L300.058,495.395L300.058,495.395z M299.553,483.504,c-0.084-0.251-0.349-0.602-0.349-0.894c0-0.72,1.083-0.778,1.28-0.181c0.086,0.261-0.142,0.674-0.142,0.971,c0,0.256,0.008,0.44-0.052,0.673c-0.147,0-0.517-0.1-0.556-0.259L299.553,483.504L299.553,483.504z M329.518,469.169,c-0.052,0.155-3.32,1.446-3.698,1.477c-0.681,0.056-1.802,0.455-2.431,0.699c-0.93,0.361-1.393-0.414-1.966-0.414,c0,0.929,0.439,2.035,0.543,2.953c0.151,1.323,1.397-0.567,1.681-0.544c3.119,0.256,6.097-0.781,9.104-2.642,c1.375-0.851,7.229-3.112,7.733-1.062c-2.508,0.83-2.318,4.07-0.052,0.933c1.353-1.873,3.418-2.591,4.966-3.989,c0.909-0.822,1.946-3.85,2.949-4.015c0.67-0.11,3.512-1.361,1.604-1.995c-4.017-1.335-6.343,2.251-9.958,2.435,c-2.146,0.109-5.885-3.097-4.138,0.803c0.888,1.982-0.965,2.012-1.578,0.414c-0.188-0.49,0.283-0.999-0.104-1.632,c-0.156-0.256-2.774,3.013-1.371,3.756c2.682,1.422-1.397,1.363-2.561,2.383L329.518,469.169L329.518,469.169z M353.455,463.453,l0.556-0.104c0.368-0.185,0.988,0.478,0.88,0.829c-0.148,0.48-0.476,0.564-0.853,0.816c-0.657,0.439-2.32,1.012-1.849-0.428,C352.391,463.946,352.964,463.716,353.455,463.453L353.455,463.453z M436.719,510.339c-2.417,0.739-4.756,1.304-6.719-0.162,l-4.681-3.497c-0.451-0.336-8.991-2.117-9.776-1.995c-0.6,0.118-2.91,0.634-3.259,0.492c-1.109-0.452-1.151-1.323-2.56-1.036,c-1.345,0.274-5.55,2.675-6.828,1.969c-0.449-0.248-2.982-3.426-2.923-3.575c-0.807-0.807-1.606-0.653-2.638-0.026,c-0.671-0.404-1.79,0.649-2.354,0.881c-0.95,0.39-0.57-0.848-0.414-1.684c0-3.6-13.684,0.68-14.07-5.311,c-0.072-1.126-1-3.83-2.224-4.015c-2.075-0.314-0.068-4.794-0.44-5.621c-0.578-1.286-2.357-2.487-2.483-3.911,c0-0.697-0.827-1.663-0.827-1.943c-0.367-0.12-0.982-3.789-0.75-4.482c0.6-1.796,0.19-2.961,0.052-4.793,c-0.277-3.659-2.523-6.086-3.879-9.222c-0.966-1.602,0.902-2.953-1.681-2.953l-0.388-1.943c-0.251-1.257-0.965-0.098-1.552-1.528,c-0.366-0.892-4.58-1.58-5.613-1.58c-1.546,0-3.944,0.359-5.328,0c-0.487-0.126-1.51-0.903-1.888-0.803l-5.509,1.451,c-1.75,0.461-1.731,0.273-2.794,0.881c-0.146,0.591-1.522,1.542-2.147,1.347c-0.761-0.237-1.335,1.09-1.785,1.58,c-1.215,1.324-4.426-0.155-4.991,1.554c-1.801,0-3.017-1.018-4.604,0.57c-1.279,1.279-1.125,2.779-1.681,4.326,c-1.407,3.912-6.394,0.768-8.82,1.71c-0.472,0-2.018,3.057-2.457,1.709c-1.471,0.372-2.391,2.517-3.362,2.591,c-2.224,0.168-3.137,2.022-4.992,3.057c-2.592,1.446-7.227,2.477-8.819-0.414c-1.5-2.724-4.019,0.412-5.897-2.409,c-0.7-1.052-1.598-3.344-2.897-2.772c-2.341,1.032-2.968,0.045-5.121-0.155c-3.448-1.733-2.523,0.337-5.25,0.337,c-1.931,0-3.723-0.281-5.069,0.725c-1.088-1.626-4.126-2.81-5.613-4.145c-2.2-1.975-0.74-4.345-3.647-5.311l-5.302-1.761,c-1.376-0.457-6.265-2.022-7.138-2.979c-1.067-0.848-4.529-1.827-5.044-2.668c-0.769-1.257-2.169-2.588-3.725-2.901,c-0.03-0.123-0.127-0.28-0.268-0.454l0,0l1.225-1.308c0.749-0.072,1.351-0.337,2.147-0.337c1.169,0,4.56,0.378,5.199-0.907l0,0,l1.216,0.7c0.954,1.678,0.618,2.842,2.897,3.342c1.894,0.416,3.954-0.846,5.794-0.389c1.798,0.448,1.712,2.079,3.078,2.72,c1.157,0.543,3.719,0.533,5.018,0.155c3.325,0.039,7.122,2.662,9.518,0.259c0.761-0.763,2.178-0.067,2.742-0.7,c1.055-1.185-1.138-2.462-0.698-3.264c0.238-0.433,1.127-1.347,1.009-1.813c-0.182-0.713-0.761-1.269-0.905-2.021,c-0.319-1.661,3.822-2.643,4.914-2.746l9.078-0.855c1.791,0.895,2.09,1.549,3.879,0.311c1.318-0.912,3.059-1.467,4.63-1.166,c2.733,0.525,5.555,3.802,8.613,2.072c1.453-0.822,3.08-3.739,2.819-5.362c1.148-1.924,1.081-2.868,3.233-3.419,c1.583-0.406,1.438-2.268,2.923-2.409c2.375-0.226,7.938,1.913,6.932-3.342c-0.551-2.876-3.867-3.036-4.371-4.948,c-0.273-1.033,1.545-7.677,2.147-8.549c2.082-5.744-6.209-9.187-9.492-12.719c-1.823-1.961-1.126-1.98,0.879-2.487,c0.253-1.025-0.121-1.679-0.44-2.668l-1.267-3.393l0,0c1.398-0.75,5.471-0.186,6.751,0.699c2.265,1.568,4.853,6.44,7.656,5.984,c3.818-0.622,6.815-6.372,10.242-6.372c1.981-0.575,2.706,2.196,2.638,3.627c-0.134,2.807,0.531,5.67-0.026,8.342,c-0.628,3.011-2.267,4.882-0.285,7.668c0.323,2.5,8.182,7.464,10.604,7.823c3.551,0.527,6.755-1.85,8.897-4.507,c3.721-4.615,6.998-2.555,7.242,2.824c0.054,1.189,0.255,6.373,1.914,6.373c2.812,0,2.03-0.049,3.362,2.616l1.604,2.202,c0.531,0.729,2.942,2.696,2.095,3.653c-0.294,0.332-2.889,1.835-1.241,2.409c2.485,0.866,2.463,1.836,2.69,4.43l0.595,6.813,c-0.436,4.476-0.598,8.603,4.061,9.507c2.401,0.466,5.925,2.582,7.216,4.637c1.63,2.592,4.522-6.142,8.251-1.58,c1.164,1.423,3.195,2.45,4.164,3.912c0.238,0.359,0.775,2.229,0.258,2.487c-0.434,0.216-1.156-0.971-1.94-0.777,c-0.574,1.762,0.885,3.455-0.647,5.207c-0.686,0.715-0.166,2.013-0.776,3.005c-0.453,0.737-0.605,4.277-0.336,5.026,c0.272,0.758-0.396,2.525-0.853,3.212c-1.156,1.737,1.033,0.425,1.604,0.285c2.062-0.508,3.648,1.834,5.38,0.855,c0.345-0.195,1.341-1.639,1.836-0.829c0.579,0.946,1.098,0.917,2.043,1.269c0.376,0,2.433-0.58,2.095,0.44,c-0.302,0.911-0.533,0.728,0.026,1.502c0.436,0.603,0.291,3.427,1.138,3.368c0.509-0.036,0.857-0.596,1.5-0.596,c0.736,0,1.955,0.986,2.328-0.233c0.426-1.392,1.057-1.31,2.147-0.829c1.018,0.45,1.442,1.692,2.186,2.432l0,0,c-0.363,0.678-0.906,1.191-0.815,2.085c0.138,1.35,0.538,0.798,1.448,1.23c0.455,0.217,0.485,0.901,0.737,1.296,c1.051,1.641,3.309,2.18,4.41,3.938c0.435,0.491,0.905,0.898,1.034,1.556c0.245,1.255-0.29,1.526,0.957,2.202,c0.517,0.281,1.246,0.447,1.19,1.166c-0.094,1.21,0.734,1.207,1.112,2.254C436.043,507.597,436.719,509.512,436.719,510.339,L436.719,510.339z", "name": "Hormozgan"},"46": {"path": "M474.094,222.605l1.452,8.083l-0.828,2.694l0.103,3.212l0.595,1.632l3.828,1.969l5.949,0.026l0.957,0.751l-0.388,0.466l-1.345-0.207,l-0.75,0.725l0.233,2.305l-1.242,0.829l-5.354,5.751l-1.631,3.627l1.526,4.119l1.862,7.72l0.828,4.015l2.612,5.855l0.879,6.684l0,0,l1.138,3.73l-1.267,4.249l-0.75,1.114l0.414,1.684l-0.336,1.166l-0.155,7.564l0,0l1.19,8.316l7.427,1.159l0,0,c0,1.14,0.876,2.604,0.876,3.763c0,1.028-0.49,1.696-1.164,2.409c-0.523,0.555-0.605,1.567-1.112,1.969,c-1.498,4.51-2.897,7.789-2.897,12.616c0,1.108,0.314,2.971,0.026,3.964c0,1.973,0.361,3.519,0.646,5.388,c0.136,0.889,0.58,3.786,1.061,4.43c-0.384,0.517-0.097,0.72-0.879,1.088c-0.374,0.176-1.17,0.207-1.604,0.207,c-1.095,0-2.285,0.088-3.337-0.181c-1.009-0.259-1.1-1.024-1.836-1.554c-1.392-1.571-2.241-3.521-3.13-5.388,c-0.905-1.899-2.542-1.796-3.828-3.083c-1.089-1.089-1.152-1.511-2.742-1.865c-1.205-0.269-3.42-0.665-3.802-2.176,c-1.545-0.39-2.357,1.444-3.957,1.295l-12.104,3.394l-2.897,0.44l-4.216,1.347l0,0l-5.458-8.652l-5.845-9.844l-19.76-9.326,l-12.932-6.424l-6.104-2.176l0,0l-7.785-3.471c-3.533,0-7.423-3.889-10.708-5.052c-3.807-1.348-6.55-3.338-10.785-3.601,l-2.509-0.156l0,0c-0.065-0.46-2.742-3.322-3.026-3.782c-0.378-0.612-0.691-1.287-1.035-1.917c-0.68-1.245-1.572-2.052-2.69-2.953,c-2.147-1.732-4.138-6.948-4.138-9.637c-2.25-2.825-3.331-5.856-6.104-8.238c-2.268-1.949-5.01-5.311-6.621-7.875l-3.776-6.01,c-1.589-2.528-4.561-4.692-6.466-7.202l0,0c0-8.078-1.04-15.524-1.81-23.522l0,0c1.191-0.64,5.518-0.57,7.035-0.57,c3.249,0,3.689-3.329,4.397-6.217c0.883-3.602,3.574-7.314,5.225-10.621l3.983-5.596l0,0c5.691,0,10.888,2.374,17.277,1.347,c5.401-0.868,4.617-7.748,9.725-9.067c6.543-1.689,14.046-0.157,14.949,7.72c0.271,2.362-0.23,7.063,2.379,8.134,c2.921,1.2,2.47,4.386,1.19,6.632c-1.142,1.048-0.904,4.496,0.362,5.44c3.082,2.298,6.276-0.777,9.466-0.777,c1.2,0,2.271,0.77,2.949,1.71c0.444,0.615,2.561,2.072,2.535,2.176c2.966,1.111,9.807-0.762,13.423-0.311,c1.708-0.158,3.346,0.518,5.483,0.052c1.669-0.364,3.564-0.829,5.276-0.829c2.427,0,1.829,2.266,4.63,1.684l3.362-0.699,c1.19-0.248,1.962-1.252,3.181-1.373c2.703,0,3.841,1.219,6.311,1.865c4.416,1.154,8.082,3.714,12.337,4.974,C465.769,226.836,469.925,222.279,474.094,222.605L474.094,222.605z", "name": "South Khorasan"}},"height": 500,"width": 550});
--- /dev/null
+jQuery.fn.vectorMap('addMap', 'iraq', {"width": 612, "height": 400, "paths": {"1": {"path": "M125.762 71.4976l-0.7938 0.2467c-0.4965,0.1542 -0.8363,-0.0117 -1.0584,0.5666 -0.1883,0.4906 -0.1481,0.7334 -0.4745,1.1972 -0.3726,0.5293 -1.0559,0.7039 -0.9854,1.4805 0.0839,0.9234 0.3575,1.277 -0.4653,1.9465 -0.1845,0.3443 -0.4324,1.6622 -0.7756,1.7546 -0.2969,0.08 -1.0177,-0.6974 -1.177,-0.9413 -0.2237,-0.3423 -0.8904,-0.3658 -1.2592,-0.2924 -0.5173,0.1031 0.1802,0.5088 -0.0912,0.8042 -0.291,0.3169 0.2352,0.4444 0.146,0.8042 -0.0571,0.23 -0.4987,0.3691 -0.5201,0.5575 -0.0197,0.1743 0.1648,0.4201 0.1095,0.5209 -0.2754,0.5025 0.1518,0.6887 -0.0274,1.1971 -0.1255,0.3564 -0.2291,0.4782 -0.3102,0.8865 -0.0869,0.438 0.227,0.288 0.2737,0.4935 0.0558,0.245 0.0365,0.8223 0.0365,1.1058 0,0.4783 -0.6858,0.6319 -0.9854,0.9321 -0.107,0.2398 -0.357,0.4721 -0.511,0.6946 -0.1863,0.2694 -0.6754,0.2879 -0.9763,0.53 -0.3483,0.2804 -0.4053,1.2259 -0.7117,1.6358 -0.3265,0.437 -0.3284,1.1217 -0.3284,1.6358 0.926,0.1876 1.2041,-0.1586 1.8157,0.7037 0.4652,0.6561 1.388,0.7405 0.958,1.709 -0.0054,0.1713 0.0059,0.0488 -0.0091,0.1096 -0.1854,0.0927 -0.886,1.5501 -1.031,1.8095 -0.3903,0.6981 -0.0347,1.0128 0.3193,1.5444 0.1069,0.1607 -0.0582,2.2243 -0.2098,2.3761 -0.3034,0.3041 -0.8158,-0.0796 -1.0858,0.2467 -0.2167,0.262 -0.0935,0.7108 -0.2281,1.0784 -0.0758,0.222 -0.2187,0.3645 -0.365,0.5392 -0.1889,0.2254 -0.1638,0.6285 -0.1095,0.8956 0.0549,0.2705 0.2976,0.5049 0.4745,0.7036l0.265 0.393 0 0 -1.36 1.2794 0 0 -1.2135 -1.5901c-0.2411,-0.2632 -0.5015,-0.6908 -0.7299,-0.987 -0.2033,-0.2637 -0.5139,-0.4731 -0.7391,-0.7219 -0.5148,-0.5688 -0.6338,-0.7526 -0.6113,-1.5262 0.0143,-0.4901 -0.1625,-0.606 -0.3924,-0.9961 -0.3375,-0.5724 -0.5831,-0.6104 -1.1765,-0.7951l-4.5986 -0.0365 -1.2229 -0.9139 -5.4928 0 -7.7738 -9.7236 0.0182 -6.1046 -2.6642 3.0706 -5.8395 -4.0028 -0.4927 -7.9506 0 0 0 -3.6555 10.3833 -0.3473 -3.23 -5.0628c0.1264,-0.642 -0.2558,-1.6619 -0.2558,-2.376 0,-1.3906 0.9994,-2.1322 1.9343,-3.0341 0.4386,-0.4232 0.9549,-0.9725 1.5238,-1.1972 0.6425,-0.2539 1.5209,-0.026 2.2354,-0.265 0.594,-0.1945 1.1876,-0.4951 1.7519,-0.7768 0.4584,-0.2289 0.9803,-0.3038 1.4416,-0.5117l0.6569 -0.0822 0 0c0.0481,0.6366 0.0298,0.9099 -0.2098,1.5169 -0.1298,0.3291 -0.2778,0.6375 -0.3649,0.9779 -0.0307,0.1198 -0.2079,0.4587 -0.1095,0.5574 0.2255,0.2265 0.7802,0.2831 1.0858,0.4296 0.341,0.1634 0.2554,0.4876 0.2554,0.8224l0 0 -2.9559 1.0693 2.5183 6.1594c0.5629,0.3712 1.97,0.6815 2.6457,0.8134 1.3177,0.2574 2.4226,1.0733 3.6315,1.6084 1.2722,0.5632 1.6817,1.3643 2.6095,2.2938 0.6821,0.6357 1.1333,1.6724 2.2081,1.6724 0.2645,0 0.9659,-0.1084 1.1223,0.0822 0.971,1.1839 2.6094,1.9096 3.6041,3.0706 0.5995,0.6996 0.6633,0.3511 1.0857,-0.4204 0.4688,-0.856 0.6123,-2.1303 1.1406,-2.8512 0.3185,-0.2095 0.7264,-1.2365 0.8942,-1.6084 0.3772,-0.8361 0.8828,-1.4374 0.9763,-2.3761 0.0566,-0.569 -0.151,-1.5042 0.7025,-1.6449l0 0c0.0891,0.1455 0.2149,0.2746 0.292,0.4295 0.0314,0.0257 0.0411,0.0388 0.0639,0.0731 0.4656,0.2999 0.522,0.732 1.1861,0.8407 0.8036,0.1316 1.7691,0.0731 2.5913,0.0731 0.4239,0 0.8071,0.0259 1.2227,0.0823 0.5187,0.0703 0.7939,0.3667 1.2226,0.594 0.1945,0.2877 0.5056,0.5286 0.6479,0.8499 0.1827,0.4122 0.3179,0.8694 0.1642,1.316 -0.1378,0.4001 -0.3102,1.0892 -0.3102,1.5079l0.0182 0.5026 0 0z","name": "salah ad-Din"},"2": {"path": "M118.664 65.2285c0.0891,0.1455 0.2149,0.2746 0.292,0.4295 0.0314,0.0257 0.0411,0.0388 0.0639,0.0731 0.4656,0.2999 0.522,0.732 1.1861,0.8407 0.8036,0.1316 1.7691,0.0731 2.5913,0.0731 0.4239,0 0.8071,0.0259 1.2227,0.0823 0.5187,0.0703 0.7939,0.3667 1.2226,0.594 0.1945,0.2877 0.5056,0.5286 0.6479,0.8499 0.1827,0.4122 0.3179,0.8694 0.1642,1.316 -0.1378,0.4001 -0.3102,1.0892 -0.3102,1.5079l0.0182 0.5026 0 0c0.4194,0.21 0.8462,0.4882 1.3322,0.3198 1.0067,-0.3487 0.9951,-1.352 1.7792,-0.0457 0.6421,1.0696 1.0296,-0.5466 1.4872,-0.0182l0.7756 0.8956c0.1519,0.1753 -0.0726,0.5719 -0.1277,0.7859 -0.1691,0.6557 0.6843,0.1998 0.6843,0.7676 0,0.5248 0.0119,0.8572 0.3467,1.2886 -0.0616,0.4954 0.0698,0.7447 0.1278,1.2063 0.1201,0.06 0.2926,0.3005 0.4379,0.0914 0.2616,-0.3767 0.6902,-0.9738 1.0493,-1.2612 0.3051,-0.2443 0.6831,0.0512 0.9033,-0.1462 0.3613,-0.3237 1.0164,-0.4532 1.25,-0.8407 0.0921,-0.1529 0.0347,-0.4728 0.0822,-0.658 0.0884,-0.3442 0.1795,-0.5717 0.3193,-0.9047 0.2786,-0.661 0.7421,-0.9607 0.8759,-1.6907 0.2094,-1.1429 1.3068,-1.5315 1.8523,-2.4857 0.288,-0.504 -0.6205,-0.247 -0.6205,-0.6946 0,-0.1245 0.4295,-0.405 0.5292,-0.53 0.1672,-0.2095 0.1612,-0.4405 0.3467,-0.6397 0.2326,-0.0976 0.4824,-0.4292 0.584,-0.658 0.1154,-0.2597 0.0078,-0.8485 0.3558,-0.8682 0.3243,-0.0184 0.6927,-0.3107 1.022,-0.3107 0.153,0.6189 -0.1773,1.4864 -0.1095,2.175 0.0818,0.8314 0.3526,2.4684 0.6387,3.2534l0 0c0.4609,0 0.471,-0.101 0.9124,0.1462 0.4563,0.2554 0.4359,-0.6399 0.5292,-0.8864 0.0921,-0.2435 0.4079,-0.269 0.365,-0.5758 -0.0781,-0.5585 -0.6369,-1.1267 -0.1369,-1.6267 0.1561,-0.1561 1.1401,-0.0605 0.5748,-0.3838l0.1313 -0.6504c0.0091,-0.045 0.009,-0.0244 0.0426,-0.0041 0.0697,0.0427 0.1656,0.0533 0.328,0.0148 0.2052,-0.0487 0.5073,0.3621 0.6387,0.4843 0.2186,0.2032 0.4174,-0.1722 0.5474,-0.0274 0.1805,0.2011 0.1979,0.1387 0.4289,0.2102 0.058,0.018 0.7433,0.6325 0.6022,0.064 -0.2573,-1.0363 0.579,-0.2711 0.9945,-0.5209 0.2928,-0.176 0.7064,-0.0974 0.8668,-0.4204 0.0479,-0.0965 0.1037,-0.1837 0.1721,-0.2671l-0.3546 -0.3086c-0.3223,-0.324 -0.2697,-0.8511 0.0457,-1.1424 0.3578,-0.3306 0.629,-0.3076 0.2646,-0.8042 -0.2101,-0.2865 -0.1628,-0.3219 -0.5384,-0.2833 -0.4385,0.045 -0.8354,-0.0079 -0.5201,-0.5666 0.2304,-0.4085 0.7088,-0.4593 0.5931,-1.0418 -0.1118,-0.5634 -1.168,-1.3031 -1.688,-1.4713l-1.3504 -2.5771 0.0365 -0.7128 0.0183 -0.0092c0.0174,-0.0706 0.3134,-0.0438 0.3741,-0.0639 0,-0.0218 0.0056,-0.0308 -0.0183,-0.0366 0,-0.1142 -0.2554,-0.2106 -0.2554,-0.4295 0,-0.2436 -0.061,-0.3609 -0.2099,-0.5483 -0.5176,-0.6519 0.4593,-0.1214 0.6661,-0.1097 0.2859,0.0161 -0.0399,-0.4351 -0.1004,-0.53 -0.0654,-0.1028 -0.0547,-0.3008 -0.0547,-0.4204 0,-0.2506 0.1273,-0.269 -0.1734,-0.4113 -0.3088,-0.146 -0.1117,-0.2415 -0.0456,-0.5209 0.1115,-0.3357 0.4653,-1.0083 0.8668,-0.8773 0.4453,0.1454 0.8749,0.461 1.3869,0.2193 0.4665,-0.2201 0.2355,0.0823 0.6022,0.0823 0.203,-0.6137 0.5894,-0.8168 1.1861,-0.6763 0.5338,0.1256 0.8041,-0.2926 1.1497,-0.6397 0.3361,-0.3374 0.2691,-0.2536 0.7482,-0.3747 0.0307,-0.1244 -0.0752,-0.512 0.1095,-0.5574 0.019,-0.0774 0.0401,-0.6599 -0.0092,-0.6763 -0.021,-0.0849 -0.627,0.1268 -0.739,-0.329 -0.1969,-0.0486 -0.3889,0.5882 -0.9033,0.4661 -0.402,-0.0955 -0.5445,0.661 -0.9033,0.1645 -0.2779,-0.3847 -0.2954,0.0974 -0.5475,0.0822 -0.2007,-0.012 -0.438,-0.6489 -0.5292,-0.8133 -0.1317,-0.2375 -1.0654,-0.4202 -1.3048,-0.3747 -0.4018,0.0763 -0.5161,0.3975 -0.9945,0.3838 -0.3952,0 -0.8851,-0.111 -0.8851,0.2833 0,0.2099 -0.8772,-0.2193 -1.031,-0.2193 -0.3662,0 -0.3422,0.4025 -0.5383,0.5118 -0.1426,0.0796 -0.2185,-0.0979 -0.2829,-0.0731 -0.1202,0.0462 -0.2853,0.1693 -0.4197,0.1279 -0.1616,-0.0499 -0.3614,-0.3203 -0.438,-0.329 -0.1481,-0.0167 -0.2965,0.2219 -0.4653,0.265 -0.0982,0.0251 -0.2681,0.1855 -0.292,0.1828 -0.3148,-0.0359 -0.7615,-1.3924 -0.9489,-1.645 -0.2367,-0.3193 -0.6089,-0.4227 -0.6478,-0.8316 -0.0144,-0.1514 -0.8085,-0.8193 -0.9672,-0.8681 -0.4934,-0.152 -0.7933,-0.4701 -1.0949,-0.8682l-0.8942 -0.0731c-0.1526,0.0941 -0.3792,-0.0183 -0.5566,-0.0183 -0.1017,0 -0.6906,0.1556 -0.7755,0.2193 -0.3531,0.2651 -0.6056,0.6965 -0.9763,0.2102 -0.185,-0.2427 -0.2912,0.1579 -0.438,0 -0.0457,-0.0492 -0.0026,-0.2623 -0.1095,-0.201 -0.1145,0.0656 0.0509,-0.4037 -0.0912,-0.4478 -0.0033,-0.001 -0.0268,-0.0052 -0.0905,-0.0194 0.224,-0.3076 0.7558,-1.0303 0.8295,-1.4154 0.106,-0.5538 -0.1815,-0.5619 -0.5748,-0.7585 -0.5415,-0.2707 -0.366,-1.397 -0.2646,-1.8552 0.0361,-0.1636 -0.3472,-0.9064 -0.4745,-1.0144 -0.1718,-0.1456 -0.724,-0.0023 -0.666,-0.3198 0.0609,-0.3339 0.4562,-0.2019 0.4562,-0.5758 0,-0.3353 -0.7065,-0.3424 -0.6205,-0.6762 0.0274,-0.334 0.3641,-0.4424 0.2373,-0.7951 -0.1054,-0.2931 -0.0822,-0.5032 -0.0822,-0.8225 0,-0.267 -0.6273,-0.982 -0.8212,-0.9413 -0.2971,0.0625 -1.0653,0.0787 -1.2226,0.3199 -0.1218,0.1869 -0.3159,0.3653 -0.5475,0.2285 -0.682,-0.4027 -0.6748,-0.8591 -1.1131,-1.3708 -0.1788,-0.2089 -0.0358,-0.9249 -0.2373,-0.9961 -0.2042,-0.0721 -0.7413,-0.3477 -0.8602,-0.6481l0 0c-1.1616,0.436 -1.9794,-0.0912 -2.9628,0.9953 -0.7789,0.8605 -1.424,-0.7289 -1.9526,-0.859 -0.4388,-0.1079 -1.0156,0.383 -1.2409,0.7219 -0.4545,0.6839 -0.5372,0.9662 -1.4143,1.0419l0.0365 2.8512c0.3053,0.1032 0.9106,-0.1333 1.0949,-0.0822 0.3703,0.1026 0.2653,0.9333 0.9581,0.9595 0.4381,0.0165 0.4014,-0.039 0.4014,0.4752 0,0.572 0.156,0.4801 -0.4653,0.5027 -0.3098,0.0113 -1.7648,0.0559 -1.8066,0.2741 -0.073,0.3804 -0.0365,0.8952 -0.0365,1.2886 0,0.0735 -0.0596,0.383 0.0183,0.4021 0.0449,0.1817 1.4749,0.9603 1.7336,1.3525l1.5237 1.8278c0.4139,0.4967 0.777,0.7865 1.3048,1.124 0.236,0.1508 0.6573,0.4017 0.8121,0.6306 0.0853,0.126 0.6534,0.8875 0.2189,0.8042 -0.1651,-0.0317 -0.3698,-0.2709 -0.5201,-0.2102 -0.2811,0.1135 -0.0141,0.5113 -0.3467,0.594 -0.3423,0.0852 -0.3583,-0.4295 -0.5474,-0.4295 -0.2988,0 -0.346,0.818 -0.6935,0.3381 -0.3523,-0.4863 -0.7399,-0.466 -1.2409,-0.1828l0 0 0.2646 1.0693c0,0.8834 -0.3178,1.9544 0.5292,2.5405 0.8368,0.5789 -0.1678,1.6073 -0.2737,2.3304 -0.0791,0.5407 0.4422,1.4213 0.6478,1.9283 0.1181,0.5889 0.847,1.0918 0.8121,1.6723 -0.0242,0.4017 -0.8779,0.9319 -1.1679,1.2063 -1.1278,1.0669 -1.1195,1.9558 -1.6971,3.2534 -0.2333,0.524 -0.9889,1.4597 -1.5877,1.5536l-1.323 0.5118 0 0z","name": "As-Sulaymaniyyah"},"3": {"path": "M98.4807 57.36l-2.9559 1.0693 2.5183 6.1594c0.5629,0.3712 1.97,0.6815 2.6457,0.8134 1.3177,0.2574 2.4226,1.0733 3.6315,1.6084 1.2722,0.5632 1.6817,1.3643 2.6095,2.2938 0.6821,0.6357 1.1333,1.6724 2.2081,1.6724 0.2645,0 0.9659,-0.1084 1.1223,0.0822 0.971,1.1839 2.6094,1.9096 3.6041,3.0706 0.5995,0.6996 0.6633,0.3511 1.0857,-0.4204 0.4688,-0.856 0.6123,-2.1303 1.1406,-2.8512 0.3185,-0.2095 0.7264,-1.2365 0.8942,-1.6084 0.3772,-0.8361 0.8828,-1.4374 0.9763,-2.3761 0.0566,-0.569 -0.151,-1.5042 0.7025,-1.6449l0 0 1.323 -0.5118c0.5988,-0.0939 1.3544,-1.0296 1.5877,-1.5536 0.5776,-1.2976 0.5693,-2.1865 1.6971,-3.2534 0.29,-0.2744 1.1437,-0.8046 1.1679,-1.2063 0.0349,-0.5805 -0.694,-1.0834 -0.8121,-1.6723 -0.2056,-0.507 -0.7269,-1.3876 -0.6478,-1.9283 0.1059,-0.7231 1.1105,-1.7515 0.2737,-2.3304 -0.847,-0.5861 -0.5292,-1.6571 -0.5292,-2.5405l-0.2646 -1.0693 0 0 -0.5931 -0.1827c-0.5802,-0.0366 -0.7761,-0.1021 -1.2135,-0.4295 -0.2482,-0.1859 -1.165,0.5556 -1.3321,0.7676 -0.1952,0.2478 -0.4652,0.1994 -0.6935,0.0274 -0.3801,-0.2866 -0.7414,-0.1 -1.1405,0.0274 -0.4111,0.1311 -1.1616,0.745 -1.5511,0.6306 -0.4876,-0.1433 -0.2854,0.0573 -0.6479,0.1828 -0.1714,0.0594 -0.7391,-0.2309 -0.8941,-0.3199 -0.4519,-0.2594 -1.0061,-0.0874 -1.5055,-0.1188 -0.4306,0 -1.2071,-0.0681 -1.5785,0.1645 -0.3052,0.1912 -0.6936,0.9014 -0.9125,0.9687 -0.2416,0.0744 -1.5394,-1.0043 -1.7883,-1.1606 -2.2637,-1.4211 -3.2193,2.0587 -3.5311,3.5458 -0.1849,0.8519 -0.3207,1.8333 -0.6843,2.6228 -0.1991,0.4321 -0.1548,1.6922 -0.5019,1.8186 -0.3144,0.1146 -0.6452,-0.1109 -0.8668,-0.3198 -0.5607,-0.5288 -0.3863,-0.552 -1.1953,-0.4204 -0.424,0.069 -0.2483,1.5297 -0.3558,1.9648 -0.2983,0 -0.8636,-1.4348 -1.0949,-1.4348 -0.0533,0.217 -0.3285,0.2712 -0.3285,0.6489 0,0.2307 0.0368,0.454 -0.2555,0.2284l-1.3139 -1.0144 0 0z","name": "Kirkuk"},"4": {"path": "M110.769 17.3229l0.2482 0.8322c-0.0439,0.3169 0.5918,1.2374 0.3741,1.4348 -0.2189,0.1986 0.146,0.8703 0.146,1.1789l-0.0183 0.0091c-0.0163,0.0495 -0.4073,-0.084 -0.5657,0 -0.3536,0.1874 -0.508,0.6237 -0.7299,0.9687 -0.4494,0.699 -1.2827,1.0751 -1.8705,1.6358l-1.5329 1.4622 0 0 -0.6204 -0.1553c-0.4888,-0.0924 -1.0703,-0.0335 -1.5603,0.0274 -0.571,0.0709 -1.2403,0.3107 -1.7975,0.3107 -0.3225,0 -0.4052,0.013 -0.4744,0.3838 -0.0833,0.4459 -0.1469,0.4491 0.2646,0.5757 0.3036,0.0935 0.6286,0.2745 0.7664,0.5666 0.281,0.5952 0.1722,1.4393 -0.4106,1.8095 -0.7092,0.2364 -1.0382,0.4674 -1.8248,0.5483 -0.6729,0.0691 -1.0284,-0.1572 -1.5603,-0.5026 -0.7466,-0.4847 -1.957,-1.7977 -2.8832,-1.7089 -1.0578,0.1015 -1.1298,0.879 -1.8432,1.2977 -0.1709,0.8567 -0.9048,1.5747 -1.5602,2.111 -0.6086,0.4979 -1.2585,0.6762 -1.98,0.9504 -0.46,0.1747 -1.0898,0.3732 -1.5785,0.2102 -0.5986,-0.3426 -0.8011,0.9246 -1.2226,-0.0822 -0.2864,-0.684 -1.2004,0.3133 -1.0311,-0.5392 0.1414,-0.7123 -0.2662,-0.2259 -0.593,-0.6397 -0.595,-0.7536 -0.5413,-0.953 -1.3961,-0.4478 -0.8437,0.4985 -1.1166,-0.376 -1.5693,-0.923 -0.2839,-0.3432 -1.0109,-0.1836 -0.8303,-0.6123 0.1134,-0.3416 -0.1574,-0.2774 -0.2555,-0.4844 -0.0998,-0.2108 0.1814,-0.3577 0.1551,-0.5757 -0.0156,-0.1299 -0.173,-0.164 -0.2281,-0.265 -0.0747,-0.1371 0.0342,-0.4459 0.1004,-0.5666 0.2112,-0.3854 -0.3329,-0.1451 -0.4836,-0.1371 -0.2832,0.0152 -0.7457,-0.4402 -0.9216,-0.6397 -0.3271,-0.3707 -0.5153,-0.8171 -0.6478,-1.2886l-0.0932 -0.9408 0 0 -0.0963 -0.6981 -0.1021 -0.5178 0 0 0.8382 -0.0083c0.422,-0.0765 0.5797,-0.4048 0.9954,-0.4578 0.3477,-0.0444 0.6277,-0.0091 0.9854,-0.1005 0.2501,-0.0638 0.9939,-0.0799 1.0767,-0.3107 0.1051,-0.2926 0.2931,-0.5407 0.5201,-0.7677 0.1035,-0.1035 0.2812,-0.2822 0.2463,-0.4295 -0.049,-0.2072 0.4454,-0.4296 0.584,-0.6306 0.1378,-0.2 0.0456,-0.4663 0.0456,-0.7036 0.0727,-0.0183 0.4512,0.0026 0.4653,-0.0549 0.0183,-0.0045 0.1206,-0.385 0.1551,-0.4295 -0.0858,-0.7758 0.0759,-0.0755 0.5384,-0.5026 0.0574,-0.0531 0.2824,-0.1556 0.3011,-0.2102 0.0182,-0.0529 -0.0619,-0.336 0,-0.3564 0.069,-0.2809 0.8244,-0.5594 0.885,-0.8682l0.0092 -0.0091c0.1611,0 0.3677,0.1188 0.5657,0.1188 0.0112,0.0224 0.0377,0.0314 0.0638,0.0365l0.0092 0.0092c0.2046,0.8278 0.1759,0.2437 0.6387,0.53 0.3299,0.2042 1.5249,0.9159 1.8887,0.7402 0.0813,-0.0393 0.0535,-0.2283 0.219,-0.2833 0.5603,-0.1861 0.6743,0.007 0.8941,-0.6671 0.2809,0 0.3775,0.1209 0.5657,-0.0914 0.2348,-0.2651 0.6341,-0.1326 0.9307,-0.265 0.2579,-0.0285 1.4776,0.2516 1.5603,0.4387 0.1175,0.266 0.5909,-0.0661 0.7208,0.1462 0.12,0.1963 0.1809,0.2974 0.4197,0.3564 0.0801,0.3239 0.5324,0.7808 0.8942,0.5392 0.3463,-0.2311 0.2458,-0.5761 0.9124,-0.4113 0.1173,0.5974 1.2145,1.0254 1.7519,1.2795 0.4255,0.2013 0.3337,0.5273 0.9033,0.5026 0.2148,-0.0093 0.954,-0.564 1.0219,-0.0823 0.1649,0.0829 0.2412,0.1789 0.438,0.2376l0.2281 -0.0182c0.2151,0.5047 0.0633,0.5386 0.6843,0.3655 0.2245,-0.0626 0.6383,-0.351 0.8485,-0.3107 0.5086,0.0975 1.3296,-0.0349 1.7702,0.1462 0.2321,0.0954 0.2517,0.58 0.5109,0.6946 0.3138,0.1386 0.3275,-0.1914 0.4562,-0.4204 0.1997,-0.3555 0.7419,0.1081 1.1041,-0.1097 0.3641,-0.2191 0.4182,-0.5988 0.7299,-0.8225 0,-0.2265 0.1036,-0.4707 0.0821,-0.7768 -0.0061,-0.0879 0.477,-0.076 0.6205,-0.2101 0.2697,-0.2518 0.4677,-0.7002 0.885,-0.5392 0.0886,0.0342 0.1759,0.0769 0.2628,0.1182l0 0z","name": "Duhok"},"5": {"path": "M110.769 17.3229l0.2482 0.8322c-0.0439,0.3169 0.5918,1.2374 0.3741,1.4348 -0.2189,0.1986 0.146,0.8703 0.146,1.1789l-0.0183 0.0091c-0.0163,0.0495 -0.4073,-0.084 -0.5657,0 -0.3536,0.1874 -0.508,0.6237 -0.7299,0.9687 -0.4494,0.699 -1.2827,1.0751 -1.8705,1.6358l-1.5329 1.4622 0 0 1.688 0.6671c0.4293,0.1695 0.8173,0.5258 1.2774,0.7403 0.4178,0.1949 0.0949,0.8416 0.4471,0.9047 0.3606,0.0647 0.2925,0.2765 0.3376,0.6032 0.0805,0.5832 0.3793,0.1181 0.6661,0.201 0.2934,0.0849 0.4676,0.3269 0.7299,0.4661 0.2829,0.15 0.6586,-0.0119 0.9398,0.1005 0.3232,0.1291 0.9194,0.37 1.1405,0.6397 0.197,0.2401 0.2567,0.5681 0.3376,0.859 0.0718,0.2578 0.9431,0.4487 0.657,0.8865 -0.34,0.5205 -0.9183,0.7987 -1.2592,1.3525 -0.117,0.3642 -1.2105,1.2612 -1.5785,1.2612 -0.1812,0 -0.2714,-0.1935 -0.52,-0.1554 -0.3488,0.0534 -0.6528,0.3347 -0.949,0.064 -0.6049,-0.5531 -0.7431,-0.1854 -1.2226,0.3564 -0.1834,0.2071 -0.5019,0.4474 -0.6205,0.6854 -0.2246,0.4505 0.039,0.292 -0.4379,0.4661 -0.408,0.0697 -0.1012,0.594 -0.6661,0.594 -1.2974,0 -0.0839,0.9905 -0.9216,1.2702 -0.1485,0.0495 -0.5093,-0.1135 -0.447,0.1463 0.1874,0.7803 -0.9089,2.0426 -1.3869,2.5679 -0.745,0.8189 -1.9003,1.1634 -2.5457,2.1019 -0.1388,0.4062 -0.2177,0.9023 -0.7026,0.987 -0.631,0.1103 -0.8484,3.2448 -2.2719,3.7012 -0.98,0.3143 -0.6542,0.6004 -0.3924,1.4896 0.182,0.618 -0.5168,1.3684 -0.7573,1.91 0.0116,0.2929 -0.2638,0.5994 -0.3741,0.8773 -0.3282,0.8262 -0.1643,1.5777 -0.1643,2.4675l0 0c0.0481,0.6366 0.0298,0.9099 -0.2098,1.5169 -0.1298,0.3291 -0.2778,0.6375 -0.3649,0.9779 -0.0307,0.1198 -0.2079,0.4587 -0.1095,0.5574 0.2255,0.2265 0.7802,0.2831 1.0858,0.4296 0.341,0.1634 0.2554,0.4876 0.2554,0.8224l0 0 1.3139 1.0144c0.2923,0.2256 0.2555,0.0023 0.2555,-0.2284 0,-0.3777 0.2752,-0.4319 0.3285,-0.6489 0.2313,0 0.7966,1.4348 1.0949,1.4348 0.1075,-0.4351 -0.0682,-1.8958 0.3558,-1.9648 0.809,-0.1316 0.6346,-0.1084 1.1953,0.4204 0.2216,0.2089 0.5524,0.4344 0.8668,0.3198 0.3471,-0.1264 0.3028,-1.3865 0.5019,-1.8186 0.3636,-0.7895 0.4994,-1.7709 0.6843,-2.6228 0.3118,-1.4871 1.2674,-4.9669 3.5311,-3.5458 0.2489,0.1563 1.5467,1.235 1.7883,1.1606 0.2189,-0.0673 0.6073,-0.7775 0.9125,-0.9687 0.3714,-0.2326 1.1479,-0.1645 1.5785,-0.1645 0.4994,0.0314 1.0536,-0.1406 1.5055,0.1188 0.155,0.089 0.7227,0.3793 0.8941,0.3199 0.3625,-0.1255 0.1603,-0.3261 0.6479,-0.1828 0.3895,0.1144 1.14,-0.4995 1.5511,-0.6306 0.3991,-0.1274 0.7604,-0.314 1.1405,-0.0274 0.2283,0.172 0.4983,0.2204 0.6935,-0.0274 0.1671,-0.212 1.0839,-0.9535 1.3321,-0.7676 0.4374,0.3274 0.6333,0.3929 1.2135,0.4295l0.5931 0.1827 0 0c0.501,-0.2832 0.8886,-0.3035 1.2409,0.1828 0.3475,0.4799 0.3947,-0.3381 0.6935,-0.3381 0.1891,0 0.2051,0.5147 0.5474,0.4295 0.3326,-0.0827 0.0656,-0.4805 0.3467,-0.594 0.1503,-0.0607 0.355,0.1785 0.5201,0.2102 0.4345,0.0833 -0.1336,-0.6782 -0.2189,-0.8042 -0.1548,-0.2289 -0.5761,-0.4798 -0.8121,-0.6306 -0.5278,-0.3375 -0.8909,-0.6273 -1.3048,-1.124l-1.5237 -1.8278c-0.2587,-0.3922 -1.6887,-1.1708 -1.7336,-1.3525 -0.0779,-0.0191 -0.0183,-0.3286 -0.0183,-0.4021 0,-0.3934 -0.0365,-0.9082 0.0365,-1.2886 0.0418,-0.2182 1.4968,-0.2628 1.8066,-0.2741 0.6213,-0.0226 0.4653,0.0693 0.4653,-0.5027 0,-0.5142 0.0367,-0.4587 -0.4014,-0.4752 -0.6928,-0.0262 -0.5878,-0.8569 -0.9581,-0.9595 -0.1843,-0.0511 -0.7896,0.1854 -1.0949,0.0822l-0.0365 -2.8512c0.8771,-0.0757 0.9598,-0.358 1.4143,-1.0419 0.2253,-0.3389 0.8021,-0.8298 1.2409,-0.7219 0.5286,0.1301 1.1737,1.7195 1.9526,0.859 0.9834,-1.0865 1.8012,-0.5593 2.9628,-0.9953l0 0c-0.0396,-0.1002 -0.0329,-0.2032 0.0482,-0.3024 0.1432,-0.1751 0.4521,-0.0783 0.5931,-0.2193 0.1372,-0.1372 -0.1262,-0.5451 -0.1916,-0.6763 -0.2292,-0.4559 0.6843,-0.319 0.6843,-0.6397 0,-0.3181 0.0035,-0.7726 -0.0456,-1.0783 -0.1303,-0.8111 -0.3804,-1.9476 -1.4417,-1.709 -0.6301,0.1417 -0.1259,-1.26 -1.0037,-0.6854 -0.4095,0.2681 -0.5324,-0.1702 -0.8394,-0.0914 -0.6133,0.1576 -0.4731,0.0726 -0.6022,-0.4569 -0.1422,-0.5828 0.4614,-0.6236 0.4106,-0.8225 -0.1213,-0.4753 0.6414,-0.3213 0.7299,-0.795 0.0248,-0.4194 0.1016,-0.848 -0.0729,-1.2429 -0.1273,-0.2879 -0.3285,-0.3656 -0.3285,-0.722 0,-0.3104 0.4315,-1.1662 0.1551,-1.4439 -0.245,-0.246 -0.7005,0.0209 -0.8394,-0.466 -0.0257,-0.0043 -0.0163,-0.0072 -0.0365,-0.0275 -0.3345,0.084 -0.6365,0.4828 -0.8121,-0.0913 -0.0635,-0.2079 -0.3832,-0.5894 -0.3832,-0.6946 0,-0.2931 -0.1378,-0.3181 -0.1643,-0.5026 -0.0908,-0.0519 -0.2535,-0.2373 -0.2918,-0.329l0.5291 -0.53 0 0c-0.1674,-0.1221 -0.2615,-0.2387 -0.438,-0.329 -0.1665,-0.0853 -0.4532,-0.0211 -0.5839,-0.1645 -0.3663,-0.4016 -1.1536,0.1685 -1.3139,-0.2468 -0.1129,-0.2924 -0.6849,0.0247 -0.8395,0.1188 -0.0961,0.0586 -0.238,0.3386 -0.3193,0.3564 -0.1004,0.0219 -0.2496,-0.0008 -0.3559,0.0092 -0.1413,0.1939 -0.2172,0.7777 -0.4197,0.8407 -0.3808,0.1186 -0.2677,0.0064 -0.4288,0.3382 -0.0708,0.1457 -0.3135,0.2443 -0.4562,0.3198 -0.1932,0.1021 -1.8217,1.187 -1.9344,0.7311 -0.0652,0 -0.5495,0.289 -0.5931,0.3381 -0.032,0.0362 0.1886,0.3856 0.1552,0.5209 -0.3206,0.046 -0.7221,1.0255 -0.8121,1.2977 -0.1943,0 -0.4783,-0.3254 -0.7664,-0.3472 -0.4748,-0.0359 -0.3421,-0.236 -0.3924,-0.594 -0.0351,-0.2494 -0.1159,-0.2778 -0.2555,-0.4753 -0.2001,-0.2829 -0.0869,-0.4079 -0.1825,-0.7128 -0.657,-0.376 -0.3879,-0.4214 -0.593,-0.9595 -0.1464,-0.3844 0.2997,-0.6526 0.4836,-0.9687 0.0307,-0.0529 0.0712,-0.2783 0.1277,-0.2925 0.0212,-0.0859 0.9763,0.1431 0.9763,-0.3381 0,-0.4598 -0.2737,-0.6126 -0.2737,-0.9778 0,-0.1511 0.1148,-0.6805 0.073,-0.6946l0 -0.0183c-0.2541,-0.0357 -0.507,-0.3651 -0.5566,-0.6031 -0.0751,-0.3609 -0.4321,-0.1229 -0.6843,-0.2285 -0.179,-0.075 -0.1741,-0.2582 -0.438,-0.3198 -0.3883,-0.0908 -0.4823,-0.1662 -0.7208,-0.4661 -0.1233,-0.1549 -0.3719,0.0285 -0.5657,0.0457 -0.2851,0.1628 -0.5438,0.0503 -0.8048,-0.0737l0 0z","name": "Arbil"},"6": {"path": "M80.7412 23.127l0.0932 0.9408c0.1325,0.4715 0.3207,0.9179 0.6478,1.2886 0.1759,0.1995 0.6384,0.6549 0.9216,0.6397 0.1507,-0.008 0.6948,-0.2483 0.4836,0.1371 -0.0662,0.1207 -0.1751,0.4295 -0.1004,0.5666 0.0551,0.101 0.2125,0.1351 0.2281,0.265 0.0263,0.218 -0.2549,0.3649 -0.1551,0.5757 0.0981,0.207 0.3689,0.1428 0.2555,0.4844 -0.1806,0.4287 0.5464,0.2691 0.8303,0.6123 0.4527,0.547 0.7256,1.4215 1.5693,0.923 0.8548,-0.5052 0.8011,-0.3058 1.3961,0.4478 0.3268,0.4138 0.7344,-0.0726 0.593,0.6397 -0.1693,0.8525 0.7447,-0.1448 1.0311,0.5392 0.4215,1.0068 0.624,-0.2604 1.2226,0.0822 0.4887,0.163 1.1185,-0.0355 1.5785,-0.2102 0.7215,-0.2742 1.3714,-0.4525 1.98,-0.9504 0.6554,-0.5363 1.3893,-1.2543 1.5602,-2.111 0.7134,-0.4187 0.7854,-1.1962 1.8432,-1.2977 0.9262,-0.0888 2.1366,1.2242 2.8832,1.7089 0.5319,0.3454 0.8874,0.5717 1.5603,0.5026 0.7866,-0.0809 1.1156,-0.3119 1.8248,-0.5483 0.5828,-0.3702 0.6916,-1.2143 0.4106,-1.8095 -0.1378,-0.2921 -0.4628,-0.4731 -0.7664,-0.5666 -0.4115,-0.1266 -0.3479,-0.1298 -0.2646,-0.5757 0.0692,-0.3708 0.1519,-0.3838 0.4744,-0.3838 0.5572,0 1.2265,-0.2398 1.7975,-0.3107 0.49,-0.0609 1.0715,-0.1198 1.5603,-0.0274l0.6204 0.1553 0 0 1.688 0.6671c0.4293,0.1695 0.8173,0.5258 1.2774,0.7403 0.4178,0.1949 0.0949,0.8416 0.4471,0.9047 0.3606,0.0647 0.2925,0.2765 0.3376,0.6032 0.0805,0.5832 0.3793,0.1181 0.6661,0.201 0.2934,0.0849 0.4676,0.3269 0.7299,0.4661 0.2829,0.15 0.6586,-0.0119 0.9398,0.1005 0.3232,0.1291 0.9194,0.37 1.1405,0.6397 0.197,0.2401 0.2567,0.5681 0.3376,0.859 0.0718,0.2578 0.9431,0.4487 0.657,0.8865 -0.34,0.5205 -0.9183,0.7987 -1.2592,1.3525 -0.117,0.3642 -1.2105,1.2612 -1.5785,1.2612 -0.1812,0 -0.2714,-0.1935 -0.52,-0.1554 -0.3488,0.0534 -0.6528,0.3347 -0.949,0.064 -0.6049,-0.5531 -0.7431,-0.1854 -1.2226,0.3564 -0.1834,0.2071 -0.5019,0.4474 -0.6205,0.6854 -0.2246,0.4505 0.039,0.292 -0.4379,0.4661 -0.408,0.0697 -0.1012,0.594 -0.6661,0.594 -1.2974,0 -0.0839,0.9905 -0.9216,1.2702 -0.1485,0.0495 -0.5093,-0.1135 -0.447,0.1463 0.1874,0.7803 -0.9089,2.0426 -1.3869,2.5679 -0.745,0.8189 -1.9003,1.1634 -2.5457,2.1019 -0.1388,0.4062 -0.2177,0.9023 -0.7026,0.987 -0.631,0.1103 -0.8484,3.2448 -2.2719,3.7012 -0.98,0.3143 -0.6542,0.6004 -0.3924,1.4896 0.182,0.618 -0.5168,1.3684 -0.7573,1.91 0.0116,0.2929 -0.2638,0.5994 -0.3741,0.8773 -0.3282,0.8262 -0.1643,1.5777 -0.1643,2.4675l0 0 -0.6569 0.0822c-0.4613,0.2079 -0.9832,0.2828 -1.4416,0.5117 -0.5643,0.2817 -1.1579,0.5823 -1.7519,0.7768 -0.7145,0.239 -1.5929,0.0111 -2.2354,0.265 -0.5689,0.2247 -1.0852,0.774 -1.5238,1.1972 -0.9349,0.9019 -1.9343,1.6435 -1.9343,3.0341 0,0.7141 0.3822,1.734 0.2558,2.376l3.23 5.0628 -10.3833 0.3473 0 3.6555 0 0 -8.8875 0.1005 -3.8322 -1.2154c-0.489,-0.1966 -1.9201,-0.5846 -2.2263,-1.0144 -0.8084,-0.2015 -1.7486,0.0048 -2.6004,-0.1005 -0.0507,-0.0405 -0.1489,-0.0666 -0.1734,-0.128 -0.3988,-0.2498 -0.7649,-0.8062 -1.1679,-1.1149 -0.4167,-0.3193 -1.0228,-0.5255 -1.5055,-0.722l-0.8248 -0.3194 0 0 -0.0232 -0.6401 0.1095 -2.4492 0.8212 -2.3943 0.0364 -2.4858 2.0986 -2.9061 -0.292 -4.88 -1.989 -4.7887 0.4744 -6.3605 2.1533 -3.8017 7.5366 -1.4074 9.6511 -10.6095 0 0z","name": "Ninawa"},"7": {"path": "M119.704 109.423c-0.1021,0.0465 -0.1288,0.0457 -0.2281,0.0457 -0.1046,0.3208 -0.062,0.7747 -0.0821,1.1515 -0.0354,0.6605 -0.3288,0.5849 -0.876,0.5849 -0.0456,0.1379 -0.0023,0.5309 -0.0091,0.7128 -0.0346,0.9124 0.0278,0.453 0.657,0.7676 0.3562,0.178 0.3523,0.5763 0.6752,0.7951 0.6084,0.4125 0.9191,0.6173 1.5237,0.0822 0.1681,-0.1487 0.7055,-0.2651 0.9124,-0.137 0.2907,0.1798 0.2545,0.5651 0.4745,0.7585 0.1997,0.6364 1.0663,1.2836 1.6789,1.4713 0.5308,0.1627 1.0409,0.1529 1.5602,0.2742 0.273,0.0638 1.0139,1.4819 1.3595,1.782 0.2739,0.2379 0.4954,0.4626 0.8486,0.5849 0.1887,0.0654 0.6054,0.1868 0.7391,0.3198l0 0.064c-0.3609,0.2868 -0.4928,0.5657 -0.4928,1.051 0,1.0645 0.6811,0.6397 1.3869,0.6397 0.1406,0.2323 -0.0397,0.6885 -0.2098,0.859 -0.3213,0.3218 -1.3593,0.9094 -1.1132,1.4713 0.1421,0.3247 0.6073,0.1645 0.8851,0.1645 0.3543,0 0.5188,0.1525 0.666,0.4478l0.0365 0.4844 0 0c1.1687,0.3745 2.3277,0.3633 3.3669,1.1058 0.3779,0.2699 0.3773,0.5811 0.5931,0.9321 0.2127,0.3457 0.8032,0.549 1.1314,0.7951 0.6109,0.5526 0.9423,0.6958 1.2318,1.4987 0.1461,0.4051 0.0945,0.7384 0.4014,1.0875 0.5505,0.6259 1.063,0.9521 1.7336,1.4256 0.7132,0.5035 0.6399,1.1955 0.8486,1.9283l0.6569 1.0692 0 0 0.5201 -0.2559c0.0619,-0.0774 0.1765,-0.1113 0.2646,-0.1553 0.0325,-0.0029 0.0352,-0.0039 0.0639,-0.0183l6.7246 -0.064 3.8687 -0.1553 0 0c0.1463,-0.4036 0.7646,-0.4297 0.8485,-0.8682 0.0749,-0.3911 -0.5313,-0.7362 -0.6478,-1.0418 -0.0658,-0.1724 -0.1586,-0.691 0.0183,-0.8133 0.1308,-0.0905 0.3675,-0.1065 0.5201,-0.1828l1.9708 -0.8408c0.4949,-0.2111 0.3723,-0.5439 0.3011,-1.0509 -0.0178,-0.0071 -0.0203,-0.0096 -0.0274,-0.0274 -0.3888,-0.0562 -1.1135,-0.681 -1.1679,-1.0693 -0.1092,-0.7799 -0.3217,-1.0664 -0.8029,-1.6723 -0.7535,-0.9489 0.7915,-2.0716 0.9124,-3.1346 0,-0.3565 0.6205,0.1243 0.6205,-0.6946 0,-0.4907 -0.1271,-0.8222 -0.0274,-1.3433 0.216,-1.1293 0.1839,-2.4035 0.7391,-3.4545 0.1635,-0.3097 0.5807,-1.1587 0.4562,-1.4804 -0.2924,-0.7566 -0.403,-0.4984 0.146,-1.1678l0 0c-0.3264,-0.314 -0.6847,-0.5884 -1.1315,-0.6691 -0.4802,-0.0868 -0.7129,-0.4341 -1.1314,-0.6214 -0.9036,-0.4044 -2.0705,-1.0104 -3.1205,-0.8042 -0.6963,0.1368 -1.3732,0.4723 -2.0803,0.1827 -0.23,-0.0941 -0.6047,-0.4935 -0.8212,-0.4935 0,-0.1379 -0.0559,-0.7128 0.1186,-0.7128 0.4778,0 0.463,-0.2122 0.6205,-0.6123 0.1089,-0.0817 0.2134,-0.1753 0.3376,-0.2376 0.0086,-0.0697 0.0821,-0.1075 0.0821,-0.201l-0.0091 -0.0092c-0.3323,0 -0.7613,0.0913 -0.9672,-0.2193 -0.2276,-0.3435 -1.3132,-0.266 -1.2318,-0.4661 0.4408,-1.0822 1.2405,-0.0437 1.9526,-0.6488 0.2139,-0.1817 1.2912,-1.4193 1.0037,-1.5079 -0.4365,-0.1344 -0.4941,0.1461 -0.3559,-0.4204 0.0267,-0.1094 0.2732,-0.7864 0.1643,-0.8224 -0.019,-0.0776 -0.8664,-0.5773 -0.9946,-0.658 -0.5305,-0.3343 -0.2303,-0.5299 -0.4653,-0.9139 -0.1153,-0.1886 -0.4644,-0.2125 -0.5748,-0.4569 -0.1734,-0.3841 0.0509,-0.5879 -0.2555,-0.987 -0.253,-0.5571 -0.4439,-0.3979 -0.3924,-1.0784 0.0148,-0.1961 -0.2506,-0.6457 -0.447,-0.6945l0 0 -0.4106 0.3564c0.0289,0.4645 -1.0202,0.6901 -1.3504,0.7676 -1.4279,0.3353 -0.7203,1.2438 -1.5602,2.0837 -0.6136,0.6136 -1.0921,-0.2861 -1.6241,0.9595 -0.4373,1.0237 -0.7904,2.2674 -1.5967,3.0341 -1.3222,1.2571 -1.1361,0.3565 -2.5001,-0.1463 -0.7856,-0.1773 -1.3246,-0.4686 -2.2263,-0.4934 -0.6142,-0.0169 -1.3021,0.0202 -1.8795,-0.2194 -0.6727,-0.279 -1.7349,-0.9655 -2.2628,-1.4713 -0.7444,-0.7131 -1.7039,-0.5706 -2.6004,-0.7951 -0.5243,0.1016 -1.5382,0.1871 -1.9435,0.5118 -0.5902,0.4727 -0.7994,1.9265 -1.2043,2.6228 -0.4553,0.7832 -1.1455,1.4693 -1.8705,2.0014 -0.1599,0.3085 -0.5845,0.5664 -0.9036,0.6671 -0.974,0.3077 -0.4692,-0.8039 -0.7847,-1.2703 -0.2013,-0.2974 -0.4228,-0.189 -0.6296,0.0183 -0.2493,0.2501 -0.4736,-0.1176 -0.6113,-0.3016l0 0z","name": "Wasit"},"8": {"path": "M125.762 71.4976c0.4194,0.21 0.8462,0.4882 1.3322,0.3198 1.0067,-0.3487 0.9951,-1.352 1.7792,-0.0457 0.6421,1.0696 1.0296,-0.5466 1.4872,-0.0182l0.7756 0.8956c0.1519,0.1753 -0.0726,0.5719 -0.1277,0.7859 -0.1691,0.6557 0.6843,0.1998 0.6843,0.7676 0,0.5248 0.0119,0.8572 0.3467,1.2886 -0.0616,0.4954 0.0698,0.7447 0.1278,1.2063 0.1201,0.06 0.2926,0.3005 0.4379,0.0914 0.2616,-0.3767 0.6902,-0.9738 1.0493,-1.2612 0.3051,-0.2443 0.6831,0.0512 0.9033,-0.1462 0.3613,-0.3237 1.0164,-0.4532 1.25,-0.8407 0.0921,-0.1529 0.0347,-0.4728 0.0822,-0.658 0.0884,-0.3442 0.1795,-0.5717 0.3193,-0.9047 0.2786,-0.661 0.7421,-0.9607 0.8759,-1.6907 0.2094,-1.1429 1.3068,-1.5315 1.8523,-2.4857 0.288,-0.504 -0.6205,-0.247 -0.6205,-0.6946 0,-0.1245 0.4295,-0.405 0.5292,-0.53 0.1672,-0.2095 0.1612,-0.4405 0.3467,-0.6397 0.2326,-0.0976 0.4824,-0.4292 0.584,-0.658 0.1154,-0.2597 0.0078,-0.8485 0.3558,-0.8682 0.3243,-0.0184 0.6927,-0.3107 1.022,-0.3107 0.153,0.6189 -0.1773,1.4864 -0.1095,2.175 0.0818,0.8314 0.3526,2.4684 0.6387,3.2534l0 0c-0.1938,0 0.2259,0.9565 -0.1369,1.2337 -0.1414,0.1081 -0.4407,0.3258 -0.5931,0.3838 -0.4647,0.1771 -0.2157,-0.0194 -0.4197,-0.2924l-0.6934 0.6671c-0.1048,0.1008 0.2965,0.5639 0.0638,0.6397 0,0.1373 0.1278,0.1285 0.1278,0.2925 -0.5217,0.0643 -0.2958,0.339 -0.5019,0.6488 -0.3489,0.5241 -0.2937,0.4099 0.3011,0.7585 0.2656,0.2568 0.1187,0.2843 0.1187,0.5666 0,0.2436 0.1637,0.1715 0.2828,0.3382 0.0794,0.1113 0.2372,0.7535 0.2372,0.8864 0,0.3944 0.0394,0.3954 0.1734,0.7494 0.0852,0.2254 -0.0525,0.4214 -0.0091,0.6488 0.0132,0.0692 0.1741,0.3303 0.0821,0.393 -0.4616,0.3149 -0.532,-0.2644 -0.8394,-0.3381 -0.1235,-0.0296 -0.3043,0.0832 -0.4198,0.1279 -0.1811,0.0702 -0.2751,-0.1786 -0.5839,-0.064 -0.9151,0.3394 -1.1547,-0.091 -1.3413,-0.8499 -0.0653,0 -0.3227,-0.0136 -0.3376,-0.0731 -0.1355,0 -0.3596,0.6734 -0.4562,0.8316 -0.0731,0.1195 0.1901,0.3008 0.2099,0.4753 0.0376,0.3315 -0.0427,0.5459 -0.0639,0.8681 -0.1668,0.4498 -0.3473,0.6441 -0.8212,0.3839 -0.0189,-0.0104 -0.6442,0.3261 -0.7026,0.4021 -0.0337,0.0437 0.3103,0.6642 0.3103,0.8499 0,0.2642 -0.0666,0.5252 0.1095,0.7402 0.1524,0.1862 0.3969,0.9701 0.5748,0.9595 0.1335,-0.008 0.2252,-0.242 0.3832,-0.1279 0.2585,0.1869 0.3647,-0.176 0.6113,0.1279 0.739,0.9105 0.723,1.6495 0.146,2.7325 -0.0099,0.3941 0.1719,1.1562 0.5201,1.3891 0,0.1017 -0.7436,0.3911 -0.8942,0.4843 -0.2645,0.1635 -0.4601,0.3541 -0.6387,0.6123 -0.1759,0.2542 -0.2521,0.262 -0.4471,0.457 -0.1807,0.1807 0.024,0.2852 0.0365,0.4386 0.008,0.0978 -0.1743,0.9494 -0.2281,0.9961 -0.2128,0.1844 -0.4924,-0.0523 -0.5474,0.3108 -0.0777,0.5129 -0.6075,0.204 -0.1734,0.9138 0.1068,0.1746 1.2078,0.0457 1.4599,0.0457l0.0091 0.0092c0.1318,0.5334 0.0925,0.7088 0.6387,1.0509 0.0939,0.2736 0.3497,0.5153 0.4197,0.8133 0.1017,0.4331 0.2763,0.9195 0.6205,1.2246 0.1488,0.132 0.6993,0.4344 0.7482,0.5758 0.0611,0.177 -0.0365,0.4492 -0.0365,0.6488 0,0.9118 1.1062,1.727 1.7883,2.1842 0.3232,0.1273 0.5824,0.004 0.4745,0.4386 -0.0445,0.1796 -0.2646,0.5463 -0.2646,0.6671 0.2268,-0.1695 0.6749,-0.1341 0.8759,-0.3472 0.3687,-0.3911 0.9482,-0.4314 1.5055,-0.4752 0.0756,-0.0059 0.6723,-0.1522 0.5566,0.0913 -0.2694,0.5671 -0.084,0.5277 0.3194,0.9322 0.6285,0.6304 -0.03,0.9744 -0.5566,1.3982 -0.4361,0.3511 -1.0689,0.6231 -0.146,0.658 0.5348,0.0202 0.661,0.2991 1.0128,-0.1371 0.124,-0.1539 0.84,-0.3854 0.958,-0.201 0.1212,0.1892 -0.1599,0.3511 0.1552,0.4295l0 0 -0.4106 0.3564c0.0289,0.4645 -1.0202,0.6901 -1.3504,0.7676 -1.4279,0.3353 -0.7203,1.2438 -1.5602,2.0837 -0.6136,0.6136 -1.0921,-0.2861 -1.6241,0.9595 -0.4373,1.0237 -0.7904,2.2674 -1.5967,3.0341 -1.3222,1.2571 -1.1361,0.3565 -2.5001,-0.1463 -0.7856,-0.1773 -1.3246,-0.4686 -2.2263,-0.4934 -0.6142,-0.0169 -1.3021,0.0202 -1.8795,-0.2194 -0.6727,-0.279 -1.7349,-0.9655 -2.2628,-1.4713 -0.7444,-0.7131 -1.7039,-0.5706 -2.6004,-0.7951 -0.5243,0.1016 -1.5382,0.1871 -1.9435,0.5118 -0.5902,0.4727 -0.7994,1.9265 -1.2043,2.6228 -0.4553,0.7832 -1.1455,1.4693 -1.8705,2.0014 -0.1599,0.3085 -0.5845,0.5664 -0.9036,0.6671 -0.974,0.3077 -0.4692,-0.8039 -0.7847,-1.2703 -0.2013,-0.2974 -0.4228,-0.189 -0.6296,0.0183 -0.2493,0.2501 -0.4736,-0.1176 -0.6113,-0.3016l0 0 -0.1639 -0.7402c-0.0527,-0.2835 -0.1183,-0.5525 -0.2555,-0.8134 -0.1152,-0.2192 -0.5331,-0.319 -0.7573,-0.3929 -0.7697,-0.254 -0.1988,-0.9858 -0.4379,-1.4805l0 0 0.5474 0.0092c0.3982,0.069 1.1275,-0.0321 1.3778,-0.4021 0.295,-0.4359 0.0793,-0.6022 0.1003,-1.0876 0.012,-0.2763 0.0839,-0.5793 0.1186,-0.859 0.0498,-0.4019 0.0694,-0.8613 0,-1.2611 -0.1173,-0.676 -0.2635,-0.7852 -0.9124,-0.8225l-3.6496 -0.2102 0 0 -0.265 -0.393c-0.1769,-0.1987 -0.4196,-0.4331 -0.4745,-0.7036 -0.0543,-0.2671 -0.0794,-0.6702 0.1095,-0.8956 0.1463,-0.1747 0.2892,-0.3172 0.365,-0.5392 0.1346,-0.3676 0.0114,-0.8164 0.2281,-1.0784 0.27,-0.3263 0.7824,0.0574 1.0858,-0.2467 0.1516,-0.1518 0.3167,-2.2154 0.2098,-2.3761 -0.354,-0.5316 -0.7096,-0.8463 -0.3193,-1.5444 0.145,-0.2594 0.8456,-1.7168 1.031,-1.8095 0.015,-0.0608 0.0037,0.0617 0.0091,-0.1096 0.43,-0.9685 -0.4928,-1.0529 -0.958,-1.709 -0.6116,-0.8623 -0.8897,-0.5161 -1.8157,-0.7037 0,-0.5141 0.0019,-1.1988 0.3284,-1.6358 0.3064,-0.4099 0.3634,-1.3554 0.7117,-1.6358 0.3009,-0.2421 0.79,-0.2606 0.9763,-0.53 0.154,-0.2225 0.404,-0.4548 0.511,-0.6946 0.2996,-0.3002 0.9854,-0.4538 0.9854,-0.9321 0,-0.2835 0.0193,-0.8608 -0.0365,-1.1058 -0.0467,-0.2055 -0.3606,-0.0555 -0.2737,-0.4935 0.0811,-0.4083 0.1847,-0.5301 0.3102,-0.8865 0.1792,-0.5084 -0.248,-0.6946 0.0274,-1.1971 0.0553,-0.1008 -0.1292,-0.3466 -0.1095,-0.5209 0.0214,-0.1884 0.463,-0.3275 0.5201,-0.5575 0.0892,-0.3598 -0.437,-0.4873 -0.146,-0.8042 0.2714,-0.2954 -0.4261,-0.7011 0.0912,-0.8042 0.3688,-0.0734 1.0355,-0.0499 1.2592,0.2924 0.1593,0.2439 0.8801,1.0213 1.177,0.9413 0.3432,-0.0924 0.5911,-1.4103 0.7756,-1.7546 0.8228,-0.6695 0.5492,-1.0231 0.4653,-1.9465 -0.0705,-0.7766 0.6128,-0.9512 0.9854,-1.4805 0.3264,-0.4638 0.2862,-0.7066 0.4745,-1.1972 0.2221,-0.5783 0.5619,-0.4124 1.0584,-0.5666l0.7938 -0.2467 0 0z","name": "Diyala"},"9": {"path": "M114.311 102.642l1.36 -1.2794 0 0 3.6496 0.2102c0.6489,0.0373 0.7951,0.1465 0.9124,0.8225 0.0694,0.3998 0.0498,0.8592 0,1.2611 -0.0347,0.2797 -0.1066,0.5827 -0.1186,0.859 -0.021,0.4854 0.1947,0.6517 -0.1003,1.0876 -0.2503,0.37 -0.9796,0.4711 -1.3778,0.4021l-0.5474 -0.0092 0 0c-0.9394,0 -1.6685,0.2674 -2.4544,0.7859 -0.8912,0.5878 -1.7469,0.2366 -2.5913,-0.1553 -0.4529,-0.2101 -1.0879,-0.3972 -1.4781,-0.6946l2.7459 -3.2899z","name": "Baghdad"},"10": {"path": "M120.197 129.62l-1.7154 1.3708 -0.0182 2.3212c0.2746,0.5073 0.5778,1.3094 0.9672,1.6998 0.5555,0.5571 -1.169,1.0384 -1.0493,1.6633 0.0896,0.4683 0.2977,0.7427 0.1186,1.252 -0.0941,0.2675 -0.2704,0.4119 -0.3741,0.6488 -0.104,0.2377 0.085,0.6387 0.1642,0.8773 0.0758,0.5948 0.7654,1.8889 -0.3011,1.7638 -0.3615,-0.0424 -0.8869,0.4643 -0.6752,0.7677l0.9307 1.3342c0.3664,0.5251 0.4526,1.4549 1.1132,1.5993l3.4672 0.7585 0.7938 0.2467 0 0c-0.5083,0.4581 -1.1559,2.0604 -1.3504,2.7234 -0.2833,0.9653 -0.8244,1.9461 -1.5602,2.641 -0.5736,0.5416 -0.5167,1.5622 -0.9125,2.1568 -0.1591,1.0684 -0.2911,2.4585 -1.0675,3.2807 -0.7532,0.7978 -1.1497,1.9279 -1.9343,2.7142 -0.4859,0.4868 -1.1121,1.4077 -1.6789,1.7364 -1.5533,1.4576 -2.2474,3.7499 -3.0293,5.6568 -0.1477,0.3602 -0.3721,1.4362 -0.6295,1.6633 -0.119,0.9057 -0.68,1.8693 -0.8669,2.7873 -0.1418,0.697 -0.6659,1.6353 -1.1679,2.1384 -0.3262,0.3268 -0.4973,0.7629 -0.812,1.0967 -0.4483,0.4753 -0.6892,1.2186 -1.1314,1.7089l-0.5267 1.0497 0 0 -16.4446 -13.825 0 0 0.0552 -7.6588c0.03,-1.2041 0.803,-3.4239 1.7424,-4.2221 0.4244,-0.3605 0.7751,-0.8011 1.2227,-1.1514 0.4613,-0.3612 0.2431,-1.6802 0.3376,-2.2116 0.1101,-0.6266 0.0471,-1.0951 0.2919,-1.7089 0.3055,-0.7656 1.4143,-1.5634 1.4143,-2.3761 0,-1.201 -0.0783,-2.3028 0.7482,-3.2808 0.481,-0.271 1.0487,-1.5784 1.4142,-2.0653 0.6345,-0.845 1.2589,-2.026 2.0074,-2.7416 1.0954,-1.0474 2.1026,-1.1738 3.5037,-1.709 0.172,-0.0638 0.4123,-0.2855 0.5383,-0.4203 0.2464,-0.2638 0.5768,-0.4809 0.8486,-0.722 0.1316,-0.1166 0.2489,-0.2489 0.3832,-0.3564 0.1934,-0.155 0.4,-0.2356 0.6113,-0.3564l0.8851 -0.9779 -1.7701 -1.8825 0 0 9.1612 -3.8109 0 0 0.8481 3.6921 1.1405 -0.064 1.5147 -1.8186 2.792 2.0105 0 0z","name": "An-Najaf"},"11": {"path": "M120.197 129.62c0.3288,0.3294 1.8679,0.7805 2.3358,0.8134 0.5129,0.036 1.2796,0.1303 1.7701,0.0091l0.0092 -1.3982c0.0023,-0.3457 -0.1664,-0.5412 -0.2008,-0.786 -0.0596,-0.4231 1.0691,-0.5391 1.3869,-0.5391 0.8068,0 1.0724,-0.7293 1.5511,-1.3069 0.2745,-0.296 0.5498,-0.1888 0.8577,-0.4021 0.1747,-0.1211 0.2991,-0.4605 0.4197,-0.6488 0.4098,-0.64 1.2179,-1.055 1.7701,-1.5627l0 0c1.1687,0.3745 2.3277,0.3633 3.3669,1.1058 0.3779,0.2699 0.3773,0.5811 0.5931,0.9321 0.2127,0.3457 0.8032,0.549 1.1314,0.7951 0.6109,0.5526 0.9423,0.6958 1.2318,1.4987 0.1461,0.4051 0.0945,0.7384 0.4014,1.0875 0.5505,0.6259 1.063,0.9521 1.7336,1.4256 0.7132,0.5035 0.6399,1.1955 0.8486,1.9283l0.6569 1.0692 0 0c-0.4131,0.6908 0.2929,1.4865 0.5019,2.0837 0.3245,0.9268 0.5383,1.7511 0.5383,2.769 0,0.1596 -0.0091,0.3169 -0.0091,0.4752 0,0.4189 0.0736,0.8154 0.1642,1.2246l0.1643 0.6397 0 0c-0.5437,0 -1.1341,-0.219 -1.6424,-0.3838l-2.2537 -0.7311c-0.4715,-0.1528 -1.0791,-0.4669 -1.5603,-0.4935 -0.8573,-0.1497 -3.8153,-1.6256 -4.3249,-0.6032 -0.173,0.347 -0.4011,0.7995 -0.7938,0.9139 -0.5572,0.1622 -1.3214,-0.0141 -1.9161,0.0365 -0.8296,0.0705 -1.3162,0.0185 -0.3193,0.6489 0.3186,0.2015 1.5713,1.3011 1.1223,1.6815 -0.1937,0.3396 -0.2555,0.7748 -0.4836,1.0784 -0.2606,0.3471 -0.576,0.3025 -0.8121,0.7676 -0.4239,0.8353 -0.4899,2.0216 -0.9854,2.8421 -0.2285,0.3782 -0.7117,1.2178 -0.7117,1.6541 -0.1119,0.0848 -0.6642,-0.1112 -0.8029,-0.1462 -0.1902,-0.7526 -1.5884,-2.026 -2.3176,-2.175l0 0 -0.7938 -0.2467 -3.4672 -0.7585c-0.6606,-0.1444 -0.7468,-1.0742 -1.1132,-1.5993l-0.9307 -1.3342c-0.2117,-0.3034 0.3137,-0.8101 0.6752,-0.7677 1.0665,0.1251 0.3769,-1.169 0.3011,-1.7638 -0.0792,-0.2386 -0.2682,-0.6396 -0.1642,-0.8773 0.1037,-0.2369 0.28,-0.3813 0.3741,-0.6488 0.1791,-0.5093 -0.029,-0.7837 -0.1186,-1.252 -0.1197,-0.6249 1.6048,-1.1062 1.0493,-1.6633 -0.3894,-0.3904 -0.6926,-1.1925 -0.9672,-1.6998l0.0182 -2.3212 1.7154 -1.3708 0 0z","name": "Al-Qadisyyah"},"12": {"path": "M111.565 105.932c0.3902,0.2974 1.0252,0.4845 1.4781,0.6946 0.8444,0.3919 1.7001,0.7431 2.5913,0.1553 0.7859,-0.5185 1.515,-0.7859 2.4544,-0.7859l0 0c0.2391,0.4947 -0.3318,1.2265 0.4379,1.4805 0.2242,0.0739 0.6421,0.1737 0.7573,0.3929 0.1372,0.2609 0.2028,0.5299 0.2555,0.8134l0.1639 0.7402 0 0c-0.1021,0.0465 -0.1288,0.0457 -0.2281,0.0457 -0.1046,0.3208 -0.062,0.7747 -0.0821,1.1515 -0.0354,0.6605 -0.3288,0.5849 -0.876,0.5849 -0.0456,0.1379 -0.0023,0.5309 -0.0091,0.7128 -0.0346,0.9124 0.0278,0.453 0.657,0.7676 0.3562,0.178 0.3523,0.5763 0.6752,0.7951 0.6084,0.4125 0.9191,0.6173 1.5237,0.0822 0.1681,-0.1487 0.7055,-0.2651 0.9124,-0.137 0.2907,0.1798 0.2545,0.5651 0.4745,0.7585 0.1997,0.6364 1.0663,1.2836 1.6789,1.4713 0.5308,0.1627 1.0409,0.1529 1.5602,0.2742 0.273,0.0638 1.0139,1.4819 1.3595,1.782 0.2739,0.2379 0.4954,0.4626 0.8486,0.5849 0.1887,0.0654 0.6054,0.1868 0.7391,0.3198l0 0.064c-0.3609,0.2868 -0.4928,0.5657 -0.4928,1.051 0,1.0645 0.6811,0.6397 1.3869,0.6397 0.1406,0.2323 -0.0397,0.6885 -0.2098,0.859 -0.3213,0.3218 -1.3593,0.9094 -1.1132,1.4713 0.1421,0.3247 0.6073,0.1645 0.8851,0.1645 0.3543,0 0.5188,0.1525 0.666,0.4478l0.0365 0.4844 0 0c-0.5522,0.5077 -1.3603,0.9227 -1.7701,1.5627 -0.1206,0.1883 -0.245,0.5277 -0.4197,0.6488 -0.3079,0.2133 -0.5832,0.1061 -0.8577,0.4021 -0.4787,0.5776 -0.7443,1.3069 -1.5511,1.3069 -0.3178,0 -1.4465,0.116 -1.3869,0.5391 0.0344,0.2448 0.2031,0.4403 0.2008,0.786l-0.0092 1.3982c-0.4905,0.1212 -1.2572,0.0269 -1.7701,-0.0091 -0.4679,-0.0329 -2.007,-0.484 -2.3358,-0.8134l0 0 -2.792 -2.0105 -1.5147 1.8186 -1.1405 0.064 -0.8481 -3.6921 0 0 -0.9489 -2.3212c-0.3973,-0.4702 -0.6506,-0.9636 -1.1223,-1.3982 -0.1975,-0.1821 -0.9129,-1.0048 -0.8942,-1.252 0.0419,-0.5538 0.9786,-1.7558 1.3687,-2.1659 0.4262,-0.4482 0.812,-0.3332 0.812,-0.9413 0,-0.0937 -0.077,-0.6177 -0.1642,-0.6397 -0.0258,-0.1023 -0.9023,-0.2459 -1.0402,-0.265 -0.4038,-0.0559 -0.9436,-0.2602 -1.3504,-0.3747l0 0 -0.0182 -0.5483c0.3999,-0.8021 0.8034,-1.8489 0.9033,-2.7325 0.0912,-0.8063 -0.2007,-1.562 -0.2007,-2.312 0,-0.5284 0.0937,-1.0236 -0.0183,-1.5353 -0.0498,-0.1377 -0.4621,-0.5009 -0.5931,-0.5941 -0.1829,-0.1303 -0.2664,-0.3367 -0.3102,-0.5574 -0.0556,-0.2805 -0.9733,-0.7168 -1.25,-0.6763 -0.3608,0.0529 -0.4147,0.3502 -0.6478,-0.0822 -0.1123,-0.2082 -0.365,-0.8971 -0.365,-1.1149 0,-0.2404 0.0913,-0.4413 0.0913,-0.6763l3.4124 0.3198 0 0z","name": "Babil"},"13": {"path": "M110.562 116.442c0.4068,0.1145 0.9466,0.3188 1.3504,0.3747 0.1379,0.0191 1.0144,0.1627 1.0402,0.265 0.0872,0.022 0.1642,0.546 0.1642,0.6397 0,0.6081 -0.3858,0.4931 -0.812,0.9413 -0.3901,0.4101 -1.3268,1.6121 -1.3687,2.1659 -0.0187,0.2472 0.6967,1.0699 0.8942,1.252 0.4717,0.4346 0.725,0.928 1.1223,1.3982l0.9489 2.3212 0 0 -9.1612 3.8109 0 0 -8.4488 -8.6909 5.0366 -1.1698 5.4383 -2.4126c0.4377,-0.1706 0.8483,-0.4228 1.3139,-0.53 0.5642,-0.13 1.1933,-0.2833 1.7701,-0.2833l0.7116 -0.0823 0 0z","name": "Karbala"},"14": {"path": "M90.506 163.452l0.0552 -7.6588c0.03,-1.2041 0.803,-3.4239 1.7424,-4.2221 0.4244,-0.3605 0.7751,-0.8011 1.2227,-1.1514 0.4613,-0.3612 0.2431,-1.6802 0.3376,-2.2116 0.1101,-0.6266 0.0471,-1.0951 0.2919,-1.7089 0.3055,-0.7656 1.4143,-1.5634 1.4143,-2.3761 0,-1.201 -0.0783,-2.3028 0.7482,-3.2808 0.481,-0.271 1.0487,-1.5784 1.4142,-2.0653 0.6345,-0.845 1.2589,-2.026 2.0074,-2.7416 1.0954,-1.0474 2.1026,-1.1738 3.5037,-1.709 0.172,-0.0638 0.4123,-0.2855 0.5383,-0.4203 0.2464,-0.2638 0.5768,-0.4809 0.8486,-0.722 0.1316,-0.1166 0.2489,-0.2489 0.3832,-0.3564 0.1934,-0.155 0.4,-0.2356 0.6113,-0.3564l0.8851 -0.9779 -1.7701 -1.8825 0 0 -8.4488 -8.6909 5.0366 -1.1698 5.4383 -2.4126c0.4377,-0.1706 0.8483,-0.4228 1.3139,-0.53 0.5642,-0.13 1.1933,-0.2833 1.7701,-0.2833l0.7116 -0.0823 0 0 -0.0182 -0.5483c0.3999,-0.8021 0.8034,-1.8489 0.9033,-2.7325 0.0912,-0.8063 -0.2007,-1.562 -0.2007,-2.312 0,-0.5284 0.0937,-1.0236 -0.0183,-1.5353 -0.0498,-0.1377 -0.4621,-0.5009 -0.5931,-0.5941 -0.1829,-0.1303 -0.2664,-0.3367 -0.3102,-0.5574 -0.0556,-0.2805 -0.9733,-0.7168 -1.25,-0.6763 -0.3608,0.0529 -0.4147,0.3502 -0.6478,-0.0822 -0.1123,-0.2082 -0.365,-0.8971 -0.365,-1.1149 0,-0.2404 0.0913,-0.4413 0.0913,-0.6763l3.4124 0.3198 0 0 2.7459 -3.2899 0 0 -1.2135 -1.5901c-0.2411,-0.2632 -0.5015,-0.6908 -0.7299,-0.987 -0.2033,-0.2637 -0.5139,-0.4731 -0.7391,-0.7219 -0.5148,-0.5688 -0.6338,-0.7526 -0.6113,-1.5262 0.0143,-0.4901 -0.1625,-0.606 -0.3924,-0.9961 -0.3375,-0.5724 -0.5831,-0.6104 -1.1765,-0.7951l-4.5986 -0.0365 -1.2229 -0.9139 -5.4928 0 -7.7738 -9.7236 0.0182 -6.1046 -2.6642 3.0706 -5.8395 -4.0028 -0.4927 -7.9506 0 0 -8.8875 0.1005 -3.8322 -1.2154c-0.489,-0.1966 -1.9201,-0.5846 -2.2263,-1.0144 -0.8084,-0.2015 -1.7486,0.0048 -2.6004,-0.1005 -0.0507,-0.0405 -0.1489,-0.0666 -0.1734,-0.128 -0.3988,-0.2498 -0.7649,-0.8062 -1.1679,-1.1149 -0.4167,-0.3193 -1.0228,-0.5255 -1.5055,-0.722l-0.8248 -0.3194 0 0 0.2688 7.4385 -1.8796 2.6867 -2.4824 5.5381 -6.1439 1.9129 -32.8881 20.0199 0 0 5.2257 18.5888 -1.7046 0.3831 1.0767 3.7286 3.7044 -1.1515 0.7117 2.632 -1.6887 1.6632 0 0 20.6573 4.2038 0.9614 0.1338 18.3004 12.0572 11.4601 5.3553 14.7625 12.4109 0 0z","name": "Al-Anbar"},"15": {"path": "M165.453 151.479l-0.0091 5.8854 -0.5932 2.6684c-0.0522,0.2551 -0.2463,0.4326 -0.2463,0.6855 0,0.8395 0.3194,1.602 0.3194,2.44l-0.0183 0.0091c-0.0219,0.0671 -0.2542,-0.0589 -0.2919,-0.0822 -0.3278,-0.2033 -0.6957,-0.3292 -1.0402,-0.5118 -0.2032,-0.1078 -0.3797,-0.2546 -0.5931,-0.3564 -0.1746,-0.0834 -0.3946,-0.1322 -0.5566,-0.2193l-6.7519 2.4217 0 0 0.292 2.9061c0.1052,1.0482 0.763,2.0102 1.3321,2.8513 0.6738,1.0344 0.9124,2.0358 0.9124,3.2534 0,0.997 -0.0652,2.3344 -0.3558,3.2807l-1.2318 5.2365c-0.4309,0.9199 -0.7038,1.9957 -0.5748,3.0066 0.098,0.7688 0.0988,1.5953 -0.0274,2.3578 -0.0725,0.4376 -0.4319,0.7409 -0.584,1.1515 -0.2386,0.6436 -0.2984,1.1336 -0.3558,1.8277l0.0511 2.1816 0 0 0.1223 -0.0431 0 0 1.0219 -1.2246c0.4279,-0.4867 0.9857,-0.7778 1.3504,-1.3434 0.4638,-0.7195 0.9947,-1.4039 1.3777,-2.175 0.1946,-0.62 0.7632,-1.0096 1.2044,-1.4256 0.5611,-0.5292 1.0662,-1.6513 1.3048,-2.3852 0.3243,-0.9978 1.0336,-1.625 1.4599,-2.5314 0.2076,-0.4947 0.3285,-1.0143 0.3285,-1.5536 0,-0.6199 0.8541,-1.5675 1.0949,-2.1567 0.4087,-1.0003 0.8848,-2.0542 1.1496,-3.1163 0.7263,-0.4455 0.5627,-1.0391 1.5694,-1.1881 0.5172,-0.0766 1.0564,-0.4046 1.5055,-0.6762 0.8917,-0.5393 0.935,-0.8146 2.0712,-0.7951l5.3103 0.0914 4.5987 2.4035 0 0c0.8361,-1.2246 1.4959,-1.2524 2.865,-1.0053 0.6548,0.1182 1.2383,0.2292 1.8614,0.4844 0.9042,0.2583 1.6695,1.1473 2.4544,1.6541 0.3863,0.2495 1.2768,0.1553 1.7519,0.1553 0.2003,0 0.2928,-0.1462 0.4653,-0.1462 0.2109,0 0.5625,0.2198 0.8303,0.2559 0.2092,0.0281 0.3127,-0.3109 0.3011,-0.4661 -0.0109,-0.1447 -1.7336,-0.5362 -1.7336,-1.0327l0 0c-0.2009,-0.2437 -0.387,-0.5006 -0.6025,-0.7311 -0.3984,-0.4262 0.2683,-1.1175 -0.6204,-1.6449 -0.8411,-0.4991 -0.3467,-1.2779 -0.3467,-2.0288 0,-1.1 -3.0123,-2.4873 -3.6862,-3.162 -0.9131,-0.9143 -0.7351,-1.9992 -2.3906,-2.2847 -0.1302,-0.0224 -0.2564,-0.0463 -0.3964,-0.0749l0.1227 -10.8549 -6.1862 -0.0549 0.014 -4.2678 0 0c-0.4512,0 -1.1371,-0.0368 -1.5741,-0.1553 -0.3134,-0.085 -0.6251,-0.2825 -0.9398,-0.3472 -1.9628,-0.984 -4.4015,-0.5649 -6.2501,0.4295 -0.5423,0.2916 -0.7214,0.9144 -1.104,1.3251l0.0182 1.0783 0 0z","name": "Al-Basrah"},"16": {"path": "M123.618 145.923c0.7292,0.149 2.1274,1.4224 2.3176,2.175 0.1387,0.035 0.691,0.231 0.8029,0.1462 0,-0.4363 0.4832,-1.2759 0.7117,-1.6541 0.4955,-0.8205 0.5615,-2.0068 0.9854,-2.8421 0.2361,-0.4651 0.5515,-0.4205 0.8121,-0.7676 0.2281,-0.3036 0.2899,-0.7388 0.4836,-1.0784 0.449,-0.3804 -0.8037,-1.48 -1.1223,-1.6815 -0.9969,-0.6304 -0.5103,-0.5784 0.3193,-0.6489 0.5947,-0.0506 1.3589,0.1257 1.9161,-0.0365 0.3927,-0.1144 0.6208,-0.5669 0.7938,-0.9139 0.5096,-1.0224 3.4676,0.4535 4.3249,0.6032 0.4812,0.0266 1.0888,0.3407 1.5603,0.4935l2.2537 0.7311c0.5083,0.1648 1.0987,0.3838 1.6424,0.3838l0 0c0.3286,0.3898 0.4386,0.5572 0,0.8499 -0.432,0.2884 -0.1095,0.8627 -0.1095,1.252 0,0.8221 -0.2871,1.4774 -0.4745,2.2664 -0.0302,0.3456 -0.2723,0.5926 -0.3193,0.9138 -0.0264,0.181 -0.1534,0.7255 0.0821,0.8042 0.1266,0.0422 0.2772,-0.4031 0.4744,-0.1827 0.2767,0.3095 -0.276,0.8695 -0.3741,1.124 -0.506,1.3133 1.134,3.1928 -0.2737,4.2495 -0.411,0.5728 -0.3619,0.9718 -0.6204,1.5536 -0.3313,0.7454 -0.8025,0.4945 -1.2592,0.859 -0.0036,0.0262 -0.008,0.0355 -0.0274,0.0549 0,0.7611 -0.1587,2.1413 0.1734,2.8055 2.2243,1.0146 5.0953,0.9139 7.5458,1.0053 0.7267,0.2019 1.4957,0.3655 2.2537,0.3655 0.9282,0 1.984,0.5332 2.6825,1.115 0.3584,0.2984 0.7601,0.6089 1.0493,0.9869 0.2906,0.38 0.4902,0.8706 0.7847,1.2246 0.0748,0.5852 1.0292,1.9733 1.5055,2.3578 0.1826,0.1476 0.4818,0.077 0.7117,0.0914l0.4471 -0.1097 0 0 0.292 2.9061c0.1052,1.0482 0.763,2.0102 1.3321,2.8513 0.6738,1.0344 0.9124,2.0358 0.9124,3.2534 0,0.997 -0.0652,2.3344 -0.3558,3.2807l-1.2318 5.2365c-0.4309,0.9199 -0.7038,1.9957 -0.5748,3.0066 0.098,0.7688 0.0988,1.5953 -0.0274,2.3578 -0.0725,0.4376 -0.4319,0.7409 -0.584,1.1515 -0.2386,0.6436 -0.2984,1.1336 -0.3558,1.8277l0.0511 2.1816 0 0 -2.2986 0.8108 -30.2079 -2.8309 -15.6726 -13.1762 0 0 0.5267 -1.0497c0.4422,-0.4903 0.6831,-1.2336 1.1314,-1.7089 0.3147,-0.3338 0.4858,-0.7699 0.812,-1.0967 0.502,-0.5031 1.0261,-1.4414 1.1679,-2.1384 0.1869,-0.918 0.7479,-1.8816 0.8669,-2.7873 0.2574,-0.2271 0.4818,-1.3031 0.6295,-1.6633 0.7819,-1.9069 1.476,-4.1992 3.0293,-5.6568 0.5668,-0.3287 1.193,-1.2496 1.6789,-1.7364 0.7846,-0.7863 1.1811,-1.9164 1.9343,-2.7142 0.7764,-0.8222 0.9084,-2.2123 1.0675,-3.2807 0.3958,-0.5946 0.3389,-1.6152 0.9125,-2.1568 0.7358,-0.6949 1.2769,-1.6757 1.5602,-2.641 0.1945,-0.663 0.8421,-2.2653 1.3504,-2.7234l0 0z","name": "Al-Muthanna"},"17": {"path": "M140.06 133.641l0.5201 -0.2559c0.0619,-0.0774 0.1765,-0.1113 0.2646,-0.1553 0.0325,-0.0029 0.0352,-0.0039 0.0639,-0.0183l6.7246 -0.064 3.8687 -0.1553 0 0c0.1202,0.1861 0.2307,0.3072 0.2007,0.5209 -0.2216,0.1769 -0.5414,0.3451 -0.7847,0.4661 -0.0045,0.0183 -0.0091,0.0241 -0.0091,0.0457 0.476,0.2973 0.8841,0.8577 1.25,1.2977 0.2197,0.2641 0.4076,0.5606 0.5566,0.8681 0.1957,0.4037 0.2361,0.8306 0.4106,1.2246 -0.097,0.3668 -0.2101,1.8717 0.0456,2.1476 0.1728,0.1864 0.3313,0.2286 0.5019,0.4661 0.3374,0.4699 0.6379,0.1839 0.8394,0.8407 0.18,0.5867 0.8423,1.1041 1.3139,1.5353 0.6142,0.5614 0.3355,1.4218 0.1277,2.0745 -0.4442,1.3787 0.9951,1.6251 1.8796,2.1476 0.8425,0.4976 1.0676,0.4266 1.0676,1.4531 0,0.2347 -0.1295,0.3922 -0.1643,0.6305 -0.0223,0.1524 0.0635,1.1066 0.1278,1.2155 0.1275,0.2161 0.5099,0.3495 0.6752,0.6031 0.2468,0.3784 0.4049,0.901 0.9033,0.9047l2.3814 0.0183 2.6278 0.0274 0 0 -0.0091 5.8854 -0.5932 2.6684c-0.0522,0.2551 -0.2463,0.4326 -0.2463,0.6855 0,0.8395 0.3194,1.602 0.3194,2.44l-0.0183 0.0091c-0.0219,0.0671 -0.2542,-0.0589 -0.2919,-0.0822 -0.3278,-0.2033 -0.6957,-0.3292 -1.0402,-0.5118 -0.2032,-0.1078 -0.3797,-0.2546 -0.5931,-0.3564 -0.1746,-0.0834 -0.3946,-0.1322 -0.5566,-0.2193l-6.7519 2.4217 0 0 -0.4471 0.1097c-0.2299,-0.0144 -0.5291,0.0562 -0.7117,-0.0914 -0.4763,-0.3845 -1.4307,-1.7726 -1.5055,-2.3578 -0.2945,-0.354 -0.4941,-0.8446 -0.7847,-1.2246 -0.2892,-0.378 -0.6909,-0.6885 -1.0493,-0.9869 -0.6985,-0.5818 -1.7543,-1.115 -2.6825,-1.115 -0.758,0 -1.527,-0.1636 -2.2537,-0.3655 -2.4505,-0.0914 -5.3215,0.0093 -7.5458,-1.0053 -0.3321,-0.6642 -0.1734,-2.0444 -0.1734,-2.8055 0.0194,-0.0194 0.0238,-0.0287 0.0274,-0.0549 0.4567,-0.3645 0.9279,-0.1136 1.2592,-0.859 0.2585,-0.5818 0.2094,-0.9808 0.6204,-1.5536 1.4077,-1.0567 -0.2323,-2.9362 0.2737,-4.2495 0.0981,-0.2545 0.6508,-0.8145 0.3741,-1.124 -0.1972,-0.2204 -0.3478,0.2249 -0.4744,0.1827 -0.2355,-0.0787 -0.1085,-0.6232 -0.0821,-0.8042 0.047,-0.3212 0.2891,-0.5682 0.3193,-0.9138 0.1874,-0.789 0.4745,-1.4443 0.4745,-2.2664 0,-0.3893 -0.3225,-0.9636 0.1095,-1.252 0.4386,-0.2927 0.3286,-0.4601 0,-0.8499l0 0 -0.1643 -0.6397c-0.0906,-0.4092 -0.1642,-0.8057 -0.1642,-1.2246 0,-0.1583 0.0091,-0.3156 0.0091,-0.4752 0,-1.0179 -0.2138,-1.8422 -0.5383,-2.769 -0.209,-0.5972 -0.915,-1.3929 -0.5019,-2.0837l0 0z","name": "Dhi Qar"},"18": {"path": "M155.362 114.15c-0.549,0.6694 -0.4384,0.4112 -0.146,1.1678 0.1245,0.3217 -0.2927,1.1707 -0.4562,1.4804 -0.5552,1.051 -0.5231,2.3252 -0.7391,3.4545 -0.0997,0.5211 0.0274,0.8526 0.0274,1.3433 0,0.8189 -0.6205,0.3381 -0.6205,0.6946 -0.1209,1.063 -1.6659,2.1857 -0.9124,3.1346 0.4812,0.6059 0.6937,0.8924 0.8029,1.6723 0.0544,0.3883 0.7791,1.0131 1.1679,1.0693 0.0071,0.0178 0.0096,0.0203 0.0274,0.0274 0.0712,0.507 0.1938,0.8398 -0.3011,1.0509l-1.9708 0.8408c-0.1526,0.0763 -0.3893,0.0923 -0.5201,0.1828 -0.1769,0.1223 -0.0841,0.6409 -0.0183,0.8133 0.1165,0.3056 0.7227,0.6507 0.6478,1.0418 -0.0839,0.4385 -0.7022,0.4646 -0.8485,0.8682l0 0c0.1202,0.1861 0.2307,0.3072 0.2007,0.5209 -0.2216,0.1769 -0.5414,0.3451 -0.7847,0.4661 -0.0045,0.0183 -0.0091,0.0241 -0.0091,0.0457 0.476,0.2973 0.8841,0.8577 1.25,1.2977 0.2197,0.2641 0.4076,0.5606 0.5566,0.8681 0.1957,0.4037 0.2361,0.8306 0.4106,1.2246 -0.097,0.3668 -0.2101,1.8717 0.0456,2.1476 0.1728,0.1864 0.3313,0.2286 0.5019,0.4661 0.3374,0.4699 0.6379,0.1839 0.8394,0.8407 0.18,0.5867 0.8423,1.1041 1.3139,1.5353 0.6142,0.5614 0.3355,1.4218 0.1277,2.0745 -0.4442,1.3787 0.9951,1.6251 1.8796,2.1476 0.8425,0.4976 1.0676,0.4266 1.0676,1.4531 0,0.2347 -0.1295,0.3922 -0.1643,0.6305 -0.0223,0.1524 0.0635,1.1066 0.1278,1.2155 0.1275,0.2161 0.5099,0.3495 0.6752,0.6031 0.2468,0.3784 0.4049,0.901 0.9033,0.9047l2.3814 0.0183 2.6278 0.0274 0 0 -0.0182 -1.0783c0.3826,-0.4107 0.5617,-1.0335 1.104,-1.3251 1.8486,-0.9944 4.2873,-1.4135 6.2501,-0.4295 0.3147,0.0647 0.6264,0.2622 0.9398,0.3472 0.437,0.1185 1.1229,0.1553 1.5741,0.1553l0 0 0.0135 -4.0666 3.1297 -7.6948c0.1436,-0.3176 0.1733,-0.7101 -0.1004,-0.9687 -0.3373,-0.3189 -0.7493,-0.4132 -0.9763,-0.8682 0.0384,-0.0064 0.0106,0.0083 0,0.0457 0.0267,-0.121 0.2402,-0.466 0.1825,-0.5666 -0.0854,-0.1486 -0.3913,0.0567 -0.4562,-0.3016 -0.0914,-0.5052 -0.6178,-0.2766 -0.7847,-0.8224 -0.081,-0.2652 -0.2793,-0.5118 -0.3467,-0.7677 -0.0561,-0.2134 -0.1185,-0.826 -0.2281,-0.9778 -0.1325,-0.1833 -0.4651,0.0739 -0.6022,-0.2011 -0.1198,-0.2401 -0.1698,-0.3526 -0.3285,-0.5666 -0.1717,-0.2316 0.1868,-0.5057 -0.0548,-0.6762l-0.8668 -0.6123c-0.4558,-0.3219 -0.5969,0.4621 -0.8942,-0.3382 -0.0797,-0.2144 -0.319,-0.2227 -0.4379,-0.4386 -0.1088,-0.4756 0.2725,-0.6128 0.5657,-0.8316 0.2011,-0.1502 0.0912,-0.5676 0.0912,-0.8042 -0.4842,-0.1223 -0.7388,-0.3564 -0.9763,-0.8043 -0.2597,-0.49 0.4726,-0.348 0.1825,-0.8224 -0.1004,-0.1641 -0.8154,-0.0897 -1.0037,-0.2102 -0.0882,-0.0565 -0.0088,-0.2717 -0.0729,-0.3838 -0.0777,-0.1361 -0.447,-0.324 -0.365,-0.4478 0.2903,-0.4378 0.824,-0.6033 0.1004,-1.0784 -0.4074,-0.2721 -0.8716,-1.4212 -1.2957,-1.3617 -0.4328,0.0608 -1.5913,-0.4323 -1.6332,-0.4021 -0.289,0.2088 -0.3841,0.5829 -0.7756,0.658 -2.2778,0.4372 -4.0861,-2.2622 -5.7483,-3.3722 -0.5729,-0.3503 -1.1445,-0.8738 -1.4964,-1.4439 -0.2593,-0.4203 -0.7374,-0.375 -0.885,-0.859 -0.0872,-0.2858 -0.395,-0.4443 -0.5931,-0.658 -0.4187,-0.4518 -0.2114,-0.5109 -0.8486,-0.6854 -0.4109,-0.1126 -1.2475,-0.4197 -1.5055,-0.7676 -0.2374,-0.3203 -0.5014,-0.5594 -0.8303,-0.8043 -0.0332,-0.0331 -0.0666,-0.0661 -0.1003,-0.0985l0 0z","name": "Maysan"}},"height": 300,"width": 306});
--- /dev/null
+/** Add Russia Map Data Points */
+jQuery.fn.vectorMap('addMap','russia_en',{"width":959,"height":593,"paths":{"da":{"path":"m34.939,403.74,2.6516,1.2627,3.6618,0.50507,1.7678-2.0203,2.1466,2.0203,2.3991-1.6415,0.25254-1.7678,1.6415-2.1466,3.0305,0.50508,3.7881-2.9042-0.50508-1.894-4.7982-0.50508,0.75762-3.1567-1.0102-0.63134,0.63135-2.2728-3.1567-2.7779,1.5152-0.50508,3.9143,0.88388,0-1.389-1.0102-1.2627,8.3338-0.25254,4.9245,5.4296,1.2627,1.894-0.37881,2.2728-5.3033-0.3788,0.50508,2.5254,1.5152,3.0304-1.0102,3.5355-2.3991,2.7779-1.2627,0.25254,4.5457,0.75761-5.5558,2.1466-0.50508,2.0203-0.75762,0.50508-3.0305,0.50507-0.25254,4.7982-1.2627,0.88388-1.1364,13.132-9.0914-0.12627-3.6618-2.2728-1.389-0.88388,0-11.617-3.283-5.9346,0.37881-2.9042,1.2627-0.37881z","name":"Republic of Dagestan"},"sa":{"path":"M671.25,126.75l-1.44,1.06-1.25,1.63s1.44,0.87,2.16,0.87c0.71,0,2.69-1.97,2.69-1.97l-2.16-1.59zm18.47,12.09c-0.18-0.01-0.4,0.02-0.63,0.07-1.78,0.35-4.81,1.93-4.81,1.93s-1.41,1.1-2.12,1.1c-0.72,0-2.35-0.38-2.35-0.38-0.71,0-2.5,1.25-2.5,1.25l-1.4,1.78s-1.1-0.51-1.1,0.38-0.35,1.96,0.72,2.5c1.07,0.53,1.61,1.06,2.5,1.06s3.22-0.72,3.22-0.72l1.97-0.87,1.97,1.06s0.51-0.9,1.4-1.44c0.9-0.53,3.4-2.31,3.75-3.03,0.36-0.71,0.72-3.22,0.72-3.22s-0.11-1.36-1.34-1.47zm-19.81,7.1c-0.15,0.01-0.29,0.05-0.44,0.09-1.25,0.36-2.85,0.19-3.56,0.19-0.72,0-0.91,0.19-0.91,0.19s-0.88,1.58-1.59,1.93c-0.72,0.36-1.99,0.74-3.07,0.57-1.07-0.18-3.75-1.25-3.75-1.25s-1.93-0.02-1.93,1.59,3.03,3.41,3.03,3.41l1.06,1.4s-2.51,0.73-3.41,0.38c-0.89-0.36-2.65-2.16-2.65-2.16l-3.22-0.72s-2.88,0.2-2.88,1.1c0,0.89-0.68,2.67-0.68,3.56s-0.9,3.04,0.53,3.94c1.43,0.89,1.79,3.03,1.97,3.75,0.17,0.71,0.7,1.77,2.84,2.31,2.14,0.53,4.29,0.53,5,1.06,0.71,0.54,1.77,1.07,2.84,0.53,1.08-0.53,1.82-2.65,1.82-2.65l2.12-1.97s1.61-1.44,2.5-2.16c0.89-0.71,2.7-0.54,4.13-1.44,1.42-0.89,2.31-3.75,2.31-3.75v-5l-0.38-4.43s-0.68-0.58-1.68-0.47zm106.25,5.62c-0.45,0.09-0.75,4.1-0.75,4.1l-7.32,1.65-3.28,0.63-4.53-6.06-7.84-0.13-0.38,0.87-5.68,1.66-1.76,2.13-6.06,6.31v2.78l-2.15,1.91-3.29,5.03-4.93-2.38-3.41-0.37-1.75,2h-4.56l-3.41,1.78-1.75-1.53,4.28-2.91-2.28-1.62-3.03-0.13-8.84,4.03,1.9,5.44-0.87,4.78-2.66,2.91-1.65-2.13,3.03-7.47-1.75-0.37-2.66,4.03-3.03,2.03-1-0.75,1-3.16,2.28-0.74,2.91-2.66-7.1,1.75-9.22,5.31-6.68,0.25,3.65,3.66-3.65,3.4-0.5,3.03,0.37,1.16,3.91-1.78-1,4.03,4.81,2.91-0.91,2.9-2-1.37-3.68,1,1.28,3.41,2.4-0.26-1.03,2.66-3.9-0.5-4.28-1.66-3.53,0.26-2.41,3.15-0.63,4.06h-6.46l-1.76-1.53-2.4-2-0.5,4.41,0.87,0.87-0.12,1.41,1.65,0.87-0.9,2.54,1.66,6.18-3.29-1.4-1,1.15-9.87-5.31v-4.94l-2.25,0.13-1.78,2.41-2-3.41,3.65-0.63-0.5-2.9-4.43-1.66,0.75-0.87,0.12-2.53-5.28-4.04-5.31-2.53-1,3.66-7.35,0.65-2.37-1.65-4.19,2.15v2.13l4.19,4.69-10.94,5.31-10.28-1.16,0.44-4.4-12.07,0.19-3.96,3.78h-2.85l-1.09,1.09,2.66,2.87h-2.13l-2.91-2.06,1.19-2.09-0.87-1.38-1.54-1.78,0.07,2.28-1.5,1.07-3.85-1.32s-2.9,3.53-2.84,3.78c0.06,0.26,2.66,3.29,2.66,3.29l-1.41,3.34,1.59,2.09,0.19,2.78,7.38,5.82-0.32,5.47,2.53,1.9,1.63,2.53-2.53,2.72-4.41,3.03-0.69,2.63-4.81,2.78,0.25,6.12-2.25,1.1-2.97-1.28-5.65,4.75-4.44,0.09,0.06,1.97,5.38,6.59,1.78,20.1-6.35,1.97,4.19,3.4-1.78,4.19v1.25l7.16,8.84-4.57,6.69,0.97,1.6-2.4,1.87,0.09,2.25,5.63,0.34,0.71,0.72,9.1,0.19,3.31,3.31-0.53,1.6-3.31,0.34,0.19,3.94,4.03-1.06,5.06,6.59-0.53,5.53,3.84,5.19-1.97,3.4,0.53,2.13,7.69,6.53v4.37l-3.75,6.44,0.28,10.78,3.85,4.13,3.37-3.94,3.75,0.09,1.88-1.34,2.68-0.62,2.41-2.07,3.56,3.85,0.38,2.31,4-5.06,0.09-4.13,5.38-2.75-0.29-6.25,2.32-4.12,3.84-1.5,4.91,1.06,6.15,4.91,0.57,3.84,1.31,0.87,4.03-1.4,2.5-2.06,2.69,1.06,0.87,4.47,3.13,4.56,2.15,1.78v3.03l2.32,1.35,0.71,4.71,3.94,0.19,0.97,1.35,1.53,4.09,8.38-0.25,3.31-1.97,5.53,1.16,3.56,1.97,11-0.72,5.54,3.75,2.21,0.53,5.19-2.6h2.6l3.03,2.26,2.78-0.19,3.22-3.94,5.68-0.06,2.5-1.97h7.88l0.19-3.75,10.68-5.09,0.82-3.04-4.28-4.12,2.31-1.69,0.62-4.03-1.34-1.69-2.41,0.38-2.03-1.44,2.75-4.03-2.84-1.6,0.25-1.87,1.53-1.97-1.44-1.44-3.47-1.15-0.53-1.6,3.38-1.43-1.88-0.91-0.19-5.25-0.87-0.62-0.19-1.88,2.78-1.25-1.62-1.25v-2.94l5.47-1.97,3.12,0.16,0.25-1.78,6.53,0.09v-2.75l-1.25-1.53,1.16-1.25,3.47-0.62,3.31-2.22,1.34-6,5-0.44,0.1-2.06s-5.29-4.9-5.47-5.25c-0.18-0.36-0.88-3.94-0.88-3.94l-3.56-2.59v-5.97l2.94-7.16-1.69-9.19,0.78-3.12,13.5,0.72,0.25-5.28,5.19-1.16,3.47,1.87,0.81-2.31-2.41-3.69,1.69-0.62,0.19-2.75-7.16-8.5,0.1-4.37-3.13-1.5-0.09-4.04-1.78-1.15,1.09-2.13,3.81-0.47,1.35-1.78,4.28,0.38,0.09-2.44-3.37-1.5,0.15-3.31,5.47-0.53v-3.57l5.63,0.44,5.62-8.03,0.44-2.5-6.06-6.06-0.19-1.88,2.31-3.4-0.97-1.79-3.31,0.19-1.5-2.34,4.72-1.41-0.09-1.53-2.07-0.97-0.25-1.34,2.13-3.75,5.72-1.97-0.78-3.56,5.15,0.68-0.62-5.43,1.34,0.28,0.19-3.59-2.69-0.63-2.94-4.53-7.59-0.28-4.19-1.88,0.72-3.47h-3.12l-0.19-1.62,8.12-10.44,1.07-7.84s-9.81-5.72-10.25-5.63zm-135.1,8.56c-0.12,0.03-0.23,0.08-0.34,0.19-0.89,0.9-1.07,1.79-0.53,2.5,0.53,0.72,1.06,1.63,1.78,2.35,0.71,0.71,2.31,1.25,2.31,1.25s0.71-1.1,0.53-1.82c-0.18-0.71-1.97-2.84-1.97-2.84s-0.94-1.78-1.78-1.63zm28.94,7.35l-2.31,0.34s-1.07,0.91-1.25,1.63c-0.18,0.71-0.9,1.24,0,1.78,0.89,0.53,3.75,1.25,3.75,1.25s1.6-0.02,1.78,0.87c0.18,0.9,0.18,1.8,0,2.69s-0.53,1.78-0.53,1.78l0.72,0.72,1.93-0.53s0.74-0.72,1.82-0.72h2.65s1.44-0.53,1.97-1.25c0.54-0.71,1.97-1.25,1.97-1.25h2.69s1.41-0.52,0.87-1.59c-0.53-1.07-1.76-1.62-2.65-2.16-0.9-0.53-3.22-2.31-3.22-2.31h-2.5l-3.6,0.34-2.84,0.38-1.25-1.97zm-17,10.15c-0.12,0-0.22,0.01-0.31,0.04-0.72,0.17-1.44,1.4-1.44,1.4s0.37,1.78,2.16,1.78c1.78,0,2.3,0.55,2.65-0.34,0.36-0.89-0.87-2.31-0.87-2.31s-1.37-0.55-2.19-0.57z","name":"Sakha Republic"},"so":{"path":"m45.583,387.43-2.2728,2.6516-4.1669-2.6516-2.0203,1.1364-0.37881,5.8084-1.1364,1.389-2.2728-0.12627-5.9346-2.6516-3.0305-3.283,0.12627-4.9245,4.672,0.75761,0.37881-0.88388,2.5254-0.12627,3.283,1.5152,4.0406-1.894s-0.12627-3.5355,0.75761-2.7779c0.88388,0.75762,1.389,1.2627,1.389,1.2627l0.25254,3.5355z","name":"Republic of North Ossetia–Alania"},"kb":{"path":"m20.982,375.86c0.26786,0.35715,2.5893,4.7322,2.5893,4.7322l0.98214,3.9286,4.6429,1.1607,2.8571-1.0714,3.2143,1.5179,4.375-1.875,0.26786-3.125-5.9821-2.3214-1.875-5.0893-2.2321-1.1607-4.375,0.71429z","name":"Kabardino-Balkar Republic"},"kc":{"path":"m13.482,361.39,2.2321,8.4821,5.0893,6.25,4.375-2.6786,5.3571-0.89286,0.08929-3.3928,3.75-1.0714-6.6964-7.2321-2.2321,2.4107-2.8571,0.26786-1.6071-4.5536,0.44643-2.1429z","name":"Karachay–Cherkess Republic"},"st":{"path":"m33.929,367.73-3.4821,0.98215,0.17857,3.75,1.5179,1.25,1.7857,4.6428,6.5179,3.0357,1.3393,1.3393,0.08929,3.0357,3.8393,1.7857,1.6071,2.5893,3.2143,0.625,0.71429-1.4286-2.8571-3.125,1.5179-0.53572,3.5714,0.80357,0.17857-1.1607-0.98214-1.3393,7.7679-0.0893,1.6964-1.5179,0.26786-3.5714-5.2679-7.5-0.17857-9.4643-3.4821-6.0714-4.9107-0.98214-1.5179-2.7679-5.0893-5.7143-0.98214-0.625-1.5179,1.3393-2.7679-2.0536-1.4286,0.80357-0.80357,1.0714-0.08929,1.6071,0.35714,1.3393,0.35714,1.1607-0.71429,1.6071-0.98214,1.4286-1.9643,2.2322-1.875,1.0714-0.71428,0.98214-0.98214,2.3214z","name":"Stavropol Krai"},"ks":{"path":"m21.607,356.48-0.08929,2.0536,0.98214,3.8393,0.35714,0.80357,2.2321,0.0893,3.75-4.5536,1.4286-1.9643,1.9643-1.0714,2.6786-4.0178-0.26786-3.3929,0.17857-1.6964,0.89286-1.5179,1.3393,0,1.7857,1.5179,1.3393,0,2.5893-3.0357,0.08929-1.9643-0.89286-0.98214-2.2321-1.3393,0.17857-2.9464,2.8571-3.125,0.08929-1.4286-2.7679-2.9464-3.75-0.71428-0.80357-0.89286,1.6071-1.25,0.17857-2.4107-2.1429-1.6072-2.5893-0.80357-1.6071-1.6964-1.25-0.98214-0.89286-0.0893-1.3393,2.2322-0.625,0.98214,1.0714,1.4286-0.35714,1.5179-0.80357,0.625-2.7679-0.26786-0.89286-0.89286-1.9643,0.0893-1.875,0.71429-3.0357,1.7857-1.6964,0-1.3393-1.4286-1.6071-0.625-1.1607-1.4286,0-2.6786-2.2321-0.26786-1.25,0.625-0.35714,2.9464-0.089286,13.214,0.71429,5.8929,0.98214,3.6607-0.089286,2.3214-0.625,2.7679-0.089286,2.4107,0.17857,2.0536,1.5179,0.89285,0.71429,0.625,1.6071,1.5179,0.89286,1.0714,0.89286,0.89286l7.947-4.27-0.804-1.25-0.357-1.43-5.089,2.68h-1.875l-1.25-1.875,0.35714-3.5714,6.25-1.4286,2.7679-2.3214,0.71429-2.5893-1.3393-0.80357-1.9643,0.44642-1.1607-1.5178-0.71429-2.6786-1.3393-1.7857-0.17857-1.25,0.08929-1.1607,1.3393-0.80357,1.3393,0.625,1.0714,1.3393,1.0714,1.9643,1.3393,1.7857,2.3214,1.3393,1.6964,0.89285s0.625,0.26786,0.71429,0.625c0.08929,0.35715,0.89286,2.6786,0.89286,2.6786v4.0178l-0.08929,1.3393-1.0714,1.0714-1.875,1.5178-1.6071,1.4286z","name":"Krasnodar Krai"},"ro":{"path":"m37.5,323.45,2.0536,0.98214,1.4286-0.17857,0.625-0.89286-0.44643-1.1607-1.25-0.89286-1.9643-1.3393-0.89286-1.1607-0.35714-0.71428,1.0714-1.4286l2.231-1.08,1.6071-0.26786,1.0714,0.35714,1.4286,1.3393,1.5179,0.35714,1.6964-0.89286,0.89286,0.44643,1.072,1.06,1.339,1.79,0.268,1.33,1.607-0.08,1.3393-0.80358,1.6964-0.0893,1.3393-0.0893,0.35714-1.5178,0.53571-1.4286,1.25-1.6071,1.3393-1.0714,1.6964,1.0714,0.71429,0.35714,0.89286-1.875,0.44643-0.71428,2.6786-0.26786,1.875-1.6964,2.3214-0.17857,2.0536,1.1607,2.1429,1.25,0.98214,0.53571,3.9286,0.0893h2.2321l1.5179-0.98215h1.3393l0.71429,0.625,0.26786,1.6964-0.08929,1.9643v1.875l-0.08929,1.0714-0.981,1.34-1.25,0.98214-1.25,0.71429-0.80357,0.35714-0.35714,1.25-0.44643,1.6072-0.08929,1.4286-0.44643,1.1607-0.625,1.4286-1.4286,1.5179-1.6964,0.53571h-3.125l-1.608-0.36-1.518,0.53-0.625,1.97-0.982,0.62-0.80357,0.53572,0.17857,0.89285,1.3393,1.4286,0.71429,1.4286-1.1607,1.4286-1.3393,0.89285-0.80357,1.7857-0.08929,0.80357,0.98214,0.53571,1.1607,1.1607,0.625,1.0714,0.80357,0.80357,0.71429,1.3393v1.0714l-0.71429,0.80357,0.53572,0.625,1.4286,0.35715,0.625-0.53572,0.71429-0.0893,0.35714,0.98214v1.4286l-1.3393,1.3393-2.1429,1.0714-2.0536,1.1607-3.3929,0.0893-0.80357,0.80357-1.3393,0.80357-1.696,0.46-1.429-0.71-1.696-0.71-0.893-0.9-0.178-2.23-0.179-1.52-1.696-2.14-1.1607-0.80357-0.17857-1.25-0.80357-0.89286-1.7857-0.0893h-2.7679l-2.8571-0.0893-1.3393-0.17857-1.6071-1.7857-0.98214-0.71429v-0.89286l1.3393-1.5178v-1.5179l-0.625-1.25-1.875-1.4286-0.71429-0.625,0.26786-2.2322,2.7679-3.2143,0.08928-1.6071-1.9643-2.2322-1.3393-0.89285-2.411-0.55-1.0714-0.35714-0.08929-0.71429,1.0714-1.0714,0.26786-1.1607z","name":"Rostov Oblast"},"kk":{"path":"m44.554,348.71,0.98214,1.6071,1.1607,1.0714,1.1607,1.6964,0.80357,1.1607,1.1607,0.71429,2.5893,0.44643,1.3393,0.625,0.98214,1.6071s0.98214,1.7857,1.25,2.2321c0.26786,0.44643,0.98214,2.4107,0.98214,2.4107l0.17857,4.9107v3.2143l0.89286,2.2321,3.3036,4.1964,1.25,2.0536-0.17857,2.5893-1.4286,1.875,0.89286,1.3393,4.375,4.7321,0.53571,1.25,0.35714,0.98215,0.89286,0.53571,1.4286,0.0893,1.6071-0.26786,1.7857-0.53572,2.2321-0.89285,2.3214-0.26786,0.713-0.71,0.625-2.15-0.268-1.16-2.232-1.34-0.982-0.71,0.08928-1.3393,1.0714-0.625,1.7857,0.0893,1.4286-1.25-0.53572-0.71428-0.71428-2.0536-0.268-1.7-0.179-1.16h1.0714l1.6964,1.25,1.7857,0.80357,2.6786-0.17857h0.89286l0.53571-1.1607-0.17857-2.4107-0.08929-3.8393v-6.3393-0.98214l-0.08929-2.2321,2.9464-2.8572,0.17857-1.3393-1.4286-0.625v-3.2143l-1.0714-1.1607-1.1607-0.35715-2.5-0.17857-0.625-1.4286-0.17857-0.80357-1.25,0.26786-0.625,1.0714h-1.3393l-1.25-0.0893-1.071-0.98-0.804-0.71-2.321-0.27-0.98214,0.35715-0.71429,0.80357-0.71429,0.35714-0.26786,1.1607-0.35714,0.80357,0.35714,0.625,1.0714,0.35714,1.0714-0.44643,0.89286,0.35714,0.08929,0.98215-0.44643,1.5178-5,3.125-3.3929,0.26786-2.3214,1.3393-1.5179,0.53571-3.8393-1.7857-0.53571-0.35715-0.08929-3.3928-0.71429-1.4286-2.3214-2.2322-0.625-1.25-1.9643-0.80357h-3.5714z","name":"Republic of Kalmykia"},"as":{"path":"m86.873,350.94,1.6415-1.389,1.1364-0.63135,1.7678,1.2627,2.0203,0.63135,2.2728,0.50508,0.88388,1.0102,2.1466,0.88388,0.75761,1.1364,0.63134,1.1364,0,1.389,0,0.88389-1.5152,0.3788-1.1364,1.389-0.12627,1.0102,0.63134,1.389,1.0102,1.1364-0.37881,2.1466-0.75762,1.0102-1.7678,0.88389-0.25254,1.1364,0.50508,0.88388,1.7678,1.1364,2.2728,1.5152,1.389,1.6415,0.63134,1.0102,0,1.5152-1.0102,1.1364-0.25254,2.0203-1.0102,1.0102,0,2.2728,0,2.7779-0.75761,0.3788-1.7678-0.3788-1.894-0.75762-0.63134,0.37881-0.37881,2.1466,1.6415,2.1466,1.1364,1.2627,0.88388,1.0102,0.50508,0.63134,0.12627,1.2627-3.9143,0.25253-3.0305,0.63135-2.1466,0-1.894-1.2627-2.0203-1.5152-5.4296,0-1.0102-0.37881-1.1364-1.1364,0.37881-2.9042-0.88388-1.0102-2.2728-1.6415,0-1.6415,1.0102-0.3788,1.5152,0,1.389-1.0102-0.63134-1.389-0.75761-4.0406,0.63134-0.3788,1.2627,0.75761,2.9042,1.389,2.0203-0.25254,1.2627-0.12627,0.50508-1.6415-0.25254-5.4296,0.12627-5.0508-0.25254-4.2931,2.1466-2.2728,1.0102-1.1364,0.12627-1.389-1.2627-0.50508-0.25254-2.1466z","name":"Astrakhan Oblast"},"ad":{"path":"m21.786,356.21,2.4107-1.4286,2.5-2.6786,0.35714-2.1428-0.26786-3.9286-1.0714-2.7679-2.9464-0.98214l-2.412-1.78-2.232-3.75-1.5179-1.1607-1.3393,0.71428-0.17857,2.1429,1.6071,1.875,0.80357,2.5893,1.1607,1.6964,1.6071-0.35714,1.5179,0.44643-0.44643,2.9464-2.9464,2.3214-3.394,0.71-2.8571,0.35715-0.17857,3.8393,1.0714,1.7857h1.7857l5.3571-2.9464,0.35714,1.7857z","name":"Republic of Adygea"},"vl":{"path":"m85.893,313.18,1.5179-0.98214,1.875-0.0893,1.1607-1.0714,1.1607-1.6072,0-1.25,1.1607-0.98214,1.9643,1.25,2.5,1.9643,3.3036,2.1428,3.9286,1.5179,1.4286,1.5179,0.625,2.1428,0.44643,1.4286,2.8571,0.35714,0.44643,1.4286,2.5893,0.80357,1.7857,1.7857,1.6964,1.6964,0.17857,2.2322-1.5179,1.25-1.6071,2.2321-1.4286,1.3393-0.26786,1.25,0.89286,2.2321,2.9464,1.875,1.6964,1.875,1.7857,1.1607,1.25,3.3036,1.0714,1.875,0.0893,1.25-0.71428,0.53572-1.3393,0.44643-0.71429,0.53571-2.8571,0.26786-4.6429-0.0893-1.6964,0.26786-0.71429,1.6071,0,2.8572-0.17857,1.1607-1.6964,1.25-1.3393,0.98214-4.0178-0.0893-1.0714-0.0893-1.3393-3.0357-1.4286-1.0714-1.875-1.0714-1.0714-0.625l-2.256-0.46-2.054-1.25-1.071-0.18-1.1607,0.625-0.98214,0.71429-1.25,0.26785-2.1429-0.0893-0.89286-1.1607-0.35714-1.25-1.4286,0.26786-0.89286,1.1607h-1.25l-1.875-0.71428-1.25-0.80357-1.3393-0.35715-1.4286,0.17858-1.4286,1.25h-0.89286l-1.4286-2.5-1.25-1.4286-1.0714-0.71428,0.448-1.44,0.893-1.52,1.607-1.43,0.179-0.89-1.6964-2.1429-0.44643-1.0714,1.4286-0.80358,0.625-1.875,0.625-0.53571,1.25-0.35714,1.6071,0.0893h3.0357l1.7857-0.625,1.9643-2.5893,0.89286-4.0179,0.625-1.4286,2.8571-2.0536,1.1607-1.6964,0.35714-3.3036v-2.2322z","name":"Volgograd Oblast"},"vn":{"path":"m70.089,310.77,0-6.0714,0.08929-1.1607,3.75-3.2143,2.5-3.6607,1.3393-1.4286,0.35714-1.875,2.4107-0.71428,0.35714-2.5893,0.625-1.7857,1.0714-0.35714,0.625-2.0536,1.3393-1.7857,1.1607-1.0714,0.98214-0.53571,0.89286,1.1607,0.44643,0,0.71429-1.0714,0.53571-0.71428,1.1607-0.17857,0.89286,0.89285,1.25,1.1607,1.4286,1.4286,1.1607,1.5179,0.80357,0.89285-0.26786,2.1429,0,1.6071,1.875,1.0714,2.3214,1.3393,0.80357,1.3393-0.0893,1.7857-0.89285,1.5178-0.44643,0.98215,1.5179,1.25,1.875,1.7857,1.9643,2.2321,1.3393,1.6964,1.1607,1.9643-0.26786,2.3214,0,2.0536-2.1429,1.0714-0.71428,0.17857-4.2857-1.875-2.6786-1.7857-2.1429-1.4286-1.6964-1.1607-0.53571-0.17857-0.71429,0.80357-0.44643,1.25-1.4286,1.9643-1.6964,0.44643-2.8571,0.80357-3.5714,1.1607-3.2143,0.0893-2.5-0.17857-2.3214-1.25-2.3214-1.0714z","name":"Voronezh Oblast"},"bl":{"path":"m63.304,272.29-5.4464,3.3036,0.08928,2.6786,1.6964,1.875,0.08929,3.125,0.44643,1.6964,2.8571,1.6071,2.8571,0.44643l1.608,2.23-2.5,3.3036-0.35714,2.1429,1.0714,1.6071,2.3214,1.5179,0.17857,2.9464,1.1607,1.5179,0.71428,0.89285,4.7321-4.375,3.75-5.4464,2.0536-0.89285,0.80357-4.1072,1.0714-0.89285,0.53571-1.3393-2.5-2.8571-3.5714-4.1071-2.7679-0.26786-2.9464-1.1607-2.6786-1.6964-2.5893-1.6072-1.9643-1.6071z","name":"Belgorod Oblast"},"ky":{"path":"m63.482,271.84,0-4.6429l-0.357-1.61-1.786-1.97-0.714-1.07,1.3393-1.0714,3.75-1.3393,2.7679-1.3393,2.6786,0.0893,0.53571,1.0714,1.25-0.0893,1.7857-1.1607h0.80357l0.98214,0.44643,1.4286,1.6071,0.53571,0.80357,0.08929,1.6964,1.0714,0.89286,1.0714,0.71428h0.89286l1.0714,1.25,0.17857,3.2143v2.4107l-0.89286,0.98214v1.5179,1.1607l1.0714,1.25,1.1607,0.98214,0.89286,0.17857,1.5179,0.53571,1.0714,1.6072,1.6071,1.5178-0.71429,1.1607-0.80357,0.89286-0.89286-0.80358-1.9643,1.25-1.4286,1.1607-0.53571,0.80357-3.4821-4.1071-2.2321-2.3214-0.98214-0.53572-3.3036-0.625-2.8571-1.5178-3.6607-2.1429-2.4107-1.9643z","name":"Kursk Oblast"},"or":{"path":"m74.732,258.27,1.0714-1.875,2.2321-0.26786,0.89286-1.6071,0.89286-0.53572,1.9643,0.89286,1.6964-0.0893,1.6071-0.71429,1.0714-1.5179,0.89286-0.53571,0.98214,0.17857,1.3393,0.98214,1.9643,0.89286,1.1607,0.89286,0.35714,0.89285,0.71429,1.3393,0.17857,2.0536,0,3.6607,0.98214,1.7857,1.4286,1.875,0.80357,1.25,0.71429,1.7857-0.26786,1.5179-3.9286,1.875-1.9643,0.98214-1.0714,2.1429-1.875,1.0714-1.875,1.0714-2.4107-0.89286-1.9643-1.6071-0.44643-1.6964,0.44643-1.9643,0.44643-0.89285,0.08928-4.4643-0.89286-1.6964-1.7857-0.53571-1.7857-1.4286-0.08929-1.6072-1.3393-1.5178-1.6071-1.6964z","name":"Oryol Oblast"},"lp":{"path":"m86.875,278.45,1.5179,1.875,1.0714,0.89286,1.1607,0.71428,1.1607,1.0714,2.5,2.2321,1.25,1.5179,0.625,1.4286-0.44643,2.5893,0.53572,0.625,2.5,1.3393,1.875,1.7857,1.0714-0.17857,1.0714-0.625,0.44643-0.80357,0.0893-5.8036,0.35714-0.71428,1.4286-0.80357,2.3214-0.17857,2.0536-1.1607,1.3393-0.44643,0.17857-1.6964,0.625-1.3393,1.25-1.5179-0.80357-1.1607-2.6786-0.98215-0.53571-0.53571-0.17858-0.71429,1.0714-1.3393,0-1.6071-2.1428-0.35715-1.0714,0.44643-1.6072,0.80357-0.98214,0.89286-1.1607,0.625-1.4286,0.0893-1.3393-1.5179-1.6964-1.6964-0.80357-0.98214-2.4107,0.89285-3.125,1.6964-1.1607,1.6072-1.6071,1.4286z","name":"Lipetsk Oblast"},"tl":{"path":"m93.482,256.3,3.2143-2.0536,0.98214-0.17857,1.6071,0.80357,0.98215-0.80357,0.71428-1.0714,3.125,0,1.6072,0.625,2.0536,0.35714,1.4286,0.80358,2.4107,0.35714,1.4286,0.71428,0.53572,1.0714,0.98214,1.0714,1.25,1.4286,0.71429,1.6072-0.35715,1.6964-0.98214,1.1607-0.71428,1.6964-1.3393,1.9643-1.6964,2.0536-1.0714,1.875-0.71428,0.98215-0.53572,0.35714-1.7857,0-2.5,0.89286-1.5179,1.0714-1.3393,0.26785-2.0536-1.3393-2.0536-2.5893-0.26786-2.0536-0.53571-1.4286-1.6071-2.5l-1.413-2.14-0.179-2.23z","name":"Tula Oblast"},"bn":{"path":"m67.679,258.62,0.26786-1.7857,2.3214-1.5179,0.44643-1.1607,0-1.4286-1.6071-1.9643-1.7857-2.1429-1.6964-1.9643-2.3214-1.875-1.5179-0.89286-1.6964-0.26786-0.89286-1.1607,0.17857-2.3214,1.3393-1.6071,3.125-2.1429,2.6786-1.875,0.89286-1.7857,0.98214-0.71428,1.6964,0.26786,0.625,1.25,0.625,1.5178,1.0714,2.2322,1.1607,0.80357,5.8929,0.26785,2.1429-0.35714,1.4286,0.53572,3.125,0.89285,2.3214,0,0.71429,1.9643,0,2.2321-0.17857,1.1607-0.98214,1.5178-0.71429,0.53572-0.26786,1.4286,0.26786,1.5179,0,1.25-0.80357,1.4286-1.4286,1.5178-1.7857,0.71429-1.6964,0.17857-1.7857-0.71428-1.4286,0.71428-0.26786,0.89286-2.4107,0.80357-1.0714,1.4286-1.3393,1.25-1.4286,0.17857-1.4286-0.71428z","name":"Bryansk Oblast"},"kj":{"path":"m89.196,239.61,1.6071-1.25,1.6071-1.3393l1.161-0.27,1.429,0.63,0.80357,1.4286,1.0714,1.25,1.7857,0.80357,1.7857,0.35715,3.125,0.0893,1.875-0.0893,1.6071-1.0714,2.4107-0.0893,1.4286,0.44643,0.98214,2.0536,0.26786,1.4286,1.25,0.625,1.6071,0.98215,0.98214,0.80357,0.53572,1.25-0.53572,2.0536-1.0714,1.7857-1.4286,1.9643-1.1607,1.25-0.89286,0.44643-3.75-1.25-2.6786-1.0714-2.6786,0.0893-1.875,0.44642-1.0714,1.25-1.5179-0.44642-1.0714,0.0893-1.0714,0.80357-2.0536,1.0714-0.89286-0.89286-1.0714-0.80357-1.9643-1.25-1.5179-0.89285-0.89286-0.44643v-1.0714-2.4107l-0.08929-0.625,1.1607-1.6964,1.0714-1.875v-1.7857l-0.26786-1.6071z","name":"Kaluga Oblast"},"sm":{"path":"M79.375,237.55,80,235.95,80.179,234.52,79.732,233l-0.08928-1.4286,1.5179-1.3393,0.71429-1.6071,0.08929-3.125,0.35714-1.875,2.4107-2.5,2.5-1.9643,1.875-1.7857s1.875-1.3393,2.2321-1.5179c0.35714-0.17857,2.5-1.5178,2.5-1.5178l2.5,0.0893,3.0357,3.4822,1.875,3.4821,2.5,3.6607,1.4286,0.89286,2.7679,0.53571h2.0536l0.80357,0.71429,1.1607,1.875,1.1607,1.3393,1.25,1.6071,1.0714,1.4286,0.17857,1.3393-0.98214,1.25-1.875,0.89285-1.875,0.53572-0.89286,1.25-0.44643,0.89285-1.875,0.44643-1.7857,0.625-1.6072,0.35715h-3.0357l-3.75-0.80358-1.7857-1.7857-1.4286-1.3393-1.1607-0.26785-1.1607,0.71428-2.2321,1.5179-1.1607,0.44643-1.7857-0.44643-4.1071-0.98214-2.4107-0.35715z","name":"Smolensk Oblast"},"mc":{"path":"m116.07,234.16,3.5714,0.26785,2.3214-0.89285,1.4286-0.44643,0.53571,0.625,0.0893,1.7857,0,1.1607-0.17857,1.3393,1.5178,0.89286,2.9464,0.44643,1.7857,0.89285,2.0536,0.89286,2.7678,0.89286,1.7857,0.26786,1.25,0.53571,0.26786,1.6071-0.0893,1.5179-0.44643,1.6964-1.5179,0.625-2.1428,1.1607-1.6072,1.3393-0.0893,1.25-0.625,1.7857-1.1607,1.5179-0.35714,1.6071,0.17857,1.6072,0.0893,0.89285,1.1607,1.0714,1.0714,0.625,1.1607-1.0714,0.625,0.44643,0,1.5179-0.0893,3.2143-0.44643,1.1607-1.3393-0.44643-1.875-0.17857-1.6072,0.17857-0.80357,0.89286-2.0536,0.0893-1.6071-0.35714-1.25-0.71429-1.0714-1.1607-1.6071-0.625-1.6964,0-0.44643,0.80357-0.17857,1.1607-1.0714,0.53571-1.4286,0.0893-0.80357-0.80358-0.17858-0.625,1.1607-2.4107,0.26786-1.9643-0.53572-1.6964-1.1607-1.5179-1.1607-1.5179-1.0714-0.89286,0.625-1.25,2.5-2.9464,1.1607-2.6786-0.71429-1.7857-1.6071-1.6071-1.6071-0.98215-0.53572-0.35714-0.625-1.875-0.80357-1.25-0.80357-0.80357,0.625-1.5179,2.5893-1.3393z","name":"Moscow Oblast"},"rz":{"path":"m114.55,265.59-1.9643,2.6786-2.1429,3.125-0.625,2.7679-0.80357,1.7857,0.17857,0.80357,1.6964,0.71429,1.9643,1.3393,0.44643,1.5179-0.26786,0.89286,1.4286,1.1607,1.9643,0,1.1607,0.71429,0.0893,1.875,0.44643,1.1607,1.25,0.44643,1.5179-0.625,1.9643,0,1.5179,0.98214,0.625,1.7857,1.0714,1.1607,2.6786-0.17857,3.125,0,2.9464-2.0536,3.0357-2.9464,1.5179-2.2321,1.0714-1.7857-0.98214-2.2321-0.53572-3.125-2.0536-2.0536-1.25-1.6964-0.44643-2.8571-0.53571-1.6072-0.35715-0.98214-2.1428-0.35714-3.4822,0.26786-0.625,0.80357-2.1428-0.17857-1.875-0.71429-1.875-1.0714-1.9643-0.89286-1.0714,0.35715-0.80357,1.4286-1.4286,0.89286-1.6071-0.44643z","name":"Ryazan Oblast"},"tb":{"path":"m112.77,279.43-1.6964,2.1429-0.35714,1.7857-0.80358,0.89286-2.6786,0.98214-1.875,0.44643-1.5178,0.71429-0.71429,1.4286,0,2.1429,0.26786,2.3214-0.71429,1.875-1.5179,0.53571-0.44642,1.4286-0.44643,1.6964-0.625,1.1607,0.08928,0.625,2.3214,2.1429,2.2321,2.1429,1.6072,2.2321,1.4286,2.0536,0.98214,0,2.1429,0,1.9643-1.25,2.5-1.25,1.6964-1.0714,4.0179-0.26785,1.0714-0.98215v-3.6607c0-0.35714,0.0893-2.3214,0.0893-2.3214l1.5179-1.1607s0.71429-0.71429,0.80357-1.0714c0.0893-0.35714-0.26785-4.6429-0.26785-4.6429l1.4286-1.0714-0.80357-2.1428-1.7857-1.4286-2.3214,0.26786-0.89285,0.625-1.1607-0.80357-0.89286-1.3393v-1.3393l-1.875-0.80357h-1.3393l-0.89286-1.0714-0.26786-1.3393z","name":"Tambov Oblast"},"kn":{"path":"m44.107,152.55,0,2.2322,0.53571,2.5,2.0536,5.1786,1.4286,3.4821,1.9643,3.6607,2.5,1.0714,3.75-0.44642,1.9643-1.3393,0.625-1.7857-0.44643-4.2857-0.89286-2.8571-1.5179-1.6071-2.4107-0.53572-0.98214-0.71428,0-3.0357-0.80357-1.4286-1.6964-1.6071-1.6071-0.26786-0.35714,1.25-0.625,1.3393-0.625,0.89285-1.4286-0.35714z","name":"Kaliningrad Oblast"},"ps":{"path":"m95.268,213.98,0.35714-2.1428-0.26786-2.1429-1.4286-1.875-1.3393-1.4286-0.08929-1.6964,0.98214-0.71429,0.17857-1.6964-0.89286-0.98215-1.25-1.875,0-4.1964,1.5179-0.89285,3.75-2.2322,0.80357-2.4107,0.53572-1.7857,1.875-1.25,2.4107-0.0893,1.3393-1.6071,0.98214-1.6964s1.25-0.625,1.6072-0.80357c0.35714-0.17857,2.8571-0.71429,2.8571-0.71429l1.5179-0.0893,1.0714,0.53571-0.625,1.5179-0.71428,0.89285-0.17857,0.98215,1.6071,0.26785,1.25-1.7857,0.98214-2.0536,1.1607-1.5179,1.6071-0.71428h1.6071l1.5179-1.5179,1.1607-0.625h1.4286l0.98214,0.98214,0.625,1.5179,0.98214,1.6071-0.26786,1.6964-0.89285,0.98214-0.35715,1.3393-0.80357,1.6071-0.17857,1.1607h-1.4286-0.80357l-0.71429-0.53572-0.80357,0.53572-0.625,0.80357-0.53571,1.5178-0.53572,2.1429-0.0893,2.5-0.35715,1.875-1.1607,1.25-1.3393,0.98214h-1.7857l-1.5179,1.3393-0.53571,1.7857-1.3393,0.53572-0.44643,1.0714-0.17857,1.4286-1.7857,0.89286-1.7857,0.80357-0.625,1.6964,0.625,1.5178,0.625,0.625-0.26785,1.4286s-0.0893,0.44643-0.44643,0.80358c-0.35714,0.35714-1.1607,1.3393-1.1607,1.3393l-1.4286,0.80357-2.3214,0.89286-1.0714,0.0893-1.1607-0.89286-0.89286-0.89286z","name":"Pskov Oblast"},"no":{"path":"m123.12,188.27,1.5179,1.25,2.1428,0.35714,2.1429,0.17857,1.25,1.1607,2.5,0.53571,2.3214-0.0893,1.0714-0.89286,0.44643,0.625,0.0893,1.7857,2.1429-0.53571,2.3214,0.0893,0.80357,0.80358,0.17857,2.5,0.17857,2.5,0.53572,1.0714,1.3393,0.17858,1.3393,0.44642,0.26785,2.1429,0.71429,1.6964,0.98214,0.80357,0.44643,2.9464,0.0893,2.2321,0.89285,1.4286-0.53571,0.98215-0.71429,0.53571,0,1.6071,0.17858,1.5179,1.4286,1.3393,0.625,0.53571,0.0893,1.9643,0,1.9643-0.17857,1.3393-1.25,0.53571-0.71428-0.26785-0.625-0.80358-0.71429-0.80357-0.17857-1.1607-0.98214-0.80357-0.80358-0.625-2.0536,0-1.5178-0.53572-0.53572-0.35714-1.5178-0.53571-0.71429-0.26786,0-0.44643s-0.26786-1.25-0.26786-1.6964c0-0.44643-0.0893-2.0536-0.0893-2.0536l-0.625-0.98214h-1.7857l-0.89285-0.44643-0.44643-0.98214-0.98215-0.625-0.53571,0.625-0.89286,1.0714-1.6964,1.4286h-2.1428c-0.35715,0-1.5179,0.0893-1.5179,0.0893l-0.71429-1.0714-1.0714-0.71428-2.3214-0.17857-2.6786-0.0893-1.5179-0.44643-1.3393-0.98214-2.3214-0.44643h-2.1428l-0.89286-1.1607-1.25-1.0714-0.53571-0.71429-1.1607-0.71428,0.98214-2.7679,0.71429-0.44643,1.1607-1.5179,1.0714-1.0714,2.0536-0.625,2.5-1.9643,0.625-1.9643,0.0893-3.5714,0.98214-2.5893,1.0714-1.25,1.1607,0.26786z","name":"Novgorod Oblast"},"tr":{"path":"m98.661,216.66,3.2143-0.625,2.2321-1.6072,1.3393-1.6071,0.17857-1.4286-0.80357-1.4286-0.26786-1.3393,0.35714-0.89286,1.4286-0.89285,1.6964-0.625,1.1607,0.44643,1.5179,1.5178,1.0714,0.98215,0.98215,0.53571,1.6964,0.17857,2.4107,0.35714,1.3393,0.98215,1.3393,0.26785,3.2143,0.44643,1.5178,0,1.25,0.71429,0.80358,0.71428,1.875,0.35715,1.7857-0.17857,1.875-1.6072,1.25-1.25,0.71429,0.44643,0.625,0.80357,1.4286,0.44643,1.4286,0.17857,0.53571,1.5179,0.17857,2.4107,0.35715,0.80358,1.1607,0.71428,1.4286,0.80357,1.0714,0.26786,1.875,0.35714,0.98214,0.26786,1.25,1.0714,0.44643,1.3393,0.98214,1.0714,0.80358,0.53572,1.7857-0.35715,1.3393,0.0893,1.25,0.71429,1.6071,0.89285,0,1.5179-0.625,1.6964-1.25,1.6071-1.6071,0.44643-1.25,0.98214-1.5179,1.3393-0.89286,1.0714-0.44643,0.71428-0.26785,1.5179-0.44643,1.0714-1.25,1.4286-0.53572,1.4286-0.35714,2.0536-2.0536,1.9643-2.0536,1.3393-1.0714,0.17858-0.53571-0.71429-0.26786-1.7857-1.6964-0.71429-3.8393-0.89286-3.8393-1.6071-3.0357-0.80357-1.5178-1.0714-0.0893-3.0357-0.35714-1.6964-3.3036,0.80357-3.4822,0.26786-1.3393-0.89286-3.4821-4.4643-1.5179-2.0536-3.3036-0.625-2.7679-0.53571-1.4286-1.7857z","name":"Tver Oblast"},"vm":{"path":"m137.41,247.73,1.6072,1.7857,2.0536,1.25,1.1607,1.0714,1.3393,0.35714,0.80357,0.89286,0.0893,1.5178-0.89285,1.7857-0.35715,1.0714,1.25,0.625,1.7857,0.26785,1.0714,1.1607,0.17857,1.9643,0.98214,1.875,1.0714,1.25,1.3393,1.25,1.3393,1.3393,1.3393,1.1607,1.7857,1.875,0.89286,1.3393-0.17857,0.98214-0.89286,0.71429l-0.18,0.98,0.53571,0.71429,0.44643,0.71428,0.0893,1.6072-1.7857,0.53571-2.2321-0.0893-1.1607-1.0714-4.4643-0.0893h-5.1786l-1.7857,0.53571-0.71429-1.6964-1.6964-1.9643-1.6071-2.6786-0.80357-4.1964-0.0893-4.1071-0.17857-2.0536-0.44643-0.44643-0.71428,0.44643-1.1607,0.26785-1.4286-1.25-0.26786-2.5893,0.71429-2.0536,1.1607-2.0536,0.44643-1.7857,1.3393-1.0714z","name":"Vladimir Oblast"},"pz":{"path":"m127.05,289.96,1.6964,1.7857,2.0536,1.5179,1.25,0.98214,1.6964,0.625,1.25,1.875,0.71429,1.6071,0.26785,1.9643,0.98215,0.98214,1.0714,1.0714,2.6786,0.17857,1.6964,0.0893,0.625,2.1429,0.89286,1.7857,1.6964,0.71429,2.1429,0.26785,1.4286,1.0714,0.625,1.0714-1.5179,0.89286-0.89286,0.98214,0.0893,4.1071-0.26786,3.4822-2.7679,1.25-1.0714-0.0893-0.89286,1.6071-1.9643,0.98215-1.1607-1.7857-0.98214-0.98214-5.9822-0.0893-1.1607-1.875-0.89286-0.89285-3.125-0.71429-0.98214-1.6071-1.25-1.6964-2.1429-0.71429-2.4107-1.3393-1.6071-1.0714-2.5,0.0893-0.71429-1.875,0.26786-2.5,1.1607-0.89285,3.8393-0.80357,0.89285-2.4107,0-3.4821,1.3393-1.6964,1.3393-1.6071-0.26786-2.5893,0-1.9643,1.1607-0.89286z","name":"Penza Oblast"},"sr":{"path":"m107.23,308.27-0.17857,3.0357-0.26786,1.25-2.2321,1.1607,1.4286,1.6964,1.0714,3.2143,2.2321,0.71429,0.98215,0.80357,0.89285,1.0714,1.7857,0.625,2.5893,2.5,0.89286,1.0714,0,1.875-1.5179,2.0536-2.4107,2.8571-0.44643,1.25,0.44643,1.6964,0.71429,0.89286,2.1428,1.1607,4.0179,3.9286,1.7857,4.5536,1.25,1.4286,1.25,1.3393,0.26786,1.9643-0.71428,2.5-0.53572,2.4107,0.26786,1.7857,0.89286,1.0714,1.6071,0.44643,1.6964,0,1.6964-1.1607,1.25-1.0714,0.44642-2.6786,0.0893-1.875,2.2321-0.625,3.3036,1.25,1.6964,0.35714,1.6072,0,1.3393-1.5179,0.44643-0.53571,1.6071,0.35714,1.3393,1.0714,1.5178,0.89286,4.6429,0,1.1607-1.1607,1.3393,0.17857,0.89286,0.80358,1.6071-0.53572,0-1.7857-0.89286-1.9643-0.35714-1.3393-0.17857-3.9286-0.0893-2.0536-0.71428-1.25,0.0893-2.8571-0.35714-1.6071,0-2.5-0.80357-1.3393-1.1607-1.6071-2.5-1.0714-1.6072-2.0536-2.5893-0.0893-1.0714-0.35714-1.7857-1.6964-0.625-1.25-0.44642-0.89286-1.7857-2.4107-5.625-0.26786-0.53571-0.17857-1.9643-2.5893-3.125-0.89286-2.2321-2.9464-6.1607-3.3036-2.3214,0-1.0714-1.6964,0.44643-2.5-0.80357-0.35714-3.8393,2.1428-1.5179,0.35715z","name":"Saratov Oblast"},"mr":{"path":"m127.59,290.05,1.875,2.1429,2.6786,1.7857,1.7857,1.1607,1.7857,2.7679,0.44642,2.4107,2.0536,2.1429,2.5893,0.0893,1.6071,0.26786,0.89286,2.2321,0.71429,1.4286,2.0536,0.89286,1.7857,0.35714,1.25,0.625,0.53572,0.80358,5.8928,0.17857,2.6786-3.5714,0.35715-0.53572,0.71428-1.3393,0.0893-2.1429-0.0893-1.9643-1.7857-0.98215-0.35714-2.5-0.0893-0.80357-1.6964,0,0,0.17857-0.80357,0.89286-1.3393,0.80357-5.2678,0-2.5893-2.3214,0.17857-3.5714-1.1607-1.0714-0.17857-0.80358,1.0714-1.0714,0-1.6072-2.5893-0.53571-1.7857-0.0893-0.80357-1.25-0.71429-1.6964-1.25,1.1607-2.1429,2.3214-2.4107,1.5178-1.5179,0.98215-2.9464,0.26785z","name":"Republic of Mordovia"},"cu":{"path":"m159.11,299.07,1.3393-0.89286,2.9464,0.44643,1.3393,0.44643,1.0714-1.3393,0.26786-1.7857,2.2321-1.1607,2.2321-2.2322,3.125,0.0893,2.6786,0,1.25,1.5179,0.35715,2.9464-0.17857,1.5179,0.35714,1.25,0.71428,1.1607-0.0893,0.71428-1.3393,0.625-4.1071-0.0893-1.3393,0.53571-0.80357,0.80357,0,0.89286,1.1607,0.71428-0.17857,0.89286-1.3393,1.1607-1.7857,1.25-2.1429,0.98214-1.3393,0.44643-1.3393-1.3393-2.5-0.44643-0.98215-0.625-0.98214-1.3393-0.80357-0.80357,0.80357-3.5714z","name":"Chuvash Republic"},"ul":{"path":"m158.57,305.32-1.875,2.6786-0.98215,1.4286-4.8214-0.26785-0.80358,0.26785-1.7857,1.4286-0.80357,1.1607,0,2.3214,0,2.5893,0,1.6964-1.7857,1.4286-1.0714,0.26786-0.89286,0-1.25,1.25-1.25,1.0714-0.625,0.26786,0.89286,1.9643,1.6071,1.6071,2.3214,0.44643,1.5178,0.17857,1.25,1.6072,1.5179,0.80357,2.1429,0.17857,0.89286-0.625,0.0893-1.875,0.17857-1.6964,1.0714-1.6964,0.35714-1.3393,1.3393-0.26786,0.80357,0.53571,1.3393,0.625,1.875-0.17857,1.3393-0.98214,1.0714,0.17857,1.6964,1.4286,2.0536,1.875,1.5179,1.6072,0.80357,1.4286,2.3214,0.17857,1.1607-1.5179,2.8572-2.0536,2.0536-1.1607,0.26785-2.3214,0-3.5714-1.875-1.1607-3.6607-0.0893-2.0536-1.4286-0.98214-1.1607-2.5-0.26785-0.98215-1.5179-3.0357-1.5179-0.80357-1.5179-0.625-2.0536z","name":"Ulyanovsk Oblast"},"ss":{"path":"m150.98,329.96,1.3393,2.1428,0.71428,2.8572,0.44643,2.8571,0,2.1429,0.625,2.3214-0.0893,2.8571,0.35714,2.4107,0.53571,2.1429,0.625,1.9643,0.71429,0.98214,5.8929,0.0893,3.0357-1.6071,1.25-1.9643,1.9643-0.35715,1.6964-0.0893,2.1429-1.4286,1.4286-0.89286,1.25-0.17857,1.6072,0.625,1.7857-0.17857,0.80357-1.875,1.0714-2.3214,4.375-2.5893,1.7857-1.4286,1.1607-2.0536-0.625-1.5179-0.80357-1.7857-0.35715-2.5-1.1607-1.25-0.71429-2.4107-3.6607-0.26785-2.3214-1.6964-1.4286-0.80357-3.5714,2.3214-1.9643,2.2322-2.4107,0.0893-0.98214-0.98214-2.2321-2.4107-2.4107-1.875-1.0714-1.0714-0.89285,0.26785-1.6072,0.71429-1.6964-0.0893-1.5178-0.80357-1.0714,0-0.625,0.98215-0.53572,1.0714-0.80357,1.5179-0.17857,1.3393,0,0.98214-0.0893,0.71429z","name":"Samara Oblast"},"ob":{"path":"m155.89,352.82,0.53571,1.4286,0.71429,1.6071-1.0714,1.6072,1.0714,1.4286,3.0357,0.17857,1.9643-0.35714,2.5,0,0.17857,2.3214-0.89286,2.6786,0.35714,1.0714,3.5714,1.6071,2.1429,1.4286,0.17857,3.5714,0,4.1071,0,1.4286-1.25,0.89286,0,1.9643,0,0.71428,0.71429,1.0714,1.0714,0.89286,1.7857-2.5,0-1.4286,0.89286-0.89286,1.4286,0,1.0714,2.3214-0.17858,1.4286-0.71428,1.25-0.35714,1.4286l0.36,1.43,1.25,0.89286,2.3214,1.25,1.7857,0.89286h1.9643,2.5l1.4286-1.0714,1.6071,0.17857,1.9643,1.0714,0.89285,1.6071,0.35715,1.7857,1.0714,1.25h1.7857l0.89286-0.89285h1.25l1.6071,0.53571,1.25,1.4286,0.53571,2.6786-0.17857,3.5714,1.7857,1.6072,1.4286,0.89285,1.0714,1.6072,1.0714,0.53571,1.6071-0.71429,1.4286-0.17857,1.6071,1.4286v1.25l1.9643,1.7857,1.25,0.71428,2.1429,0.35715h2.6786l1.4286-0.17857,1.25-0.89286,1.25-1.0714,0.89286-0.89286-0.17858-1.25-2.3214-3.2143-1.0714-1.25v-3.75l-0.71429-2.1429-0.17857-2.1429,1.0714-2.3214,1.9643-1.4286-1.4286-1.7857-3.0357-2.8571-1.9643,0.35714-1.4286-0.17857-0.89286-1.25h-2.3214l-1.4286,1.25-1.0714,1.25-0.53572,1.0714h-2.5l-1.0714-2.5-3.2143-0.17858-2.8572-0.35714-0.89285-2.5-1.08,0.33-1.79,0.89h-1.4286l-0.17857-1.0714,1.4286-1.7857,2.5-2.5-0.53-1.78-0.71-0.36v-0.89286l2.5-1.9643,0.35715-1.0714v-2.1429h-1.7857l-2.1429,0.71429-1.6071,0.17857-1.4286-1.9643-0.53571-2.3214,1.25-1.7857,1.0714-0.89286v-1.6071l-0.35714-2.3214,1.0714-0.89285,0.17857-3.0357-1.25-1.9643-1.7857-1.7857-0.17857-1.6071,1.0714-2.8571,1.6072-2.5,0.89285-1.7857-0.53571-1.25-2.1429-1.6071-1.4286-2.1429-1.25-1.4286-1.6071,1.7857-1.4286,1.4286-4.1072,2.5-1.4286,1.9643-0.35714,1.9643-0.53571,0.35714-1.9643,0.17857-2.1429-0.35714-1.9643,0.53571-1.9643,1.4286-2.8571,0.53572-1.0714,0.71428-1.4286,1.7857-2.1429,1.25h-2.5z","name":"Orenburg Oblast"},"nn":{"path":"m156.25,271.57,4.2857-0.53571,2.5-1.4286,3.5714-0.71428,2.6786-1.0714,1.25-0.17857,2.3214,1.25,1.7857,1.0714,2.6786-0.17857,1.4286,0,2.6786-1.0714,1.25,0.17857,1.4286,1.9643,1.0714,2.1429,2.5,0.17857,2.5,1.7857,1.0714,1.25,0.89286,2.5,1.25,1.4286-0.17858,1.6071-1.25,0.89286-1.7857,0.17857-0.71429,0.89286-1.6071,0-0.71428-0.89286-1.7857-1.0714-1.6071,0.71429,0,1.6071-1.25,1.4286-1.25,0.53572-2.1429-0.89286-2.1429-1.6071-3.0357-0.89286-1.7857,0-1.0714,0.89286-0.71429,1.7857,0,2.8571-0.17857,2.8572,0.53571,1.0714-1.0714,1.4286-2.3214,1.4286-1.4286,0.89285,0,1.4286-0.35715,0.89285-0.89285,0.71429-2.8572-0.35714-1.0714-0.17858-0.89285,0-0.71429,0.53572-0.38692,0.34215-0.69448-0.12626-0.44194-0.50508-0.50508-3.0936-1.5784-0.12627-1.5784,1.4521-2.2097,0.44194-3.9775-0.25253-2.0834-2.0203,0.1894-3.3461-1.2627-1.389-0.0631-0.75761,1.0102-1.4521-0.0631-1.0733-3.7249-0.63135-1.1996-0.75761-1.0733-2.7148,1.1364-2.336-1.1996-3.3461,2.0203-0.50507,3.283-0.12627,5.9978,0.12627,1.2627,0.88388,2.0203,0.1894,2.0203-0.75761,0.12627-1.5152-0.94702-1.4521,0.63135-1.0733z","name":"Nizhny Novgorod Oblast"},"ml":{"path":"m181.51,286.29,2.2728,2.336,2.4622,2.0834,2.7779,1.1364,2.9673,0.0631,2.4622,2.0834,1.5784,1.6415,0.44194,1.3258,0.63134,0.94702-0.3788,1.6415-0.56821,1.1364-0.0631,1.8309-1.5152,1.389-0.88388,0.56821-1.4521-0.12627-1.1996-1.5152-1.1996-0.44194-1.389-0.82075-1.7046-0.12627-0.50508,0.88389-1.7046,0.88388-2.5885,0.12627-1.9572-0.82075-1.1364-0.69448-0.88388-3.0305-0.37881-4.7351-1.1996-1.4521-4.0406-0.0631-1.3258-0.1894-0.63134-1.0733,0-2.0834,0.0631-3.0936,0.37881-1.8309,1.0102-1.0733,0.82075-0.63134,2.5885,0.3788,2.2728,0.88389,2.9673,1.7678z","name":"Mari El Republic"},"ta":{"path":"m160.93,308.14,0.0631,1.1364,0.44194,1.0733,0.88389,1.0102,1.5152,0.63134,1.8309,1.4521,1.5152,0.75762,1.389,0.44194,1.4521,1.0733,1.389,1.0102,2.4622,0.44194,1.4521,0.0631,1.7046,0.88388,0.12627,2.2097-0.37881,2.9042,0.44195,1.4521,2.0834,1.1996,1.0733,0.75761,2.9042,0.18941,0.82075,0.69448,0.56821,1.7046,1.3258,2.1466,0.63134,2.5885,0.88389,1.7678,1.6415,1.894,1.389,2.2728,1.6415,1.1364,0.88388,0.88388,1.1996,0.0631,2.9042-1.8309,2.9042-2.7148,0.44194-0.63135,0-1.894-1.0102-1.0102-0.0631-0.88388,1.8309-0.25254,1.2627,0.31567,0.75762,0.56822,1.3258,0.3788,1.6415-0.31567,1.1996-0.69448,2.9042-0.12627,1.5152-0.37881,0-0.94701-0.37881-1.2627-1.1996-1.5784-0.63134-1.2627-1.5152-0.44194-0.88389-1.2627s1.2627-1.0102,1.5784-1.1364c0.31567-0.12627,2.2728-0.75762,2.2728-0.75762l0.0631-1.4521s-1.1364-0.18941-1.389-0.50508c-0.25254-0.31567-0.69448-0.94702-0.69448-0.94702l2.0203-1.3258,2.0203-1.389,0.12626-1.1364-0.69447-0.82075h-1.5152l-0.69448,0.0631-1.1364,1.3258-0.56821,0.69448h-1.894l-0.12627,0.88388-0.12627,1.3258-0.82075,1.1364-1.5152-0.12627-0.75761-1.4521-1.1364-0.94702-0.82075,1.0102-1.7678-0.31567-0.56821-2.2728-1.4521-0.88388-0.63135-1.2627,0.12627-1.3258-1.1364-1.3258,0.0631-2.6516,0.12627-3.0936,0.63135-0.94702-0.25254-1.0102-0.69448-1.0733-0.56821-0.56821-1.0102,0.44194-0.88388,0.37881-1.0102-0.12627-1.0733-0.88389-0.88388-0.82074-1.8309-0.69448-1.4521-0.44195-0.94702,0.94702-1.8309,0.75762-1.8309,0.1894-1.6415-0.31567-1.9572-1.0733-1.389,0.50508h-2.7148l-2.0834,0.0631-1.389,1.1364-0.0631,0.88389,0.69448,0.50507,0.12627,0.82075-0.82075,1.0733-1.5152,1.2627-2.6516,1.0733-1.5784,0.69448-1.1364-0.75762-2.0834-0.82075z","name":"Republic of Tatarstan"},"iv":{"path":"m144.26,252.7,2.0203-1.1364s0.94702-0.50507,1.1996-0.50507c0.25254,0,2.5885,0.31567,2.5885,0.31567l2.7148,1.1364,2.3991,1.1364,1.2627,1.1996s1.4521,1.0102,1.7046,1.1996c0.25254,0.18941,1.4521,1.2627,1.4521,1.2627l1.7046,0.63135,1.1364-0.88388h0.88388l0.50508,0.82074,0.1894,1.1996,1.0102,0.75762,1.5152,0.82074,1.0102,0.63135,0.44194,1.0102-0.69448,1.0733-0.12626,0.88388,0.75761,0.37881,0.88388-0.56821,1.389,0.63134,0.69448,0.94702,0.25254,1.2627-0.25254,0.50508-1.894,0.69448-2.9673,0.82075-3.0936,0.50507-2.3991,1.5152-3.4724,0.50508-0.94702-0.12627-1.7678-2.3991-3.5987-3.4724-2.7148-3.3461-0.82075-2.7779-0.88388-1.0102-2.1466-0.44195-0.69448-0.56821,0.50507-1.4521,0.56821-1.3258z","name":"Ivanovo Oblast"},"yr":{"path":"m154.11,228.33,1.7678,1.5784,1.9572,0.50507,1.7678,0.50508,1.3258,1.6415,1.9572,1.5784,1.5784,0.0631,1.0733-0.69448,0.82075,0.31568,0.3788,1.4521,0.12627,3.4093-0.0631,2.6516,0.25254,1.5152,0.88388,1.0102,0.56821,0.94702-0.37881,1.0733-1.7046,1.1364-2.7148,1.3258-3.283,2.2097-1.6415,1.0733-3.3461,0.88388-2.4622-0.1894-2.1466-0.63135-2.6516-0.69448-2.1466,0.63135-1.8309,1.0733-1.7046-0.88388-1.4521-1.0102-1.894-1.1364-1.1364-1.1996-0.25254-1.3258,0.56821-1.4521,2.0203-0.88388,2.2097-1.1996,1.6415-2.7779,1.0102-2.9673,1.1996-1.2627,0.75762-2.4622,1.6415-1.8309,1.9572-1.8309,2.7148-1.5152z","name":"Yaroslavl Oblast"},"kt":{"path":"m168.7,245,1.389,0.12627,1.2627-0.75762,1.5152-1.389,1.894-0.75762,1.894,1.1364,1.894,1.5152,2.5254,0.12627,0.63135-0.75761,0.75761,0.50507,1.2627,2.1466,2.2728,2.2728,1.5152,1.5152,1.1364,1.894,0.3788,2.2728,1.2627,1.7678,1.5152,1.6415,2.5254,1.389,1.7678,1.5152,1.7678,1.894,2.0203,0.88388,1.894,0.12627,2.0203-2.0203,1.6415-0.3788,0.63135,1.894,1.1364,1.0102-0.12627,1.6415-1.6415,1.5152-0.12627,1.894-0.3788,2.5254s-1.7678,0.75761-2.3991,0.75761c-0.63134,0-6.3134-0.12626-6.3134-0.12626l-3.1567,0.12626-1.1364,1.1364-1.2627,0.50507-2.0203-0.75761-1.5152-0.75762-2.0203-0.3788-1.0102-1.5152-0.88388-1.6415-0.75762-0.63135-1.1364-0.12627-0.88388,0.50508-2.1466,0.75762-3.283-0.25254-1.7678-0.50508-2.0203-1.2627-0.50508-0.50508,0.25254-0.63134v-1.1364l-1.389-1.2627-0.88389-0.50508-0.63134,0.37881-0.38556,0.10695-0.53571-0.35714,0.0893-0.89286,0.71429-0.625,0.0893-0.98214-0.89285-0.71429-1.7857-1.0714-0.98214-0.98215-0.26786-0.98214-0.71428-0.89286h-0.98215l-0.89285,0.625-0.625,0.0893-1.25-0.71429-1.4286-0.80357-1.3393-1.25-1.7857-1.3393-0.69-0.57,1.07-0.71,2.05-0.54,2.3214-0.71428,2.8571-2.0536,3.3036-1.6964z","name":"Kostroma Oblast"},"le":{"path":"m123.49,177.57,1.7678-1.6415,1.5152,0,2.2728-1.894,2.5254-0.50507,2.2728,0.63134,2.9042,2.1466,2.7779,1.5152,0.75761,2.5254,0.12627,1.389,1.0102,1.1364,1.1364-0.37881,0.75761-2.0203-0.12627-2.3991-0.88388-1.6415-0.88388-1.894,0.12626-2.0203,1.1364-1.2627-0.25254-1.894-0.75762-1.0102,0-0.37881,1.2627-0.25254,3.283,0.25254,3.5355,1.2627,2.2728,0.12627,1.894,0.12627,1.2627,1.1364,0.63135,1.2627,0,1.7678-0.37881,1.6415-0.25254,2.1466-0.63134,1.7678-2.1466,1.2627-0.75761,1.0102-1.0102,1.894-1.0102,1.1364-1.7678,1.1364-0.63135,1.2627,0.25254,1.1364,1.389,0.75762,2.1466,0.25253,1.0102,0.88389,0.25254,1.6415,1.0102,0.75762,2.1466,0.12627,1.1364-0.50508,3.4093-0.25254,1.7678-0.63134,2.0203-0.25254,1.5152,0.75761,1.0102,1.6415,1.1364-1.2627,1.389-1.7678,0.75762,0.88388,0.50507,2.0203,0.63135,2.2728,2.1466,0.50507,1.2627,0.75762,1.1364,1.0102,0.12626,1.2627,0.12627,1.6415-0.12627,1.7678-1.2627,0.75761-2.2728-0.25254-1.389-0.88388-1.389-0.25254-0.75761,0.88388-1.5152,1.0102-3.0305,0-1.5152,0.3788-2.7779,3.0305-1.0102,1.389-0.37881,2.1466-1.6415,1.0102-1.1364,0.12627-0.3788,1.2627-1.2627,0.63134-0.63135-1.0102-1.1364-1.1364-2.2728-0.12627-0.75761,0-1.1364-3.0305,0-2.9042-1.0102-1.5152-0.88389-1.894-0.12627-1.6415-2.2728-0.88388-0.88388-0.63135s-0.37881-1.0102-0.37881-1.5152c0-0.50507-0.25254-3.4093-0.25254-3.4093l-0.75761-1.1364-2.3991-0.25254-1.389,0.75761-0.75762-0.50507-0.12627-1.2627-0.63134-0.88389-1.0102,0.63135-2.1466,0.3788-2.7779-0.88388-1.5152-0.88388-3.283-0.37881-1.2627-0.88388-1.0102-0.75762,0.63135-1.2627,0.88388-2.1466,0.88388-1.389,0.12627-1.2627z","name":"Leningrad Oblast"},"ki":{"path":"m207.59,265.33,1.2627-0.88388,0.12627-2.0203,0-2.0203-1.0102-1.389-0.12627-1.6415,1.5152-0.37881,3.9143,0.25254,2.5254-0.88388,2.6516-1.1364,0.63134-1.389,1.1364-0.63134,2.7779,0.25254,1.389,1.7678,0.12627,2.7779-0.63134,3.0305-1.0102,1.389-0.75761,2.7779-1.894,0.75762-2.0203,0.12626-1.6415,1.7678-0.63134,1.6415-1.0102,0.63134-0.75761,0.88389,0.75761,1.389,1.6415,0.88388,1.0102,1.389-1.6415,1.894,0.12626,1.894,1.1364,0.88389,1.2627,0.50507,0.88388-1.389,0.88388-1.894,2.7779,0,3.1567,0.3788,4.2932,1.2627,1.7678,2.2728,2.1466-0.12627,2.1466-1.6415,1.6415,0.37881,1.2627,1.0102,0.75762,1.894s1.0102,1.5152,1.389,1.7678c0.3788,0.25254,2.5254,1.894,2.5254,1.894l0.25254,1.5152-0.88389,2.0203-2.0203,1.1364-3.5355,0.25253-1.2627,0.63135-1.2627,1.5152-0.25254,1.389,1.0102,1.389,0.12627,1.1364-1.5152,1.1364-0.75762,1.389-0.12627,2.1466-1.2627,1.0102-2.7779,0.12627-1.1364-1.2627-1.0102-2.5254-2.0203-0.12627-1.389-0.3788v-1.894l-2.0203-1.1364-3.1567,0.75761-1.7678,1.389s-1.2627,1.0102-1.2627,1.5152c0,0.50508-0.3788,2.2728-0.50507,2.7779-0.12627,0.50508-1.6415,1.5152-1.6415,1.5152l-2.5254,1.1364-1.894-0.50507-1.2627-1.389-1.5152,0.25253s-0.75761,0.50508-1.0102,1.389c-0.25254,0.88389-0.12627,2.7779-0.12627,2.7779l0.12627,1.894-2.0203,0.63135-3.4093,0.3788-0.25254,1.1364v1.389l-0.3788,1.389-1.7678,0.88389h-0.63135l-0.63134-1.5152-0.50508-0.37881,0.12627-2.5254,0.25254-2.5254,0.50508-1.5152-0.88389-1.6415-0.25254-1.2627,0.75762-2.9042,0.63134-2.5254-1.0102-1.5152-1.6415-2.5254-2.1466-1.5152-0.88388-0.63134-3.9144-0.12627-1.7678-1.2627-1.6415-1.5152-1.6415-1.5152-0.50507-0.50508,0.50507-1.0102,1.2627-1.6415,0.25254-1.0102,1.1364-0.75761,1.5152,0.50507,1.894,1.389,1.389-0.75761,2.1466-0.63135,1.389-1.2627v-1.5152l-1.2627-1.894-0.63135-1.5152s-0.78918-1.1049-0.85231-1.2627c-0.0631-0.15784,0.56821-0.69448,0.56821-0.69448l0.97858-0.63135,0.75762-0.75761s2.2728-0.0316,2.8095-0.0316c0.53664,0,3.1567,0.0631,3.8828,0.0631,0.72605,0,3.7881-0.44194,3.7881-0.44194l1.4521-0.59978s0.12626-1.5784,0.15783-1.7993c0.0316-0.22097,0.47351-2.4938,0.47351-2.4938l2.0203-2.3991z","name":"Kirov Oblast"},"bs":{"path":"m211.5,329.86,2.3991-1.6415,2.5254-1.6415,1.5152-0.25254,1.894,2.6516,2.2728,2.2728,2.9042,0,2.6516,2.5254,1.7678,2.5254,1.1364,1.7678,1.7678,0,1.2627,2.1466,2.6517,2.3991,2.2728,1.6415,2.0203,1.7678,1.2627,1.1364,0.88389,1.389-0.37881,1.1364-1.6415,0.63134-0.88388,1.2627,0.25254,1.389,1.389,0.63135-0.63135,1.2627-1.5152,0.50508-1.2627-0.75762-2.3991,0.37881,0,1.0102-1.5152-0.25254-0.50508-0.88388-1.5152-1.0102-4.5457,0-1.1364-0.37881,0-1.2627,1.7678-1.2627,0.12627-1.389-1.0102-0.88389-1.6415-1.1364-2.5254,0.25254-1.0102,2.1466-1.7678,2.6516-0.88388,2.0203,0.50508,3.0305,1.894,1.0102,2.0203-0.75761,1.6415,0.75761,1.0102,2.0203,2.5254,0.12627,2.0203,0.75761,2.7779,0,1.7678-0.50508,1.5152,1.1364-0.63135,1.389-1.894,1.5152-1.2627,1.1364-1.0102,1.389-1.2627,0-1.2627-0.63134-2.1466-0.75762-1.6415-0.3788-1.6415,1.2627-0.3788,1.5152-0.63135,1.389-2.3991,2.6516-1.6415,2.3991-3.9143,3.6618-1.894,1.5152-0.25254,2.0203-0.63134,1.5152-2.9042-0.25254-1.6415,1.7678-1.2627,1.389-0.50507,0.63135-2.0203,0-1.1364-2.0203-0.50508-0.63134-5.4296-0.63135-1.389-2.1466-2.7779,0.88388-1.2627-0.12627,0-0.50507,3.4093-4.4194,0-1.6415-0.88389-0.63134,0-1.1364,1.7678-1.1364,1.0102-1.389,0-2.0203-0.25253-0.50508-1.894-0.12627-2.2728,1.2627-1.7678-1.1364-1.1364-2.3991,1.2627-2.3991,1.0102-1.894-0.25254-2.5254,0-0.75761,0.88389-1.5152,0-3.1567-2.5254-2.9042-0.12627-2.0203,1.0102-2.6516,2.0203-4.1669,2.9042-2.1466,3.9143-3.1567,1.0102-2.1466-0.88389-1.389-0.12627-0.12627,0-0.75761,1.389-0.25254,2.3991,0.75762,1.389,0.12626,1.7678-0.63134,2.6516-0.25254,1.7678-0.12627,0.88388-0.63134,0-1.7678z","name":"Republic of Bashkortostan"},"cl":{"path":"m242.18,347.66,1.7678-0.88388,2.7779,0.50507,2.3991,2.1466,2.3991,1.7678,3.0305,1.894,2.9042,0,1.5152,1.6415,1.6415,2.3991,0.75761,1.894-0.63135,3.1567,0,2.7779-0.88388,1.389-1.7678,0.63135-1.6415,1.1364-0.75762,1.2627-2.0203,0.63135-1.894,1.5152,0,1.1364,1.5152,1.5152,2.0203,2.0203,1.1364,2.3991-0.37881,2.7779-0.75762,1.7678-2.3991-0.63135-2.6516-0.50507-3.283-0.37881-2.0203-0.50508-1.5152-1.7678-2.0203-1.7678-1.1364-1.1364-1.1364,0.50508-1.5152,1.1364-0.88388,1.0102,0,1.894,1.6415,1.2627-0.37881,0.75761-2.2728,0.63135v1.0102c0,0.50508,0.75761,2.0203,0.75761,2.0203l2.0203,1.7678,0.12627,1.894-1.5152,0.63134-1.5152-1.5152-1.389-1.2627-2.2728-0.63134-3.283,0.12627-1.5152,0.25253-0.63134,1.2627,1.0102,1.389-0.37881,1.894-1.0102,1.6415-4.5457,0.25254-1.6415-0.88389-1.6415-0.63134,0.50507-2.0203,1.6415-0.88388-0.75761-1.7678-2.0203-2.3991-1.6415-1.0102-1.894,0.12627-1.389-0.63135,0.63134-2.7779,1.7678-2.6516,4.4194-4.1669,3.7881-4.672,1.2627-2.9042,1.389-0.88389,2.5254,0.25254,2.0203,1.0102h2.0203l1.894-2.2728,2.2728-1.894,0.50508-1.389-1.5152-1.2627-2.1466,0.50507h-3.0304l-2.7779-0.88388h-1.5152l-0.88388-1.894-1.389-0.50507-1.7678,0.63134-1.0102-0.37881-0.88389-0.63134-0.63134-1.894-0.12627-1.6415,3.6618-5.6821,0.75762-0.63135,1.7678,0.37881,1.7678,0.88388,0.63134,1.1364-0.3788,0.75762-1.2627,1.1364v1.1364l-0.12627,0.12627,0.75761,0.63135,2.6516,0.12627h2.2728l1.5152,1.0102,1.2627,1.1364,1.1364-0.63135,0.50507-0.75761,2.0203,0.12627,1.7678,0.37881,1.1364-1.2627-0.37881-1.0102-0.75761-0.88388,0.25253-1.5152,1.5152-1.0102,0.63135-1.1364z","name":"Chelyabinsk Oblast"},"ud":{"path":"m231.7,302.33-0.12627,1.389-2.0203,2.7779-1.5152,1.389,0.12626,1.389-1.6415,1.0102-1.1364,1.5152-1.5152,2.3991-0.50508,1.894-0.50508,3.1567-2.0203,1.0102-2.2728,0.12627-0.63135,1.1364-0.37881,3.0304-0.12627,1.389-3.0304,2.0203-2.2728,1.389-1.0102,0-1.2627-1.5152-1.7678-0.75762-0.63134-1.2627,1.389-1.1364,2.0203-0.75761,0.50508-1.1364-0.37881-0.50508-1.5152-0.88388,0.25254-0.88389,2.7779-1.7678,1.0102-1.1364-0.50507-1.0102-0.75762-0.63134-2.0203,0.63134-1.1364,1.389-1.5152,0.63135-1.0102,0.25253-0.3788,1.5152-0.63135,0.75762-0.88388,0.25254-0.75762-1.0102-1.389-1.2627-0.75761,0.37881-1.2627,0.37881-0.88388-0.88389-0.63135-1.1364-1.0102-1.0102-0.63135-1.0102,0-1.1364,1.6415-0.88389,1.1364-1.1364,0.25254-2.0203,0.25254-1.0102,3.1567-0.50507,1.6415-0.50508,0.37881-4.4194s0-1.2627,0.63135-1.5152c0.63134-0.25253,1.2627-0.3788,1.2627-0.3788l1.2627,0.63134s1.6415,1.894,2.3991,1.389c0.75761-0.50507,1.894-0.88388,1.894-0.88388s2.3991-1.0102,2.2728-1.6415c-0.12627-0.63134,0.25254-1.6415,0.25254-1.6415l0.3788-1.389,2.1466-2.2728,1.2627-0.75761,2.2728-0.50508,1.6415,0.37881,0.88388,1.1364v0.75761l0.25254,0.63135,1.0102,0.12627,1.6415,0.3788,0.63135,0.50508,0.63134,1.6415,0.75762,0.75761z","name":"Udmurt Republic"},"pe":{"path":"M242.06,274.03l-2.28,1.16,0.5,1.5-0.5,3.53,0.5,1.28,1.41,2.41,2.25,1.62,0.65,1.66-1.4,2.12-2.41,1.03-2.87,0.63-1.66,0.87-1.13,1.54,0.5,1.24,0.63,1.38-0.13,1.03-1.9,1.63-0.38,2.4-0.87,1.6-0.13-0.19-1,0.12-1.28,2.5-2,2.29-0.15,1.53-0.88,0.87-2,2.03-1.91,3.41-0.62,3.9-1.28,0.88-2.25,0.38-1.28,0.78-0.63,4.9,2.53,2.66,2.13,2.28,2.53,0.25,2.28,1.5,3.41,4.94,1,0.37,1.28-0.12,1.12-1.25,0.88-1.28,1.03-1.75,1.25-1.66,1.28,0.88,1.5,1.28h2.41l2.03-0.91,0.5-1.75,0.25-1.91,0.87-0.75,0.88-1,0.78-0.5,2.5,2.75h3.69l0.87-1,0.5-1.5,0.25-1.65,0.88-1.25,4.69-0.38,2.15-0.78,0.63-1.5-0.63-0.62-0.12-1.41,1.12-1.38,0.75-1.03v-1.37l-0.5-0.88-0.62-1.03,0.25-1.75,1-1.53,2.03-1.5,3.15-0.5,1.88-1.91,2.28-1.62,2.28-1.66,2.28-1.65,0.88-0.75,0.5-1.25,1-1.78s0.9-1.12,1.53-1.75c0.63-0.64,1.62-1.91,1.62-1.91l1.16-1.37,0.25-1.66-2.41-0.38-2.65-0.75-2.66-1.65-2.75-1.38-2.66-1.28-2.53,0.66-3.15,0.12-3.66-0.9-2.9-1.63-1.63,0.85-0.41-0.22-1.9-1.25-1.38-2.03-1.12-1.13-2.28-0.78-0.13-1.63-1.12-1.28-1.41-1.5-1.91-0.5-2.62-0.25-2.41-0.78z","name":"Perm Krai"},"sv":{"path":"m286.13,291.72,1.7678-1.1364,1.1364,1.389,0.88388,2.3991,2.6516,1.5152,2.9042,2.1466,1.2627,2.3991,2.2728,2.7779,0.12627,1.7678,0.63135,2.0203,0.75761,1.5152-0.63134,1.7678-1.894,1.894-0.63135,1.7678-0.25253,4.7982,0.3788,2.7779,0.63135,1.0102-1.0102,2.9042-1.5152,1.7678-0.37881,2.3991,2.0203,1.2627,2.3991,2.0203,0.75761,2.0203,0.12627,2.6516-0.63134,1.6415,0,2.9042,0.75761,2.3991-0.25254,1.894s-0.88388,0.88388-0.88388,1.389c0,0.50508-0.50508,2.7779-0.50508,2.7779l-1.2627,1.2627-2.0203,0.12627-1.1364,0.88388h-3.0304l-1.5152-0.88388-2.1466,0.25254-1.389,1.1364-0.88388,1.389-0.25254,2.9042-0.75761,1.1364-1.1364,1.0102-1.7678,0.50508-3.0305,0.25254-2.0203,0.25254-1.0102,0.88388-1.894-0.37881-1.389-1.1364-1.894-1.894-2.5254-1.6415-1.5152-0.63135-2.2728,0.37881-1.894,0.3788-1.389-0.12626-1.6415-1.389-1.894-2.2728h-2.2728c-0.50508,0-1.6415-0.75761-1.6415-0.75761l-4.672-3.1567-1.6415-1.7678-2.9042-0.3788-1.389,0.12627-0.88389,0.12627-1.2627-1.2627-3.9143-3.283-3.1567-3.0305-0.50507-1.389,2.0203-2.9042,1.389-2.7779,0.75762-0.25253,1.6415,1.1364,1.1364,0.75761h2.7779l1.5152-1.389,0.50507-1.7678,0.12627-1.7678,2.5254-1.7678,1.7678,2.0203,1.2627,0.63134h2.3991l1.6415-1.1364,0.75761-2.0203,0.50508-1.894,3.7881-0.75762,2.5254-0.3788,1.389-1.2627v-1.0102l-0.88388-1.389,1.7678-2.1466,0.25254-1.1364v-1.389l-1.0102-1.6415,1.0102-2.5254,2.1466-1.6415,3.283-0.88388,1.1364-0.75762,8.0812-6.1872,0.88388-1.6415,1.6415-2.7779,2.1466-2.5254z","name":"Sverdlovsk Oblast"},"ku":{"path":"m255.69,383.01,2.3991,1.894,3.283,0.88388,4.2932,1.2627,3.1567,0.75762,4.1669-0.50508,2.5254,0.25254,2.9042,1.0102,3.5355,1.1364,3.5355,0.88388,3.283,1.0102,3.4093-0.12627,2.3991-1.2627,3.6618,0,1.0102-1.5152,0-1.894-1.5152-2.1466-1.389-2.7779s-1.5152-0.12627-2.1466-0.37881c-0.63135-0.25254-2.2728-1.6415-2.2728-1.6415l-0.75761-3.1567-1.389-1.7678-2.6516-1.2627-1.5152-1.6415-1.2627-2.2728-1.6415-1.5152-1.389-1.2627-1.0102-1.389,0.50508-2.3991,1.389-1.2627,1.1364-1.894-2.5254,0.37881-3.0305,0.12627-1.389,0.50507-0.75762,0.50508-1.2627-0.37881-2.0203-1.0102-1.7678-1.7678-2.0203-1.389-1.7678-0.75761h-1.2627l-3.0305,0.63134-1.7678-0.12627v1.1364l0.63135,0.88388-0.50508,2.2728v2.2728l-0.25253,2.1466-0.88389,1.1364-2.5254,1.1364-1.389,1.1364-1.5152,1.2627-1.7678,0.88388-0.50507,1.2627,0.63134,1.1364,1.894,1.894,1.389,1.389,0.63134,1.7678v1.894l-0.50507,1.7678z","name":"Kurgan Oblast"},"ko":{"path":"m224.63,259.27,2.1466-0.63134,0.63134-0.88388,1.894,0.12627,1.6415,1.894,2.1466,0.25254,2.1466-0.50508,1.5152-1.894,0.50508-1.5152-0.63135-0.88389,0.63135-1.5152,2.1466-1.2627,4.5457-1.894,2.6516-1.1364,0.25254-1.5152-0.50508-2.5254-2.1466-0.88389-3.283,0.12627-2.3991,1.6415-2.3991-0.75761s-0.50508-1.0102-1.2627-1.0102-1.5152-0.25253-1.5152-0.25253l0.50507-3.0305,1.7678-0.37881,1.389-1.5152,0.50508-1.894,2.1466-0.50508,2.2728,0.12627,0.63135-1.7678-0.63135-0.63134-0.63134-2.1466,0.63134-1.389,4.5457-2.0203v-1.2627l-1.0102-2.5254-0.63135-1.6415-1.6415-1.7678-0.63134-1.1364,0.25254-1.6415,1.2627-0.63134,1.7678,0.75761,1.5152,2.1466,1.6415,1.5152,2.2728,1.894,2.6516,1.2627,1.7678,1.1364,0.50508,1.7678,1.5152,1.5152,3.1567,0.3788,1.894,1.2627,2.9042,0.50507,0.88388,1.2627h2.0203l1.0102-0.63134-0.25254-1.5152-0.75761-1.5152,0.50507-1.0102,0.88389-1.5152s0.25253-1.1364-0.12627-1.6415c-0.37881-0.50508-1.1364-1.1364-1.1364-1.1364v-0.88388l2.7779-3.283,3.1567-2.1466,1.894-2.0203,1.0102-0.88388,2.3991,0.63134,3.4093,0.12627,2.5254,0.75762,4.2932,0.50507,2.1466,0.63135,3.283,0.12627,2.3991-0.50508,1.5152,0.12627,0.12627,1.894,1.2627,1.0102,2.1466,2.1466,5.3033,4.672,7.4499,4.672,6.4397,3.7881,5.177,3.0305,5.5558,3.283,2.7779,1.894,2.2728,0.25254h3.283l2.1466-1.0102,2.5254-2.3991,1.6415-1.2627,2.7779,0.25253,2.3991-0.12626,2.0203-0.63135,1.5152-0.88388,1.6415-0.37881,3.1567,0.12627,1.6415,0.25254-0.50508,1.5152-0.88388,1.1364-1.1364,0.63134-0.50508,1.894,1.2627,1.7678,1.2627,1.389,0.12627,1.894-1.1364,1.389-0.88388,0.25254-0.75762,1.389-2.0203,0.25254-2.3991-0.12627-2.1466,0.88388-2.5254,1.389-1.389,1.1364-3.0305-0.12627-2.1466-0.50507h-3.1567-2.0203l-1.0102,0.3788-1.389,1.5152-0.75762,0.88389-2.1466,1.6415-1.5152,0.50508h-2.3991l-2.3991-0.25254-1.5152,0.50508-2.9042,2.0203-2.2728,1.2627-1.5152,1.0102-1.5152,0.3788-1.2627-0.12626-1.2627-1.0102-0.12626-1.894-0.63135-1.389-1.6415,0.88388-1.5152,1.389-1.0102,1.2627-0.88388,0.50508-1.2627,0.50507-0.75762,0.37881-0.12627,1.7678-0.3788,1.7678-0.63135,1.389-0.88388,1.1364-1.0102,1.6415-1.894,1.6415-1.6415,1.389-1.2627,0.75762-2.7779,3.283-1.894,2.6516-1.1364,3.0305-0.50507,1.6415-1.5152,1.6415-2.0203,0.88388-1.5152,0.63134-1.7678,1.0102h-2.2728l-3.1567-1.0102-3.1567-1.6415-4.4194-2.1466-0.75761-0.3788-2.5254,0.50507h-3.283l-3.0305-0.88388-2.9042-1.389-1.0102,0.25254-1.6415-0.12627-1.5152-1.2627-2.2728-2.3991-1.894-0.88388-0.63135-1.5152-2.2728-3.0305-5.8084-1.1364-1.389-0.63134-1.7678,0.63134-0.75761,0.75762v0.75761l0.37881,0.88389v1.6415,1.0102l-0.50508,0.3788-1.389-0.63134-0.88388-0.37881-1.1364,0.25254-1.5152,0.88388-1.5152,0.50508-1.1364-0.25254-0.88389-1.389-0.88388-0.63135-2.2728-0.88388-6.0609-1.1364-1.2627,0.25254-1.1364,1.1364-0.63135,1.5152-1.1364,0.37881-1.6415-1.389v-1.1364l1.0102-1.389,0.50507-0.75761-0.50507-1.0102-1.1364-1.0102-1.1364-1.0102-0.3788-0.75761,1.5152-1.2627,1.1364-2.5254,1.6415-1.0102,1.6415-0.3788,1.894-1.2627,0.88388-2.3991,1.2627-1.2627z","name":"Komi Republic"},"mu":{"path":"m217.31,136.92,1.1364-1.5152,1.5152-0.75761,2.9042,0,4.2932,0.12626,2.1466-0.50507,2.5254-1.6415,0.88388-2.0203,0.12627-3.5355,1.5152-3.4093,1.0102-1.0102,4.7982,0,2.3991-0.63134,1.0102-1.2627,1.7678-0.12627,2.3991,1.0102,3.0305,1.894,2.2728,1.894,2.6516,0,2.2728-0.25253,0.25254,2.3991,1.894,0.3788,1.7678,1.0102,0,2.2728,0,1.7678-1.0102,0.63134-1.5152-0.3788-0.75761-1.1364-0.25254-0.63134-0.88388,1.0102-0.25254,0.63135,0.50508,1.1364,1.1364,0.88388,0.50507,0.75762-0.3788,1.0102-1.0102,0.63134,0,0.75762,1.1364,1.2627,0.88388,1.5152,0.88388,1.7678,2.0203,2.1466,0.75761,1.7678,0,1.7678,0,1.1364-0.50507,1.1364-0.25254,2.0203-0.12627,5.5558,0,5.5558-0.75762,1.389-0.25253,1.894,0.63134,0.88389,0.63135,1.0102-0.12627,4.0406,0,3.5355-0.63135,1.389-1.7678,1.1364-0.88389,0.88388,0,1.0102-0.25254,0.88389-1.1364,0.88388-2.7779,0.75761-3.6618,0.12627-3.1567,0.50508-1.6415,0.37881-2.5254-0.50508-2.0203-0.75761-1.894-1.389-1.894-2.2728-1.7678-2.2728-1.1364-1.894-0.63135-2.2728-0.3788-2.3991-1.2627-2.6516-1.1364-2.0203-0.3788-1.6415-0.37881-3.9143,0-1.7678,0-1.389-0.88388-0.88389-0.12627-2.9042,0-2.1466,0.75761-1.5152,0.12627-1.1364,0-1.5152-0.88388,0-0.63135,0.88388-0.88388,1.389-0.75762,1.894-0.25253,0.63135-3.5355,0-2.6516-0.25254-0.75761-1.5152,1.389-2.0203,1.1364-0.75761,0.25254-1.0102-1.7678-2.2728-1.5152-1.7678-1.2627-2.7779-1.2627-1.2627z","name":"Murmansk Oblast"},"kl":{"path":"M216.94,136.91l-2.28,1.53,0.12,1.62-1,2.28-1.9,2.04-1.88,0.87-4.31-0.13-0.88,1-2.28,2.16h-2.91l-2.4,0.38-0.13,4.03-0.62,1.9-2.91,0.38-1.87,0.25,0.12,1.4,0.88,1.5-1.78,1.29-1.25,0.5-3.41-0.91-1.66,1.16-0.37,2.9-0.13,4.16-1.25,2.28-2.65,1.62-3.41,1.16-8.72-0.12-3.53-0.91-5.19-0.75-4.28-0.75,0.88,1.87-0.13,1.54,0.07,0.53-0.94,5.65-2.53,1.5-2.03,3.32-2.91,1.87-0.13,1.66,2.66,1.25,1.91,0.75,1,2.4,2.9,0.25,5.07-0.75,1.65-0.9,2.25,0.53,1.78,1.37,1.38-1.62,1.12-0.78,1.78,4.69,1.5,0.62,2.91,1.53,0.06,0.69-0.12,2.69,0.06,1.78-1.63,1.53,1,1.12,2.29,0.5,1.75-0.62,2.53-1,0.62-0.5,1.91,1.5,1,1.9,1.03,1.88,3.16,0.25,3.28-3.03,0.75-1.5,1.25-1.38,2.4-1.28,2.03-1.75,0.5-1.15-0.37-1.25-1.91-0.63-1-1.03,0.13-1.63,1.37-2.4,1.78-1.91,1.66-1.87,1.25-2.16,1.38,0.25,1.78,1.53h1.9l0.88-0.53,0.12-2,1.5-2.03,0.25-1.75-0.25-3.16-0.5-1.53,0.63-1.78,1.4-0.87,1.38-0.63,3.03-2.53,0.5-1.13,0.53-1.28h1.38l3.4-0.62,2.16-1,1.5-1.28v-1.88-3.4l0.25-2.54,1.03-0.87v-1.16l-0.12-2-0.78-1.15-2-0.38-1.41-0.37-0.63-0.88v-0.75l0.63-1.15,1.28-1,0.75-0.63-0.38-1.03-1.65-2.37-1.88-2.29-1.4-2.15-1.75-2.53z","name":"Republic of Karelia"},"vo":{"path":"m185.36,208.76c0.12627,2.5254-1.389,5.0508-1.389,5.0508l-1.5152,1.894s-0.3788,1.0102-0.3788,1.7678c0,0.75762,0.12626,1.389,0.12626,1.389s0.63135,1.389,1.894,2.1466c1.2627,0.75761,2.0203,2.7779,2.0203,2.7779l1.0102,1.894,1.5152,1.2627,1.2627,1.0102,1.1364,1.894,1.2627,0.37881,3.1567,0.50508,1.5152,2.2728,1.0102,1.894,1.7678,0.63135,0.25254,0.63135,1.0102,2.2728,1.2627,0.75761,2.6516,0.25254,1.5152,0.12627,0.50507,2.7779,1.2627,2.0203,2.7779,1.389,1.389,0.12627,1.0102-0.63134,1.389,0.12627,1.0102,0.50507,0.75761,1.0102-0.63134,1.5152-0.75762,1.389,0.25254,0.75762,1.2627,1.1364,0.75761,0.50508,1.0102,0.50507,0.3788,0.63135v1.0102l-1.5152,1.5152-2.0203,0.63135-2.0203,0.75761-4.2931-0.25254-1.2627,0.88389,0.25253,1.1364,0.88389,1.2627v2.6516,1.1364l-1.0102,1.1364-0.75761-0.63134-1.1364-1.0102-0.37881-1.5152-1.0102-0.12626-1.6415,1.0102-1.0102,1.0102h-1.7678l-3.0305-1.5152-2.1466-2.1466-2.0203-1.1364-1.894-1.6415-2.0203-2.7779v-1.894l-1.894-2.7779-2.5254-2.2728-1.5152-2.0203-1.2627-1.7678-0.63135,0.75761-1.6415,0.12627-1.6415-0.25254-2.2728-1.894-0.88388-0.50508-1.2627,0.63135-2.7779,1.7678-0.63135,0.37881-1.2627,0.12627-0.88388-0.50508-0.50508-1.2627-0.63134-1.894,0.25254-4.0406-0.50508-2.5254-0.50508-1.2627-1.2627,0.12627-1.2627,0.37881-0.88388-0.25254-1.389-1.2627-1.6415-1.7678-4.0406-1.0102-1.2627-1.1364-0.50508-1.0102,0.63135-2.0203-0.50508-0.88388-1.0102-0.75761-1.1364-0.63135-1.894-0.37881-0.25254-0.12627,0.50508-2.7779-0.50508-1.6415-0.63134-1.2627-0.88388-0.88389-0.37881-0.50507-0.12627-1.0102-0.25254-1.5152,0.63135-0.88388,0.75761-0.88388,1.389-0.25254h1.6415l0.88388,1.2627,1.0102,0.88388,1.1364-0.50507,0.25253-1.1364,1.2627-0.25254,1.1364-0.63135,0.75761-1.1364,0.12627-1.5152,3.283-3.6618,1.2627-0.88388h1.7678l2.0203-0.37881,1.389-0.75762,0.88388-0.63134h1.1364l1.5152,0.88388h1.2627l0.88389,0.75762,0.50507,0.88388,1.389,0.63134h1.1364l1.389-0.3788,1.5152-0.50508,1.1364-0.37881,0.63135-0.25253,0.88388,0.12627,1.0102,0.88388,1.2627,1.6415,0.50507,1.2627z","name":"Vologda Oblast"},"ar":{"path":"M391.06,151.03l-3.56,1.06-2.16,0.91-3.56,0.19-1.59,0.87s-1.26-1.07-1.97-1.25c-0.72-0.18-0.91,1.1-0.91,1.1l-1.78,2.65-2.69,1.63-3.03,0.87-2.31,1.78s-2.15,0.37-3.22,0.72c-1.07,0.36-2.5,0.19-2.5,0.19l-1.59,0.72,1.06,1.78-2.16,1.25,0.38,0.72,1.25,1.44,1.78,1.59,1.78,1.78,0.91,1.63,1.4-0.72,0.91-1.97,2.16-0.72,1.25-0.53,1.93-0.19,0.91-1.59h1.97l1.25,0.87,1.59-1.25,1.1-1.25,2.65-0.15,0.72-0.57,3.41,0.72,1.78-1.06,0.34-1.44,2.69-0.34s1.07-0.01,2.5-1.44l0.72,1.06,2.84-0.68s1.98-0.19,2.69-0.19,3.03-0.38,3.03-0.38h2.31l2.35,1.25,1.78,0.91,1.25-0.72,0.72-0.87,4.28,1.06,1.97-1.44,3.22,0.19,4.09-0.72,1.25-1.59,1.97-2.88s-1.26-0.89-1.97-1.25-2.69-1.44-2.69-1.44l-3.22,0.57-4.43,1.59-4.32-0.91-2.5-0.15-3.18-0.72-1.63-0.91-1.59-1.78-1.44,0.72-1.97,1.06-2.5-0.15-3.22-0.91-2.5-0.72zm-35.53,14.47l-2.5,0.53-1.78,1.63-2.5-0.38s-1.44-1.06-1.44-0.34v1.78l0.72,1.59-2.12,1.25-2.88,1.1-1.06,1.25h-2.16l-0.72-1.1-1.59-0.87-2.69,2.12-0.15,3.03,1.93,2.69,1.44,2.16s1.26,2.14,0.91,3.03c-0.36,0.89-4.28,2.5-4.28,2.5l1.06,2.5,1.25,1.59v1.97l2.31,0.53,2.88,1.97,2.12,2.31,1.97,0.38s1.06-1.07,1.06-1.78c0-0.72-0.15-4.48-0.15-5.38,0-0.89,1.59-8.37,1.59-8.37l0.34-1.44,4.13-2.69s0.88-1.07,2.31-1.97c1.43-0.89,4.66-3.03,4.66-3.03l1.78-1.4s0.71-1.64,0-1.82c-0.72-0.17-1.62-0.53-2.16-1.25-0.53-0.71-3.03-2.65-3.03-2.65l-1.25-1.44zm-132.28,14.34l-0.63,0.63-2.28,0.25-0.87-0.13-1.78,0.91v1.38l-0.63,1.65-1.15,0.75-0.13,1.38,0.91,0.78,0.87,0.87-0.12,1.25-1.25,1.28-1.66,1.5-1.65,0.13-1.38-1-0.62-1.53-1.41-2-1.25-1.03-2.03,0.53h-1l-2.41-1.66-1,0.38-1.66,2.15-1.37,2-1.66,1.78-1.25,2.66,0.38,1,1,1.28,1.78,0.25,0.12,1-0.12,1-2.78,2.41-2.16,0.87-1.87,3.03-2.53,2.53-2.91,0.5-1.13,0.13-0.5,0.91-0.28,1.87-0.87,2.16-1.75,2.03-0.13,1.87,1.25,2.79,1.5,1.28,2.04,3.53,3.78,4.15,1.28,0.75,3.15,0.38,0.38,0.65,1.37,1.38,1.66,2.53,1.38,0.5,0.5,1.66,0.9,1.5,3.28,0.5,1.63,0.25,0.78,1.4,0.37,2.13,0.75,1.15,2.41,0.88,1.5,0.75,1.28-0.5,1.13-0.25,1.37,0.75,0.91,1.66-1.03,1.25-0.13,1.53,0.66,1,1.25,0.75,1,1.03,1.03,0.62,0.75-0.37,1.25-0.25,1.41,0.5,1,1.37,0.5,0.91,0.24,2,0.26,1.03h0.65l0.88-0.16,0.87-0.5,0.63-0.37h1.03l0.75,0.75,0.62,0.91,0.88,0.25,1.4,0.25,1.88-0.5,1.41-0.5,1.37-1.79v-0.87l-0.37-0.66-0.26-0.5,0.26-1,0.5-0.5,2.78-1.28,2.4-1,1.66-1.12,1.87-0.78,0.5-0.75,0.13-1.38-0.75-1.53-1.13-0.87-2.15-0.13h-1.5l-1.53,0.5-1,0.75h-1.28l-0.63-0.12-1-1.13-1.53-0.37-0.75-0.38,0.25-1.53v-1.13l1.66-0.5,0.74-0.78,0.76-0.87,0.62-1.63,0.53-0.37,1.5-0.53,1.78,0.25,1-0.5-0.12-1.38-0.5-0.87-0.5-1.66,0.25-0.88,0.87-0.62,1-0.53,1.41-0.63,1.37-0.75,0.38-0.75v-0.5l-0.88-1.9-0.75-1.41-0.9-1.62-1-0.75-0.63-1.28,0.38-1.88,0.62-0.5h1.28l0.88,0.38,1,0.87,1.41,2.16,2.65,2.37,1,0.91s1.65,0.49,2.28,0.75c0.63,0.25,1.38,1,1.38,1l0.5,0.62,0.37,1.03,0.53,1,1,0.63,1.38,0.37h1.41l1.12,0.53,0.88,0.88,2.03,0.5h1.37l0.28,0.88,1,0.53,1,0.25,0.88-0.54,0.78-0.74-0.13-1.26-1.03-1.03,0.38-0.87,0.78-1,0.37-1.53-0.25-1-1.15-0.75-0.13-1.28,0.91-0.88,3.15-3.28,1.88-1.12,1.91-1.79,0.25-1.25-0.63-0.5-1.65-0.9-1.63-1-2.16-0.25-1.25,0.62h-1.4l-1.5-1.12-1.03-1.78-0.75-1.75-1.5-3.16-1.41-2.28-0.75-1.41-0.88-2.25-0.12-1.15-2.41,0.25-0.75-0.63-1.53-1.12s0.25-0.5,0.88-0.5,1.02-0.41,1.53-0.66c0.5-0.25,0.25-0.87,0.25-0.87s-0.37-1-0.88-1.76c-0.5-0.75-0.77-0.77-1.28-1.15-0.5-0.38-0.75-1.75-0.75-1.75l-1.25-0.41-2.03-0.5-1.66,0.13-1.5,0.53-1.9,0.12-0.88-0.65-1.62-1-2.03-0.13h-2.78-2.53l-1.63,0.75-0.91,0.75-0.37,1.66-1.13,1.37-1.12,2.04-1.28,0.87h-2.41c-0.63,0-1.75-1-1.75-1l-1.03-1c-0.51-0.51,0-2.03,0-2.03s0.13-1.53,0-2.16-1.5-1-1.5-1l-2.03-0.87s1.65-0.78,2.16-1.16c0.5-0.38,0.37-1,0.37-1v-2.28c0-0.63-0.25-2-0.25-2l-0.75-1.91zm110.16,1l-0.19,1.1,0.53,1.78,1.44,0.72,0.53-0.72v-1.63l-0.38-1.25h-1.93zm-28.22,6.19l-2.35,0.78-1.4,2.07-2.88,1.43-0.25,1.07,1.78,1.43,2.13,0.97,3.22-0.44,3.5-0.9,0.25-1.6-0.78-1.96-1.1-1.88-2.12-0.97z","name":"Arkhangelsk Oblast"},"tu":{"path":"m299.02,389.7,2.0536,0.80357,2.1428,1.1607,1.6072,1.3393,1.6071,1.5179,1.7857,0.71428,2.3214,0.17858,0.89286-1.0714,1.6071-1.875,0.53572-2.3214,0.625-2.1429,2.2321-1.7857,1.875-0.44643,1.25-2.5,1.6964-1.0714,2.9464,0.26786,1.6071-1.6072s0.625-2.3214,0.53571-2.6786c-0.0893-0.35714-0.80357-2.5893-0.80357-2.5893l-0.89285-1.875-0.625-3.3036-0.71429-2.2322v-1.7857l1.5179-1.9643,2.2321-2.5,1.4286-1.4286,3.125-0.26786,0.35714,1.4286-0.89285,1.6071-1.6964,1.6964-0.17857,1.25,2.5,0.35714,4.0178,0.35714,1.9643,1.6072,3.0357,1.7857,1.5179-1.25,2.9464-0.17857,2.1429,1.4286,3.3928,1.0714s2.5-0.98214,2.9464-1.1607c0.44643-0.17857,3.5714-0.44642,3.5714-0.44642l0.89286-0.98215-0.53572-1.0714-1.6964-1.25-2.9464-2.2321-1.0714-1.4286s-1.6964-0.44643-2.3214-0.44643-2.6786-0.80357-2.6786-0.80357l-0.17857-2.6786-0.26786-2.4107-1.3393-1.3393-0.44642-2.2321-0.53572-3.5714-0.35714-0.89286-2.4107-2.7679-1.1607-0.71428s-2.6786-0.26786-2.9464-0.26786h-5.0893l-0.98215-0.26786s-0.625-1.5178-0.625-1.875c0-0.35714-0.98214-1.5178-0.98214-1.5178l-1.875-0.35715-1.25,1.25-2.4107,1.875-2.1429,0.89286h-3.0357l-4.6428,0.0893-2.9464,0.26785s-1.4286,0.53572-1.7857,0.625c-0.35714,0.0893-4.375,0.0893-4.375,0.0893l-3.0357-0.0893-1.4286,0.35715-0.89286,1.5178-0.53571,2.3214-0.89286,1.3393-2.3214,0.71428-1.6071,0.53572-1.5179,0.35714-1.7857-0.17857-1.3393-0.625-1.4286,0.17857c-0.35714,0.17857-1.6964,1.0714-1.6964,1.0714l-1.1607,2.1429-0.35715,2.4107-1.6071,2.3214-2.1429,2.5893-0.98214,1.5179,0.26786,1.25,0.71428,1.3393,1.5179,1.25,1.25,1.6071,1.6964,1.875,1.0714,1.6964s3.0357,0.98214,3.0357,1.5179c0,0.53571,1.6964,2.9464,1.6964,2.9464l0.625,1.875,1.6071,1.4286,1.875,0.71428,1.0714,0.80357,1.4286,2.3214,1.0714,1.4286v1.6072z","name":"Tyumen Oblast"},"ne":{"path":"m260.27,198.54,1.6071-0.89286,1.4286-1.1607,2.0536-1.0714,1.1607-1.25,0.625-3.3929,1.1607-1.6071s1.4286-0.80358,2.4107-1.0714c0.98215-0.26786,2.3214-0.26786,2.6786-0.26786,0.35714,0,1.5178-0.98214,2.0536-1.5179,0.53571-0.53571,3.0357-2.5,3.0357-2.5l0.71429-1.0714v-2.2321l1.25-1.9643s0.89285,0.17857,0.98214,0.625c0.0893,0.44642,0.26786,1.5178,0.625,1.6964,0.35714,0.17858,1.875,1.4286,1.875,1.4286l1.6964,1.1607,0.98214,0.89286-0.0893,1.3393-0.625,1.4286-0.44643,1.7857v1.6964l-0.26786,1.0714-0.44643,0.80357-0.26786,1.25-1.25,0.71428-1.3393-0.625-1.25-0.98214-0.625-0.80357-2.3214-0.53572h-3.0357c-0.44643,0-2.1429,1.1607-2.1429,1.1607l-0.80357,1.4286,0.17857,1.0714s0.53571,0.89286,0.625,1.25c0.0893,0.35714-0.71429,1.1607-0.71429,1.1607l-0.89285,1.6072s-0.26786,1.1607-0.0893,1.4286c0.17857,0.26785,0.625,0.80357,1.1607,1.25,0.53572,0.44643,1.875,1.5178,2.1429,1.6964,0.26786,0.17857,1.875,0.89285,1.875,0.89285s2.3214,0.17857,2.8571,0.17857c0.53572,0,1.9643-0.26785,1.9643-0.26785s1.5179-0.98215,1.875-1.1607c0.35714-0.17857,1.9643-1.1607,1.9643-1.1607s1.0714-0.44643,1.4286-0.35714c0.35714,0.0893,1.3393,0.98214,1.3393,0.98214l2.3214,0.17857s0.35714-0.44643,0.71429-0.80357c0.35714-0.35714,0.53571-0.71429,0.98214-0.35714,0.44643,0.35714,1.875,1.3393,1.875,1.3393l1.7857,0.44643h5.0893l2.5893,0.0893s0.80357,0.80357,1.25,0.89285c0.44642,0.0893,3.3928,0.53572,3.3928,0.53572l1.5179,1.4286,0.71429,1.9643,1.1607,0.17858,0.71429-1.5179,0.89285-1.0714,1.875-0.17857,0.89286,0.53571,2.1429,0.17857,2.5893,0.44643-0.44643,0.80357-0.98214,0.80358-1.6964,0.625-0.80357,0.98214-0.71428,0.98214-1.6964,0.71429-0.26786,1.0714,1.3393,0.98214,1.25,0.53571,0.625,2.0536,0.71428,0.35715,1.6964-0.80357s1.3393-0.89286,1.6071-0.89286c0.26786,0,3.3036,0.53571,3.3036,0.53571l2.6786,1.3393,1.5178,1.3393,1.4286,0.89286,4.4643,0.17857,0.71429,0.71429,1.5178-0.26786,2.5893-0.35714,1.7857-1.3393,0.625-1.7857s0.53572,0.625,0.53572,1.1607c0,0.53572-1.6964,2.7679-1.6964,2.7679l-0.71429,1.7857v1.0714l-1.1607,1.1607-0.89286,0.625-0.44643,0.98214,0.44643,0.80357h1.4286l0.80357-1.6071,0.17858-0.53572,1.5178-0.0893,1.5179,1.25,2.3214,0.35714,1.1607-0.89286,1.3393-1.1607,0.53571-0.89286-0.71428-1.0714-0.35715-1.4286,1.5179-1.1607,0.71429-1.875-0.53572-1.6964-1.25-0.80357-0.71428-3.3929-0.26786-3.125s-0.26786-0.89286,0.0893-1.25c0.35714-0.35714,2.2321-1.6964,2.2321-1.6964l1.3393,0.17857,1.1607,1.4286,1.0714,1.9643,0.35714,2.1429-0.89286,3.3036,0.89286,1.0714,2.8571,2.4107,2.7679,2.8572,3.3929,2.5893,2.1428,3.3036,1.6964,3.3929,0.80357,1.875,0.17858,1.6071-1.0714,1.1607-0.98215,2.0536-0.98214,1.5179h-2.5c-0.44643,0-3.6607-0.17858-3.6607-0.17858l-2.1429,0.98215-2.7679,0.71428h-3.0357l-1.7857-0.17857-2.4107,1.875-3.0357,2.4107-1.6072,0.53571-2.7678-0.0893-2.0536-0.53571-4.2857-2.4107-23.036-13.929-7.6786-6.875-1.25-1.1607v-1.3393l-0.98214-0.625-2.4107,0.625-5.0893-0.44642-5.625-0.98215-5.1786-0.80357-3.125-0.26786-4.1071-2.3214-2.0536-0.44643-1.7857,0.625-1.7857-0.26786-1.5179-1.7857-4.2857-8.4822-0.98215-2.4107z","name":"Nenets Autonomous Okrug"},"om":{"path":"m358.39,368.89,0.71428,2.5-1.25,1.6071-1.25,1.9643,0.53572,1.6071,0.71428,1.9643-1.25,1.9643s-1.0714,1.25-1.0714,2.1429c0,0.89286,0.17857,3.0357,0.17857,3.0357l1.7857,1.6072,0.35714,2.3214-0.53571,3.3929-1.9643,0.89286-1.25,1.6071,0.71429,2.3214-0.35715,1.9643-3.9286,0.17857s-1.4286-0.89286-2.3214-1.0714c-0.89285-0.17857-3.3928,2.8571-3.3928,2.8571l-2.5,2.1429-0.89286,4.2857,0.53571,0.89286,1.9643,2.1429,0.35714,2.6786-1.6071,2.6786-1.0714,1.7857-0.17857,3.0357-2.5,2.1429s-2.3214,1.0714-3.0357,1.0714h-4.8214l-1.6072-0.71428c-2.1428,1.4286-3.75,0-3.75,0l-1.6071-0.71429-1.9643-0.35714h-1.0714l0.35714-1.7857,1.7857-1.0714,0.71429-1.4286-2.3214-1.25-2.1429-2.3214-1.9643,0.89285-0.89286-0.71428v-3.75l-1.4286-0.89286-2.8571,0.35714-2.8572-0.89285-0.89285-0.53572-0.17857-2.1428,2.1428-2.6786,0.71429-2.3214,0.35714-2.6786v-4.1071l0.71429-2.1429,1.4286-3.9286,1.6071-2.5,2.3214-0.53571,1.0714-1.25,1.0714-1.7857,1.6071-0.89285h2.6786l1.6071-1.4286,0.89286-3.9286-1.4286-3.2143-0.71429-3.0357-1.25-3.3928,0.35715-1.6072,4.4643-4.6428,1.0714-0.89286h2.6786l0.17857,1.6071-1.25,1.6072-1.7857,1.25-0.17857,1.4286,1.4286,0.35714,3.2143,0.35714,2.3214,0.17857,2.1429,1.4286,1.9643,1.4286,1.0714,0.35714,1.0714-0.71429,1.9643-0.35714,2.3214,0.35714,3.5714,1.6072h2.5l2.1428-1.0714h2.1429z","name":"Omsk Oblast"},"ht":{"path":"m329.64,260.32,0,3.75-0.53572,3.2143-1.6071,2.3214-2.3214,2.3214-0.89286,1.25,1.9643,1.9643,1.7857,2.3214,5,1.9643,4.8214,0.17857,3.5714,1.4286,2.3214,2.6786,0,1.4286-2.1429,1.7857,1.4286,1.4286,2.3214,2.8572,1.9643,1.0714,2.1428-1.0714,1.7857-0.89286s1.6071,0.71429,1.9643,0c0.35715-0.71429,0.89286-2.1429,0.89286-2.1429l1.6071,2.1429,1.4286,2.8571,1.9643,1.6072s0.35714,2.1428,0.35714,2.8571v4.6429l1.9643,3.3928s0.35714,0.17857,0.71429,0.89286c0.35714,0.71429,0,2.1429,0,2.1429l1.0714,1.25,2.5,0.53571,3.75,0.71429,1.4286,0.89285s2.8571,2.1429,3.5714,2.6786c0.71429,0.53571,1.25,1.6071,2.1429,1.9643,0.89286,0.35714,3.5714,0.53572,3.5714,0.53572l2.8571,0.35714,0.89286,1.0714s0.35714,1.6071,0.71428,2.6786c0.35715,1.0714,1.4286,1.7857,1.4286,1.7857l3.0357,0.17857,1.7857,0.53572,0.35715,1.9643,0.35714,1.4286,1.0714,2.5c1.9643,0.17857,2.5,0.17857,3.5714,0.17857s3.3928,1.0714,3.3928,1.0714l1.9643,0.71428,2.8571,0.35714,2.8572-1.0714,3.2143-1.9643,3.0357,0.53571,1.9643,2.6786s0.35714,1.7857,1.0714,2.1428c0.71429,0.35715,2.8571,0.53572,2.8571,0.53572l2.3214,1.6071,0.71429,2.3214,1.9643,0.71428,2.6786-0.89285,1.9643,1.6071,1.0714,3.0357v2.3214l-0.35714,1.6072-0.53572,1.9643,3.0357,1.9643,2.5,1.7857,0.35714,2.3214v1.0714l-3.75,1.7857-2.6786,0.53572-3.2143,0.17857-3,0.15-1.61-1.07-1.7857-0.71428-2.3214,0.35714-2.3214,1.6071-2.6786,1.0714-2.1429-1.9643s-2.8571-0.35714-3.5714-0.35714c-0.71429,0-2.3214-1.7857-2.3214-1.7857l-0.89286-1.25-3.9286,0.17857h-3.5714l-1.6071-2.5s-1.25-0.89286-2.1429-0.89286c-0.89286,0-4.4643-1.25-4.4643-1.25l-2.5-2.3214h-1.25c-0.71428,0-2.3214,1.25-2.3214,1.25l-2.5,2.1429-1.7857,2.6786-2.8571,2.5-1.6071,3.3929-4.4643,1.6071-3.5714,0.89286-0.35714,2.1429-0.71429,2.1428-2.6786,1.25h-2.8571l-5.8929-5.5357-3.9286-0.89286-1.0714-1.4286-0.53571-4.1071-1.0714-1.25-1.0714-5.3572-0.53571-1.7857-3.5714-3.2143h-5.5357l-3.0357-0.35714-1.9643-2.8571-1.6071-0.53572-4.4643,3.0357-3.3929,0.71428h-5.1786l-5,0.71429-4.2857,0.53571h-3.5714l-1.4286-0.17857-0.53571-2.8571-0.35714-3.2143,0.89285-3.2143-0.89285-3.2143-2.3214-2.1428-1.0714-0.89286-1.0714-1.0714,1.25-2.6786,1.4286-2.3214-0.17857-2.1429-0.71429-3.2143,0.71429-5.5357,1.4286-1.7857,1.4286-2.1429-0.71428-2.3214-1.0714-3.5714-1.9643-2.6786-2.3214-3.3928-3.3928-2.1429-1.7857-1.9643-1.0714-2.6786,3.3929-2.1429,1.6071-2.6786,2.3214-4.8214,2.1429-2.6786,2.5-1.9643,3.5714-3.3929,1.6071-1.7857,1.7857-3.3929-0.17858-1.7857,0.89286-1.0714,2.1429-1.0714,1.4286-1.9643,1.6071-1.0714,1.25,0.17857,0.89286,2.3214,0.35714,1.0714,1.4286,0.35714,2.5-0.71428,3.0357-1.6071,1.4286-1.25,1.25-1.0714,2.5-0.53572z","name":"Khanty–Mansi Autonomous Okrug"},"ya":{"path":"m366.25,234.25,1.4286,2.6786,1.6071,1.7857,1.6072,2.6786,1.0714,3.0357,0.89286,2.8572,3.0357,0.17857,1.7857-1.6072,1.4286-1.25-0.53571-3.2143s-0.89286-1.4286-0.53572-2.3214c0.35715-0.89286,1.7857-2.5,1.7857-2.5v-2.3214l-2.1429-1.6071-1.25-2.5s0.71429-1.6071,1.4286-1.9643c0.71429-0.35714,3.75-2.3214,3.75-2.3214s1.6071-3.75,1.9643-4.4643c0.35714-0.71429,0.35714-4.8214,0.35714-4.8214l0.89286-1.4286,7.5-2.1429,4.8214-3.5714,5.7143-6.0714,3.2143-2.1429,2.1428-0.71429,1.7857,2.3214,3.3928,0.35714,1.7857,1.25,1.0714,2.6786,0.17857,1.7857-0.89286,3.75-2.1429,2.6786-2.3214,2.8571-3.0357,1.6072-1.25,1.0714-0.35714,1.9643,1.0714,2.1429,0.17857,2.8571-0.89286,2.8571-2.1429,2.6786-1.7857,3.2143-2.6786,4.4643-1.25,3.5714-0.89286,2.1429-0.17857,2.5,0.35714,2.6786,0.71429,2.3214-0.71429,1.4286-3.0357,2.1429-1.0714,3.2143-0.89286,3.2143h-3.2143l-2.3214,1.25-2.1429,3.3929-3.5714,0.53571-2.3214,1.25-1.4286,1.4286h-3.5714l-1.4286-1.0714-1.0714-2.6786-0.71429,0.53572v1.6071l-1.9643-1.4286-0.71428-1.9643-1.0714,0.71429-0.17857,1.9643,1.7857,2.1428,2.5,2.1429,2.5,1.25,3.2143,1.0714,2.1429,1.25,2.1428-0.89286,3.5714-1.7857,3.0357-0.71429,3.75-1.0714,2.3214-3.0357,3.2143-2.6786,3.3929-1.6072,2.1428-1.7857-0.17857-2.1429-0.89286-2.3214-0.17857-1.7857,2.1429-2.1429,4.2857-0.89285h3.3929l1.4286,1.4286,1.25,3.0357v2.8571,3.0357l-1.6071,1.4286-1.25,2.5,0.17857,3.5714,1.7857,1.25,3.2143,0.71428,2.1429,2.8572,1.9643,3.2143,0.53572-0.71428-0.53572-4.1072-2.5-3.2143-3.75-1.0714v-2.8571l2.3214-3.0357s1.7857-0.35714,1.9643-1.0714c0.17857-0.71428,0.17857-3.5714,0.17857-3.5714l-0.89286-3.9286-2.6786-2.6786-2.6786-3.2143-0.89286-1.4286h-2.1428s-0.53572,1.25-1.4286,1.25c-0.89285,0-2.6786-1.25-2.6786-1.25l-1.6071-1.0714-0.53571-2.5,1.4286-3.75,2.3214-3.2143,2.1428-2.6786,3.0357-1.25,0.17857-4.4643-0.17857-3.0357v-3.0357l0.17857-2.3214,1.7857-2.3214,1.4286-1.4286,2.1429-0.35715,3.2143-0.53571,2.3214-2.5,1.7857-1.0714,1.25,2.1429-1.9643,2.3214-0.89285,1.4286-1.0714,4.4643-1.25,2.5,1.25,1.7857,2.6786,2.1429h2.8571l1.4286,2.1428,2.3214,2.5,1.7857,0.35715-1.4286-2.1429v-2.5s-1.25-1.25-1.9643-1.6071c-0.71429-0.35715-3.5714-2.8572-3.5714-2.8572l-1.25-3.5714-0.17857-1.4286s1.9643-0.71428,2.6786-0.71428c0.71429,0,3.2143,0.89285,3.2143,0.89285l0.89285,1.7857,1.6072,0.17857,1.25-0.71429-0.35715-1.9643,0.17858-1.9643,1.4286-0.35714,1.6071,0.71429,1.7857,1.4286,1.25,1.0714,0.89286,1.7857-0.35714,1.7857-2.3214,2.5-3.0357,1.25,1.0714,1.4286,2.6786,2.1428,0.35714,2.8572,0.17857,3.3928-0.71429,2.6786-2.5,1.4286-2.6786,1.4286-3.5714,1.7857-2.1428,2.1429,0.35714,2.6786,1.4286,2.5,1.25,2.5,1.6071,1.0714h3.3929,2.5l1.7857,1.6071,0.53571,3.0357,0.17857,3.3928v2.8572l-1.9643,3.2143-1.7857,2.5h-2.6786l-0.71429,0.53572,0.53572,1.9643,0.71428,1.7857-0.53571,2.5-0.89286,1.25,2.3214,3.3928,0.53572,1.7857,0.35714,1.7857-1.25,1.7857-1.0714,1.25,0.89286,2.1428-0.17857,2.5-1.6072,1.6072,1.6072,1.7857,2.1428,1.9643,1.6072,1.4286-0.17858,3.3928-1.4286,2.3214-0.17857,2.6786,2.3214,2.1429,4.6429,0.89286,0.89285,1.4286-1.4286,2.1429-0.53571,3.3928-0.89286,2.3214-2.6786,1.4286s-0.89286,0.53572-1.6071,1.0714c-0.71429,0.53572-1.7857,2.8572-1.7857,2.8572l1.9643,1.7857,0.17857,2.3214-1.4286,2.1429-1.25,2.5-2.6786,2.3214-2.8572,2.8572-0.89285-1.7857-1.6072-2.1428-1.7857-1.0714-1.9643,0.71428-1.9643-0.71428-0.71429-1.6072-1.25-1.25-2.5-0.89285-2.1428-0.89286-0.71429-1.6071-0.89286-1.7857-1.4286-1.4286-2.8571-0.17857-2.5,1.4286-2.5,1.0714-2.6786,0.17857-4.1072-1.6071-3.5714-0.35714-2.1429-0.17858-0.89286-1.9643-1.0714-2.3214v-1.4286l-3.3928-0.71429-2.3214-0.53571-0.89286-2.5-0.71429-2.3214s1.4286-0.17857-1.0714-0.35714-5.5357-1.0714-5.5357-1.0714l-1.4286-0.53572-3.2143-2.5-2.5-1.6071-2.8572-1.0714-3.2143-1.25-1.25-0.89285-0.17857-2.1429-2.8572-3.9286,0.17857-6.7857-1.25-1.7857-2.3214-2.8571-1.0714-2.1429-0.53572-0.53572-1.0714,1.25-0.53571,0.71429h-1.4286l-2.6786,0.89286-1.25,0.35714-1.6072-0.35714-2.1428-2.3214-1.7857-1.6071,0.53572-0.89286,1.4286-1.6071-0.35714-1.7857-2.5-2.3214-3.0357-1.4286-4.2857,0.35714-3.0357-1.25-2.6786-0.89285-3.3929-4.2857,2.3214-2.5,2.5-3.75,0.17857-5.3571,0.35715-1.4286,3.75-1.0714,2.6786-2.5,1.4286-1.4286h3.75,3.3929l3.9286,0.53571,1.7857-1.25,3.5714-1.6071,3.3929-0.53571,2.5-1.25,2.3214-1.25,0.35714-2.8572-2.1429-2.3214-0.71428-1.25,0.53571-1.6071,2.3214-1.4286,0.35714-1.25,1.92-2.87z","name":"Yamalo-Nenets Autonomous Okrug"},"kr":{"path":"M501.66,122.41c-0.45,0.04-1,0.37-1,0.37-0.9,0.72-1.25,0.77-0.94,1.13,0.31,0.35,0.19,0.55,0.9,0.78,0.72,0.22,0.91,0.49,1.44,0,0.54-0.49,0.77-1.24,0.41-1.69s-0.37-0.64-0.81-0.59zm11.56,0.65c-0.22,0.02-0.44,0.11-0.6,0.38-0.31,0.53-0.49,1.57-0.62,1.84s-0.2,0.74-0.78,0.88c-0.58,0.13-1.39,0.54-1.75,0.09s-1.03-1.51-1.25-1.69-1.04-0.74-1.13-0.03c-0.09,0.72,0.19,1.51,0.19,1.91s-0.18,0.99-0.4,1.12c-0.23,0.14-1.06,0.25-1.29,0.56-0.22,0.32-0.62,0.49-0.62,1.16s-0.27,1.67-0.31,1.94c-0.05,0.27-0.32,0.26-0.63,0.75s-1.09,1.87-1.09,1.87,0.89,0.62,1.15,0.85c0.27,0.22,0.42,0.77,0.38,1-0.05,0.22-0.13,1.05-0.53,1.19-0.4,0.13-1.43,0-1.78-0.13-0.36-0.13-1.01-0.48-1.5-0.44-0.49,0.05-1.01,0.23-1.19,0.63s-0.71,0.38-0.13,1.18c0.58,0.81,0.87,1.53,1,1.76,0.14,0.22,0.29,1.51,0.07,1.87-0.23,0.36-1,1.13-1.22,1.53-0.23,0.4-0.44,0.71-0.22,1.16,0.22,0.44,0.66,0.8,1.15,0.94,0.5,0.13,3.66,0.71,3.66,0.71s0.28-0.36,0.81-0.71c0.54-0.36,1.36-0.77,1.85-0.41s0.52,0.8,0.65,1.25c0.14,0.45,0.41,2.02,0.5,2.37,0.09,0.36,0.49,0.58,0.94,1.16s1.59,1.37,2.22,1.59c0.63,0.23,1.05,0.55,1.72,0.6,0.67,0.04,2.85,0.82,2.94,1.09s0.31,1,0.31,1,0.54,0.52,0.81,0.56c0.27,0.05,2.22,0.19,2.22,0.19,1.38-0.76,2.23-0.8,2.5-0.94,0.27-0.13,0.84-0.03,1.37-1.06,0.54-1.03,0.76-1.35,0.63-2.06-0.13-0.72-0.34-0.93-0.87-1.6-0.54-0.66-1.5-1.24-1.1-1.56,0.4-0.31,1.56-0.8,1.88-1.15,0.31-0.36,0.54-1.32,0.4-2.35-0.13-1.02-0.15-2.5-0.47-2.9-0.31-0.41-0.73-0.92-1.4-1.19s-1.23-0.67-1.81-0.53c-0.59,0.13-1.92,0.25-2.19,0.03s-0.62-0.83-0.85-1.5c-0.22-0.67-0.5-1.13-0.5-1.53s1.16-3.63,1.16-3.63,0.71-0.29,0.84-0.56c0.14-0.27,0.36-0.76,0.22-1.66-0.13-0.89-0.39-1.55-1.28-2.09s-2.09-1.72-2.09-1.72v-0.97c0-0.35-0.15-1.73-0.28-2-0.14-0.27-0.48-0.72-0.97-0.72-0.25,0-0.5-0.05-0.72-0.03zm17.72,22.91c-0.13,0.02-0.25,0.07-0.35,0.19-0.4,0.44-0.72,1.12-0.9,1.34s-0.51,0.09-0.91,0-0.89-0.43-1.16-0.03c-0.26,0.4-0.67,0.74-0.71,1.19-0.05,0.44,0.09,1.75,0.09,2.46,0,0.72,0.09,1.8,0,2.6s-0.2,1.3-0.78,1.66c-0.58,0.35-0.91,0.4-1.31,0.93-0.41,0.54-1.13,1.25-1.13,1.88,0,0.62,0.06,1.45-0.66,2.03-0.71,0.58-1.14,0.56-0.96,1.4,0.17,0.85,0.22,0.93,0.84,1.38s2.79,0.63,3.28,0.5,1.26-0.77,1.66-1.22,1.61-0.99,2.28-1.12c0.67-0.14,1.17-0.08,2.16-0.13,0.98-0.04,1.54-0.39,2.03-0.65,0.49-0.27,0.54-0.54,1.43-0.54,0.9,0,1.74,0,2.1-0.31,0.35-0.31,1.35-1.19,1.62-1.5s0.88-1.05,0.97-1.5,0.18-1.3,0-1.75,0.15-1.15-1.19-1.28-1.57,0.07-1.84-0.38c-0.27-0.44-1.03-0.88-1.03-1.37s0.08-1.02-0.19-1.37c-0.27-0.36-0.79-0.81-1.28-0.72s-1.31,0.58-1.53,0.62c-0.22,0.05-0.71-0.09-0.85-0.4-0.13-0.32-0.21-1.11-0.21-1.91s-0.25-1.63-0.25-1.63c-0.34-0.13-0.83-0.43-1.22-0.37zm5.22,20.03c-0.62,0.05-1.16,0.75-1.16,0.75s-1.62,1.95-2.16,2.84c-0.53,0.9-0.86,1.08-1.93,1.25-1.08,0.18-1.82,1.63-1.82,1.63s-0.51,1.23-0.68,2.12c-0.18,0.9-1.25,3.07-1.25,3.07v1.93l0.87,1.63s1.6,1.05,1.78,2.12c0.18,1.08-2.12-0.68-2.12-0.68s-2.14-0.73-3.03-0.91c-0.9-0.18-1.64,0.01-3.07,0.19-1.42,0.18-1.25,0.34-1.25,0.34l0.72,1.63s1.61,1.4,1.25,2.65c-0.35,1.25-1.4-0.53-1.4-0.53l-1.97-0.87s-1.98,0.16-2.88,0.87c-0.89,0.72-1.25,0.91-1.97,0.91-0.71,0-1.59-0.71-2.12-1.78-0.54-1.08-0.91-0.91-1.63-1.44-0.71-0.54-3.2,0-4.09,0s-2.32,1.79-3.75,1.97-1.78,0.53-1.78,0.53l0.34,2.12-1.97,1.1-2.12,0.53-2.16,0.53c-0.71,0.18-2.12-0.19-2.12-0.19l-1.97-0.34-1.44,0.87-0.53,0.57-2.84,0.15-2.16,0.91s-2.49,2.13-4.09,2.31c-1.61,0.18-0.19,0.53-0.19,0.53s1.06,0.91,1.06,1.63c0,0.71-0.7,0.87-0.87,1.4-0.18,0.54-1.45-0.33-2.35-0.68-0.89-0.36-1.25,0-1.25,0s0.2,1.04,0.38,1.93c0.18,0.9,1.06,1.28,1.06,2.35s-0.19,2.12-0.19,2.12,0.53,2.69,0.53,3.41v2.69c0,0.89-0.87,1.59-0.87,1.59s-1.25,0.72-3.03,0.72c-1.79,0-0.91-0.72-0.91-0.72l0.72-0.91-0.53-1.4-1.97-0.38-2.31,1.25-1.78-0.53h-3.22-3.94c-1.43,0-1.95-1.07-2.84-1.25-0.9-0.18-2.88-0.34-2.88-0.34s-2.14-0.02-3.03,0.34-1.97,1.06-1.97,1.06v3.07,3.03s-1.6,0.69-1.78,1.4c-0.18,0.72,0.01,2.68,0.19,3.75,0.18,1.08,1.05,0.72,2.12,1.25,1.07,0.54,2.16,1.25,2.16,1.25l0.53,0.57,0.34,1.78s0.57,1.94,0.57,2.65c0,0.72,1.25,1.97,1.25,1.97s0.68,1.63,0.68,2.35c0,0.71-0.51,1.22-0.87,1.93-0.36,0.72-0.73,1.61-0.91,2.5-0.18,0.9,0,2.16,0,2.16l0.38,2.84s-0.2,2.88-0.38,3.6c-0.18,0.71-0.89,1.42-1.78,1.78s-1.25,2.12-1.25,2.12,0.01,2.7,0.19,3.6c0.18,0.89,0.88,1.42,1.59,1.78,0.72,0.36,1.25,1.78,1.25,1.78l-0.87,1.78-1.78-0.34-1.44-1.78-0.91-1.82v-2.5s-0.54-1.76-1.97-2.65c-1.42-0.9,0.19-1.63,0.19-1.63s1.08-1.25,1.44-1.97c0.36-0.71,1.06-1.78,1.06-1.78s1.8-1.6,2.16-2.5c0.35-0.89-0.38-1.4-0.38-1.4l-1.06,0.68-1.78,1.82-1.78-0.91s0.69-1.25,0.87-1.78c0.18-0.54,0.54-1.79,0.72-2.5,0.18-0.72,0.35-1.6,1.06-2.31,0.72-0.72,2.35-0.19,2.35-0.19l1.25-1.25v-1.63l-1.1-1.59s-1.4-0.17-3.9-0.34c-2.5-0.18-0.72-1.25-0.72-1.25l-0.72-1.82s-0.72-1.76-1.44-2.12c-0.71-0.36-1.94-3.04-2.65-3.75-0.72-0.72-1.1-1.44-1.82-2.16-0.71-0.71-2.11-1.78-3.18-2.5-1.08-0.71-1.97-1.4-1.97-1.4l-1.63,0.34s-1.05,1.07-0.15,2.5c0.89,1.43,1.06,1.44,1.06,1.44l1.25-0.28,0.97,0.18,1.22,0.5,1.15,1.07,1.06,0.71,0.91,1.07,0.53,0.9,0.1,0.94-0.6,1.63-1.68,1.84-1.29,0.81-1.93,0.88,0.81,1.15s2.04,1.71,2.22,1.85c0.18,0.13,0.69,0.9,0.69,0.9l0.31,2.85,0.09,2.59s-0.33,2.1-0.37,2.28c-0.05,0.18-0.63,0.88-0.63,0.88l-7.09,3.97-1.44,0.9-1.25,0.94-0.66,0.81s0.3,2.37,0.35,2.6c0.04,0.22,0.64,1.18,0.69,1.4,0.04,0.23,1.28,2.69,1.28,2.69s1.15,1.2,1.46,1.69c0.32,0.49,2.16,0.31,2.16,0.31h3.44c0.4,0,1.34,0.5,1.34,0.5s1.3,0.98,1.35,1.16c0.04,0.17,0.37,1.31,0.37,1.31l0.38,3.34s0.09,3.42,0.09,3.69-0.5,1.56-0.5,1.56l-0.34,1.22c-0.04-0.01-0.07-0.03-0.1-0.06l-1.15,2.06-1.82,1.69-1.68,0.28-1.6,0.28,0.16,1.41s1,1.98,1,2.34-0.01,1.68-0.19,2.13c-0.18,0.44-0.81,1.68-0.81,1.68l0.47,1.19,1.15,1.69,0.88,2.41,0.47,1.68-1.16,1.97-1,1.63,0.72,1.93s0.08,1.53-0.09,1.97c-0.18,0.45-1.07,1.16-1.07,1.16l-0.43,1.19s4.1,3.63,5,4.53c0.89,0.89,0.15,1.52,0.15,2.06s-0.72,2.5-0.72,2.5l-1.25,2.22,0.1,1.87s1.54,1.46,1.72,1.82c0.17,0.35,1.68,0.78,2.22,0.87,0.53,0.09,2.78,0.38,2.78,0.38l1.25,1.31-0.19,0.81-1.16,1.63-0.72,3.28s-0.8,2.07-1.15,2.34c-0.36,0.27-1.44,1.16-1.44,1.16l-2.22,1.15-1.72,2.41,0.38,0.97,1.34,1,0.25,1.78-0.81,1.78-1.25,2.78-1.5,1.41-2.31,2.34-1.72,1.6-1.5,2.25s-0.9,2.92-0.81,4c0.08,1.07,0.96,0.72,0.96,0.72s1.62,1.07,2.16,1.34,1.51,0.99,1.78,1.34c0.27,0.36,1,1.24,1,1.69v1.53l-0.81,0.88-1.25,0.81-3.41,1.25-1.69,0.34-2.4-0.25s-1,0.43-0.91,0.78c0.09,0.36,0.72,1.63,0.72,1.63s0.45,1.24,0.63,1.69c0.17,0.44,0.27,0.88,0.72,1.06,0.44,0.18,0.09,2.97,0.09,2.97s-0.89,2.3-1.16,2.75c-0.27,0.44-0.46,1.25-0.37,1.87,0.09,0.63,0.72,1,0.72,1s1.7,0.69,2.06,0.78,2.94,1.1,2.94,1.1,3.13,0.72,3.84,0.72,2.58,0.06,3.56,0.15,2.5,1,2.5,1,1,0.87,1.53,1.41c0.54,0.53,0.25,4.64,0.25,5s2.88,0.19,3.5,0.28c0.63,0.09,2.32,0.81,2.32,0.81s0.43,1.33,0.43,1.69-0.43,1.88-0.43,1.88l-1.78,0.9-3.47,1.5-0.57,1.06s-1.13,4.74-1.4,5.19,0.53,1.88,0.53,1.88l1.5,0.62,2.25,1.06s3.47,2.25,4.09,2.79c0.63,0.53-0.09,0.96-0.09,0.96l-0.97,1.82-5.44,4.72-0.72,1.96-0.18,1.5s-0.44,3.58-0.44,3.94,0.34,1.53,0.34,1.53,1.81,1.15,2.25,1.5c0.45,0.36,1.88,1,1.88,1l0.72,1.41s0.79,1.54,1.06,2.34c0.27,0.81-0.72,0.97-0.72,0.97l-3.56,2.94-1.97,0.91s-1.35,1.33-1.44,1.87,0.81,0.97,0.81,0.97l0.97,1.44,1,1.34s1.95,0.73,2.75,0.91c0.81,0.17,1.63-0.57,1.63-0.57s1.42-1.95,2.4-2.22c0.99-0.26,0.53,0.46,1.07,0.72,0.53,0.27,1.96,0.61,2.59,0.88s2.22,1.34,2.22,1.34l0.81,2.06,1.78,7.41,0.82,2.5-1.26,4.13s0.1,2.05,0.19,2.4c0.09,0.36,0.8,1.24,1.07,1.6,0.26,0.35,0.43,2.15,0.43,2.15l-0.97,1.35-2.4,1.5-1.1,1.78s-2.3,3.32-2.65,3.59c-0.36,0.27-2.06,1.14-2.6,1.41-0.53,0.27-2.06,1.44-2.06,1.44s0.27,1.06,0.63,1.15c0.35,0.09,0.53,2.16,0.53,2.16l0.81,1.06,1.88-0.44,3.21,0.78,2.5,0.91s1.25,0.88,1.79,1.06c0.53,0.18,3.4-0.44,3.4-0.44s5.87-2.32,6.31-2.59c0.45-0.27,1.72-1.06,1.72-1.06s2.5-1.89,3.03-2.25c0.54-0.36,3.74-2.14,4.1-2.41,0.35-0.27,1.44-1.78,1.44-1.78l0.9-2.12s0.16-1.99,0.25-2.44,0.53-1.5,0.53-1.5l0.72-1.25,2.16-0.19,3.12,0.44,2.32,0.19s3.57,0.1,4.37-0.35c0.8-0.44,0.45-0.72,0.63-1.34,0.17-0.63-0.27-0.9-0.63-1.35-0.36-0.44-1-1.33-1.53-1.78-0.54-0.44-1.25-1.15-1.25-1.15s-2.31-4.22-2.31-4.75c0-0.54,0.81-1.15,2.15-1.69s3.91-0.97,3.91-0.97l2.06-1.19-0.09-2.65,0.47-1.78s1.16-2.8,1.25-3.07c0.09-0.26,1.51-2.93,1.68-3.56,0.18-0.62,0.62-1.79,1.07-2.59,0.44-0.81,1.62-1.68,2.15-2.03,0.54-0.36,1.68-1.91,2.13-2.44,0.44-0.54,1.09-2.22,1.09-2.22l-0.19-4.09s-2.13-2.42-2.4-3.22c-0.27-0.81,0.07-1.43,0.34-1.78,0.27-0.36,1.61-1.88,1.97-2.5,0.36-0.63,0.81-2.53,0.81-2.97,0-0.45,0.98-1.5,1.88-2.13,0.89-0.62,2.83-0.18,3.28,0s1.09,0.81,1.72,1.35c0.62,0.53,3.28,0.68,3.28,0.68s1.07-1.42,1.25-1.87,0.98-1.77,1.25-2.22,1.53-1.07,2.25-1.16c0.71-0.09,1.69,0.63,1.69,0.63s0.97,1.78,1.15,2.31c0.18,0.54,1.18,1.61,1.53,1.97,0.36,0.36,1.26,1.8,1.35,2.16,0.09,0.35,1.06,0.33,2.22,0.15s0.09-1.4,0.09-1.4v-2.16s-0.62-2.16-0.62-2.78c0-0.63,0.71-1.78,0.71-1.78s2.5-0.8,3.03-1.06c0.54-0.27-0.08-1.17,0.1-1.97,0.18-0.81,1.33-1.7,1.69-1.88,0.35-0.18,2.96-0.61,3.4-0.87,0.45-0.27,1.41-1.25,1.41-1.25l0.62-2.69,0.28-2.88s-0.02-0.11-0.03-0.12c0.09-0.06,0.32-0.22,0.32-0.22l1.31,0.19s0.6-0.58,1.31-0.94c0.72-0.36,0.79,0.03,0.97,0.03s0.68,1.11,0.81,1.47c0.14,0.36,0.36,1.26,0.41,1.53,0.04,0.27,1.38,0.68,1.56,0.72s1.55,0.47,1.81,0.56c0.27,0.09,1.66,1.08,1.97,1.44,0.32,0.36,1.04,0.45,2.38,0.94s1.53-0.28,1.53-0.28l0.65-0.63s0.23-1.4,0.32-1.94c0.09-0.53,0.72-0.87,0.72-0.87s1.51-1.22,1.87-1.63c0.36-0.4,0.5-0.87,0.5-0.87s0.34-2.99,0.16-3.13c-0.18-0.13-1.38-0.71-1.78-0.84-0.41-0.13-1.6-1.46-2-2.13-0.41-0.66,0.3-1.16,0.43-1.43,0.14-0.27,1.41-1.06,1.63-1.28,0.22-0.23,1.06-0.78,1.59-1,0.54-0.23,0.27-2.9,0.22-3.35-0.04-0.44-0.7-0.44-1.81-0.62-1.12-0.18-1.97-0.85-1.97-0.85s-1.52-1.52-2.19-2.28-0.22-2.76-0.22-3.03,0.17-4.1,0.13-4.9c-0.05-0.81,0.54-1.63,0.72-1.85s2.37-0.49,2.59-0.53,1.9-0.99,2.35-1.34c0.44-0.36,0.59-1.19,0.59-1.19s-0.37-1.3-0.5-1.75c-0.14-0.45,0.72-1.65,1.03-1.88,0.31-0.22,1.91-1.37,1.91-1.37s1.07-6.86,1.25-7.13c0.17-0.26-0.32-1.59-0.32-1.59s-1.19-3.62-1.28-3.84c-0.09-0.23-0.68-1.65-0.5-2.32s1.27-1.02,1.41-1.25c0.13-0.22,0.07-0.97-0.16-1.15-0.22-0.18-1.03-1.16-1.03-1.16s0.58-3.41,0.63-3.81c0.04-0.4,0.28-1.69,0.28-1.69l1.22-0.84s3.79-0.07,4.06-0.07,2.03-0.79,2.44-1.06c0.4-0.27,0.13-1.66,0-1.84-0.14-0.18-1.19-1.94-1.19-1.94h-2.28l-2.5,0.06-2.1-0.43-1.03-0.41s-2.49-0.25-2.72-0.25c-0.22,0-1.5-0.16-1.5-0.16l-0.65-0.25s-0.13-1.6-0.13-1.87,0.48-0.55,1.07-0.91c0.58-0.35,0.93-0.94,0.93-0.94s-0.17-0.98-0.43-1.34c-0.27-0.36-0.1-0.97-0.1-0.97s2.29-2.76,2.38-2.93c0.09-0.18,0.62-1.04,0.62-1.04s0.89-1.56,1.06-2.18c0.18-0.63-0.59-1.16-0.59-1.16s-3.42-4.04-3.78-4.44-1.14-1.64-1.31-1.9c-0.18-0.27-0.91-1.24-1-1.69s0.31-1.41,0.31-1.41l1.09-3.47-0.56-1.06s-1.07-0.96-1.16-1.09c-0.09-0.14-1-0.75-1-0.75s-0.63-0.55-0.5-0.91c0.14-0.36,1.36-0.56,1.63-0.56s2.31-0.69,2.31-0.69,1.39-0.56,1.56-0.78c0.18-0.22-0.03-1.16-0.03-1.16s-1.56-17.7-1.56-18.06-0.65-1.56-0.78-1.78c-0.14-0.22-2.19-2.34-2.19-2.34l-0.72-5.16h0.06s1.85,0.06,2.47,0.06c0.63,0,0.97-0.84,0.97-0.84l2.5-2.06,1.53-1.38s0.57-0.52,0.88-0.56c0.31-0.05,1.26,0.58,1.44,0.62,0.17,0.05,1.47,0.6,1.47,0.6s0.99-0.52,1.43-0.66c0.45-0.13,0.75-0.62,0.75-0.62l-0.31-5.94,4.16-2.16s0.93-1.1,0.93-1.28,0.57-1.87,0.57-1.87l4.47-3.1s1.78-2.23,2.18-2.5-0.03-0.62-0.03-0.62l-1.25-1.85s-1.07-1.29-1.78-1.47c-0.71-0.17-0.91-1.09-0.91-1.09l0.29-5-0.6-0.47-2.84-2.31-3.41-2.69-0.72-1.97-0.34-1.4-1.06-1.78,0.15-0.91,1.25-2.69-1.4-1.4-1.63-1.97-0.72,1.59s-1.43-0.53-2.5-0.53-1.06,1.44-1.06,1.44-1.95,0.71-2.84,1.25c-0.9,0.53-1.25,1.78-1.25,1.78s-1.45,1.25-2.16,1.25-2.14,0.01-3.03,0.19c-0.89,0.17-1.43,1.41-1.97,2.12-0.54,0.72-1.44,2.33-2.16,2.69-0.71,0.36-0.71,0.34-1.78,0.34s-0.16-0.7,0.38-2.31c0.53-1.61,1.95-1.79,2.31-2.5s0.72-1.78,0.72-1.78l2.5-0.91s0.54-3.02,1.44-3.37c0.89-0.36,3.75-0.53,3.75-0.53s1.22-1.63,1.4-2.35c0.18-0.71,1.44-1.58,1.97-2.65,0.54-1.08,0.72-1.79,0.72-2.5,0-0.72,0.91-1.82,0.91-1.82l2.5-2.12s1.58-1.6,1.93-2.31c0.36-0.72,2.16-1.97,2.16-1.97l2.16-1.97,2.31-2.5s0.19-1.44,0.19-2.16c0-0.71-0.72-1.78-0.72-1.78s-1.26-0.9-1.97-1.44c-0.72-0.53-1.78-0.7-1.78-1.59s0.16-0.72,0.34-1.44c0.18-0.71,0.72,0,0.72,0l1.44,1.1,0.15-1.25-0.15-2.35-0.53-1.97-2.69-0.68-1.78-1.1h-2.16c-0.71,0-0.52-0.69-0.87-1.4-0.36-0.72-0.37-1.62-0.91-2.69s-2.31-0.19-2.31-0.19l-1.78,0.91c-0.72,0.35-0.73,0.52-1.44,1.06-0.72,0.54-1.61-0.37-3.22-0.91-1.61-0.53-1.77,0.02-2.84,0.38-1.08,0.36,0.17,0.88,0.53,1.59,0.35,0.72,0,1.44,0,1.44l-2.35-0.19s-1.06-0.35-1.78-1.25c-0.71-0.89,0.19-1.06,0.19-1.06s1.25-1.43,1.25-2.5-0.72-1.25-0.72-1.25h-2.69c-1.25,0-1.96-0.17-3.03-0.34-1.07-0.18-1.25-0.37-1.97-1.44-0.71-1.07,0.57-0.53,0.57-0.53l1.4-1.25,1.25-0.72,2.69,0.34s0.9,0.56,1.97,0.38,0.19-0.72,0.19-0.72l-1.63-1.06s-1.77,0.34-2.84,0.34-2.16-0.72-2.16-0.72l-1.97-0.87s-1.41-1.45-2.12-1.63c-0.09-0.02-0.2-0.04-0.28-0.03zm-45.94,3.34c-0.85,0.32-1.23-0.03-1.5,0.82-0.27,0.84-0.34,0.96,0.16,1.18,0.49,0.23,0.87,0.53,1.4,0.44,0.54-0.09,1.24-0.47,1.06-1.09-0.17-0.63-1.12-1.35-1.12-1.35zm20.84,3.82c-0.33,0-0.47,0.12-0.94,0.56-0.62,0.58-1.62,1.37-1.71,1.9-0.09,0.54,0.12,0.96-0.19,1.54s-1.55,1.81-2,2.12-2.51,0.16-2.6,0.47c-0.08,0.31-0.37,0.52,0.04,0.87,0.4,0.36,2.91,0.63,3.72,0.54,0.8-0.09,3.3-0.3,3.74-0.35,0.45-0.04,0.71,0.28,0.66-0.43-0.04-0.72-0.72-1.36-0.4-1.85,0.31-0.49,0.6-0.65,0.78-0.97,0.17-0.31,0.49-1.06,0.31-1.47-0.18-0.4-0.72-0.95-0.72-1.53s-0.28-1.37-0.28-1.37c-0.18-0.01-0.3-0.04-0.41-0.03zm-45.53,6.62c-0.49,0-2.1,0.86-2.19,1.13-0.09,0.26-0.56,0.38,0.07,0.97,0.62,0.58,0.39,0.88,1.15,0.84,0.76-0.05,1.55-0.67,2.22-0.63,0.67,0.05,1,0.79,1.31,0.79,0.32,0,0.62-0.23,0.66-0.72s-0.42-0.89-0.59-1.07c-0.18-0.17-0.54-0.18-0.54-0.18-0.31-0.45-1.6-1.13-2.09-1.13zm-2.06,6.25c-0.54,0.18-1.01,0.45-1.5,0.63-0.49,0.17-0.81,0.17-1.13,0.43-0.31,0.27-0.72,0.46-0.72,0.82,0,0.35,0.15,0.5,0.6,0.81s0.52,0.62,1.19,0.62,1.89-0.5,2.03-0.81c0.13-0.31,0.48-0.94,0.53-1.25,0.04-0.31-1-1.25-1-1.25zm-51.31,9.13l-2.35,2.12-0.34,1.78,1.97,0.38,1.25,0.87h2.5l1.25-0.87v-1.78l-1.63-2.16-2.65-0.34zm59.09,4.4c-0.49,0.14-1.47,0.59-1.25,1.03,0.22,0.45,0.5,0.8,0.91,0.75,0.4-0.04,0.74-0.01,0.87-0.5,0.14-0.49-0.22-1.25-0.22-1.25l-0.31-0.03zm97.34,1.78c-0.09,0.01-0.18,0.07-0.28,0.22-0.38,0.6-0.53,1.69-0.4,2.1,0.12,0.41-0.42,0.87,0.12,1.31s0.62,1.22,1.53,1.25c0.92,0.03,1.9,0.47,2.63-0.06,0.72-0.54,1.43-1.69,1.65-2.19,0.22-0.51,0.32-1.22,0.07-1.53-0.26-0.32-0.62-0.81-1.13-0.88-0.5-0.06-1.19,0.16-1.19,0.16-1.07,0.31-0.99,0.66-1.78,0.31-0.59-0.26-0.92-0.72-1.22-0.69zm-135.37,0.22l-1.97,0.19-1.44,1.44,0.53,1.06,1.63-0.91,1.44,0.57,0.34,1.59,1.25,0.34,0.72-0.87-0.53-1.06-1.97-2.35zm27.09,1.13c-0.49,0.01-1.04,0.1-0.9,0.5,0.17,0.53,1.09,0.75,2.03,0.75s2.97,0.08,3.06,0.44c0.09,0.35,0.68,1.56,0.91,1.65,0.22,0.09,0.92,0.13,0.97-0.41,0.04-0.53-0.44-1.13-0.76-1.4-0.31-0.27-2.09-1.25-2.09-1.25-0.45-0.09-2.24-0.28-2.78-0.28-0.13,0-0.27-0.01-0.44,0zm10.31,1.12c-0.71,0.23-0.93,0.25-0.93,0.88,0,0.62-0.1,1.06,0.43,1.15,0.54,0.09,0.85,0.33,1.26,0.07,0.4-0.27,0.59-0.91,0.37-1.22s-1.13-0.88-1.13-0.88zm-44.71,1.16l-1.44,1.25,0.72,0.87,1.78-1.06-1.06-1.06zm6.4,2.31v1.78l2.35-0.53v-1.25h-2.35zm133.35,1.5c-1.05,0.29-1.25,0.28-2.07,0.6-0.82,0.31-1.49,0.24-1.87,0.74-0.38,0.51-0.44,0.28-0.66,1.29s-0.69,0.99,0.1,1.31c0.79,0.31,1.39,0.29,2.31-0.41,0.91-0.69,1.71-1.09,2.19-1.65,0.47-0.57,0.84-1.19,0.84-1.35s-0.84-0.53-0.84-0.53zm-122.41,0.5c-0.4,0.63-0.65,1.16-0.87,1.56-0.23,0.41-0.68,0.77-1.13,1.66s-0.81,1.32-0.81,2.03c0,0.72,0.24,1.18,0.68,1.41,0.45,0.22,0.34,0.5,0.57,0.5,0.22,0,0.82,0.09,1.31,0s1.03-0.19,1.03-0.5v-1.88c0-0.53-0.31-3.37-0.31-3.59s-0.47-1.19-0.47-1.19zm-16.47,0.69l-1.06,0.87v1.25l1.44,0.57,0.87-1.25-1.25-1.44z","name":"Krasnoyarsk Krai"},"tm":{"path":"m424.64,359.43,1.25,3.2143,1.25,2.3214s-0.53571,2.3214-0.71428,3.0357c-0.17857,0.71429-1.6071,3.0357-1.6071,3.0357s0.53571,1.25,1.6071,1.9643c1.0714,0.71429,5.8929,1.7857,5.8929,1.7857l5.3571,0.17857s3.75,0.89285,4.1071,1.6071c0.35714,0.71429,0.89286,1.0714,0.89286,2.1429,0,1.0714,0.35714,4.2857,0.35714,4.2857s1.25,0.35714,2.6786,0.35714,3.0357,0.35715,3.0357,0.35715,0.35714,2.1428,0.35714,2.6786c0,0.53571-0.89286,1.7857-1.9643,1.7857s-3.75,1.6072-3.75,1.6072-1.25,2.6786-1.25,3.75-0.89285,3.5714-0.53571,4.2857c0.35714,0.71429,4.4643,1.7857,5.1786,2.1429,0.71429,0.35714,3.2143,2.6786,3.2143,2.6786s-0.71429,1.6071-1.6072,2.6786c-0.89285,1.0714-4.1071,3.0357-5.3571,4.6429-1.25,1.6071-0.35714,2.8571-0.35714,2.8571l-0.71429,1.6071-3.2143,0.53572-3.2143,0.35714-1.4286-1.6071-1.9643-0.17857-4.66-0.57h-2.3214l-1.25,1.0714s-2.1429,1.0714-3.2143,1.25c-1.0714,0.17857-5.3571,1.25-6.0714,1.25-0.71428,0-6.4286,0.71429-6.4286,0.71429l-3.3928,1.4286h-2.3214l-0.35715-1.9643,0.71429-2.1429-0.35714-2.3214,1.7857-2.3214-0.53571-1.4286s-1.0714-0.17858-1.9643,0.53571c-0.89286,0.71429-4.4643,1.0714-4.4643,1.0714l-4.2857-0.17857-1.9643-2.3214-0.89286-3.0357s-1.25-1.0714-2.6786-0.71428c-1.4286,0.35714-1.6072,1.25-2.6786,1.25s-2.5,0-3.0357-0.89286c-0.53571-0.89286-0.89285-3.0357-0.89285-3.0357l-0.9-2.33s-1.6071-0.89286-2.5-1.6071c-0.89286-0.71429-3.2143-2.3214-3.2143-2.3214l-5.1786-2.3214-4.2857-1.9643-4.6429-1.7857-2.6786-1.0714-1.7857-2.5v-3.0357l1.6072-2.8572,0.35714-1.7857-0.53571-2.3214,1.25-3.0357,0.71428-3.3929,1.9643-1.0714,3.3928-2.8571s0-2.1429,0.71429-2.3214c0.71429-0.17857,5.7143-1.6071,5.7143-1.6071l1.9643-1.7857,1.25-2.6786,2.5-1.6071,1.6071-3.2143s1.0714-1.0714,1.7857-1.7857c0.71428-0.71429,2.1428-1.4286,2.1428-1.4286l1.9643-0.35715,2.1429,1.7857,2.1428,1.0714,2.5,0.35714,2.8572,1.4286,1.0714,1.6071,3.0357,0.89286h3.3929l2.1428,0.35714,1.25,1.6072,2.6786,0.71428,2.3214,0.71429,2.1429,1.7857,1.25-0.89286,1.7857-0.53571,2.1428-1.4286,2.1429-0.17857,1.6071,0.71428,1.7857,0.89286z","name":"Tomsk Oblast"},"nv":{"path":"m341.43,421.57,4.1071,0.71429l4.4643-0.17858c1.25-0.17857,2.1429-0.71428,2.1429-0.71428l-2.14,3.4h-3.0357l-0.89285,2.1428s1.0714,1.9643,1.7857,2.5c0.71429,0.53572,2.6786,3.0357,2.6786,3.0357l0.53572,2.1428,2.3214,0.35715h1.4286s2.6786,0.35714,3.3928,0.35714c0.71429,0,0.89286,0,1.9643-0.35714,1.0714-0.35715,3.2143-0.71429,4.6429-0.71429h3.5714s2.6786,0.17857,3.5714-0.35714c0.89286-0.53572,0.89286-1.0714,2.3214-1.25,1.4286-0.17857,3.0357-0.17857,3.9286-0.17857,0.89286,0,1.9643-0.17857,1.9643-0.17857s0,1.6071,0.89286,2.1428c0.89285,0.53572,4.1071,2.6786,4.1071,2.6786l0.71428,0.71429c0.17858,0.71429-0.17857,2.5-0.17857,3.2143,0,0.71428-1.0714,0.71428-0.17857,1.6071,0.89286,0.89286,1.9643,1.4286,1.9643,1.4286l2.3214-1.9643,2.3214-2.3214s2.1429-0.53572,2.8572-0.53572c0.71428,0,3.0357,0,3.75-0.17857,0.71428-0.17857,1.4286-0.71429,2.6786-0.17857,1.25,0.53571,2.3214,0.71428,3.3929,0.71428,1.0714,0,3.5714-1.25,3.5714-1.25s1.7857-2.1428,1.9643-2.8571c0.21-0.7-0.33-4.45-0.33-4.45v-3.75c0-0.71429,0.71428-2.3214,1.25-2.6786,0.53571-0.35714,1.7857-0.89285,1.7857-1.7857,0-0.89286-0.89286-1.6071-0.89286-1.6071s-0.89285-0.53572-0.89285-1.4286c0-0.89286,0.35714-3.2143-0.53572-3.0357-0.89285,0.17857-4.1071,1.7857-4.1071,1.7857s0,0.17857-1.4286,0.17857-2.5,0-2.6786-0.71429c-0.17857-0.71428,0.35714-5,0.35714-5l0.53571-2.6786,0.17858-2.1429-2.8572,1.4286s-1.6071,0.53572-2.5,0.71429c-0.9,0.18-4.47-0.71-4.47-0.71l-2.1429-0.71428-1.4286-2.1429-1.4286-2.8571s-2.5,0.53571-3.2143,0.71428c-0.71428,0.17858-1.9643,0.53572-1.9643,0.53572l-2.3214-1.25-1.0714-3.3929v-1.25l-3.0357-1.7857s-1.9643-1.6072-2.6786-2.1429c-0.71428-0.53571-3.3928-1.7857-3.3928-1.7857s-3.3929-1.25-4.1072-1.6072c-0.71428-0.35714-1.9643-1.25-2.6786-1.6071-0.71428-0.35714-3.9286-1.4286-3.9286-1.4286l-1.9643,0.17857s-0.35715,1.0714-0.53572,1.9643c-0.17857,0.89285-1.0714,2.3214-1.0714,2.3214l-1.4286,1.0714-0.89286,1.6072,0.17858,2.1428-0.71429,1.4286h-3.2143l-2.5-0.35714-2.1428,0.89286-2.1429,2.3214-1.4286,1.9643-0.71429,2.6786,0.71429,1.9643,1.7857,2.6786v1.7857l-2.1428,3.5714z","name":"Novosibirsk Oblast"},"al":{"path":"m351.25,435.14,1.7857,5,1.7857,5.1786,1.6071,6.7857,0.89286,8.5714,0.35714,8.2143,0.35714,2.8571,2.3214-0.53571,1.7857-0.53572,0.89285-0.53571,0.17857-1.9643,1.25-1.6071,1.25-0.35714,1.7857,0.53571,0.89286,1.9643,0.89285,2.8571,2.3214,2.8571,1.9643,1.6071,4.6428,0,3.3929-0.35714,2.5-0.89286,2.3214,0,3.3929,1.4286,1.0714,1.9643,2.3214,0.53572,2.3214-0.53572-0.17857-1.4286-1.6071-1.0714-1.0714-0.89286,0.35714-1.6071,0.71429-0.35714,2.5-0.35714,4.4643-0.71429,3.75-0.17857,2.6786-0.71429,2.3214-1.9643,1.0714-1.9643s0.53572-0.71428,1.25-0.71428c0.71429,0,3.3929-0.17858,3.3929-0.17858l1.9643-0.17857,1.0714-1.7857s0.53572-2.1429,1.25-2.5c0.71429-0.35714,0.89286-2.3214,0.89286-2.3214l0.71429-2.1429-0.35715-1.0714-0.71428-1.0714,0.71428-0.89286,1.25-0.53571-0.17857-1.0714-1.4286-1.6072-1.0714-1.0714c-0.17857-0.71429-0.89286-2.8572-0.89286-2.8572l-1.7857-1.7857-0.17857-0.89286-0.53572-2.1429-1.6071-1.4286-2.5-1.9643-1.74-1.79s-1.6072,1.0714-2.3214,1.4286c-0.71429,0.35715-1.7857,0.71429-1.7857,0.71429l-2.5,0.17857-2.5-0.35714-3.0357-0.17857-4.8214,0.71428-2.5,1.6072-1.6071,1.7857-1.0714,0.71429-0.89286,0.35714-1.4286-1.25-0.35714-0.89286,0.35714-0.89286,0.17857-1.7857-0.17857-1.4286-2.3214-1.6071-1.9643-1.25-1.0714-1.25-0.17857-0.89286-1.9643-0.17857-4.2857,0.17857-1.25,1.25-2.1429,0.53571-3.75-0.53571-4.2857,0.17857-2.6786,1.25h-2.5l-3.3929-0.17857z","name":"Altai Krai"},"km":{"path":"m442.14,414.79-0.71428,2.3214,0.89286,1.6072,2.5,1.4286,1.7857,1.6071,1.25,2.5,0.17857,0.89286s-0.89286,1.4286-1.6071,2.1429c-0.71429,0.71428-4.2857,2.3214-4.2857,2.3214l-1.7857,1.7857-1.7857,1.7857v1.6072l1.0714,1.7857,0.17858,1.7857-1.9643,2.5s-1.25,1.0714-1.0714,1.7857c0.17857,0.71428,1.0714,1.4286,1.7857,1.6071,0.71428,0.17857,2.8571,0.89286,2.8571,0.89286l-0.71429,1.4286-1.25,1.7857-0.53571,1.6072-1.7857,0.71428-1.4286,1.6072,0.71429,1.25,1.25,1.25-0.89286,2.5-1.25,1.6071,0.53572,1.25,1.7857,1.7857-0.35714,1.6072-1.6072,1.9643-2.5,2.1429h-1.9643l-0.71429-1.7857-1.9643-1.25-2.6786-0.35714-1.4286,1.0714-2.1428-1.4286-0.71429-2.3214-1.0714-0.71429,0.17857-2.5-0.53571-2.5,0.89286-1.9643,0.71428-1.6071-2.1428-2.6786-1.6072-2.6786-1.25-1.4286-0.71428-2.3214-0.89286-1.7857-2.3214-2.1429-1.7857-1.6071-0.71429-1.25v-1.7857l-0.35714-4.6428,0.17857-2.5,0.71429-2.3214,1.25-1.4286,0.71428-1.25-1.4286-1.9643v-0.89286l-0.35714-2.5,1.6071-0.35714,4.4643-0.53571,2.5-0.89286,3.0357-0.89286,1.0714-0.35714,0.71428-0.89286h1.6072,1.9643,2.5l1.7857,0.35715,1.4286,0.35714,0.89286,0.89286,1.9643,0.53571,1.6071-0.17857,2.5-0.71429z","name":"Kemerovo Oblast"},"lt":{"path":"m392.32,478.89-0.44643,2.1428s-0.17857,1.875,0,2.5893c0.17857,0.71429,1.1607,2.3214,1.1607,2.3214l3.3036,0.89286s0.98215,1.1607,1.0714,1.6071c0.0893,0.44643,0.0893,3.3036,0.0893,3.3036s0.17857,0.89286,0.53571,1.6071c0.35715,0.71429,1.25,1.875,1.7857,2.2322,0.53571,0.35714,1.6071,1.25,2.4107,1.3393,0.80357,0.0893,3.125,0.0893,3.5714,0.0893,0.44643,0,4.0179,0.0893,4.0179,0.0893s1.0714,0.53572,1.6071,0.89286c0.53571,0.35714,1.4286,1.25,1.7857,1.875,0.35715,0.625,1.5179,1.6964,2.0536,1.9643,0.53571,0.26785,1.1607,0.80357,1.7857,1.1607,0.625,0.35714,1.6964,0.71429,2.4107,0.80357,0.71429,0.0893,2.9464-0.44643,3.3929-0.71428,0.44643-0.26786,2.3214-0.89286,3.4821-0.89286s4.7322-0.35714,5-0.44643c0.26786-0.0893,3.5714-1.3393,4.1964-1.3393s1.4286-0.89285,1.6071-1.25c0.17858-0.35714,0.625-1.9643,0.17858-2.7678-0.44643-0.80357-0.80358-1.0714-1.4286-1.4286-0.625-0.35715-1.4286-1.25-1.25-1.7857,0.17858-0.53571,1.9643-1.1607,2.4107-1.1607,0.44643,0,2.5,1.0714,2.5,0.26785,0-0.80357-1.6964-2.2321-1.6964-2.2321s-0.98214-1.3393-1.25-1.7857c-0.26786-0.44643-1.875-1.9643-1.875-1.9643s-2.2321-2.7679-2.0536-4.1071c0.17857-1.3393-0.0893-3.3929-0.0893-3.3929s-0.625-1.3393-0.71428-1.6964c-0.0893-0.35714-1.3393-0.17857-1.3393-0.17857l-1.5179,1.5179s-1.4286-0.26786-1.5178-0.80357c-0.0893-0.53572-0.71429-2.5893-0.71429-2.5893s-0.35714-1.7857-0.44643-2.1429c-0.0893-0.35714-0.17857-1.9643-0.17857-1.9643l1.6964-1.3393,2.8571-1.3393,0.35715-1.1607-1.3393-1.6071-0.80357-0.625-2.1429-0.53571-1.9643,0.98214s-1.0714-0.625-1.4286-0.80357c-0.35714-0.17857-1.0714-0.89286-1.0714-0.89286l-0.89286-1.7857s0-1.0714-0.71429-0.89286c-0.71428,0.17857-0.89285,0.71428-0.89285,0.71428s-1.1607,1.1607-1.1607,1.5179c0,0.35714-0.625,1.4286-0.625,1.4286l-0.98214,1.0714s-1.6071,0.44643-1.9643,0.44643h-3.0357c-0.35714,0-1.1607,0.71429-1.5179,1.0714-0.35714,0.35714-1.1607,1.9643-1.1607,1.9643l-1.5179,1.0714-0.98214,0.625-2.3214,0.71429h-2.3214l-4.1071,0.71428-4.1071,0.625-1.0714,0.625-0.0893,0.98215s0.0893,0.89285,0.53572,0.98214c0.44642,0.0893,1.6071,0.80357,1.6071,0.80357l0.44643,0.89286-0.0893,0.89286-1.875,0.625z","name":"Altai Republic"},"tv":{"path":"m431.96,477.02,0.26786-1.6964s0.89286-0.625,1.6071-0.625c0.71429,0,1.6964,0.71428,2.4107,0.89286,0.71428,0.17857,2.7678,0.71428,3.0357,0.71428,0.26786,0,1.0714-0.80357,1.3393-1.25,0.26785-0.44643,1.9643-2.6786,1.9643-2.6786s0-1.25,0.625-1.6071c0.625-0.35715,1.875-0.35715,2.3214-0.35715,0.44643,0,1.6071-0.17857,2.3214,0.26786,0.71429,0.44643,1.1607,3.0357,1.1607,3.0357s0.89286,0.89285,1.1607,0.89285c0.26786,0,2.1429-0.80357,2.1429-0.80357s1.4286,0.17857,1.7857,0.44643c0.35714,0.26786,3.0357,0.89286,3.0357,0.89286s1.6964,1.6071,2.2322,1.6071c0.53571,0,1.6964,0.26786,2.6786-0.0893,0.98214-0.35714,2.8571-0.80357,3.3929-1.25,0.53571-0.44642,5.5357-1.9643,5.9821-2.5,0.44643-0.53571,7.0536-5.9821,7.0536-5.9821l2.1429-2.8571s-0.17857-1.875-0.17857-2.9464,1.0714-2.3214,1.4286-2.5893c0.35714-0.26785,2.8571,0.0893,3.3036,0.17858,0.44643,0.0893,4.375,0.89285,4.7321,0.80357,0.35714-0.0893,4.2857-0.44643,4.2857-0.44643l2.4107-2.2321s1.5179-0.35715,2.4107,0.0893c0.89286,0.44643,3.6607,2.5,4.1964,2.7679,0.53572,0.26786,3.75,2.3214,3.75,2.3214l1.6072,1.5178s1.25,0.71429,1.7857,0.44643c0.53571-0.26785,2.3214-0.89285,2.3214-0.89285l1.6071,0.53571,0.35714,1.25s0.53572,0.89286,0.53572,1.25-0.89286,1.6071-0.89286,1.6071-0.71428,0.53572-0.80357,1.1607c-0.0893,0.625-0.26786,4.1071-0.26786,4.1071s-0.0893,2.3214-0.0893,2.7679c0,0.44643-0.71429,2.1428-0.71429,2.1428l-1.4286,2.4107s-1.5179,1.3393-1.875,1.875c-0.35714,0.53571-2.2321,1.3393-2.4107,1.6964-0.17858,0.35714-0.71429,1.875-0.71429,1.875s-0.71429,1.875-0.71429,2.4107c0,0.53572-0.0893,3.3929-0.0893,3.9286,0,0.53572,0.53571,2.5,1.0714,3.2143,0.53571,0.71428,1.25,1.6071,1.25,2.0536,0,0.44643-0.80357,2.3214-1.1607,2.7679-0.35714,0.44643-4.8214,4.1964-4.8214,4.1964l-2.0536,1.25-2.1428,0.17857s-1.7857-0.98215-2.1429-0.89286c-0.35714,0.0893-2.3214,0.17857-2.6786,0.17857-0.35715,0-1.7857-0.89286-1.7857-0.89286s-1.6964-0.35714-2.1428-0.625c-0.44643-0.26785-1.7857-1.1607-1.7857-1.1607s-2.7679-0.26786-3.2143-0.26786c-0.44643,0-2.8572-0.17857-3.2143-0.53571l-2.0536-2.0536s-0.71429-1.4286-0.80357-1.9643c-0.0893-0.53571-0.17857-2.5-0.17857-2.5s-0.80358-0.80357-1.3393-1.25c-0.53571-0.44643-2.1429-0.89286-2.9464-0.89286-0.80357,0-3.9286,0.17858-3.9286,0.17858s-1.9643,0.53571-2.2321,0.625c-0.26786,0.0893-1.25,0.71428-1.875,0.80357-0.625,0.0893-2.0536,0.0893-1.9643-0.80357,0.0893-0.89286,1.25-1.6964,1.3393-2.0536,0.0893-0.35714-0.0893-1.0714-0.71429-1.3393-0.625-0.26786-2.1429-0.17857-3.0357,0.0893-0.89286,0.26786-2.3214,0.80358-2.8572,0.89286-0.53571,0.0893-3.3928,0.71429-3.3928,0.71429s-2.1429,0.89285-2.6786,1.0714c-0.53572,0.17857-3.8393,1.1607-3.8393,1.1607l-3.0357,1.5179-2.4107,1.1607-2.5893-0.26786-2.1429-0.98214-1.5179-0.71428-1.25-1.25c0-0.44643,0.35714-0.98215,0.35714-0.98215l2.4107-0.44643,1.7857,0.53572s1.25-0.35714,0.17857-1.0714c-1.0714-0.71429-4.4643-5.0893-4.4643-5.0893l-1.48-2.44s-1.0714-1.4286-1.0714-1.7857v-2.5893z","name":"Tuva Republic"},"hk":{"path":"m440.27,432.11c0.53572,0.35715,1.9643,1.875,1.9643,1.875l1.3393,1.6072s0.26785,0.625,1.1607,0.80357c0.89286,0.17857,2.0536,0.17857,2.0536,0.17857s0.35714-0.35714,0.80357-0.80357,0.625-0.98214,0.98215-1.25c0.35714-0.26786,0.89285-0.89286,1.3393-0.80357,0.44643,0.0893,0.71429,0.26785,1.3393,0.71428,0.625,0.44643,1.3393,1.25,2.2321,1.25,0.89286,0,2.5,0.80357,2.5,0.80357s0.44643,1.875,0.625,2.3214c0.17857,0.44643,0.53571,2.9464,0.53571,2.9464s0.35715,1.5179,0.71429,2.4107c0.35714,0.89285,0.98214,2.0536,1.0714,2.4107,0.0893,0.35714-0.0893,3.125-0.17857,3.3929-0.0893,0.26785-0.80357,1.875-0.89286,2.2321-0.0893,0.35714,0,2.5893,0,2.5893l1.5179,1.5179,0.625,1.875s-1.25,1.4286-1.4286,1.6964c-0.17858,0.26786-2.2322,1.3393-2.5893,1.875-0.35714,0.53571-1.4286,3.0357-1.4286,3.0357s-1.6071,1.9643-2.1429,2.2322c-0.53571,0.26785-2.8571,1.0714-3.125,1.5178-0.26786,0.44643-1.6964,1.6964-1.6964,1.6964l-2.7678,0.0893s-1.3393,0.17857-1.6072,0.625c-0.26785,0.44643-0.53571,1.4286-1.0714,1.875-0.53571,0.44643-1.0714,1.25-1.1607,1.6071-0.0893,0.35714-0.89286,1.0714-0.89286,1.0714s0.0893,0.71429-1.0714,0.625c-1.1607-0.0893-2.9464-0.35714-2.9464-0.35714l-1.7857-1.1607-1.6071,0.44643-0.625,0.80357-0.26786,0.89286-2.5,1.0714s-0.625,0.89286-1.1607,0.35714c-0.53572-0.53571-1.25-2.3214-1.25-2.3214l-0.625-2.5893v-1.5179s0.17857-1.0714,0.53571-1.25c0.35714-0.17857,2.5-1.6071,2.5-1.6071s1.3393-0.98215,1.6964-1.0714c0.35714-0.0893,2.1429-0.44643,2.1429-0.44643l1.9643-1.0714,1.5179-2.0536,1.3393-1.0714-0.44643-1.6071s-1.25-1.25-1.4286-1.6071c-0.17858-0.35715-0.44643-1.25-0.44643-1.25l1.6071-2.2322,0.0893-1.875s-1.0714-1.1607-1.1607-1.5178c-0.0893-0.35715-0.0893-1.25-0.0893-1.25l2.5893-1.5179,1.0714-1.875,1.1607-1.9643,0.53572-1.6964-3.5714-1.1607s-0.89286-1.25-0.71429-1.7857c0.17858-0.53572,1.7857-2.4107,1.7857-2.4107s0.89286-1.875,0.89286-2.3214c0-0.44642-1.0714-2.8571-1.0714-2.8571s0-0.71428,0.26785-1.1607c0.26786-0.44643,1.25-0.98215,1.25-0.98215z","name":"Republic of Khakassia"},"ir":{"path":"M569.41,325.78c-0.12,0.03-0.22,0.12-0.22,0.34,0,0.45,0.53,1.54,0.53,1.54l0.37,1.06s-0.26,0.88-0.62,1.06-1.78,0.63-1.78,0.63l-2.69,0.09s-1.61,0.26-1.88,0.44c-0.26,0.18-0.9,0.73-0.9,1.09s-0.44,1.96-0.53,2.31c-0.09,0.36-0.16,1.97-0.16,1.97s0.18,0.78,0.63,1.41c0.44,0.62,0.43,1.81,0.43,1.81l-1.25,1.16s0.26,1.67,0.35,2.03,1,3.4,1,3.4l0.43,2.5s-0.28,1.42-0.28,1.69-0.96,4.57-0.96,4.57-0.09,0.98-0.54,1.24c-0.44,0.27-2.06,1.88-2.06,1.88s-0.19,0.99-0.19,1.34c0,0.36,0.37,1.06,0.19,1.5-0.18,0.45-1.97,1.72-1.97,1.72l-2.59,0.72-1.31,0.88-0.29,3.84-0.09,2.22v1.81c0,0.36,0.27,1.34,0.72,1.78,0.45,0.45,2.16,1.97,2.16,1.97l2.21,0.53,1.16,0.78,0.1,2.25s-0.37,1.33-0.82,1.5c-0.44,0.18-2.75,1.82-2.75,1.82l-0.53,1.15,0.97,1.16,1.97,1.59s0.78,0.1,0.87,0.72c0.09,0.63-0.15,2.6-0.15,2.6l-0.47,1.43-1.25,1.07-1.41,1.43-0.19,1.6-1.24,0.81-2.79-0.28-1.59-1.35-1.78-0.68-2.25-0.63s-0.45-0.74-0.63-1.19c-0.17-0.44-0.34-1.68-0.34-1.68l-1.25-0.72-1.87,1-1.26,0.09-0.18,1.69-0.35,2.41-0.53,1.53-0.9,0.97-1.6,0.53s-1.89,0.28-2.25,0.37c-0.35,0.09-1.34,1.41-1.34,1.41s-0.53,0.8-0.44,1.15c0.09,0.36,0.19,1.25,0.19,1.25l-1.16,0.91-2.06,0.81s-0.44,0.9-0.44,1.25c0,0.36,0.16,1.97,0.16,1.97l0.37,1.5,0.1,1.63s0.7,0.7,0.43,1.06c-0.26,0.36-2.78,0.62-2.78,0.62l-1.93-2.78-1-1.5-1.07-2.34-1.06-0.69h-1.72l-1.59,1.69s-0.89,0.81-1.16,1.44c-0.27,0.62,0.01,1.78-1.15,1.78s-3.22-0.38-3.22-0.38l-1.25-1.15-1.97-0.44-1.34-0.19s-0.62,0.64-0.97,0.91c-0.36,0.27-1.35,1.25-1.35,1.25v0.62l-0.72,1.88-1.15,2.22-0.81,0.9-0.29,1.35,0.63,1.68s0.45,0.9,0.81,1.25c0.36,0.36,0.63,0.35,0.72,0.97,0.09,0.63,0.19,2.6,0.19,2.6l-0.38,2.4-0.97,1.88s-1.88,1.79-2.15,2.06-2.13,1.61-2.13,1.97-1.62,4.19-1.62,4.19l-1.25,2.25s-0.69,2.11-0.78,2.56-0.63,3.59-0.63,3.59-0.09,1.33-0.62,1.6c-0.54,0.26-3.69,0.81-3.69,0.81s-2.12,1.07-2.56,1.34c-0.45,0.27-0.72,0.63-0.72,0.63s-0.19,0.52-0.1,0.87c0.09,0.36,1.16,2.25,1.16,2.25l1.44,2.66,1.06,0.56,0.97,1.06,1.09,1.69v0.81l1.25-0.43s0.9-0.91,1.25-1c0.36-0.09,1.78,0.28,1.78,0.28l1.44,0.87s1.43,0.91,1.78,1c0.36,0.09,2.03,1.41,2.03,1.41l4.32,2.87s0.34,0.82,1.06,0.82c0.71,0,2.41-0.38,2.41-0.38l1.78-0.34,1.06,1.15,0.28,1.16,0.28,1.53,2.56-0.81,2.44-2.41s2.14-2.16,3.13-2.34c0.98-0.18,2.12,1.19,2.12,1.19s0.72,1.58,1.25,2.03c0.54,0.44,2.43,2.32,2.78,2.59,0.36,0.27,3.03,1.53,3.03,1.53l2.22,2.66c0.45,0.53,2.52,3.22,2.97,3.22s2.84,0.18,3.38,0.09c0.53-0.09,1.96,0.63,2.5,1.25,0.53,0.63,1.78,2.69,1.78,2.69s1.27,1.69,1.62,1.78c0.36,0.09,1.16,1.88,1.16,1.88s0.89,1.62,1.25,1.53,2.31-0.63,2.31-0.63,0.73,0.15,0.91,0.69c0.18,0.53,0.87,2.59,0.87,2.59s1.18,0.62,1.53,0.53c0.36-0.09,1.88-1.25,1.88-1.25s1.77-0.26,2.12-0.43c0.36-0.18,1.44-0.82,0.82-1.44-0.05-0.04-0.11-0.06-0.16-0.09,0.05-0.01,0.34-0.07,0.34-0.07l1.69-0.62,8.75-2.88s1-1.76,1-2.03,0.63-2.06,0.63-2.06l0.06-2.06,0.81-0.82,1.78-0.96,2.25-0.82,1.16-1.68,1.06-0.82,5.44-2.59,1.62-1.31,0.82-1.1,0.62-2.5,1.94-1.15s1.27-0.9,1.62-1.35c0.36-0.44,0.35-0.97,0.35-0.97l-0.63-0.81-1.25-1.25-0.34-0.81s0.18-0.96,0.62-1.41c0.45-0.44,0.71-0.63,1.07-0.72,0.35-0.09,1.25,0.35,1.25,0.35l1,1.09,0.87-0.47,0.63-1.78s0.81-2.14,0.9-2.5,0.25-1.69,0.25-1.69-0.25-3.05-0.25-3.5v-2.5s0.44-4.01,0.53-4.37,0.35-2.13,0.35-2.13l-0.1-1.87s-0.44-1.17-0.62-1.44-0.16-0.81-0.16-0.81,0.63-1.05,0.72-1.41c0.09-0.35-0.37-0.81-0.37-0.81s-0.54-0.71-0.72-1.06c-0.18-0.36-0.88,0.15-0.88,0.15l-1.44,0.91s-0.79,1.26-1.15,1.53-0.44,1.31-0.44,1.31l-0.28,4.38-0.81,1.34-1.53-0.09c-0.34-0.63-0.73-1.32-0.79-1.6-0.08-0.44-0.43-2.67-0.34-3.65s0.97-4.38,0.97-4.38l1.25-1.25s0.09-1.52-0.53-2.06c-0.63-0.53-1.87-1.07-2.41-1.34-0.53-0.27-1.72-1.35-1.72-1.97,0-0.63,0.92-1.77,1.19-2.13,0.27-0.35,3.93-1.51,4.28-1.78,0.36-0.27,3.57-2.15,3.57-2.15l3.65-1.07,2.78,0.25,2.13-0.34,1.34-2.5,2.88-0.81s1.87,1.25,2.4,1.25c0.54,0,2.22-0.72,2.22-0.72s1.07,0.64,1.25,1,1.63,1.34,1.63,1.34l1.93-0.37s1.35-0.44,2.07-0.35c0.71,0.09,1.7,0.98,2.06,1.07s2.75-0.72,2.75-0.72l1.09-1.5,2.5-1.16s1.35-1.08,1.35-1.53,0.15-3.22,0.15-3.22,1.25-0.61,1.88-0.97c0.62-0.35,2.15-0.18,2.15-0.18s0.17-1.34,0.35-1.79c0.18-0.44,1.33-1.34,1.78-1.43s2.44,0.37,2.44,0.37l1.15,0.97-1.34,1.44-0.72,1.15,0.72,0.72s2.31-0.45,2.94-0.72c0.62-0.26,2.24-0.44,2.78-0.53,0.53-0.09,2.84-1.15,2.84-1.15s0.91-1.08,0.91-1.44-0.2-1.71-0.38-2.16c-0.18-0.44-2.21-1.14-2.65-1.59-0.45-0.45-0.54-2.58-0.72-2.94s-0.9-1.9-0.63-2.44c0.27-0.53,1.06-1.78,1.06-1.78l-0.62-2.5s-0.01-2.48,0.34-2.84c0.36-0.36,2.07-1,2.07-1l2.93,0.81s0.9,1.15,1.35,1.06c0.44-0.09,2.15-0.53,2.15-0.53l0.25-3.56-0.87-1.16s-1.27-1.42-1.63-1.68c-0.35-0.27-1.25-1.25-1.25-1.25l-1.68-2.97-0.25-2.6-0.72-1.68-2.25-0.54-1.78,0.97-3.13,1.53-1.97,0.44-0.72-0.72-0.78-2.84-1-1.59-2.75-2.35-2.34-1.68-2.66-0.91-2.78-0.06s-2.49,0.8-2.84,1.15c-0.36,0.36-1.45,1.52-1.72,1.88-0.27,0.35-0.88,2.5-0.88,2.5l-0.28,2.12v2.5s-0.17,1.36-0.43,1.72c-0.27,0.36-3.94,2.03-3.94,2.03l-1.16,1.72-0.19,2.66-0.97,2.25-2.15,2.22s-0.6,0.63-0.69,0.09-0.62-2.22-0.62-2.22l-2.16-2.34s-0.44-1.23-1.06-0.78c-0.63,0.44-1.63,1.31-1.63,1.31l-3.28,1s-0.89,0.43-1.25,0.87c-0.36,0.45-2.97,0.72-2.97,0.72l-2.03,0.28-2.16,2.5s-0.62,1.26-1.24,0.82c-0.63-0.45-2.22-2.35-2.22-2.35l-0.82-1.59-0.53-2.94,0.16-5.56-0.06-2.56,1.5-2.6,1.87-3.03s0.44-1.61,0.44-2.06-0.53-3.03-0.53-3.03l-2.03-2.25-4.94-3.66s-0.63-0.71-0.63-1.25c0-0.53,0.1-2.31,0.1-2.31l1.15-1.97s0.63-0.35,0-1.06c-0.62-0.72-3.18-4.57-3.18-4.57l0.15-5.34s0.02-0.65-0.34-1.09c-0.36-0.45-2.59-3.28-2.59-3.28l-1.54-1.88s-0.24-0.62-0.68-0.62c-0.45,0-2.16,0.68-2.16,0.68s-1.17,0.82-1.44,0.29c-0.27-0.54-0.25-2.6-0.25-2.6s-0.29-1.16,0.16-1.25,1.62-0.44,1.62-0.44h1.5l0.29-1.43-1.79-1.97-1.53-1.35-1.4-0.06s-0.14-0.03-0.25,0z","name":"Irkutsk Oblast"},"br":{"path":"m513.39,476.39s1.6072,0.98214,2.3214,1.1607c0.71429,0.17857,2.8572,1.25,3.3929,1.3393,0.53571,0.0893,1.7857,0.71428,2.5,0.98214,0.71429,0.26786,1.875,0.98214,2.5893,1.3393,0.71428,0.35714,2.2321,0.53571,3.2143,0.625,0.98214,0.0893,2.8571,0.89285,3.4821,1.0714,0.625,0.17858,2.1429,1.0714,2.9464,1.1607,0.80357,0.0893,1.5179,0,2.7679,0.625s2.7679,1.3393,3.125,1.5179c0.35714,0.17857,0.71429,0.26785,0.80357,0.98214,0.0893,0.71428,0,2.6786,0.0893,3.0357,0.0893,0.35715,0.26785,1.6964,0.625,2.0536,0.35714,0.35715,1.6071,1.9643,2.5893,2.5893,0.98215,0.625,1.4286,1.6964,1.9643,2.1429,0.53571,0.44643,2.3214,1.875,2.8571,1.9643,0.53572,0.0893,2.3214,0.625,2.7679,0.625,0.44643,0,5.0893,0.44643,5.0893,0.44643s1.7857-0.80357,2.7679-1.25c0.98214-0.44643,4.0179-1.25,4.4643-1.5179,0.44643-0.26785,1.5178-0.98214,2.6786-1.0714,1.1607-0.0893,4.1964-0.0893,5.0893-0.0893,0.89286,0,4.1072,0.0893,4.1072,0.0893s2.3214-0.0893,3.125,0.44642c0.80357,0.53572,1.6071,1.6072,1.9643,2.1429,0.35715,0.53572,0.625,1.4286,1.0714,1.6071,0.44643,0.17858,1.4286,0.35715,1.875,0.35715,0.44643,0,2.1429-0.26786,2.5-0.35715,0.35714-0.0893,2.2321-0.44642,2.2321-0.44642l0.0893-2.6786s-0.0893-1.7857,0.53571-2.0536c0.625-0.26785,4.4643-1.5178,4.8214-1.6964,0.35715-0.17857,1.25-1.6071,1.25-1.6071s-2.5-0.625-3.3036-0.625c-0.80357,0-1.25-1.4286-1.25-1.4286l1.0714-1.5179,0.17857-1.9643,0.98214-1.0714,0.80358-1.3393s-0.625-0.98214-0.80358-1.3393c-0.17857-0.35715-0.0893-1.4286-0.0893-1.4286l2.2321-1.1607,3.125-0.35714,2.4107-1.1607,3.4821-2.4107,1.7857-0.625s1.4286,0.0893,1.875,0.26786c0.44643,0.17857,2.4107,0.53571,2.5893,0.17857,0.17857-0.35714,1.6071-1.9643,2.0536-2.3214,0.44643-0.35714,2.6786-2.1429,2.6786-2.1429l1.4286-1.1607s0.98215-1.25,1.4286-1.5179c0.44643-0.26786,1.875-1.0714,2.4107-1.0714,0.53571,0,0.98214,0,1.3393-0.26785,0.35715-0.26786,1.1607-1.25,1.3393-1.6072,0.17857-0.35714,1.0714-0.80357,1.6071-0.89285,0.53572-0.0893,5-1.3393,5-1.3393l2.6786-1.5179s1.875-1.5178,2.0536-1.875c0.17857-0.35714,1.6071-2.8571,1.6071-2.8571l0.98214-1.875s-0.26786-1.4286-0.71428-1.7857c-0.44643-0.35715-2.1429-1.6072-2.1429-1.6072l-2.5-1.25s-1.25-0.80357-1.1607-1.6071c0.0893-0.80357,7.5-5.625,7.5-5.625s0.98215-1.6964,1.0714-2.0536c0.0893-0.35714,0.89286-1.9643,1.25-2.3214,0.35715-0.35714,2.5-2.0536,2.5-2.0536s1.4286-0.625,1.875-0.71429c0.44643-0.0893,3.5714-1.5178,3.5714-1.5178l1.25-0.98215s0.44643-2.0536,0.44643-2.5893c0-0.53572-0.80357-3.8393-0.80357-3.8393s-1.0714-0.53571-1.4286-0.89285c-0.35715-0.35715-1.25-0.80358-2.1429-0.80358-0.89286,0-2.6786,0-3.125-0.625-0.44643-0.625-1.3393-1.25-1.6964-1.875-0.35714-0.625-1.1607-1.7857-1.25-2.2321-0.0893-0.44643-0.80357-2.4107-0.98214-2.7679-0.17857-0.35714-1.0714-2.3214-1.0714-2.3214l-2.0536-3.5714-1.0714-2.7679,0.26786-2.0536,1.0714-0.625,0.80357-1.25,1.4286-1.875,0.625-0.98214-2.3214-1.25s-1.875,0.44642-2.2321,0.71428c-0.35715,0.26786-0.98215,1.3393-0.98215,1.3393s0.35715,0.625,0,0.80357c-0.35714,0.17857-2.3214,0.44643-2.3214,0.44643l-1.25,0.89285-0.71429,1.9643v1.6071l-0.98214,0.98215-2.0536,1.0714-1.3393,0.98215-1.1607,1.3393s-1.6964,0.0893-2.0536,0.0893c-0.35714,0-2.0536-0.625-2.0536-0.625l-2.6786,0.17857-2.3214-0.0893-1.9643-1.4286-1.4286,0.26786-2.0536-0.35714s-0.80357-0.71429-1.1607-0.71429c-0.35714,0-2.1429,0.625-2.1429,0.625l-1.5178,1.3393-0.98215,1.0714-2.6786,0.26785-1.9643-0.0893-2.3214,0.44643-2.2322,1.1607-3.3928,1.7857-2.3214,0.98215-1.3393,0.89285-0.89285,1.1607s-0.0893,0.35714,0.0893,0.71428c0.17857,0.35715,0.98214,1.4286,0.98214,1.4286l1.6072,0.80357,0.98214,0.89285,0.83,0.91,0.0893,1.1607-1.6071,2.1428-0.35714,2.2322-0.35715,1.875v2.6786l0.80358,1.6071,1.1607,1.4286s0.26786-0.44643,0.71429-0.80357c0.44642-0.35714,1.1607-2.3214,1.1607-2.3214v-2.0536l0.0893-2.0536,0.98214-1.875,1.6964-1.25,1.1607-0.17857,0.89286,1.1607s-0.0893,1.25-0.26786,1.6964c-0.17857,0.44643-0.53571,0.98214-0.35714,1.3393,0.17857,0.35714,0.89286,1.4286,0.89286,1.4286l-0.17858,2.7678s-0.35714,2.3214-0.35714,2.6786c0,0.35714-0.26786,2.5893-0.26786,3.0357v2.5893c0,0.89285,0,1.5178,0.0893,2.1428s0.0893,1.6964-0.0893,2.1429c-0.17857,0.44643-0.44642,1.25-0.71428,1.9643-0.26786,0.71428-0.35714,1.25-0.44643,1.9643-0.0893,0.71429-1.0714,1.6964-1.0714,1.6964s-0.71428,0.26786-0.98214-0.625-1.6071-0.98214-1.6071-0.98214-0.71429,0.44642-1.0714,0.98214c-0.35715,0.53571-0.89286,1.25-0.35715,1.6964,0.53572,0.44643,1.5179,1.6071,1.5179,1.6071s0.625,0.35714,0.26786,1.1607c-0.35714,0.80358-1.1607,1.0714-1.6964,1.4286-0.53571,0.35714-1.5179,0.89285-1.6964,1.25-0.17857,0.35714-0.71428,1.4286-0.71428,1.7857,0,0.35714-0.44643,2.0536-0.44643,2.0536l-1.3393,0.98214-1.875,1.3393s-2.2321,0.71429-2.6786,0.98214c-0.44643,0.26786-2.5,1.4286-2.8571,1.7857-0.35715,0.35714-0.53572,1.25-1.4286,1.6071-0.89286,0.35714-3.125,1.3393-3.125,1.3393l-0.98215,0.26785s-0.35714,0.80357-0.35714,1.1607c0,0.35714-0.26786,2.2321-0.26786,2.7678,0,0.53572-0.26785,0.98215-0.625,1.6964-0.35714,0.71429-0.98214,1.6964-1.6071,1.7857-0.625,0.0893-2.7679,0.71428-3.2143,0.89285-0.44642,0.17858-2.5,0.89286-3.0357,0.98215-0.53571,0.0893-2.8571,1.0714-2.8571,1.0714l-0.71429,0.80357-1.5179,1.1607-2.0536,0.71429-1.4286,0.80357-1.6964-1.0714-0.35714-0.98214-0.44643-1.25s-0.35714-0.35715-1.25-0.26786c-0.89286,0.0893-2.0536,0.44643-2.0536,0.44643s-1.3393-1.4286-1.6071-1.875c-0.26786-0.44643-1.875-3.125-1.875-3.125l-1.54-1.99-1.34-1.61s-1.1607-0.71429-1.6964-0.71429c-0.53571,0-2.6786-0.17857-3.0357-0.17857-0.35715,0-1.6072-0.89285-1.7857-1.1607-0.17857-0.26786-3.4821-4.2857-3.4821-4.2857l-1.875-0.89285-2.8571-1.9643-1.9643-2.2321-1.0714-1.6964-0.89286-0.625s-0.89285-0.26786-1.25,0.0893c-0.35714,0.35714-0.80357,0.53571-1.3393,0.89285-0.53572,0.35715-1.875,1.4286-1.875,1.4286l-1.3393,1.25-1.9643,1.1607-1.4286,0.89286s-0.89286,1.0714-0.98215,1.6071c-0.0893,0.53571-0.26785,1.1607-0.26785,2.0536,0,0.89286-0.35715,3.3036-0.35715,3.3036z","name":"Buryat Republic"},"zb":{"path":"m588.41,500.07s1.1364,1.1364,1.6415,1.5152c0.50508,0.3788,1.6415,1.6415,2.2728,1.894,0.63134,0.25254,2.6516,1.6415,2.6516,1.6415s2.9042,1.0102,3.4093,1.0102h5.5558c1.1364,0,3.283,0.75762,3.283,0.75762s0.88388,0.63134,2.0203-0.25254c1.1364-0.88389,2.3991-1.6415,2.3991-1.6415s0.75762,0.25254,1.6415,0.63135c0.88388,0.3788,1.5152,1.2627,2.1466,1.2627,0.63135,0,3.4093-1.7678,3.4093-1.7678s2.6516-2.2728,3.1567-2.7779c0.50507-0.50508,2.5254-0.88388,3.5355-1.2627,1.0102-0.37881,5.4296-0.50508,5.4296-0.50508s1.894-1.2627,2.2728-1.894c0.37881-0.63135,1.7678-3.4093,1.894-3.9143,0.12627-0.50508,2.7779-2.3991,3.4093-2.9042,0.63135-0.50508,4.9245-2.5254,5.177-3.0305,0.25253-0.50508,2.0203-1.5152,2.0203-1.5152l3.1567,1.2627,2.9042,1.2627s2.2728,0.25254,2.9042,0.25254c0.63135,0,2.2728-0.50508,2.7779-0.88388,0.50508-0.37881,3.1567-1.7678,3.1567-1.7678s3.283,0.25254,3.7881,0.50508c0.50508,0.25253,1.7678,0.88388,2.3991,1.1364,0.63135,0.25254,3.9144,1.389,3.9144,1.389s3.6618,0.3788,4.4194,0.25254c0.75762-0.12627,2.5254-1.7678,2.7779-2.3991,0.25254-0.63134,0.75762-2.3991,1.6415-2.9042,0.88388-0.50507,4.2932-1.5152,4.2932-1.5152s1.389-0.12627,1.5152-1.6415c0.12627-1.5152,0.37881-2.9042-0.25254-3.5355-0.63135-0.63134-1.389-0.88388-1.7678-1.7678-0.3788-0.88389,0.88389-8.9651,0.88389-8.9651l1.6415-3.7881,1.2627-4.2932s1.389-2.2728,1.2627-2.9042c-0.12627-0.63134-0.37881-3.9143-0.37881-3.9143l-1-2.41s-1.1364-0.88388-1.5152-1.389c-0.37881-0.50507-1.0102-0.37881-1.5152-1.0102-0.50508-0.63135-1.7678-1.1364-1.7678-1.7678,0-0.63134-0.25254-1.5152,0.37881-2.0203,0.63134-0.50508,3.0305-3.0305,3.7881-3.4093,0.75761-0.37881,4.5457-2.5254,4.9245-3.0305,0.37881-0.50507,1.389-1.6415,1.7678-2.1466,0.37881-0.50508,0.88388-0.50508,0.63135-1.6415-0.25254-1.1364-2.6516-3.5355-2.6516-3.5355s-0.63135-0.88389-1.5152-0.88389c-0.88389,0-3.1567-0.3788-3.1567-1.0102,0-0.63134-0.37881-1.2627-0.12627-2.0203,0.25254-0.75762,2.0203-2.2728,2.2728-2.9042,0.25254-0.63135,0.37881-1.894,0.37881-1.894l-2.3991-1.6415-2.6516,0.12627s-0.25254-0.25253-0.25254-0.88388c0-0.63134,0.63135-2.7779,0.88388-3.283,0.25254-0.50507,0.50508-1.5152,0.63135-2.1466,0.12627-0.63134-0.25254-1.7678-0.75761-2.3991-0.50508-0.63135-1.5152-1.389-1.5152-1.389s-1.1364-0.50508-1.6415,0.12627c-0.50508,0.63134-1.1364,1.5152-1.1364,1.5152s-1.1364,0.12627-1.6415-0.25254c-0.50508-0.37881-0.88388-4.1669-0.88388-4.1669s-0.88389-1.2627-1.6415-1.389c-0.75762-0.12627-1.6415-0.12627-2.1466,0.50508-0.50507,0.63134-1.0102,1.0102-1.7678,1.5152-0.75762,0.50508-1.2627,1.1364-1.894,0.75762-0.63134-0.37881-1.389-0.75762-1.2627-1.389,0.12627-0.63135,0.75761-1.6415,0.88388-2.1466,0.12627-0.50507-1.7678-2.1466-1.7678-2.1466l-3.283-0.12627-1.1364-1.1364c-0.12627-0.75761,0.25254-2.5254,0.25254-2.5254l-1.389-1.5152-2.7779-4.0406-1.2627-1.894-3.1567-0.3788-1.1364-2.0203-0.25254-2.9042-1.2627-0.3788h-1.2627l-1.6415,0.63134-1.6415-1.0102-3.0304-0.63135-1.894,0.75762-0.37881,1.0102-0.12627,1.894,0.37881,1.894-0.25254,1.5152-0.50507,2.0203,0.75761,2.0203,0.50508,1.389,1.7678,1.5152,0.88389,0.88388,0.25254,1.894s-0.25254,1.0102-0.75762,1.389c-0.50507,0.37881-3.0305,1.2627-3.0305,1.2627s-2.3991,0.63134-2.9042,0.75761c-0.50508,0.12627-3.4093,0.75762-3.4093,0.75762l-1.389,1.5152-0.25254,1.6415,0.75762,2.5254,1.7678,3.283,1.6415,3.7881,0.75762,2.9042,2.0203,2.2728,1.2627,1.1364,2.1466,0.25254,2.2728,0.50507,1.7678,1.389,0.50507,1.6415,0.12627,1.894v2.3991l-1.894,1.6415-3.0305,1.2627-2.5254,1.2627-2.1466,2.0203-1.0102,1.7678-0.75761,2.1466-2.6516,1.6415-1.894,1.389-2.0203,1.5152-0.88388,0.88388v0.75762l0.88388,0.88388c0.50508,0.12627,2.1466,1.2627,2.1466,1.2627l1.894,1.0102s0.75762,0.88389,0.88389,1.389c0.12627,0.50508,0,1.5152-0.12627,2.1466-0.12627,0.63134-2.0203,3.6618-2.0203,3.6618l-1.894,1.6415-3.6618,2.0203-3.1567,0.63135-2.1466,1.0102s-0.75761,0.37881-1.1364,1.0102c-0.3788,0.63135-1.6415,1.2627-1.6415,1.2627l-2.2728,0.50507-1.0102,0.88388s-1.2627,0.88389-1.6415,1.389c-0.37881,0.50508-3.5355,2.9042-3.5355,2.9042l-0.88389,1.389s-0.75761,1.1364-1.389,1.2627c-0.63134,0.12627-2.2728,0.12627-2.2728,0.12627l-2.3991-0.88388-1.6415,1.389s-1.6415,0.37881-2.1466,0.88388c-0.50508,0.50508-2.7779,1.7678-2.7779,1.7678l-2.3991,0.63134s-1.894-0.25253-2.5254,0.12627c-0.63134,0.37881-1.2627,1.5152-1.2627,1.5152l0.63135,1.5152,0.25254,0.88388-0.88389,1.894s-1.0102,0.75762-1.0102,1.2627-0.88388,2.0203-0.88388,2.0203-0.50508,0.88388,0.25253,1.389c0.75762,0.50507,2.5254,0.88388,2.5254,0.88388s1.389-0.12627,1.5152,0.50508c0.12627,0.63134-1.1364,1.6415-1.1364,1.6415l-2.6516,0.75762-2.0203,1.2627-0.88389,1.6415z","name":"Zabaykalsky Krai"},"am":{"path":"m662.32,397.46,4.6429-0.17857,2.3214-0.17858,3.5714-1.7857,2.6786,0.35714,3.5714,1.0714,2.1429,1.0714,2.6786,0.53571,4.4643-0.53571,3.0357,0,2.3214,0.53571,2.8571,2.1429,2.1429,0.89286,2.8571,0.35714,2.3214-1.7857,2.3214-0.71429,1.9643,0,2.1429,1.4286,2.1429,0.71429,2.5-0.71429,1.7857-1.9643,1.7857-1.25,4.1072,0,2.5-1.4286,2.1428-0.89286,3.75,0,1.4286,0,1.25-0.71429,0.53571-2.5,1.6071-1.0714,4.2857-2.3214,2.3214-0.89286,3.5714-1.9643,2.8572-1.4286,5-0.89286,3.0357,0,1.6071,1.4286l-0.37,3.2s-1.25,1.6071-1.9643,2.6786c-0.71429,1.0714-1.6072,2.6786-1.9643,3.3929-0.35714,0.71429-1.25,2.1429-1.25,2.1429s-0.53571,2.8571-0.71429,3.5714c-0.17857,0.71428-1.0714,2.8571-1.0714,2.8571s-1.25,1.7857-1.0714,2.5c0.17857,0.71428,1.25,1.25,1.25,1.25l0.89285,0.71428,3.2143-0.71428s1.7857-0.17857,2.6786-0.17857c0.89286,0,2.5,0.89285,2.5,0.89285l0.53572,1.9643,0.89285,2.6786s0.17857,0.53572,1.6072,0.53572,2.6786-1.4286,2.6786-1.4286l0.17857-2.3214s1.0714-0.89286,1.9643-0.89286c0.89286,0,2.5-0.53572,2.5-0.53572l1.25-2.1428,0.35715-2.5,1.9643-1.7857,2.3214,0.17857c0.71,0.19,3.03-1.6,3.03-1.6l1.4286-1.4286s0.89285-1.0714,1.9643-0.35714c1.0714,0.71428,2.3214,2.5,2.3214,2.5v2.8571l0.53572,1.6071,1.9643,1.7857s1.6071,0.71428,1.25,1.6071c-0.35714,0.89286-2.8571,1.9643-3.5714,1.9643-0.71428,0-3.5714,0.89285-3.5714,0.89285l-1.6071,0.17857-1.96,0.89s-0.71429,0.17857-0.17858,1.0714c0.53572,0.89286,1.9643,1.7857,1.9643,1.7857l1.25,0.89286,0.35714,1.9643-3.2143,2.3214-1.6072,3.0357-0.17857,2.1429-1.6071,2.3214-2.6786,0.89285-1.6071,1.4286,1.9643,1.9643,0.35714,1.7857-2.3214,2.3214-1.25,3.5714,1.6071,2.8571s3.5714,1.4286,4.2857,1.6072c0.71429,0.17857,4.8214,0.71428,4.8214,0.71428s1.4286,0.71429,1.9643,1.25c0.53571,0.53572,0.71428,3.2143,0.71428,3.2143l0.35715,2.5s0,0.53571,0.71428,1.0714c0.71429,0.53571,0,3.5714,0,3.5714l-0.71428,2.8571-0.53572,1.7857-1.25,1.7857-3.2143,0.35714-4.1072-0.17857-2.8571-1.4286-1.77-0.53-3.04,1.07h-3.3929-2.5l-3.2143,0.89286s-2.6786-0.35714-3.5714-0.53572c-0.89286-0.17857-3.5714-2.1428-3.5714-2.1428l-3.22-2.67-1.07-2.15-1.43-2.14-1.7857-1.0714-1.0714-1.9643s0-1.0714-0.71428-1.6072c-0.71429-0.53571-2.6786-0.71428-2.6786-0.71428l-0.89286-1.25-1.7857-2.8571-1.9643-2.5s-1.25-1.4286-1.9643-1.6072c-0.72-0.18-1.79-0.36-2.15-1.43-0.35715-1.0714-2.3214-2.6786-2.3214-2.6786l-2.8572-1.4286-2.6786-1.4286-3.0357-0.17857-2.6786-0.17858s-0.71429,0.89286-1.6072,1.0714c-0.89285,0.17857-4.4643-0.35714-4.4643-0.35714l-3.5714-1.25-2.3214,0.35714-1.9643,0.89286-1.6072,1.4286-3.75,0.71429s-3.2143,0.71428-3.3928,0c-0.17858-0.71429-2.8572-4.1072-2.8572-4.1072l-1.7857-1.4286h-1.6071l-1.0714-1.0714v-2.1428l2.1428-2.1429,0.17858-1.4286-0.89286-1.4286-1.25-0.89286-2.1429-0.17857s-0.71428,1.0714-0.71428,0,0.71428-3.3929,0.71428-3.3929l0.89286-2.3214-0.35714-1.9643-1.25-1.7857-1.7857-0.71428-1.25,0.71428-1.25,0.71429-1.25-0.17857s-0.35714-0.71429-0.35714-1.4286c0-0.71429-1.25-2.6786-1.25-2.6786l-0.71429-0.71428-1.7857-0.17857-0.89286,0.89285-1.4286,0.89286-2.5,0.53572s-0.35714-0.35715-0.17857-1.0714c0.17857-0.71429,0.71428-2.5,0.71428-2.5l-1.25-1.4286-0.51-0.52-1.79-0.18h-2.1429l-0.35714-1.0714v-2.1429z","name":"Amur Oblast"},"ch":{"path":"M876.72,53.094c-0.34,0-0.66,0.094-0.66,0.094l-1.78,2.124-4.47,1.969s-6.05,2.853-7.12,3.031c-1.07,0.179-1.44,1.969-1.44,1.969s0.37,2.514,0.19,3.407c-0.18,0.892-1.44,1.406-1.44,1.406s-2.32,1.428-2.5,2.5c-0.18,1.071,0.91,2.156,0.91,2.156s2.66,0.906,3.37,0.906c0.72,0,2.85-0.375,3.56-0.375,0.72,0-0.34,1.625-0.34,1.625l-0.91,1.782-2.31-0.907-3.03-0.719s-2.14,0.554-3.03,0.376c-0.89-0.179-2.31-1.438-2.31-1.438l-2.69,0.531-2.88,0.375h-1.06s-0.53,2.656-1.25,2.656c-0.71,0-2.12,1.782-2.12,1.782l-3.41,0.187-2.84,2.875s-2.86,2.496-3.75,3.032c-0.9,0.535-1.61,0.531-2.5,0.531-0.9,0-2.5,1.062-2.5,1.062l-4.85,3.219-5.15,1.062-3.07,0.907s-1.04,2.861-1.93,3.219c-0.9,0.357-2.88,1.968-2.88,1.968l-3.22,1.938-2.12,1.966-2.16,3.03-1.25,1.97-1.06,2.5v3.22s-0.91,0.72-1.63,0.72c-0.71,0-2.84,1.25-2.84,1.25s-0.9,2.51-1.44,3.41c-0.53,0.89-2.85,1.76-3.56,2.12s0.34,1.25,0.34,1.25l2.35,0.53,0.53,2.16,2.69,0.53h2.65,3.75s1.44,1.07,1.97,1.78c0.54,0.72,1.63,1.78,1.63,1.78l-1.82,2.5-2.5,1.1-2.31-0.72s-1.6,1.25-2.31,1.25c-0.72,0-2.16,1.59-2.16,1.59s-1.42-0.71-2.31-1.25c-0.89-0.53-1.96,0-3.03,0s-1.26,1.26-1.44,1.97-0.87,2.84-0.87,2.84-1.09,1.79-1.63,2.5c-0.53,0.72-2.66,2.69-3.37,3.22-0.72,0.54-1.81,0.54-4.13,0.72s-1.07,1.26-1.25,2.16c-0.18,0.89-1.06,3.03-1.06,3.03s-2.15,1.24-2.69,2.31c-0.53,1.07-0.53,2.67-0.53,3.56,0,0.9,0.53,1.82,0.53,1.82h1.06l0.19-0.72,0.19-1.97,0.72-1.06,0.72,0.53,3.9,1.59,5,3.41,0.38,0.87-0.38,5.19-1.06,2.84-4.09,4.47-2.88,3.94-0.34,2.5,1.25,0.19h1.59s-0.17,1.42-0.53,2.31,0.34,1.59,0.34,1.59l2.88,1.25,3.75,0.38,4.62-0.19,2.69,3.41,2.16,1.78h4.47c1.25,0,1.06,2.5,1.06,2.5l1.06,1.59,3.94-0.34s5.36-1.44,6.25-1.44,3.2-0.53,3.56-1.25c0.36-0.71,2.69-1.59,2.69-1.59l1.97-0.91h3.75s2.66-1.24,3.37-1.59c0.72-0.36,0.74-1.98,1.1-2.69,0.35-0.71,0.87-3.03,0.87-3.03l1.25-2.5h1.63l1.78-1.06,1.06-1.63,1.44-0.34,2.31-1.44,1.06-1.25s0.91-0.89,1.63-1.78c0.71-0.89,0.87-1.6,1.4-2.31,0.54-0.72,2.51-1.44,3.22-1.97,0.72-0.54,2.15-2.14,2.5-3.03,0.36-0.9,1.63,0,1.63,0l4.09,0.68s3.22-1.04,5.72-1.93c2.5-0.9,1.08,1.06,0.91,1.78-0.18,0.71,0,3.2,0,4.09s0.88,3.22,1.78,4.47c0.89,1.25,3.9-1.44,3.9-1.44s3.05-1.78,3.94-2.5c0.89-0.71,3.94,0,3.94,0h6.06v-2.84c0-0.72,1.43-3.23,1.97-4.13,0.54-0.89,1.25-3.56,1.25-3.56l0.72-2.5-0.19-4.81s1.79-1.97,3.22-1.97,2.69,1.59,2.69,1.59l4.28,0.91,1.44-0.53s-0.19-3.22-0.19-3.94c0-0.71-0.19-2.84-0.19-2.84l-0.53-3.22s-0.54-2.51-0.72-3.41c-0.18-0.89-0.87-2.12-0.87-2.12l-2.5-1.63,1.25-0.87,4.09-0.38s1.96-2.66,2.5-3.37c0.54-0.72,2.84-2.35,2.84-2.35v-2.5s-1.04-2.13-1.93-3.03c-0.9-0.89-2.35,0.18-3.07,0.53-0.71,0.36-3.03-0.34-3.03-0.34s-1.41-0.88-2.12-0.34c-0.72,0.53-1.63,1.06-1.63,1.06l-1.4-1.06-1.97,1.78-1.44-0.72s-2.84-1.79-4.09-1.25c-1.25,0.53-1.97-0.72-1.97-0.72h-2.5s-0.56,1.25-1.1,1.97c-0.53,0.71-3.03,0.87-3.03,0.87l-2.84,0.91-2.69,3.75-2.69,0.53,1.25-2.5,0.19-1.59-3.03-0.38s2.13-0.88,2.84-1.06c0.72-0.18,3.41-1.06,3.41-1.06l1.97-0.91,0.34-1.59s1.78-3.41,1.78-4.13c0-0.71-0.68-3.22-0.68-3.22l-0.91-2.31s-2.5-4.63-3.22-5.34c-0.71-0.72-1.05-1.78-2.12-1.78-1.08,0-3.07,0.68-3.07,0.68l-1.4,0.91-1.25-1.06s-2.17-1.98-3.6-2.159c-1.42-0.178,0.38-0.719,0.38-0.719l0.87-1.593s-0.16-1.973,0.38-2.688c0.53-0.714,1.97,1.25,1.97,1.25s2.67,1.438,3.56,1.438,1.78,0.531,1.78,0.531,3.41-0.371,4.13-0.906c0.71-0.536,0.68-2.313,0.68-2.313l0.19-2.687,0.72-1.25,1.25-1.782s0.36-1.964,1.25-2.5c0.89-0.535,1.79,0,2.69,0,0.89,0,2.31,1.626,2.31,1.626l1.59,0.718,2.5-1.437s1.28-2.139,1.82-3.031c0.53-0.893,2.84-1.782,2.84-1.782l2.84-2.156,1.44-3.219s2.14-1.973,2.5-2.687c0.36-0.715-0.34-1.782-1.59-1.782h-1.78l-1.82-1.062-1.93-0.188-3.07-1.781-3.18-0.187h-3.75c-0.9,0,0-0.875,0-0.875l2.5-1.625,0.68-2.5-1.06-1.25-2.5-0.532,1.78-1.25,0.53-1.25-2.31-0.531v-2.5s-0.35-1.785-0.53-2.5c-0.09-0.357-0.45-0.437-0.78-0.437zm-77.19,16.062c-0.22-0.01-0.48,0.081-0.78,0.282-1.61,1.071-3.94,2.312-3.94,2.312-1.07,0.357-1.79,1.42-1.97,2.312-0.17,0.893-0.53,2.88-0.53,3.594,0,0.715,0.2,2.496,1.1,3.032,0.89,0.535,3.03,1.598,3.03,2.312s-0.56,2.321,0.15,2.5c0.72,0.179,1.44-0.522,1.97-1.594,0.54-1.071,0.36-3.419,0.72-4.312s1.45-2.491,1.63-3.563c0.17-1.071-0.19-5.187-0.19-5.187s-0.24-1.644-1.19-1.688z","name":"Chukotka Autonomous Okrug"},"ha":{"path":"m779.82,276.93c0.53572-0.71428,1.4286-1.4286,1.9643-2.3214,0.53571-0.89285,1.7857-2.5,1.7857-2.5s1.7857-0.17857,4.1072,0.17858c2.3214,0.35714,4.4643,1.4286,5.7143,2.1428,1.25,0.71429,2.6786,1.25,3.0357,2.3214,0.35714,1.0714,1.6071,2.1429,1.6071,3.3929s-1.4286,3.5714-1.4286,4.2857c0,0.71429-0.17857,2.5,0.71428,3.3929,0.89286,0.89286,0.71429,1.6071,1.7857,1.4286,1.0714-0.17857,3.9286-1.0714,5-1.25,1.0714-0.17857,3.3929,0,5,0.53572,1.6071,0.53571,2.8571,0.89285,3.2143,1.6071,0.35715,0.71428,1.0714,1.4286,0.89286,2.5-0.17857,1.0714-2.5,2.8571-2.5,2.8571l0.17857,1.4286,0.89286,1.6072s1.6071,0.71428-0.35714,0.89285c-1.9643,0.17857-3.0357-0.71428-3.0357-0.71428s0.17857-0.17857,0-1.0714c-0.17857-0.89286-0.71428-1.7857-1.7857-1.4286-1.0714,0.35714-2.3214,1.9643-3.0357,2.5-0.71428,0.53571-2.8571,3.0357-2.8571,3.0357s-1.9643,0.71429-2.8571,1.7857c-0.89286,1.0714-4.1071,4.6428-4.1071,4.6428s-0.17858,1.25-1.0714,2.5c-0.89286,1.25-2.3214,2.3214-2.5,3.5714-0.17857,1.25,0,4.1071,0,4.1071s1.4286,1.0714,1.6071,2.3214c0.17857,1.25-0.89286,1.9643-1.25,2.8572-0.35714,0.89285-1.4286,0.53571-1.4286,1.7857s0.17857,5.7143,0.17857,5.7143l-0.35714,4.8214-0.35715,4.1072s-1.0714,1.9643-1.25,3.2143c-0.17857,1.25-0.35714,2.6786-0.35714,3.3929,0,0.71429-0.17857,3.0357-0.17857,3.75,0,0.71429-0.71429,1.9643-0.89286,2.6786-0.17857,0.71429-1.0714,1.25-0.17857,1.9643,0.89286,0.71428,1.9643,1.9643,1.9643,1.9643l-1.7857,3.3929-0.17857,1.9643-1.7857,3.3928-1.25,3.75-0.35715,4.1072-0.71428,1.6071-3.2143,4.1071,0.35715,2.6786s2.1428,1.0714,2.8571,1.0714c0.71428,0,3.3929,0.53572,4.4643-0.17857s2.5-1.4286,3.2143-1.7857c0.71429-0.35715,1.6071-0.89286,2.8571,0.35714s2.5,4.4643,2.5,4.4643,0.17857,1.4286,1.4286,1.0714c1.25-0.35714,1.9643-2.1428,1.9643-2.1428l-1.0714-2.1429,0.53572-2.6786-0.53572-1.7857-1.6071-2.5s-1.7857-1.4286-2.5-1.4286c-0.71429,0-3.75,1.4286-3.75,1.4286s-1.9643,2.3214-1.6071,1.4286c0.35714-0.89285,1.9643-3.3928,1.9643-3.3928l1.6071-0.35715,1.25-1.7857s0.89286-0.71429,1.9643-0.71429,3.2143-1.25,3.2143-1.25,1.25-2.6786,1.0714-0.89285c-0.12,1.78-1.72,4.28-1.72,4.28l1.0714,2.1429,1.9643,2.1429,0.53572,1.7857-0.17857,2.6786,2.3214,1.4286v1.6072,2.8571l1.7857-0.71429c0.71429-0.71428,2.1429-4.2857,2.1429-4.2857l0.89285-3.2143v-2.1428s-1.6071-1.7857-0.89285-1.9643c0.71428-0.17857,4.6428-2.1429,4.6428-2.1429s2.1429-0.53571,3.0357-0.53571c0.89286,0,4.1071,0.17857,4.8214,0.35714,0.71428,0.17857,4.4643,1.6071,4.4643,1.6071s4.4643,1.25,5.1786,1.25c0.71429,0,1.9643,1.7857,1.9643,1.7857s-0.89286,1.9643,0.53571,2.8571c1.4286,0.89286,4.8214,3.0357,4.8214,3.0357l3.75,2.1428s1.4286,3.3929,1.4286,4.2857c0,0.89285-0.17857,4.6428-0.17857,5.7143,0,1.0714,0,5,0.53572,5.7143,0.53571,0.71428,1.0714,2.3214,2.1428,3.2143,1.0714,0.89286,3.2143,4.2857,3.2143,4.2857l2.5,1.25,3.0357,6.9643s1.4286,1.4286,1.6072,2.3214c0.17857,0.89286,1.6071,3.0357,1.7857,3.75,0.17857,0.71429,1.6071,5,1.7857,5.7143,0.17857,0.71428-0.53572,8.5714-0.53572,8.5714l0.53572,3.3928s0,1.25-0.89286,1.9643c-0.89286,0.71429-3.5714,1.6071-3.5714,1.6071l-1.4286,0.17857-1.4286-1.7857-0.53572-2.6786-3.0357-3.0357s-1.9643-1.25-2.6786-0.71428c-0.71429,0.53571-2.3214,1.9643-2.3214,1.9643s-0.89286,1.7857-1.25,2.5c-0.35714,0.71429-1.4286,1.25-0.89286,2.3214,0.53572,1.0714,1.9643,2.6786,1.9643,2.6786s0.35714-0.71428,2.1428-0.53571c1.79,0.18,2.14,2.68,2.14,2.68l-0.89286,3.2143s-1.9643,1.25-2.6786,1.6071c-0.71428,0.35714-2.8571,1.25-1.7857,2.1429,1.0714,0.89285,2.3214,1.25,2.3214,1.25s0.71428,1.25,0,1.9643c-0.71429,0.71429-2.3214,2.1429-2.3214,2.1429s-1.7857,0.35714-3.0357,1.25-3.2143,1.4286-4.2857,1.6071c-1.0714,0.17857-2.8571,1.25-4.1071,0s-2.1429-0.89285-2.5,0.17857c-0.35715,1.0714-1.6072,0.89286-1.7857,1.9643-0.17857,1.0714,0,2.8571,0.35715,3.5714,0.35714,0.71428,0,3.0357,0,3.0357s-2.3214,1.9643-2.5,1.25c-0.17858-0.71428,0.17857-2.3214-0.35715-3.2143-0.53571-0.89286-2.3214-2.5-2.3214-2.5s-2.8571-1.4286-1.7857-2.3214c1.0714-0.89286,2.8571-2.6786,3.2143-3.2143,0.35714-0.53571,0.35714-3.0357,0.35714-3.0357s-2.1429-0.89286-2.6786-1.7857c-0.53572-0.89285-1.0714-3.3928-1.0714-4.1071,0-0.71428-0.71429-3.3929,0.17857-3.75,0.89286-0.35714,2.8571-1.9643,2.8571-1.9643l0.53572-1.9643s-0.53572-0.35714-2.1429-0.35714c-1.6071,0-2.5-0.17857-3.9286,0.89285s-1.4286,1.0714-2.5,2.5-2.1429,2.6786-3.2143,3.2143c-1.0714,0.53571-2.6786,0.71429-2.6786,0.71429s-4.1071-0.71429-4.2857-1.4286c-0.17857-0.71428-1.6072-1.9643-2.5-1.9643-0.89286,0-2.1429,0.35714-3.2143,0.89286-1.06,0.55-1.95,0.73-2.84,0.73-0.89286,0-4.2857,1.0714-4.2857,1.0714s-2.1428,1.7857-3.2143,1.7857c-1.0714,0-2.1014,0.40945-2.28-0.66198-0.17857-1.0714-1.0823-3.4216-1.0823-3.4216l-1.5332-4.3507s-2.6677-0.69261-3.7392-0.87119c-1.0714-0.17857-3.8221-0.85138-3.8221-0.85138l-2.4892-1.1525s-2.1249-2.2078-1.7678-2.9221c0.35714-0.71428,1.7028-4.0044,2.4171-4.5401,0.71428-0.53572,1.2608-1.4069,1.2608-1.4069l-1.25-2.3214s-1.7965-1.2085-0.90368-1.7442c0.89286-0.53571,3.7608-2.0058,3.7608-2.0058l2.0906-4.0892,1.5025-3.2341,3.5498-2.6767-0.89285-1.9643-2.4171-1.7118-0.11357-1.6288,2.5306-1.1237,4.1071-0.71428,2.6786-0.89286,1.0714-1.25-0.53571-1.6071-1.986-1.47-1.0083-2.5108-0.0631-2.4477-1.47-2.0058-1.7226-0.67282-2.2583,1.7442s-1.6703,1.0823-2.3846,1.4394c-0.73,0.34-2.87,0.19-2.87,0.19l-2.3214,1.25-0.44008,2.5-0.80992,2.3214-2.5,1.0714-2.1429,0.53571-0.53571,2.4585-1.4809,1.4286-2.3431-0.17857-0.99746-2.4585-1.0714-2.5s-1.2608-0.51404-1.9751-0.69262c-0.71428-0.17857-4.4534,0.51405-4.4534,0.51405l-1.7857-0.17857-1.7857-1.25,1.9643-5.5357,0.89286-4.1072s1.25-2.3214,1.9643-3.0357c0.71428-0.71429,3.0357-5,3.0357-5l0.35714-2.6786s-0.53571-1.25-1.6071-1.6072c-1.0714-0.35714-5.3571,0.17858-5.3571,0.17858l-2.6786,0.53571s-3.3424,2.5325-4.0567,1.8182c-0.71428-0.71429-1.1219-3.9611-1.1219-3.9611s-3.0376-1.6288-3.0376-2.5217c0-0.89286,1.9662-1.5855,1.9662-1.5855s0.53571-1.0714,0.71428-2.1429c0.17857-1.0714-0.20024-2.8138-0.20024-2.8138l-2.6281-0.77741s-1.4069-0.89472-2.1212-1.0733c-0.71428-0.17857,1.1996-2.2998,1.1996-2.2998l0.89286-1.6072-0.35714-1.0714s-2.2493-0.54655-2.2493-1.2608c0-0.71429,1.6505-3.3604,1.6505-3.3604l-1.5873-1.6703-2.5415-0.82971-0.80806-1.618s0.69262-0.73594,1.5855-1.0931c0.89286-0.35714,1.0498-0.61866,1.0498-0.61866l-1.3852-0.89286v-2.4062c0-0.71429-0.074-2.3304-0.074-2.3304s-1.2718-1.1078-1.4502-2.345c-0.1894-1.3131,2.6371-1.7532,2.6371-1.7532l-0.93619-0.82972-0.49238-1.4917,0.2417-2.1339,2.7525-0.86037,2.9094-0.89285,2.4477,0.1371,0.70345-1.8922,3.2034,0.21106,2.9203,0.0108s0.35715-1.7749,0.35715-2.4892c0-0.71428-1.8705-1.618-1.4286-2.2691,0.40112-0.59101,1.5657-0.89285,2.4585-1.0714,0.89286-0.17858,3.9286-0.71429,4.1072-1.4286,0.17857-0.71428,2.5829-6.1562,2.5829-6.1562s0.96683-1.0083,1.6811-1.1869c0.71429-0.17857,3.9286-0.93432,3.9286-0.93432l-1.764-2.794-3.0051-2.8246-1.6378-4.8539-2.3214-2.1428-1.4286-1.7857v-5.3571l3.0357-6.7857-1.0714-3.2143-0.72512-5.8585,0.81889-2.85s3.5498,0.11543,4.264,0.29401c0.71428,0.17857,7.7634,0.22004,7.7634,0.22004s0.95599-4.0152,1.3131-4.7295c0.35714-0.71428,1.3871-0.826,2.28-1.0046,0.89286-0.17857,3.3495-0.62051,3.3495-0.62051l2.5433,1.1562,1.6071-1.0714z","name":"Khabarovsk Krai"},"eu":{"path":"m781.96,462.82c0.98214,1.875,1.1607,1.875,1.875,2.5893l2.6786,2.6786s0.80357,1.1607,1.0714,1.7857c0.26786,0.625-0.0893,1.6964,0.625,1.9643,0.71429,0.26785,2.3214,0.53571,2.7679,0.625,0.44643,0.0893,1.4286,1.0714,2.3214,1.1607,0.89285,0.0893,1.6071,0.0893,2.1428-0.35714,0.53572-0.44643,1.0714-1.25,1.6964-1.7857,0.625-0.53571,2.5893-1.4286,3.125-1.6964,0.53572-0.26785,1.875-0.625,2.3214-1.0714,0.44643-0.44643,1.1607-0.98215,1.1607-2.0536s0.26785-2.7678,0.71428-3.125c0.44643-0.35714,2.9464-1.9643,3.5714-2.5,0.625-0.53571,1.6964-2.2321,2.1429-2.8571,0.44643-0.625,1.875-2.6786,2.2321-3.2143,0.35714-0.53572,2.1429-2.0536,2.1429-2.0536l2.0536-2.3214,0.98214-1.0714,2.6786-1.875,0.71429-0.80357,0.17857-1.1607,0.0893-0.35714-1.5179-0.17857-1.875-0.0893-1.6964,0.44643-1.6964,1.1607-1.3393,1.25-0.80358,1.0714-1.25,1.6072-1.4286,0.98214-1.7857,0.625s-1.25,0.17857-1.7857,0c-0.53571-0.17857-2.1428-0.71429-2.1428-0.71429l-1.4286-0.625-0.80358-0.98214-0.89285-0.625s-0.80357-0.26786-1.1607-0.17857c-0.35714,0.0893-1.7857,0.625-1.7857,0.625l-2.0536,0.71429-2.4107,0.17857s-1.0714,0.44643-1.7857,0.625c-0.71429,0.17857-2.4107,0.80357-2.4107,0.80357l-1.4286,0.89285-1.875,0.26786-0.80357,0.17857-0.35714,0.98215-0.0893,1.4286s-0.44643,1.1607-0.44643,1.5178c0,0.35715-0.53571,1.875-0.53571,1.875l-0.53571,1.1607-0.71429,1.4286z","name":"Jewish Autonomous Oblast"},"pr":{"path":"m822.68,473.71c0,0.53571,0.53571,1.25,0.53571,1.25l1.4286,1.4286s0.35715,1.0714,0.44643,1.4286c0.0893,0.35714-0.625,2.0536-0.625,2.0536l-1.1607,2.7679s-0.0893,2.2321,0,2.5893c0.0893,0.35715,0.625,1.0714,0.89285,1.5179,0.26786,0.44643,0.80358,1.1607,0.80358,1.5179,0,0.35714-0.80358,1.9643-0.80358,1.9643v1.9643c0,0.44643-0.44642,1.9643-0.44642,1.9643s-0.17858,0.0893-0.17858,1.0714v2.7679c0,0.71429-0.26785,3.0357-0.35714,3.3929-0.0893,0.35714-1.9643,0.53571-2.3214,0.53571-0.35714,0-1.3393-0.98214-1.3393-0.98214s-0.98215-1.6071-1.1607-2.0536c-0.17857-0.44643-1.3393-1.5179-1.3393-1.875,0-0.35715-0.26786-1.6072-0.89286-1.7857-0.625-0.17857-1.5179,0.26786-1.5179,0.26786s-0.53571,0.89286-0.625,1.25c-0.0893,0.35714,0,0.98214-0.0893,1.4286-0.0893,0.44643-0.71429,2.5-0.71429,2.5s-0.625,0.625-1.1607,0.89286c-0.53572,0.26786-2.2322,1.0714-2.2322,1.6071,0,0.53572,1.0714,0.71429,2.1429,2.0536,1.0714,1.3393,3.125,4.6429,3.125,4.6429l2.5,4.2857,1.4286,4.9107s0.44643,1.6071,0.625,2.1429c0.17857,0.53571,0.89286,1.1607,0.98215,1.9643,0.0893,0.80357,0.53571,2.5-0.35715,2.8571-0.89285,0.35715-4.0178,1.0714-4.0178,1.0714l-0.71429,0.625,1.1607,0.71429s0.625,0.44643,1.0714,0.53571c0.44643,0.0893,0.53572,1.4286,0.98215,1.4286,0.44642,0,1.875-0.35714,2.4107-0.71428,0.53571-0.35714,1.3393-0.625,2.1429-0.625,0.80357,0,1.4286-0.44643,1.4286-1.0714,0-0.625-0.625-3.3929-0.625-3.8393,0-0.44642,1.5179-2.5893,1.5179-2.5893v-2.1429c0-0.35714-0.17858-1.4286,0.35714-1.5179,0.53571-0.0893,2.9464-0.71428,2.9464-0.71428s0-1.1607,1.0714-0.26786c1.0714,0.89286,1.5178,2.9464,1.5178,2.9464s1.875,0.35714,2.2322,0.17857c0.35714-0.17857,0.98214-0.625,1.5178-0.98214,0.53572-0.35714,2.5893-0.53572,3.3929-0.53572,0.80357,0,2.1429-0.44642,2.1429-0.44642l-0.26786-1.1607s2.0536-1.25,2.5-1.5179c0.44643-0.26785,2.2321-1.1607,2.8571-1.7857s1.5179-1.4286,1.9643-2.4107c0.44643-0.98215,1.3393-3.125,1.5179-3.4822,0.17857-0.35714,1.1607-2.5,1.4286-3.2143,0.26785-0.71429,0.89285-2.3214,1.3393-3.125,0.44643-0.80357,1.5179-2.8572,1.5179-2.8572s-0.0893-2.3214-0.0893-2.8571c0-0.53571-0.26785-1.875-0.625-2.8571-0.35714-0.98214-0.53571-1.1607-0.44642-2.1429,0.0893-0.98214,0.98214-1.6071,1.6071-2.0536,0.625-0.44643,1.0714-1.4286,1.0714-1.9643,0-0.53571-1.25-2.9464-1.25-2.9464s0.0893-1.1607,0.35714-1.6964c0.26786-0.53572,1.5179-1.7857,1.5179-1.7857l0.17857-2.9464s0.80357-2.2321,0.80357-2.6786c0-0.44643,0.26786-3.9286,0.26786-3.9286l0.89285-2.1429s0.26786-3.3928,0.26786-3.9286c0-0.53571-0.53571-5-0.53571-5.5357,0-0.53572-0.17857-4.1071-0.17857-4.7321s-0.71429-2.1429-0.71429-2.5893c0-0.44643,0.0893-2.1429,0.26786-2.5893,0.17857-0.44643,0.98214-1.9643,0.98214-1.9643s-0.0893-2.0536-0.0893-2.5893c0-0.53571,0.17858-1.6964-0.44642-1.7857s-2.3214,0.80357-2.3214,0.80357l-1.7857,0.71429-1.5178,0.17857-0.71429-0.44643-1.0714-1.4286s-0.26786-1.4286-0.26786-1.7857c0-0.35714-0.53571-1.1607-0.53571-1.1607l-1.25-1.3393-1.3393-1.3393-1.4286-0.71429-1.0714,0.17857s-0.98214,0.17858-1.0714,0.53572c-0.0893,0.35714-0.53572,0.44643-0.80358,0.80357-0.26785,0.35714-1.1607,1.3393-1.1607,1.3393l-0.53571,1.0714-0.44643,1.0714-0.80357,0.80357-0.17858,0.71429,0.35715,0.80357,0.89285,0.98214s0,0.71429,0.53572,0.80358c0.53571,0.0893,1.0714,0.0893,1.0714,0.0893h1.3393l1.25,0.625,0.71429,0.80357,0.0893,1.3393-0.26785,1.4286-0.44643,1.25-0.53572,0.71429-1.5178,0.89285-1.7857,0.89286-0.89285,0.89286,0.26785,0.80357,1.9643,0.80357,0.80357,0.98214-0.0893,0.71429-0.80357,1.0714-1.0714,1.0714-1.875,0.89286-1.7857,0.98214-3.64,1.44-1.6964,0.44643-1.9643,0.26786-0.89286-0.44643-1.25-0.71429s-0.53571-0.26786-0.89285,0c-0.35715,0.26786-0.625,0.98214-0.625,0.98214l-1.5179,1.0714-0.53571,1.6964,0.0893,1.3393s0.35714,0.71428,0.44643,1.1607c0.08,0.44,0.08,1.33,0.08,1.33l-0.0893,1.6071-0.98214,1.0714z","name":"Primorsky Krai"},"ma":{"path":"m829.64,182.46s1.0714,0.71428,2.1429,1.25c1.0714,0.53571,3.0357,2.1429,3.2143,2.8571,0.17857,0.71429,0.17857,2.3214,1.0714,2.8571,0.89286,0.53572,3.5714,1.0714,3.5714,1.0714l1.9643,0.89286,1.0714,1.7857,3.0357,1.6072s0.71429,1.0714,0.17857,1.9643c-0.53571,0.89286,0,2.6786,0,2.6786l2.5-0.35714,2.8572,0.35714,1.6071,2.3214,1.9643,2.6786,2.1429,1.0714,1.9643,2.1429,1.0714,1.9643,0.17857,2.5s-0.35715,2.5,0,3.2143c0.35714,0.71429,1.0714,3.75,1.0714,3.75l1.0714,1.7857s0.53572,1.0714,0.53572,1.7857c0,0.71428-0.89286,2.1429-0.89286,2.1429l0.17857,1.7857-1.9643-0.53571-0.35715-1.9643s0.35715-0.71429-0.53571-0.35714c-0.89286,0.35714-1.7857,1.4286-1.7857,1.4286s-0.35715,0.89286-1.0714-0.53572c-0.71429-1.4286-1.7857-1.9643-1.7857-1.9643s-1.6071-0.71429-1.6071-1.9643-1.7857-2.3214-1.7857-2.3214l-1.6072-1.4286s-0.35714,1.7857-0.35714,2.5c0,0.71429,1.4286,1.4286-0.35714,1.4286s-4.1072,0.71429-4.1072,0.71429l-0.89285,1.0714-0.35715,2.6786-1.25,1.25-2.6786,2.8571-0.35714,2.3214-1.0714,1.9643,0.53572,2.3214,1.4286,1.4286s0.53571,0.71428,0.53571,1.4286v2.6786l0.17857,1.6071,1.6072,1.4286,0.17857,4.4643v4.4643l0.17857,3.0357,1.7857,2.6786,1.0714,3.0357,0.35714,0.89285,1.9643,0.35715,1.0714-1.25,1.9643-1.0714s1.6072-0.17857,2.3214-0.17857c0.71429,0,1.6072,0.89285,1.6072,0.89285l0.17857,0.89286-1.7857,1.4286-1.7857,0.71429v1.0714l-0.71429,0.89285-1.7857,0.89286-1.25,0.53571-0.53572,0.71429-0.17857,2.6786v2.3214l-0.89285,0.71429-1.7857-0.89286-0.71428,1.4286-0.53572,2.5-1.0714,1.25-3.2143,0.71429-1.25-0.17858-0.53572-1.6071,2.5-1.6071,1.25-1.9643s1.9643-1.7857,0.53572-1.7857-2.6786,1.0714-2.6786,1.0714l-0.89286,1.25-0.89286,0.53571s-0.89286,0.35714-1.7857-0.17857c-0.89286-0.53571-2.3214-0.71429-2.3214-0.71429s-1.25,0.89286-1.25,1.4286c0,0.53571,0.35714,1.4286-0.53572,1.4286-0.89285,0-3.2143,0.17857-3.2143,0.17857l-2.5,1.6071-2.5,0.89286-1.0714,2.1429,0.35714,1.7857,0.53572,1.9643,0.35714,0.89285,1.6071,1.0714s0.17857,0.89286-1.7857,0.89286h-4.4643l-1.0714,2.1429-1.0714,1.25-2.5,0.35714-2.1429-2.8571-2.6786-1.25s-1.9643-0.71429-2.6786-0.71429c-0.71429,0-3.3929,0.17857-3.3929,0.17857l-2.1429,0.89286-1.7857,0.17857-1.25-0.89286-1.0714-1.7857-0.17857-2.3214,1.25-1.9643,0.17857-2.5-2.5-3.9286-2.3214-1.4286-2.3214-1.25-2.6786-0.71428-2.6786-0.71429-2.1429,0.71429-1.0714,1.4286-1.0714,1.9643-0.89285,1.25h-1.25l-1.25-1.9643-0.17857-0.89286,1.25-0.71429,0.35714-1.4286v-1.25l-1.25-1.25-5.7143-6.7857s-0.35714-1.0714-0.35714-1.7857v-3.2143l-1.78-0.88-0.89286-0.35714-0.17857-3.0357-0.53572-1.4286-1.0714-0.35714-0.35714-1.25,1.6071-1.4286,2.1429-0.17857,1.0714-0.53572,1.0714-1.0714,2.1429-0.17857,1.9643,0.17857,0.53572-1.0714-1.25-1.9643-1.4286-1.25-0.35714-2.1429s1.25-0.53571,1.9643-0.53571c0.71428,0,3.5714-1.0714,3.5714-1.0714l-0.17858-2.6786s0.53572-0.35714,1.25-0.35714c0.71429,0,3.9286,0.35714,3.9286,0.35714l2.1428-1.7857,4.1072-6.4286-0.17858-3.0357-1.4286-1.4286-2.6786-2.8572s-1.25-0.89285-1.4286-1.6071c-0.17857-0.71428-0.35714-1.7857-0.35714-1.7857l2.1428-2.3214,0.17858-1.6071-1.25-1.25-2.5,0.17857-0.71429-0.53572-1.0714-1.0714v-0.71429l3.06-0.86,1.25-1.0714-0.53572-1.4286-1.25-0.89285-0.17857-1.6072,2.1429-3.0357,3.75-1.25,2.1428-1.25-1.25-2.5s0.17858-0.35714,0.89286-0.35714c0.71429,0,3.3929,0.71428,3.3929,0.71428l1.0714-0.17857-0.53572-3.5714v-1.6071l1.4286-0.53572,0.2-2.66-0.17858-0.53571h2.5l1.6072,0.53571,0.53571,1.9643,1.0714,1.0714s0.53571,0.53571,1.25,0.53571,3.75-0.71428,3.75-0.71428l3.5714-0.71429,2.3214-0.35714,2.6786-1.0714,2.3214-1.4286,2.3214-0.89286,1.9643-0.17857,2.8571-0.35714,2.5-1.6072z","name":"Magadan Oblast"},"sh":{"path":"M943.16,321.59c-0.45,0.19-0.81,0.37-1.19,0.94s-0.31,1.53-0.5,1.85c-0.19,0.31-1.53,1.12-1.53,1.12-0.51,0.51-0.87,1.06-2,1.25-1.14,0.19-2.59-0.23-2.85,0.66-0.25,0.88,0.06,2.12,0.69,2.25,0.63,0.12,1.53,0.44,2.1,0.25,0.56-0.19,1.56-1.25,1.56-1.25s0.62,0.3,1,0.93c0.38,0.64,0.97,1.78,0.97,2.03,0,0.26,0.19,1.06-0.07,1.57-0.25,0.5-0.81,2.78-0.56,3.03s1.24,0.9,1.94,0.9c0.69,0,1.09,0.17,1.78-0.78,0.69-0.94,0.93-1.74,1.25-2.56s0.78-1.9,1.09-2.16c0.32-0.25,0.48-1.02-0.22-1.65-0.69-0.63-0.93-1.75-1-2.06-0.06-0.32-0.56-1.09-0.24-1.53,0.31-0.45,1.12-1.31,1-1.69-0.13-0.38-1.38-1.09-1.82-1.47s-0.96-1.82-1.4-1.63zm2.15,20.44s-0.43,0.15-0.69,0.85c-0.25,0.69-0.5,1.74-0.31,2.31s0.56,1.4,0.81,1.78c0.26,0.38,0.75,1.31,0.88,1.62,0.13,0.32,0.53,0.72,1.03,0.91,0.51,0.19,1.12,0.07,1.25-0.44,0.13-0.5,0.19-1.4,0.19-2.03s-0.19-2.15-0.19-2.53,0.07-0.87-0.31-1.31-2.66-1.16-2.66-1.16zm2.53,9.22c-0.56,0.19-1.9,0.5-2.15,0.69-0.26,0.19-0.63,0.52-0.5,1.03,0.12,0.5-0.2,1.24,0.5,1.69,0.69,0.44,2.15,0.96,2.53,1.09s0.55,0.44,1.19,0.13c0.63-0.32,1.09-0.59,1.03-1.41-0.07-0.82-0.59-1.62-0.78-1.88-0.19-0.25-1.5-1.34-1.5-1.34h-0.32zm-117,4.5l-1.87,1.25s0.5,1.12,0,1.12h-1.78s-1.26,0.78-0.5,1.29c0.76,0.5,2.4,0.87,3.03,1,0.63,0.12,1.52,0.65,2.16,1.15,0.63,0.51,1.49,0.87,1.74,1.63,0.26,0.76,0.63,2.28,0.63,2.28l0.91,1.62-0.54,2.16-1.74,0.13s-0.91-1.14-1.41-0.13c-0.51,1.01-0.5,1.77-0.5,2.41,0,0.63,0.27,1.24,0.91,1.37,0.63,0.13,1.48,0.4,2.74,1.41,1.27,1.01,2.03,2.9,2.29,3.53,0.25,0.63,0.24,2.65,0.5,3.41,0.25,0.75,1.4,2.02,2.03,2.53,0.63,0.5,2.03,2.52,2.28,3.03,0.25,0.5,1.25,2.4,1.5,2.9,0.25,0.51,1.78,1.75,1.78,1.75s1.24,1.15,2,1.66,3.8,1.37,4.56,1.37,3.03,0.66,3.28,1.16c0.26,0.51,2.78,5.66,2.78,5.66l5.57,8.34s2.52,2.15,3.15,2.66c0.64,0.5,2.4,3.9,2.91,4.65,0.51,0.76,2.12,4.44,2.5,4.94,0.38,0.51,3.69,5.06,3.69,5.06s2.77,1.88,3.4,2c0.64,0.13,3.41,1.91,3.41,1.91s2.65,2.9,2.78,3.41c0.13,0.5,0.75,3.53,0.75,3.53l2.16,3.4,3.15,2.66,2.5,5.19,0.53,2.25s0,2.15,0.5,2.53c0.51,0.38,5.29,4.06,5.29,4.06l1.65,0.88,1.78,0.25v-2.54s-0.9-1.65-1.15-2.15c-0.26-0.51-0.88-3.03-0.88-3.03s-0.5-0.74-0.5-1.63c0-0.88,0.75-2.4,0.75-2.4s1.53-0.25,2.16-0.25,1.24-0.12,2.25-0.63c1.01-0.5,2.41-0.37,2.41-0.37l2.28,2,1.37,0.78s0.5-1.4,0.5-2.03c0-0.64,0.01-1.53-0.62-2.41-0.64-0.88-1.63-1.88-1.63-1.88l-2.03-1.65s-0.99-1.38-1.75-1.25-1.15,0.24-1.41,0.75c-0.25,0.5,1.52,2.66,0,2.28-1.51-0.38-2.4-0.9-2.78-1.41-0.38-0.5-1.62-1.87-1.62-1.87s-2.4-1.28-3.03-1.53c-0.64-0.26-2.4-0.88-3.04-0.88-0.63,0-4.06-1.15-4.06-1.15l-2.12-2.38-2.41-6.31s-1.12-1.65-1.25-2.41-1.03-3.15-1.16-3.65c-0.12-0.51-0.37-2.28-0.62-2.78-0.25-0.51-1-2.29-1-2.29l-0.53-3.28,1.78-1.62s2.77-1.03,3.41-1.03c0.63,0,5.06-0.13,5.06-0.13l2.4,0.63s2,0.25,2.5,0.25c0.51,0,1.03,0.51,1.16-0.5s-1.53-2-1.53-2l-3.53-0.53-3.66-1.26-2.4-1.78-18.57-15.25-1.5-1.28-1.78-0.12s-0.87,0.13-1.25-0.63-0.4-1.27-1.15-1.9c-0.76-0.64-2.5-1.88-2.5-1.88s-1.52-0.25-2.66-0.5-3.66-1.4-3.66-1.4l-0.4-2.79-1.38-1.25-0.62-1.28,1.25-1.62-0.25-1.91-2.53-2.12-3.54-0.79s-2.4-0.99-2.65-1.5c-0.25-0.5,0.12-2.15,0.12-2.15s-0.62-1.12-1.12-1.5c-0.51-0.38-4.28-1.91-4.28-1.91l-2.91-1.9-1.03-2.63s0.01-1.91-0.63-1.91c-0.63,0-2.78-0.87-2.78-0.87zm119.16,7.94c-0.88,0.25-1.53,0.4-1.72,0.97-0.19,0.56,0.06,1.24,0.31,1.43,0.26,0.19,0.84,0.69,1.47,0.57,0.63-0.13,1.56-0.19,1.82-0.57,0.25-0.38-1.13-1.46-1.32-1.78-0.19-0.31-0.56-0.62-0.56-0.62zm1.75,4.06c-0.51,0.25-1.19,0.56-1.37,1.06-0.19,0.51,0.36,1.37,1,1.75,0.63,0.38,1.05,0.63,1.56,0.06,0.5-0.56,1.09-1.62,1.03-1.93-0.06-0.32-2.22-0.94-2.22-0.94zm0.19,6.97c-0.18,0.01-0.34,0.06-0.5,0.16-0.63,0.37-0.82,1.18-0.82,1.56s0.88,3.09,0.88,3.47-0.87,2.4-1,2.9c-0.13,0.51-0.01,1.33,0.62,2.6,0,0,1.13-0.25,1.38-0.25s1.72-0.94,1.84-1.19c0.13-0.25,0.44-2.28,0.44-2.91s-0.06-2.02-0.12-2.47c-0.07-0.44-0.63-1.4-0.63-1.78s-0.31-1.43-0.69-1.69c-0.28-0.18-0.87-0.44-1.4-0.4zm-4.41,14.53s-1.28,0.03-1.53,0.16c-0.25,0.12-0.69,0.49-0.81,0.75-0.13,0.25-0.57-0.07,0.06,0.62,0.63,0.7,1.02,1.38,1.66,1.38,0.63,0,2.06,0.65,2.31,0.65s1.03-0.21,1.22-0.47c0.19-0.25,0.75-0.49,0.31-1.18-0.44-0.7-0.97-1.06-1.22-1.19s-2-0.72-2-0.72zm1.81,6.47c-0.19,0.31-1.37,1.18-1.43,1.44-0.07,0.25-0.32,0.74-0.38,1.25-0.06,0.5-0.31,1.77-0.31,2.09s-0.53,1.59-0.78,2.16c-0.26,0.56-0.5,1.49-0.44,2.12s-0.07,1.09,0.19,1.66c0.25,0.57,0.24,1.18,0.56,1.37s-0.04,1.29,1.09,0.6c1.14-0.7,1.63-1.34,1.82-1.79,0.19-0.44,0.53-2.09,0.72-2.34,0.18-0.25,0.56-1.43,0.68-1.81,0.13-0.38,0.63-1.9,0.63-2.22s0.06-1.59-0.25-2.22c-0.32-0.63-1.19-1.31-1.19-1.31l-0.91-1zm-4.9,15.4c-0.26,0.07-0.97,0.19-1.28,0.44-0.32,0.26-0.63,0.56-0.69,0.75s-0.5,0.94-0.5,1.19,0.06,1.15,0,1.41c-0.06,0.25,0,0.56-0.56,0.81-0.57,0.25-1.22,0.43-1.6,0.56s-0.81,0.44-1.06,0.69-0.94,0.72-0.94,0.72-0.53,0.18-0.53,0.5c0,0.31,0.41,0.99,0.53,1.25,0.13,0.25,0.75,1.22,0.75,1.22l-0.18,0.75s-1.04,0.74-1.1,1.06c-0.06,0.31-0.12,1.59-0.12,1.97s0.06,1.74,0.06,2c0,0.25,0.19,1.84,0.19,2.09s0.15,1.34,0.28,1.97c0.12,0.63,0.12,1.06,0.43,1.44,0.32,0.38,0.56,1.03,0.88,1.22s0.5,0.68,0.88,0.62c0.37-0.06,1.71-1.03,1.71-1.03s0.63-0.62,0.75-1.06c0.13-0.44,0.44-2.16,0.44-2.16s0.19-1.37,0.13-1.69c-0.07-0.31-0.69-0.65-0.75-1.22-0.07-0.56-0.07-0.8,0-1.68,0.06-0.89,0.87-2.09,1.06-2.35,0.19-0.25,0.84-1.18,0.97-1.93,0.12-0.76-0.07-1.84,0.19-2.16,0.25-0.32,0.8-0.75,1.06-1.06,0.25-0.32,1.06-1.65,1.18-2.03,0.13-0.38,0.13-1.4,0.13-1.91s-0.31-1.37-0.56-1.56c-0.26-0.19-1.75-0.82-1.75-0.82zm-8.35,23.69c-0.31-0.01-0.62,0-0.75,0.03-0.25,0.07-0.56,0-0.81,0.32-0.25,0.31-0.78,0.71-1.22,0.84s-0.87,0-0.93,0.31c-0.07,0.32-0.26,0.87-0.26,1.13,0,0.25,0.06,0.74,0.32,1,0.25,0.25,0.62,0.21,0.75,0.78,0.12,0.57,0.19,1.18,0.12,1.44-0.06,0.25-0.31,1.12-0.37,1.43-0.07,0.32-0.19,0.4-0.38,1.03-0.19,0.64-0.31,1.38-0.31,1.76v1.15c0,0.38-0.06,1.19,0.13,1.44,0.18,0.25,0.62,0.56,0.87,0.81s1.47,0.47,1.72,0.47,0.5-0.28,0.75-0.66,0.56-0.99,0.56-1.56-0.12-2.96-0.06-3.28,1.12-0.84,1.19-1.41c0.06-0.56,0.03-1.74,0.09-2,0.06-0.25,0.31-1.15,0.31-1.15s0.75-0.44,0.88-0.81c0.12-0.38,0.25-1.13,0.25-1.5,0-0.38-0.19-1.54-0.19-1.54h-1.84c-0.19,0-0.5-0.02-0.82-0.03zm7.85,1.88c-0.57,1.01-0.72,0.99-0.78,1.75-0.07,0.76-0.88,1.53-0.88,1.53s-0.31,0.31-0.44,0.62c-0.12,0.32-0.69,0.81-0.06,1s1.72,0.19,1.97,0.07c0.25-0.13,0.75-0.69,1-0.82,0.25-0.12,0.44-0.49,0.44-1.37,0-0.89-0.19-1.9-0.31-2.16-0.13-0.25-0.94-0.62-0.94-0.62z","name":"Sakhalin Oblast"},"ka":{"path":"M888.56,146.75l-1.65,0.84c-0.26,0.13-1.25,0.88-1.25,0.88l-0.13,1,0.13,2.78,0.25,1.16-0.88,2.43-1.72,4.69-0.93,1.56-0.44,1.41-0.06,1.81s-0.22,1.03-0.47,1.22c-0.26,0.19-0.82,0.13-0.82,0.13h-1.81-2.59l-1.6-0.19-1.68-0.31s-0.53,0.25-0.85,0.25c-0.31,0-0.68,0.56-1,0.75-0.31,0.19-1.37,0.74-1.56,1-0.19,0.25-1.28,0.78-1.59,0.9-0.32,0.13-1.38,1-1.63,1.19s-0.78,0.56-1.22,0.63c-0.44,0.06-0.94-0.32-0.94-0.32s-0.62-0.99-0.74-1.25c-0.13-0.25-0.97-1.72-0.97-1.72s-0.07-1.31-0.13-1.62c-0.06-0.32-0.06-1.47-0.12-1.72-0.07-0.25-0.13-1.06-0.13-1.06s0.25-1.22,0.31-1.66c0.07-0.44,0.38-0.75,0.38-0.75s0-0.56-0.19-0.87c-0.19-0.32-0.81,0.06-0.81,0.06l-1.75,0.44-1.97,0.81-1.66,0.5-1.18,0.19-2.04-0.25s-1.62-0.38-1.87-0.57-1.03-0.12-1.03-0.12l-0.63,0.56-0.87,1.16-0.63,0.81-0.84,0.88s-1.31,0.74-1.56,0.87c-0.26,0.13-0.94,0.59-0.94,0.59l-1.22,1.32-1.44,2.28s-2.27,2.28-2.59,2.47-1.18,0.87-1.44,1.12c-0.25,0.25-1.34,0.38-1.72,0.44s-0.74,0.62-1,0.94c-0.25,0.31-1.15,1.28-1.15,1.28l-0.81,0.56s-0.75-0.31-1.13-0.31-0.44,0.31-0.44,0.31l-0.97,1.91-1,2.18s-0.5,1.59-0.5,1.91,0.63,0.44,0.88,0.63c0.25,0.18,1.65,0.8,2.03,1.06,0.38,0.25,1,0.84,1.31,1.15,0.32,0.32,1.41,1.32,1.41,1.32s-0.13,0.43-0.06,0.68c0.06,0.26,0.37,1.15,0.68,1.66,0.32,0.51,0.94,0.81,0.94,0.81s4.09,1.16,4.35,1.28c0.25,0.13,1.09,1.32,1.09,1.32l0.37,0.68s1.13,0.85,1.44,1.04c0.32,0.18,1.22,0.31,1.22,0.31l0.62,0.62,0.44,1.19s-0.31,1.59-0.37,1.97c-0.07,0.38-0.07,0.99,0,1.37,0.06,0.38,1.12-0.06,1.12-0.06s1.4-0.31,1.97-0.25,1.56,0.25,1.56,0.25,1.22,0.4,1.35,0.66c0.12,0.25,0.75,1.18,0.75,1.18l1.15,1.5,1.25,1.72,1.85,1.32,2,1.65,1,1.31s0.84-0.99,1.03-1.31c0.19-0.31,0-0.74,0-1.19,0-0.44-0.37-0.71-0.75-0.96-0.38-0.26-0.97-1.19-1.35-1.63-0.37-0.44-0.56-0.84-0.56-0.84s-0.81-1.06-1.06-1.31c-0.25-0.26-1.09-0.94-1.34-1.19-0.26-0.26-1.25-1.34-1.69-1.97s0-0.75,0-1.06c0-0.32,0.87-1.04,0.87-1.04s0.94-1.3,1.19-1.62,0.44-1.21,0.5-1.59,0.47-1.31,0.85-1.5c0.37-0.19,1.18-0.38,1.68-0.44,0.51-0.06,1.84,0.5,1.97,0.81,0.13,0.32-0.62,0.69-0.75,0.94-0.12,0.25,0,1.59-0.06,2.16-0.06,0.56,0.12,1.71,0.12,2.28,0,0.56,0.75,1.37,0.75,1.37s1.13,1.4,1.44,1.72c0.32,0.32,1.28,0.93,1.59,1.19,0.32,0.25,1.57,1.65,1.57,1.65l3.34,2.32,0.97,0.59s0.75,1.25,0.81,1.69c0.07,0.44,0.44,0.93,0.44,0.93s1.03,0.22,1.34,0.47c0.32,0.26,0.63,1.31,0.63,1.69s-0.12,1.03-0.44,1.47c-0.31,0.44-1.21,0.93-1.53,1.25s-0.69,0.75-0.69,0.75-0.06,5.68-0.06,6.25,0.75,1.78,1,2.16,1.21,2.14,1.72,2.9c0.5,0.76,0.69,1.12,0.69,1.44s0.25,1.66,0.25,1.66,0.56,10.46,0.62,11.09,0.59,1.03,0.78,1.41,0.75,0.93,1,1.18c0.26,0.26,0.75,0.84,0.88,1.16,0.12,0.32,0.97,1.62,0.97,1.62s0.74,2.78,0.87,3.54c0.13,0.75,0.13,1.72,0.13,1.72s1.31,3.96,1.31,4.4v1.47s-0.81,1.75-1.13,2.13c-0.31,0.37-0.06,1.77-0.06,2.09,0,0.31-1.34,2.46-1.84,2.84-0.51,0.38-1.31,1-1.44,1.38s0.25,1.03,0.25,1.03l1.81,0.87,2.28,0.94s1.09,2.15,1.47,2.66c0.38,0.5,0.56,1.59,0.56,1.9,0,0.32,0.32,3.47,0.44,4.16,0.13,0.69,0.38,1.65,0.56,2.09,0.19,0.45,1.79,1.5,1.79,1.5s2.21,3.94,2.34,4.25c0.13,0.32,0.81,1.69,1.06,2,0.08,0.1,0.29,0.25,0.53,0.41,0.62,0.78,3.07,1.94,3.07,1.94l0.93,0.62s4.63,4.25,4.69,4.5c0.06,0.26,2.78,2.32,2.78,2.32s2.34,0.84,2.6,1.03c0.25,0.19,1.68,0.75,1.68,0.75l14.91,10.22,2.03,1.21,3.03,0.94s1.19,1.59,1.44,1.72,3.15,1.19,3.59,1.19c0.45,0,1.47,1,1.47,1s2.59,2.78,2.97,3.03,2.56,1.91,2.56,1.91,2.09,1.18,2.47,1.18,2.85-0.5,2.85-0.5l0.68-0.62v-2.03s-0.06-1.69-0.06-1.88,0-1.21-0.25-1.53-0.81-0.88-0.81-0.88,0.18-1.52,0.44-1.96c0.25-0.45,0.43-0.69,0.43-1.07s-0.31-1.15-0.56-1.4c-0.25-0.26-0.5-1.19-0.5-1.19s-0.06-2.34-0.31-2.66c-0.25-0.31-1.09-0.99-1.28-1.62s-0.5-1.03-0.63-1.41c-0.12-0.38-1.37-1.62-1.62-2.06-0.26-0.44-1.53-1.59-1.72-1.84-0.19-0.26-0.31-1.28-0.5-2.1s-1.02-0.75-1.78-0.75-1.12-0.06-1.38-0.25c-0.25-0.19,0.5-0.43,0.75-0.56,0.26-0.13,1.09-0.9,1.28-1.22,0.19-0.31,0.5-1.37,0.5-1.37l0.69-4.22,1.91-1.6c0.38-0.31,0.25-0.93-0.19-1.31s-1.09-0.25-1.41-0.31c-0.31-0.06-0.8-0.84-1.31-1.16-0.5-0.31-0.84-0.81-1.28-1s-1.24-0.31-2.06-0.56-1.4-1.03-1.91-1.47c-0.5-0.44-0.44-1-0.5-1.25s-0.06-1.96-0.06-2.84v-1.22s-0.97-2.78-0.97-3.1c0-0.31,0.03-1.05,0.16-1.43,0.12-0.38,0.49-0.69,0.75-0.94,0.25-0.25,1.43-0.78,1.43-0.78l1.47-0.88s0.38-1.71,0.38-2.59-0.5-2.25-0.63-2.56c-0.12-0.32-1.34-0.72-1.34-0.72s-1.5-1.19-1.94-1.19-2.46-0.56-2.9-0.69c-0.45-0.12-1.6-0.78-1.85-0.9-0.25-0.13-1.71-1.25-2.09-1.56-0.38-0.32-1.25-1.1-1.5-1.41-0.26-0.32-0.75-1.44-0.88-1.75-0.12-0.32-0.84-1.66-0.84-1.66s0-0.55-0.13-1.12c-0.12-0.57-0.18-1.65-0.18-2.41s1.02-0.62,1.28-0.62c0.25,0,1.68-0.25,2-0.32,0.31-0.06,1.03-0.74,1.22-1,0.19-0.25,0.37-1.77,0.31-2.09s-0.65-0.81-1.22-1-0.94-0.78-1.12-0.84c-0.19-0.07-2.16-0.88-2.16-0.88s-2.06-0.69-2.5-0.75-0.59,0.44-0.84,0.63c-0.26,0.19-0.5,0.37-1.32,0.37s-1.22-0.44-1.22-0.44l-0.87-1.18s-1.18,0.06-1.81,0.06c-0.64,0-0.91-0.59-1.16-0.91-0.25-0.31-1.06-0.56-1.06-0.56s-0.47-0.19-0.69-0.28c0-0.06,0.19-3.44,0.13-3.69-0.07-0.25-0.66-1.21-0.91-1.47-0.25-0.25-1.37-0.44-1.94-0.44s-1.4,0.6-1.84,0.85-1.06,0.75-1.31,0.94c-0.26,0.19-0.13,1.12-0.13,1.68,0,0.57-0.34,1.03-0.72,1.35-0.38,0.31-0.68,0.25-1.31,0.25s-1.12-0.19-1.63-0.31c-0.5-0.13-0.77-0.56-1.03-0.82-0.25-0.25-1.06-0.96-1.37-1.47-0.32-0.5-0.19-1.05-0.25-1.62-0.07-0.57-0.84-1.65-1.1-2.16-0.25-0.5-1.24-2.34-1.37-2.59s-0.56-1.28-1-1.91-0.9-1.99-1.28-2.62-0.74-1.09-1.5-2.1-0.78-0.56-1.35-0.68c-0.56-0.13-0.99-0.78-1.5-1.35-0.5-0.57-0.84-0.93-1.15-1.75-0.32-0.82-0.37-0.83-0.94-2.15-0.57-1.33-0.07-1.09,0.19-1.66,0.25-0.57,1.06-0.62,1.06-0.62l0.47-0.88s-0.38-1.59-0.31-2.09c0.06-0.51,0.36-0.56,1.06-0.75,0.69-0.19,1.56,0.75,1.94,0.75s1.59-0.5,1.9-0.82c0.32-0.31,0.32-1.08,0.32-1.71,0-0.64-0.62-1-1.13-1.13s-0.94-0.56-0.94-1.06c0-0.51,0.25-1.21,0.25-1.91,0-0.69,0-0.74-0.06-1.25-0.06-0.5-0.12-0.53-0.25-0.91-0.13-0.37,0.06-1.18,0.19-1.68,0.12-0.51,0.56-0.44,0.94-0.38,0.37,0.07,1.24,0.69,1.62,0.94s0.65,0.62,0.84,1,1,1.09,1.63,1.16c0.63,0.06,1.15-0.38,1.15-0.38s-0.09-0.52-0.34-1.09-0.81-1.44-1-1.81c-0.19-0.38-0.5-1.22-0.75-1.6s-0.44-0.5-0.44-0.75,0.69-2.09,0.69-2.41v-3.78c0-0.82,0.19-1.4,0.38-1.72,0.19-0.31,0.87-1.24,1.25-2.06s0.84-1.15,1.09-1.9c0.25-0.76,0.87-1.4,1.44-2.16s0.77-1,1.15-1.12c0.38-0.13,2.91,0.06,3.29,0.06,0.37,0,1.96-0.44,2.65-0.56,0.7-0.13,2.71-0.31,3.41-0.57,0.69-0.25,0.25-0.59,0.18-0.84-0.06-0.25-1.27-0.94-1.65-1.06-0.38-0.13-1.12-0.69-1.38-0.94-0.25-0.25-0.5-1.16-0.5-1.16s-0.59-2.96-0.65-3.28c-0.07-0.31-0.75-1.56-0.75-1.56s-0.13-5.18-0.13-5.63c0-0.44-0.68-2.02-1.37-2.34-0.7-0.32-0.91-0.99-0.91-1.5s0-0.96-0.12-1.59c-0.13-0.64-0.75-1.37-1-1.88-0.26-0.5,0.12-0.78,0.12-1.22s-0.12-1.18-0.5-1.5c-0.38-0.31-0.68-0.49-0.94-0.75-0.25-0.25-0.46-0.9-0.46-1.53s0.28-1,0.34-1.31c0.06-0.32,0.06-1.09-0.06-1.53-0.13-0.44-0.35-1.06-0.41-1.31-0.06-0.26-0.37-1.22-0.37-1.22s-0.5-0.44-0.69-0.44-0.94-0.19-0.94-0.19l-1.78-0.31s-1.69-0.44-1.81-0.69c-0.13-0.25-1.04-0.69-1.04-0.69l-1.56-0.59zm7.25,70.22c-0.88,0.44-1.12,0.43-1.06,1s0.37,1.09,0.63,1.47c0.25,0.38,0.44,0.93,0,1.44-0.45,0.5-1.45,0.52-1.19,1.15,0.25,0.63,0.49,1.06,0.75,1.31,0.25,0.26,0.81,0.9,0.94,1.41,0.12,0.51-0.01,1.06,0.31,1.56,0.31,0.51,0.31,0.69,0.69,0.69,0.37,0,0.59,0.32,0.65-0.5s-0.06-0.95,0-2.84c0.06-1.9,0-2.84,0.06-3.41,0.07-0.57,0.26-1.37,0-1.75-0.25-0.38-1.28-0.9-1.4-1.22-0.13-0.31-0.38-0.31-0.38-0.31zm58.91,12.47c-1.07,0.71-1.16,0.62-1.16,1.15,0,0.54-0.18,0.9,0.53,0.72,0.72-0.18,0.91-0.18,1-0.62,0.09-0.45-0.37-1.25-0.37-1.25zm-10.97,4.53c-0.63,0.45-1.08,0.2-0.81,1.09,0.27,0.9,0.44,1.16,1.15,1.25,0.72,0.09,0.73,0.1,2.07,0.1s2.31,0.06,3.03,0.06c0.71,0,0.99,0.36,1.43,0,0.45-0.36,0.63-0.07,0.54-0.78-0.09-0.72-1.24-0.9-2.22-0.81-0.98,0.08-1.52,0.34-3.13-0.19-1.6-0.54-2.06-0.72-2.06-0.72z","name":"Kamchatka Krai"},"in":{"path":"m33.393,395.68,0.08929,5.2679,17.946-8.5714-1.3393-1.25-2.9464-1.25-1.5179-1.9643-2.4107,2.4107-4.1071-2.6786-1.875,1.0714,0.08929,5.8929-1.5179,1.0714z","name":"Republic of Ingushetia"},"cc":{"path":"m33.482,401.04,1.0714,2.5,3.125,1.6964,3.4821,0.44642,2.1429-1.9643,2.1429,1.7857,2.5-1.5178-0.08929-1.6072,1.875-2.1428,2.8571,0.44642,3.8393-2.8571-0.625-1.9643-4.4643-0.53572,0.44643-2.7679z","name":"Chechen Republic"}}});
--- /dev/null
+/** JQVMap merc map for tunisia */
+jQuery.fn.vectorMap('addMap', 'tunisia',{"insets": [{"width": 900, "top": 0, "height": 1954.3544733545057, "bbox": [{"y": -4519725.417185229, "x": 838669.3845975221}, {"y": -3535818.4871775922, "x": 1291768.476435734}], "left": 0}], "paths": {"tn-za": {"path": "M544.74,259.86l2.72,1.39l7.19,-0.8l12.57,4.89l6.58,1.79l1.94,4.02l3.89,5.26l1.57,2.68l1.05,2.92l2.21,1.45l2.38,0.61l2.1,2.54l3.23,1.77l2.82,-0.07l1.77,0.4l1.82,-0.2l1.09,0.44l0.38,1.26l-2.85,10.19l0.32,2.67l0.5,0.33l4.18,-1.24l3.47,-2.95l1.84,-0.52l0.98,-1.62l1.84,-0.95l9.62,-3.95l0.71,3.78l-1.2,9.68l-0.23,8.98l2.32,4.63l0.5,1.8l2.33,1.82l-1.15,3.44l0.08,3.65l2.92,5.28l0.62,2.65l-0.45,2.65l0.69,2.7l0.0,2.42l-0.92,1.17l-1.87,0.04l-1.82,0.73l-1.15,1.42l0.62,1.7l3.05,0.6l1.01,0.73l0.85,1.72l0.09,1.82l-1.76,2.6l-2.33,1.81l-5.25,0.52l-2.5,0.81l-5.24,-1.44l-2.52,-0.35l-4.58,1.11l-1.65,2.57l0.35,2.41l0.91,2.29l0.05,2.24l-1.14,5.1l-2.41,7.18l-1.25,0.98l-4.44,0.92l-1.96,1.11l-0.85,0.84l-2.61,-0.32l-4.42,1.35l-3.22,-0.6l-3.46,0.36l-2.5,-0.52l-0.46,0.25l-1.15,3.09l1.7,2.38l-0.08,2.79l-1.54,3.16l-0.56,3.15l-2.52,2.28l-2.88,1.77l-3.17,0.53l-1.96,-0.71l-2.25,-2.38l-1.39,-2.04l-0.55,-0.11l-2.14,1.4l-0.45,2.56l2.11,4.25l-1.67,3.27l0.21,4.88l-0.93,3.06l-1.56,2.42l-2.45,0.93l-2.88,-0.85l-2.14,-1.51l-1.79,-2.1l-1.35,-3.0l-2.16,-0.47l-2.46,-1.63l-1.9,-0.72l-2.99,0.47l-2.21,-0.75l-7.12,1.17l-3.09,-1.56l-1.98,-2.19l-2.79,-5.16l-8.94,-2.95l-2.99,1.11l-3.85,2.31l-1.36,1.35l-1.59,2.31l-0.89,0.01l-10.27,-3.61l1.51,-4.78l1.43,-2.07l1.29,-2.72l1.08,-2.45l0.76,-2.85l1.16,-2.28l1.09,-4.14l-0.48,-3.05l-2.29,-1.99l-9.72,-2.97l-1.94,-3.36l-1.89,-4.26l-6.23,-3.31l-2.06,0.47l-2.04,1.41l-1.3,0.16l-0.78,-2.44l0.05,-4.75l-0.54,-1.89l-4.85,-1.61l-3.66,-5.44l1.71,-0.74l5.26,0.79l4.1,-0.73l2.57,-0.86l5.41,-5.28l4.59,-2.74l1.75,-1.7l1.41,-3.49l2.34,-3.85l0.54,-2.47l1.25,-2.91l1.87,-13.37l0.16,-3.05l-0.37,-3.78l-0.96,-2.98l-2.4,-4.03l-1.82,-1.99l0.78,-2.14l9.8,-4.82l2.01,-2.76l2.1,-6.42l1.03,-2.19l1.53,-1.95l4.75,-3.74l4.27,-4.42l2.6,-1.02l3.86,0.23l2.81,-1.34l3.64,-4.82l1.81,-5.19l0.83,-4.15l3.28,-6.96l1.83,-1.71l2.48,-0.51l4.59,2.4l2.42,2.68l1.76,3.79l1.18,4.24l1.56,2.47Z", "name": "Zaghouan"}, "tn-bz": {"path": "M346.87,111.96l2.64,-1.16l1.34,0.62l1.78,-0.39l0.58,-0.71l0.29,-1.37l0.84,-0.23l1.77,-1.7l1.3,-0.46l2.92,-2.33l2.09,-2.55l1.05,-1.91l0.58,0.0l0.4,-0.4l0.55,-1.85l-0.31,-0.56l1.54,-1.3l1.23,-1.91l5.52,-4.48l0.32,0.0l-0.18,0.99l0.61,0.94l-0.18,1.37l0.68,0.4l-0.06,0.53l0.47,0.42l-0.59,0.89l0.65,0.71l2.52,0.46l3.5,-0.14l1.29,0.45l1.26,-1.23l2.61,-0.23l1.6,-1.54l1.54,0.0l0.58,-0.93l0.83,0.0l0.57,-0.62l2.14,0.39l2.66,-0.54l2.44,0.23l1.97,-0.77l2.78,-1.78l0.72,-0.15l0.63,-0.7l0.6,0.0l3.07,-1.39l3.23,-2.72l0.68,-0.77l-0.12,-0.6l1.34,-0.54l1.52,-0.16l1.8,-1.24l4.76,0.23l2.21,0.46l2.11,1.16l1.72,-0.23l5.71,-1.93l2.05,-1.85l2.13,-0.77l1.9,-1.16l1.66,-1.31l0.4,-0.4l-0.17,-0.25l1.45,-1.28l1.66,-0.62l1.15,0.0l1.29,-0.93l2.66,-1.0l0.94,0.59l0.92,1.64l0.83,0.71l1.66,0.0l1.06,-0.69l1.64,-0.16l3.64,-2.39l3.24,-1.39l6.21,-4.64l0.89,-1.16l1.14,-0.16l1.51,-1.34l1.63,0.65l2.34,0.0l0.76,-0.86l0.7,-0.15l1.43,1.16l0.52,-0.33l0.59,0.56l0.86,0.0l0.69,-0.46l2.57,-0.15l2.27,-1.24l1.47,-1.29l1.01,-0.02l2.72,0.62l0.37,0.5l-0.12,0.96l2.55,2.18l1.15,0.0l2.84,0.93l5.13,-0.15l0.52,0.31l0.82,-1.78l2.03,-0.93l2.26,0.15l0.37,-0.37l1.72,0.83l1.18,-0.31l1.4,0.31l1.5,-0.22l0.25,0.41l-0.06,2.89l0.86,1.2l-0.25,4.05l1.29,2.3l0.06,2.18l1.32,1.84l-0.46,0.4l0.33,1.83l-2.49,2.04l-0.52,-0.33l-2.89,0.39l-0.46,0.48l0.06,0.77l0.4,0.4l1.38,0.28l-2.12,0.39l-0.65,0.56l-0.7,-0.25l-0.65,0.63l0.45,0.99l-0.54,-0.23l-0.68,0.36l-0.48,-0.52l-0.43,0.0l-1.2,1.54l-1.38,-0.08l-0.46,0.49l0.68,0.98l-0.32,0.23l-1.37,-1.23l-0.61,0.0l-1.11,0.46l-0.63,0.7l-1.52,-0.08l-0.75,0.62l-2.01,-0.15l-1.01,1.25l-0.06,3.16l0.89,0.68l-0.63,0.15l-0.66,-1.0l-1.21,-0.23l-0.6,-1.68l-0.89,-0.55l-0.58,0.55l0.86,1.41l-1.26,0.28l-0.46,0.55l1.63,1.4l0.55,-0.3l1.76,1.77l0.31,0.77l-0.98,1.84l0.4,0.48l1.35,-0.08l1.14,-1.42l0.18,1.04l-1.35,3.76l0.06,2.01l2.0,2.33l2.44,0.93l-0.08,0.45l1.23,0.79l0.74,1.42l-0.55,0.88l-0.37,2.54l2.24,2.33l0.56,-0.13l2.86,0.59l0.39,0.39l1.71,-0.31l3.21,1.16l2.4,-0.23l2.89,-1.85l1.83,-2.16l1.67,-0.08l0.94,-1.16l1.21,-0.08l2.09,-0.85l2.0,-2.87l1.41,-2.78l1.84,-5.63l0.55,-3.78l-0.31,-2.55l-1.57,-1.79l-1.72,-0.39l-1.98,0.23l-3.06,-0.15l-1.4,0.39l-3.87,-1.16l-0.87,-0.62l-2.46,-0.46l-2.41,0.69l-1.77,0.0l-1.94,1.77l-1.18,-0.08l-0.51,-0.54l-0.77,0.15l0.18,-0.62l1.38,0.03l2.03,-1.31l0.65,-1.02l-0.43,-0.68l1.81,-0.7l1.78,-1.39l1.41,-0.08l2.06,-2.56l0.18,-1.76l1.82,-1.52l0.48,0.52l0.74,0.15l0.52,-0.34l0.49,0.41l0.18,0.99l0.65,0.79l1.54,0.69l1.28,0.16l0.94,0.69l1.21,-0.16l10.46,2.16l2.95,0.23l0.69,-0.23l1.83,0.16l3.09,-1.16l2.75,-0.16l4.87,-2.63l3.61,-0.85l3.35,-1.64l0.0,0.53l-0.68,1.09l0.43,1.08l2.03,1.94l-0.06,0.99l2.37,2.79l1.29,0.54l3.92,-0.23l1.06,0.46l1.34,-0.08l6.81,2.93l0.58,0.93l0.92,0.09l1.41,1.6l0.29,-0.08l1.25,0.93l0.97,0.16l0.57,0.69l0.66,0.0l1.12,1.08l0.95,-0.08l-0.25,0.29l0.18,0.46l0.65,0.63l2.73,1.39l0.12,1.45l1.14,1.33l1.29,0.77l3.07,0.39l3.35,-0.46l1.37,0.23l0.94,0.85l3.86,-0.39l1.03,0.59l-1.69,0.16l-4.12,1.46l-0.75,1.22l-0.3,-0.3l-3.75,0.15l-0.46,0.79l0.56,0.48l-0.52,0.2l-0.85,1.13l-0.41,-0.29l-0.06,-1.6l-0.58,-0.86l-1.54,0.08l-0.62,-0.46l-2.27,-0.08l-1.8,0.85l-2.4,0.23l-5.15,-0.15l-1.41,0.39l-1.69,1.79l-0.43,1.48l-2.09,3.53l0.8,0.62l-0.18,0.7l0.86,0.83l0.06,0.58l-2.9,0.03l-2.01,-0.69l-2.71,-0.23l-5.35,2.57l-4.12,4.26l-1.95,-0.71l-0.49,0.19l-0.93,2.21l1.75,3.86l-0.26,2.64l0.16,6.08l-2.07,4.82l-3.88,7.05l-6.47,5.23l-0.31,3.74l-3.24,8.4l1.5,2.44l-2.35,2.37l-1.93,0.85l-3.68,0.74l-2.3,1.13l-1.8,-0.14l-1.07,-1.18l-0.82,-2.56l-2.19,-4.03l-1.82,-1.4l-4.53,-1.71l-3.37,-0.31l-2.89,-0.76l-10.52,0.15l-5.27,-3.59l-0.49,0.05l-1.94,1.96l-0.63,4.19l-3.57,3.8l-1.23,2.42l-1.45,4.57l-1.67,1.69l-1.95,1.16l-3.14,0.5l-2.89,-1.28l-2.49,0.1l-3.34,3.09l-2.7,0.82l-3.78,0.51l-5.66,6.42l-1.49,-2.59l-4.66,-0.26l-2.6,1.13l-2.84,3.11l-3.42,4.85l-2.47,1.86l-4.34,4.47l-5.25,6.86l-2.02,1.67l-1.88,2.1l-7.6,5.25l-7.73,7.22l-4.26,0.9l-2.52,-0.65l-1.58,-1.83l-2.36,0.12l-0.48,-0.47l-0.68,-4.29l-1.84,-4.36l-0.46,-2.3l3.43,-7.04l0.84,-3.12l2.42,-5.56l-0.86,-2.7l-2.87,-4.34l-2.97,-2.6l-3.39,-0.8l-3.81,0.17l-2.4,0.45l-4.57,-4.17l-1.57,-2.57l-4.7,-2.87l-1.62,-1.5l-0.26,-6.49l-0.69,-2.8l-7.1,-8.59l-0.52,-2.48l-0.11,-5.41l-0.72,-5.28l-5.48,-9.5l-5.71,-0.18l-2.76,0.76l-2.34,1.25l-1.79,1.58l-2.84,1.08l-3.32,0.4l-1.61,-0.39l-0.0,-2.43l-0.96,-4.86l-1.7,-4.95l0.06,-1.91l4.06,-7.1l0.34,-2.85l-1.28,-2.27l-0.44,-1.97l1.75,-0.08ZM596.93,112.81l0.9,-0.86l0.62,0.4l-1.06,0.73l-0.46,-0.26ZM498.79,95.3l-0.28,-0.46l0.59,-0.4l-0.25,-0.86l1.97,-1.6l0.42,-0.91l1.06,-0.88l0.71,0.73l0.83,0.0l-1.78,2.53l-0.37,1.3l-1.01,-0.15l-1.31,1.06l-0.57,-0.34ZM506.78,89.05l0.06,0.0l0.0,0.06l-0.06,-0.06ZM303.01,11.56l0.17,-0.7l2.29,-1.48l0.29,-0.92l0.78,0.15l2.08,-0.78l2.16,0.08l1.57,-1.72l0.0,-0.76l1.1,0.16l0.0,1.31l2.21,2.62l-0.68,0.79l-0.65,1.6l-0.5,-0.14l-1.77,-2.09l-1.53,0.46l-1.24,1.16l-1.35,-0.15l-2.17,1.32l-1.98,-0.08l-0.8,-0.82ZM315.36,0.56l0.01,-0.08l0.2,0.2l-0.02,0.03l-0.18,-0.14ZM296.55,17.42l0.57,-0.52l0.66,0.31l0.25,0.59l-1.47,-0.39ZM298.75,18.27l0.02,-0.06l0.12,0.13l-0.1,-0.08l-0.04,0.0Z", "name": "Bizerte"}, "tn-bj": {"path": "M304.73,149.07l2.7,-2.82l1.04,-0.63l0.38,-0.92l6.45,-5.94l1.23,-2.76l0.55,-0.55l0.06,-0.92l0.43,-0.68l2.52,-2.48l1.91,-3.16l0.12,-0.92l-0.46,-0.48l-0.43,0.0l0.19,-0.19l0.37,0.14l2.72,-2.39l1.46,-0.31l1.94,-2.17l0.29,-1.22l1.09,0.08l0.83,-0.63l0.06,-0.93l1.31,-1.84l0.57,0.15l0.39,-0.39l1.4,-0.08l1.57,-1.62l1.64,-1.0l2.32,-0.39l1.78,-0.93l0.63,-0.69l1.52,0.23l1.01,-0.62l0.53,2.31l1.24,2.2l-0.36,2.39l-4.0,6.94l-0.13,2.32l1.73,5.08l0.96,4.83l-0.01,2.58l0.31,0.39l1.99,0.48l3.58,-0.4l3.05,-1.14l1.86,-1.62l2.26,-1.2l2.57,-0.7l5.05,0.04l5.25,9.15l0.67,5.03l0.12,5.42l0.56,2.69l7.1,8.6l0.66,2.66l-0.04,3.94l0.44,2.9l1.85,1.69l4.58,2.79l1.52,2.52l4.76,4.34l6.58,-0.55l2.96,0.67l2.78,2.42l2.81,4.25l0.76,2.13l-2.37,5.42l-0.83,3.09l-3.51,7.4l0.52,2.55l1.81,4.26l0.7,4.38l0.83,0.92l2.32,-0.14l1.73,1.88l2.73,0.71l4.81,-1.02l7.81,-7.29l7.66,-5.3l1.89,-2.11l2.04,-1.7l5.23,-6.85l4.3,-4.44l2.31,-1.73l0.5,1.06l2.84,3.51l1.49,1.35l-0.58,2.65l0.24,1.44l1.59,0.83l2.26,-1.06l0.59,1.16l0.42,2.37l1.1,2.29l1.64,2.08l4.36,2.29l2.38,0.79l4.16,0.58l11.62,8.22l1.56,1.64l1.75,0.31l1.78,-0.13l2.42,-2.13l2.43,-0.66l0.28,0.64l-0.91,7.11l1.69,6.94l3.56,6.62l1.77,2.04l2.56,1.81l3.08,6.55l4.94,6.17l1.44,2.63l0.55,1.88l-2.17,0.89l-4.28,4.43l-4.84,3.83l-1.58,2.02l-1.11,2.33l-2.11,6.44l-1.86,2.52l-9.91,4.94l-0.84,2.94l1.91,2.07l2.26,3.81l-1.16,2.08l-3.72,0.64l-9.31,-1.12l-1.55,1.54l-0.98,2.05l0.02,1.83l-2.83,0.94l-2.37,-1.72l-3.49,-0.13l-4.09,0.63l-4.82,-0.92l-2.06,-2.21l-2.28,-3.43l-4.53,-4.0l-2.19,-1.24l-4.47,1.28l-1.85,1.03l-3.43,-0.81l-4.41,0.22l-2.81,-0.37l-4.12,0.27l-6.64,1.09l-8.24,3.03l-2.4,2.71l-0.8,3.33l-0.1,4.26l0.82,2.91l-0.4,2.46l-2.23,2.42l-4.78,2.61l-3.34,0.96l-2.16,-1.22l-2.48,-2.3l-1.16,-1.96l-1.27,-1.32l-2.5,-1.11l-2.78,-0.76l-3.61,-0.45l-4.75,-0.04l-5.96,-0.74l-1.28,0.59l-5.56,4.12l-7.53,2.57l-2.1,-0.82l-3.2,-3.13l-2.29,-0.16l-0.42,-1.28l0.68,-3.9l-1.24,-1.96l-3.66,-2.52l-1.64,-4.36l-2.17,-1.55l-2.11,-0.29l-2.99,0.26l-1.89,-0.3l-2.53,-2.89l2.7,-0.15l4.48,-1.05l3.48,-1.18l0.27,-0.38l-0.21,-5.31l0.52,-5.99l0.78,-2.5l4.61,-7.57l0.44,-2.77l0.28,-6.79l-0.18,-3.23l-1.48,-3.19l-7.91,-9.79l-2.61,-5.95l-0.23,-3.2l0.91,-3.56l1.92,-5.18l1.7,-3.14l-4.13,-9.63l-1.47,-2.4l-2.59,-1.74l-3.06,-1.12l-14.79,-1.07l-0.59,-1.22l0.14,-2.27l0.95,-2.62l0.24,-5.73l0.48,-1.63l4.43,-2.45l4.38,-3.72l1.31,-2.54l2.24,-3.28l1.14,-6.32l-2.0,-2.02l-4.69,-2.89l-2.17,-0.65l-2.77,-1.85l-1.28,-2.23l-0.82,-2.84l0.05,-2.3l0.63,-1.52l3.12,-4.66l0.35,-2.36l-0.04,-2.64l-3.39,-3.47l-6.51,-4.08Z", "name": "Beja"}, "tn-ba": {"path": "M555.79,232.61l2.34,0.88l2.91,0.49l4.38,-0.1l2.91,-0.65l2.08,-1.0l3.0,-3.29l0.67,-2.14l1.23,-1.68l2.37,0.23l2.18,1.08l3.24,0.01l4.53,-1.1l2.68,-0.31l1.69,-1.5l0.71,-1.53l0.4,-2.04l-0.28,-2.9l0.6,-0.27l0.4,0.4l0.68,-0.08l2.23,-1.76l0.6,-0.15l0.46,-0.48l-0.13,-0.37l1.17,0.24l0.06,0.9l1.11,1.02l-0.19,0.36l0.68,1.3l2.06,2.01l1.72,0.08l1.94,-1.47l0.37,-1.99l-0.43,-0.68l0.06,-4.01l-0.52,-0.63l-0.95,-0.44l-0.51,-1.59l1.28,-0.3l0.98,1.14l1.15,0.31l-0.63,0.75l1.2,0.71l1.51,-1.55l-0.12,-1.83l1.98,-0.15l1.09,0.61l-1.14,0.5l-1.32,1.87l-0.97,0.89l-0.41,-0.08l-0.46,0.63l0.49,1.29l-0.12,1.09l1.84,2.36l0.12,0.81l-0.37,0.43l0.18,1.61l0.71,0.63l0.4,-0.4l-0.18,-0.84l3.56,4.76l6.05,5.15l5.96,3.14l4.18,1.23l-1.41,6.39l-1.41,0.61l-1.46,1.32l-1.11,7.0l-1.95,5.62l-4.4,5.59l-0.83,1.48l0.44,1.79l0.35,0.28l4.7,0.46l1.52,1.23l0.21,2.04l-0.58,2.18l-3.53,7.21l-0.18,2.07l-2.48,5.12l-0.37,1.98l0.16,0.4l1.36,0.87l4.46,0.09l0.45,0.65l-1.14,1.14l-14.01,5.69l-1.96,1.02l-0.88,1.55l-1.89,0.57l-3.38,2.9l-3.61,1.08l-0.26,-1.98l2.86,-10.19l-0.47,-1.8l-1.79,-0.84l-1.85,0.2l-1.73,-0.4l-2.56,0.12l-3.07,-1.68l-2.02,-2.48l-2.54,-0.71l-2.03,-1.33l-0.89,-2.69l-1.62,-2.77l-3.88,-5.26l-1.97,-4.08l-6.94,-2.03l-12.67,-4.93l-7.32,0.78l-2.15,-1.11l-1.42,-2.22l-1.2,-4.27l-2.07,-4.2l1.48,-1.75l2.23,-1.7l2.43,-1.3l6.49,-7.08l0.84,-2.07l1.65,-2.13ZM596.34,213.83l0.02,0.02l-0.04,0.0l0.02,-0.02Z", "name": "Ben Arous"}, "tn-gf": {"path": "M133.61,830.47l0.8,-1.16l1.16,0.04l1.76,-0.46l0.33,-0.56l-0.32,-1.07l0.93,-1.91l1.16,-0.41l0.15,-0.9l0.96,0.06l0.76,-0.33l0.27,-0.74l-1.14,-2.07l0.32,-0.25l-0.34,-0.84l1.67,0.63l0.51,-0.38l-0.29,-2.36l1.23,0.07l2.14,0.86l2.62,-0.79l1.14,0.08l0.63,-0.79l1.08,0.33l1.97,-0.08l0.59,-0.35l0.23,-0.81l-0.36,-0.66l-1.25,-0.41l-2.03,-1.59l0.7,-0.18l0.29,-0.43l0.52,-3.27l1.76,-0.23l1.14,-1.1l0.8,0.08l0.23,-0.55l-0.3,-0.71l0.58,-0.3l1.22,0.58l2.89,-0.37l0.04,-0.71l-1.48,-1.94l-0.23,-2.14l1.2,-1.14l2.63,-1.19l1.11,-0.93l0.87,0.28l1.27,-0.8l0.12,-0.86l1.4,-1.69l0.05,-1.08l-0.43,-0.77l-0.49,-0.4l-1.24,-0.22l-0.58,0.5l-2.44,0.09l-3.5,-2.34l-1.01,-2.23l0.96,-2.59l4.66,-0.42l0.8,-0.69l1.96,-2.72l0.3,-1.17l3.34,-4.44l0.62,-2.25l0.79,-0.29l1.59,0.75l1.28,0.22l1.85,-1.04l-0.07,-1.16l-2.27,-0.37l-1.69,-1.35l-1.1,-1.46l17.14,7.42l7.58,4.37l5.03,0.14l3.6,2.33l8.72,6.88l3.87,3.69l4.13,2.58l6.13,1.85l4.98,-0.37l0.36,-0.29l0.82,-3.07l-1.64,-6.19l7.86,-3.15l13.91,-7.44l4.35,-2.86l3.52,-1.46l5.86,-1.25l5.77,-2.99l3.84,-3.9l5.5,-2.77l2.08,2.02l2.29,1.58l2.78,0.9l5.6,2.81l2.67,0.68l5.84,0.82l1.93,1.1l2.41,2.27l2.9,1.18l3.1,0.71l3.27,2.61l2.39,1.11l15.01,-4.09l5.13,-3.02l7.96,4.08l5.28,0.76l5.09,-1.1l2.81,1.81l3.79,0.41l3.1,2.24l5.13,-0.35l3.91,6.67l1.6,0.92l3.06,0.16l3.74,-3.22l1.51,-2.45l1.27,1.51l-0.0,3.15l-2.23,2.78l-2.14,1.59l-1.42,1.62l-1.25,2.25l0.86,3.09l1.65,2.49l0.53,2.05l-0.69,2.42l-0.23,7.43l0.41,2.4l1.27,1.99l2.4,1.71l2.18,0.02l1.92,-0.82l2.27,0.63l3.17,2.3l2.61,1.98l1.16,1.98l-0.11,3.11l1.55,1.81l5.44,-0.34l9.87,1.23l10.13,5.95l4.35,4.11l2.27,4.19l2.38,3.57l2.9,1.45l4.76,1.53l6.29,1.32l3.29,1.9l3.18,1.17l1.41,2.34l-1.0,3.28l-1.87,3.16l-1.01,4.68l-1.02,7.52l-2.34,6.23l0.79,2.41l1.78,1.45l-1.41,4.17l-2.32,4.94l-4.41,3.92l-4.88,2.33l-10.86,4.15l-6.85,0.63l-19.19,-3.68l-6.46,0.82l-4.36,2.19l-4.73,1.47l-4.53,3.42l-4.32,2.55l-4.08,1.08l-6.92,0.42l-4.36,0.74l-3.69,-0.1l-3.08,1.72l-2.7,1.07l-2.56,-0.72l-2.71,-1.62l-2.63,-0.99l-6.78,2.04l-5.01,2.02l-3.7,2.0l-2.35,2.58l-1.38,2.46l3.23,6.81l0.17,2.64l-1.33,2.87l-3.07,2.79l-5.95,0.5l-5.63,-0.64l-5.22,-1.24l-3.26,-1.72l-4.14,-3.38l-3.26,0.77l-2.94,2.6l-5.31,1.56l-7.89,-1.12l-6.49,-0.26l-9.93,0.77l-5.74,1.12l-4.49,1.07l-5.86,2.79l-0.52,1.4l-4.63,-1.82l-5.08,-1.25l-2.89,-1.14l-6.75,0.33l-5.52,-0.3l-8.27,1.2l-9.65,0.19l-10.23,-0.26l-8.04,2.23l-4.61,0.59l-2.42,-0.21l-0.3,-1.83l2.29,-5.07l0.2,-3.43l-2.87,-2.73l-2.4,-1.41l-0.81,-3.5l-1.66,-2.49l-3.63,-1.93l-10.87,-4.61l-5.77,-1.91l-9.43,-1.0l-3.25,-3.34l-2.1,-4.61l-2.5,-4.41l-6.93,-6.39l-11.74,-8.06l-5.12,-4.87l1.34,-3.97l2.96,-3.37l5.02,-7.72l1.26,-4.02l2.38,-0.83l3.95,-0.19l5.12,-1.42l3.85,-2.53l0.15,-0.48l-1.22,-2.94l-10.12,-5.98l-0.3,-2.38l1.11,-5.28l2.42,-3.16l2.07,-3.45l1.67,-4.43l-2.07,-3.64Z", "name": "Gafsa"}, "tn-ms": {"path": "M653.52,557.43l0.84,-1.3l2.94,-1.27l5.72,-3.87l1.88,-2.39l0.68,-3.27l-2.8,-4.92l0.21,-2.67l1.74,-1.99l3.09,-0.96l6.3,-0.37l2.84,-1.43l1.47,-2.52l0.32,-2.91l1.2,-2.85l5.43,-5.67l0.21,-2.71l-1.62,-3.15l-0.13,-4.72l0.65,-5.6l1.24,-2.72l-1.12,-3.02l4.39,-0.23l1.49,-2.59l0.61,-3.82l-0.6,-2.73l2.61,-2.87l5.13,4.71l2.46,0.99l6.33,4.24l1.41,0.38l1.9,0.23l2.77,-0.3l1.78,-0.76l1.63,-1.14l1.26,-0.08l1.72,-1.94l0.53,-0.1l0.95,0.6l0.6,-0.29l0.75,0.14l1.66,-0.76l0.81,-0.83l1.0,0.15l1.63,0.91l0.97,-0.15l1.8,0.3l0.58,-0.49l0.46,0.51l-0.52,0.94l1.97,1.46l0.04,0.7l-0.78,1.93l0.0,0.89l-0.55,0.38l-0.59,-0.23l-0.8,0.3l-0.46,0.55l0.06,0.58l-0.74,0.7l0.13,0.66l-1.12,2.89l-0.12,1.97l0.37,1.51l-1.23,1.67l1.3,1.73l-0.01,0.69l0.92,1.59l1.32,1.61l2.95,1.45l1.04,1.2l0.48,0.0l1.55,1.13l2.99,0.23l0.82,1.21l0.68,0.38l0.54,-0.15l0.93,1.13l1.09,-0.15l1.8,0.76l3.86,0.76l1.24,0.76l2.94,0.61l2.29,1.13l1.35,0.15l1.03,-0.68l0.23,0.89l0.71,0.63l4.58,0.53l1.14,2.12l1.96,0.85l0.93,1.19l0.98,0.68l1.89,-0.08l3.5,0.53l1.89,0.68l2.37,1.77l-0.77,0.93l-0.06,3.72l-0.31,1.06l-1.72,3.39l-0.8,2.83l-11.14,1.71l-0.36,0.43l1.35,2.62l-1.47,1.31l0.18,1.52l-0.3,0.34l-1.2,-0.3l-2.78,1.36l-2.14,-0.3l-1.5,1.15l-0.06,-1.36l-0.4,-0.4l-0.85,0.08l-0.97,-0.92l-0.06,-0.72l-0.4,-0.4l-0.8,-0.04l-3.87,2.28l-5.35,4.16l-7.33,4.54l-5.34,5.75l-2.95,2.72l-0.19,5.12l-1.31,1.09l-2.33,0.46l-3.3,0.2l-7.3,-1.67l-3.1,-3.05l-2.66,-4.49l-0.81,-3.13l-0.32,-0.29l-2.26,-0.41l-4.25,0.82l-2.84,0.15l-5.42,-0.84l-2.42,-0.7l-10.07,0.43l-3.07,-2.68l-2.8,-1.61l-4.92,1.07l-1.71,1.0l-0.99,1.97l-0.48,2.24l-0.82,1.67l-2.11,-0.34l-1.86,-1.34l-2.07,-0.45l-1.72,-1.64l-1.2,-2.2l-0.85,-2.82l-0.09,-2.03ZM729.78,500.25l-0.04,0.04l-0.04,-0.04l0.0,-0.0l0.07,0.0ZM730.77,489.62l0.07,-0.07l-0.06,0.3l0.0,-0.23l-0.01,-0.01ZM776.66,530.1l-0.03,-0.03l0.04,0.03l-0.01,0.0ZM773.24,488.32l-0.73,-0.9l1.11,-1.43l0.49,-1.19l1.13,-0.53l1.1,0.08l1.09,1.81l-1.21,1.25l-2.97,0.91ZM768.51,494.0l-0.06,-0.41l0.94,0.15l0.66,1.19l-0.58,-0.63l-0.95,-0.3ZM730.34,506.27l0.12,-0.14l0.12,0.37l-0.31,-0.0l0.06,-0.24Z", "name": "Monastir"}, "tn-to": {"path": "M0.85,1023.06l5.17,-9.76l-2.66,-11.0l-2.9,-7.94l5.01,-7.93l-1.24,-10.33l3.52,-10.85l-5.84,-6.8l-1.51,-3.59l0.33,-2.14l1.02,-0.89l3.04,-0.86l1.6,-0.14l1.25,-1.57l3.86,-0.8l1.76,-1.36l0.53,-1.3l-0.79,-0.93l-0.47,-0.01l-1.1,0.73l-0.15,-0.47l1.65,-1.45l0.51,0.1l1.36,-0.78l0.44,0.18l0.53,-0.27l0.45,-0.86l2.71,-1.08l1.16,-6.92l9.08,-14.97l16.68,7.74l0.4,-0.04l17.21,-12.26l0.14,-1.59l-0.56,-6.62l1.12,-2.56l0.11,-1.59l8.31,-26.46l-0.44,-1.69l0.33,-1.01l-0.18,-0.49l0.41,-1.84l0.65,-0.53l0.24,-1.17l-0.22,-0.62l-0.64,-0.13l-0.39,-1.81l0.39,-0.87l0.15,-2.69l1.44,0.17l1.85,-0.53l1.24,0.18l1.97,-1.45l0.74,-0.94l0.83,-0.23l2.42,0.56l0.9,-0.3l1.66,0.16l1.8,-1.11l1.26,-0.25l0.49,-0.59l0.03,-1.56l0.7,-1.08l1.42,-1.8l1.29,0.09l0.89,-0.42l0.33,-1.76l1.05,-0.38l3.08,0.33l5.57,-2.45l2.8,-0.28l2.19,-4.24l5.07,-5.25l6.41,-0.88l0.26,-1.86l0.83,-0.42l0.24,-0.61l0.69,-0.45l0.47,-1.72l0.7,0.34l1.62,0.03l1.26,0.62l1.39,-0.54l2.15,0.28l0.59,-1.95l0.69,-1.03l1.33,-1.05l2.32,3.55l-1.56,4.15l-2.04,3.4l-2.49,3.3l-1.16,5.51l0.33,2.74l10.35,6.28l0.9,2.32l-3.41,2.27l-5.02,1.39l-3.99,0.19l-2.63,0.92l-1.5,4.32l-4.97,7.64l-3.03,3.47l-0.92,2.26l-0.43,2.49l5.37,5.09l11.69,8.02l6.87,6.33l2.38,4.24l2.1,4.63l3.48,3.61l9.69,1.11l5.68,1.88l10.86,4.6l3.34,1.73l1.5,2.21l1.02,3.85l2.45,1.43l2.56,2.26l-0.14,3.01l-2.32,5.14l0.34,2.47l0.36,0.33l2.86,0.24l4.67,-0.6l7.96,-2.21l10.17,0.26l9.7,-0.19l8.31,-1.2l5.46,0.31l6.68,-0.32l2.72,1.11l5.05,1.24l4.67,1.85l-1.83,8.35l-3.97,9.37l-5.56,5.72l-4.83,6.93l-4.52,7.52l-3.46,4.15l-13.35,10.93l-8.65,5.88l-10.79,8.74l-17.4,15.85l-2.64,1.17l-15.49,13.61l-8.52,6.31l-6.84,4.46l-8.12,6.54l-8.62,6.24l-14.17,13.29l-26.47,21.42l-13.56,9.69l-12.44,4.71l-8.0,2.17l-2.42,-2.95l-0.59,-1.87l-23.34,-36.31l-7.09,-18.14l1.29,-11.15l-0.84,-3.92l-0.23,-3.41l-1.56,-9.49l-5.5,-7.27l-8.43,-4.57Z", "name": "Tozeur"}, "tn-kb": {"path": "M50.05,1122.84l7.76,-2.11l12.52,-4.75l13.69,-9.77l26.52,-21.47l14.14,-13.25l8.61,-6.23l8.13,-6.55l6.83,-4.44l8.55,-6.33l15.48,-13.6l2.66,-1.18l17.42,-15.87l10.77,-8.72l8.65,-5.87l13.4,-10.98l3.59,-4.3l4.53,-7.53l4.79,-6.87l5.63,-5.84l4.0,-9.45l2.33,-10.19l5.66,-2.69l10.03,-2.14l4.55,-0.53l5.28,-0.23l6.38,0.25l8.12,1.12l5.48,-1.61l3.08,-2.67l2.79,-0.61l3.67,3.19l3.52,1.85l5.34,1.26l5.69,0.65l6.21,-0.51l3.47,-3.04l1.54,-3.35l-0.21,-2.95l-3.19,-6.37l1.2,-2.15l2.16,-2.41l3.58,-1.94l4.94,-1.99l6.38,-2.0l2.4,0.9l2.82,1.67l3.0,0.76l2.91,-1.15l2.79,-1.63l3.7,0.1l4.34,-0.74l7.01,-0.44l4.17,-1.11l2.75,-1.61l2.75,3.67l2.96,2.41l7.72,8.22l2.86,2.32l1.83,2.28l0.75,1.91l-5.46,7.42l-2.91,1.68l-3.02,2.91l-3.92,2.66l-2.38,2.59l-1.56,2.59l-0.56,3.56l0.88,5.24l-1.05,13.95l-0.82,3.56l-0.25,5.65l0.11,4.83l1.41,8.15l1.84,3.69l3.82,5.65l2.78,5.62l3.38,2.99l4.09,8.25l2.57,5.58l0.44,6.26l2.18,6.97l1.29,1.76l4.46,1.35l2.67,2.44l0.46,0.02l1.83,-1.17l2.97,-0.02l3.35,0.63l5.65,6.03l0.35,4.65l0.66,3.62l3.36,2.06l3.71,-0.89l5.98,-0.25l1.91,1.55l1.7,3.93l2.34,3.58l3.08,1.2l4.65,2.55l-4.41,4.03l-3.93,4.93l-0.19,3.56l0.37,6.28l-0.78,1.51l-2.94,1.9l-1.47,2.18l0.01,0.47l6.0,7.05l1.5,3.48l8.22,5.62l3.12,1.73l3.11,2.72l3.91,12.02l5.28,7.08l3.5,6.97l8.58,7.95l10.56,10.91l5.22,3.99l2.86,0.5l3.33,3.85l3.75,1.03l3.13,1.53l7.6,-0.75l6.27,0.79l3.56,2.61l0.17,6.82l-0.4,22.87l-1.94,2.16l-2.28,1.23l-1.03,2.99l-0.65,3.43l1.24,1.48l1.85,1.27l2.48,5.81l6.24,2.05l2.91,2.04l5.99,3.36l2.19,3.11l-0.59,1.19l-9.22,0.14l-2.13,0.59l-1.72,2.07l0.25,3.44l-0.14,6.09l1.1,3.05l0.57,7.66l1.09,2.13l5.18,2.81l0.77,1.49l-1.88,4.06l-2.63,1.03l-2.44,1.57l-1.18,2.63l-1.85,2.01l-2.83,1.24l-1.58,2.06l0.58,3.8l1.26,2.76l-0.07,2.46l-2.85,5.73l-2.05,0.92l-1.65,1.66l-0.09,0.43l1.25,3.1l5.11,4.27l3.03,3.15l2.28,2.95l2.67,2.52l1.67,2.37l-0.66,2.22l-2.3,0.42l-2.21,-1.26l-2.45,-0.77l-7.54,-1.47l-2.91,-2.81l-1.62,-3.92l-1.91,-3.52l-5.71,-3.02l-3.13,-0.72l-3.58,-1.47l-4.96,-2.89l-2.93,-5.25l-2.38,-5.07l-0.42,-3.11l-1.9,-3.41l-3.03,-1.44l-6.01,1.37l-3.0,1.08l-6.64,-0.96l-2.66,1.91l-2.93,1.3l-3.65,1.23l-7.8,1.6l-16.56,10.73l-27.73,7.88l-21.32,5.34l-20.95,7.29l-55.16,0.91l-70.86,18.66l-53.18,14.74l-6.41,1.4l-6.97,-77.21l-16.71,-26.63l-17.3,-21.24l-1.46,-0.88l-10.21,-10.95l-0.34,-0.62l0.01,-2.12l0.61,-6.59l-0.13,-3.96l-7.22,-3.85l-5.88,-2.72l-1.49,-0.33l-0.86,-0.92l-1.27,-0.3l-12.52,-6.11l-5.08,-2.11l-2.48,-1.21l-1.1,-0.88l-1.08,-0.18l-7.91,-3.81l-3.74,-0.61l-11.52,-0.69l-0.87,0.23l-6.55,-16.33l-3.33,-9.46l-4.07,-21.09l-0.96,-3.6l-2.28,-13.0Z", "name": "Kebili"}, "tn-ta": {"path": "M341.01,1475.73l-1.11,-0.12l-58.51,-38.82l-64.13,-45.95l-33.83,-23.72l-0.57,-6.3l6.54,-1.43l53.18,-14.75l70.81,-18.64l55.2,-0.92l20.96,-7.3l21.31,-5.34l27.8,-7.9l16.64,-10.77l7.66,-1.54l3.71,-1.24l3.02,-1.34l2.36,-1.81l6.75,0.94l3.01,-1.09l5.88,-1.33l2.49,1.28l1.63,3.07l0.41,3.09l2.42,5.17l3.14,5.51l5.13,2.99l3.64,1.49l3.05,0.68l5.61,2.98l3.28,7.15l3.15,3.08l7.79,1.57l2.32,0.72l2.29,1.31l2.95,-0.45l0.31,-0.28l0.73,-2.99l-1.86,-2.62l-2.68,-2.53l-2.26,-2.93l-3.06,-3.18l-5.08,-4.25l-1.01,-2.6l1.41,-1.42l2.17,-1.04l2.98,-5.98l0.11,-2.79l-1.29,-2.89l-0.61,-3.27l1.26,-1.71l2.94,-1.32l1.96,-2.12l1.09,-2.52l2.23,-1.45l2.94,-1.26l2.05,-4.43l-1.07,-2.25l-5.21,-2.83l-0.82,-1.76l-0.53,-7.54l-1.09,-2.96l0.14,-6.02l-0.32,-3.08l1.33,-1.71l1.83,-0.52l9.4,-0.14l0.37,-0.22l0.79,-1.98l-2.58,-3.6l-5.98,-3.35l-3.01,-2.09l-5.93,-1.84l-2.41,-5.68l-2.97,-2.41l0.61,-3.19l0.95,-2.75l2.12,-1.06l1.97,-2.19l10.23,0.67l5.95,-1.54l8.2,-1.39l4.92,-1.17l5.21,-2.09l1.96,-2.48l0.46,-3.73l1.82,-3.39l2.38,-3.08l2.66,-1.3l3.87,-0.85l4.14,-0.05l3.88,1.81l9.08,2.03l5.21,-1.76l4.41,-3.99l4.52,-6.65l2.88,-1.84l6.93,-0.27l3.74,-1.56l3.28,-0.89l10.29,-1.84l14.92,-9.83l7.76,-3.9l4.84,0.0l7.74,2.76l2.93,2.22l2.93,0.82l7.11,-1.98l2.77,-1.88l2.57,-1.09l0.4,2.06l-2.39,1.92l-1.4,2.71l-0.73,2.93l-1.25,1.53l-4.25,2.33l-0.02,0.69l15.28,9.37l0.54,-0.12l1.16,-1.73l9.05,3.71l60.41,28.92l0.89,5.43l1.41,5.41l2.3,4.53l2.88,4.31l5.61,4.83l4.15,1.97l7.84,7.92l2.23,2.53l1.0,2.05l-1.38,2.99l-3.75,3.55l-2.02,3.34l-1.62,4.13l-0.31,9.18l-0.45,2.6l1.38,8.01l-0.96,4.52l0.17,10.47l-1.16,2.3l-1.72,2.44l-0.36,4.68l24.88,19.46l23.11,19.35l14.16,10.84l10.72,-2.18l2.02,5.03l-37.6,22.73l-15.14,30.11l-4.0,10.36l-1.5,1.18l-8.24,2.86l-2.77,2.13l-3.22,0.27l-3.89,2.43l-1.62,1.77l-3.34,2.67l-3.92,1.56l-4.58,1.02l-3.1,1.45l-11.47,7.97l-3.49,3.41l-12.5,8.57l-1.08,5.39l-0.79,1.97l-2.73,5.37l-9.42,16.04l-5.85,1.16l-3.85,1.63l-1.95,1.64l-2.32,0.92l-2.71,0.3l-3.96,-1.33l-4.27,-0.41l-2.42,-0.69l-2.13,0.85l-1.59,1.96l-2.77,1.23l-0.76,1.48l0.33,5.75l-0.69,1.57l-2.05,1.84l-0.73,1.92l0.19,1.85l4.02,6.57l0.07,2.3l-1.54,3.14l-0.41,1.65l-4.21,4.35l-4.3,3.6l-1.09,0.44l-2.18,2.3l-1.86,3.33l-2.58,9.96l-2.12,2.85l-0.98,0.48l-1.26,1.41l-2.57,1.81l-8.27,2.95l-7.34,1.94l-3.79,0.26l-10.51,-3.43l-1.99,0.03l-2.48,0.62l-2.13,1.02l-11.49,7.48l-4.86,4.06l-0.56,1.48l-1.02,1.22l-1.14,3.35l-5.52,8.22l-0.17,1.05l-2.8,5.11l-3.78,5.25l-0.39,1.31l-2.45,3.51l-1.85,1.83l-0.48,1.65l-2.43,3.11l-0.98,0.31l-3.09,4.31l-0.55,1.6l-3.13,4.2l-0.99,0.67l-2.04,2.99l-0.76,2.19l0.0,5.94l1.53,3.49l0.48,2.81l-0.36,4.2l0.59,4.1l1.41,4.68l0.82,0.93l8.2,20.92l3.03,8.98l0.67,1.04l1.21,4.79l0.75,1.04l2.55,7.21l2.32,4.38l4.39,16.92l2.01,3.22l3.03,6.24l0.6,3.46l-2.66,9.47l-0.08,5.04l1.05,5.14l0.56,0.85l0.95,4.08l0.29,5.82l2.02,9.27l2.31,5.19l-0.28,1.07l-2.42,2.7l-0.27,2.0l0.52,1.88l-2.08,5.87l-0.68,3.77l-1.35,4.27l-6.91,13.44l-4.54,10.37l-2.78,4.78l-2.97,2.42l-1.09,0.4l-2.91,2.15l-1.58,1.91l-4.92,9.28l-8.37,10.61l-3.18,5.95l-4.26,5.02l-0.93,1.54l-4.64,4.24l-7.92,9.86l-2.89,7.82l-6.51,10.54l-1.44,1.48l-1.98,1.3l-3.26,7.59l-6.46,4.76l-6.35,6.53l-1.29,0.43l-2.63,-0.2l-9.96,1.08l-6.14,2.44l-1.28,1.1l-3.87,1.78l-6.73,1.84l-6.49,4.37l-1.84,1.72l-6.9,2.62l-5.94,3.33l-7.26,4.84l-5.32,2.04l-7.21,1.28l-34.88,-157.68l-7.9,-36.95l-0.73,-1.16l-28.19,-129.54l-14.48,-63.67l-8.86,-41.11l-6.22,-24.9l-1.26,-2.38l-4.8,-20.66l-0.44,-0.11Z", "name": "Tataouine"}, "tn-kf": {"path": "M161.61,454.97l1.41,-1.77l-0.23,-1.86l0.36,-1.08l0.03,-2.34l1.1,-1.19l0.26,-0.75l1.18,-0.32l0.35,-0.63l0.77,0.17l0.81,-0.88l0.89,0.02l0.49,-0.49l-0.21,-0.8l0.38,-0.43l0.61,-8.37l1.0,-6.98l-1.01,-5.88l0.55,-2.05l0.79,-0.65l1.39,-2.19l1.08,-2.45l0.1,-2.62l1.48,-2.13l0.6,-2.1l4.67,-4.02l-0.43,-3.22l-0.87,-2.01l0.42,-2.43l-0.6,-2.6l-0.9,-1.02l-1.65,-1.08l-0.56,-1.07l-1.11,-0.9l-0.51,-1.46l-0.91,-0.39l-0.62,-3.62l1.11,-1.45l2.72,-1.83l1.21,-1.72l1.91,-6.31l1.38,-1.23l0.14,-1.43l1.54,-2.04l-0.28,-1.8l0.22,-4.06l-1.25,-2.41l-2.15,-0.81l1.52,-2.19l0.42,-1.43l1.58,-1.96l0.68,-0.26l2.12,-2.06l0.83,-0.36l2.26,-0.07l0.43,-1.57l1.39,-0.39l0.25,-0.59l-0.79,-1.29l-1.66,-1.07l-0.91,-2.23l-0.1,-2.04l1.01,-2.7l-0.8,-3.75l3.46,-3.37l13.04,1.42l7.4,-5.77l3.39,-0.93l4.71,-0.7l4.94,-4.78l2.04,-1.26l5.1,0.09l2.94,0.69l3.12,-0.11l3.1,-1.14l9.2,-4.42l3.46,0.68l4.7,1.47l3.72,1.87l2.72,0.41l3.88,-0.34l3.85,-1.15l3.57,-0.24l9.69,-2.09l3.02,0.04l3.6,-1.49l5.65,0.03l2.55,-0.76l2.92,-1.61l4.95,-5.76l1.54,5.28l2.25,4.39l5.51,6.23l0.85,3.42l1.72,3.66l0.47,2.3l-0.83,2.27l-5.75,6.2l-0.01,3.32l1.72,3.56l4.24,6.79l1.09,2.12l1.06,3.16l1.48,2.33l2.34,1.38l6.06,2.38l1.68,2.28l-0.62,3.06l1.06,3.61l-0.18,2.42l-1.78,2.54l-1.39,2.67l1.19,2.82l2.33,9.08l0.37,0.27l3.17,0.07l2.31,0.65l1.02,1.2l1.14,2.94l0.81,1.16l2.96,0.01l2.03,-0.33l1.34,3.49l7.7,2.6l-0.67,5.51l-0.13,4.58l0.8,6.57l1.31,5.46l-0.23,1.6l-2.48,2.42l-3.81,1.9l-6.49,6.2l-1.11,3.04l0.64,6.1l-0.09,2.99l-0.88,2.86l-3.26,2.26l-3.34,0.49l-2.95,1.65l-3.53,3.8l-1.63,5.9l0.33,0.51l2.66,0.38l-0.5,1.72l-2.94,2.63l-0.12,0.4l1.27,4.65l0.49,5.32l-0.66,4.07l-4.21,6.57l1.43,3.51l3.5,5.61l0.05,3.17l0.63,3.03l-0.24,2.44l-1.92,-0.29l-3.87,-2.43l-4.2,-1.83l-11.74,-2.24l-9.82,-2.8l-4.1,-1.85l-4.69,-3.17l-4.89,-2.82l-6.03,-5.41l-3.03,-1.73l-4.1,0.55l-5.39,2.3l-3.27,-1.12l-5.4,-2.82l-5.34,0.53l-2.36,4.05l-1.82,2.3l-4.75,2.27l-4.43,3.98l0.57,3.72l-0.52,3.69l1.2,5.47l-0.54,3.65l-2.88,2.59l-4.25,4.83l-2.73,-0.13l-2.95,1.92l-5.65,-6.49l-4.0,-2.52l-3.47,0.34l-6.19,1.3l-9.33,0.27l-3.24,2.28l-3.69,3.8l-2.49,2.89l-1.53,3.07l-0.97,0.25l-2.94,-0.07l0.27,-2.55l-0.2,-1.11l-0.68,-1.08l0.4,-1.31l-0.55,-3.54l-0.52,-1.0l-3.36,-2.04l-0.82,-0.93l-1.19,-0.28l-2.6,0.09l-1.35,-1.8l-0.49,-0.26l-0.55,0.15l-1.12,-2.58l-4.71,-5.76l-3.18,-1.9l0.36,-2.11l-1.02,-1.97l-0.7,-4.73l0.25,-1.73l1.12,-2.4l0.28,-2.29l-0.33,-0.7l0.12,-1.78l0.32,-1.37l0.58,-0.91l0.1,-2.71l0.56,-0.54l0.09,-1.05l-1.24,-13.82l0.48,-0.77l-0.2,-0.54l0.35,-1.67l1.05,-0.9l0.39,-1.58l-0.34,-0.58l-2.78,0.07l0.24,-0.61l0.96,-0.82l0.56,-1.56l-0.5,-0.54l-2.65,-0.89l-0.02,-0.74Z", "name": "Le Kef"}, "tn-me": {"path": "M647.37,1061.54l1.7,0.74l0.8,-0.15l0.43,0.44l1.51,0.3l0.45,0.44l-0.33,0.34l0.31,0.78l-1.48,0.22l-1.32,-0.44l-0.83,0.77l-0.06,2.37l-0.58,0.92l-0.37,-0.07l-0.46,0.55l0.89,0.62l1.19,-0.98l0.65,0.1l0.65,-0.55l0.31,-0.81l0.74,-0.59l-0.45,-0.78l1.28,0.3l-0.84,0.85l0.23,0.71l-0.78,0.62l0.65,0.62l0.8,-0.37l1.17,1.55l0.46,-0.47l-0.26,-0.6l0.38,-0.55l1.26,-0.3l0.46,-0.47l-0.93,-0.84l0.18,-0.76l0.36,0.29l0.92,0.0l1.23,-0.29l0.55,-0.52l0.86,0.15l0.7,-0.52l1.14,0.44l0.79,-0.7l0.25,0.25l0.39,-0.26l1.89,0.12l0.86,-0.29l0.46,-0.47l-0.26,-0.33l0.36,-0.23l0.86,0.0l0.36,0.3l1.27,-0.63l0.33,0.33l0.68,-0.29l0.22,0.23l-0.77,0.15l-0.46,0.47l0.71,0.62l1.72,-0.52l1.29,-1.03l-1.14,2.48l-0.12,2.58l0.46,0.47l0.44,-0.22l0.42,0.29l1.03,-0.15l1.55,1.03l0.68,-0.37l1.17,0.37l1.63,-1.43l-0.06,-0.74l-0.77,-0.55l-0.93,1.18l-0.54,-0.59l-0.71,0.55l-0.53,-0.55l-0.48,0.07l-1.56,-0.81l-0.38,-1.09l1.06,-2.56l0.63,0.09l2.16,-1.03l2.94,-0.3l0.83,-0.77l0.0,-0.34l0.95,-0.44l0.75,-0.96l1.42,-0.37l0.72,0.3l1.04,-0.3l0.55,-0.59l0.8,0.07l3.56,-0.81l1.41,-0.81l2.98,-2.95l2.98,-2.22l2.33,-0.59l1.07,-1.11l0.97,-0.44l2.32,0.0l2.02,-0.44l2.43,1.4l0.93,1.04l1.84,5.12l-1.04,3.04l-0.55,3.48l-1.23,1.46l-0.37,1.18l0.31,4.94l0.98,3.23l-0.12,2.31l-0.43,1.17l-0.89,0.26l-0.95,1.15l-0.8,4.53l-1.44,0.0l-1.81,2.07l-2.43,1.4l-2.12,2.17l-0.86,1.77l-0.43,4.05l0.89,1.06l0.79,-0.29l1.34,0.66l1.16,0.91l0.74,1.18l0.12,2.31l-0.92,2.65l-0.55,0.58l0.31,1.99l1.63,0.99l0.37,0.0l0.63,-0.66l0.85,0.29l2.32,-0.07l1.22,0.37l2.08,1.81l0.95,1.8l0.97,0.15l0.75,0.59l3.45,-0.29l3.67,0.15l1.61,-2.06l1.03,0.07l1.54,-0.44l0.95,-1.06l0.76,-1.88l3.95,-0.29l3.75,-1.33l1.87,-2.36l3.11,-0.44l4.07,-1.7l2.88,-0.52l3.61,-1.16l0.32,0.2l1.14,-0.78l0.52,0.34l0.61,-0.44l0.62,0.8l0.95,-0.69l0.31,-0.66l-1.29,-0.97l1.05,-1.09l0.18,-0.97l1.78,-1.98l0.28,-0.93l0.83,-0.84l-0.06,-1.33l0.86,-1.03l0.25,-1.25l-0.31,-0.96l-0.98,-1.02l-0.92,-2.45l-0.98,-0.8l-0.98,-1.66l-0.55,-1.75l-1.01,-0.84l-1.41,-0.15l-0.89,-0.59l0.06,-1.96l1.52,-1.37l1.22,0.0l1.17,-1.11l1.07,-0.37l1.33,0.22l0.95,-0.92l0.18,-0.81l1.97,0.33l0.83,0.67l0.98,0.0l1.41,1.18l3.07,-0.22l0.44,-0.42l1.09,-0.17l1.01,-1.21l-0.18,-2.07l-0.65,-0.47l-0.58,0.74l-0.37,-0.1l0.06,-0.59l0.41,-0.28l1.46,0.59l2.0,-0.14l0.12,0.77l1.69,1.58l4.36,1.62l1.6,-0.15l1.2,-0.52l2.39,3.29l1.29,0.96l-0.37,0.37l0.25,0.89l1.2,1.51l1.26,0.77l2.46,3.04l0.49,1.33l3.99,5.52l0.74,2.14l0.49,3.04l0.55,0.65l-0.43,1.05l0.47,0.96l-0.29,0.29l0.06,1.25l0.68,1.76l-0.18,0.75l0.43,0.73l-0.43,1.26l0.25,0.65l-0.25,0.97l0.49,0.6l-0.85,0.81l-0.74,1.33l1.82,1.96l-2.93,2.39l-0.8,2.81l-2.15,4.33l-0.12,4.12l2.89,5.01l-0.25,2.36l0.77,0.4l0.95,-1.06l3.04,2.98l2.15,1.69l0.28,-0.15l0.06,0.48l-2.38,2.63l-1.56,1.14l-1.21,1.66l-2.19,0.3l-1.55,-1.03l-1.38,1.14l0.0,0.66l0.52,0.4l0.86,-0.69l0.18,0.18l-0.64,0.55l0.74,0.49l-0.06,0.39l0.4,0.4l0.54,-0.22l0.69,0.44l1.11,0.15l0.81,-0.59l0.66,0.15l0.43,-0.3l2.06,-1.94l0.18,-0.7l1.46,-0.67l3.17,1.85l3.85,4.12l1.23,1.66l0.06,2.57l0.77,0.92l2.41,0.66l0.79,0.51l0.49,-0.07l0.74,0.88l0.46,-0.15l3.17,1.47l1.59,0.37l4.46,2.13l5.94,4.12l3.19,1.55l-1.97,-0.44l-0.92,-0.73l-1.89,-0.29l-4.87,-2.28l-4.04,-1.03l-9.17,-3.9l-1.68,0.0l-2.49,-1.03l-2.03,-0.15l-0.86,0.15l-1.44,1.47l-1.33,-0.44l-1.04,0.15l-0.71,0.77l-0.49,1.32l-0.31,3.34l-0.32,0.28l-0.38,-0.34l-0.98,-0.07l-0.4,0.4l1.23,4.48l0.71,0.55l1.22,-0.75l1.46,2.48l1.57,1.8l2.99,1.4l1.53,1.76l-0.12,1.44l1.47,2.34l-0.18,4.13l2.27,4.11l2.67,1.21l1.97,-0.44l0.88,-0.88l2.19,-0.22l0.41,-0.38l5.43,1.48l6.07,-0.73l5.29,1.76l0.75,0.59l4.06,0.89l2.89,1.24l4.6,0.88l2.59,1.03l1.83,0.29l0.53,0.29l-0.06,0.55l0.52,0.55l0.62,-0.15l1.47,1.32l0.89,-1.13l1.04,-0.66l0.96,-2.84l0.73,0.67l1.26,0.26l1.85,1.5l1.01,1.32l0.68,0.07l0.6,-0.42l0.32,0.2l0.3,-0.3l1.94,-0.36l1.26,1.69l0.96,0.37l1.13,1.17l0.95,0.0l0.83,0.66l1.35,-0.22l1.69,-1.72l0.22,0.85l-0.65,0.55l0.4,0.77l0.48,-0.29l0.87,0.22l0.59,-0.59l1.07,0.73l1.35,0.15l1.57,-1.13l-0.46,-0.55l-0.52,0.1l-0.89,-0.77l-0.58,0.15l-0.01,-1.14l-0.4,-0.4l-0.58,0.36l0.06,-0.77l-1.32,-1.14l-2.64,-0.81l-1.32,1.32l-0.43,-0.07l0.37,-1.88l-0.12,-1.03l-0.58,-0.77l-1.41,-0.66l-4.49,-3.31l-1.03,-0.15l-1.18,-0.81l-1.04,-1.18l-6.13,-4.41l-2.95,-2.57l-1.61,-1.76l-2.06,-1.7l0.09,0.0l2.38,1.62l3.22,2.87l1.46,0.74l5.48,4.78l2.08,1.03l4.87,3.38l3.65,1.69l3.97,2.5l2.7,1.32l1.28,0.07l1.79,1.25l4.98,1.69l2.09,0.51l1.09,-0.07l1.3,0.66l2.41,-0.66l1.62,0.18l-0.89,2.44l0.31,2.18l-2.35,8.68l-4.15,7.48l-0.74,3.22l-0.66,5.34l-0.53,10.6l-0.49,1.95l1.56,1.53l0.29,2.87l-2.83,3.39l-2.94,12.22l-3.16,9.92l1.52,4.19l2.51,9.0l-1.46,4.44l-1.14,5.47l-1.55,10.37l1.95,8.81l0.2,3.61l-0.95,8.19l-1.21,5.32l0.29,3.03l1.04,3.5l3.05,7.82l2.64,2.75l2.51,1.17l2.36,2.06l4.99,6.87l2.75,2.29l2.77,4.16l1.78,4.15l-15.57,31.4l-13.16,9.77l-0.92,1.18l-2.84,1.17l-5.63,0.62l-7.19,5.2l-5.71,3.04l-2.38,0.87l-4.43,0.93l-4.54,1.88l-24.51,8.26l-11.81,5.25l3.49,-9.04l15.08,-29.99l37.64,-22.68l0.16,-0.49l-2.28,-5.66l-0.46,-0.24l-10.54,2.28l-14.01,-10.73l-23.11,-19.34l-24.71,-19.32l0.47,-3.99l1.64,-2.25l1.26,-2.59l-0.17,-10.55l0.96,-4.61l-1.38,-8.01l0.45,-2.51l0.31,-9.09l1.55,-3.92l1.94,-3.21l3.79,-3.6l1.5,-3.24l-1.11,-2.62l-10.24,-10.67l-4.18,-2.0l-5.46,-4.69l-2.81,-4.2l-2.24,-4.39l-2.54,-11.23l-60.62,-29.02l-9.34,-3.85l-0.51,0.14l-1.14,1.7l-14.37,-8.81l3.72,-2.03l1.47,-1.75l0.79,-3.04l1.33,-2.59l2.41,-1.89l-0.39,-3.17l-0.55,-0.29l-3.06,1.3l-2.72,1.85l-6.71,1.92l-2.61,-0.7l-3.0,-2.26l-7.9,-2.82l-5.29,0.02l-7.92,3.98l-14.74,9.74l-10.25,1.83l-3.38,0.92l-3.58,1.52l-7.14,0.32l-3.17,2.06l-4.55,6.68l-4.12,3.75l-4.8,1.68l-8.94,-2.0l-4.0,-1.84l-4.27,0.06l-4.12,0.91l-2.92,1.48l-2.46,3.18l-1.91,3.55l-0.42,3.64l-1.65,2.17l-5.03,2.02l-4.85,1.15l-8.23,1.4l-5.9,1.53l-9.86,-0.67l0.4,-22.65l-0.34,-7.35l-3.96,-2.85l-6.49,-0.82l-7.6,0.75l-2.9,-1.48l-3.67,-1.0l-3.14,-3.74l-2.99,-0.58l-5.09,-3.9l-4.76,-5.17l-6.46,-6.34l1.6,0.05l3.19,1.71l4.79,1.61l4.94,0.72l3.88,-0.41l6.21,-2.54l6.35,-0.72l2.3,1.19l4.14,-0.48l4.46,-1.09l2.96,1.13l4.32,0.07l3.88,-1.13l2.67,-1.89l2.29,-2.63l1.86,0.09l2.66,1.74l3.16,0.73l2.75,-2.79l5.69,-0.85l3.81,-1.63l3.31,-2.74l4.52,-2.88l0.35,-4.26l-0.43,-2.73l2.03,-1.65l3.39,-0.61l3.51,-1.83l2.31,-3.98l0.21,-2.74l7.09,-4.11l3.99,-1.65l3.94,0.04l4.73,0.86l4.87,-0.01l4.26,-3.62l1.3,-2.87l1.05,-3.9l5.28,-5.66l2.39,-3.51l1.58,-3.05l4.77,-6.78l0.94,-4.39l3.92,-6.9l2.19,-3.3l3.02,-3.72l2.15,-4.58l2.13,-2.98l5.11,-2.49l3.38,-2.67ZM649.72,1065.39l-0.01,-0.01l0.04,0.0l-0.01,0.01l-0.01,0.0ZM749.07,1056.14l-0.69,-0.2l-1.4,1.26l-0.44,-0.3l-1.23,0.15l-1.87,2.34l-0.56,1.76l-0.18,5.86l-0.37,1.08l-0.77,-0.62l-1.44,-0.19l-0.49,-2.73l-0.55,-1.32l0.74,-1.12l0.06,-2.38l1.17,-1.32l0.37,-1.33l-0.37,-3.4l-2.7,-2.84l-0.31,-0.92l-4.12,-4.72l-0.86,-1.42l-2.98,-3.13l-1.17,-0.22l-2.46,0.59l-1.92,1.85l-1.22,0.15l-1.84,1.4l-1.01,1.21l-0.31,0.89l0.0,3.66l-1.01,-0.67l-3.93,1.18l-1.81,-3.44l-2.52,-2.17l-0.12,-0.78l-0.9,-1.14l0.17,-0.86l-0.8,-3.03l-1.12,-1.98l0.14,-1.94l-0.59,-1.22l0.47,-0.7l-0.23,-0.55l0.72,-1.61l0.46,-0.03l0.46,-0.92l0.46,0.25l0.77,-0.84l-0.13,-1.0l1.54,-2.63l0.37,-1.63l-0.18,-2.97l0.25,-0.95l-0.43,-1.84l0.37,-0.38l-0.3,-0.39l0.23,-1.6l-0.31,-0.62l0.43,-1.9l-0.43,-1.48l-0.74,-1.17l0.06,-0.83l-0.43,-0.83l0.25,-0.7l0.71,0.15l0.58,-0.47l0.31,-0.89l-1.35,-1.17l0.18,-3.04l-0.66,-0.47l0.47,-1.94l1.57,-0.65l3.87,-0.83l0.46,-0.37l1.02,0.15l3.5,-0.74l0.65,-0.77l0.71,0.62l0.61,-0.38l0.37,0.3l0.73,-0.3l0.69,0.37l0.67,-0.07l1.6,0.81l0.79,-0.3l2.88,1.04l1.56,1.04l1.03,0.11l1.31,0.86l0.44,-0.38l1.41,1.34l2.58,1.26l0.92,0.0l0.89,-0.54l2.25,1.36l2.32,-0.07l1.98,0.37l3.27,-0.52l0.85,0.15l1.26,-1.21l0.18,-1.48l-1.29,-2.56l0.23,-0.2l3.15,2.68l0.25,0.68l2.18,2.4l2.21,1.78l3.59,2.07l1.23,2.19l3.96,3.95l2.58,1.55l1.41,0.44l0.75,-0.44l1.22,0.07l1.04,-0.74l0.43,0.59l1.33,0.44l1.35,1.01l0.06,4.96l0.92,3.15l-0.41,0.38l-0.57,-0.83l0.18,-0.33l-0.49,-2.66l-0.46,-0.47l-0.58,0.4l-0.06,0.89l0.18,1.92l1.84,2.44l0.06,0.81l0.38,0.39l-0.44,0.94l-0.83,-0.62l-1.54,0.22l-1.61,1.48l-1.89,1.03l-2.35,3.03l-2.45,0.22l-2.06,1.5l-2.94,4.88l-0.49,1.63l-0.18,3.62l-0.46,-0.4l-0.58,0.62l-1.04,7.83l-1.35,-2.5l0.68,-1.34l0.06,-1.93l0.37,-0.65l-0.74,-2.35l0.18,-2.3l-0.58,-0.84l-0.55,0.0l-0.81,0.74l-1.22,-0.07l-1.26,1.51l-1.17,2.81l-0.37,2.3l-1.11,2.03l-1.07,0.15l-0.74,0.52l-2.93,3.01ZM763.77,1048.35l0.0,0.6l0.12,0.59l-0.43,-0.58l0.31,-0.62ZM763.9,1049.92l0.0,0.08l-0.06,0.06l0.0,-0.08l0.06,-0.06ZM763.74,1047.59l0.04,-0.05l0.06,-0.06l0.0,0.09l-0.1,0.02ZM761.48,1055.5l-0.02,0.0l0.1,-0.12l0.0,0.04l-0.08,0.08ZM761.62,1055.31l0.0,0.01l-0.06,0.06l0.0,-0.01l0.06,-0.06ZM831.61,1162.48l-0.08,-0.08l0.12,0.08l-0.03,0.0ZM831.46,1162.33l-0.05,0.0l-0.38,-0.38l0.3,0.29l0.12,0.08ZM830.87,1161.89l-0.15,-0.15l-0.05,-0.01l0.08,0.0l0.2,0.15l-0.1,0.0ZM844.73,1168.72l-0.05,-0.0l-0.01,-0.01l0.05,0.0l0.01,0.01ZM840.49,1166.59l-0.37,-0.22l-0.17,0.0l-0.13,-0.08l0.35,0.07l0.32,0.23ZM839.73,1166.22l0.02,0.0l0.01,0.01l-0.02,0.0l-0.01,-0.01ZM840.98,1166.81l0.01,0.01l-0.04,-0.01l0.03,0.0ZM841.05,1166.88l1.09,0.29l1.73,1.04l-2.66,-1.18l-0.16,-0.16ZM843.94,1168.28l0.17,0.0l0.13,0.08l-0.22,0.0l-0.08,-0.08ZM844.54,1168.65l-0.23,-0.23l0.3,0.23l-0.07,0.0ZM870.95,1191.32l-0.12,-0.12l0.06,0.0l0.06,0.12ZM863.61,1189.36l0.06,0.0l0.46,-0.44l-0.23,0.45l-0.29,-0.01ZM763.94,1066.35l0.5,-0.6l0.8,0.56l-0.55,0.48l-0.76,-0.44ZM764.02,1062.94l0.06,0.57l-0.25,0.36l-0.49,-1.12l0.18,-0.28l0.49,0.47ZM763.53,1062.47l0.0,-0.01l0.06,-0.06l0.0,0.01l-0.06,0.06ZM761.99,1059.16l-0.25,-0.48l0.03,-0.38l0.58,0.25l0.0,0.52l-0.37,0.09ZM737.29,1077.98l-0.37,-0.39l1.01,-0.75l1.26,0.65l0.06,1.53l-0.49,1.24l-1.29,-1.55l-0.18,-0.73ZM716.64,1052.66l-0.17,-0.28l2.01,0.3l-0.37,0.63l0.28,0.48l-0.16,0.36l-0.95,-0.87l-0.64,-0.15l0.0,-0.47ZM703.24,1042.15l0.95,-1.06l1.05,-0.08l0.4,-0.4l0.0,-0.52l0.1,1.07l-0.47,0.92l0.37,2.41l-1.04,-0.74l-1.35,-1.61ZM705.64,1040.0l0.0,0.01l-0.04,-0.04l0.01,-0.01l0.03,0.03ZM653.53,1067.21l-0.12,-0.9l0.18,-0.07l0.18,0.38l-0.24,0.59Z", "name": "Medenine"}, "tn-ks": {"path": "M167.23,763.61l0.3,-5.31l0.63,-2.12l-0.1,-1.38l-1.15,-1.68l0.39,-1.74l-0.39,-2.44l-0.63,-2.32l-0.91,-1.0l0.6,-1.01l-1.08,-1.95l0.18,-3.08l-2.46,-3.38l-0.27,-1.94l0.45,-1.67l-0.14,-1.18l-1.06,-3.09l-0.06,-1.1l-0.96,-1.01l0.07,-1.0l-0.89,-1.03l1.67,-1.77l2.02,-1.17l1.14,-0.01l1.39,-1.68l1.09,-0.48l0.78,-1.02l1.57,-0.25l1.04,-0.54l0.45,-0.75l1.13,0.62l0.81,-0.33l1.32,0.22l0.48,-0.3l0.57,-14.31l-0.49,-2.32l6.07,-16.35l-0.1,-0.62l1.27,-1.77l0.78,-2.75l0.71,-0.64l0.37,-2.07l0.78,-1.01l3.4,-1.99l1.83,-1.85l1.2,-0.67l2.71,-2.77l3.17,-6.11l1.39,-7.26l0.87,-0.77l1.27,-2.46l3.5,-5.0l1.3,-2.83l5.2,-5.49l-0.05,-0.54l-0.54,-0.36l-2.64,0.93l-0.67,-0.25l-4.02,0.34l-2.14,-0.68l-2.01,-1.57l-2.2,-0.39l-1.56,0.29l-0.11,-0.72l-1.8,-0.64l-1.62,-1.99l-3.33,-2.4l-2.77,-1.01l-1.14,-1.33l-2.08,-0.67l-3.44,-0.39l-1.87,-2.62l0.02,-1.87l-0.61,-1.66l-1.98,-2.54l0.01,-2.95l0.84,0.05l0.42,-0.45l-0.13,-2.17l0.34,-2.6l-0.81,-4.28l0.31,-2.31l-0.47,-2.45l2.62,-5.29l0.66,-2.68l-0.61,-2.0l-1.94,-0.28l2.24,-1.56l1.97,-5.82l2.55,-2.84l0.75,-1.56l-0.11,-0.63l0.66,-0.48l1.84,-0.3l1.77,-0.83l2.49,0.2l0.56,-0.69l0.47,-4.77l-2.93,-2.92l-2.89,-7.68l0.75,-3.26l-0.04,-3.05l-1.95,-8.54l-0.19,-6.28l-0.58,-2.5l1.37,-2.58l0.31,-3.17l3.0,0.07l1.31,-0.33l1.79,-3.31l2.45,-2.85l3.64,-3.74l2.84,-2.07l9.23,-0.27l6.28,-1.31l3.26,-0.32l3.5,2.28l5.84,6.7l0.52,0.08l3.14,-2.04l2.9,0.04l1.8,-2.29l5.6,-5.53l0.58,-3.87l-1.21,-5.58l0.53,-3.58l-0.67,-3.33l4.21,-3.79l4.83,-2.34l1.94,-2.46l1.97,-3.68l4.83,-0.53l5.32,2.79l3.45,1.18l5.77,-2.35l3.56,-0.54l2.79,1.57l6.06,5.43l4.96,2.87l4.74,3.2l4.21,1.89l5.08,1.52l4.84,1.3l11.63,2.21l2.93,1.28l-2.33,1.72l-3.99,1.16l-2.5,1.21l-0.03,0.71l5.75,3.29l1.5,2.75l1.14,3.06l0.54,2.64l2.79,2.02l3.65,0.23l4.96,-2.08l1.65,2.27l1.02,2.39l1.8,2.92l2.7,1.67l5.12,-2.08l2.56,-0.1l2.6,0.69l3.89,0.06l2.14,-1.04l2.62,1.01l2.19,2.6l2.79,1.99l-0.1,2.14l-0.87,3.5l1.11,3.26l3.36,2.46l3.61,1.59l2.57,0.47l2.64,0.04l4.21,-1.33l1.46,3.97l3.16,0.53l1.98,1.29l2.87,3.23l1.87,4.7l0.5,2.13l-0.89,2.1l0.28,0.55l2.8,0.7l-6.38,4.7l-1.52,2.37l-2.65,1.72l-3.41,1.42l-3.01,2.25l-6.7,8.61l-4.84,8.12l-7.7,10.74l-1.72,3.24l-2.1,6.67l0.26,2.57l1.69,2.1l2.87,0.45l5.93,3.35l1.47,3.36l1.71,2.35l4.09,2.37l2.23,2.01l3.34,1.36l4.98,3.64l0.16,1.44l-4.95,2.73l-0.51,2.15l1.2,2.7l0.03,2.32l-0.83,2.43l0.86,3.15l-1.56,2.01l-0.87,2.15l1.35,4.97l2.01,3.56l-1.25,2.83l-0.42,3.04l1.6,2.72l1.87,2.08l2.23,1.38l-0.42,3.19l-2.13,4.18l-3.47,1.36l-4.85,0.33l-4.58,1.03l-7.94,0.67l-3.29,1.42l-2.88,2.29l-3.51,1.94l-3.47,0.53l-4.89,0.08l-1.82,2.4l-1.07,3.29l-7.53,8.26l-1.18,1.77l-0.65,3.1l-1.25,2.98l-0.39,3.16l1.33,1.68l3.21,1.39l1.53,1.46l-0.2,2.53l-8.68,4.11l-6.11,5.64l-8.5,3.11l-5.7,3.17l-9.17,2.95l-3.41,2.08l-6.11,5.01l-4.25,2.4l-4.55,1.48l-4.4,2.44l-3.83,3.89l-5.66,2.93l-5.74,1.21l-3.66,1.51l-4.39,2.88l-13.9,7.43l-8.1,3.23l-0.25,0.47l1.7,6.45l-0.71,2.48l-4.63,0.35l-5.86,-1.79l-3.95,-2.48l-3.83,-3.65l-8.74,-6.9l-3.74,-2.43l-5.06,-0.15l-7.55,-4.34l-16.61,-7.31l-1.52,-0.29l-2.57,-6.06Z", "name": "Kasserine"}, "tn-mh": {"path": "M586.17,630.73l0.75,-10.67l1.22,-5.15l0.45,-5.91l-5.77,-5.63l-0.9,-4.02l0.66,-3.86l1.7,-3.36l0.77,-2.77l-0.39,-2.15l0.8,-2.97l0.09,-2.12l1.72,-1.47l4.35,-2.28l1.37,-1.3l0.67,-1.71l0.4,-3.91l1.72,-1.86l4.44,-2.98l1.89,-2.46l-0.35,-2.41l-1.71,-2.89l-2.3,-2.81l-1.77,-3.06l-1.05,-3.28l3.85,-2.41l1.35,-1.6l2.19,-1.71l1.72,-0.83l6.11,-0.99l3.68,-1.4l0.87,0.09l-3.63,3.61l-0.65,2.6l0.98,4.07l1.62,2.87l1.9,2.23l2.21,1.71l1.19,2.45l1.37,1.41l1.8,1.12l1.06,1.27l0.5,1.92l1.39,2.0l2.14,0.11l0.39,-0.42l-0.09,-1.97l0.83,-1.13l1.43,-0.72l1.68,0.96l2.54,0.3l1.73,-0.71l1.2,0.69l2.1,2.41l1.85,1.06l2.8,-0.09l0.8,3.38l1.69,2.93l1.16,1.52l2.02,1.0l2.68,4.21l2.18,2.06l4.23,1.09l5.08,2.05l3.22,0.24l0.38,-0.21l2.96,-5.47l0.4,-2.24l1.19,-1.73l3.22,-1.76l3.74,-3.19l0.85,-3.38l-0.39,-3.79l9.79,-0.39l2.29,0.68l5.59,0.86l2.91,-0.16l4.1,-0.82l1.94,0.35l0.8,3.04l2.71,4.57l3.29,3.25l5.03,1.4l2.68,0.41l5.96,-0.69l1.85,-1.65l0.07,-4.86l2.83,-2.61l5.32,-5.73l7.26,-4.48l5.34,-4.15l3.54,-2.15l0.34,0.0l0.0,0.47l1.51,1.53l0.77,0.04l-0.06,0.92l0.95,0.93l1.55,-1.28l1.04,0.38l1.04,-0.08l2.53,-1.28l1.46,0.23l1.01,-1.08l-0.18,-1.51l0.56,-0.48l0.64,0.34l0.52,-0.55l-1.32,-3.02l10.23,-1.61l-0.37,3.51l0.31,4.99l0.43,2.34l1.78,4.3l2.8,3.19l2.58,1.51l1.04,0.15l2.61,-1.28l-0.37,0.63l-1.57,0.45l-0.73,0.97l-0.83,0.41l-0.06,0.51l-0.71,-0.08l-0.52,0.63l-0.37,1.78l-1.78,4.79l-0.18,1.83l-1.6,5.57l-0.61,7.32l0.49,2.71l0.74,2.11l0.49,0.59l0.34,1.56l-0.8,-0.21l-0.67,0.89l-0.44,-0.13l-0.74,0.45l-1.01,1.68l-0.18,6.63l1.11,6.03l0.68,2.18l2.95,4.74l5.53,6.48l4.12,3.98l0.68,1.14l1.75,1.3l1.38,0.6l0.12,0.43l2.98,2.81l2.79,1.81l1.09,1.05l2.08,0.3l1.07,0.9l-0.41,0.7l-0.68,0.4l-0.06,0.91l-0.66,0.42l-0.66,-0.75l-0.74,-0.3l-0.89,0.64l-0.46,-0.51l0.09,-0.63l-0.46,-0.4l-1.78,0.68l-0.57,0.68l-1.28,0.07l-0.65,0.55l0.0,1.14l-2.27,1.65l0.31,0.99l-0.55,0.96l0.0,1.13l0.49,1.37l-0.25,0.41l-0.71,0.0l-1.51,1.15l-0.37,0.75l0.06,0.98l-0.89,0.27l-0.89,0.93l-0.74,2.12l-0.8,1.04l0.0,0.53l1.46,1.3l-1.04,0.25l-2.23,-0.38l-1.34,0.38l-0.94,-0.38l-2.34,1.81l-0.52,0.62l0.18,0.44l-1.66,2.34l-3.56,6.54l-0.98,2.95l-11.73,-0.63l-4.44,-2.15l-3.76,1.3l-1.47,-0.59l-0.96,-5.95l-0.89,-2.94l0.58,-4.07l-2.13,-5.96l-1.39,-2.27l-2.0,-1.87l-2.12,-0.6l-0.44,0.16l-1.44,2.06l-0.83,2.55l-1.27,2.2l-5.96,2.67l-1.77,1.17l-0.87,-0.84l-0.47,-2.9l-0.87,-2.56l-1.88,-3.35l-3.42,-3.53l-2.01,-3.47l1.28,-11.44l-1.13,-2.64l-1.89,-1.93l-2.3,-1.25l-2.37,-0.45l-3.79,2.22l-3.26,2.61l-8.91,5.84l-4.06,0.34l-2.72,-0.71l-10.5,-4.45l-2.36,-1.32l-3.39,-0.35l-0.43,0.45l0.53,3.92l-3.3,4.94l-2.41,2.1l-0.41,1.48l3.93,4.31l1.4,2.63l-2.11,1.2l-4.24,1.16l-8.29,6.52l-4.82,5.15l-6.1,5.27l-4.35,4.45l-3.41,1.87l-3.61,-1.64l-5.48,-3.19l-2.39,-2.45l-3.5,-2.11l-2.46,-2.2l-5.68,-1.21l-11.68,1.1l-3.53,-1.5l-3.53,-2.05l-4.16,-1.13l-0.91,-2.69l-0.46,-2.91l0.39,-5.45l0.77,-2.11l0.49,-2.71l-1.35,-1.91l-6.1,-3.84l-1.82,-2.26l-0.31,-2.86Z", "name": "Mahdia"}, "tn-mn": {"path": "M454.12,207.27l-0.63,-0.35l-0.2,-1.02l0.49,-3.18l-1.58,-1.43l-2.81,-3.48l-0.57,-1.25l4.78,-6.4l0.92,-0.91l2.29,-1.03l2.57,0.0l1.67,0.22l0.82,1.96l0.76,0.75l0.59,-0.03l5.8,-6.61l3.43,-0.38l2.89,-0.87l3.46,-3.14l1.96,0.01l2.98,1.29l3.34,-0.53l2.2,-1.28l1.95,-2.02l1.46,-4.62l1.16,-2.27l3.59,-3.82l0.69,-4.31l1.51,-1.44l5.29,3.54l10.51,-0.16l2.93,0.77l3.24,0.28l4.43,1.67l1.49,1.13l2.13,3.92l0.8,2.53l1.58,1.64l2.28,0.12l2.35,-1.16l3.03,-0.6l1.5,2.42l0.01,1.62l-0.26,1.08l-1.25,1.6l-0.89,4.07l-1.97,2.37l-1.37,0.86l-2.08,0.4l-0.46,2.48l-1.65,0.9l-0.25,0.85l0.25,0.44l0.86,0.41l4.43,0.52l1.78,0.8l0.93,-0.02l0.71,-1.04l-0.28,-2.59l0.88,-0.9l2.32,0.34l1.78,-0.89l2.45,-0.23l1.14,-0.6l3.91,-3.52l3.53,8.51l2.5,4.39l3.71,3.4l1.92,0.9l0.58,1.28l1.1,0.82l0.2,1.35l-2.75,-0.28l-3.21,0.58l-2.53,1.32l-0.42,1.35l0.93,1.21l-0.06,0.63l-0.64,0.55l-2.36,0.13l-3.68,-4.12l-1.87,-0.4l-0.97,-0.94l-3.08,0.41l-1.64,1.03l-0.76,2.03l0.15,0.45l3.24,2.58l2.82,9.05l2.55,1.44l2.1,0.5l1.15,1.7l0.92,4.03l-0.34,1.83l-1.81,2.33l-0.82,2.05l-6.4,6.98l-2.33,1.22l-2.29,1.75l-1.52,1.75l-1.84,-2.02l-4.83,-2.52l-3.16,0.63l-2.04,1.95l-1.68,3.28l-1.67,3.83l-0.84,4.21l-1.77,5.07l-3.48,4.58l-2.49,1.14l-3.8,-0.25l-0.57,-1.94l-1.5,-2.74l-4.89,-6.08l-3.13,-6.64l-2.72,-1.98l-2.75,-3.74l-2.36,-4.65l-1.61,-6.71l0.93,-6.99l-0.46,-1.21l-1.5,-0.22l-1.92,0.72l-2.27,2.07l-3.05,-0.16l-1.36,-1.51l-11.68,-8.27l-4.45,-0.68l-2.24,-0.75l-4.18,-2.2l-1.44,-1.88l-1.01,-2.13l-0.39,-2.27l-0.8,-1.63l-0.47,-0.2l-1.22,0.35l-1.34,0.76Z", "name": "Manubah"}, "tn-kr": {"path": "M546.49,689.98l-0.53,-13.26l-1.0,-5.96l-1.5,-5.45l-0.39,-4.56l0.11,-5.45l-0.26,-0.38l-1.94,-0.54l-3.96,3.1l-3.6,0.96l-2.96,1.76l-4.16,1.8l-10.19,-5.67l-3.3,-2.55l-2.33,-0.82l-5.04,0.29l-5.63,-0.7l-4.39,-1.74l-4.96,0.83l-4.65,-1.15l-5.13,-3.38l-4.57,-2.37l0.78,-3.89l-1.88,-3.13l-3.33,-3.39l-2.48,-3.05l-2.3,-3.99l-3.02,-4.15l-3.81,-2.93l-2.99,-0.95l-3.59,3.1l-2.68,1.28l-2.6,2.01l-1.35,-2.51l-0.65,-2.38l-4.03,-7.04l-10.98,-6.17l-2.76,-2.22l-1.75,-2.84l-0.5,-3.15l3.88,-4.6l2.83,-2.72l2.67,-3.94l-0.03,-2.03l-1.66,-5.79l-0.87,-9.05l-4.05,-2.58l-5.06,-2.65l-1.88,-2.18l-1.53,-4.47l-1.26,-10.12l-3.77,-4.11l-5.17,-9.77l-3.4,-1.09l-2.85,-2.8l-2.76,-3.96l-3.24,-1.79l-3.5,-2.43l-6.15,-6.32l-1.99,-2.77l-1.24,-2.52l-0.52,-3.43l3.27,-4.51l2.53,-0.39l9.15,5.01l3.57,1.24l6.34,-0.43l2.94,1.58l0.45,-0.05l3.2,-2.78l5.19,-1.63l4.51,-1.84l2.55,-2.24l3.15,-1.41l4.88,-0.09l3.76,-0.64l2.29,-1.9l1.88,-2.01l-0.21,-0.66l-4.77,-0.97l-3.6,-3.37l-2.21,-2.68l-1.37,-2.79l-0.33,-2.82l4.43,-5.17l2.04,-2.95l-1.23,-3.85l1.28,-2.43l0.66,-3.59l-5.75,-9.59l-0.02,-2.05l7.39,-4.0l12.33,-10.51l5.61,-6.51l4.76,-6.92l4.2,-0.82l8.19,-8.62l3.91,-3.12l3.99,-4.0l2.57,-2.02l9.71,3.41l1.3,0.0l3.2,-3.82l2.03,-1.37l4.23,-1.88l8.61,2.84l2.58,4.96l2.18,2.37l3.27,1.65l7.4,-1.13l2.21,0.75l2.78,-0.49l1.67,0.63l2.48,1.64l2.16,0.5l1.08,2.73l1.95,2.26l2.36,1.63l3.33,0.9l2.89,-1.18l1.71,-2.68l0.96,-3.18l-0.19,-4.98l1.67,-3.49l-2.16,-4.37l0.27,-1.73l1.66,-1.09l1.23,1.79l2.34,2.48l2.3,0.88l3.7,-0.6l3.03,-1.88l2.77,-2.62l0.54,-3.12l1.59,-3.35l0.08,-3.03l-1.67,-2.19l0.95,-2.55l2.35,0.47l3.34,-0.36l3.25,0.61l4.63,-1.36l1.8,0.18l-2.37,3.08l-0.47,2.62l0.62,5.32l-0.17,2.43l-2.56,5.26l-0.08,2.53l0.37,0.41l9.49,0.88l1.72,1.26l1.92,4.9l2.24,8.41l0.24,5.92l-4.39,10.97l-3.03,4.98l-1.39,3.6l-0.84,3.33l-1.5,3.55l-3.59,5.96l-1.25,3.58l-2.63,2.58l-2.92,4.48l-0.64,2.81l1.97,3.03l6.03,7.76l1.09,2.36l1.29,4.63l5.97,5.01l4.58,13.86l1.8,2.73l2.61,5.21l2.05,7.02l3.68,3.65l-0.05,2.36l2.55,5.98l0.73,0.94l-2.81,1.08l-6.28,1.04l-1.88,0.91l-2.26,1.76l-1.32,1.58l-4.01,2.47l-0.21,0.48l1.2,3.73l1.81,3.12l2.33,2.87l1.62,2.76l0.33,1.72l-1.65,2.17l-4.42,2.97l-1.91,2.05l-0.51,4.21l-0.5,1.33l-1.19,1.13l-4.4,2.32l-1.89,1.62l-0.22,2.45l-0.81,3.01l0.39,2.14l-0.74,2.64l-1.69,3.33l-0.71,4.09l1.03,4.54l2.02,2.21l3.6,3.11l-0.43,5.63l-1.23,5.21l-0.75,10.67l0.33,3.14l2.03,2.62l6.16,3.89l1.11,1.6l-1.29,4.38l-0.4,5.6l0.47,3.06l0.81,2.22l-0.96,-0.18l-2.99,2.03l-5.64,0.3l-4.84,2.8l-5.31,6.6l-6.68,5.67l-4.77,4.93l-3.66,4.96l-4.84,7.93l-5.34,-0.64l-3.08,-1.58Z", "name": "Kairouan"}, "tn-an": {"path": "M531.89,193.29l1.75,-1.16l0.35,-2.34l1.74,-0.19l1.57,-0.95l2.23,-2.64l0.72,-2.24l0.23,-1.95l1.2,-1.48l0.35,-1.39l-0.05,-1.96l-1.4,-2.41l1.88,-0.84l1.78,-1.5l0.91,-1.28l0.0,-0.46l-1.5,-2.16l3.2,-8.28l0.31,-3.67l2.84,-1.97l3.52,-3.07l3.94,-7.14l2.12,-4.94l-0.13,-6.28l0.27,-2.69l-1.75,-4.05l0.68,-1.33l2.24,0.59l1.78,-1.55l2.44,-2.8l5.14,-2.46l2.35,0.24l2.08,0.7l3.36,-0.04l0.87,0.73l3.19,1.16l0.74,0.62l2.49,-0.08l0.18,0.83l2.74,2.56l4.64,-0.15l-0.48,0.97l-0.97,-0.15l-0.58,0.48l-0.31,0.69l0.46,0.48l0.52,-0.14l-2.46,2.13l-2.83,3.7l-0.43,1.79l-0.68,0.52l0.37,0.48l-0.12,1.0l-1.17,0.99l-0.37,0.77l-0.31,1.08l0.12,1.08l0.74,1.06l-0.25,1.02l0.72,1.19l0.14,1.36l0.61,0.39l0.18,1.31l0.8,0.52l0.74,1.62l-0.06,0.48l0.78,0.73l0.88,3.49l-0.55,1.48l2.09,4.23l3.69,5.08l2.81,2.4l0.01,0.64l1.42,2.23l2.27,2.29l0.64,1.24l2.19,1.07l3.08,3.07l0.21,2.32l1.42,1.44l0.0,1.06l-1.38,1.04l-1.71,4.28l0.96,2.24l1.44,1.13l-1.08,1.52l-7.06,-0.66l-2.77,0.14l-0.44,-0.3l-0.05,-2.15l-0.41,-0.43l-0.82,-0.03l-2.78,1.9l-1.35,1.84l-0.02,1.7l-4.38,-0.25l-3.04,0.53l-0.83,0.91l-0.65,0.07l-1.15,-0.13l-3.75,-2.77l-1.8,-0.67l-3.82,0.61l-1.29,1.14l-1.52,3.61l-1.5,1.91l-2.93,2.63l-1.67,-0.76l-3.54,-3.22l-2.43,-4.25l-1.98,-5.16l-1.67,-3.63l-0.38,-0.23l-1.01,0.26l-3.61,3.44l-1.0,0.51l-2.31,0.18l-1.67,0.87l-1.91,-0.37l-0.78,0.16l-1.2,1.36l0.29,1.87l-0.2,1.2l-2.29,-0.81l-2.14,-0.08l-2.72,-0.69ZM591.95,118.06l0.0,-0.57l0.92,-2.45l0.98,-0.6l-1.42,1.99l0.18,2.99l0.8,2.4l-0.92,-1.76l-0.55,-2.0Z", "name": "Ariana"}, "tn-gb": {"path": "M439.92,1103.68l1.26,-1.88l2.85,-1.8l1.03,-1.87l-0.23,-9.71l3.82,-4.8l4.74,-4.34l-0.07,-0.63l-5.16,-2.85l-2.83,-1.03l-2.25,-3.44l-1.7,-3.93l-2.21,-1.86l-2.78,-0.13l-3.7,0.3l-3.64,0.87l-2.76,-1.81l-0.92,-8.13l-1.97,-2.35l-2.08,-1.69l-1.76,-2.18l-3.77,-0.81l-3.2,0.01l-1.9,1.14l-2.59,-2.36l-4.26,-1.23l-1.16,-1.59l-2.08,-6.74l-0.47,-6.34l-2.6,-5.65l-4.13,-8.34l-3.38,-2.99l-2.75,-5.57l-3.84,-5.7l-1.78,-3.57l-1.35,-7.93l-0.1,-4.75l0.25,-5.57l0.82,-3.55l1.05,-14.03l-0.88,-5.31l0.48,-3.14l1.45,-2.42l2.32,-2.52l3.84,-2.59l2.98,-2.88l3.06,-1.8l4.05,-5.19l1.64,-2.89l-0.9,-2.26l-1.89,-2.36l-2.88,-2.34l-7.77,-8.26l-2.95,-2.4l-2.6,-3.49l5.44,-3.97l4.7,-1.46l4.26,-2.16l6.33,-0.81l19.05,3.68l7.17,-0.66l10.95,-4.18l5.06,-2.43l4.61,-4.14l2.37,-5.04l1.38,-4.09l15.11,-3.58l3.68,1.45l2.82,1.87l3.36,1.03l3.5,10.13l2.26,2.07l3.99,1.86l4.27,3.14l5.65,1.33l3.23,-0.65l2.79,-2.53l2.64,-1.02l7.39,3.47l1.64,2.1l1.05,3.88l1.75,2.81l2.15,1.35l2.5,3.79l3.2,2.03l3.32,0.98l5.0,-0.76l2.09,-1.58l1.45,-1.59l0.75,-1.74l-1.33,-2.29l-0.53,-2.17l1.15,-0.97l2.43,0.67l1.81,1.75l0.79,2.8l2.6,0.92l4.69,3.14l-0.16,1.26l-0.6,0.38l-0.49,1.11l0.68,1.11l1.29,1.1l0.0,1.65l0.37,1.25l-0.12,2.7l-0.49,1.47l0.06,1.79l-0.31,0.8l0.44,1.17l-0.31,0.46l0.65,0.64l-0.46,0.77l0.92,2.07l-0.49,0.98l0.18,2.57l-0.31,0.32l-0.06,1.04l1.11,3.03l0.06,2.91l0.37,0.73l0.61,6.02l0.37,0.58l1.84,7.58l0.38,0.53l-0.14,0.28l0.68,1.17l0.12,1.49l4.86,11.12l3.07,5.93l1.81,1.14l1.26,0.15l-0.86,0.79l0.25,0.81l0.65,0.55l1.08,-0.3l0.56,0.08l-1.43,1.15l-0.31,0.59l2.4,3.54l0.41,0.94l-0.16,0.48l0.52,0.47l1.0,-0.6l-0.42,0.72l1.54,2.81l13.64,15.48l3.53,3.34l11.04,7.76l1.35,1.51l-0.43,0.9l0.58,0.62l0.91,-0.59l2.75,2.22l2.45,3.13l-0.43,1.42l0.49,0.67l0.4,0.4l0.7,-0.36l1.06,0.87l8.63,9.01l4.98,3.18l0.49,0.0l1.17,1.03l3.61,2.07l0.75,0.81l0.87,0.23l0.42,0.58l0.58,-0.3l1.08,1.11l1.01,-0.37l1.57,1.62l0.49,0.0l0.58,-0.59l1.23,0.15l0.83,1.18l1.72,0.44l0.9,-0.22l0.64,1.11l1.11,-0.14l0.42,0.44l0.86,0.0l0.44,-0.68l0.81,0.45l-2.85,2.26l-5.16,2.51l-2.36,3.22l-2.18,4.63l-2.95,3.61l-2.23,3.36l-3.98,6.99l-0.92,4.36l-4.72,6.71l-1.6,3.07l-2.35,3.46l-5.3,5.68l-1.15,4.13l-1.12,2.55l-3.85,3.37l-4.66,0.01l-4.66,-0.85l-4.28,-0.02l-4.1,1.7l-7.32,4.23l-0.38,3.03l-2.05,3.64l-3.35,1.75l-3.5,0.66l-2.29,1.86l0.32,3.21l-0.15,3.69l-4.36,2.78l-3.23,2.69l-3.64,1.57l-5.98,0.98l-2.31,2.6l-2.85,-0.66l-2.76,-1.77l-2.16,-0.11l-2.71,2.88l-2.51,1.75l-3.52,1.02l-4.19,-0.07l-3.11,-1.14l-4.56,1.11l-3.94,0.46l-2.29,-1.18l-6.54,0.74l-6.35,2.57l-3.53,0.37l-4.78,-0.69l-4.72,-1.59l-3.36,-1.76l-2.64,-0.09l-6.92,-6.45l-3.44,-6.89l-5.21,-6.95l-4.03,-12.22l-3.3,-2.88l-3.11,-1.72l-8.1,-5.54l-1.41,-3.37l-5.83,-6.83Z", "name": "Gabes"}, "tn-sf": {"path": "M835.67,770.84l0.43,-1.82l1.5,-0.85l3.26,-0.38l0.46,-0.3l1.64,0.62l-2.53,-0.08l-2.03,0.9l-2.12,2.05l-0.55,0.12l-0.06,-0.26ZM836.23,750.94l-1.01,-1.33l0.27,-0.52l1.22,0.22l0.47,0.75l1.97,1.65l0.54,-0.08l0.68,0.15l0.52,0.22l-1.94,-0.05l-0.41,-0.37l-1.57,0.07l-0.73,-0.71ZM795.73,789.68l-0.52,-0.57l1.35,-0.38l0.4,-0.4l0.68,-0.97l0.49,-1.64l-0.74,-1.84l2.18,-0.52l0.74,-0.52l0.95,-1.07l1.54,-2.84l-0.06,-1.1l2.67,-0.75l1.26,-1.3l-1.35,-1.45l0.18,-0.72l-0.23,-0.42l1.8,0.15l0.83,-0.85l0.0,-0.6l-0.73,-1.77l-0.63,-0.68l-0.18,-1.43l-0.31,-0.35l1.25,-0.3l-0.45,0.65l0.0,0.67l1.04,1.03l0.06,0.61l1.51,1.3l0.58,0.04l0.4,0.55l0.55,0.0l0.8,0.75l0.69,-0.22l1.65,0.22l0.87,-0.45l0.79,0.67l1.17,0.37l0.74,0.0l0.65,-0.55l0.06,-0.75l-0.92,-1.73l0.52,0.04l0.52,-0.55l-0.37,-2.67l1.29,-1.07l0.0,-0.52l-0.89,-1.15l-0.44,0.0l-1.5,-1.31l-0.8,-2.31l2.37,0.75l0.68,-0.82l0.83,-0.22l0.12,0.8l0.52,0.4l0.71,-0.77l-0.06,-0.45l-0.58,-0.55l-0.73,-0.45l-0.16,-0.19l0.83,0.17l1.06,-0.54l1.03,0.31l0.46,-0.47l-0.18,-1.87l-0.86,-1.86l1.07,0.09l0.58,-0.62l-0.12,-1.57l-1.29,-1.19l-0.06,-1.4l0.71,-0.22l0.58,-0.7l-0.37,-0.72l0.89,0.37l0.58,-0.52l-0.25,0.72l1.72,1.18l0.37,1.74l0.74,0.88l0.0,0.76l1.01,1.22l1.23,0.75l0.55,0.0l0.4,-0.4l0.31,-0.9l-0.74,-1.27l-1.17,-0.7l0.17,-0.99l3.18,1.65l1.69,0.22l1.56,1.42l2.35,1.32l-0.35,0.35l-0.52,-0.6l-0.48,0.15l-1.55,-1.5l-0.61,-0.23l-1.85,0.23l-0.48,0.51l-0.37,-0.07l-0.71,1.07l1.27,1.4l-1.27,1.0l-0.06,0.75l0.68,1.5l1.36,1.53l-0.5,0.5l-1.84,-0.03l-0.31,-0.95l-0.89,-0.77l-0.43,0.0l-1.26,1.22l0.0,0.45l0.58,0.63l0.71,0.07l-0.37,1.55l0.18,0.9l4.95,3.93l-0.09,0.71l1.11,1.26l0.31,1.69l-0.19,0.41l-0.82,0.13l-0.65,0.86l-1.5,-0.64l-1.66,0.15l-1.08,1.27l-1.26,0.97l-0.61,0.0l-0.75,0.82l-0.77,0.07l-0.57,-0.52l-0.37,0.0l-0.46,0.6l-0.71,-0.23l-0.58,0.7l0.08,1.44l-0.76,0.78l-6.54,1.12l-2.12,1.3l-1.07,-0.33l-2.53,1.5l-0.54,-0.3l-1.08,0.92l-0.43,0.87l-1.38,0.45l-1.75,1.64l-0.77,0.0l-1.17,0.75l-1.54,1.42l-2.02,0.97l-0.68,0.75l-0.79,0.15l-1.36,1.35l-0.52,-0.04l-0.49,-1.57l0.43,-1.64ZM832.68,763.52l0.84,0.12l-0.18,0.9l0.31,0.51l-1.15,-0.99l0.19,-0.55ZM817.55,757.97l0.28,0.24l0.16,0.0l0.36,0.22l0.0,0.05l-0.45,-0.18l-0.35,-0.34ZM816.07,756.53l0.92,0.26l0.06,0.64l-0.94,-0.69l-0.04,-0.2ZM821.48,754.81l-0.06,-0.06l0.0,-0.0l0.06,0.06l0.0,0.0ZM821.36,754.6l0.0,-0.01l0.06,0.07l-0.06,-0.06ZM761.0,795.39l0.03,-0.1l0.32,0.32l-0.06,0.0l-0.29,-0.22ZM761.52,795.67l1.64,-1.3l1.6,-2.36l2.31,-0.94l1.71,0.79l2.46,0.0l2.1,-0.45l1.52,0.3l0.91,-0.6l1.07,0.23l1.77,1.12l0.8,-0.22l1.2,-1.0l0.4,0.4l0.61,-0.35l3.33,0.5l1.54,-0.3l0.67,-0.52l1.05,1.57l4.91,0.07l1.39,1.23l-0.22,0.58l-3.07,0.67l-4.13,3.36l-1.03,0.0l-1.01,1.45l-4.47,4.23l-1.78,-0.07l-1.19,1.59l0.54,0.94l-4.26,-4.26l-3.85,-1.12l-3.82,-2.32l-2.84,-2.61l-1.85,-0.62ZM543.99,918.65l-0.63,-2.61l-1.97,-1.91l-3.27,-0.77l-1.62,1.67l0.61,2.48l1.27,1.92l-0.56,1.36l-1.33,1.47l-1.79,1.42l-4.8,0.73l-3.01,-0.93l-2.99,-1.91l-2.39,-3.68l-2.15,-1.34l-1.62,-2.57l-1.13,-4.04l-1.89,-2.35l-7.94,-3.59l-2.96,1.16l-2.63,2.44l-3.02,0.61l-5.17,-1.22l-4.24,-3.11l-4.03,-1.89l-2.04,-1.89l-2.59,-7.32l6.88,3.3l4.12,-0.57l1.4,-3.09l-1.07,-2.48l-1.68,-1.84l-1.21,-2.92l-0.49,-2.8l-1.0,-2.62l1.43,-2.29l2.49,-1.82l4.35,-1.99l4.04,-1.28l6.72,0.6l7.91,-3.22l2.65,-3.02l2.8,-4.04l3.34,-5.93l0.64,-1.92l2.54,-3.55l1.61,-3.36l2.51,-1.48l1.85,1.06l4.06,0.57l1.64,-1.71l1.25,-2.02l4.2,-3.84l4.04,-1.55l5.23,-0.7l2.96,-1.38l1.76,-4.16l1.83,-2.2l1.36,-2.94l0.87,-6.74l-0.21,-0.42l-3.51,-1.84l-7.15,-4.59l-5.5,-2.64l-3.76,-4.38l-3.69,-1.99l-1.69,0.09l-6.37,2.34l-3.19,-0.16l-4.37,1.67l-6.04,0.36l-1.9,-4.21l-4.03,-5.76l-0.59,-3.21l2.14,-3.36l2.21,-4.34l1.51,-1.95l10.37,-17.43l1.69,-4.73l2.93,-6.58l6.36,-12.87l3.51,-3.35l-0.2,-2.75l2.81,-4.44l3.25,-3.18l2.64,-3.43l1.71,-4.35l2.47,-2.92l0.08,-3.43l2.31,-4.91l2.58,-8.2l1.26,-5.29l-1.18,-3.07l-2.22,-2.13l0.46,-1.49l4.57,-7.18l3.6,-4.88l4.72,-4.87l6.7,-5.69l5.3,-6.58l4.59,-2.64l5.47,-0.25l3.12,-2.04l5.46,1.59l3.46,2.02l3.81,1.58l11.73,-1.1l5.41,1.17l2.29,2.1l3.41,2.04l2.51,2.54l5.54,3.23l4.18,1.72l3.73,-2.06l4.36,-4.46l6.14,-5.3l4.77,-5.11l8.2,-6.44l4.07,-1.09l2.58,-1.46l0.15,-0.54l-1.61,-3.03l-3.78,-3.92l0.2,-0.93l2.4,-2.1l3.44,-5.15l-0.43,-3.83l2.64,0.25l9.65,4.54l6.25,1.99l4.44,-0.43l8.99,-5.89l3.24,-2.59l3.63,-2.13l1.77,0.41l2.2,1.19l1.7,1.76l0.98,2.34l-1.26,11.52l2.17,3.71l3.36,3.45l1.83,3.28l0.8,2.36l0.49,3.0l1.31,1.38l0.5,0.05l1.96,-1.3l6.08,-2.74l1.5,-2.5l0.81,-2.5l1.24,-1.78l1.75,0.49l1.72,1.66l1.28,2.11l2.04,5.74l-0.59,4.05l0.9,2.96l1.22,6.43l2.13,0.74l3.44,-1.31l4.48,2.14l11.7,0.63l-0.32,3.54l0.55,2.33l0.86,1.56l-0.55,0.54l0.12,1.67l-1.04,3.14l0.06,0.98l0.49,0.81l-0.0,1.8l-0.98,0.84l-0.12,0.84l-0.86,1.11l-0.26,1.09l-1.46,2.06l-0.07,1.93l-2.23,0.97l-2.55,2.24l-0.71,-0.36l-0.4,0.67l-1.01,-0.15l-0.87,0.82l-0.6,0.08l-1.84,1.2l-2.8,2.93l-2.1,1.59l-1.77,2.11l-0.18,0.69l-0.74,0.44l0.12,0.61l-0.68,1.11l0.21,0.36l-0.76,3.39l0.49,5.08l-0.49,3.24l0.8,3.36l-0.55,1.21l-0.18,2.4l0.22,0.64l-1.51,2.73l-2.34,3.02l-1.84,1.63l0.0,0.45l-1.97,2.02l-0.86,1.95l0.18,0.91l-0.25,0.97l-1.54,1.34l-1.29,1.94l-0.59,-0.55l-0.52,0.55l0.29,1.84l-0.23,1.08l1.62,2.61l-0.14,1.06l-1.57,0.34l-0.7,0.52l-2.92,0.22l-2.13,1.42l-2.05,0.9l-1.57,1.3l-1.63,2.97l-2.08,0.15l-0.71,0.7l-0.37,0.99l-0.83,0.26l-1.11,1.35l-2.21,0.67l-0.95,1.22l-0.12,0.65l-1.47,0.92l-0.8,1.42l0.25,1.42l1.99,1.47l-0.14,0.39l-1.27,-1.16l-1.38,1.24l-0.06,0.37l0.4,0.4l0.85,-0.46l1.07,1.16l-0.39,0.0l-0.52,0.77l-0.58,-0.85l-0.92,-0.15l-0.46,0.47l-0.12,0.37l0.68,0.44l0.31,1.56l-0.86,-0.06l-0.37,-1.56l-0.8,-0.47l0.0,-0.8l-0.83,-1.15l-1.32,0.7l0.0,0.42l-1.11,1.3l-0.37,1.19l-0.68,0.91l0.0,0.52l0.74,0.47l-0.31,0.87l1.33,0.87l-0.82,0.15l-0.67,-0.3l-0.65,0.7l0.12,2.39l0.37,0.4l0.0,1.17l0.43,0.52l-0.37,1.57l0.22,1.23l-2.74,3.33l-0.86,1.49l-1.57,-1.44l-0.54,0.0l-0.69,-0.67l-1.41,0.22l-2.06,1.15l-0.18,0.52l0.52,0.7l-0.67,0.76l-0.31,-0.07l-1.0,0.75l-0.6,-0.3l-1.05,0.07l-0.98,0.6l-0.52,0.9l-1.7,1.41l-0.55,0.2l-1.59,-0.58l-1.08,1.12l-1.48,0.92l-0.8,1.35l0.47,1.23l-0.16,0.35l-1.57,0.63l-0.95,0.92l-0.43,0.97l0.12,0.91l-2.4,3.66l-1.1,1.0l-0.59,-0.37l-1.2,1.22l-0.0,1.13l-0.74,0.81l-0.18,2.33l-0.37,0.73l0.06,1.04l0.37,0.5l-0.31,0.92l0.0,2.39l0.31,0.31l-1.75,2.42l-2.41,1.42l-6.58,2.91l-0.6,-0.97l-1.11,-0.07l-3.35,1.37l0.06,-0.53l-0.46,-0.47l-0.86,-0.15l-1.12,0.97l-3.0,-0.37l-1.2,0.77l-0.37,0.52l0.12,0.42l-0.52,-0.15l-1.3,0.82l-0.85,-0.37l-1.97,0.45l-0.43,0.45l-1.1,-0.07l-0.58,0.97l-1.63,0.37l-1.44,1.57l-2.24,1.42l-2.37,2.56l0.0,0.35l-0.98,0.7l-0.98,1.87l-3.44,3.8l-2.33,3.89l-2.15,2.15l-1.29,2.77l-1.17,0.96l-0.89,1.46l-2.12,0.37l-0.49,-0.22l-0.06,-1.24l-0.4,-0.4l-1.38,-0.45l-0.52,-0.52l-0.74,0.0l-0.58,0.47l-0.74,1.19l0.36,0.43l-1.16,0.91l0.49,0.88l-0.37,0.91l1.01,0.62l2.0,-1.45l-0.18,2.26l-0.47,0.85l-5.87,2.68l-0.87,-0.6l-1.32,0.03l-0.83,-1.07l-3.5,-1.56l-0.8,1.19l-0.55,-0.07l-0.52,0.55l0.52,0.57l-0.91,-0.22l-0.52,0.55l0.36,0.47l-0.3,0.44l0.58,0.61l0.51,0.0l-0.17,0.8l-0.18,0.36l-0.58,-0.55l-0.61,0.08l-0.95,1.0l-0.49,2.16l-1.12,1.61l-2.54,0.22l-2.22,0.89l-1.28,-0.22l-1.63,1.37l-1.22,1.68l-2.37,1.12l-0.65,0.92l-1.63,-1.97l-1.41,-0.74l-0.52,0.1l0.0,-0.52l-0.4,-0.4l-1.04,0.22l-0.58,0.62l0.18,0.91l-1.23,1.48l0.12,1.35l-1.35,2.87l-1.38,0.52l-0.4,0.46l-1.01,-0.54l-0.92,0.0l-0.77,0.55l0.18,1.97l-0.49,3.46l-3.23,-3.97l-2.07,0.28l-1.99,1.13l-2.12,2.56l0.06,0.39l-3.13,3.26l-0.74,1.26l-0.06,0.52l0.31,0.34l-0.71,-0.07l-1.44,1.96l-2.77,5.87l-2.4,7.3l-2.21,2.81l-1.66,3.51l-0.58,-0.41l-0.46,0.47l-0.12,5.47l-0.55,0.55l-0.31,2.17l-0.9,1.75l-0.54,-0.46l-1.54,-0.15l0.09,-2.02l-5.11,-3.43l-2.52,-0.9ZM711.21,783.49l0.89,0.3l0.06,0.96l-0.47,0.48l0.04,-0.95l-0.52,-0.8ZM612.54,873.73l0.31,-2.37l0.64,-0.15l0.99,-1.19l0.91,-0.45l0.34,1.39l0.92,0.82l0.18,0.73l0.25,1.44l-0.31,1.19l-0.57,0.26l-1.24,-0.37l-0.97,0.37l-1.09,-0.56l-0.37,-1.11ZM610.94,868.65l0.12,-0.52l0.18,0.01l0.12,0.4l-0.43,0.11Z", "name": "Sfax"}, "tn-sl": {"path": "M308.76,304.47l2.39,-1.55l14.04,-1.63l0.7,1.21l2.46,2.39l2.06,0.33l3.09,-0.25l1.87,0.27l1.8,1.33l1.65,4.35l3.75,2.61l0.96,1.6l-0.71,3.59l0.55,1.84l0.37,0.28l2.13,0.04l3.17,3.09l2.43,0.98l8.0,-2.63l5.67,-4.19l1.07,-0.48l5.65,0.76l4.8,0.04l3.51,0.44l2.66,0.74l2.34,1.04l2.25,3.14l2.55,2.36l2.74,1.42l3.62,-1.06l4.88,-2.66l2.46,-2.64l0.54,-2.87l-0.82,-2.99l0.09,-4.08l0.68,-3.01l2.27,-2.56l7.92,-2.86l6.49,-1.07l4.06,-0.26l2.8,0.37l4.39,-0.22l3.42,0.83l2.16,-1.1l3.95,-1.25l1.93,1.09l4.46,3.94l2.24,3.39l2.39,2.45l5.01,0.96l4.26,-0.63l3.25,0.13l2.58,1.75l3.31,-1.1l0.27,-0.39l-0.06,-1.85l0.86,-1.82l1.03,-1.2l9.27,1.1l3.97,-0.68l1.2,-1.85l0.63,1.97l0.35,3.63l-0.16,2.94l-1.86,13.24l-1.22,2.82l-0.51,2.39l-2.32,3.82l-1.33,3.37l-1.57,1.54l-4.7,2.82l-5.2,5.13l-2.41,0.81l-4.01,0.72l-5.39,-0.77l-2.28,0.99l-0.16,0.6l4.0,5.92l4.75,1.5l0.45,1.54l-0.04,4.84l0.91,2.83l0.43,0.27l1.72,-0.22l2.12,-1.44l1.55,-0.44l5.78,2.98l1.84,4.15l2.05,3.55l10.01,3.17l1.84,1.53l0.45,2.65l-1.06,4.01l-1.16,2.28l-0.76,2.87l-2.31,5.03l-1.46,2.11l-0.78,2.04l-0.87,3.22l0.34,0.51l-2.23,1.75l-3.96,3.97l-3.95,3.16l-8.13,8.55l-4.26,0.87l-4.82,7.01l-5.54,6.43l-12.27,10.46l-7.48,4.02l-0.23,0.37l0.07,2.59l5.69,9.32l-0.62,3.37l-1.32,2.75l1.26,3.46l-1.88,2.72l-4.53,5.3l0.26,3.36l1.51,3.1l2.29,2.77l3.7,3.46l4.37,0.95l-3.35,3.17l-3.56,0.61l-5.09,0.13l-3.28,1.47l-2.53,2.23l-4.4,1.79l-5.25,1.65l-3.19,2.74l-2.99,-1.55l-6.24,0.45l-3.36,-1.16l-9.52,-5.11l-3.09,0.6l-3.47,4.78l0.52,4.07l1.32,2.66l2.03,2.83l6.29,6.46l3.55,2.47l3.08,1.66l2.72,3.91l3.0,2.96l3.26,0.98l5.11,9.66l3.67,3.91l1.27,10.12l1.56,4.59l1.27,1.85l-3.08,1.51l-8.53,-1.75l-4.51,1.77l-8.61,0.88l-1.01,0.36l-2.23,-0.48l0.78,-2.02l-0.55,-2.35l-1.91,-4.8l-3.11,-3.51l-2.25,-1.42l-2.96,-0.49l-0.28,-1.64l-1.0,-2.23l-0.47,-0.22l-4.38,1.39l-2.53,-0.04l-2.43,-0.45l-3.36,-1.49l-3.23,-2.36l-0.88,-2.61l0.85,-3.43l0.12,-2.48l-3.02,-2.37l-2.39,-2.75l-2.89,-1.11l-2.35,1.05l-3.74,-0.05l-2.63,-0.7l-2.68,0.11l-4.8,2.07l-2.29,-1.37l-1.73,-2.81l-1.04,-2.42l-1.84,-2.54l-0.45,-0.15l-2.63,0.86l-2.63,1.31l-3.03,-0.19l-2.4,-1.62l-0.53,-2.57l-1.16,-3.12l-1.6,-2.93l-5.34,-3.12l1.73,-0.84l4.03,-1.17l2.84,-2.12l4.42,2.67l2.42,0.37l0.46,-0.36l0.28,-2.92l-0.65,-3.17l-0.05,-3.16l-3.6,-5.88l-1.3,-3.22l4.17,-6.25l0.69,-4.31l-0.5,-5.41l-1.22,-4.51l2.84,-2.55l0.78,-2.46l-0.33,-0.51l-2.66,-0.38l1.48,-5.4l3.32,-3.49l2.6,-1.46l3.53,-0.56l3.45,-2.39l1.11,-3.36l0.09,-3.13l-0.63,-6.02l0.92,-2.54l6.35,-6.08l3.85,-1.93l2.62,-2.56l0.37,-2.03l-1.33,-5.67l-0.78,-6.41l0.12,-4.48l0.71,-5.86l-0.32,-0.44l-7.77,-2.57l-1.15,-3.39l-0.44,-0.27l-4.67,0.52l-1.75,-3.8l-1.4,-1.59l-2.58,-0.72l-2.94,-0.06l-2.22,-8.76l-1.15,-2.75l3.15,-4.9l0.18,-2.76l-1.05,-3.38l0.56,-3.45l-2.04,-2.65l-6.11,-2.4l-2.06,-1.17l-1.4,-2.21l-1.01,-3.05l-1.13,-2.21l-4.27,-6.83l-1.64,-3.41l-0.04,-2.65l5.7,-6.14l0.98,-2.78l-0.5,-2.46l-1.75,-3.76l-0.84,-3.4l-5.58,-6.36l-2.18,-4.23l-1.77,-5.63Z", "name": "Siliana"}, "tn-ss": {"path": "M579.35,475.76l0.54,-2.45l2.85,-4.37l2.71,-2.7l1.23,-3.56l3.61,-6.0l1.52,-3.6l0.84,-3.35l1.36,-3.54l3.02,-4.96l2.46,-5.62l2.01,-5.65l-0.26,-6.13l-2.25,-8.48l-1.98,-5.08l-2.26,-1.65l-9.21,-0.85l0.03,-1.91l2.6,-5.38l0.18,-2.64l-0.61,-5.26l0.44,-2.38l1.14,-1.71l2.4,-2.42l1.84,-1.05l4.41,-0.9l1.66,-1.34l2.48,-7.38l1.15,-5.16l-0.04,-2.47l-0.95,-2.45l-0.3,-2.11l1.39,-2.02l4.0,-0.91l2.39,0.34l5.33,1.46l2.69,-0.83l5.32,-0.52l2.68,-2.0l1.95,-2.86l-0.03,-2.28l-0.97,-2.04l-1.47,-1.06l-2.64,-0.37l-0.44,-0.86l0.76,-1.0l1.65,-0.66l2.15,-0.17l1.21,-1.68l-0.01,-2.7l-0.68,-2.66l0.45,-2.64l-0.66,-2.79l-2.89,-5.16l-0.09,-3.34l1.18,-3.51l1.81,0.1l2.93,-0.92l5.25,-1.08l3.72,0.19l1.6,1.04l5.49,6.13l1.95,0.2l2.27,-1.86l0.63,-1.94l0.23,-2.24l1.05,-1.82l1.47,-1.3l1.41,0.38l9.71,11.45l-2.4,3.82l-1.9,3.89l-4.18,10.68l-3.81,12.73l-2.15,10.44l-0.86,7.23l-0.31,11.27l0.49,8.06l1.41,9.05l1.9,7.76l2.27,4.33l1.32,1.31l0.39,-0.27l1.49,0.12l0.86,0.53l0.71,0.99l0.56,-0.06l-0.04,2.47l0.37,2.28l0.48,0.4l-0.24,0.89l0.98,1.69l0.61,1.87l0.49,3.81l2.7,4.6l0.31,1.32l5.1,7.06l2.15,2.28l0.12,0.68l0.86,0.87l1.66,3.31l3.09,3.38l-0.32,0.33l0.06,1.21l0.74,3.11l3.07,3.7l0.8,2.67l1.23,2.12l3.38,3.02l0.46,1.02l1.24,0.75l-0.53,1.2l0.0,2.12l1.32,1.84l1.79,1.21l-2.65,2.95l0.55,3.04l-0.59,3.66l-1.29,2.2l-4.32,0.03l-0.39,0.49l1.2,3.46l-1.22,2.44l-0.66,5.74l0.13,4.84l1.66,3.31l-0.13,2.0l-5.45,5.74l-1.25,2.97l-0.3,2.85l-1.2,2.18l-2.5,1.29l-6.26,0.37l-3.34,1.03l-2.08,2.3l-0.29,3.35l1.29,2.62l1.46,2.06l-0.55,2.84l-1.71,2.19l-2.95,2.19l-2.64,1.59l-2.98,1.28l-1.21,1.89l0.11,2.3l0.88,2.9l1.28,2.36l1.92,1.86l2.15,0.49l2.04,1.41l2.5,0.4l0.42,-0.22l0.97,-1.98l0.49,-2.25l0.76,-1.64l1.41,-0.85l4.74,-1.02l5.06,3.64l0.6,4.39l-0.79,3.05l-3.48,2.87l-3.34,1.87l-1.3,1.88l-0.43,2.3l-2.8,5.18l-2.77,-0.19l-5.08,-2.05l-4.0,-0.98l-2.03,-1.9l-2.68,-4.23l-2.21,-1.17l-0.95,-1.3l-1.62,-2.82l-0.82,-3.54l-0.41,-0.31l-2.8,0.16l-1.68,-0.97l-1.99,-2.32l-1.53,-0.92l-1.97,0.7l-2.35,-0.28l-2.02,-0.98l-1.71,0.86l-1.11,1.44l-0.0,1.96l-1.18,0.04l-1.22,-1.76l-0.53,-1.96l-1.16,-1.39l-1.9,-1.21l-1.22,-1.27l-1.25,-2.51l-2.19,-1.69l-1.85,-2.17l-1.48,-2.62l-0.94,-3.92l0.59,-2.18l4.01,-3.99l-0.26,-0.66l-1.95,-0.14l-0.79,-1.0l-2.5,-5.86l-0.02,-2.55l-3.66,-3.58l-2.04,-6.97l-2.66,-5.31l-1.76,-2.65l-4.6,-13.92l-6.07,-5.15l-1.13,-4.32l-1.18,-2.58l-7.86,-10.36Z", "name": "Sousse"}, "tn-je": {"path": "M138.24,295.01l0.48,-0.75l1.18,0.23l1.36,-0.63l1.21,-1.05l0.79,-2.37l0.82,-0.2l3.26,1.72l3.13,-1.71l2.69,-0.46l0.58,-0.61l0.07,-0.71l1.42,-0.12l1.6,-1.27l0.52,0.06l0.75,-0.67l0.56,-0.03l0.83,-1.56l1.51,-0.9l1.79,0.54l2.24,-0.79l1.11,-0.21l1.06,0.22l1.46,-0.59l2.31,-2.24l1.07,-0.05l0.98,-0.5l1.0,-1.38l1.04,-0.74l0.22,-0.88l0.52,-0.48l-0.19,-0.86l0.85,-2.15l1.47,-0.61l1.0,0.02l1.52,-1.12l1.14,-0.14l0.53,-0.64l1.43,-0.61l0.79,-1.39l0.69,-0.52l2.96,-0.82l0.57,-0.52l1.47,1.01l1.86,-1.25l0.06,-1.25l1.01,-1.51l0.09,-1.16l0.88,-1.19l1.19,-0.03l1.27,-0.76l0.46,-0.65l2.94,0.87l3.88,-0.27l0.31,-0.56l-0.31,-0.78l0.84,-1.76l0.02,-1.22l0.94,-1.96l1.06,-4.31l-0.31,-0.73l-1.08,-0.59l1.29,-0.25l2.31,-1.33l1.36,-2.49l1.48,-1.25l0.5,-1.78l-0.33,-0.69l0.86,-1.19l0.0,-0.98l-0.23,-0.44l-1.25,-0.64l-0.26,-1.74l-0.85,-2.38l-1.47,-1.33l-0.62,-1.17l-0.33,-2.73l1.16,-1.82l-0.22,-0.55l-2.43,-2.08l-2.85,0.8l-1.51,-0.03l-0.36,-0.47l-0.74,-0.19l-0.73,-2.12l2.02,-0.38l4.24,-2.45l3.42,-0.73l1.4,-1.66l0.79,-0.33l3.78,0.26l5.1,-0.64l1.72,1.8l0.6,-0.29l1.79,0.46l1.94,-0.71l0.4,-0.42l1.66,1.12l1.55,-0.43l1.12,0.55l3.3,-4.6l1.63,-1.69l1.21,-0.78l1.78,1.82l0.98,0.17l1.68,-1.17l0.94,-1.74l1.55,0.09l4.6,-2.56l1.42,-0.46l2.91,-2.07l0.61,-1.82l1.11,-1.51l0.63,-2.1l-0.16,-0.64l-2.07,-1.12l-2.02,-2.58l-2.18,0.73l-2.16,-1.23l-0.98,0.1l-1.63,-0.72l-1.12,0.28l0.83,-1.8l-0.25,-1.56l0.57,-1.64l-0.35,-3.54l0.47,-1.56l-0.18,-1.22l0.68,-1.91l0.46,-1.08l3.86,-1.7l0.19,-0.51l-2.22,-3.87l-0.7,-2.94l2.59,-1.77l2.2,-0.85l1.23,-0.91l1.23,-0.09l0.51,-1.11l0.78,0.26l0.89,-0.69l1.03,-0.23l1.7,0.54l2.1,-1.77l-0.05,0.6l1.01,0.71l2.6,-1.08l2.14,0.23l1.06,-1.23l2.01,2.38l1.35,1.08l0.41,-0.11l1.67,1.65l3.5,-0.08l1.84,-1.21l3.01,-1.09l0.58,-0.72l0.71,0.18l3.55,-3.0l2.17,-0.38l5.16,-4.0l2.72,-2.54l0.84,-0.39l0.38,-0.69l6.3,-5.82l6.61,4.11l3.1,3.01l-0.24,4.49l-3.07,4.56l-0.76,1.87l-0.04,2.56l0.85,2.94l1.52,2.58l2.9,1.94l2.18,0.66l4.63,2.85l1.6,1.4l-1.02,5.9l-3.52,5.76l-4.17,3.5l-4.69,2.72l-0.55,1.92l-0.24,5.72l-0.92,2.49l-0.17,2.55l1.08,1.93l14.88,1.07l2.87,1.04l2.35,1.54l1.38,2.25l4.04,9.41l-1.62,2.7l-1.96,5.28l-0.93,3.64l0.22,3.45l1.24,3.37l1.52,2.94l7.89,9.77l1.35,2.86l0.18,3.08l-0.28,6.77l-0.42,2.63l-4.55,7.41l-0.84,2.66l-0.54,6.11l0.21,5.09l-7.58,2.12l-17.83,1.91l-2.69,1.76l-5.36,6.28l-2.74,1.49l-2.37,0.7l-5.55,-0.05l-3.75,1.52l-2.91,-0.06l-9.72,2.09l-3.61,0.25l-3.78,1.13l-3.79,0.33l-2.52,-0.39l-3.64,-1.85l-4.75,-1.48l-3.66,-0.72l-9.55,4.51l-2.99,1.1l-2.87,0.08l-5.36,-0.89l-2.86,0.12l-2.45,1.47l-4.84,4.68l-4.4,0.59l-3.54,0.97l-7.46,5.78l-12.23,-1.42l1.23,-1.92l-0.52,-2.27l0.88,-3.11l-0.86,-0.95l0.06,-0.36l2.84,-3.38l-0.44,-2.97l-0.88,-0.59l-4.25,-0.49l-2.34,-0.81l-1.21,-0.99l-0.62,-1.32l-2.29,-2.5l-0.98,-0.08l-2.3,2.94l-3.09,0.8l-0.13,-0.77l-0.69,-0.43l-0.56,0.15l-0.83,1.59l-0.33,-0.88l-1.23,-0.21l0.46,-0.96l-0.76,-1.15l-2.66,-0.62l-1.54,0.17l-1.3,-0.82l-5.05,1.9l-0.8,-0.88l-2.02,-1.15l-1.04,-0.13l-1.57,0.31l-2.89,-0.54l-3.03,0.11l-1.48,-0.84l-1.38,-2.32l-0.85,-0.61l-4.2,0.2l-1.08,-0.64l-0.47,-0.63l0.03,-0.71l-0.6,-1.5l-0.8,-1.19l0.27,-2.61l-0.2,-0.96l-1.71,-1.05ZM271.85,165.87l-0.18,-0.26l0.24,-0.25l0.06,0.64l-0.12,-0.14Z", "name": "Jendouba"}, "tn-sz": {"path": "M345.25,702.43l4.4,0.08l3.78,-0.59l3.6,-1.99l2.83,-2.26l3.18,-1.37l7.8,-0.64l4.55,-1.03l5.0,-0.36l3.86,-1.6l2.3,-4.53l0.46,-3.51l-0.19,-0.39l-2.31,-1.42l-1.75,-1.94l-1.5,-2.56l0.44,-2.57l1.26,-3.23l-2.04,-3.6l-1.3,-4.78l0.77,-1.71l1.67,-2.41l-0.88,-3.22l0.83,-2.28l-0.06,-2.63l-1.17,-2.65l0.44,-1.57l4.86,-2.57l-0.01,-2.25l-5.33,-4.06l-3.4,-1.39l-2.16,-1.97l-4.06,-2.35l-1.47,-2.06l-1.66,-3.62l-6.17,-3.49l-2.65,-0.34l-1.41,-1.67l-0.24,-2.36l2.05,-6.4l1.64,-3.07l7.69,-10.73l4.84,-8.12l6.65,-8.53l2.84,-2.11l3.31,-1.36l2.82,-1.83l1.53,-2.38l6.68,-4.93l-0.04,-0.69l9.05,-1.04l4.33,-1.76l8.55,1.75l3.84,-1.79l8.94,4.97l0.86,8.88l1.67,5.85l0.02,1.74l-2.5,3.57l-2.79,2.68l-4.01,4.76l0.45,3.73l1.88,3.11l2.93,2.39l10.81,6.01l3.96,6.91l0.64,2.36l1.6,2.96l0.6,0.13l2.94,-2.27l2.62,-1.24l3.18,-2.96l2.58,0.79l3.7,2.85l2.89,4.0l2.32,4.02l2.54,3.12l3.31,3.37l1.72,2.88l-0.85,3.74l0.21,0.44l4.79,2.48l5.29,3.46l4.8,1.18l4.88,-0.85l4.43,1.74l5.71,0.71l4.92,-0.3l2.08,0.71l3.34,2.56l10.39,5.78l4.71,-1.87l2.98,-1.76l3.53,-0.93l3.95,-3.08l1.11,0.41l-0.11,5.18l0.39,4.66l1.51,5.5l0.99,5.88l0.6,10.08l-0.08,3.35l0.22,0.36l3.5,1.77l5.27,0.63l-0.02,0.82l2.25,2.1l1.08,2.63l-1.23,5.14l-2.58,8.17l-2.31,4.89l-0.02,3.29l-2.48,2.97l-1.66,4.26l-2.55,3.32l-3.33,3.27l-2.91,4.6l0.25,2.62l-3.49,3.37l-6.4,12.95l-2.94,6.6l-1.67,4.66l-10.35,17.39l-1.52,1.96l-4.47,8.08l0.7,3.61l4.07,5.82l1.25,3.04l1.11,1.54l6.35,-0.37l4.46,-1.68l3.19,0.16l6.37,-2.35l1.2,-0.1l3.41,1.81l3.9,4.49l5.53,2.65l7.12,4.57l3.31,1.74l-0.79,6.32l-1.31,2.83l-1.85,2.23l-1.52,3.86l-2.76,1.29l-5.1,0.67l-4.35,1.67l-4.36,3.99l-1.29,2.09l-1.41,1.46l-3.42,-0.63l-1.86,-1.1l-3.23,1.66l-1.77,3.55l-2.56,3.57l-0.67,1.98l-3.31,5.88l-2.74,3.94l-2.41,2.82l-7.73,3.15l-6.68,-0.61l-4.18,1.33l-4.41,2.01l-2.66,1.94l-1.71,2.99l1.06,2.77l0.49,2.81l1.25,3.03l1.68,1.84l0.97,2.24l-1.21,2.39l-3.27,0.35l-7.4,-3.49l-0.8,-2.04l-3.51,-1.08l-2.78,-1.86l-3.84,-1.51l-7.19,1.81l-5.07,0.83l-2.95,0.93l-1.86,-1.43l-0.7,-1.86l2.32,-6.24l1.02,-7.55l0.99,-4.57l1.85,-3.12l1.06,-3.49l-1.61,-2.93l-3.42,-1.35l-3.44,-1.96l-6.29,-1.32l-4.71,-1.52l-2.72,-1.37l-4.43,-7.53l-4.5,-4.28l-10.33,-6.07l-10.11,-1.29l-5.35,0.33l-0.99,-1.35l0.13,-3.06l-1.36,-2.27l-2.67,-2.03l-3.36,-2.41l-2.48,-0.69l-2.23,0.86l-1.8,-0.04l-2.01,-1.5l-1.08,-1.75l-0.33,-2.06l0.23,-7.34l0.69,-2.59l-0.63,-2.34l-1.6,-2.37l-0.8,-2.86l2.36,-3.21l2.22,-1.67l2.35,-2.93l0.09,-3.69l-1.81,-2.31l-0.65,0.05l-1.67,2.76l-3.6,3.09l-2.49,-0.24l-1.12,-0.62l-3.96,-6.78l-0.37,-0.21l-4.99,0.42l-3.06,-2.21l-3.99,-0.49l-3.0,-1.85l-5.18,1.12l-5.0,-0.75l-7.97,-4.11l-5.56,3.08l-14.54,4.06l-2.13,-0.98l-3.3,-2.63l-3.25,-0.79l-2.8,-1.14l-2.27,-2.17l-2.11,-1.22l-8.6,-1.54l-5.51,-2.77l-2.81,-0.91l-3.81,-3.13l2.51,-0.82l4.31,-2.43l6.19,-5.06l3.29,-2.0l9.07,-2.91l5.73,-3.18l8.55,-3.13l6.23,-5.72l8.77,-4.15l0.32,-3.58l-1.84,-1.71l-3.18,-1.37l-1.0,-1.34l0.43,-2.63l1.22,-2.88l0.61,-3.0l1.06,-1.61l7.57,-8.31l1.18,-3.47l1.6,-2.07Z", "name": "Sidi Bou Zid"}, "tn-nb": {"path": "M620.65,291.8l3.67,-1.35l1.6,-1.53l0.05,-0.51l-1.05,-1.26l-4.58,-0.1l-0.81,-0.57l0.27,-1.54l2.49,-5.15l0.18,-2.08l3.52,-7.19l0.65,-2.51l-0.23,-2.28l-1.88,-1.68l-4.78,-0.54l-0.34,-1.05l5.2,-7.03l1.97,-5.7l1.11,-6.94l2.83,-1.8l1.47,-6.63l2.16,0.46l3.44,0.15l6.45,-2.22l1.6,-0.83l2.7,-0.47l0.69,-0.77l1.71,-0.69l0.65,-1.15l0.48,0.0l3.73,3.83l0.8,0.15l2.52,-1.23l1.2,-1.7l0.0,-0.54l-0.58,-0.55l-3.07,-0.46l-0.4,0.4l0.31,0.6l-0.49,0.29l-1.08,-0.52l-1.03,0.08l-1.13,-1.02l0.1,-0.36l1.44,-0.12l1.98,-1.0l1.4,0.0l1.06,-0.69l1.52,-0.31l2.64,-1.23l2.4,-1.38l0.95,-1.09l0.43,-1.44l0.71,-0.15l0.95,-0.86l0.98,-2.46l-0.18,-1.09l0.31,-0.91l0.0,-1.93l1.54,-1.14l0.49,-1.38l0.12,-2.85l0.74,-1.14l-0.12,-0.78l0.49,-0.68l-0.37,-0.69l0.37,-0.39l0.37,-1.76l0.12,-1.23l-0.3,-0.64l0.54,-0.67l-0.26,-0.44l0.55,-0.69l0.54,0.15l1.32,-1.63l0.31,-1.23l-0.34,-0.49l0.91,-2.03l2.29,-0.15l1.08,-0.86l0.35,-0.67l2.11,-1.17l0.06,-0.84l-0.74,-0.75l0.06,-0.31l1.67,0.15l1.24,1.38l0.8,0.0l1.04,-0.6l1.35,-0.02l0.81,-0.67l1.44,-0.18l0.77,0.31l1.58,-1.19l1.56,1.11l0.52,-0.4l0.58,1.17l1.49,-0.34l0.72,0.18l0.82,-0.62l0.72,0.62l1.29,0.0l0.51,-0.31l0.84,0.23l2.03,-0.69l6.47,-3.38l0.6,0.0l2.29,-1.77l1.7,-0.69l4.27,-5.26l2.38,-2.43l6.68,-4.0l2.72,-2.54l0.48,0.15l0.46,-0.62l1.38,-0.38l0.46,-0.63l-0.75,-0.68l0.97,-0.46l2.54,-2.62l0.81,-0.49l0.58,0.41l0.77,-1.08l0.89,-0.08l0.46,-0.48l-0.12,-1.99l0.71,0.23l2.18,-1.86l-0.04,-0.58l0.28,-0.25l0.35,-0.23l0.6,0.38l0.83,-0.86l-0.25,-1.28l0.71,-0.09l1.26,-1.55l-0.51,-0.75l1.4,0.92l1.11,0.23l0.4,-0.4l0.61,-1.77l0.06,-1.62l-1.26,-1.63l-0.41,-0.08l-0.75,-0.92l-0.52,0.0l0.06,-0.66l0.83,0.62l0.71,-0.63l0.12,-1.0l-1.17,-0.63l0.58,0.03l0.71,-0.94l-1.54,-1.14l1.11,-1.4l0.95,1.01l1.11,-0.15l0.34,-0.34l0.46,0.49l0.68,0.0l0.52,-1.0l1.55,-0.62l1.12,0.54l0.58,-0.49l0.77,0.34l0.88,-0.92l2.14,0.54l0.84,-0.62l0.88,1.15l1.11,0.23l1.01,-0.78l0.12,-0.45l0.89,0.15l1.25,-1.23l1.21,0.08l0.58,-0.92l1.01,0.08l3.99,-1.62l1.18,-1.54l0.68,-0.39l0.54,0.08l1.12,-0.92l0.6,0.08l0.95,-0.94l-0.8,-2.0l1.72,1.17l0.18,1.14l0.4,0.4l0.78,0.0l0.84,0.59l0.8,0.88l-0.12,1.52l0.31,0.54l3.11,3.5l-0.08,0.72l-0.45,0.47l0.28,0.55l-1.97,0.43l-1.44,2.56l-0.37,1.92l0.31,4.54l1.41,2.45l0.18,1.63l1.78,2.26l0.18,0.89l1.01,0.88l-0.4,0.81l1.29,1.37l0.65,1.26l1.03,0.08l0.72,0.89l0.37,1.86l0.49,0.52l-0.18,0.63l0.65,0.96l-0.16,1.19l0.55,2.86l-0.06,1.68l0.31,2.46l0.59,1.58l0.27,3.5l0.68,1.54l2.95,4.15l1.81,2.01l1.0,0.38l-1.21,2.44l-0.25,2.29l-0.92,1.02l0.17,0.88l-0.48,0.58l-0.68,2.76l-0.6,0.83l-0.26,0.18l-0.52,-0.57l-0.28,0.21l-0.46,-0.91l-0.92,0.0l-1.47,0.23l-1.38,1.08l-1.01,0.0l-4.76,3.99l-1.94,0.92l-3.05,3.16l-2.11,1.68l-3.41,3.78l-1.41,2.47l-2.03,2.59l-0.61,1.63l-3.26,5.06l-3.44,4.2l-1.54,3.16l-1.87,-1.11l-0.52,0.48l1.47,1.24l0.37,0.69l-5.96,9.1l-0.31,0.98l-1.29,1.47l0.27,0.44l-0.27,0.77l-1.84,2.77l0.0,0.78l-1.72,2.9l-0.31,1.09l-0.92,0.98l-3.26,5.82l-0.8,2.08l-1.72,2.74l-3.26,7.39l-0.68,0.64l-0.8,2.77l-1.23,1.36l0.25,0.4l-0.61,1.61l-1.78,3.43l-1.23,3.36l-0.37,2.17l-1.35,4.11l-1.35,1.82l0.16,0.5l-0.53,1.35l-0.46,-0.19l-0.4,0.4l-1.11,1.76l-0.43,1.68l0.64,0.62l-0.57,1.86l-0.43,0.49l-1.14,0.76l-0.59,-0.16l-0.48,0.62l-0.77,0.0l-0.58,0.61l-1.26,-0.84l-0.55,0.0l-2.41,1.22l-1.46,-0.31l-3.72,2.29l-2.66,0.23l-1.19,-0.54l-0.71,0.84l-2.12,0.31l-2.04,1.07l-0.35,-0.08l-1.38,0.99l-1.08,-0.15l-3.09,2.22l-2.01,0.61l-4.15,4.58l-1.58,0.53l-0.97,-0.08l-1.2,0.92l-0.89,-0.15l-3.89,2.14l-0.77,0.23l-0.04,-1.05l-2.67,-1.93l-2.95,0.23l-2.04,1.07l-0.78,0.0l-1.84,1.3l-2.98,2.84l-1.72,2.06l0.07,0.31l-2.03,2.85l-9.63,-11.34l-1.92,-0.58l-2.13,1.67l-1.12,1.95l-0.28,2.44l-0.56,1.71l-1.66,1.41l-1.37,-0.07l-5.4,-6.04l-1.99,-1.25l-3.98,-0.2l-8.25,2.01l-2.1,-0.15l-1.95,-1.44l-0.52,-1.81l-2.24,-4.37l0.22,-8.81l1.21,-9.74l-0.81,-4.18ZM747.43,149.99l-0.12,-0.12l0.12,0.0l0.0,0.12ZM747.55,142.0l-0.06,-0.06l0.0,-0.09l0.06,0.06l0.0,0.09ZM747.43,141.78l0.0,-0.01l0.06,0.08l-0.06,-0.06ZM747.43,141.77l-0.06,-0.06l0.0,-0.01l0.06,0.06l0.0,0.01ZM747.31,141.63l-0.12,-0.23l0.06,-0.38l0.12,0.12l-0.06,0.49ZM722.05,121.91l-0.78,-0.98l0.1,-0.48l2.46,-2.1l0.62,-0.77l-0.12,-0.94l0.4,-0.12l0.52,1.76l0.92,0.83l0.06,1.17l1.17,1.02l0.12,1.23l-0.65,0.36l-1.41,-0.47l-0.97,0.62l-0.94,-0.39l-1.35,0.52l-0.56,-0.55l0.41,-0.72Z", "name": "Nabeul"}, "tn-tu": {"path": "M575.35,193.7l1.2,0.41l3.83,2.81l1.51,0.2l1.15,-0.26l0.52,-0.74l2.97,-0.53l4.61,0.29l0.42,-0.42l-0.07,-1.74l1.22,-1.66l2.34,-1.64l0.27,0.0l0.06,2.03l1.11,0.87l2.77,0.1l0.23,-0.23l7.47,0.5l1.71,-2.21l-0.26,-0.68l-0.7,-0.06l-1.01,-0.84l-0.8,-1.57l1.58,-3.99l1.52,-1.3l0.0,-1.44l-1.44,-1.49l-0.33,-2.57l-3.23,-3.21l-2.06,-0.94l-0.68,-1.27l-2.83,-3.18l2.93,3.0l0.79,0.15l3.18,2.23l0.25,0.6l1.14,1.01l1.63,-0.08l1.63,1.23l2.09,0.92l1.78,0.17l0.49,0.52l0.49,-0.37l0.68,0.83l1.01,-0.11l0.43,1.26l-0.92,1.91l0.12,0.69l1.05,1.37l0.12,1.09l1.2,1.17l1.35,1.0l0.32,-0.17l2.44,2.17l1.01,0.54l0.86,1.35l-0.31,0.9l-0.58,-0.14l-1.93,1.01l-0.37,0.7l0.0,1.4l-1.78,1.44l-0.98,1.38l-0.25,0.54l0.18,1.68l-0.46,-0.01l-1.08,1.17l-1.04,2.82l-1.41,1.09l-1.04,1.61l0.0,0.46l1.14,0.72l-0.81,0.54l-1.77,-1.66l-0.45,0.27l-0.59,-0.27l-1.2,0.23l-0.29,-0.67l4.07,-1.9l1.08,-1.01l0.0,-0.61l-0.95,-0.63l-1.7,-0.08l-0.59,-0.42l0.05,-1.18l-0.65,-0.71l-2.27,-1.07l-1.84,-0.15l-1.11,0.54l-1.17,-1.15l-1.65,-0.19l-2.83,1.23l-2.74,-0.02l-1.5,1.44l-2.21,-0.0l-0.95,-0.5l-1.04,-0.0l-3.32,2.44l-1.09,1.08l-1.13,2.01l-0.09,2.81l2.42,4.15l0.92,0.19l0.25,1.34l0.52,0.48l-0.28,0.67l0.65,0.71l1.09,0.15l0.61,0.78l0.26,2.91l-0.32,1.78l-0.55,1.26l-1.52,1.35l-2.43,0.22l-4.38,1.08l-3.11,-0.01l-2.13,-1.07l-2.68,-0.25l-1.77,2.09l-0.64,2.09l-2.87,3.14l-1.77,0.83l-2.84,0.64l-4.13,0.1l-2.84,-0.48l-2.19,-0.84l0.31,-1.84l-1.01,-4.32l-1.52,-2.05l-2.12,-0.49l-2.16,-1.11l-1.87,-6.66l-0.95,-2.37l-3.25,-2.68l0.46,-1.4l1.32,-0.85l2.62,-0.41l0.95,0.89l1.77,0.31l3.55,4.16l3.16,-0.07l1.1,-1.05l0.03,-1.16l-0.89,-1.27l0.18,-0.41l2.18,-1.13l3.02,-0.58l3.35,0.33l0.28,-0.6l-0.31,-1.89l-1.18,-0.97l-0.47,-1.04l2.95,-2.65l1.58,-2.02l1.57,-3.69l0.78,-0.73l3.4,-0.61l0.41,0.17ZM590.4,214.39l0.38,-0.6l-0.18,-1.14l0.0,-0.38l0.18,0.0l0.25,2.07l-0.63,0.04Z", "name": "Tunis"}}, "height": 1954.3544733545057, "projection": {"type": "merc", "centralMeridian": 0.0}, "width": 900.0});
--- /dev/null
+/*
+ * Map of Turkey
+ * @author: Burak Özdemir <https://github.com/ozdemirburak>
+ * @source: https://upload.wikimedia.org/wikipedia/commons/2/2e/BlankMapTurkishProvincesRegions.svg
+ */
+jQuery.fn.vectorMap("addMap","turkey",{"width": 1052, "height": 744, paths:{"01":{path:"M 518.88945,536.62132 C 518.88945,536.07132 518.26346,535.62132 517.49836,535.62132 C 516.73326,535.62132 511.97173,533.17756 506.91718,530.19074 L 497.7271,524.76016 L 501.55827,523.69631 C 503.66542,523.1112 506.19107,522.62996 507.17083,522.6269 C 510.07497,522.61781 510.41243,519.58393 507.9795,515.35663 C 505.99039,511.90047 505.87157,511.07869 506.9756,508.41335 C 508.08759,505.72874 508.0129,505.26315 506.30864,504.25575 C 505.25309,503.63182 503.29662,502.89632 501.96094,502.62132 C 498.69356,501.94861 497.3983,497.30054 499.55919,494.0026 C 500.97835,491.83669 500.97132,491.39521 499.48141,489.12132 C 498.25083,487.24322 496.97309,486.62132 494.34496,486.62132 C 491.57224,486.62132 490.60734,486.09626 489.69325,484.09005 C 488.65658,481.81481 488.85957,481.28377 491.7001,478.84005 C 494.56985,476.37118 494.8846,475.52394 495.12487,469.62132 L 495.38945,463.12132 L 500.38945,462.59575 C 505.10181,462.10041 508.51769,460.80828 513.5626,457.61273 C 515.42541,456.43279 516.84105,456.47608 523.4757,457.91585 C 533.26028,460.03919 534.18,459.47061 533.72544,451.57937 C 533.37519,445.49913 534.72929,442.62132 537.94047,442.62132 C 538.93384,442.62132 540.40086,441.96705 541.20052,441.16739 C 542.00018,440.36773 544.84483,438.67919 547.52195,437.41509 C 550.58589,435.96833 552.95627,434.00597 553.9192,432.11902 C 557.78299,424.54754 561.3206,419.45051 564.07115,417.49194 C 567.03396,415.38223 567.09906,415.37974 570.6275,417.2412 C 575.02417,419.5607 577.57844,425.50888 575.66434,428.97063 C 574.35858,431.33217 572.9019,440.31251 572.55796,448.12132 C 572.43683,450.87132 571.67098,454.47132 570.85607,456.12132 C 569.54224,458.78151 568.75989,459.17796 563.9492,459.62132 L 558.52399,460.12132 L 555.80427,465.62132 C 554.30842,468.64632 552.54714,473.14632 551.8903,475.62132 C 551.23347,478.09632 550.28631,480.79632 549.7855,481.62132 C 547.00063,486.20892 546.53081,487.82921 547.52738,489.40909 C 548.23447,490.53007 548.23167,491.90371 547.51844,493.79327 C 546.11779,497.50402 546.97837,498.02883 551.42039,496.17284 C 556.13315,494.20372 557.88945,495.4026 557.88945,500.58873 C 557.88945,503.20394 556.75378,506.06835 554.07157,510.21825 C 548.46337,518.89522 545.2349,521.98503 540.59278,523.11814 C 536.68177,524.07279 536.43215,524.36322 535.43313,529.12132 L 534.38332,534.12132 L 528.71947,534.41874 C 525.30384,534.59811 522.5771,535.29276 521.85009,536.16874 C 520.46102,537.84247 518.88945,538.08271 518.88945,536.62132 z",name:"Adana"},"02":{path:"M 666.88945,476.95274 C 666.06445,476.67186 663.97144,475.80739 662.23832,475.03169 C 660.5052,474.25599 657.5228,473.62132 655.61077,473.62132 C 653.69873,473.62132 651.57414,472.94632 650.88945,472.12132 C 649.37398,470.29529 646.73637,470.18304 645.01481,471.87132 C 643.99109,472.87525 643.30454,472.57996 641.52725,470.37132 C 640.31014,468.85882 638.75289,467.62132 638.0667,467.62132 C 637.38051,467.62132 635.74671,466.91867 634.43603,466.05989 C 632.2339,464.61699 632.15764,464.29435 633.43156,461.80989 C 634.18978,460.33117 635.05624,457.99632 635.35704,456.62132 C 635.65783,455.24632 637.36318,453.21524 639.14669,452.10781 C 641.25068,450.80139 642.49811,449.15885 642.69885,447.43054 C 642.98999,444.92408 643.18743,444.82924 646.04233,445.82446 C 652.43377,448.05253 669.01974,444.05131 670.61399,439.89677 C 670.91365,439.11587 670.18127,437.15474 668.98649,435.5387 L 666.81414,432.60045 L 669.4169,431.61088 C 670.84841,431.06662 672.24538,430.62132 672.52127,430.62132 C 672.79716,430.62132 674.49784,429.49632 676.30056,428.12132 C 678.10328,426.74632 680.21076,425.62974 680.98384,425.64003 C 681.75693,425.65031 685.48113,427.22531 689.25984,429.14003 C 693.03856,431.05474 696.59609,432.62132 697.16545,432.62132 C 697.73482,432.62132 699.67562,433.74632 701.47834,435.12132 C 703.28106,436.49632 705.25099,437.62132 705.85597,437.62132 C 708.50398,437.62132 716.7703,432.46632 719.17241,429.31698 C 723.83428,423.20496 730.41515,424.18895 726.27539,430.37904 C 725.26671,431.88729 724.42974,433.57132 724.41544,434.12132 C 724.40115,434.67132 722.25195,435.53424 719.63945,436.03892 C 716.80857,436.58579 714.88945,437.49484 714.88945,438.28892 C 714.88945,439.02174 715.33945,439.62132 715.88945,439.62132 C 717.73094,439.62132 716.91458,442.47857 714.88945,443.12132 C 713.78945,443.47045 712.88945,444.57329 712.88945,445.57208 C 712.88945,446.57087 712.05043,447.60747 711.02495,447.87563 C 709.81346,448.19245 708.9153,449.67002 708.46047,452.09445 C 708.07548,454.14663 707.4965,455.5617 707.17384,455.23905 C 706.85119,454.9164 705.99452,455.43291 705.27013,456.38686 C 704.37561,457.56485 703.94285,457.69737 703.92125,456.79989 C 703.88536,455.30834 701.47729,452.62132 700.17649,452.62132 C 699.70578,452.62132 698.5048,451.24016 697.50762,449.55209 C 696.51045,447.86401 695.53454,446.6429 695.33892,446.83851 C 694.61971,447.55773 698.17937,458.17898 699.73193,459.9463 C 701.24572,461.66949 701.18301,461.7331 698.60768,461.08674 C 696.34834,460.51968 695.24712,461.01712 692.19148,463.98506 C 690.16267,465.95564 688.34717,467.41237 688.15704,467.22225 C 687.96692,467.03212 688.43937,465.05373 689.20694,462.82584 C 690.60417,458.77035 689.7533,454.20658 688.30408,457.98319 C 687.78523,459.3353 687.41399,459.47004 686.8265,458.51947 C 686.19356,457.49535 685.74198,457.49882 684.49059,458.53738 C 683.17521,459.62905 682.75827,459.42753 681.74888,457.21215 C 680.56958,454.62387 680.54133,454.61786 678.72396,456.56858 C 677.71498,457.65159 676.88945,459.00651 676.88945,459.57951 C 676.88945,460.1525 675.76445,460.62132 674.38945,460.62132 C 671.53457,460.62132 671.17773,461.78575 673.45374,463.67467 C 674.44666,464.49872 674.80495,465.82185 674.43468,467.29712 C 674.02052,468.94726 674.2817,469.62132 675.33521,469.62132 C 676.15134,469.62132 677.27887,470.48044 677.84083,471.53047 C 678.7041,473.14351 678.31293,473.76392 675.31885,475.53047 C 671.80966,477.60095 669.79288,477.94123 666.88945,476.95274 z",name:"Adıyaman"},"03":{path:"M 224.92847,443.31 C 224.30556,442.31377 222.21895,440.56825 220.29155,439.43105 C 217.1445,437.57425 216.8545,437.0452 217.44742,434.24237 C 218.1982,430.69335 222.15135,426.8825 225.97707,426.01979 C 227.40026,425.69885 230.66276,423.6429 233.22707,421.45099 C 238.2035,417.19726 238.86115,414.94511 236.38945,410.62132 C 235.60343,409.24632 234.94437,406.96226 234.92489,405.54563 C 234.88846,402.89813 232.18062,399.79632 228.03806,397.65683 L 225.68666,396.44242 L 228.28806,393.72715 C 229.85657,392.08997 230.90265,389.84247 230.9227,388.0666 C 230.95005,385.64339 232.38963,383.88053 239.04421,378.12132 C 249.67456,368.92127 250.87006,367.62651 251.4909,364.64122 C 251.77912,363.25527 252.22786,361.07862 252.48809,359.80421 C 252.74879,358.52753 254.37359,356.73144 256.10663,355.80421 C 257.83659,354.87862 260.27798,353.06194 261.53195,351.76714 L 263.81189,349.41296 L 266.77509,352.65726 C 269.26173,355.37978 270.2267,355.80387 272.7751,355.29419 C 274.44534,354.96014 276.08091,355.12209 276.40969,355.65407 C 276.73848,356.18606 278.99009,356.62132 281.41328,356.62132 C 284.83009,356.62132 286.06513,356.16158 286.91517,354.57326 C 287.69809,353.11036 288.59375,352.71008 290.05003,353.17228 C 291.37664,353.59333 294.35372,352.66975 298.57281,350.52825 C 305.76054,346.87995 308.13707,347.21351 308.70375,351.95018 C 309.01044,354.51376 313.04723,358.61576 315.27431,358.6269 C 315.88764,358.62996 318.07695,359.10112 320.13945,359.6739 C 323.64193,360.64659 323.88945,360.96909 323.88945,364.55992 C 323.88945,367.82682 324.2651,368.49879 326.38945,369.03196 C 329.33588,369.77147 329.6831,371.60102 327.00969,372.30013 C 325.69288,372.64448 324.96783,374.00031 324.58863,376.82746 C 324.23201,379.48622 322.99678,381.94711 320.96838,384.03988 C 317.23591,387.89082 317.11434,389.31104 320.38945,390.80327 C 321.76445,391.42977 322.88945,392.23045 322.88945,392.58257 C 322.88945,392.93469 320.97695,394.19091 318.63945,395.37418 C 316.30195,396.55744 311.63435,399.32153 308.267,401.5166 L 302.14455,405.50764 L 300.017,403.52552 C 298.84685,402.43536 297.88945,401.05169 297.88945,400.4507 C 297.88945,399.74387 296.40135,399.55758 293.67559,399.92318 C 290.69517,400.32294 288.90852,401.24781 287.57179,403.08285 C 286.53232,404.5098 284.26606,406.40137 282.53565,407.28633 C 280.80524,408.17129 277.66796,410.24843 275.56392,411.90219 C 273.45988,413.55595 268.73488,416.12015 265.06392,417.60042 C 259.99789,419.64323 257.6665,421.27208 255.38945,424.35961 C 253.73945,426.59689 250.63585,429.24418 248.49257,430.24247 C 245.69266,431.54659 243.42581,433.88341 240.43978,438.54379 L 236.28386,445.03004 L 231.17244,445.07568 C 227.28884,445.11036 225.78896,444.68622 224.92847,443.31 z",name:"Afyonkarahisar"},"04":{path:"M 909.70981,362.4615 C 908.21002,360.16428 907.88403,358.98236 906.08458,349.31747 C 905.44731,345.89471 904.15783,343.45099 901.59935,340.81747 C 899.6244,338.78459 897.5398,335.87575 896.96692,334.35339 C 896.39404,332.83102 894.76791,331.14541 893.3533,330.60757 L 890.78128,329.6297 L 893.33536,326.28112 C 896.61733,321.97824 896.75445,317.13456 893.63945,315.53971 C 891.10099,314.24005 882.88945,306.57728 882.88945,305.50813 C 882.88945,304.15935 891.70514,299.66507 896.51918,298.55963 C 904.77777,296.66324 915.26475,293.53323 917.88945,292.18134 C 922.6369,289.73609 929.29446,289.51535 933.72567,291.65628 C 935.96261,292.73705 938.23425,293.62132 938.77376,293.62132 C 940.31317,293.62132 941.05996,297.19551 940.33167,301.07761 C 939.68878,304.50452 939.76706,304.62132 942.70673,304.62132 C 944.37865,304.62132 946.39035,303.97756 947.17718,303.19074 C 948.40686,301.96105 949.15414,301.95489 952.4986,303.14684 C 954.63857,303.90952 958.21195,304.55329 960.43945,304.57743 C 962.66695,304.60157 964.94281,305.07468 965.49693,305.6288 C 966.05104,306.18291 971.43824,306.69762 977.46849,306.7726 C 985.88913,306.87731 989.17,306.5276 991.61136,305.26513 C 993.35968,304.36103 995.16279,303.62132 995.61826,303.62132 C 996.70935,303.62132 996.25132,311.4637 995.07291,312.95863 C 994.56883,313.59811 994.13649,316.29235 994.11215,318.94583 C 994.05445,325.23815 992.50056,326.33249 983.5439,326.38856 C 977.51786,326.42628 976.30801,326.74069 974.87412,328.64164 C 973.44515,330.53607 972.62434,330.75233 969.11399,330.15926 C 965.2749,329.51065 964.92292,329.65591 963.45487,332.49481 C 962.59389,334.15977 961.88945,336.12935 961.88945,336.87166 C 961.88945,340.12957 959.59331,340.63282 956.27538,338.10211 C 954.48651,336.73768 952.73784,335.62132 952.38945,335.62132 C 952.04106,335.62132 950.28106,334.49632 948.47834,333.12132 C 944.80329,330.31822 939.78144,329.84161 937.89327,332.11672 C 937.21068,332.93919 934.85874,334.14945 932.66673,334.80619 C 927.05854,336.48645 926.49069,339.21403 931.38945,340.94143 C 932.69885,341.40315 930.31575,346.08684 926.41681,350.71454 C 920.67697,357.52724 919.88945,358.64876 919.88945,360.01031 C 919.88945,361.90941 917.73676,363.50186 914.21824,364.20556 C 911.8196,364.68529 910.93934,364.34477 909.70981,362.4615 z",name:"Ağrı"},"05":{path:"M 522.9393,286.52818 C 523.55542,285.37695 523.8006,283.40344 523.48415,282.1426 C 523.12994,280.73134 523.48165,279.37473 524.39912,278.6133 C 525.2188,277.93302 525.88945,276.83497 525.88945,276.17319 C 525.88945,275.51141 527.01445,273.91307 528.38945,272.62132 C 529.76445,271.32957 530.88945,269.66979 530.88945,268.93291 C 530.88945,267.34178 524.91279,261.69268 523.1849,261.65063 C 522.5224,261.63451 520.80133,260.44229 519.3603,259.00126 C 517.06383,256.70479 516.132,256.43964 511.81542,256.85441 C 506.40335,257.37444 505.3449,256.69616 503.94355,251.80994 C 503.36525,249.79355 503.49434,248.00929 504.33587,246.38724 C 505.02568,245.05763 505.83157,241.82723 506.12673,239.20857 C 506.8781,232.54239 508.18885,231.57592 511.79397,235.02984 C 514.6054,237.72337 514.8988,237.78504 519.84978,236.72325 C 527.29327,235.12691 527.79254,235.23338 527.57771,238.37132 C 527.41543,240.7419 527.80336,241.1644 530.38945,241.43354 C 532.03945,241.60526 533.94765,242.47288 534.62989,243.36159 C 535.31213,244.2503 538.01213,245.27896 540.62989,245.64751 C 543.24765,246.01606 548.19693,246.92493 551.6283,247.66723 L 557.86715,249.01687 L 560.79739,246.20951 C 562.40903,244.66547 564.00789,242.28556 564.35042,240.92082 C 564.77908,239.2129 565.45318,238.62367 566.51311,239.0304 C 567.36006,239.35541 569.23122,239.62132 570.67124,239.62132 C 572.70762,239.62132 573.02278,239.88799 572.08945,240.82132 C 570.16542,242.74535 570.69531,244.53449 573.38945,245.21068 C 575.18432,245.66116 575.88945,246.51269 575.88945,248.22973 C 575.88945,249.95465 576.44696,250.62132 577.88945,250.62132 C 580.52696,250.62132 580.45952,252.23898 577.79294,252.93631 C 575.93232,253.42287 575.73541,254.09212 576.04294,258.88408 L 576.38945,264.28359 L 571.63945,263.82523 C 567.35615,263.4119 566.88945,263.57007 566.88945,265.43507 C 566.88945,266.57259 567.36744,267.7987 567.95164,268.15976 C 568.57467,268.54481 567.66746,269.80955 565.75736,271.21877 C 562.22978,273.82134 555.88945,274.53893 555.88945,272.33561 C 555.88945,271.44383 554.20426,271.04989 550.38945,271.04989 C 545.88369,271.04989 544.88945,271.35663 544.88945,272.74671 C 544.88945,275.22105 539.55738,279.30863 533.67031,281.34731 C 530.2447,282.5336 528.02443,284.03029 526.96851,285.865 C 525.03016,289.23295 521.14995,289.87161 522.9393,286.52818 z",name:"Amasya"},"06":{path:"M 431.49319,391.03108 C 431.15757,390.15644 431.13002,389.04109 431.43198,388.5525 C 432.02275,387.59663 428.00264,381.62132 426.76878,381.62132 C 426.35927,381.62132 425.72636,382.5598 425.36231,383.70683 L 424.70039,385.79234 L 422.29492,383.53252 C 419.85242,381.23791 418.80886,374.62132 420.88945,374.62132 C 422.26057,374.62132 422.0853,370.5788 420.60401,368.03805 C 418.52775,364.47675 415.14808,360.62132 414.10252,360.62132 C 413.55302,360.62132 412.84441,361.29632 412.52782,362.12132 C 411.65226,364.403 410.78757,364.03114 404.38945,358.62132 C 398.5272,353.6646 394.59272,352.34624 393.57526,354.99771 C 393.23983,355.87182 392.106,356.19421 390.46827,355.88114 C 388.51763,355.50825 387.88945,355.80069 387.88945,357.08167 C 387.88945,359.16148 382.59151,364.62132 380.57336,364.62132 C 379.7649,364.62132 378.85703,365.26343 378.55587,366.04824 C 377.98478,367.53646 369.67785,371.62132 367.22249,371.62132 C 366.4455,371.62132 363.96376,370.67955 361.70751,369.5285 C 358.72326,368.00605 356.62198,367.6052 353.99735,368.05769 C 352.01301,368.39979 349.03945,368.9136 347.38945,369.19949 C 344.79337,369.64929 344.08651,369.24333 342.13945,366.18432 C 340.90195,364.2401 339.88945,362.21542 339.88945,361.68503 C 339.88945,361.15465 339.15119,360.30755 338.24887,359.80259 C 336.86466,359.02794 337.21346,358.47325 340.48101,356.2529 C 342.611,354.80553 345.13343,353.62132 346.0864,353.62132 C 347.03938,353.62132 348.32347,352.67886 348.93994,351.52697 C 349.86686,349.79501 349.67136,349.01808 347.81011,347.03686 C 345.86936,344.97103 345.71985,344.28897 346.72443,342.08416 C 348.38498,338.43963 348.19434,336.56216 345.54733,330.49216 C 341.84491,322.00193 340.98644,320.2365 339.65868,318.38219 C 338.60904,316.9163 338.76501,316.39678 340.65142,315.07549 C 343.75043,312.90486 343.4507,311.14295 339.67106,309.31241 C 337.61216,308.31526 335.71621,306.1987 334.40849,303.43751 C 332.38805,299.17143 332.2909,299.11321 326.04105,298.42253 C 322.56325,298.03819 319.049,297.1687 318.23162,296.49033 C 316.45012,295.01182 301.23169,294.37598 296.95848,295.60152 C 292.50322,296.87927 290.00477,295.82396 289.03378,292.25423 C 288.2363,289.32242 288.41294,289.01067 291.78553,287.39754 C 293.76768,286.44947 296.10721,285.66197 296.98446,285.64754 C 299.29687,285.60953 301.88945,282.35625 301.88945,279.49258 C 301.88945,274.80457 305.02708,273.89801 309.11393,277.40521 C 310.34053,278.45784 311.99766,278.69973 314.85374,278.24302 C 318.13373,277.71853 319.25323,277.9851 320.96674,279.69861 C 322.73196,281.46383 323.88257,281.71112 328.22693,281.25893 C 341.8244,279.84363 345.50279,278.93809 350.33523,275.81631 C 353.05541,274.05907 355.68878,272.62132 356.18717,272.62132 C 357.89905,272.62132 370.87233,264.12102 370.88089,262.99376 C 370.8856,262.37361 370.17382,261.27229 369.29915,260.54638 C 366.54053,258.25692 370.30932,256.62075 378.33058,256.62551 C 383.87051,256.62879 386.44803,257.16674 390.30893,259.12551 C 393.01464,260.4982 396.14214,261.62132 397.25893,261.62132 C 398.83822,261.62132 399.02278,261.88799 398.08945,262.82132 C 396.04503,264.86574 396.75943,267.50273 399.78103,269.06526 C 401.3714,269.88767 403.13425,271.88481 403.69848,273.50334 C 404.85999,276.83524 410.48281,282.62132 412.5592,282.62132 C 413.31442,282.62132 414.46831,281.44497 415.1234,280.0072 C 416.21644,277.60825 416.68796,277.43783 420.85196,277.93674 C 423.34758,278.23576 427.24153,279.31295 429.50518,280.3305 L 433.62092,282.18059 L 430.72732,287.15095 C 427.9434,291.93292 427.62577,295.16464 429.46786,299.96505 C 430.03915,301.4538 424.43147,304.94765 420.38945,305.62132 C 418.11725,306.00002 417.30826,306.72782 417.05477,308.62132 C 416.8707,309.99632 416.3082,311.54882 415.80477,312.07132 C 415.30135,312.59382 414.88945,314.63617 414.88945,316.60988 C 414.88945,318.58359 413.98945,321.96373 412.88945,324.12132 C 411.78945,326.27891 410.88945,328.41708 410.88945,328.87282 C 410.88945,329.32855 412.69171,331.41588 414.89446,333.51131 C 418.39168,336.83813 418.81989,337.7191 418.2718,340.45957 C 417.85101,342.56351 418.17897,344.41424 419.26679,346.07446 C 420.15925,347.43653 420.88945,349.01679 420.88945,349.58614 C 420.88945,351.91086 436.61206,367.57567 438.97278,367.60299 C 442.04921,367.6386 441.83802,368.97175 438.38413,371.31872 C 434.67267,373.84073 433.92543,376.57637 436.38945,378.62132 C 438.41989,380.30643 438.2832,381.97947 435.6453,387.72954 C 433.2543,392.94143 432.46661,393.56776 431.49319,391.03108 z",name:"Ankara"},"07":{path:"M 358.69746,559.88281 C 355.56686,557.26399 352.97936,554.7297 352.94746,554.25105 C 352.88285,553.2817 349.1951,547.29935 343.88945,539.55694 C 340.92578,535.23212 339.39341,534.05619 333.88945,531.88296 C 330.31445,530.47138 326.31626,528.48504 325.00459,527.46888 C 323.69292,526.45272 322.21957,525.62132 321.73048,525.62132 C 321.2414,525.62132 318.59018,524.07287 315.83889,522.18031 C 313.0876,520.28776 309.83595,518.43604 308.613,518.06538 C 307.39005,517.69472 305.47495,516.55679 304.35722,515.53666 C 301.61782,513.03643 290.36605,510.51439 279.38945,509.94022 C 272.73687,509.59224 270.06646,509.05232 269.15109,507.87017 C 268.08302,506.49082 267.56826,506.45525 265.4077,507.61155 C 261.29423,509.81302 259.88467,513.02983 259.50113,521.09122 C 259.2772,525.79782 258.53963,529.50627 257.51707,531.06689 C 256.62188,532.43312 255.88945,534.24179 255.88945,535.08614 C 255.88945,535.93049 255.38838,536.62132 254.77595,536.62132 C 254.08247,536.62132 253.85349,537.84725 254.16891,539.87132 C 254.45716,541.72109 254.02613,544.52155 253.16846,546.37132 C 251.65269,549.64047 249.91059,550.69514 249.86485,548.37132 C 249.82911,546.55582 243.36717,543.62132 239.40505,543.62132 C 237.2289,543.62132 235.53196,544.28936 234.69615,545.4751 C 233.47386,547.20912 228.88053,548.65693 224.46392,548.70028 C 223.40487,548.71067 222.05487,549.36163 221.46392,550.14687 C 220.87296,550.9321 217.78272,551.8743 214.59673,552.24064 C 209.47698,552.82934 208.57209,552.65779 206.80777,550.76402 C 205.70984,549.58554 203.81657,548.60537 202.60049,548.58588 C 201.38442,548.5664 199.26445,547.90734 197.88945,547.12132 C 196.51445,546.3353 194.44669,545.67624 193.29444,545.65676 C 190.72361,545.61327 186.75637,541.55055 188.64104,540.89136 C 189.32942,540.65059 190.17519,538.68661 190.52053,536.52697 C 191.07944,533.0317 191.65599,532.37668 195.76893,530.56423 C 202.30055,527.68595 209.50755,520.28718 211.43643,514.47986 C 212.30332,511.8699 213.82299,508.69652 214.81346,507.4279 C 217.29018,504.25567 218.21035,500.93768 216.84704,500.09511 C 216.14661,499.66222 216.8737,498.70098 218.77714,497.54343 C 221.35035,495.97856 221.80925,495.10811 221.69289,492.01274 C 221.53169,487.72482 222.77531,486.55602 230.62318,483.61976 C 233.56753,482.51813 237.26968,480.66075 238.85018,479.49223 C 242.38818,476.87647 246.92224,477.45663 251.95399,481.16894 C 254.44046,483.00339 256.60603,483.68592 259.88216,483.66767 C 262.36117,483.65386 266.97695,483.90443 270.13945,484.22449 C 273.54186,484.56883 275.88945,484.41542 275.88945,483.84873 C 275.88945,483.322 276.81336,481.71647 277.94259,480.28089 C 279.70725,478.03749 280.26976,477.84188 281.94605,478.88874 C 283.48361,479.84897 284.26599,479.84323 285.64291,478.86164 C 288.64828,476.71914 292.21718,475.49442 297.17558,474.90404 C 301.41382,474.39942 302.45756,474.69027 306.29311,477.44475 C 311.71269,481.3368 317.47655,482.40332 321.59135,480.27547 C 324.52107,478.76046 324.67044,478.80095 327.664,481.92179 C 329.35199,483.68153 331.82433,487.59632 333.1581,490.62132 C 336.02495,497.12336 342.35065,503.7356 349.63945,507.84925 C 352.57698,509.50712 354.88945,511.52244 354.88945,512.42462 C 354.88945,513.31142 356.43133,515.63097 358.31586,517.57916 C 362.34144,521.74073 364.16879,528.37884 364.30187,539.32424 C 364.37466,545.31045 364.72728,546.77475 366.38945,547.99295 C 368.07429,549.22777 368.38945,550.61402 368.38945,556.79004 C 368.38945,563.36749 368.1838,564.14821 366.38945,564.38281 C 365.19907,564.53845 362.08526,562.71679 358.69746,559.88281 z",name:"Antalya"},"08":{path:"M 830.49644,257.03953 C 830.16259,256.16955 829.88945,253.49061 829.88945,251.08633 C 829.88945,246.86526 829.73427,246.64627 825.37764,244.71912 C 822.89614,243.62144 820.59372,242.01423 820.26114,241.14756 C 819.57255,239.3531 822.66825,234.56056 829.45824,226.90926 L 834.08358,221.6972 L 830.34708,218.27412 C 828.29201,216.39142 826.04174,213.19637 825.34648,211.174 C 824.09141,207.52325 824.1067,207.48536 827.48591,205.87393 C 829.35786,204.98126 830.88945,203.96604 830.88945,203.61789 C 830.88945,203.26974 832.29081,201.16156 834.00358,198.93305 C 837.39852,194.51584 837.67791,194.50082 846.67338,198.25193 C 851.29024,200.17715 852.45531,199.98831 854.66364,196.95675 C 856.30204,194.70759 857.44531,194.25706 861.99704,194.06687 C 873.19428,193.599 884.76253,196.76283 887.73933,201.10719 C 890.67372,205.38964 890.47788,206.795 886.13945,212.58823 C 884.07695,215.34234 881.03945,220.77818 879.38945,224.66786 L 876.38945,231.74001 L 867.87373,231.09305 C 857.14359,230.27784 855.68793,231.39546 855.45008,240.63161 C 855.3223,245.59299 854.8553,247.11002 852.83326,249.13205 C 850.62207,251.34324 849.99456,251.48913 846.6576,250.56775 C 842.14597,249.32203 838.53318,250.87253 835.10951,255.52385 C 832.55983,258.98779 831.39138,259.3717 830.49644,257.03953 z",name:"Artvin"},"09":{path:"M 83.81018,461.37132 C 83.766581,461.23382 83.654081,457.14728 83.56018,452.29011 C 83.399687,443.9884 83.239556,443.37596 80.88945,442.07555 C 79.51445,441.3147 77.60195,440.67624 76.63945,440.65676 C 75.67695,440.63727 74.88945,440.141 74.88945,439.55393 C 74.88945,438.96687 75.67695,438.72798 76.63945,439.02306 C 79.347196,439.8532 86.182473,437.93667 87.684021,435.92629 C 88.487514,434.85051 88.824457,432.79438 88.518058,430.83675 C 88.007195,427.57278 88.02538,427.55619 91.417328,428.19253 C 94.460114,428.76336 95.285412,428.38713 99.019205,424.7271 C 103.74971,420.09004 105.74602,419.71607 109.79379,422.70872 C 112.27251,424.54131 113.51874,424.72255 120.0033,424.19344 C 124.06568,423.86197 129.86445,423.45997 132.88945,423.30011 C 141.3862,422.85109 141.41508,422.83929 143.20472,419.08639 C 144.65082,416.05389 145.16526,415.69856 146.82419,416.58639 C 147.88777,417.1556 150.55826,417.62132 152.75861,417.62132 C 158.178,417.62132 160.64166,418.71927 165.63444,423.35956 L 169.87943,427.30485 L 167.38444,428.44165 C 165.31522,429.38445 164.88945,430.27783 164.88945,433.6768 C 164.88945,436.87097 165.53279,438.4185 167.80543,440.69115 C 169.40923,442.29494 170.30923,443.86188 169.80543,444.17324 C 169.30164,444.4846 168.88945,445.56878 168.88945,446.58251 C 168.88945,447.72852 167.76265,448.81847 165.91034,449.46419 C 162.22775,450.74795 155.88952,455.70525 155.88948,457.30177 C 155.88943,459.39676 151.47548,459.23899 148.38945,457.03371 C 144.67713,454.38087 137.94193,454.02805 133.27634,456.24202 C 128.54134,458.48892 113.59907,457.3248 109.90861,454.42148 C 106.44443,451.69618 101.20748,449.62132 97.793006,449.62132 C 95.645981,449.62132 94.563604,450.35076 93.41513,452.57166 C 92.576006,454.19435 91.88945,456.16759 91.88945,456.95665 C 91.88945,458.60256 87.705714,461.62132 85.424633,461.62132 C 84.580282,461.62132 83.853778,461.50882 83.81018,461.37132 z",name:"Aydın"},10:{path:"M 141.46624,347.76982 C 140.65523,346.20149 138.88495,344.19317 137.53229,343.30687 C 134.64135,341.41265 131.88945,336.32757 131.88945,332.87978 C 131.88945,330.60453 131.63487,330.48854 127.99208,331.10398 C 125.59855,331.50836 123.8394,331.34935 123.43306,330.69188 C 123.06915,330.10307 121.15295,329.62132 119.17482,329.62132 C 116.87917,329.62132 114.39265,328.71703 112.30056,327.12132 C 108.80148,324.45244 105.95898,323.95179 104.21379,325.69698 C 103.44623,326.46454 101.62355,326.32287 97.850526,325.2024 C 92.07415,323.487 86.237687,324.29187 83.883494,327.1285 C 83.20208,327.94955 81.879823,328.62132 80.945145,328.62132 C 80.010466,328.62132 77.478066,329.9588 75.317589,331.5935 C 70.580585,335.1777 70.118789,335.24512 69.709001,332.41231 C 69.51335,331.05981 68.420121,329.93114 66.88945,329.50135 L 64.38945,328.79938 L 66.63945,328.09372 C 67.87695,327.70561 68.88945,327.04514 68.88945,326.62601 C 68.88945,326.20688 70.23945,325.30477 71.88945,324.62132 C 73.53945,323.93787 74.88945,322.75827 74.88945,322 C 74.88945,321.24173 75.56445,320.62132 76.38945,320.62132 C 77.21445,320.62132 77.88945,319.94632 77.88945,319.12132 C 77.88945,318.29632 78.717218,317.62132 79.728935,317.62132 C 81.801855,317.62132 84.128399,313.40759 83.278437,311.19262 C 82.842679,310.05705 80.994307,309.8022 74.805275,310.02434 C 65.938717,310.34259 65.280293,309.71684 69.077508,304.58083 C 70.88161,302.14065 71.983174,301.62132 75.355002,301.62132 C 77.604192,301.62132 80.437188,300.92597 81.650549,300.0761 C 83.644259,298.67965 84.314676,298.68638 88.613831,300.14598 C 91.230274,301.03429 94.180181,302.62963 95.16918,303.6912 C 97.655126,306.35955 100.5256,306.09801 106.52611,302.65644 C 110.09632,300.60876 111.99503,298.7572 112.75232,296.58486 C 114.26515,292.24513 113.13163,281.75403 110.78878,278.41181 C 109.74415,276.92158 108.88945,275.4009 108.88945,275.03252 C 108.88945,273.73627 118.12599,265.7788 120.24486,265.2496 C 121.42438,264.955 124.13885,265.10969 126.277,265.59336 C 129.58662,266.34201 130.73876,266.11027 134.027,264.03449 C 136.1645,262.68515 137.88945,262.10611 137.88945,262.73794 C 137.88945,263.5435 139.67538,263.6776 143.95519,263.19339 C 149.69246,262.54429 149.96617,262.60944 149.00979,264.39647 C 148.45366,265.43561 147.30139,266.86447 146.4492,267.57173 C 144.40986,269.26424 145.36658,278.8271 148.01669,283.23935 C 149.04671,284.95427 149.89933,287.42927 149.91141,288.73935 C 149.92349,290.04944 150.77934,292.98435 151.8133,295.26139 C 153.25337,298.43278 154.53917,299.68064 157.30873,300.59468 C 159.62281,301.3584 161.48329,302.869 162.47736,304.79133 C 163.94093,307.62156 164.32682,307.77534 169.16915,307.45804 C 174.28162,307.12304 174.3129,307.13916 175.30677,310.62132 C 176.88213,316.14081 179.01964,317.87512 183.26529,317.07864 C 187.84674,316.21915 188.99747,318.39724 185.98516,322.22678 C 184.82613,323.70024 183.88945,326.35536 183.88945,328.16729 C 183.88945,331.81276 179.66393,336.22414 175.31238,337.12161 C 173.97977,337.39645 171.76445,337.85489 170.38945,338.14037 C 167.705,338.69772 167.24071,340.54061 168.97047,343.77271 C 169.56503,344.88366 169.84886,345.99524 169.60121,346.24289 C 169.35356,346.49055 164.9296,347.15944 159.77019,347.72933 C 154.61078,348.29921 149.96195,349.18305 149.43945,349.6934 C 148.91695,350.20376 147.24101,350.62132 145.71513,350.62132 C 143.67607,350.62132 142.55001,349.8656 141.46624,347.76982 z M 133.88945,259.94269 C 131.93243,259.35998 127.74982,252.82565 128.88483,252.12418 C 130.0351,251.41327 138.43378,253.31869 141.70516,255.03275 L 144.2796,256.38163 L 140.12436,258.50148 C 137.83898,259.66739 135.8387,260.56912 135.67929,260.50532 C 135.51988,260.44152 134.71445,260.18833 133.88945,259.94269 z M 121.23453,245.07819 C 120.90884,244.22947 120.87675,243.30069 121.16321,243.01423 C 122.17755,241.99988 127.99922,242.33109 129.13595,243.46782 C 130.00728,244.33915 129.76573,244.62132 128.14847,244.62132 C 126.97093,244.62132 125.72937,245.07132 125.38945,245.62132 C 124.44705,247.14615 121.90033,246.81325 121.23453,245.07819 z",name:"Balıkesir"},11:{path:"M 236.86925,316.25782 L 230.38945,314.02059 L 230.4832,308.57095 C 230.53476,305.57366 230.93513,301.40921 231.37291,299.31664 C 231.85808,296.99757 231.75645,294.65475 231.11263,293.31664 C 228.67771,288.25587 228.89804,286.42921 232.44293,282.28781 C 235.4485,278.77647 235.88945,277.57085 235.88945,272.8644 C 235.88945,268.23271 236.30392,267.05301 238.81253,264.5444 C 242.49878,260.85814 243.48962,260.87219 244.23945,264.62132 C 244.68083,266.82823 245.40271,267.62132 246.97009,267.62132 C 248.14195,267.62132 250.45125,268.7577 252.10187,270.1466 C 254.51988,272.18123 255.76101,272.54844 258.48965,272.03654 C 262.60019,271.2654 266.88664,272.21055 266.89715,273.89037 C 266.90139,274.56739 268.70139,276.14726 270.89715,277.40118 C 273.49968,278.88739 274.88945,280.38976 274.88945,281.71692 C 274.88945,282.83666 275.33649,284.58811 275.88288,285.60905 C 276.72162,287.17625 276.43161,287.56297 274.02039,288.09256 C 270.66116,288.83037 266.60161,293.08129 265.88053,296.61614 C 265.56308,298.17229 264.15307,299.68633 262.13294,300.64018 C 260.35168,301.48125 258.19268,303.17109 257.33516,304.39536 C 256.0939,306.16751 254.80379,306.62132 251.00706,306.62132 C 247.31507,306.62132 245.74705,307.144 244.06376,308.93577 C 241.69258,311.45978 241.14386,316.18837 243.13945,316.90108 C 243.82695,317.14662 244.15536,317.60571 243.86925,317.92128 C 243.58314,318.23685 240.43314,317.4883 236.86925,316.25782 z",name:"Bilecik"},12:{path:"M 782.63945,402.53939 C 781.67695,401.97979 780.88945,400.65467 780.88945,399.59468 C 780.88945,398.53469 779.76445,396.9303 778.38945,396.02936 C 775.58728,394.19331 775.12342,391.8525 777.38945,390.98295 C 778.21445,390.66636 778.88945,389.82494 778.88945,389.11311 C 778.88945,388.40128 780.46445,386.8896 782.38945,385.75382 C 786.63411,383.24941 786.84292,380.76392 783.02361,378.20528 C 781.20334,376.98584 780.32716,375.66352 780.61361,374.56814 C 780.86115,373.62153 780.60411,372.56301 780.04241,372.21586 C 778.92365,371.52442 779.47651,365.66024 781.05626,361.46205 C 782.29502,358.17005 780.66548,354.62132 777.91509,354.62132 C 776.86789,354.62132 773.93135,356.42132 771.38945,358.62132 C 768.84755,360.82132 766.17127,362.62132 765.44217,362.62132 C 764.64743,362.62132 763.85905,360.9043 763.4736,358.33389 C 762.63734,352.75735 764.96191,347.566 767.94581,348.34631 C 769.05098,348.63532 770.72792,348.22744 771.67233,347.43991 C 772.61675,346.65238 774.6729,345.45974 776.24156,344.7896 C 778.54948,343.80363 778.98124,343.12317 778.50441,341.22333 C 777.65751,337.849 783.94267,333.64873 790.79066,333.01262 C 795.72378,332.55439 795.88945,332.62259 795.88945,335.11155 C 795.88945,336.56485 796.5972,337.95568 797.51621,338.30833 C 798.41092,338.65167 803.6812,338.26717 809.22794,337.4539 L 819.31293,335.97521 L 821.46586,338.29827 C 822.64997,339.57595 824.46719,340.63934 825.50412,340.66136 C 826.98729,340.69285 826.80285,341.01963 824.63945,342.19329 C 821.24787,344.03326 821.24127,344.59715 824.53258,351.32435 C 826.49364,355.33261 828.171,357.23447 831.03258,358.69434 C 835.60071,361.02482 835.86313,362.24603 832.13945,363.84524 C 830.62695,364.49481 829.27007,365.09205 829.12415,365.17243 C 828.97824,365.25281 828.19074,367.88365 827.37415,371.01874 C 825.61234,377.7828 825.47213,382.24537 826.99191,383.18464 C 827.64543,383.58854 826.81806,384.48413 824.96009,385.38397 C 823.23624,386.21886 820.90949,388.1888 819.78954,389.76163 C 818.66959,391.33446 816.94048,392.62132 815.94708,392.62132 C 814.95368,392.62132 812.39683,393.22912 810.26518,393.97198 C 807.44487,394.95484 804.41137,395.10718 799.12548,394.53141 C 792.25529,393.78306 791.73071,393.87097 789.44866,396.15301 C 788.1216,397.48008 786.89039,399.55559 786.71263,400.76526 C 786.32962,403.37183 785.0385,403.9342 782.63945,402.53939 z",
+ name:"Bingöl"},13:{path:"M 908.88945,432.51896 C 907.51445,430.93174 903.84966,428.29807 900.74548,426.66635 C 897.64129,425.03462 892.97401,421.85824 890.37375,419.60773 C 886.3295,416.10746 885.19372,415.60718 882.51772,416.14738 C 880.79717,416.49471 878.23872,417.59275 876.83228,418.58747 C 874.5023,420.23538 873.92481,420.26742 870.33228,418.94809 C 868.16372,418.1517 864.99441,417.07485 863.28936,416.5551 C 858.73675,415.16732 857.2847,412.92082 855.89899,405.12132 C 854.2551,395.86868 854.18001,395.65282 852.41213,395.09864 C 847.31368,393.50041 847.27804,393.46381 849.8564,392.47313 C 851.21323,391.9518 855.93823,391.29314 860.3564,391.00943 C 872.46733,390.23176 872.2898,390.31241 873.7283,384.93402 C 874.8496,380.74163 874.80612,380.03356 873.36259,378.97802 C 871.87143,377.88765 871.90542,377.68314 873.74113,376.7007 C 874.85039,376.10704 876.81389,375.62132 878.10447,375.62132 C 879.79339,375.62132 880.76831,374.7806 881.58335,372.62132 C 882.29043,370.74804 883.42438,369.62132 884.60259,369.62132 C 885.64036,369.62132 887.0423,369.06847 887.718,368.39277 C 888.41549,367.69528 892.06819,367.07276 896.168,366.95265 C 906.55006,366.64849 917.66728,365.05059 919.39868,363.61366 C 920.2186,362.93318 920.88945,361.47643 920.88945,360.37643 C 920.88945,358.91607 921.22673,358.64306 922.13945,359.3646 C 922.82695,359.9081 924.73945,360.82767 926.38945,361.4081 C 928.33426,362.09224 928.7329,362.49119 927.52282,362.54237 C 926.08652,362.60312 925.7952,363.14004 926.25916,364.87132 C 926.5908,366.10882 926.86829,367.42893 926.8758,367.8049 C 926.88331,368.18087 928.12695,368.63703 929.63945,368.81861 L 932.38945,369.14874 L 929.18686,370.88619 C 926.96448,372.09187 923.10548,372.72346 916.57847,372.94978 C 908.97389,373.21346 905.9008,373.81647 900.53106,376.09863 C 895.09635,378.40842 893.88945,379.33767 893.88945,381.21232 C 893.88945,382.47235 894.33945,383.7814 894.88945,384.12132 C 896.35194,385.02519 896.11018,386.62132 894.51077,386.62132 C 893.7525,386.62132 892.5863,387.93899 891.91921,389.54946 C 891.25213,391.15994 890.07254,392.72082 889.29789,393.01808 C 888.52325,393.31534 887.88945,394.3062 887.88945,395.21999 C 887.88945,396.59532 888.65733,396.79487 892.3486,396.37881 C 895.14882,396.06319 896.94549,396.28945 897.17801,396.987 C 897.44344,397.7833 898.31771,397.74722 900.26592,396.85956 C 904.04106,395.13949 907.88945,395.27163 907.88945,397.12132 C 907.88945,398.05465 908.83389,398.62132 910.38945,398.62132 C 912.54434,398.62132 912.88945,399.07088 912.88945,401.87792 C 912.88945,403.66905 913.30804,406.59405 913.81964,408.37792 C 914.55946,410.95752 914.45713,411.62132 913.31964,411.62132 C 912.39721,411.62132 911.88945,412.6864 911.88945,414.62132 C 911.88945,416.81177 912.36169,417.62134 913.63945,417.6214 C 915.15314,417.62146 915.38945,418.65133 915.38945,425.24799 C 915.38945,431.78613 915.10403,433.05506 913.38945,434.13965 C 911.6362,435.24871 911.08102,435.04876 908.88945,432.51896 z",name:"Bitlis"},14:{path:"M 281.88945,287.07033 C 278.20841,286.15848 277.23155,285.42471 276.52182,283.03846 C 276.04463,281.43403 275.26634,279.35468 274.7923,278.41768 C 274.26028,277.36607 274.34134,276.46007 275.0041,276.05046 C 275.59463,275.6855 275.85423,274.21741 275.58099,272.78805 C 275.26032,271.11056 275.7878,269.29086 277.06884,267.65526 C 278.70385,265.56775 280.14017,265.03323 285.22147,264.62132 L 291.38945,264.12132 L 291.69695,259.87132 L 292.00445,255.62132 L 299.44695,255.62132 C 303.74195,255.62132 306.88945,256.04423 306.88945,256.62132 C 306.88945,257.90175 312.97963,257.91773 316.32435,256.64607 C 318.44571,255.83953 318.8933,255.01783 318.91169,251.89607 C 318.94279,246.61656 321.40533,243.99839 327.0121,243.28372 C 333.88275,242.40795 336.92332,240.70196 337.59447,237.34623 C 337.91312,235.75299 338.67234,234.2971 339.28164,234.11093 C 339.89094,233.92475 345.66654,233.48156 352.11631,233.12606 L 363.84317,232.47969 L 364.51844,236.70264 C 365.29331,241.54841 367.87332,244.62132 371.16694,244.62132 C 372.41957,244.62132 374.46918,245.33908 375.72164,246.21634 C 377.51322,247.47121 377.93387,248.59081 377.69415,251.46634 C 377.40724,254.90789 377.15587,255.15256 373.38945,255.65638 C 366.93884,256.51924 365.02819,258.83173 368.43191,261.65656 C 369.76206,262.76049 369.03941,263.53082 363.18191,267.25299 C 359.44606,269.62696 355.91505,271.581 355.33523,271.59531 C 354.75541,271.60961 352.05541,273.05907 349.33523,274.81631 C 346.03306,276.94953 342.3955,278.29113 338.38945,278.85333 C 323.23193,280.9805 324.15719,281.01326 321.60479,278.25917 C 319.42583,275.90804 318.94067,275.7928 315.5729,276.8264 C 312.55731,277.75191 311.59966,277.67734 310.15001,276.40414 C 305.58983,272.39903 300.88945,273.50789 300.88945,278.58878 C 300.88945,281.44142 298.23504,284.60582 295.81071,284.64328 C 295.02902,284.65536 292.58945,285.4572 290.38945,286.42515 C 287.02623,287.9049 285.67307,288.00761 281.88945,287.07033 z",name:"Bolu"},15:{path:"M 197.88945,502.68034 C 197.88945,502.1628 198.33945,501.46124 198.88945,501.12132 C 200.59038,500.07009 199.99425,497.16787 197.79533,495.79461 C 195.94866,494.64135 195.87028,494.28796 197.13203,492.80407 C 197.91898,491.87856 200.26375,487.97132 202.34264,484.12132 C 204.42152,480.27132 207.42,475.48156 209.00594,473.47742 C 212.46813,469.10224 212.62989,467.25734 209.66723,465.93536 C 207.76798,465.0879 207.4316,464.12098 207.35277,459.28255 C 207.26426,453.84972 207.364,453.62115 209.82499,453.61699 C 211.23544,453.61461 215.98945,451.78486 220.38945,449.55088 C 226.19075,446.60543 229.21396,445.61979 231.38945,445.96459 C 234.91105,446.52275 248.59571,444.84889 250.99094,443.56701 C 252.30875,442.86173 253.37194,443.77447 256.20787,448.04569 C 259.06493,452.34873 260.72138,453.76192 264.57956,455.18794 C 270.83916,457.50154 271.88945,458.37424 271.88945,461.26184 C 271.88945,462.57943 273.64408,466.54564 275.78863,470.07564 C 279.57332,476.30537 279.6328,476.54361 277.81416,478.18946 C 276.78365,479.12205 275.66042,480.76758 275.31808,481.84619 C 274.77499,483.55733 274.10255,483.72447 270.04255,483.15751 C 267.48334,482.80012 263.36901,482.51968 260.89958,482.53429 C 257.68264,482.55333 255.3644,481.83646 252.72267,480.00574 C 247.4622,476.36023 241.55519,475.753 237.86844,478.47873 C 236.27789,479.65467 232.56753,481.51813 229.62318,482.61976 C 221.93215,485.49734 220.59856,486.72678 220.44743,491.07893 C 220.27831,495.94896 217.73176,497.93694 212.74082,497.09516 C 209.60115,496.56562 208.43965,496.97787 204.41422,500.05055 C 199.67573,503.66752 197.88945,504.38748 197.88945,502.68034 z",name:"Burdur"},16:{path:"M 193.88945,318.92086 C 193.06445,318.62245 190.91957,317.70321 189.12306,316.87809 C 187.29081,316.03656 184.62196,315.62482 183.04453,315.9403 C 179.7279,316.60363 177.81542,314.80917 176.29594,309.60818 C 175.28515,306.14837 175.23742,306.12377 170.14303,306.43706 C 165.32151,306.73357 164.91487,306.57115 163.46652,303.77035 C 162.48325,301.86892 160.61376,300.35541 158.30873,299.59468 C 155.53917,298.68064 154.25337,297.43278 152.8133,294.26139 C 151.77934,291.98435 150.92349,288.98395 150.91141,287.59383 C 150.89933,286.2037 150.12141,283.9698 149.18269,282.62959 C 148.24397,281.28937 147.18562,277.92992 146.8308,275.16413 C 146.24299,270.58223 146.46036,269.77941 149.27721,266.12838 C 150.97755,263.92449 152.41581,262.0039 152.47335,261.8604 C 152.75914,261.1476 168.83332,264.05867 171.78331,265.35747 C 174.42856,266.5221 175.97261,266.61972 178.78331,265.80003 C 182.5115,264.71277 187.51012,265.19854 188.46324,266.74072 C 189.42381,268.29495 197.61591,267.77653 198.25108,266.12132 C 198.56766,265.29632 199.7408,264.62132 200.85807,264.62132 C 201.97533,264.62132 202.88945,264.24106 202.88945,263.77631 C 202.88945,262.36763 199.34407,259.62132 197.52553,259.62132 C 196.13812,259.62132 196.01603,259.25333 196.87249,257.653 C 197.68648,256.13205 198.43315,255.87263 200.15768,256.51161 C 201.38515,256.96642 207.89842,257.3572 214.6316,257.38002 C 225.2314,257.41594 227.20143,257.16376 229.31626,255.50023 C 231.74597,253.58902 231.78791,253.59325 237.32411,256.30846 C 243.32369,259.25093 243.98694,260.13822 240.91554,261.11304 C 237.20337,262.29124 234.88945,266.5009 234.88945,272.07618 C 234.88945,276.57077 234.41651,277.81385 231.33827,281.41007 C 228.17623,285.10421 227.86178,285.97316 228.46866,289.34007 C 228.84353,291.41976 229.59256,293.67889 230.13319,294.36036 C 230.67381,295.04183 230.81975,297.17933 230.45748,299.11036 C 229.80351,302.59633 229.76178,302.62109 224.59414,302.58952 C 221.61235,302.5713 218.5604,301.93065 217.44832,301.08952 C 214.15125,298.59574 211.88945,299.2139 211.88945,302.60878 C 211.88945,305.01596 211.09766,306.09606 207.81302,308.16957 C 205.28874,309.76308 203.15176,312.14761 202.20063,314.43211 C 200.12186,319.42508 198.18118,320.47322 193.88945,318.92086 z",name:"Bursa"},17:{path:"M 37.70422,313.12212 C 36.925933,312.32184 39.867496,305.62132 40.99711,305.62132 C 42.269906,305.62132 43.737719,299.3488 43.805194,293.62132 C 43.840831,290.59632 44.451435,286.11435 45.162091,283.6614 C 46.382966,279.44733 46.660376,279.19431 50.194444,279.07159 C 53.876077,278.94374 56.786379,276.67241 56.857647,273.87132 C 56.875138,273.18382 57.56445,272.62132 58.38945,272.62132 C 59.358976,272.62132 59.8897,271.64878 59.890156,269.87132 C 59.890743,267.58541 60.349095,267.09471 62.606176,266.96366 C 64.102532,266.87677 66.172962,265.75447 67.218201,264.46366 C 68.261391,263.17537 69.471095,262.12132 69.906432,262.12132 C 70.341768,262.12132 72.545412,260.46282 74.803418,258.43577 C 78.419643,255.18942 79.354606,254.81865 82.649167,255.32453 C 84.706323,255.6404 86.933518,256.3262 87.598491,256.84853 C 89.079884,258.01215 94.361865,256.96195 95.81119,255.21562 C 96.454752,254.44017 98.937077,253.98954 102.13029,254.06848 C 107.23335,254.19463 107.38084,254.27937 107.09947,256.92349 C 106.85591,259.21229 107.53117,260.08653 111.31786,262.38491 C 113.79747,263.88993 115.84046,265.43761 115.85784,265.8242 C 115.87523,266.21078 114.08945,267.97359 111.88945,269.74156 C 107.56123,273.21981 106.88968,275.85911 109.57726,278.82885 C 110.53095,279.88267 111.58264,283.3872 111.9952,286.88611 C 112.9917,295.33754 111.58546,298.38038 105.03567,301.94522 C 99.840846,304.7726 96.578907,304.8604 95.558142,302.20033 C 95.274303,301.46066 92.493601,300.05388 89.378804,299.07415 C 84.075186,297.40596 83.536621,297.39853 80.898202,298.95708 C 79.348667,299.87241 76.274499,300.62132 74.066717,300.62132 C 70.587767,300.62132 69.775039,301.07037 67.971009,303.98935 C 66.826152,305.84177 65.88945,308.00402 65.88945,308.79435 C 65.88945,309.80304 63.72864,310.58287 58.63945,311.41086 C 47.946961,313.15048 38.484048,313.92399 37.70422,313.12212 z M 47.907647,273.94624 C 47.917656,273.49254 49.267656,271.1411 50.907647,268.72084 C 53.868453,264.35135 54.57813,261.64333 53.13945,260.20465 C 51.530495,258.5957 52.513472,257.03832 56.369446,255.08723 C 58.580448,253.96847 61.28945,252.56091 62.38945,251.95931 C 67.13933,249.36155 72.167441,247.62132 74.923377,247.62132 C 76.554717,247.62132 77.88945,247.17132 77.88945,246.62132 C 77.88945,246.07132 78.67695,245.60701 79.63945,245.58952 C 84.587412,245.4996 86.553568,239.51814 82.38945,237.22345 C 81.28945,236.61728 80.212825,236.01969 79.996949,235.89549 C 79.781074,235.77128 80.173674,234.98378 80.869394,234.14549 C 81.652694,233.20167 83.813104,232.62132 86.54328,232.62132 C 91.907524,232.62132 93.161557,234.63832 89.933588,238.07434 C 88.610534,239.48266 87.858211,241.36716 88.05762,242.77346 C 88.348624,244.82571 87.572084,245.44776 81.889996,247.71408 C 78.314696,249.1401 75.50195,250.8276 75.63945,251.46408 C 75.77695,252.10056 75.203312,252.62132 74.364699,252.62132 C 73.526086,252.62132 72.403949,253.76809 71.87106,255.16969 C 71.314735,256.63293 69.438243,258.32973 67.464192,259.15454 C 65.573303,259.9446 63.715506,261.09375 63.335754,261.7082 C 62.956002,262.32265 61.131166,263.45803 59.280564,264.23126 C 56.753301,265.28722 55.974773,266.18191 56.152641,267.82588 C 56.33108,269.47514 55.341883,270.60084 52.13945,272.3929 C 49.80195,273.70095 47.897639,274.39995 47.907647,273.94624 z M 23.0294,267.28995 C 21.942416,265.98021 22.197542,265.51336 24.710383,264.21392 C 26.339735,263.37135 29.634078,262.55583 32.031145,262.40165 C 36.122471,262.13849 36.372815,262.27068 36.117889,264.55955 C 35.75289,267.83671 35.657021,267.89312 29.599006,268.3955 C 25.648575,268.7231 23.98671,268.44344 23.0294,267.28995 z",name:"Çanakkale"},18:{path:"M 442.38945,283.69166 C 440.18945,282.63121 436.81445,281.30884 434.88945,280.75305 C 432.96445,280.19727 429.58945,279.06001 427.38945,278.22582 C 423.12293,276.60805 414.88945,276.08398 414.88945,277.43019 C 414.88945,277.87507 414.29004,279.0588 413.55744,280.0607 C 412.30048,281.77968 412.04346,281.70446 408.99635,278.72582 C 407.22036,276.98973 405.29598,274.21733 404.71995,272.56492 C 404.14391,270.91252 402.3714,268.88767 400.78103,268.06526 C 397.79237,266.51976 397.15589,265.19272 398.88945,264.12132 C 400.57948,263.07682 399.99681,260.62132 398.05893,260.62132 C 397.05214,260.62132 394.01464,259.4982 391.30893,258.12551 C 388.60322,256.75281 384.70195,255.62781 382.63945,255.62551 C 379.05135,255.6215 378.88945,255.47633 378.88945,252.2629 C 378.88945,249.30287 379.53953,248.47285 384.36966,245.26582 C 387.73767,243.02959 390.09005,240.67024 390.47302,239.14437 C 391.01118,237.00018 391.37494,236.81078 393.14027,237.75556 C 396.01397,239.29351 402.48673,237.26933 403.18067,234.61568 C 403.62294,232.92444 404.54846,232.62132 409.27015,232.62132 C 414.54621,232.62132 414.92473,232.79169 416.49095,235.87132 C 417.40002,237.65882 418.32364,239.32089 418.54345,239.56481 C 418.76326,239.80873 420.25566,238.57123 421.8599,236.81481 C 424.68323,233.72366 425.03771,233.62132 432.92098,233.62132 L 441.06525,233.62132 L 440.41128,237.87132 C 440.0516,240.20882 439.51196,243.58382 439.21209,245.37132 L 438.66687,248.62132 L 443.55565,248.62132 C 449.45327,248.62132 452.34472,250.44074 453.89047,255.12442 C 454.52522,257.04772 455.35905,258.62132 455.74343,258.62132 C 456.12781,258.62132 456.27064,260.42132 456.06084,262.62132 C 455.80494,265.30467 456.07975,266.62132 456.89571,266.62132 C 457.7491,266.62132 457.91187,267.68827 457.44121,270.19712 C 457.03912,272.34042 457.2143,274.30781 457.87847,275.1081 C 458.68941,276.08521 458.68883,276.62727 457.87633,277.12943 C 457.26569,277.50682 456.35981,278.88417 455.86326,280.19021 C 455.35675,281.52244 453.35485,283.23568 451.30282,284.09307 C 446.76818,285.98776 447.1926,286.00688 442.38945,283.69166 z",name:"Çankırı"},19:{path:"M 458.13945,304.30261 C 456.90195,302.48483 455.88945,300.38236 455.88945,299.63044 C 455.88945,296.64789 453.25617,291.02108 450.88945,288.94641 L 448.38945,286.7549 L 452.18296,285.15651 C 454.26939,284.2774 456.25029,282.78484 456.58496,281.83972 C 456.91963,280.8946 457.89257,279.30865 458.74706,278.31538 C 459.89927,276.97604 460.03091,276.07175 459.25657,274.81538 C 458.68232,273.88365 458.41402,271.43382 458.66037,269.37132 C 458.96541,266.81731 458.71368,265.62132 457.87105,265.62132 C 456.98769,265.62132 456.81678,264.47727 457.27346,261.62132 C 457.63625,259.35253 457.50873,257.62132 456.97882,257.62132 C 456.46497,257.62132 455.52522,256.04772 454.89047,254.12442 C 454.25573,252.20113 452.7707,249.95113 451.59042,249.12442 C 449.52879,247.6804 449.52197,247.61751 451.41694,247.52443 C 452.50182,247.47114 455.11844,247.50854 457.23166,247.60755 C 459.34487,247.70656 462.43157,247.22519 464.09098,246.53784 C 466.84361,245.39767 467.06429,244.96152 466.60838,241.56248 C 466.33354,239.51338 465.1124,236.48932 463.89473,234.84233 C 461.01821,230.95164 461.77966,227.52575 466.79569,221.79037 C 470.28793,217.7973 471.04396,217.41843 476.48644,216.93414 C 481.98429,216.44492 482.91568,216.69359 490.05626,220.55709 C 495.69243,223.6066 497.98078,225.44455 498.69604,227.49634 C 499.27685,229.16246 500.90891,230.80096 502.74538,231.56165 C 505.69416,232.78307 505.79849,233.02852 505.26056,237.47862 C 504.95189,240.03211 504.05421,243.56654 503.26571,245.33291 C 501.73034,248.7724 502.17401,252.59453 504.55039,256.40019 C 505.82292,258.43809 506.48991,258.61055 510.85781,258.03113 C 515.24112,257.44966 516.01093,257.65189 518.36129,260.00225 C 519.80178,261.44274 521.5224,262.63451 522.1849,262.65063 C 522.8474,262.66676 524.90059,264.05387 526.74753,265.73311 L 530.10561,268.78626 L 527.67967,271.45379 C 523.71535,275.81291 521.67567,279.69582 522.23221,281.82405 C 522.51967,282.92327 522.27298,284.88021 521.68403,286.17282 C 520.82211,288.06453 519.71468,288.58138 516.00733,288.82217 L 511.40145,289.12132 L 510.39545,296.01278 C 509.32272,303.36136 509.16092,303.53888 502.13945,305.07104 C 499.46435,305.65478 498.88945,305.47805 498.88945,304.07194 C 498.88945,302.58988 498.1958,302.45568 493.65147,303.0585 C 490.77058,303.44066 486.93249,304.45612 485.12239,305.31507 C 482.11254,306.74334 481.36479,306.73007 476.37271,305.15987 C 471.04256,303.48334 470.83461,303.49209 467.53376,305.53213 C 462.85774,308.42207 460.75668,308.14708 458.13945,304.30261 z",name:"Çorum"},20:{path:"M 184.76463,500.8011 C 182.04115,498.36768 181.50748,497.22334 181.70794,494.24679 C 182.0552,489.0904 179.68384,485.28166 173.91684,481.73319 C 171.15178,480.03183 168.88945,478.18565 168.88945,477.63056 C 168.88945,477.07548 168.28419,476.62132 167.54444,476.62132 C 165.6156,476.62132 162.88945,473.30986 162.88945,470.96689 C 162.88945,469.86857 161.80738,467.9534 160.48485,466.71095 C 159.16233,465.4685 157.78176,462.86084 157.41694,460.91616 C 156.8258,457.76511 157.11466,457.07142 160.07154,454.54116 C 161.89639,452.9796 164.85195,451.19892 166.63945,450.58409 C 168.42695,449.96926 169.88945,448.82001 169.88945,448.0302 C 169.88945,447.24039 170.39278,445.78823 171.00795,444.80318 C 171.93145,443.32443 171.58275,442.46847 169.00795,439.89367 C 164.97949,435.86521 164.69881,431.12094 168.38945,429.43937 C 171.68377,427.93838 171.51957,426.72589 167.5364,423.14023 L 164.22482,420.15914 L 167.56879,415.50458 C 169.55699,412.73715 171.90799,410.65977 173.36747,410.38077 C 174.71756,410.12268 180.39371,410.29808 185.98112,410.77054 C 195.26979,411.55596 196.41786,411.45786 199.38279,409.62543 C 203.536,407.05861 204.11363,407.09763 207.79283,410.19348 C 209.6057,411.7189 211.77339,412.63453 213.11956,412.44348 C 215.00304,412.17616 215.54819,411.22759 216.32194,406.87132 C 216.83481,403.98382 217.78662,401.62132 218.43708,401.62132 C 219.08754,401.62132 220.79269,400.69867 222.2263,399.57099 C 224.40768,397.85512 225.2045,397.71238 227.11116,398.69596 C 231.06483,400.73551 233.88945,403.88828 233.88945,406.26171 C 233.88945,407.52217 234.67521,410.20121 235.63557,412.21513 L 237.3817,415.87679 L 232.53131,420.14491 C 229.8636,422.49237 226.49034,424.68084 225.03519,425.00816 C 220.51861,426.02414 217.05545,429.71349 216.32566,434.28656 C 215.70849,438.15387 215.86598,438.55782 218.52756,439.93418 C 220.10419,440.74949 222.20104,442.30814 223.18722,443.39786 C 224.94013,445.3348 224.85162,445.45175 219.23356,448.62239 C 216.07287,450.40617 211.83368,452.08737 209.81315,452.35838 L 206.13945,452.85113 L 206.13945,459.26794 C 206.13945,464.79763 206.43323,465.83734 208.26445,466.78849 C 209.4332,467.39555 210.5562,468.03552 210.76,468.21066 C 210.96381,468.3858 209.77873,470.23734 208.12649,472.32521 C 206.47425,474.41307 203.42152,479.27132 201.34264,483.12132 C 199.26375,486.97132 196.9664,490.82616 196.2374,491.68763 C 195.5084,492.54911 194.31026,494.99188 193.57486,497.11601 C 192.83947,499.24015 191.29872,501.60159 190.15098,502.36366 C 188.27005,503.61256 187.73867,503.45841 184.76463,500.8011 z",name:"Denizli"},21:{path:"M 765.88945,467.92092 C 761.30638,467.02037 760.59452,465.68898 761.1979,459.1463 C 761.89967,451.53681 760.86434,446.24017 758.58953,445.80208 C 757.64331,445.61985 755.34496,446.41275 753.48207,447.56407 L 750.09502,449.65739 L 744.74633,445.09183 C 741.58332,442.39194 737.65926,440.08855 735.14355,439.45508 C 732.80379,438.86593 730.88945,438.19648 730.88945,437.96742 C 730.88945,437.73836 731.66841,436.36212 732.62046,434.90909 C 734.32037,432.31471 734.31205,432.27755 732.15723,432.84104 C 729.19515,433.61564 727.39447,431.41471 728.81647,428.75768 C 730.68539,425.26557 727.88791,421.74294 724.79877,423.69853 C 721.8473,425.56695 721.12372,424.66119 722.76592,421.15389 C 723.66125,419.24169 725.1479,417.67184 726.08043,417.65389 C 727.01047,417.63597 728.04953,417.17132 728.38945,416.62132 C 729.28938,415.1652 732.95431,415.39348 738.7553,417.26699 C 743.83296,418.90689 743.86466,418.9035 747.8004,416.29895 C 749.97268,414.8614 753.80637,413.16743 756.31972,412.53456 C 760.42245,411.50148 760.88945,411.08944 760.88945,408.50261 C 760.88945,406.9179 761.22695,405.61567 761.63945,405.60877 C 768.72744,405.49016 786.49599,404.36449 787.09169,403.99633 C 787.53046,403.72515 787.88945,402.6503 787.88945,401.60776 C 787.88945,400.56522 788.95522,398.64646 790.25783,397.34385 C 792.47968,395.12199 793.06968,395.02285 799.79385,395.74132 C 805.11845,396.31026 808.01309,396.13616 811.0512,395.06425 C 813.30054,394.27064 815.81199,393.62132 816.6322,393.62132 C 817.45241,393.62132 819.8261,391.8669 821.90706,389.72261 C 826.32147,385.17386 831.29335,383.59665 833.6835,385.9868 C 835.47012,387.77342 838.88741,396.23239 838.88864,398.87132 C 838.88908,399.83382 838.32695,400.63093 837.63945,400.64267 C 835.72642,400.67535 830.83429,408.18639 830.20656,412.0546 C 829.7963,414.58276 830.2446,416.4599 831.89727,419.13397 C 833.66943,422.00138 833.9297,423.23391 833.12481,424.94713 C 828.2115,435.40514 826.27878,438.84638 824.24589,440.75619 C 821.30429,443.51968 821.11206,447.60527 823.88945,448.33157 C 824.98945,448.61923 825.88945,449.2121 825.88945,449.64906 C 825.88945,450.72655 820.02692,455.59387 818.56272,455.73201 C 815.15496,456.05351 812.09439,455.28665 809.57084,453.479 C 805.84381,450.80928 803.88945,451.68424 803.88945,456.02255 C 803.88945,459.96667 801.80407,461.20075 796.94327,460.13314 C 794.49789,459.59604 793.68742,459.97556 791.78512,462.54856 C 789.01168,466.29984 787.05358,467.03339 779.38945,467.19221 C 776.08945,467.26059 772.26445,467.56306 770.88945,467.86435 C 769.51445,468.16565 767.26445,468.19111 765.88945,467.92092 z",name:"Diyarbakır"},22:{path:"M 67.514349,238.91289 C 67.163412,238.56195 63.091855,238.17004 58.466445,238.04198 C 47.052527,237.72598 45.88945,237.27093 45.88945,233.12132 C 45.88945,230.63435 46.411411,229.59043 47.88945,229.12132 C 48.98945,228.77219 49.88945,228.01885 49.88945,227.44722 C 49.88945,226.06237 59.994244,216.62132 61.476454,216.62132 C 63.03967,216.62132 64.158182,210.65005 62.882818,209.11333 C 62.325175,208.44141 62.07271,205.91833 62.321784,203.50649 C 62.570858,201.09465 62.800477,198.3927 62.832048,197.50216 C 62.869904,196.43434 64.117452,195.68373 66.495862,195.29776 C 68.479389,194.97588 70.660209,193.9495 71.342129,193.01692 C 72.052809,192.04501 74.034711,191.27864 75.985717,191.22132 L 79.38945,191.12132 L 79.38945,181.37228 C 79.38945,174.75482 79.024082,171.62293 78.252012,171.62228 C 77.626421,171.62175 76.051421,170.2754 74.752012,168.63039 C 73.452603,166.98539 71.710196,165.63538 70.879997,165.63039 C 70.049798,165.6254 68.808484,164.72132 68.121523,163.62132 C 67.121901,162.02067 67.123789,161.20767 68.130976,159.54973 C 69.177497,157.82704 70.039852,157.57941 73.251213,158.07942 C 77.690502,158.77062 79.88945,157.45948 79.88945,154.12132 C 79.88945,150.55115 82.162752,149.52646 90.812158,149.1979 L 98.88945,148.89107 L 98.88945,157.17947 C 98.88945,164.56147 98.616057,165.79278 96.38945,168.43895 C 93.365207,172.03306 93.248456,173.44865 95.895511,174.42786 C 97.810095,175.13611 97.741694,175.41811 94.395511,180.61191 C 90.622421,186.46835 90.014633,190.56006 92.072474,196.25092 C 92.974297,198.74487 92.979144,200.12905 92.092866,202.07421 C 90.781252,204.9529 85.770114,208.40477 81.618641,209.28929 C 78.217572,210.01393 77.087455,211.593 79.145592,212.74479 C 80.365538,213.4275 80.50254,214.38003 79.809847,217.36311 C 78.559845,222.74624 78.692893,228.02476 80.114409,229.44628 C 81.081022,230.41289 81.081022,231.08492 80.114409,232.63271 C 79.440682,233.71152 78.88945,235.27529 78.88945,236.10775 C 78.88945,237.17619 77.840797,237.62132 75.323709,237.62132 C 73.362551,237.62132 70.946718,238.05549 69.955191,238.58614 C 68.963665,239.11679 67.865286,239.26382 67.514349,238.91289 z",name:"Edirne"},23:{path:"M 741.65956,417.05809 C 741.34978,416.74832 738.72235,415.86862 735.82081,415.10321 C 731.10962,413.86043 730.24565,413.88855 727.74435,415.3661 C 725.05283,416.95603 724.84492,416.92812 722.42168,414.6516 C 720.17193,412.53806 719.51958,412.39927 716.37353,413.36482 C 713.059,414.38208 712.62403,414.2367 709.13373,410.94492 C 705.68658,407.69384 705.25363,407.54388 703.09529,408.85348 C 701.052,410.09328 699.82041,410.01288 692.93178,408.19 C 688.62061,407.04918 684.14743,405.25978 682.99137,404.21356 C 680.31875,401.79486 680.29259,397.47144 682.93612,395.07908 C 684.06179,394.06037 685.66056,391.79858 686.48895,390.05289 C 687.92245,387.03201 688.21503,386.90369 692.55428,387.39279 L 697.11346,387.90667 L 696.41356,383.764 C 695.93182,380.91261 696.07038,379.62132 696.85809,379.62132 C 697.58766,379.62132 697.38398,378.57421 696.29622,376.73279 C 694.06547,372.95641 694.99701,370.07333 697.93918,371.64793 C 699.56711,372.51918 699.76951,373.06091 698.8714,374.14307 C 698.1786,374.97784 698.03055,376.43555 698.49761,377.82333 C 699.25629,380.07757 699.43117,380.86031 699.73714,383.37132 C 699.96376,385.23119 702.88945,384.88552 702.88945,382.99888 C 702.88945,381.62638 703.13545,381.58059 704.48623,382.70164 C 705.83053,383.81731 706.22937,383.7653 707.0087,382.37272 C 708.15099,380.33156 714.80386,380.86633 716.49969,383.13563 C 718.02811,385.1809 718.88945,384.99553 718.88945,382.62132 C 718.88945,380.18623 720.18695,380.06168 722.40877,382.2835 C 723.60374,383.47847 724.27283,383.61903 724.78917,382.78357 C 725.31787,381.92812 726.01959,382.00888 727.44842,383.08959 C 728.51599,383.89706 730.17695,384.57202 731.13945,384.58952 C 732.10195,384.60701 732.88945,385.06601 732.88945,385.60953 C 732.88945,386.15305 733.90049,386.49055 735.13622,386.35953 C 738.91912,385.95845 738.71959,390.28264 734.80437,393.55121 C 728.85227,398.52024 734.14593,399.8241 742.65641,395.48522 C 747.11488,393.21216 751.48752,393.08069 752.66475,395.1843 C 754.00924,397.58676 758.5673,396.04101 759.35146,392.91666 C 760.03222,390.20429 759.2319,388.5021 758.08508,390.22322 C 756.9498,391.92702 753.72788,392.73212 752.41272,391.64064 C 751.73995,391.08228 749.74362,390.79379 747.97644,390.99955 C 746.20925,391.20531 743.67026,390.86688 742.33422,390.24749 C 737.12278,387.83145 740.92866,382.42202 749.06808,380.67643 C 751.77398,380.09612 754.52824,379.61825 755.18867,379.61449 C 756.89925,379.60475 760.88945,373.41712 760.88945,370.77426 C 760.88945,369.55144 760.20431,367.5053 759.36692,366.22728 C 757.99952,364.14036 758.00383,363.77128 759.4093,362.60484 C 760.59463,361.62111 761.25501,361.58688 762.13183,362.4637 C 764.27427,364.60614 767.73932,363.64598 772.38945,359.62132 C 774.93135,357.42132 777.41789,355.62132 777.91509,355.62132 C 779.3979,355.62132 780.78008,359.05983 779.93531,360.64714 C 778.64204,363.07722 777.76428,372.42592 778.77097,373.0481 C 779.28287,373.36447 779.50299,374.41036 779.26013,375.37232 C 778.97302,376.5095 779.87938,377.82094 781.85113,379.12132 C 783.51904,380.22132 784.88499,381.474 784.88657,381.90505 C 784.88816,382.33609 783.31445,383.61804 781.38945,384.75382 C 779.46445,385.8896 777.88945,387.44942 777.88945,388.2201 C 777.88945,388.99077 777.45528,389.62132 776.92463,389.62132 C 776.39398,389.62132 775.43674,390.59869 774.79743,391.79326 C 773.78386,393.68714 774.02028,394.29526 776.64416,396.54326 C 778.29917,397.96119 779.8768,400.08607 780.14999,401.26521 C 780.61302,403.26368 780.14876,403.45575 773.30504,404.09706 C 769.26712,404.47545 765.4927,404.49415 764.91746,404.13863 C 762.70912,402.7738 759.88945,404.69808 759.88945,407.56999 C 759.88945,410.08109 759.39253,410.50902 755.2715,411.5467 C 752.73163,412.18625 749.02717,413.81467 747.03937,415.16542 C 743.24638,417.74282 742.57905,417.97759 741.65956,417.05809 z",name:"Elazığ"},24:{path:"M 695.36395,365.87656 C 693.25556,362.41176 689.15655,360.95478 684.18887,361.90441 C 682.71891,362.18542 681.03769,362.23175 680.45283,362.00739 C 678.94607,361.42935 679.19682,345.3522 680.72051,344.8443 C 682.44343,344.26999 682.14215,340.65552 680.31285,339.95355 C 677.98527,339.06038 676.68193,334.92648 678.04152,332.74943 C 678.82913,331.48825 678.85903,330.38938 678.14065,329.10571 C 677.0433,327.14484 679.60317,319.70086 682.46093,316.54258 C 684.58953,314.19014 684.19596,312.08201 681.38945,310.80327 C 678.58566,309.52578 678.16582,307.46677 680.34101,305.66152 C 681.47567,304.71984 682.56712,304.73691 685.34036,305.73973 C 688.10082,306.73792 689.15459,306.75618 690.0888,305.82197 C 690.74916,305.16161 693.0107,304.62132 695.11445,304.62132 C 698.55625,304.62132 698.99899,304.32364 699.53372,301.64997 C 700.0546,299.04559 700.37411,298.81033 702.12078,299.74512 C 703.21681,300.3317 705.23885,300.59652 706.61419,300.33361 C 708.97803,299.88173 718.68346,303.67347 728.15652,308.74981 C 730.2284,309.86007 733.1534,310.65687 734.65652,310.52046 C 736.15963,310.38405 738.88217,310.61833 740.70661,311.04109 C 743.09031,311.59343 744.49733,311.3944 745.70661,310.33381 C 746.63217,309.52205 748.28945,308.57771 749.38945,308.23527 C 750.48945,307.89284 752.41718,306.02268 753.67331,304.07937 C 754.92943,302.13606 756.98371,300.15578 758.23837,299.67876 C 764.93654,297.13212 780.61042,297.30035 778.0197,299.89107 C 774.87024,303.04053 779.38574,307.62132 785.63979,307.62132 C 789.1306,307.62132 790.88945,309.24023 790.88945,312.45329 C 790.88945,315.25134 794.26904,321.16927 796.31539,321.95453 C 797.0774,322.24694 797.99798,323.83898 798.36114,325.49241 C 798.8065,327.52012 799.89506,328.81841 801.70543,329.48103 L 804.38945,330.46343 L 801.88945,330.61538 C 800.51445,330.69895 796.97371,331.11063 794.02115,331.53022 C 789.23605,332.21024 788.35127,332.03935 785.87679,329.95722 C 782.42667,327.05413 773.81233,326.73672 768.40863,329.31356 C 765.05695,330.91187 764.58274,330.90612 759.86588,329.20996 C 754.2185,327.17919 751.40729,327.66953 752.16154,330.55379 C 752.5289,331.95859 752.00875,332.62555 750.18976,333.08208 C 748.83084,333.42315 746.65541,334.84982 745.35549,336.25247 C 742.81501,338.99369 740.88945,338.69612 740.88945,335.5623 C 740.88945,333.20891 739.60691,333.10512 736.41006,335.19977 C 735.08509,336.06792 731.83842,336.89367 729.19524,337.03477 C 726.55206,337.17587 723.12266,337.81557 721.57435,338.45632 C 720.02605,339.09707 718.12702,339.62132 717.35429,339.62132 C 716.58156,339.62132 714.95123,340.97132 713.73133,342.62132 C 712.51143,344.27132 710.92296,345.62132 710.20139,345.62132 C 709.47982,345.62132 708.88945,346.10164 708.88945,346.68871 C 708.88945,347.29417 708.04027,347.48658 706.92722,347.13331 C 703.99819,346.20367 700.70931,348.3438 701.07877,350.93898 C 701.29795,352.47858 702.19938,353.21451 704.13945,353.43774 C 707.89951,353.87038 707.59045,355.23838 703.38945,356.75748 C 701.46445,357.45357 699.88945,358.31337 699.88945,358.66815 C 699.88945,359.02292 698.22155,359.21193 696.18301,359.08817 C 693.66643,358.93538 692.20754,358.2602 691.63851,356.98496 C 690.71834,354.92279 684.88945,351.16021 684.88945,352.6284 C 684.88945,353.13114 685.60684,354.12271 686.48364,354.83189 C 687.36045,355.54108 689.13511,357.17219 690.42733,358.45658 C 692.05749,360.07687 693.4079,360.59155 694.83806,360.13763 C 697.32436,359.34851 698.1749,361.03339 697.68441,365.77612 L 697.33845,369.12132 L 695.36395,365.87656 z",name:"Erzincan"},25:{path:"M 847.97054,347.74073 C 843.44593,341.07795 841.39517,340.16434 833.24872,341.18217 C 829.57312,341.64141 827.88945,341.50141 827.88945,340.73654 C 827.88945,340.12317 827.15355,339.62132 826.25412,339.62132 C 825.35469,339.62132 823.53544,338.45237 822.21135,337.02365 C 820.53167,335.21124 819.13667,334.58611 817.59668,334.95569 C 809.89764,336.8034 798.66206,337.79393 797.58781,336.71968 C 795.77833,334.9102 798.09433,332.17076 801.7403,331.80796 C 805.52153,331.43171 805.99134,328.93598 802.44834,328.04674 C 800.77856,327.62766 799.80084,326.49437 799.35405,324.46012 C 798.99479,322.82445 798.0774,321.24694 797.31539,320.95453 C 795.26904,320.16927 791.88945,314.25134 791.88945,311.45329 C 791.88945,308.24023 790.1306,306.62132 786.63979,306.62132 C 783.63398,306.62132 777.88945,304.10979 777.88945,302.79564 C 777.88945,301.0846 780.46404,299.62132 783.47457,299.62132 C 788.57754,299.62132 800.88945,288.68806 800.88945,284.1565 C 800.88945,282.37928 798.78698,282.12379 797.20232,283.70845 C 796.41947,284.4913 795.92712,284.4913 795.4433,283.70845 C 795.07376,283.11053 793.68881,282.62132 792.36562,282.62132 C 791.01053,282.62132 789.50771,281.77655 788.92463,280.68706 C 787.47818,277.98434 787.63401,276.62132 789.38945,276.62132 C 791.1294,276.62132 791.39778,273.52965 789.79681,271.92868 C 789.00662,271.13849 789.03984,270.1835 789.9168,268.47868 C 791.69825,265.01556 797.06008,259.62132 798.72095,259.62132 C 800.46392,259.62132 804.88945,255.02996 804.88945,253.22167 C 804.88945,251.91705 810.67582,248.98164 814.38184,248.40622 C 815.47765,248.23607 816.93334,246.9303 817.6167,245.50451 L 818.85918,242.91216 L 823.87432,245.39412 C 828.72967,247.79701 828.88945,248.01279 828.88945,252.16692 C 828.88945,254.52687 829.16259,257.16955 829.49644,258.03953 C 830.47517,260.59006 833.65099,259.8637 836.10951,256.52701 C 839.49662,251.93006 842.40403,250.71077 847.12249,251.90844 C 850.71337,252.8199 851.28849,252.67682 853.691,250.27432 C 855.88834,248.07698 856.36586,246.61497 856.57674,241.43909 C 856.94515,232.39652 858.34097,231.30698 868.39042,232.21764 C 875.29405,232.84323 876.64722,233.30837 879.80594,236.14166 C 881.77687,237.90952 884.35178,239.65506 885.52796,240.02064 C 886.70414,240.38621 888.81748,241.75205 890.22427,243.05582 C 892.56698,245.22697 892.6932,245.74821 891.72516,249.25417 C 891.14385,251.35949 890.93765,255.37431 891.26693,258.176 C 891.81329,262.8247 891.62629,263.49044 889.12754,265.79228 C 884.55593,270.00363 881.59166,271.62066 878.41694,271.63497 C 870.88374,271.66895 869.06432,274.03133 872.85747,278.85354 C 874.11789,280.4559 876.26905,281.58631 878.84037,281.99748 C 881.5103,282.42442 883.37999,283.44034 884.42168,285.03016 C 885.28321,286.34503 887.74669,288.58461 889.89606,290.007 C 892.04543,291.42938 894.26905,293.46209 894.83743,294.52411 C 895.75598,296.24045 895.12287,296.82553 889.14111,299.7882 C 885.02719,301.82575 882.27313,303.84464 882.05573,304.9822 C 881.65291,307.08995 887.8096,313.95703 892.13945,316.22942 C 893.78893,317.0951 894.88945,318.50105 894.88945,319.74263 C 894.88945,322.70015 891.30295,327.3352 886.82925,330.15933 C 883.89475,332.01179 882.55829,333.80799 881.18672,337.74287 C 879.03423,343.91807 874.96582,348.61244 871.73824,348.64506 C 870.44641,348.65811 866.68945,349.78103 863.38945,351.14042 C 854.11526,354.96083 852.65496,354.63885 847.97054,347.74073 z",
+ name:"Erzurum"},26:{path:"M 326.88945,360.68457 C 326.06445,360.20281 322.75998,359.12326 319.54617,358.28556 C 312.94718,356.56548 309.88945,354.31124 309.88945,351.16633 C 309.88945,345.93439 305.52156,345.34358 297.60987,349.50537 C 294.12509,351.33847 291.20513,352.21316 289.59684,351.90572 C 287.74102,351.55095 286.76693,351.98173 285.94278,353.52166 C 284.7128,355.81992 278.57519,356.53988 277.33395,354.53151 C 276.93086,353.8793 275.31988,353.69319 273.3219,354.06801 C 270.49797,354.59779 269.73116,354.30937 268.34696,352.19682 C 267.44692,350.82319 265.81723,349.41579 264.72542,349.06926 C 262.21442,348.2723 258.3707,339.74007 259.85432,338.25645 C 260.42364,337.68713 260.88945,335.65577 260.88945,333.74232 C 260.88945,331.04364 260.10443,329.54428 257.38945,327.05745 C 255.17188,325.02624 253.88945,322.93258 253.88945,321.34344 C 253.88945,318.67875 252.28341,317.62132 248.23623,317.62132 C 245.49738,317.62132 242.88945,315.54628 242.88945,313.36706 C 242.88945,310.38761 247.34659,307.62132 252.1472,307.62132 C 255.79905,307.62132 257.10512,307.1515 258.33516,305.39536 C 259.19268,304.17109 261.3557,302.48116 263.14187,301.63997 C 265.2738,300.63595 266.50923,299.26308 266.73813,297.64363 C 268.06834,288.23249 286.43858,284.61697 288.19915,293.4198 C 288.89661,296.90714 292.41766,298.20343 297.38945,296.80324 C 301.7485,295.57563 315.50739,296.05935 317.24484,297.5013 C 318.05495,298.17364 321.56325,299.03819 325.04105,299.42253 C 331.2909,300.11321 331.38805,300.17143 333.40849,304.43751 C 334.73321,307.2346 336.60969,309.31406 338.74008,310.34584 L 342.0275,311.93799 L 339.45848,314.32012 C 336.38643,317.16868 336.35768,317.41153 338.77934,320.05687 C 341.3014,322.81188 346.18566,334.48521 346.12851,337.62132 C 346.10346,338.99632 345.75895,341.37459 345.36293,342.90636 C 344.84376,344.91446 345.12958,346.22917 346.38746,347.61912 C 348.65015,350.11937 347.79154,352.1909 344.19433,352.91034 C 342.61748,353.22571 339.24725,355.3147 336.70494,357.55253 C 332.1046,361.60191 329.74806,362.35387 326.88945,360.68457 z",name:"Eskişehir"},27:{path:"M 635.88945,523.62132 C 631.6241,521.28614 629.88945,521.14158 629.88945,523.12132 C 629.88945,525.9649 627.04207,524.6138 625.92936,521.24224 C 624.49761,516.904 622.38858,515.07332 617.24534,513.70432 C 613.98132,512.83552 612.95533,512.01937 612.41421,509.86129 C 612.03635,508.35431 610.80439,506.26103 609.67652,505.20957 C 607.09885,502.80653 604.60914,504.08878 603.88594,508.19184 C 603.4983,510.39107 602.61344,511.26902 600.04096,512.0068 C 598.20316,512.53387 595.41239,514.25222 593.83926,515.82535 C 591.10919,518.55543 590.82909,518.62215 587.68424,517.29147 C 585.87211,516.52471 583.57308,514.98042 582.57531,513.85972 C 578.2058,508.95192 585.15521,497.83699 595.72108,492.83429 C 599.07782,491.24495 601.4004,489.40762 601.98007,487.88297 C 603.26893,484.49302 605.00974,485.43537 607.68077,490.9689 C 610.72404,497.27361 612.22568,497.66705 616.71,493.33461 C 622.24459,487.98747 630.98613,482.62132 634.1621,482.62132 C 637.48166,482.62132 641.88945,478.65435 641.88945,475.66677 C 641.88945,474.36374 642.54278,473.62132 643.68945,473.62132 C 644.67945,473.62132 646.01882,473.09195 646.66582,472.44495 C 647.56765,471.54312 648.2745,471.65981 649.69456,472.94495 C 650.71337,473.86695 652.8615,474.62746 654.46819,474.63497 C 659.36659,474.65787 661.88945,475.72002 661.88945,477.75939 C 661.88945,478.81059 660.79112,480.16463 659.43857,480.7809 C 658.00142,481.4357 656.72873,483.07658 656.36163,484.74799 C 656.0173,486.31571 655.3202,487.8551 654.81251,488.16887 C 653.36043,489.06631 653.73383,497.00463 655.4177,501.03469 C 656.30351,503.15474 657.98501,505.08735 659.4177,505.63206 C 660.77716,506.14893 661.88945,507.20652 661.88945,507.98226 C 661.88945,508.75801 662.56168,510.68164 663.38329,512.25701 C 665.20909,515.75783 665.29807,517.62125 663.63945,517.62155 C 662.95195,517.62167 659.91445,518.95382 656.88945,520.58187 C 653.73074,522.28188 649.81824,523.55885 647.69847,523.58164 C 645.66843,523.60346 643.72937,524.07132 643.38945,524.62132 C 642.46412,526.11853 639.80256,525.76366 635.88945,523.62132 z",name:"Gaziantep"},28:{path:"M 702.38945,298.61617 C 701.28945,298.13779 698.21951,297.4608 695.56737,297.11177 C 692.7633,296.74274 689.90646,295.63833 688.7409,294.47277 C 687.56378,293.29565 685.01399,292.31831 682.56299,292.10476 C 680.26754,291.90476 676.36445,291.0958 673.88945,290.30706 L 669.38945,288.87298 L 669.71278,284.33929 C 669.90949,281.58102 669.41998,278.61415 668.46278,276.76312 C 667.59745,275.08976 666.88945,271.4768 666.88945,268.73434 C 666.88945,263.83971 666.8297,263.74228 663.63945,263.43468 C 660.87037,263.16769 660.33973,262.68441 660.05348,260.1687 C 659.86869,258.54475 659.07918,256.74475 658.29902,256.1687 C 657.08959,255.27568 657.17635,254.34494 658.88775,249.85333 C 662.1496,241.29253 662.72393,240.70582 667.56686,240.98719 C 669.91529,241.12363 672.14859,241.54713 672.52976,241.92829 C 672.91092,242.30946 676.00304,242.62132 679.40113,242.62132 C 684.29269,242.62132 685.9534,242.20814 687.37481,240.63749 C 688.63888,239.24072 689.89222,238.83489 691.61023,239.26609 C 693.26543,239.68152 694.97639,239.19382 696.92939,237.74991 C 698.51288,236.57919 700.41169,235.62132 701.14896,235.62132 C 701.88623,235.62132 702.91695,235.2241 703.43945,234.73861 C 703.96195,234.25313 706.71663,233.64758 709.56096,233.39295 L 714.73246,232.92999 L 715.18895,239.02565 C 715.44002,242.37827 715.81285,246.00403 716.01745,247.0829 C 716.27798,248.45668 715.49048,249.50679 713.38945,250.58729 C 709.09195,252.79738 699.06787,263.06224 698.32787,266.01067 C 697.48398,269.37297 698.28965,270.38272 702.78133,271.59221 C 704.87542,272.15609 708.01183,273.9774 709.75112,275.63956 L 712.91348,278.66168 L 710.45377,279.59687 C 707.09892,280.87238 704.73848,284.7811 704.14537,290.04312 C 703.74152,293.62608 704.0316,294.76261 705.71861,296.20707 C 709.01993,299.03375 706.89139,300.57404 702.38945,298.61617 z",name:"Giresun"},29:{path:"M 741.88945,309.63415 C 741.88945,309.05883 739.95177,308.84304 737.24498,309.11694 C 733.87519,309.45791 731.61097,309.05779 728.99498,307.65902 C 727.01194,306.59869 722.01445,304.18229 717.88945,302.28925 C 707.75342,297.63763 704.4948,294.44066 705.23572,289.87492 C 706.00687,285.12292 708.47687,281.66111 711.9635,280.44566 C 713.57277,279.88467 714.88945,279.19288 714.88945,278.90837 C 714.88945,277.3846 706.93735,271.44203 703.7497,270.58369 C 697.4118,268.87707 697.96403,266.39012 706.54009,258.01721 C 709.51307,255.11466 713.30507,252.0616 714.96676,251.23264 C 717.90848,249.76512 718.1687,249.84231 724.84988,254.16434 C 728.6239,256.60574 732.93549,259.06853 734.4312,259.63719 C 735.9269,260.20586 738.39886,261.55992 739.92443,262.64623 C 744.82627,266.13665 747.72171,264.59022 748.809,257.90104 C 749.13222,255.91254 750.00502,254.0828 750.74854,253.83496 C 751.78181,253.49053 751.93899,254.11929 751.41548,256.50283 C 750.82421,259.19486 751.00811,259.62132 752.7603,259.62132 C 753.87668,259.62132 755.19369,260.34255 755.68701,261.22406 C 757.02012,263.6062 760.44317,262.53753 760.15124,259.83033 C 759.80511,256.62058 761.49541,257.12507 763.31621,260.77496 C 765.35954,264.87091 765.35709,267.01475 763.30999,266.2292 C 756.53505,263.62941 748.95977,276.27864 752.89174,283.6256 C 753.7322,285.19602 753.08636,286.17944 748.89174,289.7164 C 744.58856,293.34489 743.88945,294.43977 743.88945,297.55045 C 743.88945,300.6574 744.38222,301.43189 747.38945,303.05139 C 751.51892,305.27525 751.79036,306.3571 748.43047,307.20038 C 747.07803,307.53982 745.44793,308.4484 744.80802,309.21943 C 743.45996,310.84375 741.88945,311.06691 741.88945,309.63415 z",name:"Gümüşhane"},30:{path:"M 1001.2037,487.37132 C 997.67738,481.88705 997.3506,477.62132 1000.4568,477.62132 C 1004.1355,477.62132 1000.8939,469.93895 996.42793,468.07295 C 989.75631,465.28537 983.97482,466.62627 982.48964,471.30566 C 981.69701,473.803 978.88162,474.59274 970.88945,474.5596 C 959.87631,474.51394 955.80503,473.40301 952.26441,469.47742 C 948.56938,465.38061 947.72487,463.0028 949.45492,461.56698 C 950.46292,460.73042 950.77807,459.3907 950.38637,457.60731 C 949.90036,455.3945 950.42946,454.35437 953.34191,451.7972 C 955.45285,449.94378 956.89097,447.75889 956.8932,446.40187 C 956.89808,443.43174 963.44482,440.62517 970.39996,440.61155 C 975.66798,440.60124 984.28972,437.26908 986.75276,434.29147 C 988.88457,431.71427 990.10343,433.39531 989.34743,437.87002 C 988.68799,441.77322 988.74624,441.88844 991.02687,441.19198 C 992.32629,440.79517 995.38014,440.05342 997.8132,439.54366 C 1000.2463,439.03389 1002.9463,438.00459 1003.8132,437.25633 C 1006.5624,434.88348 1011.5174,434.49945 1013.9517,436.47057 C 1015.8806,438.03256 1015.9835,438.49795 1014.8137,440.37104 C 1013.7094,442.13935 1013.7094,442.9163 1014.8138,444.97979 C 1015.6288,446.50269 1015.8964,448.7712 1015.5062,450.85073 C 1014.9775,453.66904 1015.3502,454.77711 1017.7192,457.43054 C 1019.286,459.18547 1020.9778,460.63343 1021.4787,460.64822 C 1021.9796,460.66302 1023.9645,462.00736 1025.8895,463.63564 C 1028.2218,465.60844 1029.0061,466.85058 1028.2403,467.35874 C 1027.6083,467.77816 1026.9333,469.24632 1026.7403,470.62132 C 1026.4395,472.76529 1025.8717,473.12132 1022.7535,473.12132 C 1019.7591,473.12132 1018.259,473.96382 1014.2535,477.89501 C 1006.452,485.55163 1003.0983,488.62132 1002.5345,488.62132 C 1002.2446,488.62132 1001.6458,488.05882 1001.2037,487.37132 z",name:"Hakkari"},31:{path:"M 562.76082,585.97743 C 562.36305,584.6209 560.98585,583.58177 559.01082,583.14798 C 556.76653,582.65505 555.88945,581.89229 555.88945,580.43346 C 555.88945,578.7243 555.46028,578.51222 553.1666,579.08789 C 550.48271,579.76151 550.4701,579.74217 552.28513,577.7366 C 553.61763,576.2642 553.93643,574.93081 553.43873,572.91161 C 552.64154,569.6774 546.30507,557.99622 544.8651,557.10627 C 543.18758,556.06951 543.78287,554.10497 546.85132,550.55143 C 548.48036,548.66487 550.16786,546.80435 550.60132,546.41694 C 555.72077,541.84146 559.95446,538.60501 562.56858,537.26856 C 566.23541,535.39392 566.7814,534.00014 566.54595,527.11517 C 566.31936,520.48909 563.19586,515.22318 558.48087,513.51822 C 554.33537,512.01918 554.22265,511.71417 556.79418,508.95396 C 558.40411,507.2259 559.4094,507.0173 563.28947,507.60615 C 565.81428,507.98932 568.76415,509.10294 569.84475,510.08086 C 571.27474,511.37499 572.70516,511.69087 575.10048,511.24151 C 577.99164,510.69912 578.72234,511.03873 581.11435,514.03654 C 582.61191,515.91338 585.42395,517.97265 587.36332,518.6127 C 591.36912,519.93473 591.48916,520.16447 589.3118,522.34182 C 588.4441,523.20953 587.94764,524.73584 588.20857,525.73363 C 588.4695,526.73141 588.04016,528.08128 587.25448,528.73333 C 586.45977,529.39289 585.86688,531.51663 585.91815,533.5201 C 585.96885,535.50077 585.70513,538.98718 585.33212,541.26767 C 584.63061,545.55651 586.12993,549.52181 590.17012,554.06286 C 593.0918,557.34675 591.95046,559.1133 586.86401,559.18 C 582.59366,559.236 580.20618,559.80531 576.88945,561.55851 C 575.8508,562.10753 575.37144,564.01862 575.33089,567.77209 C 575.26154,574.19247 574.5762,575.61367 571.88845,574.91081 C 570.49856,574.54734 569.88945,574.88066 569.88945,576.00469 C 569.88945,576.91951 569.07437,577.62132 568.01189,577.62132 C 565.35165,577.62132 564.08819,579.53585 563.71396,584.134 C 563.47021,587.12898 563.233,587.58776 562.76082,585.97743 z",name:"Hatay"},32:{path:"M 281.07356,475.87132 C 276.72711,469.74826 272.88945,462.3996 272.88945,460.19976 C 272.88945,457.37605 271.81547,456.49278 265.57956,454.18794 C 261.70196,452.75474 260.06672,451.35144 257.14295,446.94791 C 254.18021,442.48571 253.13845,441.60205 251.45283,442.12141 C 239.42608,445.82697 238.18344,445.39827 241.94046,438.83973 C 244.12225,435.03103 246.14052,432.97443 249.17772,431.46502 C 251.49417,430.31381 254.73945,427.55388 256.38945,425.33186 C 258.67527,422.25358 261.02866,420.63073 266.27522,418.51483 C 270.06239,416.98748 274.78739,414.43112 276.77522,412.83403 C 278.76304,411.23693 281.80524,409.19831 283.53565,408.30377 C 285.26606,407.40922 287.51606,405.54597 288.53565,404.16322 C 290.48176,401.52394 296.88945,399.47241 296.88945,401.48861 C 296.88945,402.10311 298.19607,403.7701 299.79306,405.19302 C 301.40274,406.62726 302.9769,409.27393 303.32553,411.13227 C 303.78689,413.59155 305.89144,416.30053 311.22685,421.30286 C 315.22671,425.05301 318.85084,428.70353 319.28047,429.41512 C 320.42526,431.3112 318.05135,433.62132 314.95813,433.62132 C 313.4806,433.62132 311.3982,434.28201 310.33058,435.08952 C 309.26296,435.89702 307.58783,436.57202 306.60807,436.58952 C 303.51207,436.64479 303.57476,439.45582 306.78349,444.45619 C 308.49177,447.11831 309.88945,450.08204 309.88945,451.04224 C 309.88945,452.00244 308.26602,454.36463 306.28182,456.29155 C 303.22041,459.26458 302.76651,460.2566 303.2839,462.84359 C 303.61924,464.52029 303.42533,467.63121 302.85299,469.75673 C 301.93671,473.15953 301.45166,473.62132 298.79373,473.62132 C 294.36583,473.62132 287.12432,475.63339 285.79724,477.23242 C 284.1436,479.22494 283.27683,478.97518 281.07356,475.87132 z M 283.88945,440.69275 C 283.88945,439.63203 284.65099,438.00264 285.58176,437.07187 C 286.72201,435.93162 287.27407,433.74199 287.27407,430.35965 C 287.27407,426.09606 286.86459,425.01323 284.55629,423.17266 C 283.06152,421.98077 282.14821,420.6959 282.52671,420.31739 C 282.90521,419.93889 283.36146,418.29047 283.54058,416.65424 C 284.02628,412.21763 280.99856,410.93559 277.37944,414.04541 C 274.9911,416.09765 274.71669,416.88691 275.30368,420.0158 C 275.6757,421.99883 276.52219,423.62821 277.18476,423.63663 C 277.84734,423.64505 279.01144,424.04588 279.77164,424.52735 C 280.94629,425.2713 280.94717,425.86963 279.77753,428.51204 C 279.02056,430.22214 278.06108,431.62132 277.64534,431.62132 C 277.2296,431.62132 276.88945,432.97132 276.88945,434.62132 C 276.88945,436.27132 277.3491,437.62132 277.91089,437.62132 C 278.47268,437.62132 279.44491,438.74632 280.0714,440.12132 C 281.41808,443.07695 283.88945,443.44683 283.88945,440.69275 z",name:"Isparta"},33:{path:"M 372.38945,568.09404 L 369.38945,566.61229 L 369.46502,556.87262 L 369.5406,547.13295 L 375.96502,545.33436 C 379.49846,544.34513 384.05812,543.55104 386.0976,543.56971 C 391.33125,543.61761 394.76984,542.06611 395.87555,539.15789 C 396.68607,537.02604 397.27153,536.74774 399.85761,537.26495 C 404.56195,538.20582 403.71308,535.40397 397.94268,530.94438 C 395.00307,528.67253 392.36569,525.59154 391.44268,523.35108 C 388.96827,517.34482 389.28507,516.62132 394.38945,516.62132 C 396.86445,516.62132 398.88945,517.07132 398.88945,517.62132 C 398.88945,519.76816 401.50741,518.47181 402.50402,515.83148 C 403.37314,513.52893 404.63147,512.74292 409.70816,511.33148 C 413.09126,510.39089 417.60536,509.62132 419.73949,509.62132 C 422.13728,509.62132 424.61557,508.83799 426.2263,507.57099 C 428.27048,505.96304 429.2563,505.74729 430.79542,506.57099 C 434.44294,508.52309 437.22242,507.63959 445.91837,501.76394 C 452.71445,497.17199 456.16607,495.55003 461.8952,494.25623 C 470.09601,492.40425 471.88886,491.32674 471.89077,488.24888 C 471.89175,486.65401 473.16388,485.55766 476.9716,483.87008 C 485.82022,479.94838 486.58402,479.95455 488.25811,483.96122 C 489.52378,486.9904 490.26186,487.53596 493.45998,487.80629 C 498.09756,488.1983 499.82662,490.50168 498.01888,493.87948 C 496.28504,497.11919 497.78603,503.00407 500.45262,503.42134 C 501.51788,503.58803 503.34555,504.19708 504.51412,504.77477 C 506.39333,505.70378 506.50999,506.16637 505.52389,508.77885 C 504.57571,511.29086 504.75056,512.32609 506.69313,515.70137 C 509.20065,520.05827 508.91512,521.59186 505.58043,521.67776 C 504.37539,521.70881 501.81445,522.28076 499.88945,522.94878 C 496.75946,524.03495 496.03111,523.92326 492.9999,521.89233 C 487.83209,518.42987 481.10468,518.99667 475.85846,523.33654 C 470.66288,527.63452 466.8577,530.53636 463.13945,533.0361 C 460.80195,534.60757 458.88945,536.17748 458.88945,536.52479 C 458.88945,536.8721 456.86445,539.26954 454.38945,541.85243 C 451.26471,545.11337 449.88752,547.40014 449.88313,549.33495 C 449.87843,551.40436 449.075,552.57772 446.76073,553.89506 C 443.90144,555.52263 443.54711,555.5354 442.46102,554.05009 C 440.82943,551.81876 436.69652,552.60378 435.30314,555.40969 C 433.58677,558.86602 430.79024,560.55424 426.72278,560.58952 C 424.70612,560.60701 422.88159,561.14489 422.66829,561.7848 C 422.40952,562.56112 418.1774,563.05673 409.9502,563.27419 C 403.01196,563.45758 397.04477,564.07745 396.30466,564.69169 C 395.58125,565.29206 392.49451,565.89973 389.44522,566.04205 C 385.98952,566.20335 383.21,566.92624 382.06652,567.96108 C 379.81098,570.00231 376.34932,570.04988 372.38945,568.09404 z",name:"Mersin"},34:{path:"M 210.10993,235.38932 C 208.9156,234.14192 205.90749,231.32132 203.42522,229.12132 C 200.94296,226.92132 198.90694,224.77488 198.90073,224.35145 C 198.89453,223.92802 199.98889,221.83996 201.33264,219.71131 C 202.6764,217.58266 203.50416,215.56936 203.17211,215.23731 C 202.84006,214.90526 203.38536,213.73082 204.3839,212.62745 C 206.8154,209.94068 211.35909,210.05385 220.22148,213.02191 C 224.16386,214.34224 230.65195,216.19072 234.63945,217.12963 C 238.62695,218.06855 241.88945,219.04287 241.88945,219.29478 C 241.88945,220.67795 239.64444,223.62132 238.58946,223.62132 C 237.91316,223.62132 235.69864,224.51167 233.6683,225.59986 C 230.21668,227.44982 229.79451,227.47381 227.1725,225.96898 C 224.53559,224.4556 224.15998,224.48505 220.87884,226.46242 C 218.51455,227.88725 216.90467,229.91818 215.88594,232.76114 C 214.06427,237.84489 212.94753,238.35303 210.10993,235.38932 z M 199.96203,233.98646 C 197.69977,231.11046 197.33386,229.62132 198.88945,229.62132 C 199.43945,229.62132 199.88945,230.041 199.88945,230.55393 C 199.88945,231.06687 200.78945,231.77219 201.88945,232.12132 C 202.98945,232.47045 203.88945,233.62577 203.88945,234.68871 C 203.88945,237.36701 202.41359,237.10312 199.96203,233.98646 z M 182.13945,224.86951 C 178.27874,224.61014 176.88945,224.11706 176.88945,223.0062 C 176.88945,222.12872 176.156,221.61166 175.13945,221.77251 C 174.17695,221.92481 172.23728,221.28225 170.82908,220.3446 C 165.04233,216.49154 154.60535,214.63824 149.53963,216.56422 C 147.6245,217.29235 146.92634,217.15983 146.47453,215.98243 C 145.3296,212.9988 145.93925,210.83785 149.84855,204.02299 C 157.13638,191.31851 157.40464,190.67592 156.21539,188.77163 C 155.40835,187.47935 155.44994,186.57529 156.37457,185.31078 C 157.54854,183.70528 157.71183,183.70387 159.0078,185.28807 C 163.27953,190.50982 192.89483,207.2103 200.07165,208.44454 C 204.00229,209.12051 204.00469,209.1238 202.07323,211.19533 C 201.00965,212.33604 200.13945,214.51372 200.13945,216.03462 C 200.13945,219.12818 196.97525,222.99952 196.18622,220.87132 C 195.4244,218.81651 193.6137,219.45885 194.1701,221.58653 C 194.90659,224.40288 191.01222,225.4656 182.13945,224.86951 z",name:"İstanbul"},35:{path:"M 91.220802,426.84727 C 90.578046,426.43838 89.903046,424.54866 89.720802,422.64789 C 89.432845,419.64453 88.96087,419.10503 86.116896,418.52831 C 84.316991,418.16332 81.655726,416.58216 80.202974,415.01461 C 78.091643,412.73645 76.692134,412.16019 73.228714,412.14292 C 70.207533,412.12786 68.894857,411.70038 68.892636,410.73085 C 68.890884,409.96609 67.909685,407.37859 66.712195,404.98085 C 64.728088,401.00806 64.205433,400.62132 60.820603,400.62132 C 57.692633,400.62132 57.007212,401.01598 56.478806,403.12132 C 55.741191,406.06021 51.902423,406.68465 51.868099,403.87132 C 51.844459,401.93377 44.407043,396.1834 43.027463,397.03602 C 42.548567,397.332 41.41025,396.74929 40.497868,395.74112 C 38.978711,394.06247 38.973874,393.79614 40.440437,392.579 C 41.735157,391.50448 42.193397,391.49508 42.832965,392.52992 C 44.387192,395.04472 52.88945,388.75332 52.88945,385.08845 C 52.88945,384.25795 51.821878,383.09202 50.517067,382.49751 C 49.065665,381.83621 47.706933,379.9555 47.017067,377.65293 C 45.480376,372.52391 45.596597,370.88459 47.575421,369.77718 C 50.217886,368.29839 53.601515,370.44443 55.293078,374.67207 C 56.124741,376.7506 57.27415,378.74104 57.847321,379.09528 C 59.366803,380.03437 59.122586,382.62132 57.51445,382.62132 C 56.71445,382.62132 56.13945,383.66677 56.13945,385.12132 C 56.13945,386.49632 56.5332,387.62132 57.01445,387.62132 C 57.4957,387.62132 57.88945,388.71976 57.88945,390.0623 C 57.88945,391.40484 58.33945,392.7814 58.88945,393.12132 C 59.452266,393.46916 59.88945,392.66737 59.88945,391.28733 C 59.88945,387.26123 64.803063,386.96599 64.874137,390.98782 C 64.882559,391.46439 67.92695,391.57459 71.63945,391.23272 C 75.35195,390.89084 79.51445,390.62277 80.88945,390.63699 C 83.989789,390.66907 87.88945,388.68919 87.88945,387.08305 C 87.88945,386.29459 85.780769,385.83508 81.743689,385.74382 C 75.087455,385.59336 73.533606,384.53367 72.349852,379.33744 C 72.001044,377.8063 70.629759,375.84204 69.302552,374.97243 C 67.555821,373.82792 66.88945,372.47679 66.88945,370.07963 C 66.88945,366.3555 68.833883,365.32827 72.711063,367.00412 C 75.375308,368.15571 77.215785,366.37279 76.489015,363.34433 C 76.156977,361.96072 77.039596,361.30603 80.476012,360.38693 C 82.903403,359.7377 84.88945,358.6766 84.88945,358.02893 C 84.88945,356.20798 80.287057,353.62132 77.047078,353.62132 C 75.445072,353.62132 73.592061,352.96791 72.929276,352.16931 C 71.352091,350.26892 72.473394,346.88815 74.940602,346.10508 C 77.670455,345.23866 77.366239,342.0072 74.262641,338.9036 L 71.635831,336.27679 L 75.012641,333.45032 C 76.869886,331.89575 79.51445,330.32423 80.88945,329.95805 C 82.26445,329.59186 84.51445,328.46831 85.88945,327.46126 C 89.079136,325.12515 92.214191,324.89235 98.14035,326.55158 C 102.19558,327.68697 103.15716,328.47097 104.82233,331.99957 C 105.97877,334.45013 106.94341,339.09811 107.20148,343.46314 C 107.78331,353.3041 106.04553,355.53004 96.819943,356.76095 C 91.586475,357.45922 89.971541,358.13106 88.144417,360.37013 C 85.268089,363.89495 85.312571,365.68242 88.38945,370.21646 C 89.76445,372.24263 90.88945,374.9922 90.88945,376.32661 C 90.88945,380.23258 92.593606,382.34324 96.310283,383.04049 C 98.221549,383.39905 101.60845,385.21559 103.83672,387.07726 C 106.06499,388.93893 109.26883,390.76537 110.95636,391.13602 C 112.64388,391.50666 114.28573,392.55498 114.6049,393.46562 C 115.62875,396.38678 119.94724,401.62132 121.33335,401.62132 C 122.82746,401.62132 123.88945,399.48451 123.88945,396.47826 C 123.88945,394.68826 124.34414,394.56369 128.63945,395.1769 C 133.9748,395.9386 134.5468,396.29039 135.0528,399.12132 C 135.3385,400.7197 136.41233,401.22258 140.40036,401.62556 C 145.54463,402.14538 151.07743,405.23553 152.87386,408.59219 C 154.40738,411.4576 152.16174,416.95208 149.76254,416.20476 C 148.73234,415.88387 147.00523,415.34796 145.92452,415.01386 C 144.38131,414.53678 143.59036,415.18066 142.2393,418.01386 C 141.29315,419.99796 139.81487,421.68943 138.95424,421.77268 C 138.0936,421.85593 134.91445,422.05886 131.88945,422.22364 C 128.86445,422.38842 123.5204,422.81313 120.01379,423.16744 C 114.49718,423.72483 113.25631,423.52934 110.80429,421.71648 C 106.40156,418.4614 102.846,418.99566 98.127115,423.62132 C 93.900486,427.76446 93.186707,428.09786 91.220802,426.84727 z",name:"İzmir"},36:{path:"M 896.08991,294.16195 C 895.4736,292.80929 893.17357,290.51418 890.97873,289.0617 C 888.78389,287.60923 886.29893,285.36901 885.45659,284.08345 C 884.48139,282.59511 882.41075,281.44659 879.75618,280.92163 C 875.77809,280.13492 870.6467,275.53073 872.11338,274.06405 C 872.43788,273.73956 875.14273,273.14303 878.12415,272.73844 C 883.46734,272.01336 887.59468,269.82319 891.25888,265.76853 C 892.77469,264.09121 892.99816,262.83191 892.44023,259.11141 C 892.06179,256.58775 892.03269,253.24563 892.37558,251.68448 C 892.973,248.96442 893.30606,248.81726 900.36105,248.15615 L 907.7231,247.46627 L 908.3592,242.29379 C 909.6435,231.85033 909.69328,231.75031 914.21506,230.52656 C 925.43996,227.4887 926.59065,226.69362 928.02894,220.98163 C 928.77013,218.03812 929.65693,216.63165 930.75816,216.65312 C 932.80973,216.69312 935.88945,218.97946 935.88945,220.46251 C 935.88945,221.0789 937.12695,221.87794 938.63945,222.23816 C 943.14291,223.31071 946.88945,225.92141 946.88945,227.98701 C 946.88945,229.05098 948.08558,232.28377 949.54752,235.17101 C 952.05218,240.11754 952.13048,240.68879 950.90422,245.06857 C 950.18846,247.625 948.31733,251.09277 946.74615,252.77473 C 943.50392,256.24554 943.21035,257.81283 945.45374,259.67467 C 946.45943,260.50933 946.80573,261.81877 946.42351,263.34165 C 945.85604,265.60263 948.46114,271.62132 950.00723,271.62132 C 950.38484,271.62132 951.14036,272.90233 951.68616,274.46801 C 952.58506,277.0466 952.39255,277.48363 949.64209,279.10837 C 947.81001,280.19061 944.48046,280.93275 941.24755,280.97948 C 936.3579,281.05016 935.88945,281.25646 935.88945,283.33913 C 935.88945,285.1068 935.32583,285.62132 933.38945,285.62132 C 931.88988,285.62132 930.88945,286.19278 930.88945,287.04936 C 930.88945,288.04065 929.13083,288.68987 925.13945,289.17206 C 921.97695,289.55412 918.26445,290.44626 916.88945,291.15459 C 913.30401,293.00161 901.61075,296.62132 899.22947,296.62132 C 898.05519,296.62132 896.74165,295.59235 896.08991,294.16195 z",name:"Kars"},37:{path:"M 440.22047,246.00424 C 440.52306,244.96863 441.07421,241.53382 441.44526,238.37132 L 442.1199,232.62132 L 432.95692,232.62132 C 424.39557,232.62132 423.63721,232.79045 421.40665,235.19726 L 419.01935,237.7732 L 417.42872,234.69726 C 415.94789,231.83365 415.46197,231.62132 410.38945,231.62132 C 405.37183,231.62132 404.82057,231.38881 403.42084,228.68202 C 402.58486,227.06541 400.93521,225.06635 399.75496,224.23968 C 397.9942,223.00639 397.71527,222.08209 398.20086,219.08974 C 398.95941,214.41533 400.39972,212.73509 405.63945,210.41201 C 410.31347,208.33974 410.8682,207.2155 407.97955,205.66954 C 406.83595,205.05751 405.80293,203.06869 405.40489,200.7127 C 404.6311,196.13267 403.41841,195.45001 397.49777,196.26153 C 392.2058,196.98687 390.77595,195.43549 393.78468,192.23284 C 396.38803,189.46171 396.39923,188.5409 393.88945,183.62132 C 391.19639,178.3425 391.34477,177.62656 395.13945,177.59005 C 396.92695,177.57285 400.63945,176.45196 403.38945,175.09919 C 406.13945,173.74642 408.89596,172.63549 409.51502,172.63046 C 410.13408,172.62543 413.1209,171.52441 416.1524,170.18374 C 421.51414,167.81252 421.83745,167.78667 428.02683,169.23419 C 431.52627,170.05261 440.68945,171.10711 448.38945,171.57754 C 456.08945,172.04796 463.11277,172.72378 463.99682,173.07934 C 466.26617,173.99208 468.15847,181.06952 467.37424,185.71133 L 466.71768,189.5975 L 473.76148,189.35941 C 479.26464,189.1734 481.17632,189.49097 482.50167,190.81134 C 484.07732,192.38107 484.08163,192.67907 482.56227,194.9979 C 481.66259,196.371 479.69683,198.08549 478.19393,198.80788 C 474.74188,200.46716 473.16487,206.10403 474.82244,210.85895 C 475.78203,213.61163 475.6925,214.29217 474.23004,215.36154 C 473.28247,216.05442 471.78849,216.62132 470.91008,216.62132 C 468.45825,216.62132 461.83367,225.19022 461.18228,229.20423 C 460.74586,231.89358 461.12911,233.4542 462.77148,235.67563 C 463.96185,237.28569 465.19223,239.8852 465.50565,241.45231 C 465.9933,243.89058 465.66245,244.4727 463.21218,245.48764 C 461.63734,246.13996 458.33298,246.62733 455.86915,246.57069 C 453.40531,246.51405 448.75264,246.78708 445.52988,247.17743 C 440.09655,247.83553 439.71032,247.75018 440.22047,246.00424 z",name:"Kastamonu"},38:{path:"M 525.38945,457.03474 C 522.63945,456.36296 518.8825,455.77011 517.04067,455.71732 L 513.6919,455.62132 L 515.7045,452.21021 C 517.40349,449.33064 517.64208,447.57758 517.2356,440.96021 C 516.66815,431.72201 515.16583,429.56111 508.7082,428.69459 C 505.03944,428.2023 504.3077,427.69755 503.52799,425.12132 C 501.23483,417.54455 500.66353,416.62132 498.26813,416.62132 C 494.26673,416.62132 495.47541,413.53496 501.63945,408.01263 L 507.38945,402.86125 L 506.01406,399.49129 C 505.25759,397.63781 504.4227,394.67459 504.15874,392.90636 C 503.89479,391.13813 503.1242,389.23111 502.44633,388.66852 C 501.28454,387.70432 501.68568,384.82081 504.50484,373.87132 C 504.8703,372.45192 508.88945,372.13674 508.88945,373.52748 C 508.88945,374.02587 511.17775,374.74837 513.97457,375.13303 C 518.55594,375.76313 519.32367,375.5806 521.72457,373.29048 C 523.19025,371.89242 525.62695,370.28107 527.13945,369.70969 C 529.9106,368.66283 530.92702,365.3806 528.87314,364.11124 C 527.00222,362.95495 528.89406,361.74304 533.66276,361.04303 C 536.99375,360.55405 539.4976,359.35588 542.14233,356.98525 C 544.20642,355.13509 546.27417,353.62132 546.73734,353.62132 C 548.19246,353.62132 550.88701,357.1941 550.94478,359.20006 C 550.97521,360.25675 552.41917,362.24632 554.15359,363.62132 C 556.82761,365.74121 558.57114,366.17507 565.62103,366.47487 C 570.48335,366.68164 574.45841,366.39402 575.19575,365.78207 C 575.99203,365.12123 576.99681,365.07743 577.92299,365.66321 C 580.30214,367.16794 584.15987,366.75382 587.66362,364.61758 C 592.17874,361.86471 594.17446,362.10902 595.72149,365.60399 C 596.66157,367.72779 598.15659,368.92068 600.91334,369.74662 C 605.70483,371.18219 606.60948,373.25408 603.89342,376.57182 C 602.74549,377.97405 601.03749,380.78576 600.09786,382.82008 C 599.15824,384.8544 597.37032,386.98527 596.12472,387.55535 C 594.87912,388.12543 593.35947,389.6904 592.74771,391.03305 C 591.8395,393.02636 592.00276,394.08402 593.63754,396.79778 C 595.73425,400.27835 595.58063,402.54159 593.15054,403.97265 C 592.11646,404.58161 591.88641,405.79158 592.34248,408.22265 C 592.95155,411.46928 592.84689,411.62132 590.00286,411.62132 C 586.73402,411.62132 584.30018,414.28622 581.55487,420.87132 C 579.6428,425.45775 577.4856,425.69115 576.26736,421.44341 C 575.33525,418.19334 570.98899,414.83084 567.54382,414.69441 C 563.43266,414.5316 558.63331,419.92166 552.9192,431.11902 C 551.95627,433.00597 549.58589,434.96833 546.52195,436.41509 C 543.84483,437.67919 541.00018,439.36773 540.20052,440.16739 C 539.40086,440.96705 538.02667,441.62132 537.14676,441.62132 C 536.26686,441.62132 534.73696,442.35433 533.747,443.25024 C 532.26213,444.59402 532.05043,445.86808 532.53757,450.52878 C 533.29502,457.77575 532.26405,458.7141 525.38945,457.03474 z",name:"Kayseri"},39:{path:"M 114.21348,198.00342 C 111.83937,195.48613 110.17556,194.61975 107.7066,194.61516 C 105.88217,194.61177 103.04328,193.90708 101.39796,193.04917 C 99.486478,192.05249 97.230043,191.71004 95.147955,192.10065 C 92.093767,192.67362 91.88945,192.53456 91.88945,189.88291 C 91.88945,188.32694 93.46445,184.60923 95.38945,181.62132 C 99.461058,175.30154 99.664686,174.05731 96.752021,173.29563 C 94.633154,172.74154 94.637496,172.70946 97.252021,169.60228 C 99.657998,166.74293 99.889557,165.70673 99.890671,157.7946 C 99.891737,150.22948 100.17921,148.79363 102.14067,146.55661 C 104.10732,144.31367 105.14221,144.0029 110.38945,144.0796 C 116.81673,144.17355 120.88945,146.00034 120.88945,148.78929 C 120.88945,149.71707 122.12695,151.40392 123.63945,152.53786 C 125.15195,153.67179 126.95203,155.07227 127.63963,155.65003 C 128.52143,156.39098 130.14206,156.29553 133.13963,155.32612 C 137.28825,153.98445 150.82271,153.84401 152.88922,155.12118 C 154.63131,156.19785 153.96982,159.36704 151.88945,159.91107 C 149.13027,160.63261 149.30384,164.41722 152.38945,170.81338 C 153.76445,173.66361 154.88945,176.78485 154.88945,177.74946 C 154.88945,178.71406 155.33945,179.7814 155.88945,180.12132 C 157.99127,181.42032 156.74526,182.62132 153.29575,182.62132 C 148.17277,182.62132 130.46043,188.33291 128.34935,190.66564 C 127.37266,191.74486 126.30056,194.30733 125.96691,196.36 C 125.40883,199.79336 125.04176,200.14391 121.38174,200.73883 C 117.76972,201.32594 117.10937,201.07395 114.21348,198.00342 z",name:"Kırklareli"},40:{path:"M 454.98447,378.62132 C 453.29238,375.87132 451.52601,373.62132 451.05921,373.62132 C 450.59241,373.62132 449.74158,372.59219 449.16847,371.33436 C 448.45307,369.76423 446.57172,368.62403 443.16622,367.69669 C 439.34991,366.65747 436.72811,364.89982 431.79772,360.07523 C 424.3265,352.76436 421.88945,349.97004 421.88945,348.71444 C 421.88945,346.85506 431.69984,339.62132 434.22153,339.62132 C 435.62651,339.62132 437.36406,338.81541 438.08275,337.8304 C 438.80143,336.84539 440.8407,335.02276 442.61445,333.78011 C 444.74361,332.28846 446.20501,330.16315 446.91527,327.52542 C 448.63656,321.13306 457.43305,317.03149 459.82717,321.50495 C 460.40076,322.57671 462.46323,323.68612 464.61235,324.07892 C 469.18405,324.9145 472.88945,327.15676 472.88945,329.08767 C 472.88945,329.8688 473.82257,331.1615 474.96306,331.96032 C 476.78615,333.23727 476.87676,333.67417 475.71306,335.57678 C 474.496,337.56662 474.74484,338.04563 478.80412,341.52693 C 483.12848,345.23558 483.18474,345.36165 481.55412,347.68968 C 480.63855,348.99684 479.88945,351.0912 479.88945,352.34383 C 479.88945,354.23934 480.42615,354.62132 483.08945,354.62132 C 485.57834,354.62132 486.02278,354.88799 485.08945,355.82132 C 484.42945,356.48132 483.88945,357.77957 483.88945,358.70631 C 483.88945,359.63305 482.75932,361.13179 481.37806,362.03683 C 479.42208,363.31843 479.00374,364.2285 479.48647,366.15184 C 480.00645,368.22361 479.74793,368.62132 477.88123,368.62132 C 476.18974,368.62132 475.775,369.07566 476.15166,370.51601 C 476.49391,371.82478 475.91149,372.74588 474.26829,373.49457 C 472.95993,374.0907 471.88945,375.19335 471.88945,375.94489 C 471.88945,376.69644 471.02688,378.09196 469.97264,379.04604 C 468.4699,380.40599 467.62001,380.54749 466.03838,379.70102 C 463.00333,378.07671 461.93496,378.37141 460.88945,381.12132 C 460.36668,382.49632 459.51641,383.62132 458.99998,383.62132 C 458.48354,383.62132 456.67656,381.37132 454.98447,378.62132 z",
+ name:"Kırşehir"},41:{path:"M 237.88945,255.07701 C 232.33314,252.15647 231.35417,252.11061 228.16232,254.62132 C 226.58898,255.85891 224.10554,256.62132 221.6476,256.62132 C 218.25683,256.62132 217.78092,256.36519 218.39591,254.87132 C 218.79216,253.90882 219.34188,252.33728 219.61753,251.379 C 220.3043,248.99143 226.74223,247.38554 236.38355,247.19685 C 243.0538,247.06631 244.43216,246.7573 244.70687,245.33086 C 244.98109,243.90697 244.22182,243.62132 240.16277,243.62132 C 237.48245,243.62132 234.76742,243.09929 234.12938,242.46125 C 233.41773,241.7496 229.4749,241.30734 223.92938,241.31713 C 218.95742,241.32591 214.88945,240.92 214.88945,240.4151 C 214.88945,239.91021 215.61062,237.29227 216.49205,234.59746 C 217.658,231.03277 218.9791,229.17596 221.34082,227.78251 C 224.36464,225.99842 224.76846,225.97732 227.23606,227.47457 C 229.72026,228.98189 230.14972,228.94713 234.13728,226.91594 C 236.47597,225.72465 239.18776,224.50599 240.16347,224.20781 C 241.13919,223.90962 242.31253,222.65186 242.77089,221.41277 C 243.54817,219.31158 244.10309,219.18071 251.01228,219.46905 C 257.34934,219.73352 258.81314,219.46918 261.13786,217.64056 C 263.11287,216.08702 264.31476,215.75996 265.5364,216.44362 C 267.03658,217.28316 266.91838,217.6833 264.43725,220.16443 C 260.64473,223.95695 259.56421,228.0917 261.42519,231.69044 C 263.38515,235.48058 263.2715,236.90163 260.88945,238.38925 C 259.53725,239.23371 258.88945,240.72127 258.88945,242.98191 C 258.88945,248.37601 255.15751,252.90861 249.86808,253.93874 C 247.40483,254.41847 244.71445,255.40303 243.88945,256.12665 C 242.63399,257.22784 241.65584,257.05672 237.88945,255.07701 z",name:"Kocaeli"},42:{path:"M 359.63945,517.07544 C 357.57695,514.78046 355.88945,512.20738 355.88945,511.35749 C 355.88945,510.5076 353.52695,508.47889 350.63945,506.84925 C 343.25428,502.68121 337.05846,496.13309 333.86533,489.12132 C 332.36252,485.82132 329.72875,481.80019 328.01251,480.18548 L 324.89207,477.24965 L 321.25345,478.98478 C 316.72593,481.14381 312.88198,480.4347 307.24578,476.40073 C 303.23219,473.5281 303.13306,473.32291 304.08802,469.86434 C 304.63026,467.90048 304.81328,464.99048 304.49472,463.39767 C 304.03892,461.11869 304.4722,459.98575 306.52829,458.08023 C 309.77449,455.07175 311.25818,455.84226 310.45571,460.11982 C 309.62068,464.57089 312.48955,465.83433 315.38383,462.29014 C 316.68309,460.69913 318.92285,459.58345 321.74336,459.12229 C 325.99148,458.42771 326.08205,458.33401 325.47071,455.26587 C 325.12611,453.53637 324.40435,451.97132 323.86681,451.78799 C 323.32926,451.60465 322.88945,450.81715 322.88945,450.03799 C 322.88945,449.25882 322.22302,448.62132 321.4085,448.62132 C 320.59398,448.62132 319.64375,447.49057 319.29689,446.10855 C 318.95002,444.72652 318.15395,443.26402 317.52784,442.85855 C 315.65919,441.6484 311.94836,435.89574 312.60975,435.23435 C 312.94692,434.89719 314.40778,434.62132 315.85612,434.62132 C 318.92893,434.62132 320.88945,432.97562 320.88945,430.39624 C 320.88945,429.39244 317.27164,425.09494 312.84988,420.84624 C 306.56049,414.803 304.68983,412.35578 304.25692,409.60475 C 303.71334,406.15055 303.83378,406.00576 311.04649,401.4423 C 315.08512,398.88706 319.62695,396.23479 321.13945,395.54835 C 324.62376,393.96703 324.66945,391.29774 321.23896,389.73471 L 318.58847,388.52706 L 321.81789,385.19515 C 323.98832,382.95583 325.22482,380.53982 325.58863,377.82746 C 325.96783,375.00031 326.69288,373.64448 328.00969,373.30013 C 330.8591,372.55499 330.41602,368.79158 327.38945,368.03196 C 325.47582,367.55167 324.88945,366.7551 324.88945,364.63575 C 324.88945,361.95802 325.03311,361.88319 329.25913,362.35952 C 331.91044,362.65836 333.8999,362.41343 334.31815,361.73668 C 335.52134,359.78989 337.69597,360.52829 339.13224,363.37132 C 343.05377,371.13376 345.18107,372.09174 352.56654,369.42112 C 355.45503,368.37663 356.47314,368.50637 360.41429,370.42112 C 362.90505,371.63123 365.99871,372.62132 367.28908,372.62132 C 370.486,372.62132 378.88083,368.80735 379.55587,367.04824 C 379.85703,366.26343 380.7649,365.62132 381.57336,365.62132 C 383.54343,365.62132 388.88945,360.1832 388.88945,358.17919 C 388.88945,356.97775 389.50517,356.73775 391.38013,357.20834 C 393.15324,357.65336 394.04837,357.37075 394.48712,356.22739 C 395.45548,353.70389 397.11624,354.28608 402.80762,359.14415 C 405.72187,361.63171 408.99557,364.14293 410.08251,364.72464 C 411.16945,365.30636 412.71814,367.3604 413.52404,369.28919 C 415.40932,373.80132 414.19626,375.34859 408.77347,375.34859 C 404.4109,375.34859 402.93032,376.61574 402.90476,380.37132 C 402.89634,381.60882 402.49191,382.62132 402.00603,382.62132 C 400.53193,382.62132 399.90108,388.03047 401.24796,389.12132 C 401.92705,389.67132 403.07879,391.58382 403.80738,393.37132 C 404.53597,395.15882 405.71603,396.62132 406.42973,396.62132 C 407.14343,396.62132 409.12712,397.40882 410.83792,398.37132 C 413.37145,399.79669 413.83819,400.57261 413.35402,402.55414 C 413.02708,403.89218 411.75275,406.1835 410.52218,407.64595 C 409.29161,409.1084 407.68258,412.81518 406.94656,415.88324 C 405.39988,422.33053 406.32624,425.60947 412.63311,436.01132 L 416.20435,441.90132 L 426.2969,441.17564 C 431.8478,440.77652 440.10748,440.26173 444.65174,440.03168 C 452.83689,439.6173 452.93025,439.63987 454.65174,442.44941 C 455.60748,444.00922 459.20195,447.88448 462.63945,451.06109 C 467.82964,455.85737 468.88945,457.3857 468.88945,460.07405 C 468.88945,462.04135 468.10485,464.0214 466.88945,465.12132 C 465.46187,466.41326 464.88945,468.20129 464.88945,471.36858 C 464.88945,474.29167 465.57194,476.6735 466.88945,478.34845 C 467.98945,479.74687 468.88945,481.73646 468.88945,482.76975 C 468.88945,483.80304 469.42488,485.50581 470.07929,486.55369 C 471.94331,489.53846 469.68349,491.28155 461.57051,493.11686 C 457.62093,494.01033 452.90399,495.61272 451.08843,496.67771 L 447.78741,498.61407 L 448.40373,491.13573 L 449.02006,483.65738 L 444.87737,481.99981 C 441.46659,480.63509 440.32052,479.43679 438.39049,475.2173 C 437.10118,472.39859 435.44851,468.14937 434.71787,465.7746 C 433.40449,461.50572 433.34681,461.46358 429.62396,462.05337 C 421.97789,463.26468 418.38947,465.41243 416.08431,470.15713 C 413.99009,474.46768 411.73226,475.79404 410.33561,473.5342 C 409.96608,472.93629 408.78699,472.67636 407.71542,472.95658 C 406.5689,473.2564 405.54249,472.88072 405.22129,472.0437 C 404.08802,469.09044 400.19255,470.58972 395.27629,475.87132 C 391.33023,480.11063 389.6194,481.21758 386.38945,481.62132 C 382.75356,482.07581 382.41458,482.36482 382.66554,484.79634 C 382.83572,486.44511 382.26026,487.98134 381.16554,488.80067 C 380.18869,489.53179 378.38294,491.56421 377.15275,493.31716 C 373.86978,497.99524 374.93606,501.76447 380.58122,505.4366 L 385.04002,508.33701 L 380.21473,512.49952 C 377.56083,514.78891 374.26445,516.93141 372.88945,517.26065 C 371.51445,517.58988 369.48945,518.40186 368.38945,519.06505 C 364.37963,521.48255 363.39991,521.25978 359.63945,517.07544 z",name:"Konya"},43:{path:"M 235.57867,372.88972 L 234.19663,368.12132 L 226.55126,367.21781 C 219.43097,366.37635 218.47607,366.49674 212.64767,368.97068 C 209.20565,370.43169 205.48945,371.64172 204.38945,371.65963 C 203.28945,371.67754 201.26445,372.3353 199.88945,373.12132 C 196.58106,375.01257 188.88945,375.10687 188.88945,373.25618 C 188.88945,372.50535 187.98945,370.74687 186.88945,369.34845 C 185.78945,367.95003 184.88945,365.85022 184.88945,364.68221 C 184.88945,363.5142 184.28116,362.32513 183.5377,362.03983 C 182.70226,361.71925 182.36856,360.56585 182.66404,359.02015 C 183.40277,355.15575 179.39827,351.43389 174.91566,351.81865 C 171.43279,352.1176 171.38212,352.06601 170.79284,347.62132 C 170.4647,345.14632 169.86128,342.35266 169.45192,341.41319 C 168.88046,340.10174 169.3093,339.57922 171.29853,339.16319 C 172.72354,338.86516 174.97977,338.39645 176.31238,338.12161 C 180.66393,337.22414 184.88945,332.81276 184.88945,329.16729 C 184.88945,327.36535 185.78945,324.74687 186.88945,323.34845 C 187.98945,321.95003 188.88945,320.36219 188.88945,319.81992 C 188.88945,319.17581 190.26718,319.18369 192.86324,319.84264 C 198.76154,321.33978 201.31347,320.3153 203.11595,315.72663 C 204.14566,313.10524 206.03693,310.92204 208.77593,309.19298 C 212.09652,307.09678 212.88945,306.02037 212.88945,303.60878 C 212.88945,300.26136 213.61933,299.94978 216.44832,302.08952 C 217.55987,302.93025 220.61181,303.57131 223.58955,303.58952 L 228.78964,303.62132 L 229.08955,309.33119 L 229.38945,315.04106 L 235.88945,317.30336 C 240.01659,318.7398 243.54414,319.35862 245.55251,318.99851 C 250.24839,318.15651 252.88945,319.31688 252.88945,322.22204 C 252.88945,323.70693 254.2819,326.08043 256.38945,328.18799 C 260.16231,331.96085 260.78805,334.97089 258.35776,337.65633 C 256.97994,339.17882 256.99693,339.68897 258.52696,342.73507 C 262.38372,350.4134 262.31537,350.85322 256.83064,353.65132 C 252.68329,355.76714 250.88945,358.18259 250.88945,361.65129 C 250.88945,364.99272 248.16443,368.72211 242.31231,373.38972 L 236.9607,377.65813 L 235.57867,372.88972 z",name:"Kütahya"},44:{path:"M 645.91768,444.50812 C 640.76471,442.45169 640.56384,438.47754 645.38945,434.05745 C 649.62134,430.1812 649.98123,426.10697 646.61649,420.16644 C 644.89906,417.13426 643.2836,415.82057 639.69228,414.5357 C 637.116,413.61397 633.84318,411.94348 632.41935,410.8235 C 630.99552,409.70352 628.00819,408.47928 625.78084,408.10297 L 621.73111,407.41877 L 623.73547,405.27005 C 624.83786,404.08825 626.94298,400.7174 628.4135,397.77927 C 630.10966,394.3903 632.33065,391.70354 634.48831,390.43049 C 638.11115,388.29296 638.72839,386.00365 636.67896,382.30558 C 636.01318,381.10424 635.40963,377.98382 635.33772,375.37132 C 635.20866,370.68224 635.24739,370.62132 638.35709,370.62132 C 640.08964,370.62132 642.3807,371.28201 643.44832,372.08952 C 646.5896,374.46546 648.51454,373.92138 649.5272,370.37132 L 650.45426,367.12132 L 661.10219,366.08936 C 669.01383,365.32259 672.27541,364.582 673.79426,363.20747 C 675.55708,361.61213 676.24465,361.52581 678.79021,362.58021 C 680.4137,363.25269 682.71431,363.4943 683.90267,363.11712 C 687.67082,361.92116 692.47693,363.42053 693.73651,366.18499 C 695.25115,369.50926 695.19132,370.62132 693.49786,370.62132 C 691.10542,370.62132 690.62087,375.42992 692.71179,378.42224 C 693.74909,379.90674 694.91065,382.41325 695.29303,383.99227 L 695.98827,386.86323 L 691.57238,386.20102 C 687.30086,385.56047 687.1046,385.64815 685.56964,388.88284 C 684.69687,390.72206 683.06179,393.06037 681.93612,394.07908 C 679.05799,396.68376 679.16588,402.62726 682.13945,405.27972 C 683.37695,406.38358 688.16776,408.27066 692.7857,409.47322 C 700.45609,411.47067 701.38542,411.52637 703.5357,410.11745 C 704.83026,409.26922 705.88945,409.01269 705.88945,409.54738 C 705.88945,410.08206 707.456,411.7144 709.37068,413.1748 C 712.4791,415.54571 713.19696,415.70977 716.07403,414.70682 C 718.87497,413.73041 719.56369,413.85129 721.3428,415.63157 C 723.32262,417.6127 723.33231,417.77922 721.63945,420.73148 C 720.67695,422.41004 719.88945,424.23996 719.88945,424.79799 C 719.88945,427.18786 715.34848,431.86176 710.77486,434.17939 L 705.83581,436.68219 L 702.51824,434.15176 C 700.69358,432.76002 698.73482,431.62132 698.16545,431.62132 C 697.59609,431.62132 694.03856,430.05474 690.25984,428.14003 C 682.08353,423.99701 679.6285,423.82024 675.37051,427.06797 C 673.60627,428.41362 670.93995,429.82153 669.44536,430.19664 C 665.77129,431.11878 665.27299,433.02215 667.84846,436.29634 L 669.99889,439.03017 L 667.72673,440.74406 C 662.38714,444.77172 651.35105,446.67646 645.91768,444.50812 z",name:"Malatya"},45:{path:"M 158.27138,417.23326 C 153.387,416.17209 153.1953,416.00824 154.07294,413.64483 C 155.44629,409.94651 154.29164,407.02987 150.22678,403.92945 C 147.75725,402.04585 144.94788,400.98194 141.526,400.63448 C 137.15781,400.19092 136.39313,399.7836 135.88819,397.63134 C 135.42824,395.67086 134.46248,394.99199 131.34673,394.43897 C 124.23393,393.1765 122.89093,393.40354 122.87414,395.87132 C 122.84289,400.46219 121.30981,401.04557 118.66561,397.47278 C 117.30139,395.62948 115.92407,393.37625 115.6049,392.46562 C 115.28573,391.55498 113.64388,390.50666 111.95636,390.13602 C 110.26883,389.76537 107.06499,387.93893 104.83672,386.07726 C 102.60845,384.21559 99.221549,382.39905 97.310283,382.04049 C 93.593606,381.34324 91.88945,379.23258 91.88945,375.32661 C 91.88945,373.9922 90.76445,371.24263 89.38945,369.21646 C 86.354127,364.74366 86.355506,364.78782 89.144417,361.37013 C 90.971541,359.13106 92.586475,358.45922 97.819943,357.76095 C 102.91396,357.08129 104.7224,356.35427 106.52132,354.26291 C 108.62723,351.81465 108.74874,350.98712 108.19389,342.87209 C 107.86482,338.05916 106.9867,333.23369 106.24251,332.14881 C 104.47297,329.56916 104.5187,326.70082 106.34052,326.00172 C 107.13861,325.69547 109.31858,326.60959 111.18491,328.03311 C 113.38166,329.70865 115.84648,330.62132 118.17482,330.62132 C 120.15295,330.62132 122.08131,331.12275 122.46008,331.7356 C 122.87161,332.40146 124.70628,332.64097 127.0191,332.33076 C 130.52048,331.86112 130.88945,332.02625 130.88945,334.06284 C 130.88945,337.34686 133.70167,342.45218 136.53229,344.30687 C 137.88495,345.19317 139.65523,347.20149 140.46624,348.76982 C 141.70667,351.16854 142.5625,351.62132 145.85611,351.62132 C 148.00953,351.62132 150.03007,351.20281 150.3462,350.69131 C 150.66232,350.1798 153.50138,349.49135 156.65521,349.16142 C 159.80904,348.83149 164.04701,348.34947 166.07291,348.09026 C 169.48453,347.65375 169.77974,347.82201 170.07291,350.37014 C 170.35348,352.80872 170.8022,353.12132 174.02208,353.12132 C 178.89306,353.12132 182.174,356.04927 181.37573,359.6838 C 180.95889,361.58164 181.24068,362.54212 182.33784,362.96314 C 183.19123,363.29062 183.88945,364.4909 183.88945,365.63043 C 183.88945,366.76996 184.83471,368.98084 185.99003,370.54349 C 187.98167,373.23733 188.00425,373.51648 186.42547,375.92601 C 185.31707,377.61763 183.47533,378.68444 180.91712,379.11665 C 174.96903,380.12157 173.85593,381.43525 173.26851,388.14355 C 172.98061,391.43132 172.04409,395.78689 171.18735,397.82259 C 169.67177,401.42378 169.70094,401.60858 172.26624,404.65726 C 175.07691,407.99755 174.95007,409.62132 171.87847,409.62132 C 170.76033,409.62132 168.71827,411.46322 166.88945,414.12132 C 165.18661,416.59632 163.70249,418.55919 163.59141,418.48326 C 163.48033,418.40732 161.08632,417.84482 158.27138,417.23326 z",name:"Manisa"},46:{path:"M 610.71397,493.48136 C 609.9628,492.18334 608.66744,489.77132 607.8354,488.12132 C 605.87038,484.22451 602.23989,483.56939 600.9796,486.88419 C 600.47742,488.20505 598.56465,490.01313 596.72902,490.90216 C 593.43829,492.4959 593.37224,492.4818 592.01738,489.89596 C 588.54858,483.27551 586.05226,481.36748 581.72835,482.03165 C 569.16528,483.96139 569.96271,483.99358 569.04761,481.51983 C 568.57755,480.24914 568.56393,477.61465 569.01735,475.6654 C 570.39575,469.73961 570.0756,465.90746 568.13945,465.15689 C 566.57931,464.55208 566.5571,464.35061 567.93475,463.2999 C 570.57353,461.28734 573.91089,452.84929 573.84235,448.36337 C 573.74949,442.2863 575.26685,432.49851 576.70567,429.89342 C 577.38244,428.66807 579.05066,426.55102 580.41281,425.18887 C 581.77496,423.82672 582.88945,422.12124 582.88945,421.39891 C 582.88945,420.67658 584.03067,418.40613 585.4255,416.35345 C 587.42049,413.41757 588.6106,412.62132 591.0037,412.62132 C 593.90113,412.62132 594.03024,412.44641 593.71765,408.9447 C 593.39174,405.29376 593.42437,405.2594 598.38945,404.02392 C 604.14587,402.59153 624.88945,400.7659 624.88945,401.69166 C 624.88945,402.03249 623.98945,403.12583 622.88945,404.12132 C 619.86681,406.85678 620.46531,408.37387 624.86001,409.11635 C 627.04382,409.4853 629.99552,410.70352 631.41935,411.8235 C 632.84318,412.94348 636.116,414.61397 638.69228,415.5357 C 642.2836,416.82057 643.89906,418.13426 645.61649,421.16644 C 648.78891,426.76743 648.50875,429.28432 644.28192,433.15595 C 640.70665,436.43076 640.68055,436.51337 641.36291,442.39264 L 642.05143,448.32497 L 637.97044,451.55718 C 635.61937,453.41926 633.88945,455.64212 633.88945,456.80106 C 633.88945,457.90748 633.10215,460.14553 632.1399,461.77449 C 630.41752,464.69025 630.42916,464.76606 632.8899,466.65655 C 634.26465,467.71271 636.16112,468.58685 637.10427,468.59908 C 639.06996,468.62457 640.88945,471.50963 640.88945,474.60103 C 640.88945,477.645 636.51265,481.62132 633.1621,481.62132 C 629.99188,481.62132 621.24763,486.98466 615.7346,492.31058 L 612.07975,495.84139 L 610.71397,493.48136 z",name:"Kahramanmaraş"},47:{path:"M 780.81376,505.04126 C 779.20985,503.3343 778.36215,501.21927 778.30876,498.79126 C 778.2533,496.26862 776.92467,493.11898 774.05876,488.71628 C 771.76564,485.19351 769.88945,481.75171 769.88945,481.06783 C 769.88945,480.38395 768.6002,477.37351 767.02446,474.37797 L 764.15947,468.93154 L 769.27446,468.78216 C 772.0877,468.7 776.86445,468.61516 779.88945,468.59364 C 786.74237,468.54487 790.02115,467.28703 792.68407,463.68524 C 794.27611,461.53189 795.35763,460.98816 797.30738,461.36088 C 798.70719,461.62847 800.98581,461.56297 802.37097,461.21531 C 804.42854,460.6989 804.88945,459.97666 804.88945,457.26893 C 804.88945,453.063 805.76468,452.19843 807.98673,454.20935 C 808.9545,455.08517 811.63029,456.22506 813.93294,456.74243 C 817.41886,457.52566 818.67865,457.35323 821.46002,455.71219 L 824.80047,453.74127 L 826.73708,456.9313 C 827.80222,458.68581 828.983,461.58382 829.36103,463.37132 L 830.04836,466.62132 L 839.03465,466.62132 C 848.71816,466.62132 850.04021,466.20569 855.08343,461.57592 C 858.44533,458.48962 866.81145,453.16716 867.3325,453.78316 C 869.09832,455.87074 869.93246,458.97831 868.98209,459.92868 C 868.38114,460.52963 867.88945,462.17307 867.88945,463.58077 C 867.88945,466.61357 865.48283,468.34289 860.05418,469.21097 C 856.28349,469.81393 856.10752,470.0137 855.51051,474.36934 C 855.16893,476.86146 854.88945,480.22341 854.88945,481.84035 C 854.88945,484.60809 855.07108,484.74034 857.99127,484.09896 C 861.07218,483.42227 861.08824,483.44027 860.37445,486.7695 C 859.9792,488.613 859.59589,490.13466 859.52263,490.15098 C 859.44938,490.16729 857.75453,490.92243 855.75629,491.82908 C 851.14138,493.92297 838.00841,494.3299 827.6326,492.7005 C 818.20478,491.21996 810.88059,492.43343 803.98823,496.61789 C 801.4589,498.15348 797.89654,499.72488 796.07188,500.10989 C 794.24722,500.4949 792.51507,501.43337 792.22266,502.19538 C 791.65808,503.66665 785.80769,507.62132 784.19573,507.62132 C 783.66902,507.62132 782.14714,506.46029 780.81376,505.04126 z",name:"Mardin"},48:{path:"M 182.76506,537.2068 C 180.3339,534.9525 180.21664,534.44104 180.99789,529.49889 C 181.84327,524.15105 181.2282,522.67447 178.13945,522.63663 C 176.19703,522.61284 176.66719,520.24122 178.88945,518.85339 C 181.35636,517.31278 181.48102,515.04219 179.13945,514.2996 C 178.17695,513.99436 176.17663,512.95262 174.6943,511.98463 C 172.31153,510.42864 171.69417,510.38787 169.36785,511.63288 C 167.44641,512.6612 166.85131,513.64149 167.16197,515.26657 C 167.39595,516.49057 167.21224,518.08362 166.75373,518.80667 C 166.15228,519.75514 165.91581,519.54713 165.90476,518.05988 C 165.88242,515.05235 162.56165,511.97001 158.52872,511.21342 C 155.46512,510.63869 154.97099,510.13842 154.70028,507.33742 C 154.44601,504.70656 153.93452,504.09376 151.88945,503.96986 C 150.51445,503.88656 148.82695,503.77406 148.13945,503.71986 C 147.45195,503.66566 146.88945,502.72132 146.88945,501.62132 C 146.88945,500.51021 146.22278,499.62132 145.38945,499.62132 C 144.55612,499.62132 143.88945,500.51021 143.88945,501.62132 C 143.88945,502.73243 143.22278,503.62132 142.38945,503.62132 C 141.56445,503.62132 139.98945,502.72132 138.88945,501.62132 C 137.78945,500.52132 136.44802,499.62132 135.9085,499.62132 C 134.42466,499.62132 133.47917,504.61104 134.72663,505.8585 C 135.51429,506.64616 135.22913,507.45942 133.7004,508.78528 C 132.53607,509.7951 131.08978,510.62417 130.48644,510.62764 C 129.8831,510.63112 128.65911,511.91799 127.76648,513.48735 C 126.07711,516.45746 121.28657,518.41844 119.66981,516.80168 C 119.096,516.22787 119.75503,515.87132 121.38945,515.87132 C 122.84695,515.87132 124.51545,515.39532 125.09723,514.81354 C 126.70071,513.21006 125.24439,510.63409 122.67083,510.52164 C 120.46976,510.42547 120.47745,510.39763 122.88945,509.73065 C 124.42463,509.30613 125.51277,508.18681 125.709,506.83033 C 125.99743,504.83645 125.59781,504.62132 121.60569,504.62132 C 119.17312,504.62132 114.43549,504.33417 111.07763,503.9832 C 105.32087,503.3815 104.91021,503.48137 103.88204,505.7332 C 102.92677,507.8254 102.03821,508.14971 96.711238,508.35042 C 89.535126,508.6208 88.517237,508.19019 90.150475,505.57496 C 91.073193,504.09745 92.48988,503.62132 95.96333,503.62132 C 98.489363,503.62132 100.85196,503.32547 101.21355,502.96388 C 102.33986,501.83758 113.13241,501.72819 118.71876,502.78646 C 124.69196,503.91802 125.87615,503.43093 124.09312,500.57584 C 123.28321,499.27897 123.23298,498.62132 123.94383,498.62132 C 124.53307,498.62132 124.87438,497.60882 124.70231,496.37132 C 124.42276,494.36084 124.81527,494.12132 128.38945,494.12132 C 131.20426,494.12132 133.05612,493.45465 134.63945,491.87132 C 135.87695,490.63382 137.78945,489.62132 138.88945,489.62132 C 139.98945,489.62132 140.88945,488.97228 140.88945,488.17901 C 140.88945,486.95643 137.49979,486.78443 118.63945,487.04994 C 101.82792,487.28662 96.022812,487.05529 94.88945,486.10354 C 94.06445,485.41074 91.95824,484.53994 90.208984,484.16843 C 87.613821,483.61726 86.825215,483.87283 85.9238,485.55714 C 84.361405,488.4765 83.189514,488.11915 82.667767,484.56425 C 81.817013,478.7677 89.931768,475.56177 93.41099,480.31989 C 94.444251,481.73296 94.816452,481.71526 97.222756,480.13859 C 98.689438,479.17758 99.88945,477.59815 99.88945,476.62875 C 99.88945,475.65935 100.56445,474.30601 101.38945,473.62132 C 103.33964,472.00281 103.3262,468.62132 101.36958,468.62132 C 100.53365,468.62132 98.017513,467.46471 95.778166,466.05107 C 91.992253,463.66113 91.818267,463.35746 93.298038,461.72233 C 95.164951,459.65941 95.347994,457.94083 93.757274,457.41059 C 92.014877,456.8298 95.602515,450.61701 97.66513,450.64328 C 99.807379,450.67057 107.82555,454.25518 109.87147,456.10026 C 110.79291,456.93125 115.2045,457.74824 121.09735,458.17919 C 129.00017,458.75715 131.43266,458.59143 134.17948,457.28798 C 138.48215,455.24623 144.22884,455.75679 147.95532,458.5119 C 149.97771,460.00711 151.63563,460.47215 153.38162,460.03393 C 155.57872,459.48249 155.97242,459.78618 156.5036,462.44208 C 156.83791,464.11361 158.18649,466.49119 159.50044,467.72559 C 160.8144,468.95999 161.88945,470.94676 161.88945,472.14065 C 161.88945,474.28843 164.67961,477.62132 166.47764,477.62132 C 166.98954,477.62132 167.95328,478.49389 168.61931,479.56036 C 169.28533,480.62683 171.4717,482.27831 173.47791,483.23032 C 178.32196,485.52897 181.13709,490.09951 180.36836,494.41737 C 179.86411,497.24968 180.28251,498.21438 183.34222,501.27409 C 186.30618,504.23805 187.36228,504.71946 189.64412,504.14676 C 193.03008,503.29694 192.79523,503.55174 194.43781,498.94573 C 195.18793,496.8423 195.82142,495.68382 195.84556,496.37132 C 195.8697,497.05882 196.56445,497.62132 197.38945,497.62132 C 199.25582,497.62132 199.2471,498.56436 197.35765,501.06245 C 195.29628,503.78781 195.52,504.62132 198.31285,504.62132 C 199.64573,504.62132 202.88466,502.9814 205.51049,500.97706 C 209.9907,497.55725 210.44149,497.42079 212.83002,498.76144 C 216.13737,500.61781 216.52139,503.00249 214.0242,506.17714 C 212.91782,507.58368 211.30332,510.8699 210.43643,513.47986 C 208.50967,519.28081 201.37867,526.53392 194.63945,529.54735 C 191.21835,531.07709 189.88945,532.24224 189.88945,533.71205 C 189.88945,536.437 188.11366,539.62132 186.59405,539.62132 C 185.92028,539.62132 184.19724,538.53479 182.76506,537.2068 z",name:"Muğla"},49:{path:"M 838.4379,392.51486 C 836.38316,386.08417 834.65543,383.9838 830.99158,383.4625 C 826.28373,382.79265 826.0461,380.31017 829.47235,367.5915 C 829.69901,366.7501 831.23558,365.55169 832.88696,364.92836 C 837.24775,363.28235 836.88579,360.17026 832.0464,357.70139 C 829.23288,356.26604 827.50124,354.32209 825.58248,350.44499 C 823.93642,347.11891 823.31318,344.79759 823.90686,344.20391 C 825.1761,342.93467 836.69287,341.53835 840.15907,342.23344 C 842.12229,342.62714 844.09847,344.51142 846.94633,348.70509 C 850.64111,354.14589 851.26233,354.62095 854.67671,354.61669 C 856.71872,354.61414 861.08945,353.49982 864.38945,352.14042 C 867.68945,350.78103 871.44641,349.65811 872.73824,349.64506 C 875.9637,349.61246 880.03386,344.91919 882.18238,338.75509 C 884.35549,332.52042 887.54858,330.01205 891.60741,331.35115 C 893.16062,331.86359 894.99587,333.56149 895.76237,335.19516 C 896.51748,336.80455 898.72265,339.78459 900.66274,341.81747 C 904.086,345.40446 904.58446,346.80552 906.55544,358.38059 C 906.86068,360.17319 907.51071,361.88724 907.99994,362.18961 C 911.18881,364.16043 905.62191,365.75296 894.6726,366.00215 C 890.8816,366.08843 887.41859,366.69218 886.7226,367.38817 C 886.04437,368.0664 884.64036,368.62132 883.60259,368.62132 C 882.42438,368.62132 881.29043,369.74804 880.58335,371.62132 C 879.76831,373.7806 878.79339,374.62132 877.10447,374.62132 C 872.304,374.62132 868.7122,378.57185 872.27103,379.9375 C 873.38866,380.36638 873.44292,381.25323 872.55505,384.57965 C 871.31337,389.23163 871.28452,389.2435 859.3564,390.00943 C 849.68637,390.63037 847.15691,391.46605 845.58531,394.55907 C 844.92759,395.85353 843.47333,397.24693 842.35364,397.65552 C 840.55825,398.31067 840.09581,397.70358 838.4379,392.51486 z",name:"Muş"},50:{path:"M 483.38945,417.70832 C 480.5344,417.37314 476.81246,416.05458 474.7134,414.63468 C 471.1848,412.24778 471.04441,411.93063 471.2134,406.7275 C 471.38767,401.36169 471.34906,401.28558 467.38945,399.18995 C 463.47047,397.11583 463.38945,396.96248 463.38945,391.6188 C 463.38945,387.35298 463.03067,386.09381 461.74275,385.83955 C 460.27114,385.54903 460.24723,385.2114 461.51792,382.66425 C 462.8307,380.03272 463.16417,379.89874 465.86452,380.91801 C 468.31218,381.8419 469.12365,381.71934 470.83935,380.16666 C 471.96691,379.14624 472.88945,377.69644 472.88945,376.94489 C 472.88945,376.19335 474.04447,375.05218 475.45616,374.40897 C 477.20829,373.61065 477.87272,372.66536 477.54978,371.43041 C 477.21551,370.15216 477.63608,369.62132 478.98307,369.62132 C 480.42958,369.62132 480.88945,368.90612 480.88945,366.6565 C 480.88945,364.71514 481.57985,363.3222 482.88945,362.62132 C 483.98945,362.03262 484.88945,360.72189 484.88945,359.70858 C 484.88945,358.69528 485.56445,357.30601 486.38945,356.62132 C 488.80281,354.61841 488.13809,353.62132 484.38945,353.62132 C 480.48004,353.62132 480.13658,352.70441 482.52896,348.65444 L 484.16846,345.87898 L 489.69474,349.75015 C 492.73419,351.87929 495.73105,353.62132 496.35443,353.62132 C 497.05394,353.62132 497.33633,354.91921 497.09206,357.01153 C 496.7655,359.80873 497.34154,361.11597 500.38524,364.48498 C 503.78752,368.2509 504.02292,368.90059 503.4142,372.84478 C 503.0512,375.19688 502.08316,379.53164 501.263,382.47758 C 499.92544,387.28197 499.93241,388.01131 501.33062,389.55632 C 502.18798,390.50368 502.88945,392.27822 502.88945,393.49972 C 502.88945,394.72123 503.62839,397.14959 504.53154,398.89609 L 506.17363,402.07155 L 500.53154,407.11778 C 496.83755,410.42165 494.88945,412.94207 494.88945,414.41742 C 494.88945,416.45336 491.25677,418.97771 489.07435,418.45832 C 488.69766,418.36868 486.13945,418.03118 483.38945,417.70832 z",name:"Nevşehir"},51:{path:"M 469.88945,482.25618 C 469.88945,480.95535 468.98945,478.74687 467.88945,477.34845 C 466.77049,475.92593 465.88945,473.29167 465.88945,471.36858 C 465.88945,469.20129 466.6284,467.26255 467.88945,466.12132 C 469.29271,464.85139 469.88945,463.04135 469.88945,460.05492 C 469.88945,456.10686 469.42971,455.37553 463.54335,449.95991 C 460.05299,446.74869 456.64857,443.08344 455.97797,441.81491 C 455.30738,440.54639 453.81582,439.15971 452.6634,438.7334 C 450.73875,438.02143 450.93905,437.67988 455.12265,434.53981 C 457.62766,432.65964 462.42496,429.43229 465.78333,427.36792 C 470.9078,424.21794 471.88945,423.16494 471.88945,420.81792 C 471.88945,419.27979 471.38866,417.52053 470.77658,416.90845 C 470.16451,416.29638 469.97999,415.28384 470.36654,414.65838 C 470.8474,413.88035 472.09795,414.30571 474.32606,416.00517 C 477.02109,418.06077 478.85952,418.52932 484.98609,418.72201 C 489.05794,418.85008 493.98471,418.61091 495.93447,418.19051 C 499.1393,417.49951 499.59513,417.67995 500.68447,420.07079 C 501.34721,421.52534 501.88945,423.50824 501.88945,424.47724 C 501.88945,427.61371 504.32222,429.74233 508.26433,430.05512 C 514.13654,430.52105 515.7816,432.87799 515.98813,441.12132 C 516.31497,454.16667 511.34857,460.28826 499.38945,461.58088 L 494.38945,462.12132 L 494.09641,468.75529 C 493.751,476.57459 492.28457,478.43207 485.44866,479.70916 C 482.96657,480.17286 479.04083,481.4678 476.72479,482.58679 C 471.27673,485.219 469.88945,485.1519 469.88945,482.25618 z",name:"Niğde"},52:{path:"M 639.57482,277.8148 C 637.13394,275.26708 637.02155,274.82908 638.35592,273.0648 C 641.48588,268.92646 640.40729,267.62132 633.85733,267.62132 C 625.78107,267.62132 621.35522,265.67183 619.53357,261.31201 C 617.69571,256.91339 617.53665,256.8303 608.5665,255.58266 C 601.83235,254.64603 600.63607,254.13497 597.21429,250.73292 C 595.11063,248.64139 592.71445,246.6873 591.88945,246.39048 C 590.6488,245.94413 590.73525,245.57713 592.38945,244.26788 C 593.48945,243.39725 595.34126,242.67062 596.50459,242.65312 C 599.6028,242.60654 603.60003,239.0637 605.03656,235.09104 C 605.73081,233.17112 606.98316,231.61857 607.84034,231.61516 C 608.69235,231.61177 610.67839,230.93677 612.25376,230.11516 C 615.54322,228.39958 619.48645,228.16023 620.38945,229.62132 C 620.72937,230.17132 622.01042,230.62132 623.23624,230.62132 C 624.46206,230.62132 627.023,231.95303 628.92722,233.58068 C 633.46932,237.46307 635.3952,237.36276 638.13026,233.10133 C 640.81324,228.92105 645.1577,228.49069 645.70632,232.35084 C 646.15114,235.48068 650.52591,238.21546 656.31042,238.97974 C 659.01695,239.33734 661.41541,239.81395 661.64032,240.03886 C 661.86524,240.26377 661.39584,241.49934 660.59721,242.78456 C 659.79859,244.06978 658.3085,247.52621 657.28589,250.46552 C 655.56662,255.4073 655.55052,255.90032 657.07206,257.0129 C 657.97705,257.67464 658.86869,259.54475 659.05348,261.1687 C 659.34118,263.69715 659.86499,264.16698 662.69971,264.43917 C 667.33417,264.88418 666.58011,267.72318 661.44475,269.16401 C 657.31693,270.32216 656.37699,271.37032 655.42996,275.87132 C 654.95854,278.11186 654.31004,278.62132 651.92941,278.62132 C 650.32235,278.62132 648.72937,278.17132 648.38945,277.62132 C 647.30196,275.86172 644.88945,276.55101 644.88945,278.62132 C 644.88945,281.43467 642.72873,281.10678 639.57482,277.8148 z",name:"Ordu"},53:{path:"M 786.00665,263.69375 C 784.66592,262.86514 784.39015,258.41437 785.42703,254.3391 C 786.42779,250.40582 783.2607,239.72116 780.09916,236.36473 C 776.92313,232.9929 777.85581,231.69316 784.01837,230.90311 C 789.63968,230.18246 795.41175,227.26269 799.30582,223.17004 C 801.42385,220.944 803.69416,219.72487 806.55601,219.27676 C 809.46452,218.82135 812.3149,217.26518 815.99624,214.12285 C 818.89676,211.64701 821.87056,209.62132 822.60468,209.62132 C 823.3388,209.62132 824.21271,210.98761 824.54669,212.65752 C 824.90038,214.42595 826.62851,216.90919 828.68544,218.60469 L 832.21695,221.51566 L 828.3032,226.12235 C 821.66581,233.93489 818.89252,237.85143 818.81636,239.51999 C 818.69085,242.2698 815.31744,247.10741 813.30854,247.41844 C 809.66741,247.98218 803.88945,250.92863 803.88945,252.22167 C 803.88945,254.05111 799.4549,258.62132 797.67977,258.62132 C 796.86558,258.62132 795.41099,259.49253 794.44735,260.55734 C 792.30277,262.92708 787.596,264.67603 786.00665,263.69375 z",name:"Rize"},54:{path:"M 270.13945,275.34616 C 268.90195,274.7794 267.88945,273.73978 267.88945,273.03589 C 267.88945,271.28838 264.88801,270.47748 259.45984,270.75846 C 255.94978,270.94016 254.38483,270.49589 252.58766,268.80753 C 251.30775,267.60511 249.28562,266.62132 248.09405,266.62132 C 245.98048,266.62132 245.7666,266.19999 244.43245,259.40809 C 243.97588,257.08377 245.56443,255.98171 250.86808,254.94335 C 256.14126,253.91096 259.88945,249.37674 259.88945,244.03014 C 259.88945,241.80438 260.57877,240.25191 262.01311,239.24726 C 263.74344,238.03529 264.01247,237.14503 263.46566,234.44055 C 261.5909,225.16831 261.5828,225.23883 264.92496,221.74157 L 268.12461,218.39345 L 273.12186,220.00739 C 275.87035,220.89505 278.72859,221.62132 279.47349,221.62132 C 280.2184,221.62132 282.52922,222.4908 284.60866,223.5535 C 286.68809,224.6162 290.52695,225.79229 293.13945,226.16704 C 295.75195,226.54179 297.94277,227.35981 298.00793,227.98486 C 298.30976,230.8799 297.55451,232.34831 294.23042,235.3294 C 291.394,237.87314 290.54721,239.47802 290.14129,243.0794 C 289.73267,246.70465 289.93674,247.62132 291.15241,247.62132 C 293.24358,247.62132 294.19358,250.54994 292.69008,252.36155 C 292.01145,253.17925 291.21618,255.93471 290.92283,258.4848 L 290.38945,263.12132 L 284.22147,263.62132 C 278.97188,264.04687 277.72864,264.53592 275.87173,266.90585 C 274.4075,268.77461 273.88403,270.46359 274.28004,272.04143 C 275.06018,275.14974 273.10968,276.70649 270.13945,275.34616 z",
+ name:"Sakarya"},55:{path:"M 549.38945,246.05119 C 546.63945,245.28598 542.94448,244.65122 541.17841,244.64061 C 539.32661,244.62949 537.21008,243.81158 536.17841,242.70843 C 535.19448,241.65634 533.03945,240.64384 531.38945,240.45843 C 528.76903,240.16397 528.43014,239.77337 528.71102,237.37132 C 528.99524,234.94068 528.70491,234.62409 526.21102,234.64518 C 524.65915,234.6583 521.59078,235.08598 519.3924,235.59558 C 515.83271,236.42075 515.1155,236.25401 512.83769,234.07173 C 511.43097,232.724 509.31331,231.62132 508.13178,231.62132 C 504.27632,231.62132 500.78538,229.308 499.30914,225.77487 C 498.08539,222.84602 498.07212,222.06315 499.22341,220.71558 C 499.97253,219.83874 500.86374,218.3364 501.20387,217.37704 C 501.78037,215.75099 507.46107,211.63342 509.13945,211.62506 C 509.55195,211.623 509.88945,212.15963 509.88945,212.81757 C 509.88945,213.47551 511.07565,215.72551 512.52545,217.81757 C 515.95915,222.7724 519.79365,223.00589 523.98824,218.51556 C 527.1148,215.16857 527.47937,213.5921 525.83663,210.52263 C 525.07922,209.1074 525.13914,207.51248 526.05018,204.83838 C 528.19189,198.55194 530.69162,195.62132 533.91206,195.62132 C 535.49958,195.62132 539.85644,194.46681 543.59396,193.05574 C 547.33148,191.64467 551.18486,190.24011 552.15704,189.93451 C 553.34586,189.56079 555.06488,190.58788 557.40704,193.07129 C 560.42133,196.26737 560.88945,197.43193 560.88945,201.73456 C 560.88945,205.76346 561.5053,207.54841 564.13945,211.15413 C 565.92695,213.60093 568.30586,215.85668 569.42592,216.16691 C 570.54599,216.47713 571.89599,217.71879 572.42592,218.92614 C 573.4341,221.22305 577.34326,222.24067 581.26028,221.22587 C 582.43132,220.92248 584.38381,218.91721 585.59915,216.7697 L 587.80884,212.86515 L 593.44857,214.17615 C 601.04235,215.94138 606.88945,219.85991 606.88945,223.18378 C 606.88945,225.09422 607.68928,226.05603 610.13945,227.09195 L 613.38945,228.46602 L 610.57435,229.54367 C 609.02605,230.13638 607.20395,230.62132 606.52524,230.62132 C 605.84653,230.62132 604.72663,232.1827 604.03656,234.09104 C 602.56063,238.17264 598.56574,241.62132 595.31361,241.62132 C 594.04524,241.62132 592.72835,242.07297 592.38718,242.62499 C 592.04602,243.17701 590.6774,243.35522 589.34582,243.02101 C 588.01424,242.68681 584.65887,242.95695 581.88945,243.62132 C 579.12003,244.28569 575.73841,244.54924 574.37475,244.20699 C 572.20856,243.66331 572.04811,243.34013 573.10456,241.64849 C 574.62954,239.20661 574.39713,239.02375 568.72234,238.20061 C 564.43984,237.57942 563.99794,237.71308 563.36,239.82248 C 562.42269,242.92175 557.88667,247.64257 555.95236,247.5319 C 555.09276,247.48272 552.13945,246.8164 549.38945,246.05119 z",name:"Samsun"},56:{path:"M 870.97959,454.12132 C 869.99393,453.02132 868.89601,451.29856 868.53978,450.29297 C 868.03639,448.87198 867.05628,448.53777 864.14077,448.79297 L 860.38945,449.12132 L 860.38945,444.68359 L 860.38945,440.24585 L 854.38945,439.12852 C 844.6494,437.3147 841.1033,434.18279 845.88945,431.62132 C 846.98945,431.03262 847.88945,429.89179 847.88945,429.08614 C 847.88945,428.20917 848.84658,427.62132 850.27444,427.62132 C 852.76487,427.62132 855.88945,423.98727 855.88945,421.09076 C 855.88945,420.21025 856.33533,418.65671 856.88028,417.63845 C 857.84081,415.84369 858.03201,415.84813 863.13028,417.78346 C 873.26265,421.62976 874.90726,421.91517 876.84308,420.16328 C 877.81701,419.28189 880.03258,418.15386 881.76656,417.65657 C 884.60711,416.84191 885.37318,417.14526 889.50412,420.72056 C 892.0258,422.90306 896.40659,425.86009 899.23922,427.29175 C 902.07185,428.7234 905.89618,431.48717 907.73774,433.43346 L 911.08603,436.97216 L 915.27689,434.68281 C 921.13989,431.48001 923.05783,432.12994 924.99925,437.97739 C 926.51136,442.53176 926.4977,443.05649 924.77422,446.62368 L 922.93939,450.42134 L 918.66442,449.38122 C 916.31319,448.80915 913.46045,447.50415 912.325,446.48121 C 907.88707,442.48303 900.1025,444.82039 895.43767,451.55173 C 892.20265,456.21988 893.07302,455.93786 881.58058,456.04172 C 873.97569,456.11044 872.52677,455.84796 870.97959,454.12132 z",name:"Siirt"},57:{path:"M 490.03647,219.04738 C 486.52557,217.10147 482.43996,215.62132 480.57963,215.62132 C 477.55993,215.62132 477.21354,215.28211 476.14202,211.27583 C 474.63654,205.64703 475.75225,201.49364 479.2226,199.80788 C 480.70973,199.08549 482.6304,197.42012 483.49076,196.10705 C 487.00784,190.7393 482.75707,187.19525 473.88945,188.10203 L 468.38945,188.66445 L 468.38945,183.39289 C 468.38945,180.49352 468.00374,177.05247 467.53232,175.74609 C 466.94134,174.10842 467.01181,173.57891 467.75924,174.04085 C 468.35548,174.40934 470.60801,174.23565 472.76487,173.65487 C 475.55833,172.90267 478.17821,172.91882 481.87214,173.71103 C 491.39476,175.75326 498.54611,173.11653 502.48603,166.11058 C 503.53537,164.24466 503.714,164.29203 506.63196,167.20999 C 508.97004,169.54806 509.56194,170.88376 509.16956,172.93637 C 508.70445,175.36942 509.65125,177.99725 513.21245,184.15726 C 515.30723,187.78073 518.31168,190.32994 521.88945,191.5195 C 523.81445,192.15953 526.2398,193.32734 527.27912,194.11463 C 528.97666,195.40053 529.02222,195.77864 527.7272,197.83369 C 524.80791,202.46629 523.47783,208.4225 524.7427,211.19857 C 525.73744,213.3818 525.59925,214.22013 523.83655,216.69561 C 520.71395,221.0809 517.23184,221.55917 514.29532,218.00608 C 512.98403,216.41946 511.63249,214.10882 511.29189,212.87132 C 510.9513,211.63382 509.93392,210.623 509.03104,210.62506 C 506.64057,210.6305 500.92697,214.34594 500.18565,216.37704 C 499.8355,217.3364 498.79952,219.10055 497.88347,220.29738 L 496.21793,222.47344 L 490.03647,219.04738 z",name:"Sinop"},58:{path:"M 596.46788,401.27752 C 596.80672,400.39453 596.10969,398.09571 594.91893,396.16902 L 592.75391,392.66595 L 595.1285,390.29136 C 596.43452,388.98534 597.92752,387.7378 598.44627,387.51905 C 598.96502,387.3003 600.17106,385.54632 601.12635,383.62132 C 602.08165,381.69632 603.82776,378.92299 605.00661,377.45837 C 608.14628,373.55758 607.00492,370.2721 601.98795,368.76898 C 599.15671,367.92072 597.66872,366.74394 596.72149,364.60399 C 595.09014,360.91853 591.65508,360.64703 586.33931,363.78341 C 583.08678,365.70244 582.28801,365.80561 579.23371,364.70116 C 576.56547,363.73631 575.4699,363.72463 574.35594,364.64913 C 573.43149,365.41635 570.31094,365.70971 565.60306,365.47197 C 559.65607,365.17166 557.69852,364.6364 555.14346,362.61192 C 553.41462,361.24209 551.97521,359.25032 551.94478,358.18577 C 551.91435,357.12122 550.96272,355.26376 549.83005,354.05809 L 547.77065,351.86596 L 552.58005,348.8943 C 556.78399,346.29673 557.80235,344.95515 560.66928,338.23756 C 563.68825,331.16372 563.85433,330.23614 562.75744,326.57503 C 562.10201,324.38743 560.96359,322.09781 560.2276,321.487 C 559.49162,320.87619 558.88945,319.07188 558.88945,317.47744 C 558.88945,315.3556 558.21926,314.27308 556.38945,313.43937 C 553.47196,312.11007 553.29838,311.35676 555.49038,309.53755 C 556.64927,308.57577 561.22758,308.1769 572.07142,308.093 C 588.8847,307.96292 588.34632,308.20581 589.43947,300.25764 C 589.88717,297.00244 590.94882,294.47104 592.52906,292.8908 C 594.68583,290.73404 595.49241,290.55274 600.27355,291.15011 C 604.18774,291.63915 606.40531,291.40592 608.59182,290.27523 C 611.28789,288.88104 611.72436,288.8848 613.15414,290.31459 C 614.62468,291.78512 622.1001,293.64318 627.88945,293.97712 C 629.90973,294.09365 630.44954,293.60016 630.70259,291.40534 C 630.90344,289.66327 632.42742,287.57128 634.95259,285.57131 C 637.11786,283.85638 638.88945,281.72607 638.88945,280.83729 C 638.88945,279.58042 639.15612,279.48799 640.08945,280.42132 C 640.74945,281.08132 642.32445,281.62132 643.58945,281.62132 C 645.29248,281.62132 645.88945,281.05031 645.88945,279.42132 C 645.88945,277.71021 646.15612,277.48799 647.08945,278.42132 C 647.74945,279.08132 649.95131,279.62132 651.98246,279.62132 C 655.7334,279.62132 656.88945,278.45293 656.88945,274.66198 C 656.88945,272.35137 658.58284,271.02474 662.63945,270.15734 C 665.65823,269.51185 665.88945,269.64946 665.88945,272.09152 C 665.88945,273.53754 666.56349,276.02409 667.38731,277.61719 C 668.23656,279.25945 668.77785,282.50608 668.63731,285.11468 L 668.38945,289.71563 L 673.88945,291.5503 C 676.91445,292.55937 680.82097,293.40718 682.57061,293.43431 C 684.36225,293.46209 686.62394,294.35581 687.74853,295.4804 C 688.84674,296.57861 691.80272,297.78569 694.31737,298.16278 C 696.83201,298.53988 698.88945,299.21051 698.88945,299.65308 C 698.88945,302.41998 697.40392,303.62132 693.98246,303.62132 C 691.95131,303.62132 689.84317,304.0676 689.29771,304.61306 C 688.64205,305.26872 687.21012,305.19117 685.07227,304.38422 C 681.0701,302.87357 678.52673,304.17444 678.07384,307.96373 C 677.83151,309.99137 678.35385,310.87579 680.32384,311.77338 C 683.24179,313.10289 683.48349,313.88342 681.48965,315.53816 C 680.71976,316.17712 679.1082,319.1185 677.90842,322.07458 C 676.20621,326.26855 675.96512,327.89418 676.81093,329.4746 C 677.59362,330.93708 677.5882,331.68947 676.79141,332.18191 C 675.10418,333.22468 676.62128,338.88779 679.08994,340.76198 C 681.14183,342.31976 681.16326,342.49037 679.51419,344.13944 C 678.10806,345.54556 677.90262,346.87855 678.43513,351.14064 C 679.20371,357.29215 678.40156,360.62132 676.1508,360.62132 C 675.26867,360.62132 673.69265,361.39444 672.64852,362.33936 C 671.30463,363.55556 667.65313,364.35883 660.14753,365.08936 C 649.58925,366.11701 649.54093,366.13385 648.5803,369.12132 C 647.30582,373.08484 647.43079,373.02213 644.5579,371.13973 C 642.94634,370.0838 640.50777,369.60945 637.72113,369.80983 C 634.01919,370.07604 633.43962,370.41208 633.73453,372.12132 C 633.92433,373.22132 634.0345,375.61692 633.97935,377.44488 C 633.9242,379.27283 634.55641,381.73546 635.38427,382.91738 C 637.60939,386.09419 637.26658,387.20126 633.34043,389.51774 C 631.27317,390.73745 629.17381,393.08983 628.31218,395.15201 C 626.48358,399.52848 624.82025,400.16139 612.88945,401.02048 C 607.66445,401.39672 601.69348,401.96969 599.62064,402.29375 C 596.43723,402.79143 595.94751,402.63358 596.46788,401.27752 z",name:"Sivas"},59:{path:"M 89.231551,243.07044 C 88.891608,242.18456 89.583572,240.51136 90.845312,239.1683 C 92.167883,237.76049 92.920835,235.87497 92.721825,234.46918 C 92.434736,232.44122 91.75334,232.08024 87.720735,231.81985 C 83.945594,231.57608 82.717634,231.00804 81.304938,228.85199 C 79.772651,226.51343 79.694618,225.38721 80.67024,219.69157 C 81.460502,215.07805 81.473055,212.82452 80.713591,211.90942 C 79.914419,210.94648 80.064175,210.62132 81.306843,210.62132 C 84.111129,210.62132 90.767623,206.73689 92.503663,204.08735 C 93.626251,202.37407 93.981459,200.34396 93.624413,197.68199 C 93.163034,194.24215 93.370653,193.71736 95.393787,193.20959 C 96.654435,192.89319 98.969179,193.30361 100.53766,194.12165 C 102.10615,194.93969 104.88217,195.61177 106.7066,195.61516 C 109.20827,195.6198 110.84905,196.49639 113.38082,199.18085 C 116.42174,202.40516 117.09818,202.68035 120.56367,202.10294 C 126.5368,201.10771 126.88945,200.86714 126.88945,197.78756 C 126.88945,193.6671 130.29736,189.86177 135.1931,188.51557 C 137.50109,187.88093 141.76883,186.5201 144.67696,185.4915 C 147.58509,184.4629 151.30141,183.62132 152.93544,183.62132 C 155.61416,183.62132 155.78853,183.81006 154.70809,185.54012 C 153.7664,187.048 153.78699,187.79293 154.80422,189.01862 C 155.88132,190.31645 155.75556,191.12762 154.05517,193.84983 C 146.80289,205.46026 144.76329,210.15031 145.18738,214.24131 C 145.9314,221.41859 143.11339,223.51583 138.06317,219.54333 C 135.73222,217.7098 134.59604,217.54442 128.40544,218.13752 C 121.24095,218.82392 117.96761,220.84682 117.91169,224.62259 C 117.88055,226.72448 108.16575,236.75071 103.58229,239.41133 C 101.48835,240.62682 98.76186,241.62132 97.523419,241.62132 C 96.284979,241.62132 94.398201,242.28201 93.33058,243.08952 C 90.82834,244.98212 89.963586,244.97809 89.231551,243.07044 z",name:"Tekirdağ"},60:{path:"M 553.8337,305.51715 C 553.31436,304.54676 552.88945,302.91322 552.88945,301.88706 C 552.88945,298.29344 550.94441,297.60815 542.44831,298.20833 L 534.38945,298.77762 L 530.63945,295.25045 C 524.70616,289.66973 526.17342,285.44083 535.17894,282.16693 C 540.7974,280.12438 545.88945,276.13817 545.88945,273.78243 C 545.88945,272.48037 546.86214,272.12132 550.38945,272.12132 C 553.32278,272.12132 554.88945,272.55651 554.88945,273.37132 C 554.88945,274.17234 556.39374,274.62132 559.07757,274.62132 C 565.36748,274.62132 572.36733,269.27077 568.88945,267.12132 C 567.14141,266.04097 567.81092,264.62132 570.06845,264.62132 C 571.2669,264.62132 573.73059,265.15763 575.54332,265.81312 C 579.48542,267.2386 580.84108,266.33034 578.54999,263.79871 C 577.63309,262.78555 576.88945,260.30865 576.88945,258.26783 C 576.88945,255.21451 577.33831,254.40116 579.47073,253.59042 C 582.46147,252.45334 582.22513,250.26734 579.06112,249.80177 C 577.76984,249.61176 576.88945,248.76413 576.88945,247.7109 C 576.88945,246.37179 578.28283,245.62775 582.59985,244.66165 C 586.93626,243.6912 588.40446,243.66634 588.70178,244.55831 C 588.91712,245.20433 589.7821,246.2703 590.62395,246.92711 C 591.4658,247.58393 593.92861,249.78956 596.09686,251.82851 C 599.56,255.08515 600.95396,255.66294 607.5665,256.58266 C 616.53665,257.8303 616.69571,257.91339 618.53357,262.31201 C 620.35522,266.67183 624.78107,268.62132 632.85733,268.62132 C 636.175,268.62132 638.88945,268.86215 638.88945,269.1565 C 638.88945,269.45085 638.13377,270.845 637.21017,272.2546 C 635.8661,274.3059 635.76629,275.19446 636.71017,276.70585 C 638.63176,279.78281 638.10634,281.28148 633.95259,284.57131 C 631.42742,286.57128 629.90344,288.66327 629.70259,290.40534 C 629.46539,292.46262 628.90439,293.05698 627.38945,292.85604 C 619.86197,291.85758 615.60535,290.67418 613.86002,289.09469 C 611.95257,287.36846 611.65896,287.36081 608.32566,288.95035 C 605.70671,290.19924 603.42954,290.46721 599.43006,289.99715 C 594.60311,289.42983 593.80279,289.61707 591.58803,291.83183 C 589.94755,293.47231 588.89313,295.95914 588.43947,299.25764 C 588.06432,301.98527 587.39427,304.8045 586.95047,305.52259 C 586.35233,306.4904 582.08594,306.88684 570.46075,307.05485 C 556.36131,307.25861 554.68262,307.10336 553.8337,305.51715 z",name:"Tokat"},61:{path:"M 769.38945,263.26309 C 766.70118,262.45356 764.96164,261.16704 764.08488,259.33994 C 762.37025,255.76677 758.88945,255.6203 758.88945,259.12132 C 758.88945,261.87131 757.43559,262.48693 756.52782,260.12132 C 756.21124,259.29632 755.11603,258.62132 754.09403,258.62132 C 752.58667,258.62132 752.32135,258.03865 752.68878,255.53524 C 753.09561,252.76332 752.9012,252.48337 750.77905,252.78524 C 748.9038,253.05199 748.28907,253.90896 747.79929,256.93923 C 747.4599,259.03907 746.47977,261.45958 745.62122,262.31812 C 744.20656,263.73278 743.77513,263.67611 741.01907,261.71361 C 739.34643,260.52259 736.4955,259.04088 734.68368,258.42092 C 732.87185,257.80096 731.16445,257.01516 730.88945,256.6747 C 730.61445,256.33425 727.96932,254.52406 725.01138,252.65207 C 718.00768,248.21966 715.89796,244.69772 715.89319,237.43034 C 715.88907,231.16062 716.77526,229.90855 719.85547,231.83217 C 721.5971,232.91984 722.53652,232.77515 726.14615,230.86327 C 731.34016,228.11221 732.09921,228.09064 734.39617,230.62875 C 737.25922,233.79238 741.82537,235.72598 743.86077,234.63667 C 745.10767,233.96935 746.74115,234.28202 749.50263,235.7166 C 752.33381,237.1874 754.44444,237.57541 757.2739,237.14524 C 760.12441,236.71188 761.64888,236.99862 763.00127,238.22252 C 765.35532,240.3529 771.28585,239.537 774.34649,236.66168 L 776.51673,234.62285 L 779.10621,237.37208 C 782.74978,241.24045 785.54018,251.63609 783.95936,255.45253 C 783.30751,257.02625 783.05812,259.44517 783.40516,260.82791 C 783.96149,263.04449 783.6577,263.41767 780.8378,263.98165 C 776.535,264.84221 774.13268,264.69143 769.38945,263.26309 z",name:"Trabzon"},62:{path:"M 732.23574,381.92154 C 730.5012,381.05701 728.55001,379.35559 727.89977,378.1406 C 727.04258,376.53893 726.05759,376.05768 724.31744,376.39034 C 720.55257,377.11003 714.88945,375.71988 714.88945,374.07601 C 714.88945,372.04148 710.91281,372.24759 709.19174,374.37132 C 707.91047,375.95235 707.8113,375.80338 708.1646,372.82837 C 708.46477,370.30082 708.2268,369.66163 707.14077,370.07837 C 706.36258,370.37699 705.51112,370.62132 705.24865,370.62132 C 704.98617,370.62132 705.04953,371.07132 705.38945,371.62132 C 705.72937,372.17132 705.30593,372.62132 704.44847,372.62132 C 703.59101,372.62132 702.88945,371.93049 702.88945,371.08614 C 702.88945,370.24179 702.17468,368.46007 701.30107,367.12678 C 698.83432,363.36204 700.19671,359.2736 704.42783,357.7436 C 708.65306,356.21574 709.36926,352.62132 705.44847,352.62132 C 702.22662,352.62132 701.12152,350.65601 703.40463,348.98656 C 704.82505,347.94793 705.54202,347.91802 706.66562,348.85052 C 707.80835,349.7989 708.36452,349.69211 709.35791,348.33357 C 710.04652,347.39183 711.0382,346.62132 711.56163,346.62132 C 712.08507,346.62132 713.51143,345.27132 714.73133,343.62132 C 715.95123,341.97132 717.58156,340.62132 718.35429,340.62132 C 719.12702,340.62132 721.02605,340.12917 722.57435,339.52766 C 724.12266,338.92614 727.5712,338.2739 730.23779,338.07823 C 732.90437,337.88257 736.1368,337.03405 737.42095,336.19264 C 739.61623,334.75423 739.77472,334.79543 740.07262,336.88184 C 740.52416,340.04437 743.60278,340.22269 746.36139,337.2461 C 747.65807,335.84696 749.91962,334.40087 751.38706,334.03256 C 753.36574,333.53595 753.9288,332.87979 753.56617,331.49312 C 752.85465,328.77226 754.31443,328.35422 758.46756,330.08951 C 762.99105,331.97954 766.62114,331.98965 769.88945,330.12132 C 773.69075,327.9483 782.1888,328.18963 784.30749,330.53075 C 785.94737,332.34281 785.94253,332.4714 784.21248,333.05209 C 783.20981,333.38863 780.8327,334.95721 778.93001,336.53783 C 775.94191,339.02011 775.65203,339.63031 776.80237,341.0164 C 777.96408,342.41617 777.68027,342.81077 774.58019,344.10607 C 772.6255,344.92279 770.74286,346.04949 770.39655,346.60984 C 770.05023,347.17019 768.70901,347.36315 767.41606,347.03864 C 765.45036,346.54528 764.78436,347.04051 763.35081,350.06151 C 762.24299,352.39606 761.83582,354.9034 762.20004,357.14786 C 762.66994,360.04349 762.46183,360.62132 760.94902,360.62132 C 759.95095,360.62132 758.54549,361.33083 757.8258,362.19802 C 756.73579,363.51139 756.81568,364.32887 758.30414,367.09277 C 761.37822,372.80099 758.5021,376.9834 750.71048,378.13535 L 746.03151,378.8271 L 745.71048,375.47421 C 745.45146,372.76892 744.90711,372.05334 742.8922,371.76937 C 740.48419,371.42999 740.45739,371.48642 742.1422,373.34811 C 744.58424,376.04654 744.32362,378.31444 741.24343,381.16907 C 738.20577,383.98428 736.63719,384.11531 732.23574,381.92154 z",name:"Tunceli"},63:{path:"M 725.38945,525.58657 C 723.73945,525.0698 718.25566,524.73919 713.20325,524.8519 L 704.01706,525.05682 L 699.20325,520.81072 C 696.55566,518.47537 692.36445,515.64166 689.88945,514.51359 C 684.0661,511.8594 673.63848,511.52136 669.30537,513.8463 L 666.22129,515.50108 L 664.55537,511.72518 C 663.63912,509.64843 662.88945,507.41435 662.88945,506.76055 C 662.88945,506.10675 661.77716,505.14893 660.4177,504.63206 C 656.41851,503.11157 652.81743,491.01993 655.81251,489.16887 C 656.3202,488.8551 657.0173,487.31571 657.36163,485.74799 C 657.72873,484.07658 659.00142,482.4357 660.43857,481.7809 C 661.78655,481.16671 662.88945,479.96405 662.88945,479.10832 C 662.88945,477.82785 663.74024,477.6653 667.6957,478.19001 C 671.50498,478.69532 673.17756,478.41671 675.759,476.84685 C 678.50921,475.17434 679.66756,475.0196 683.20275,475.85244 C 685.50544,476.39491 688.31909,477.84359 689.45531,479.07173 C 691.19461,480.95172 692.20788,481.21117 695.86521,480.71301 L 700.20925,480.12132 L 697.54935,478.70234 C 694.8362,477.25495 693.74606,474.24533 696.2883,475.22088 C 698.52583,476.0795 699.27069,473.62535 697.23959,472.08659 C 695.45326,470.73327 695.45268,470.68383 697.22278,470.65312 C 698.23112,470.63563 698.86996,470.06284 698.64243,469.38025 C 697.71352,466.59353 701.79833,464.92436 707.38945,465.80596 C 708.49577,465.98041 709.29203,465.60563 709.17142,464.96723 C 709.0515,464.33248 709.614,463.26488 710.42142,462.59479 C 711.22884,461.92469 711.88945,461.80359 711.88945,462.32568 C 711.88945,462.84777 713.18616,463.08462 714.77103,462.85201 C 716.3559,462.6194 717.95745,462.92234 718.33005,463.5252 C 719.38396,465.23047 720.60369,464.82207 721.19355,462.56643 C 721.59418,461.03441 721.09965,460.27154 719.25001,459.5683 C 716.71529,458.60461 716.84885,456.62132 719.44847,456.62132 C 720.24101,456.62132 720.88945,456.17132 720.88945,455.62132 C 720.88945,455.07132 720.26259,454.62132 719.49644,454.62132 C 717.68822,454.62132 716.64218,451.89217 718.10409,450.98866 C 718.82154,450.54525 718.47034,450.01043 717.1381,449.5176 C 714.62181,448.58676 715.12472,444.99881 717.8947,444.11965 C 719.12405,443.72947 719.51481,442.90469 719.14333,441.48418 C 717.37372,434.71715 734.21232,437.95375 743.92982,446.24846 C 746.74744,448.65353 749.5254,450.62132 750.10307,450.62132 C 750.68074,450.62132 752.70194,449.66426 754.59462,448.49452 C 759.46739,445.48298 760.30475,446.80921 760.08163,457.18503 C 759.90715,465.29897 760.06801,466.02049 763.00229,470.28532 C 764.71021,472.7677 767.13443,477.4189 768.38945,480.62132 C 769.64447,483.82374 772.14064,488.57951 773.9365,491.18971 C 776.26246,494.57037 777.16311,496.96185 777.06756,499.50349 C 776.96459,502.24248 777.65014,503.81094 780.01815,506.25411 C 783.02238,509.35368 783.04962,509.46523 781.0619,510.52903 C 779.93937,511.12979 778.07723,511.62132 776.92381,511.62132 C 775.77039,511.62132 774.56766,512.29632 774.25108,513.12132 C 773.93449,513.94632 773.24575,514.62132 772.72054,514.62132 C 772.19532,514.62132 769.43097,515.69685 766.57752,517.01139 C 763.72408,518.32594 760.26445,519.65147 758.88945,519.95702 C 757.51445,520.26258 753.91445,521.23948 750.88945,522.12792 C 745.88868,523.59664 739.43857,524.90596 731.38945,526.08625 C 729.73945,526.3282 727.03945,526.10335 725.38945,525.58657 z",name:"Şanlıurfa"},64:{path:"M 208.58369,409.10476 C 205.21261,406.12095 202.66687,405.97924 198.50748,408.54386 C 195.73147,410.25551 194.35237,410.38012 185.93481,409.67993 C 180.07901,409.19283 176.3275,408.43548 176.0791,407.69026 C 175.85851,407.0285 174.64434,405.28532 173.38095,403.81654 C 171.35752,401.46417 171.2348,400.84673 172.35078,398.63367 C 173.04758,397.25188 173.86965,393.21528 174.17759,389.66346 C 174.80645,382.41018 175.84269,381.14291 181.99472,380.10353 C 184.33842,379.70757 186.32667,378.67288 186.93767,377.53122 C 187.73867,376.03454 189.08807,375.61365 193.17463,375.58588 C 196.04278,375.5664 199.51445,374.90734 200.88945,374.12132 C 202.26445,373.3353 204.28945,372.67754 205.38945,372.65963 C 206.48945,372.64172 210.17488,371.44477 213.5793,369.99974 C 219.20833,367.61046 220.37711,367.45164 226.47935,368.24687 L 233.18955,369.12132 L 234.63848,374.107 L 236.08741,379.09268 L 232.98843,381.67983 C 230.77332,383.52908 229.88945,385.13177 229.88945,387.29909 C 229.88945,389.67317 228.70881,391.4478 224.44931,395.47626 C 221.45723,398.30604 218.38935,400.62132 217.6318,400.62132 C 216.75545,400.62132 215.91523,402.52995 215.32194,405.8684 C 214.23508,411.98414 212.6804,412.73084 208.58369,409.10476 z",name:"Uşak"},65:{path:"M 941.88945,442.49935 C 939.10531,440.91952 937.26453,440.62956 932.88945,441.08165 L 927.38945,441.64999 L 925.88945,436.88566 C 924.4955,432.45815 924.13314,432.0999 920.76402,431.81838 C 917.34778,431.53292 917.1072,431.28141 916.59457,427.45946 C 916.29535,425.22866 916.29818,421.87749 916.60084,420.0124 C 917.08215,417.04641 916.88402,416.62132 915.02029,416.62132 C 913.55612,416.62132 912.88945,415.99559 912.88945,414.62132 C 912.88945,413.44608 913.55612,412.62132 914.50608,412.62132 C 915.70949,412.62132 915.95573,412.0462 915.46942,410.37132 C 913.81728,404.68117 913.6589,398.05755 915.14548,396.8238 C 915.96524,396.14346 917.25549,395.82763 918.0127,396.12196 C 919.46777,396.68756 921.88945,401.15606 921.88945,403.27537 C 921.88945,404.72465 927.23238,405.93761 931.48152,405.45298 C 933.53044,405.21929 934.34822,404.60317 934.24989,403.36729 C 934.09331,401.3994 939.24332,396.62132 941.52097,396.62132 C 942.65833,396.62132 942.92878,395.53992 942.69424,391.92996 C 942.4149,387.63027 942.13302,387.17257 939.31787,386.4476 C 935.65634,385.50468 932.86871,381.24206 934.70966,379.40111 C 935.35854,378.75223 935.88945,377.36919 935.88945,376.3277 C 935.88945,375.28621 936.76416,374.20534 937.83326,373.92576 C 938.90235,373.64619 939.91631,372.45082 940.08649,371.26938 C 940.31104,369.71054 941.01222,369.18666 942.64268,369.35953 C 943.87841,369.49055 944.88945,369.18794 944.88945,368.68708 C 944.88945,368.18622 946.46445,367.25663 948.38945,366.62132 C 950.31445,365.98601 951.88945,365.10571 951.88945,364.66509 C 951.88945,364.22447 953.23945,363.30477 954.88945,362.62132 C 960.13934,360.44675 957.87176,358.21848 949.24427,357.074 C 944.98321,356.50875 943.49109,356.81037 939.04336,359.13602 C 933.74587,361.906 931.62105,361.99839 925.63945,359.71883 C 924.12695,359.14243 922.88945,358.27304 922.88945,357.78686 C 922.88945,357.30068 924.57695,354.92146 926.63945,352.4997 C 933.33297,344.64026 934.6694,340.32103 930.78879,339.08937 C 928.22104,338.2744 929.22008,337.23634 934.05946,335.69097 C 936.07796,335.04639 938.27056,333.86703 938.9319,333.07017 C 940.71133,330.92609 943.78478,331.3041 947.47834,334.12132 C 949.28106,335.49632 951.04106,336.62132 951.38945,336.62132 C 951.73784,336.62132 953.60862,337.83081 955.54673,339.30908 C 959.77091,342.53102 961.47623,341.86417 963.41199,336.23343 C 965.16639,331.13023 965.5348,330.90909 971.48821,331.38573 C 976.57263,331.7928 976.59091,331.80683 977.98821,336.37521 C 978.75889,338.89491 980.27908,341.44357 981.36641,342.0389 C 982.45374,342.63423 983.90193,343.79632 984.58461,344.62132 C 986.1959,346.56853 986.24824,352.33506 984.65942,352.86466 C 982.93749,353.43864 986.51967,361.18529 989.64312,363.6422 C 991.75755,365.30541 991.95021,366.03335 991.34467,370.07137 C 990.82456,373.5397 991.06783,375.24461 992.36537,377.22492 C 993.38746,378.78482 994.27024,382.68373 994.57217,386.97154 C 995.1159,394.69329 995.90381,395.87085 1000.1584,395.32039 C 1003.7277,394.85859 1005.4195,396.76235 1003.9237,399.5574 C 1003.3161,400.69255 1002.3849,401.62132 1001.8543,401.62132 C 1001.3236,401.62132 1000.8895,403.64632 1000.8895,406.12132 C 1000.8895,408.59632 1000.507,410.62132 1000.0395,410.62132 C 998.56645,410.62132 993.72449,423.31306 994.0645,426.28293 C 994.35397,428.81142 994.82618,429.15481 998.38945,429.42803 C 1001.0348,429.63087 1002.9469,430.45647 1004.0355,431.8659 C 1005.5926,433.88201 1005.553,434.09816 1003.301,435.86954 C 1001.9918,436.8994 999.22606,438.00245 997.155,438.32077 C 995.08395,438.63909 992.64579,439.2793 991.73688,439.74347 C 990.29912,440.4777 990.15344,440.07204 990.61611,436.62256 C 991.27298,431.72525 989.00141,430.2592 985.58857,433.37783 C 981.67953,436.94989 976.54377,438.94747 969.38945,439.67858 C 965.53945,440.07201 960.42478,441.13584 958.02351,442.04264 C 951.15372,444.6369 945.91766,444.78513 941.88945,442.49935 z",name:"Van"},66:{path:"M 512.63945,373.90507 C 511.12695,373.67594 509.88945,373.06837 509.88945,372.5549 C 509.88945,372.04143 508.76445,371.62132 507.38945,371.62132 C 505.5057,371.62132 504.88945,371.09657 504.88945,369.49252 C 504.88945,368.32168 503.27318,365.57471 501.29774,363.38813 C 498.30366,360.07404 497.79985,358.88914 498.26985,356.26693 C 498.78348,353.40134 498.50233,352.96709 495.11156,351.38882 C 493.0644,350.43595 487.83874,346.87613 483.49899,343.47811 C 476.41861,337.93419 475.78723,337.16923 477.34913,336.02715 C 479.23732,334.64646 478.71274,332.9877 475.70066,330.81462 C 474.70449,330.09593 473.88945,328.8688 473.88945,328.08767 C 473.88945,326.15676 470.18405,323.9145 465.61235,323.07892 C 463.46323,322.68612 461.40076,321.57671 460.82717,320.50495 C 460.27272,319.46895 459.18543,318.62132 458.41097,318.62132 C 456.6923,318.62132 453.88945,314.80849 453.88945,312.47053 C 453.88945,311.20268 455.36565,310.45015 459.63945,309.53933 C 462.80195,308.86534 466.73945,307.52088 468.38945,306.55163 C 471.08098,304.97056 471.80074,304.9334 475.38945,306.19028 C 480.46288,307.96716 482.85622,307.97269 486.48581,306.21593 C 488.08281,305.44297 491.30195,304.50341 493.63945,304.12803 C 497.14167,303.56561 497.88945,303.72491 497.88945,305.03342 C 497.88945,306.91679 500.64235,306.99226 506.38945,305.26644 L 510.38945,304.06527 L 511.39648,297.09329 L 512.40351,290.12132 L 518.59031,289.82506 C 524.26098,289.55352 524.88606,289.73113 526.08328,291.95413 C 526.80167,293.28806 528.87865,295.62135 530.69879,297.13921 C 533.85559,299.77176 534.37223,299.87402 541.90719,299.35756 C 547.27092,298.98992 550.0975,299.18609 550.71365,299.96873 C 551.97462,301.57042 553.07385,306.52461 552.98743,310.21662 C 552.93207,312.58183 553.50165,313.57923 555.40221,314.44518 C 557.15549,315.24403 557.88945,316.37303 557.88945,318.27114 C 557.88945,319.75212 558.50073,321.67427 559.24785,322.54258 C 562.7953,326.66546 562.83434,329.94669 559.428,337.68245 C 556.85587,343.52373 555.35335,345.58475 552.20543,347.58971 C 550.01929,348.98209 547.59137,350.66123 546.81004,351.32113 C 546.02872,351.98102 543.58945,354.05729 541.38945,355.93506 C 538.59267,358.32219 535.9431,359.56157 532.5812,360.05526 C 527.52983,360.79704 525.81742,362.62468 527.86366,365.09025 C 529.23543,366.74312 528.4384,368.62132 526.36523,368.62132 C 525.59183,368.62132 523.42148,369.97132 521.54223,371.62132 C 519.66299,373.27132 517.50983,374.5539 516.75743,374.47149 C 516.00504,374.38908 514.15195,374.13419 512.63945,373.90507 z",name:"Yozgat"},67:{path:"M 335.88945,231.62132 C 334.51445,231.18097 330.77658,230.77582 327.58308,230.721 C 322.41408,230.63226 321.46264,230.27746 318.91554,227.48874 L 316.05438,224.35617 L 318.49343,221.73874 C 319.83491,220.29916 321.20142,217.45817 321.53012,215.42544 C 322.04083,212.26714 322.76339,211.43077 326.49771,209.67544 C 328.90118,208.54567 331.2172,207.62132 331.64442,207.62132 C 332.07164,207.62132 335.56405,205.77006 339.40532,203.50741 C 351.44674,196.41456 353.84753,195.62768 358.17745,197.35469 C 360.69285,198.35796 361.88945,199.46666 361.88945,200.79402 C 361.88945,201.87135 362.41445,203.73377 363.05612,204.93274 C 363.69778,206.13171 364.22278,208.60391 364.22278,210.42653 C 364.22278,213.07527 363.5872,214.12691 361.05612,215.66616 C 358.48299,217.23097 357.88945,218.23963 357.88945,221.0476 C 357.88945,222.94823 357.3962,224.80813 356.79333,225.18072 C 356.19047,225.55332 355.88173,227.11537 356.10725,228.65196 C 356.46281,231.07452 356.12678,231.52385 353.57837,232.03354 C 349.53779,232.84165 338.92791,232.5944 335.88945,231.62132 z",name:"Zonguldak"},68:{path:"M 413.63046,435.00695 C 411.66774,431.76985 409.32024,427.26135 408.41379,424.98806 C 406.89558,421.18051 406.89156,420.42187 408.36273,415.36123 C 409.24109,412.33978 410.80346,409.10413 411.83466,408.1709 C 412.86587,407.23768 413.98362,405.38225 414.31857,404.04772 C 414.65351,402.7132 415.28479,401.62132 415.72141,401.62132 C 417.24541,401.62132 422.10254,407.46752 421.45244,408.51939 C 420.3967,410.22762 422.77751,413.62132 425.03162,413.62132 C 426.51589,413.62132 426.93012,413.1697 426.49231,412.02878 C 426.08949,410.97903 426.53637,410.26491 427.80344,409.93356 C 428.86068,409.65709 430.28157,408.08887 430.96098,406.44864 C 431.64038,404.8084 433.25223,402.7745 434.54286,401.92885 C 437.19087,400.1938 437.67772,397.62132 435.35807,397.62132 C 433.54078,397.62132 432.17935,394.70117 433.56269,393.7704 C 435.1441,392.70635 438.88945,384.17325 438.88945,381.63434 C 438.88945,380.33879 438.10436,378.41129 437.14481,377.351 C 435.47002,375.50038 435.52007,375.3262 438.39481,373.00093 C 442.70316,369.51605 445.90295,368.8915 447.49939,371.22386 C 448.21371,372.26746 449.63167,374.02132 450.65042,375.12132 C 451.66917,376.22132 453.73587,379.05615 455.2431,381.42094 C 456.75032,383.78573 458.96888,386.08507 460.17323,386.53059 C 462.05261,387.22582 462.36483,388.10459 462.3762,392.73097 C 462.3888,397.85492 462.55723,398.20508 465.78418,399.81605 C 471.13721,402.48841 471.29751,402.86981 469.94883,409.72503 C 468.98793,414.60918 468.98606,416.43332 469.94011,418.21598 C 471.74451,421.58753 470.8023,422.8403 462.84724,427.64683 C 458.86603,430.05231 454.01258,433.52574 452.06181,435.36555 C 448.84366,438.40066 447.86038,438.74309 441.4522,439.06045 C 437.56769,439.25283 430.52161,439.74376 425.79424,440.1514 L 417.19904,440.89258 L 413.63046,435.00695 z",
+ name:"Aksaray"},69:{path:"M 747.64124,301.77989 C 743.2738,299.1441 743.98117,295.9216 750.11433,290.51339 C 755.08379,286.13133 755.27988,285.77364 754.1147,283.21633 C 752.22596,279.07101 752.64313,275.58427 755.52545,271.42507 C 758.112,267.69268 759.11851,267.21599 763.63945,267.58219 C 765.31341,267.71779 765.88945,267.22922 765.88945,265.67383 C 765.88945,263.87339 766.27114,263.68996 768.63945,264.35227 C 770.15195,264.77525 775.56468,265.1011 780.66774,265.0764 C 788.6622,265.03769 789.85514,265.24524 789.28915,266.5764 C 787.93763,269.75499 787.73563,272.40822 788.79528,273.06312 C 790.38531,274.04581 790.13538,275.62132 788.38945,275.62132 C 786.65264,275.62132 786.40536,278.84827 787.92463,281.68706 C 788.49398,282.7509 789.97898,283.62132 791.22463,283.62132 C 792.47028,283.62132 794.04068,284.17255 794.71441,284.84628 C 795.68102,285.81289 796.35591,285.8111 797.91441,284.83781 C 801.67196,282.49117 799.97676,285.66612 794.75811,290.74925 C 786.43344,298.85774 785.96404,299.05198 778.35129,297.53881 C 769.00682,295.68143 757.36453,297.36769 754.20963,301.03548 C 751.66217,303.99707 751.36993,304.03019 747.64124,301.77989 z",name:"Bayburt"},70:{path:"M 365.80664,545.37132 C 365.7611,544.68382 365.60586,541.19632 365.46166,537.62132 C 365.31747,534.04632 364.7532,529.28017 364.20774,527.02989 L 363.21599,522.93845 L 367.80272,520.90864 C 370.32542,519.79224 373.51445,518.41785 374.88945,517.85444 C 378.16194,516.51352 385.88995,509.79536 385.88766,508.2934 C 385.88668,507.64875 383.8899,505.86035 381.45038,504.31917 C 378.81658,502.65526 376.87859,500.62426 376.67934,499.31917 C 376.32599,497.00472 379.1829,492.03388 382.13945,489.81895 C 383.11278,489.08976 383.88945,487.20165 383.88945,485.56462 C 383.88945,482.85596 384.17434,482.62132 387.4631,482.62132 C 390.51884,482.62132 391.76525,481.82423 396.06344,477.12132 C 401.28019,471.41337 403.24049,470.48777 404.29461,473.23477 C 404.68719,474.25781 405.64081,474.6581 406.90061,474.32865 C 407.99337,474.04289 409.13946,474.21683 409.44747,474.7152 C 409.75548,475.21357 411.11177,475.62132 412.46146,475.62132 C 414.37641,475.62132 415.39185,474.64073 417.08431,471.15713 C 419.28488,466.62771 422.15269,464.77766 429.38945,463.219 C 432.22473,462.60833 432.46239,462.80674 433.71787,466.83261 C 434.44851,469.17548 436.10118,473.39859 437.39049,476.2173 C 439.30204,480.39637 440.47882,481.63998 443.76662,482.95549 C 447.61363,484.49477 447.78035,484.74195 447.40162,488.34504 C 447.1833,490.42199 446.97875,493.75402 446.94707,495.74954 C 446.8955,498.9967 446.31243,499.77517 441.39549,503.1616 C 436.05441,506.84014 435.79225,506.90936 431.97384,505.64917 C 428.38261,504.46396 427.8137,504.53574 425.33293,506.48712 C 423.62164,507.83322 421.18687,508.62132 418.73949,508.62132 C 416.60536,508.62132 412.10632,509.3867 408.74163,510.32217 C 403.61868,511.74648 402.40805,512.51879 401.29587,515.07217 C 400.56539,516.7492 399.95012,517.55882 399.92859,516.87132 C 399.90217,516.02758 398.10191,515.62132 394.38945,515.62132 C 389.17085,515.62132 388.88945,515.75087 388.88945,518.15344 C 388.88945,519.5461 389.51033,522.17153 390.26918,523.98771 C 391.65314,527.29999 396.28239,532.62132 397.77992,532.62132 C 398.21967,532.62132 399.39695,533.52462 400.39608,534.62864 C 402.18415,536.60444 402.16336,536.6261 399.07223,536.00788 C 396.35686,535.4648 395.80191,535.72138 394.9723,537.90341 C 393.70049,541.24852 392.31681,541.98301 386.91661,542.17959 C 384.42667,542.27022 378.91022,543.30669 374.65783,544.48285 C 365.56355,546.99822 365.9121,546.96323 365.80664,545.37132 z",name:"Karaman"},71:{path:"M 419.95679,344.74714 C 419.37924,343.66799 419.18679,341.38462 419.52911,339.673 C 420.07192,336.95895 419.63073,336.06553 416.07933,332.68717 L 412.00713,328.81338 L 413.94829,325.00591 C 415.01593,322.9118 415.88945,319.58359 415.88945,317.60988 C 415.88945,315.63617 416.30135,313.59382 416.80477,313.07132 C 417.3082,312.54882 417.8707,310.99632 418.05477,309.62132 C 418.31121,307.70573 419.06564,307.04413 421.28206,306.79114 C 424.12221,306.46694 431.88945,301.99825 431.88945,300.68843 C 431.88945,300.32152 431.49755,299.59382 431.01856,299.07132 C 428.72918,296.57399 429.02842,292.95443 431.9467,287.84472 C 433.58746,284.97185 435.4833,282.62543 436.15968,282.63046 C 438.16826,282.6454 446.32505,286.9298 449.46911,289.62132 C 452.24261,291.99562 454.88945,297.45799 454.88945,300.80746 C 454.88945,301.65674 455.78945,303.49577 456.88945,304.89419 C 459.47852,308.18566 459.44174,308.34111 455.88945,309.12132 C 453.46371,309.6541 452.89238,310.29143 452.90476,312.45078 C 452.91318,313.91957 453.33619,315.7792 453.84478,316.58328 C 454.54671,317.69303 453.8805,318.54192 451.07946,320.10688 C 448.3319,321.64197 447.04601,323.24779 446.04477,326.39425 C 445.19792,329.05551 443.53191,331.43807 441.54477,332.82972 C 439.80934,334.04509 437.80143,335.84539 437.08275,336.8304 C 436.36406,337.81541 434.62651,338.62132 433.22153,338.62132 C 431.69956,338.62132 428.71468,340.25591 425.83694,342.66528 C 421.26503,346.49311 420.95075,346.60438 419.95679,344.74714 z",name:"Kırıkkale"},72:{path:"M 830.36103,462.37132 C 829.983,460.58382 828.85968,457.77132 827.86477,456.12132 C 826.74151,454.25847 826.25802,452.07894 826.58922,450.37132 C 826.99717,448.26803 826.73506,447.62132 825.47464,447.62132 C 822.51534,447.62132 822.58243,444.73503 825.62221,441.27291 C 827.24177,439.42833 829.57169,435.71462 830.79981,433.02022 C 832.02792,430.32583 833.4505,427.33993 833.96109,426.38489 C 835.37625,423.73793 835.09027,421.68232 832.7888,417.95846 C 831.32758,415.59416 830.89048,413.75334 831.35286,411.91107 C 832.21943,408.45838 837.03652,401.67005 838.63945,401.64267 C 839.32695,401.63093 839.88945,401.21534 839.88945,400.71915 C 839.88945,400.22295 841.24538,399.34429 842.90264,398.76657 C 844.55989,398.18885 846.16501,397.0668 846.46957,396.27313 C 847.15443,394.48841 851.884,395.50978 852.9509,397.6728 C 854.83974,401.50225 856.61211,414.91145 855.63295,417.96433 C 853.74736,423.84332 852.09359,426.11391 849.46139,426.43774 C 848.04682,426.61177 846.88945,427.26987 846.88945,427.90018 C 846.88945,428.53049 845.73637,429.96562 844.32706,431.08937 C 839.61355,434.84779 842.96846,438.19202 853.38945,440.12291 L 859.38945,441.23464 L 859.38945,445.67798 L 859.38945,450.12132 L 863.29857,450.12132 C 868.74527,450.12132 868.64858,451.71084 863.03581,454.44102 C 860.41291,455.71685 856.58832,458.29851 854.5367,460.17803 C 849.07575,465.18092 847.82154,465.62132 839.03465,465.62132 L 831.04836,465.62132 L 830.36103,462.37132 z",name:"Batman"},73:{path:"M 861.60522,485.98538 C 862.19031,482.37991 862.16883,482.35332 859.04235,482.81219 C 855.52347,483.32865 855.44941,483.11093 856.51051,475.36934 C 857.10752,471.0137 857.28349,470.81393 861.05418,470.21097 C 866.57653,469.32791 868.88945,467.6243 868.88945,464.43979 C 868.88945,462.95455 869.33945,461.46124 869.88945,461.12132 C 870.43945,460.7814 870.88945,459.71811 870.88945,458.75846 C 870.88945,457.20017 871.93184,457.04149 880.63945,457.27424 C 886.00195,457.41757 891.12543,457.31533 892.02497,457.04703 C 892.9245,456.77873 894.9199,454.74187 896.45919,452.52068 C 901.01303,445.9495 907.79944,443.6544 911.28558,447.50654 C 912.22394,448.54342 914.26618,449.64667 915.8239,449.95821 C 917.38162,450.26975 919.81105,450.81452 921.22262,451.16881 C 923.51278,451.7436 924.01645,451.32935 925.90035,447.32153 C 927.83108,443.21407 928.39482,442.77262 932.49456,442.15783 C 936.02505,441.6284 937.93798,441.95049 941.49775,443.67375 C 945.11798,445.42627 947.00065,445.73158 950.9537,445.20719 C 957.13742,444.38689 957.5822,446.19617 952.33039,450.80732 C 949.63172,453.17678 948.84029,454.58965 949.05659,456.65175 C 949.21348,458.14749 948.71702,460.12416 947.95334,461.04433 C 946.76258,462.47912 946.79669,463.2036 948.19291,466.13149 C 950.20406,470.34892 949.21856,471.0746 944.28145,469.01175 C 939.81305,467.14473 933.7249,467.64301 931.29314,470.07477 C 930.10119,471.26673 928.77263,471.53848 926.51574,471.05199 C 924.79628,470.68134 923.23945,469.98281 923.05612,469.4997 C 922.30983,467.53312 918.88536,468.82217 916.75572,471.87132 C 915.50727,473.65882 914.20531,475.34632 913.86248,475.62132 C 913.51965,475.89632 912.37297,477.97313 911.3143,480.23645 C 909.63148,483.83415 908.70834,484.56208 903.97267,486.02562 C 897.96855,487.88116 896.93314,487.36376 896.90476,482.49376 C 896.88642,479.34646 895.50685,478.11474 891.0539,477.26992 C 888.09687,476.70891 887.30251,477.07915 884.0539,480.5325 C 881.33465,483.42313 878.43553,485.09769 872.81427,487.02461 C 868.64792,488.4528 864.28871,489.62132 863.12714,489.62132 C 861.25693,489.62132 861.08273,489.20515 861.60522,485.98538 z",name:"Şırnak"},74:{path:"M 365.38392,211.61237 C 365.04096,211.05745 365.04323,209.71217 365.38896,208.62287 C 365.74773,207.49247 365.34619,205.6838 364.45351,204.40931 C 363.59328,203.18116 362.88945,201.19957 362.88945,200.00577 C 362.88945,198.44078 361.84326,197.40129 359.13945,196.2798 C 357.04441,195.41082 356.19627,194.70164 357.21764,194.67285 C 358.22315,194.64451 360.73992,192.80458 362.81047,190.58411 C 365.09264,188.13671 368.11371,186.12307 370.48228,185.47062 C 372.63122,184.87867 375.51445,183.60137 376.88945,182.63217 C 378.26445,181.66297 380.96445,180.55545 382.88945,180.171 C 384.81445,179.78655 387.15718,179.25655 388.09552,178.99322 C 389.3521,178.64058 390.49082,179.87455 392.41754,183.67676 L 395.03349,188.83909 L 392.83228,191.18217 C 391.45554,192.64765 390.82894,194.28193 391.15936,195.54546 C 391.58011,197.15442 390.87447,197.92443 387.69289,199.32814 C 385.43107,200.32605 383.06219,202.32038 382.23219,203.92544 C 381.22349,205.87604 378.72898,207.6743 374.23463,209.69078 C 367.02964,212.92344 366.29304,213.08337 365.38392,211.61237 z",name:"Bartın"},75:{path:"M 893.28248,244.85161 C 892.55211,242.91666 890.69163,241.21988 887.72646,239.78446 C 885.27458,238.59753 881.98789,236.28974 880.4227,234.65603 L 877.57691,231.68566 L 880.48318,225.18023 C 882.08163,221.60224 885.30014,216.08653 887.63544,212.9231 C 892.31249,206.58746 892.35045,205.57743 888.14517,199.35944 C 885.76965,195.84695 885.70999,195.47711 887.24522,193.7807 C 888.14954,192.78143 888.88945,190.97563 888.88945,189.76783 C 888.88945,187.03575 892.47138,185.51694 897.13126,186.27313 C 900.19914,186.77098 900.4742,187.09054 900.08972,189.71015 C 899.77939,191.82455 900.14855,192.78351 901.46767,193.28971 C 902.5507,193.70531 903.43377,193.48837 903.68125,192.74592 C 903.93246,191.9923 905.5631,192.99438 907.86348,195.31601 C 909.93724,197.40893 913.71645,200.23692 916.26171,201.60043 C 919.48726,203.32839 920.88945,204.70971 920.88945,206.15931 C 920.88945,207.30317 921.52809,209.11245 922.30865,210.17993 C 923.55721,211.88744 924.10811,211.97726 926.89063,210.92698 C 931.10951,209.33453 934.88945,210.73746 934.88945,213.89577 C 934.88945,215.93587 934.48654,216.17268 931.5907,215.83461 C 928.41783,215.46419 928.23657,215.63404 926.8407,220.28541 C 925.27433,225.50492 922.15226,227.78779 914.88945,229.02422 C 909.46461,229.94776 908.83997,230.79505 907.74324,238.71784 C 907.17958,242.78975 906.64438,246.18322 906.55392,246.25887 C 906.46346,246.33452 903.68744,246.70338 900.38499,247.07856 C 894.42914,247.75518 894.37165,247.73715 893.28248,244.85161 z",name:"Ardahan"},76:{path:"M 974.38945,305.82039 C 970.53945,305.65489 966.96195,305.09239 966.43945,304.57039 C 965.91695,304.0484 963.83113,303.62132 961.80428,303.62132 C 959.77744,303.62132 955.84482,302.8868 953.06512,301.98906 C 948.39066,300.47938 947.88853,300.47938 946.37885,301.98906 C 945.48111,302.8868 943.97202,303.62132 943.02532,303.62132 C 941.61613,303.62132 941.3118,302.69558 941.34675,298.51543 L 941.38945,293.40954 L 936.88945,291.63804 C 931.74131,289.61138 930.20756,286.62132 934.31613,286.62132 C 936.35404,286.62132 936.88945,286.13002 936.88945,284.25999 C 936.88945,282.35155 937.32098,281.98043 939.13945,282.32501 C 940.37695,282.55951 943.40603,282.29655 945.87074,281.74067 C 949.44126,280.93539 950.6767,281.02379 951.94948,282.17565 C 952.82808,282.97077 954.17145,283.62132 954.93476,283.62132 C 955.69806,283.62132 958.28101,284.36925 960.67465,285.28339 C 964.74047,286.83614 965.66777,286.83326 974.77305,285.23961 C 984.28948,283.574 984.624,283.58088 988.95442,285.53117 C 993.54832,287.60012 997.8411,290.81981 997.95471,292.28161 C 997.9906,292.74345 999.2281,294.12642 1000.7047,295.35487 C 1009.1023,302.34118 1011.8871,304.95703 1011.4221,305.42209 C 1011.1359,305.70826 1010.1115,305.26355 1009.1456,304.43386 C 1008.1797,303.60416 1006.602,302.64604 1005.6395,302.3047 C 1004.677,301.96337 1003.8895,301.21997 1003.8895,300.6527 C 1003.8895,299.05239 1000.8971,299.4378 1000.2511,301.12132 C 999.91889,301.98698 998.42423,302.62132 996.71672,302.62132 C 995.08941,302.62132 992.77505,303.15425 991.57371,303.80562 C 988.49846,305.47301 982.54516,306.171 974.38945,305.82039 z",name:"Iğdır"},77:{path:"M 187.63945,257.29779 C 184.42207,254.66351 184.1699,253.62132 186.7499,253.62132 C 187.77315,253.62132 190.26814,252.49632 192.29431,251.12132 C 195.54101,248.91805 197.03422,248.62132 204.87484,248.62132 C 209.76796,248.62132 214.02342,248.21357 214.33143,247.7152 C 214.63944,247.21683 215.79339,247.04494 216.89577,247.33322 C 217.99815,247.6215 219.53264,247.33241 220.30575,246.69079 C 221.1876,245.95891 221.9363,245.8881 222.31494,246.50077 C 222.64689,247.03787 222.12446,247.74079 221.15397,248.0628 C 220.18348,248.3848 218.71445,250.1047 217.88945,251.88479 C 216.56601,254.74035 215.75044,255.22193 210.96069,255.97605 C 207.28071,256.55544 204.23935,256.44351 201.51939,255.62859 C 197.70731,254.48647 197.41235,254.55616 195.61475,257.02387 C 193.3108,260.18668 191.25408,260.25732 187.63945,257.29779 z",name:"Yalova"},78:{path:"M 376.44832,245.08952 C 375.3807,244.28201 373.4682,243.62132 372.19832,243.62132 C 368.88987,243.62132 366.29669,240.56955 365.52977,235.77346 C 364.90119,231.84253 364.68357,231.62132 361.44502,231.62132 C 358.84784,231.62132 357.8637,231.11555 357.3575,229.52066 C 356.9908,228.36529 357.18548,226.92529 357.79011,226.32066 C 358.39475,225.71602 358.88945,223.74669 358.88945,221.94437 C 358.88945,218.04859 359.85661,217.32983 372.29791,211.97954 C 378.82781,209.17141 381.68565,207.36042 383.00141,205.19682 C 385.13494,201.68851 390.67651,198.66272 396.87689,197.62057 C 402.82066,196.62154 403.61898,197.06094 404.41445,201.76929 C 404.78533,203.9645 405.71893,206.00239 406.48911,206.29794 C 408.73565,207.16001 408.12848,208.13311 404.53276,209.43334 C 399.78194,211.15126 397.73168,213.8414 397.13437,219.14076 C 396.69492,223.03956 396.9406,223.96884 398.7449,225.23262 C 403.83736,228.79952 403.81312,234.75507 398.69888,236.53791 C 396.70685,237.23234 395.07263,237.25454 393.85652,236.6037 C 391.0492,235.10126 390.16152,235.40116 389.4894,238.0791 C 388.93334,240.29463 381.23455,246.66808 379.20927,246.58952 C 378.75837,246.57202 377.51594,245.89702 376.44832,245.08952 z",name:"Karabük"},79:{path:"M 612.38578,530.28771 C 611.83377,529.6462 611.51917,528.1729 611.68667,527.01372 C 612.01371,524.75056 609.54699,523.36251 602.88945,522.06341 C 598.28065,521.16408 593.67526,518.7639 594.102,517.48367 C 594.50149,516.28521 598.24997,514.02994 602.13945,512.64794 C 604.07063,511.96176 604.88945,510.97862 604.88945,509.34607 C 604.88945,508.06746 605.39512,506.51565 606.01316,505.89761 C 607.50621,504.40456 610.48066,507.13813 611.41421,510.86129 C 611.95533,513.01937 612.98132,513.83552 616.24534,514.70432 C 621.38858,516.07332 623.49761,517.904 624.92936,522.24224 C 625.78807,524.84417 626.60169,525.62132 628.467,525.62132 C 629.96802,525.62132 630.88945,525.04303 630.88945,524.101 C 630.88945,522.82439 631.52342,522.9041 634.84424,524.59826 L 638.79903,526.61584 L 636.50226,529.09409 C 634.47325,531.28344 633.80896,531.45862 630.80407,530.59683 C 626.50512,529.36391 615.5969,529.32474 614.33945,530.53771 C 613.76103,531.09567 612.99687,530.99788 612.38578,530.28771 z",name:"Kilis"},80:{path:"M 570.02867,508.61782 C 568.73023,507.51975 566.40454,506.62132 564.86045,506.62132 C 559.72489,506.62132 558.88945,505.78399 558.88945,500.63678 C 558.88945,494.49178 557.1188,492.775 552.50262,494.44424 C 548.02486,496.06342 547.77384,495.96917 549.05791,493.15093 C 549.9241,491.24985 549.88295,490.31841 548.87933,489.10912 C 547.78861,487.79488 547.90193,487.09446 549.57174,484.82951 C 550.66986,483.34 551.86557,480.88382 552.22888,479.37132 C 552.59219,477.85882 553.18528,475.38382 553.54684,473.87132 C 553.90841,472.35882 555.41301,468.87132 556.8904,466.12132 C 559.48836,461.28551 559.73565,461.11106 564.42094,460.80885 L 569.2653,460.49639 L 566.82738,462.62311 C 565.48652,463.7928 564.83945,464.95323 565.38945,465.20183 C 569.16941,466.91038 569.30007,467.31154 568.1285,473.61134 C 566.53928,482.15694 567.58886,484.62132 572.81765,484.62132 C 575.00538,484.62132 577.90833,484.11421 579.26866,483.4944 C 583.04447,481.77403 586.10905,483.18561 589.17192,488.05596 L 591.95438,492.48044 L 586.92418,497.1856 C 583.59274,500.30178 581.54249,503.19611 580.85317,505.75604 C 580.16247,508.32112 579.23666,509.62591 578.10091,509.63497 C 577.15961,509.64248 575.48945,509.86591 574.38945,510.13148 C 573.24874,510.40687 571.37515,509.75653 570.02867,508.61782 z",name:"Osmaniye"},81:{path:"M 307.88945,255.62132 C 307.88945,255.04898 304.86699,254.62132 300.82206,254.62132 C 294.20975,254.62132 293.79555,254.49254 294.38945,252.62132 C 295.26487,249.86311 294.07717,246.62132 292.19122,246.62132 C 289.20133,246.62132 291.36155,239.78961 295.4761,236.23286 C 298.19807,233.8799 299.18518,232.21735 299.27205,229.83944 C 299.3625,227.36343 299.84847,226.60599 301.38945,226.53922 C 302.48945,226.49155 305.97313,226.12973 309.13096,225.73518 C 314.74121,225.0342 314.9393,225.09328 317.79563,228.31956 C 320.36225,231.21861 321.32378,231.62132 325.67912,231.62132 C 333.99154,231.62132 336.88945,232.53993 336.88945,235.17489 C 336.88945,236.44186 336.19927,238.16865 335.35571,239.0122 C 333.60821,240.7597 327.65948,242.60748 323.75446,242.61574 C 320.42442,242.62279 317.88945,246.29455 317.88945,251.11089 C 317.88945,254.01211 317.41482,254.85128 315.32435,255.64607 C 311.9967,256.91124 307.88945,256.89757 307.88945,255.62132 z",name:"Düzce"}},height:744.09448,width:1052.3622});
--- /dev/null
+/** Add USA Map Data Points */
+jQuery.fn.vectorMap('addMap', 'usa_en', {"width":959,"height":593,"paths":{"hi":{"path":"m244.66,512.25c-2.48,3.8 2.23,4.04 4.74,5.38 3.06,0.16 3.51,-4.28 2.66,-6.56 -2.72,-0.77 -5.01,-0.19 -7.41,1.19z m-9.31,3.97c-4.02,5.11 3.64,0.48 0.63,-0.09l-0.5,0.07 -0.14,0.02z m39.69,7.97c-0.62,2.09 1.91,6.73 4.39,6.2 2.41,-1.46 3.73,1.73 6.48,0.56 1.23,-1.48 -3.77,-3.2 -3.7,-6.08 -0.95,-3.8 -3.28,-3.2 -5.96,-1.28 -0.41,0.2 -0.81,0.4 -1.22,0.6z m19.94,10.03c3.58,0.95 7.91,2.99 11.25,0.47 -1.05,-1.63 -5.06,-0.59 -7.1,-0.86 -1.44,0.01 -3.54,-1.63 -4.15,0.39z m12.13,4.38c2.33,2.45 3.64,6.83 7.24,7.4 2.36,-0.69 6.84,-0.66 7.32,-3.43 -2.09,-2.51 -5.77,-3.35 -8.88,-4.29 -2.53,-1.2 -4.11,-3.25 -5.68,0.33z m-7.06,1c-0.29,3.69 5.55,3.98 3.67,0.55 -0.27,-1.25 -3.83,-1.74 -3.67,-0.55z m23.66,14.69c0.27,2.45 3.18,3.93 0.47,6.15 -0.65,2.42 -5.54,2.87 -2.52,5.53 2.36,1.46 2.01,4.85 2.92,7.14 -0.72,2.69 -1.43,6.78 1.72,8.06 2.8,2.95 4.5,-1.93 6.19,-3.68 1.27,-1.69 3.85,-4.1 5.94,-2.59 3.04,-0.81 6.3,-2.42 7.78,-5.22 -2.79,-1.31 -4.88,-3.19 -5.57,-6.29 -2.4,-5.33 -8.95,-6.26 -13.58,-8.98 -1.29,-0.52 -2.26,-1.62 -3.34,-0.11z","name":"Hawaii"},"ak":{"path":"m107.84,436.56c-2.27,0.55 -4.87,0.32 -6.84,-0.34 -2.41,1.22 -5.63,4.03 -8.25,1.88 -3.1,0.93 -3.51,3.84 -5.22,5.97 -1.82,2.52 -4.21,3.65 -7.31,3.14 -2.5,-0.94 -5.49,-1.15 -7.5,0.98 2.03,4.34 6.39,8.13 5.82,13.23 -1.85,2.94 6.31,2.99 2.68,5.02 0.15,2.8 3.07,5.68 2.91,7.88 -2.35,2.21 -5.24,-0.38 -7.71,-1.06 -3.24,-0.64 -2.73,-3.35 -0.82,-5.22 -1.57,-1.51 -7.35,-1.81 -6.51,1.12 -2.01,0.04 -3.81,-1.66 -6.27,-0.77 -3.72,-0.44 -5.97,0.65 -2.94,4.05 3.68,1.45 1.06,4.72 1.17,7.57 0.76,2.63 3.66,4.89 6.67,4.17 3.2,-0.06 5.87,3.59 9.21,1.65 2.16,-1.3 5.33,-0.99 4.79,1.89 -2.53,2.07 -1.36,6.13 -2.78,8.75 -1.96,1.88 -4.53,1.59 -6.59,0.16 -1.52,1.37 -4.7,3.68 -6.28,2.22 0.72,-3.71 -4.77,-3.63 -5.51,-0.61 -1.21,3.97 -6.27,4.46 -8.31,7.63 -0.7,2.42 -1.55,6.7 1.74,6.3 1.26,1.11 -1.2,4.8 -2.77,5.52 1.62,2.19 2.65,4.59 2.72,7.34 1.71,1.55 6.35,1.98 7.5,-0.16 2.45,-0.95 1.79,4.1 2.08,5.97 2.47,2.95 -4.02,1.28 -1.61,4.56 -0.85,2.93 -1.76,5.02 2,2.72 2.76,-0.47 5.11,-0.69 5.66,2.09 2.59,-3.91 2.26,2.78 3.25,4.66 0.59,-0.75 1.3,-5.69 3.94,-3.06 -0.17,4.52 5.33,-0.45 5.78,-0.04 0.54,2.92 -1.63,4.24 -2.86,6.41 -1.51,2.24 -2.07,5.63 -4.21,7.17 -3.87,-0.42 -3.37,4.1 -5.5,5.02 -2.65,-0.72 -5.73,0.71 -8.44,1.41 -1.35,2.41 -3.61,4.2 -5.78,1.81 -2.56,0.05 -5.63,0.68 -7.63,2.33 -2.48,2.43 -6.32,3.11 -9.66,2.29 -2.78,-1.91 -7.11,3.41 -3.11,2.31 2.5,-1.91 4.66,0.64 7.25,0.63 2.21,-1.15 4.17,-2.75 6.84,-2.06 2.32,-3.35 5.1,-0.32 7.92,-1.16 2.31,-0.39 7.01,-3.91 5.26,0.66 0.09,-2.91 3.42,-2.73 5.54,-2.04 4.21,0.96 0.29,-3.16 2.08,-3.43 3.47,-2.05 7.52,-2.41 11.2,-3.72 5.48,-3.19 11.62,-5.7 16.21,-10.1 4.27,-2.97 -2.78,-3.48 -1.21,-6.32 1.68,-2.43 4.58,-3.81 7.47,-4.5 1.5,-3.07 3.53,-6.11 5.88,-8.52 2.49,-1.32 4.83,-3.39 7.83,-2.32 2.67,0.71 3.74,5.32 -0.52,3.66 -1.27,-1.88 -5.56,-0.09 -5.25,2.41 -0.21,2.44 -2.56,4.22 -3.06,6.66 4.79,0.85 0.24,3.54 -1.38,3.8 1.67,1.91 5.66,0.6 7.57,-1.14 1.25,-1.85 3.43,-3.8 5.41,-4.22 1.81,2.8 5.1,-1.16 5.74,2.72 0.71,2.78 6.02,-4.86 3.34,-3.1 -3.03,3.11 -3.78,2.86 -1.94,-1.24 1.43,-4.85 -1.76,6.17 -1.45,0.81 -0.81,-3.19 -0.93,-6.03 3.05,-6.4 2.7,-0.86 5.37,-0.87 5.79,2.52 0.42,3.48 3.8,2.84 5.95,4.76 2.41,2.2 4.76,1.95 7.8,1.78 4.34,-0.47 8.01,4.04 12.28,3.17 2.49,-0.42 5.1,-5.2 4.29,-0.23 -2.26,2.83 -0.02,4.12 2.5,5.41 3.13,1.35 5.87,3.14 7.94,5.85 1.31,3.02 6.05,0.28 6.18,2.43 -3.83,1.25 -1.23,3.54 0.21,5.47 1.81,1.95 0.33,5.72 3.64,5.82 1.14,1.28 3.49,7.44 4.01,5.38 -0.35,-2.32 -0.7,-7.86 1.61,-3.76 0.37,1.42 1.04,8.7 2.07,4.74 1.07,-4.88 3.18,0.18 2.22,2.93 3.33,1.69 -1.23,3.33 0.69,4.88 0.69,-3.24 1.31,-0.36 2.16,1.56 1.05,1 1.54,3.94 3.13,3.72 -1.68,-1.72 -2.94,-6.23 0.4,-3 2.42,2.79 4.05,2.12 2.74,-1.66 -2.65,-2.66 0.28,-4.96 2.58,-2.29 3.12,-0.05 2.84,5.21 5.28,4.53 3.31,-3.17 1.5,-7.87 0.69,-11.7 -3.3,-1.55 -7.04,-2.54 -10.22,-4.06 -1.5,-5.33 -6.29,-8.69 -8.4,-13.77 -0.44,-3.33 -4.71,-2.62 -5.75,-5.23 -2.32,-1.72 -2.7,-4.4 -4.56,-6.35 -1.65,-1.53 -5.22,0.95 -5.51,2.94 0.59,3.09 -3.23,3.04 -5.06,4.72 0.05,-4.27 -4.3,-6.15 -6.7,-9.1 -1.33,-1.99 -1.32,-5.36 -4.45,-2.34 -2.37,0.24 -6.38,-0.31 -5.34,-3.62 0.1,-27.7 0.2,-55.4 0.31,-83.09 -2.75,-1.88 -5.88,-4.17 -9.15,-4.4 -2.52,1.72 -5.07,1.09 -7.39,-0.62 -2.72,0.23 -5.12,-0.65 -7.7,-2.89 -3.08,-2.74 -8.58,0.17 -10.98,-3.65 1.13,-3.56 -3.22,-4.83 -5,-2.09 -2.09,0.26 -0.65,-4.31 -3.64,-4.93 -2.57,-2.85 -4.01,-1.28 -5.86,1.21z M36.38,480.63c-0.67,3.11 4.27,1.31 4.72,4.66 0.24,3.82 5.37,3.9 2.34,-0.08 -0.1,-3.22 -3.92,-1.83 -5.06,-4.43 -0.76,-2.02 -0.9,-1.86 -2,-0.16z m-17.16,23.16c2.57,4.06 1.45,1.37 0.13,-1.28 -0.36,0.01 0,1 -0.13,1.28z m21.84,14.81c1.27,1.79 4.99,5.58 6.22,2.03 2.26,-3.3 -3.27,-2.89 -5.23,-3.68 -1.83,-0.9 -0.88,0.54 -0.99,1.65z m91.72,18.78c0.06,3.21 2.81,-1.98 0,0z m-31.47,14.69c-3.2,2.91 -7.24,4.67 -10.56,7.38 0.22,2.75 0.99,7.64 4.67,5.15 2.5,-1.44 4.98,-2.9 7.45,-4.37 -1.84,-3.31 -0.81,-3.15 -4.55,-3.48 -4.15,0.09 1.06,-3.73 2.64,-1.62 3.74,-1.04 3.95,-2.36 1.5,-3.66 0.7,-1.08 -1,0.61 -1.16,0.59z M55.75,570.75c1.42,2.83 3.53,-1.99 0,0z m-35.78,0.34c0.53,2.46 -4.04,4.84 1.05,3.59 4.2,0.47 3.46,-4.35 0.01,-3.84 -0.35,0.08 -0.7,0.16 -1.06,0.24z m62.19,0.69c1.57,2.91 1.31,-2.03 0,0z M58.63,573.13c3.23,0.49 0.99,-3.05 0,0z m-49,0.09c-4.84,2.56 -0.44,1.81 2.29,0.58 2.89,0.16 5.05,-0.48 0.84,-1.46 -1.04,0.29 -2.08,0.58 -3.13,0.88z m7.25,1.38c1.28,0.21 -2.23,-0.59 0,0z","name":"Alaska"},"fl":{"path":"m748.38,439.94c1.69,2.92 1.5,6.12 1.16,9.34 -4.12,0.54 -2.15,-4.69 -5.56,-3.99 -6.18,-0.07 -12.34,1.13 -18.54,1.19 -10.09,0.29 -20.37,2.14 -30.33,0.64 -2.57,-1.57 -2.84,-6.15 -6.5,-5.33 -9.12,-0.12 -18.18,1.79 -27.26,2.55 -5.82,0.63 -11.62,1.37 -17.43,2.12 -1.42,3.25 2.6,4.37 4.06,6.34 0.8,2.28 -1.56,8.42 2.19,7.1 4.11,-1.2 8.08,-2.93 12.48,-2.72 3.34,-0.82 6.63,-0.73 9.89,0.45 4.09,0.8 7.77,3.09 11.41,4.98 1.77,1.94 5.5,1.87 5.97,5 -0.14,3.27 4.32,-0.94 6.5,0.53 3.19,-0.8 5.24,-3.68 7.69,-5.5 4.86,1.69 0.62,-2.9 3.27,-3.97 3.13,-0.83 6.62,-1.39 9.35,0.79 3.04,0.57 5.43,2 6.57,4.99 3.68,0.02 2.88,4.13 5.48,5.3 2.96,0.49 2.98,4.52 6.3,4.3 2.91,0.36 5.45,1.15 5.84,4.45 2.05,2.11 3.92,4.26 3.09,7.41 0.18,3.68 0.12,7.33 -1.44,10.75 0.39,3.68 1.37,7.94 3.28,10.78 2.25,-3.46 0.17,-3.87 -1.74,-6.03 2.19,-1.76 4.86,-0.22 7.3,0.16 0.82,3.15 -2.16,5.6 -3.48,8.19 -3.3,2.21 1.65,4.09 2.73,6.3 3.11,3.34 4.35,7.94 7.53,11.26 0.78,2.29 2.51,7.47 4.63,3.09 2.54,-0.24 3.88,3.44 5.28,5.41 -0.02,2.26 1.93,7.04 3.59,6.44 2.88,-0.8 6.04,0.65 8.28,2.59 2.56,3.3 4.58,6.98 4.56,11.27 1.37,2.73 4.55,0.44 5.81,-1.14 3.74,0.45 7.26,-1.25 9.22,-4.47 -1.01,-2.36 -0.57,-4.83 -0.32,-7.17 -0.04,-2.18 4.33,-3.19 2.25,-6.51 -0.98,-6.33 -0.19,-12.96 -1.87,-19.25 -2.46,-6.93 -7.54,-12.74 -10.4,-19.56 -1.51,-2.41 -4.24,-3.92 -4.62,-7.04 -0.94,-2.28 -2.67,-4.95 -0.07,-6.71 -0.39,-3.56 -4.86,-5.42 -6.84,-8.41 -5.38,-5.57 -8.29,-12.94 -12.35,-19.44 -2.15,-5.53 -4.29,-11.07 -5.91,-16.78 -3.43,0.07 -7.3,-1.03 -10.46,-0.35l-0.34,0.37 -0.26,0.29z m52.91,109.22c-1.9,4.58 0.72,0.38 0.66,-1.91 -0.22,0.64 -0.44,1.27 -0.66,1.91z m-4.69,9.91c2.56,-1.97 3.68,-6.84 1.04,-1.68 -0.35,0.56 -0.69,1.12 -1.04,1.68z m-2.25,2.22c1.46,-1.22 2.04,-2.07 0.18,-0.18l-0.18,0.18z m-5.72,4.16c-5.23,3.69 4.03,-2.14 0.33,-0.19l-0.33,0.19z m-10.72,3.22c-3.41,3.16 5.71,-0.32 4.1,-0.81 -1.8,-0.56 -2.56,-0.71 -4.1,0.81z m-4.59,3.16c0.08,0.16 0.4,-0.3 0,0z","name":"Florida"},"nh":{"path":"m862.56,94c-1.4,-0.41 -3.87,-0.72 -3.05,3 0.22,3.63 -0.73,7.84 2.23,10.59 0.33,2.78 0.08,5.36 -2.17,7.29 -0.19,2.83 -5.98,2.58 -3.35,5.32 1.16,7.35 -0.56,15.03 -0.62,22.51 1.2,1.95 0.98,4.39 0.76,6.75 -1.07,3.79 4.84,-0.05 6.89,0.06 3.93,-1.29 8.46,-1.74 12.04,-3.54 0.77,-3.1 4.37,-2.75 5.94,-4.96 2.59,-3.52 -3.01,-2.73 -2,-6.59 -3.83,0.01 -4.27,-2.46 -4.66,-5.62 -3.84,-11.98 -7.32,-24.45 -11.49,-36.1 -0.18,0.43 -0.35,0.85 -0.53,1.28z","name":"New Hampshire"},"mi":{"path":"M697.86,177.24L694.63,168.99L692.36,159.94L689.94,156.71L687.35,154.93L685.74,156.06L681.86,157.84L679.92,162.85L677.17,166.57L676.04,167.21L674.58,166.57C674.58,166.57 671.99,165.11 672.16,164.47C672.32,163.82 672.64,159.45 672.64,159.45L676.04,158.16L676.84,154.77L677.49,152.18L679.92,150.56L679.59,140.54L677.98,138.28L676.68,137.47L675.87,135.37L676.68,134.56L678.3,134.88L678.46,133.27L676.04,131L674.74,128.42L672.16,128.42L667.63,126.96L662.13,123.57L659.38,123.57L658.74,124.21L657.77,123.73L654.7,121.46L651.79,123.24L648.88,125.51L649.2,129.06L650.17,129.39L652.27,129.87L652.76,130.68L650.17,131.49L647.58,131.81L646.13,133.59L645.81,135.69L646.13,137.31L646.45,142.8L642.9,144.9L642.25,144.74L642.25,140.54L643.54,138.12L644.19,135.69L643.38,134.88L641.44,135.69L640.47,139.89L637.72,141.02L635.94,142.96L635.78,143.93L636.43,144.74L635.78,147.33L633.52,147.81L633.52,148.95L634.33,151.37L633.2,157.51L631.58,161.56L632.23,166.24L632.71,167.38L631.9,169.8L631.58,170.61L631.26,173.36L634.81,179.34L637.72,185.8L639.18,190.65L638.37,195.34L637.4,201.32L634.97,206.5L634.65,209.25L631.39,212.33L635.8,212.17L657.22,209.91L664.5,208.92L664.59,210.58L671.45,209.37L681.74,207.87L685.6,207.41L685.74,206.82L685.9,205.37L688,201.65L690,199.91L689.78,194.86L691.37,193.26L692.46,192.92L692.69,189.36L694.22,186.33L695.27,186.94L695.44,187.58L696.24,187.74L698.18,186.77L697.86,177.24z M581.62,82.06L583.45,80L585.62,79.2L590.99,75.31L593.28,74.74L593.74,75.2L588.59,80.34L585.28,82.29L583.22,83.2L581.62,82.06z M667.79,114.19L668.44,116.69L671.67,116.85L672.97,115.64C672.97,115.64 672.89,114.19 672.56,114.03C672.24,113.86 670.95,112.17 670.95,112.17L668.76,112.41L667.15,112.57L666.82,113.7L667.79,114.19z M567.49,111.21L568.21,110.63L570.96,109.82L574.51,107.56L574.51,106.59L575.16,105.94L581.14,104.97L583.57,103.03L587.93,100.93L588.09,99.64L590.03,96.73L591.81,95.92L593.1,94.14L595.37,91.88L599.73,89.46L604.42,88.97L605.55,90.1L605.23,91.07L601.51,92.04L600.06,95.11L597.79,95.92L597.31,98.35L594.88,101.58L594.56,104.17L595.37,104.65L596.34,103.52L599.89,100.61L601.19,101.9L603.45,101.9L606.68,102.87L608.14,104L609.59,107.08L612.34,109.82L616.22,109.66L617.68,108.69L619.29,109.99L620.91,110.47L622.2,109.66L623.33,109.66L624.95,108.69L628.99,105.14L632.39,104L639.02,103.68L643.54,101.74L646.13,100.45L647.58,100.61L647.58,106.27L648.07,106.59L650.98,107.4L652.92,106.91L659.06,105.3L660.19,104.17L661.65,104.65L661.65,111.6L664.88,114.67L666.17,115.32L667.47,116.29L666.17,116.61L665.37,116.29L661.65,115.81L659.55,116.45L657.28,116.29L654.05,117.75L652.27,117.75L646.45,116.45L641.28,116.61L639.34,119.2L632.39,119.85L629.96,120.66L628.83,123.73L627.54,124.86L627.05,124.7L625.6,123.08L621.07,125.51L620.42,125.51L619.29,123.89L618.48,124.05L616.54,128.42L615.57,132.46L612.39,139.46L611.22,138.42L609.85,137.39L607.9,127.1L604.36,125.73L602.31,123.45L590.19,120.7L587.33,119.67L579.1,117.5L571.21,116.36L567.49,111.21z","name":"Michigan"},"vt":{"path":"m833.16,106.59c0.19,6 4.65,11.21 3.72,17.28 -2.48,4.23 4.52,7.29 2.22,11.58 0.9,1.59 4.66,1.96 4.06,5.25 1.08,4.21 2.86,8.34 1.84,12.76 3.35,-0.51 7.06,-1.17 10.13,-1.97 -0.21,-2.13 1.51,-5.75 -0.53,-7.81 0.2,-7.64 1.01,-15.26 1.13,-22.91 -3.25,-2.41 0.32,-3.79 2.12,-5.18 1.96,-2.28 3.9,-5.07 2.6,-8.1 -2.62,-1.63 -1.02,-5.94 -2.39,-7.22 -8.3,2.1 -16.59,4.21 -24.89,6.31z","name":"Vermont"},"me":{"path":"m889.88,40.22c-2.16,1.31 -3.69,2.74 -4.84,4.69 -2.29,0.6 -4.99,-1.37 -4.88,-3.94 -2.97,-0.82 -3.33,3.68 -4.37,5.71 -1.09,4.29 -3.27,8.39 -3.97,12.69 -0.06,3.04 1,6.63 -1.35,9.09 0.08,2.92 -0.75,6.18 2,8.16 -1.37,5.7 -6.23,10.36 -5.41,16.56 -4.27,-2.21 -1.74,2.47 -1.09,4.73 3.51,11.08 7.19,22.16 10.25,33.35 0.21,3.01 5.81,1.35 4.53,5.7 2.9,2 2.06,-3.92 2.66,-5.87 -1.01,-3.29 2.7,-4.63 0.66,-7.62 0.94,-1.05 2.92,-5.9 4.61,-3.46 2.03,1.03 5.28,-1.89 6.74,-3.19 -0.98,-4.02 4.21,-1.75 4.73,-5.32 -1.11,-2.61 0.74,-5.45 -0.57,-7.44 -2.42,-1.59 3.53,-4.63 3.31,-0.78 2.27,0.48 2.15,2.8 3.66,3.93 1.94,-2.82 -2.15,-3.81 0.35,-6.03 2.43,-0.81 3.1,-3.96 6,-3.31 -0.17,1.46 1.03,3.34 2.26,1.38 2.94,-2.9 5.24,-7.08 9.37,-8.34 1.17,-2.61 3.34,-5.74 0.71,-8.24 -0.55,-1.64 -3.68,-4.84 -4.15,-2.58 -0.75,2.6 -4.66,-0.65 -4.92,-2.22 0.1,-2.8 0.29,-7.17 -3.8,-5.81 -3.96,1.36 -3.64,-3.04 -4.69,-5.61C905.22,58.3 902.75,50.15 900.28,42c-2.86,-1.25 -5.71,-2.92 -8.81,-3.38 -0.53,0.53 -1.06,1.06 -1.59,1.59z m20.47,61c-2.81,1.7 1.87,5.16 1.13,1.22 1.48,-0.9 0.13,-2.4 -1.13,-1.22z m-7.81,7.81c3.16,6.67 2.63,-3.59 0,0z","name":"Maine"},"ri":{"path":"m871,164.28c1.15,4.66 2.29,9.31 3.44,13.97 2.56,-0.49 4.66,-2.29 5.84,-4.56 4.17,0.76 4,-2.64 1.51,-4.97 -1.79,-1.94 -3.16,-5.31 -5.74,-5.92 -1.68,0.49 -3.37,0.99 -5.05,1.48z","name":"Rhode Island"},"ny":{"path":"m825.56,108.66c-2.7,1.12 -5.45,1.68 -8.33,1.43 -5.07,0.72 -10.17,2.73 -12.92,7.31 -2.84,3.43 -4.89,7.49 -7.18,11.2 -1.65,2.36 -5.82,3.73 -5.55,6.84 -0.17,3.56 5.77,0.73 4.43,4.38 -2.69,2.3 0.8,4.23 0.56,6.59 0.5,3.47 -4.26,1.99 -5.36,4 -1.62,2.71 -3.35,6.62 -7.22,6.05 -3.04,-0.43 -5.35,2.05 -7.98,2.63 -2.5,-0.75 -4.7,-2.05 -7.59,-1.31 -5.31,0.21 -10.62,1.98 -15.23,4.53 -0.29,1.77 0.61,6.25 3.17,6.14 1.55,2.48 2.09,4.96 -0.63,6.72 -1.51,1.76 -1.8,4.25 -4.16,5.3 -1.93,1.14 -2.68,3.51 -4.8,4.54 0.33,3.07 -0.22,7.29 4.08,5.12 22.14,-4.26 44.26,-8.68 66.23,-13.74 0.98,3.85 5.67,1.32 6.44,4 0.64,2.93 1.36,7.4 5.33,6.88 3.14,1.9 6.9,3.68 10.69,4.22 2.71,0.47 7.18,1.43 6.44,5.06 -0.33,1.97 -1.62,7.56 1.97,5.93 5.3,-1.65 10.96,-2.84 15.06,-6.85 3.23,-2.49 6.76,-4.64 9.35,-7.86 -2.99,-2.44 -4.65,0.46 -6.81,2.42 -2.91,1.56 -6.01,3.51 -9.16,4.32 -2.6,-0.63 -4.83,-0.86 -6.18,2.07 -1.03,2.04 -4.86,2.98 -3.98,-0.15 4.26,-1.87 -2.17,-3.97 -0.33,-6.21 1.19,-3.13 0.56,-6.87 0.42,-10.21 -1.43,-7.38 -3.69,-14.76 -2.54,-22.36 -0.08,-4.46 1.55,-8.97 -0.51,-13.21 -1.22,-2.56 -0.47,-6.83 -4.05,-7.34 -2.99,-0.66 0.75,-4.31 -1.57,-6.2 -1.7,-2.43 -3.17,-4.91 -1.54,-7.81 0.38,-5.77 -3.83,-10.57 -3.55,-16.35 -2.32,0.65 -4.65,1.29 -6.97,1.94z","name":"New York"},"pa":{"path":"m798.88,181.63c-17.5,3.38 -34.87,7.42 -52.47,10.28 -0.61,-2 0.48,-8.42 -2.41,-4.31 -2.18,2.73 -5.48,3.74 -8.09,5.97 1.52,9.75 2.63,19.57 5.44,29.05 1.14,6.09 2.27,12.17 3.41,18.26 8.85,-1.42 17.79,-2.25 26.51,-4.41 16.39,-3.45 33.03,-6.46 49.33,-9.87 2.48,-3.07 8.03,-1.69 8.97,-6.19 0.64,-2.36 4.86,-3.99 4.33,-5.9 -2.3,-1.89 -5.94,-2.77 -6.39,-6.13 -3.14,1.09 -4.42,-3.94 -3.12,-5.32 3.86,-1.1 -0.49,-3.68 0.55,-5.96 2.52,-1.88 1.12,-5.15 2.81,-7.07 3.87,-2.7 -2.98,-1.1 -3.72,-3.99 -1.35,-2.18 -0.28,-7.24 -4.16,-5.92 -2.34,-1.13 -3.87,-3.75 -7.09,-1.7 -4.64,1.07 -9.28,2.15 -13.92,3.22z","name":"Pennsylvania"},"nj":{"path":"m827.84,191.34c1.03,2.99 -1.82,4.8 -2.06,7.47 2.86,1.63 0.49,4.87 -0.92,5.73 -0.41,3.86 4.01,1.68 4.16,5.14 1.37,2.19 4.72,3.02 6.26,4.94 -0.15,2.61 -3.85,3.5 -4.69,6.06 -0.26,3.07 -4.09,3.19 -4.18,5.96 -0.99,2.38 -0.74,5.09 1.7,6.47 2.85,2.76 6.86,3.99 10.73,4.38 0.48,1.55 -1.84,7.18 1.1,3.59 1.5,-2.42 0.59,-5.95 3.11,-8.01 2.5,-4.08 5.03,-8.84 4.88,-13.61 -1.35,-4.07 0.8,-9.01 -1.81,-12.82 -1.1,1.32 -6.17,1.23 -4.13,-0.8 2.39,-1.39 3.37,-3.62 2.39,-6.31 0.21,-2.31 1.58,-5.42 -1.69,-6.19 -4.35,-1.15 -8.82,-2.13 -12.88,-4.26 -0.66,0.75 -1.31,1.5 -1.97,2.25z","name":"New Jersey"},"de":{"path":"m824.88,225.34c-3.72,0.25 -3.47,3.52 -1.91,6.13 3.35,6.89 3.86,14.58 6.03,21.81 3.45,0.11 6.81,-0.49 10.16,-1.25 -1.2,-2.17 -0.68,-6.38 -3.32,-6.38 -2.9,-1.2 -4.17,-3.69 -4.9,-6.58 -0.91,-3.11 -3.62,-4.96 -5.48,-7.35 -1.85,-1.82 0.94,-5.5 -0.26,-6.47l-0.33,0.09z","name":"Delaware"},"md":{"path":"m813.59,229.19c-17.31,3.18 -34.53,6.83 -51.78,10.28 0.74,3.02 1.31,6.08 1.78,9.16 2.14,-1.9 3.29,-5.35 6.59,-5.34 2.14,-1.85 2.67,-5.25 5.77,-3.55 3.46,0.18 5.43,-5.35 9.01,-3.85 2.63,1.63 5.66,2.79 7.34,5.59 4.19,0.11 3.68,3.73 5.74,4.96 2.73,1.11 5.02,1.18 6.38,-0.53 4.29,1.38 2.24,3.74 1.44,6.9 0.09,2.97 -3.7,4.92 -1.66,7.97 3.1,1.31 6.4,1.2 9.63,1.4 2.17,1.58 6.83,1.03 3.79,-2.1 0.41,-2.74 -3.08,-3.35 -3.32,-6.04 -1.7,-2.67 -1.42,-5.47 -0.36,-8.32 1.68,-2.42 -2.83,-3.82 -0.4,-5.41 1.25,-1.53 0.43,-4.16 2.98,-4.7 1.62,-3.02 5.1,-1.45 2.35,1.02 -2.54,2.98 -0.81,4.5 0.57,6.3 1.41,3.55 -0.68,5.07 -1.53,7.31 -0.22,-0.81 3.62,-1.01 3.22,1.79 -3.15,1.64 -1.45,6.12 1.09,7.31 2.98,0.99 5.58,-1.8 6.98,2.14 1.5,3.75 4.92,0.81 7.41,-0.02 2.74,-1.21 3.47,-4.93 2.78,-7.7 -1.13,-1.58 -4.82,0.92 -7.13,0.4 -3.86,1.26 -4.9,-1.25 -5.28,-4.64 -1.68,-5.97 -2.14,-12.33 -5.16,-17.9 -0.04,-4.32 -2.71,-4.2 -6.07,-2.91 -0.73,0.16 -1.45,0.31 -2.18,0.47z m10.94,32.59c1.32,0.99 0.59,4.97 2.06,4.63 -0.48,-1.31 -0.36,-4.99 -2.06,-4.63z","name":"Maryland"},"va":{"path":"m792.88,242.88c-0.16,1.46 0.24,5.89 -2.4,4.29 -2.58,-0.67 -6.42,-3.2 -8.23,-2.73 0.7,3.72 -1.46,6.77 -2.99,9.94 -3.05,1.14 -2.29,5.83 -5.84,5.58 -1.62,1.74 -1.47,5.31 -2.45,7.73 -3.09,1.14 -5.37,-0.48 -7.28,-1.75 0.11,6.5 -3.72,11.95 -5.91,17.84 -1.69,1.73 1.19,3.8 -0.74,5.77 -1.35,3.56 -3.79,2.72 -6.19,4.19 -2.72,1.1 -4.9,0.5 -5.4,4.61 -2.07,1.14 -4.83,2.63 -6.91,0.47 -2.38,1.51 -5.02,3.21 -7.81,1.6 -2.69,-0.01 -3.9,-6.55 -6.07,-2.94 -3.27,4.09 -7.89,7.48 -10.21,12.09 0.43,3.25 -4.46,3.32 -6.42,5.15 -4.27,1.95 3.62,-0.11 5.16,-0.07 5.56,-0.79 11.14,-1.37 16.76,-1.36 1.95,-2.65 4.98,-1.81 7.77,-1.65 7.86,-0.32 15.65,-2.12 23.48,-2.99 12.85,-1.4 25.44,-4.27 38.04,-7.05 11.65,-2.52 23.3,-5.03 34.96,-7.55 -1.64,-2.66 -2.75,-6.67 -6.42,-4.14 -1.99,2.03 -6.61,-1.82 -2.7,-2.48 2.65,-1.62 -1.75,-4.07 -1.8,-5.97 -2.73,-0.62 -2.88,-5.12 0.54,-3.6 -0.17,-1.37 -1.24,-3.62 -1.62,-5.68 1.47,-3.51 -0.84,-4.97 -3.72,-5.16 0.31,-3.42 -2.9,-2.93 -5.22,-3.97 -3.33,0.21 -7.06,-0.25 -9.91,-1.66 -1.22,-2.41 -0.91,-5.12 1.25,-6.88 1.39,-2.83 -0.28,-5.7 -3.3,-6.27 -2.65,-0.83 -6.97,-0.29 -5.73,-4.3 -0.83,-0.3 -2.05,-1.06 -2.69,-1.06z m39.16,21.59c0.44,4.71 -3.15,8.7 -2.62,13.48 -0.34,4.11 2.64,5.72 3.48,0.92 1.71,-3.04 -0.23,-6.47 0.8,-9.73 0.4,-2.53 3.66,-3.88 3.52,-6.73 -1.73,0.69 -3.46,1.38 -5.19,2.06z","name":"Virginia"},"wv":{"path":"m739.75,223.25c-1.6,2.23 1.3,5.02 0.25,7.75 -0.18,4.04 -0.63,8.11 -0.84,12.13 -1.94,3.58 -4.43,7.35 -8.16,9.13 -3.15,-1.33 -3.92,3.25 -5.76,4.98 -1.56,2.28 2.64,4.93 -0.3,6.69 -2.57,3.58 -2.6,-4.8 -4.46,-0.71 -1.32,2.59 0.02,6.02 -1.35,8.33 -1.82,1.54 -0.53,5.19 -4.16,4.81 -2.23,0.13 -1.45,6.19 1,6.81 2.24,1.47 2.49,4.74 5.5,5.92 1.92,1.96 2.28,5.18 5.39,6.05 1.64,2.19 3.07,4.96 6.25,4.88 2.63,0.5 4.77,-3.86 7.22,-1.35 1.49,0.81 3.93,-0.57 4.58,-1.83 0.43,-4.57 3.42,-2.71 6.03,-4.39 2.39,-0.94 4.82,-0.98 5.62,-4.44 -1.26,-2.59 0.3,-5 1.56,-7.64 2.23,-4.81 4.72,-9.61 4.67,-15.05 2.65,-2.31 3.72,3.56 7.05,1.41 1.64,-1.77 1.12,-5.67 2.6,-7.59 3.47,0.39 2.97,-3.96 5.76,-5.21 2.29,-3.11 3.52,-6.8 3.06,-10.7 1.06,-1.29 5.1,1.62 7.23,2.15 3.3,3.35 4.34,-1.98 2.85,-4.05 -2,-2.28 -5.12,-3.7 -7.62,-4.75 -3.31,0.98 -5.44,5.47 -9.38,3.97 -1.86,-0.23 -2.38,3.98 -4.86,3.88 -2.89,0.71 -3.79,4.38 -6.03,6.22 -1.1,-0.06 -0.99,-4.82 -1.62,-6.64 -0.01,-3.93 -1.77,-5.3 -5.48,-3.82 -4.21,0.6 -8.41,1.23 -12.61,1.91 -1.17,-6.45 -2.29,-12.92 -3.44,-19.38l-0.35,0.35 -0.18,0.18z","name":"West Virginia"},"oh":{"path":"m729.5,197.78c-4.85,2.06 -7.38,6.9 -11.47,9.97 -4.08,0.86 -8.09,1.75 -11.72,3.88 -3.41,1.61 -4.39,-4.09 -7.67,-2.63 -3.13,1.35 -5.49,-1.1 -8.11,-2.41 -8.6,1.15 -17.15,2.64 -25.66,4.38 1.45,17.83 4.12,35.53 5.87,53.33 -0.69,3.82 4.06,2.26 6.23,1.48 2.74,0.41 4.83,2.16 5.48,4.94 1.26,2.48 5.82,-0.87 6.96,2.54 2.19,1.53 4.46,-2.33 7.03,-0.58 2.52,0.04 5.62,1.51 6.84,-1.56 1.49,-0.55 5.37,-3.85 5.41,-0.71 0.38,2.53 3.82,3.57 5.77,4.7 3.53,0.63 2.32,-3.91 4.21,-5.51 -0.11,-2.74 0.21,-5.73 1.39,-8.13 2.53,-2.81 3.8,4.53 4.98,0.39 -2.02,-2.27 -0.99,-5.41 0.93,-7.41 1.07,-4.06 4.05,-2.41 6.5,-4.39 2.93,-3.16 6.59,-6.57 5.97,-11.27 0.44,-4.71 1.18,-9.75 -0.53,-14.23 1.47,-2.48 2.58,-4.29 0.96,-7.33 -2.04,-7.53 -2.56,-15.37 -3.93,-23.04 -1.81,1.2 -3.63,2.4 -5.44,3.59z","name":"Ohio"},"in":{"path":"m658.66,210.31c-9.12,0.93 -18.35,1.98 -27.41,2.68 -2.6,0.39 -4.21,5.08 -6.89,2.98 -3.83,-2.84 -2.64,1.83 -2.41,4.45 1.1,14.81 2.73,29.61 3.44,44.42 -0.76,3.69 -1.39,7.89 1.36,10.91 0.1,2.99 1.4,6.28 -1.14,8.65 -1.83,2.73 -2.55,6.09 -5.02,8.42 0.09,2.08 -2.02,8.2 1.63,5.16 3.49,-0.6 7.25,-1.53 10.69,-1.34 2.36,4.08 2.67,-0.62 5.26,-1.29 2.03,-2.62 4.78,2.05 5.34,1.04 -1.26,-3.41 3.05,-3.77 5.1,-5.22 1.09,0.63 6.05,3.38 5.3,-0.64 -0.46,-2.47 2.02,-4.71 3.65,-6.34 3.11,-1.39 4.33,-3.9 4.16,-7.23 1.83,-1 4.93,-1.01 6.97,-2.47 4.23,-1.03 0.26,-3.48 1.22,-5.92 -0.83,-12.56 -2.8,-25.13 -4.08,-37.69 -0.85,-6.99 -1.44,-14.01 -2.14,-21.02 -1.68,0.16 -3.35,0.31 -5.03,0.47z","name":"Indiana"},"il":{"path":"m569.75,200.44c-0.29,2.58 4.2,1.83 3.73,5.07 2.07,2.09 5.71,4.21 4.38,7.77 -0.31,3.04 -2.61,5.44 -3.08,8.4 -2.38,2.71 -6.06,2.98 -9.31,3.94 -1.61,2.47 -1.05,4.91 1.28,6.47 0.63,3.25 -1.08,5.07 -2.74,7.38 1.41,3.63 -2.39,2.86 -3.56,5.02 1.08,3.12 -2.11,3.8 -2.53,6.64 0.19,3.95 1.33,8.21 3.28,11.58 3.68,3.96 7.38,7.9 12.21,10.47 -0.61,2.88 -0.64,6.7 3.43,5.71 2.05,0 6.18,0.38 6.26,2.68 -0.19,4.39 -3.6,8.24 -3.28,12.53 1.6,3.83 5.33,6.26 8.59,8.42 3.37,-0.29 5.36,1.27 5.9,4.6 1.01,2.64 3.84,4.73 1.73,7.67 0.55,1.74 2.58,7.7 4.31,4.05 1.21,-2.98 5.41,-4.78 8.07,-2.46 3.1,2.46 5.94,0.47 3.13,-2.8 -0.98,-3.39 2.61,-4.96 5.37,-5.33 1.01,-1.55 -1.6,-4.46 1.4,-5.97 1.8,-3.97 -0.56,-9.39 3.32,-12.49 1.43,-2.97 3.23,-5.97 4.4,-8.97 0.13,-3 -0.7,-5.7 -2.34,-8.16 -0.45,-4.59 1.31,-9.09 0.02,-13.65 -1.16,-15 -2.22,-30.05 -3.67,-45.01 -1.02,-3.1 -1.61,-6.46 -4.04,-8.77 -2.27,-1.83 -0.51,-5.93 -1.97,-7.32 -14.76,0.83 -29.52,1.67 -44.28,2.5z","name":"Illinois"},"ct":{"path":"m865.78,165.41c-6.91,1.54 -13.81,3.08 -20.72,4.63 2.17,6.2 2.74,12.83 2.44,19.34 -2.62,4.3 2.61,2.38 3.97,-0.21 2.09,-1.89 4.19,-3.71 5.99,-5.88 2.06,1.35 4.78,-1.86 7.44,-1.46 2.98,-0.68 5.69,-2.24 8.56,-3.26 -1.15,-4.67 -2.29,-9.33 -3.44,-14 -1.42,0.28 -2.83,0.56 -4.25,0.84z","name":"Connecticut"},"wi":{"path":"m559.53,104.97c-4.06,2.75 -8.71,4.92 -13.53,5.84 -2.88,-1.08 -5.54,-1.12 -5.57,2.68 -0.48,3.34 0.51,7.03 -0.47,10.17 -2.02,3.26 -6.91,4.03 -7.36,8.38 -2.63,2.78 2.21,3.06 2.23,5.53 1.79,2.9 -2.13,4.74 -1.33,7.65 0.29,2.93 -0.4,6.49 1.14,8.93 1.33,3.48 5.88,0.21 6.64,3.93 1.56,2.26 5.47,1.03 6.19,4.78 2.15,5.1 9.7,4.85 11.21,10.39 0.68,3.38 0.35,7.34 1.94,10.32 3.26,1.05 1.94,4.34 0.25,6.21 -0.79,3.96 2.53,8.34 6.75,8.25 2.28,1.6 4.86,1.65 7.83,1.19 13.03,-0.77 26.07,-1.53 39.1,-2.3 -0.02,-4.45 -1.98,-8.61 -1.86,-13.13 -1.7,-2.04 -0.86,-4.17 -0.04,-6.39 0.32,-2.84 3.07,-4.93 1.51,-7.87 -1.05,-2.94 -0.88,-6.21 1.73,-8.27 -0.2,-2.83 -0.5,-5.03 -0.16,-7.93 -1.14,-4.2 2.64,-7.5 3.69,-11.36 0.92,-1.13 3.15,-8.34 0.73,-4.93 -2.65,3.81 -4.99,8.01 -8.18,11.29 -0.86,2.06 -3.21,4.55 -5.21,4.5 -2.57,-1.26 0.28,-4.49 0.9,-6.41 0.47,-2.94 3.2,-4.25 4.09,-6.85 -3.31,-1.29 -2.77,-5.03 -3.54,-7.92 0.02,-3.09 -1.23,-5.08 -4.29,-5.57 -2.14,-3.67 -7.04,-2.78 -10.59,-4.12 -7.13,-1.87 -14.21,-4.39 -21.67,-4.99 -2.48,-0.54 -2.84,-5.51 -5.51,-4.73 -1.71,-1.54 -3.85,-0.7 -5.82,0.13 -2.8,-1.32 0.68,-4.59 1.5,-6.38 2.18,-1.34 -1.53,-2.14 -2.31,-1z","name":"Wisconsin"},"nc":{"path":"m830.06,295.97c-18.3,3.8 -36.53,8 -54.86,11.65 -12.74,1.51 -25.38,4.07 -38.18,4.94 -3.32,-0.82 -1.17,3.72 -2.5,5.53 -2.62,1.34 -3.49,4.59 -5.03,6.38 -3.24,-1.36 -5.07,1.46 -6.34,3.97 -1.09,-0.57 -2.96,0.03 -3.41,-1.41 -2.02,1.96 -4.37,3.73 -4.31,6.81 -3.66,1.1 -6.31,3.82 -9.28,5.96 -2.64,0.94 -5.76,2.16 -7.4,4.35 0.73,4.06 -2.98,3.3 -5.1,5.29 -1.98,4.69 2.74,2.66 5.58,2.5 6.41,-1.19 13.32,-0.49 19.18,-3.73 5.04,-1.9 9.41,-5.9 15.06,-5.67 6.5,-0.64 13.15,-0.6 19.62,-0.69 2.99,0.53 3.36,4.79 5.58,5.01 5.37,-0.81 10.87,-1.67 16.25,-1.79 5.38,1.36 9.61,5.45 14.52,7.93 3.59,2.64 6.93,5.66 10.43,8.44 3.15,-0.86 6.32,-1.58 9.59,-1.72 1.06,-4.55 2.04,-9.29 5.39,-12.78 4.2,-4.27 9.23,-8.29 15.33,-9.29 2.91,1.95 3.69,-2.9 5.27,-4.53 2.72,-5 -2.44,3.91 -2.46,-1.22 -3.87,0.7 -5.43,-0.26 -3.29,-4 2.77,-4.25 -2.73,-2.51 -2.12,-6.02 -1.42,-3.76 2.84,2.19 5.06,0.81 2.81,0.12 5.1,-1.87 5.59,-4.6 0.45,-2.9 4.59,-2.7 3.28,-6.48 -4.02,-2.43 4.25,-0.66 0.4,-3.93 -3.52,-3.44 -5.24,-8.33 -7.23,-12.76 -1.54,0.35 -3.08,0.71 -4.63,1.06z m17.13,23.72c1.55,2.61 -4.64,4.26 -0.52,2.69 1.38,-1.92 0.21,-5.22 0.24,-7.62 -0.74,-2.05 0.37,4.57 0.28,4.94z","name":"North Carolina"},"dc":{"path":"m803.44,248.16c2.67,3.43 3.85,-1.02 0.55,-0.75l-0.29,0.4 -0.25,0.35z","name":"District of Columbia"},"ma":{"path":"m877.59,144.41c-1.04,3.1 -4.01,3.5 -6.79,4.13 -8.62,2.32 -17.17,4.6 -25.96,6.12 -0.11,4.77 -1.17,9.59 -0.03,14.31 10.66,-2.6 21.54,-4.29 32,-7.44 3.57,2.81 6.01,6.73 8.28,10.59 2.13,-0.78 0.01,-5.15 3.77,-5.38 2.93,-3.28 1.83,4.78 3.17,2.62 2.13,-3.09 6.1,-3.9 9.41,-5.21 -0.11,-3.41 -2.21,-8.55 -6.38,-7.53 1.64,-0.1 4.89,0.87 4.91,3.82 0.85,2.24 -2.55,3.71 -4.35,4.24 -3.37,0.51 -4.99,-1.76 -6.32,-4.47 -1.38,-2.05 -3.58,-6.56 -6.3,-3.6 -1.89,-1.72 -3.13,-4.04 -1.33,-6.3 2.3,-2.34 1.23,-6.2 -1.28,-7.16 -0.93,0.41 -1.86,0.82 -2.79,1.24z M902.25,172.69c-1.6,2.76 3.05,-2.44 0.08,-0.32l-0.08,0.32z m-11.28,1.28c1.59,0.78 6.09,-2.26 1.78,-2.03 -0.59,0.68 -1.19,1.35 -1.78,2.03z","name":"Massachusetts"},"tn":{"path":"m730.41,314.34c-8.87,-0.11 -17.76,1.5 -26.57,2.73c-10.24,2.86 -20.99,2.66 -31.48,4.02c-16.34,1.45 -32.65,3.29 -48.96,4.95c-4.57,-1.71 -0.43,5.74 -5.06,4.14c-6.97,0.06 -13.87,1.23 -20.84,0.71c-0.95,4.26 -1.37,9.04 -3.6,12.76c1.03276,2.6246 -1.94104,7.30425 -2.59092,9.90471c-2.52529,1.78965 -2.61104,1.92035 -0.46104,4.90035c3.07759,1.94598 -1.38459,5.12506 1.90081,3.86506c33.91,-3.26 65.53115,-6.30012 99.44115,-9.56012c-0.23,-2.54 0.72,-5.31 3.53,-5.69c3.11,-0.4 0.99,-5.41 4.88,-5.81c2.77,-2.02 6.49,-2.19 8.62,-5.18c1.76,-2.26 6.31,-1.64 5.78,-5.38c1.19,-1.77 3.1,-3.84 5.03,-4.85c1.04,-0.39 0.28,1.78 1.72,1.19c2.38,0.56 2.2,-4.36 5.22,-3.86c3.3,1.27 2.68,-2.92 4.96,-4.18c2.05,-0.94 3.81,-6.68 0.92,-6.59c-0.81,0.64 -1.63,1.27 -2.44,1.91l0,0.02z","name":"Tennessee"},"ar":{"path":"m509.47,335.31c1.73,4.9 1.5,10.02 1.53,15.12c2.15,12.21 1.13,24.64 1.47,36.97c0.02,3.71 0.04,7.42 0.06,11.13c2.06,3.2 5.05,-1.45 7.69,1.47c1.53,1.76 -0.88,7.54 2.97,6.49c17.61,-0.36 35.23,-0.72 52.84,-1.08c1.97,-2.6 0.41,-5.9 -1.28,-8.22c3.3,-1.61 -1.59,-3.96 0.84,-6.53c0.75,-2.77 0.62,-6.34 3.78,-7.69c-1.88,-3.07 2.08,-5.24 3.19,-7.88c3.77,-0.38 1.58,-3.3 2.64,-5.42c1.12,-2.67 2.56,-5.28 4.85,-6.58c1.2,-4.12 0.21,-2.67 -1.53,-5.61c-2.76,-3.32 1.95,-3.50023 2.36,-6.84c0.17988,-0.90552 3.08012,-6.46012 1.22,-6.75c-2.65,0.85 -5.34,-0.18 -8.02,-0.33c-0.09,-3.38 4.4,-3.88 4.22,-7.3c0.58,-3.87 -3.58,-3.68 -6.34,-3.26c-24.17,0.77 -48.34,1.54 -72.5,2.31l0.01,0z","name":"Arkansas"},"mo":{"path":"m490.44,245.63c-2.39,-0.46 -0.19,4.05 0.07,5.6 2.45,3.32 4.51,7.86 8.55,9.22 2.81,-0.24 3.61,2.67 2.79,4.84 -3.22,1.64 -1.72,5.03 0.19,7.07 0.9,2.55 4.61,3.05 4.89,5.61 2.1,12.97 1.12,26.14 1.51,39.22 0,5.72 0.08,11.44 0.72,17.13 24.99,-0.94 49.98,-1.8 74.97,-2.51 3.02,-1.12 4.35,1.72 5.31,3.98 0.52,3.48 -2.86,4.46 -4.14,6.86 2.37,0.64 5.57,0.65 8.21,-0.08 1.46,-3.59 1.87,-7.45 2.38,-11.22 0.84,-2.83 5.27,-2.89 4.61,-6.03 1.37,-2.94 0.14,-4.6 -2.22,-4.28 -2.15,-1.81 -2.84,-5.03 -2.86,-7.6 1.45,-2.84 -2.08,-5.07 -2.44,-7.89 -0.66,-3.24 -5.34,-0.87 -6.89,-3.66 -2.64,-2.34 -6.24,-3.94 -6.91,-7.76 -0.94,-3.21 1.52,-6.47 2.17,-9.64 2.2,-3.53 -1.34,-4.7 -4.33,-4.5 -2.66,0.39 -5.34,-1.15 -4.81,-4.1 0.86,-4.07 -4.71,-4.05 -6.43,-6.93 -2.7,-3.4 -6.72,-6.05 -7.25,-10.67 -1.1,-3.16 -2.12,-6.86 -0.62,-10.06 -2.3,-1.34 -2.28,-5.77 -5.37,-4.89 -20.69,0.77 -41.38,1.53 -62.06,2.3z","name":"Missouri"},"ga":{"path":"m672.78,356c-0.74,7.06 4.28,12.69 5.29,19.4 1.36,6.57 3.44,12.96 5.03,19.44 0.94,4.88 2.17,9.95 5.53,13.75 -0.85,3.5 3.37,3.17 2.59,6.44 -1.89,4.45 -3.57,9.65 -0.84,14.13 0.05,2.63 0.94,5.4 -0.38,7.88 2.95,0.94 1.45,4.01 3.07,6.01 1.35,2.67 3.68,4.75 6.83,4 12.35,-0.01 24.69,-1.31 37.03,-1.92 3.32,-0.58 6.67,-0.74 10.04,-0.59 -0.78,4.24 3.04,4.15 2.09,-0.09 -0.9,-2.14 -2.94,-6.23 0.59,-6.62 3.2,0.5 6.42,0.91 9.66,1.02 -0.84,-3.8 -0.8,-7.57 0.5,-11.27 0.2,-3.54 2.62,-6.73 2.21,-10.21 -0.72,-2.93 3.26,-5.26 2.85,-8.05 -2.19,1.37 -5.29,-0.71 -5.34,-3.19 -0.56,-3.12 -2.71,-5.83 -6.03,-6.06 -1.33,-3.9 -2.62,-8.17 -4.99,-11.43 -3.12,-1.07 -6.13,-2.99 -7.17,-6.29 -2.06,-2.33 -5.23,-3.21 -6.66,-6.16 -2.08,-2.2 -5.24,-2.83 -7.66,-4.19 -0.76,-2.53 -3.21,-4.09 -3.94,-6.67 -1.36,-2.63 -2.97,-4.65 -6.15,-3.77 -2.33,-1.57 -7.15,-3.38 -5.31,-6.97 2.02,-2.01 3.76,-4.11 -0.8,-3.11 -12.68,1.51 -25.37,3.01 -38.05,4.52z","name":"Georgia"},"sc":{"path":"m737.03,343.19c-4.26,0.4 -8.64,0.43 -12.24,3.07 -3.2,1.75 -6.48,3.19 -9.88,4.49 2.21,3.31 -4.28,2.74 -2.34,6.44 2.27,2.24 5.2,4.13 8.5,3.28 2.53,3.15 3.83,6.94 6.53,9.88 0.91,2.76 5.13,2.06 6.85,4.46 2.18,1.38 2.96,4.25 5.62,5.01 2.99,1.95 3.36,6.38 7.26,7.24 3.61,0.62 3.77,4.77 5.34,7.38 0.38,3.35 2.02,4.84 4.79,5.96 3.36,1.79 1.76,7.23 5.67,8.16 3.63,-1.38 5.8,-4.63 8.38,-7.34 -2.35,-3.93 0.29,-3.32 3.01,-4.44 1.95,-2.4 5.02,-3.3 6.25,-6.28 2.17,-2 3.86,-4.52 5.4,-6.9 2.81,-0.17 3.42,-3.58 4.92,-5.03 -0.28,-4.13 1.3,-7.89 3.12,-11.47 1.03,-2.11 7.03,-4.5 3.47,-6.34 -5.97,-5.35 -12.78,-9.5 -19.71,-13.47 -4.45,-2.68 -9.74,-0.07 -14.57,-0.06 -2.57,-0.23 -6.63,2.48 -7.32,-1.28 -1.66,-4.5 -6.93,-2.82 -10.63,-2.96 -2.8,0.07 -5.61,0.14 -8.41,0.21z","name":"South Carolina"},"ky":{"path":"m675,267.5c-2.76,-0.77 -6,1.11 -3.38,3.78 1.52,3.15 -3.12,4.12 -5.19,5.27 -2.94,0.53 -4.71,1.29 -4.3,4.82 -1.15,2.66 -5.3,3.24 -6.32,6.32 -2.16,1.4 0.74,6.22 -2.84,5.92 -3.06,0.61 -4.36,-2.79 -7.09,0.11 -2.26,0.51 -1.1,6.98 -3.85,3.1 -2.27,-2.54 -5.57,0.14 -6.16,2.81 -1.91,1.07 -3.4,-3.73 -6.02,-1.91 -3.32,0.61 -7.48,0.47 -9.92,2.91 0.08,2.65 -3.39,3.78 -1.7,6.05 2.34,2.66 -2.23,2.68 -3.86,3.3 -3.57,1.35 -0.68,4.35 -0.76,6.72 0.33,3.45 -3.76,1.44 -5.49,0.72 -2.5,-2.29 -6.26,-0.38 -7.13,2.53 2.86,2.28 -0.04,4.76 0.41,7.66 -3.47,2.04 -3.19,2.73 0.94,2.35 5.84,0.01 11.64,-0.95 17.5,-0.76 -0.7,-3.74 0.98,-4.99 4.56,-4.19 24.33,-3.01 48.82,-4.7 73.16,-7.43 4.3,-0.7 8.2,-2.38 11.75,-4.88 3.3,-0.8 4.04,-2.71 5.12,-5.35 3.46,-4.09 7.13,-8.06 10.79,-12 -3.27,-1.24 -3.03,-5.51 -6.21,-6.95 -2.6,-1.25 -2.07,-4.66 -5.16,-5.36 -2.38,-2.64 0.8,-7.28 -3.02,-8.87 -3.02,-0.01 -2.37,-4.65 -4.57,-3.51 -2.95,0.61 -3.67,4.78 -7.02,3.29 -2.69,-0.23 -5.51,-1.19 -7.82,0.71 -3,0.83 -3.99,-3.61 -7.44,-2.06 -3.51,0.82 -2.17,-5.19 -5.65,-5.26C677.17,266.43 676.21,267.17 675,267.5z","name":"Kentucky"},"al":{"path":"m628.53,359.63c-0.2,14.37 0.12,28.75 -0.54,43.12 -0.04,9.01 -0.88,18.1 -0.07,27.07 1.55,10 2.94,20.01 3.85,30.09 3.07,1.09 3.69,-1.92 4.4,-4.18 -0.3,-3.89 4.27,-3.02 4.89,-0.04 0.72,2.06 4.08,5.27 0.77,6.65 -0.15,0.92 6.17,-0.9 5.88,-2.89 -0.44,-3.01 0.64,-6.86 -2.87,-8.19 -2.29,-0.88 -3.03,-5.59 -0.32,-5.67 14.08,-1.86 28.21,-3.59 42.35,-4.8 2.7,1.07 6.76,-0.25 2.97,-2.5 -1.8,-2 0.95,-5.03 -0.27,-7.65 -0.31,-3.1 -2.63,-5.9 -1.31,-9.15 0.01,-2.92 2.49,-5.36 1.93,-8.3 -3.52,-0.45 -1.34,-5.11 -4.26,-6.7 -3.48,-5.82 -3.36,-13.04 -5.96,-19.21 -2.02,-8.09 -3.34,-16.41 -7.25,-23.88 -0.51,-2.39 -1.08,-4.85 -0.72,-7.31 -14.49,1.18 -28.98,2.35 -43.47,3.53z","name":"Alabama"},"la":{"path":"m521.09,407.28c0.1,7.53 -0.24,15.32 1.67,22.61 2.08,2.49 2.82,5.51 3.15,8.67 1.87,2.78 5.27,4.95 4.59,8.72 1.61,2.18 -0.21,5.69 0.08,8.38 0.42,2.64 -4.36,4.89 -2.01,7.12 1.07,2.26 -0.92,5.31 -0.53,7.95 0.38,3.22 -2.37,5.7 -1.55,8.93 5.18,-2.4 10.98,-0.86 16.47,-1.09 5.72,1.7 11.56,4.87 17.56,4.26 2.93,-2.25 5.94,0.36 8.98,0.93 1.08,-3.4 -4.22,-0.81 -5.8,-2.2 -1.91,-0.36 -2.89,-2.3 -1.17,-3.4 2.08,-1.1 4.08,-1.09 5.66,0.04 2.15,-1.39 5.6,-0.24 6.26,2.38 -0.33,3.62 3.42,1.7 5.28,3.15 3.83,1.5 -1.41,4.07 0.83,5.37 2.88,0.97 5.73,2.94 8.62,3.29 3.51,-0.05 2.81,-4.53 6.47,-4.17 1.83,-2.9 4.44,-0.25 4.39,2.31 1.53,1.64 4,-3.68 1.98,-3.66 0.22,-3.37 2.17,-3.21 4.31,-5.41 1.59,0.95 0.91,2.82 1.41,4.16 3.33,0.39 7.44,1.09 9.34,4.06 2.79,0.08 5.17,1.1 5.56,-2.56 -2.68,-0.27 -4.15,-3.88 -7.35,-3.19 -2.31,0.06 -6.3,-1.62 -6.15,-3.77 1.62,-3.62 2.23,-1.74 2.03,-4.38 2.88,1.09 5.69,-2.27 3.22,-4.47 0.46,-4.62 -3.73,-0.15 -3.34,2.19 -1.36,1.21 -6.35,-0.96 -4.6,-3.27 1.71,-1.84 4.2,-4.5 2.19,-6.95 -0.13,-3.26 -2.69,-5.21 -4.47,-7.38 0.52,-2.7 2.26,-7.35 -2.36,-5.46 -10.43,1.28 -20.97,0.69 -31.45,1.12 -1.61,-3.72 -0.02,-7.76 0.16,-11.59 2.66,-4.86 5.46,-9.65 8.25,-14.44 -2.04,-2.82 3.52,-4.45 -0.74,-6.48 -0.53,-2.15 -1.29,-4.65 -2.32,-6.83 -0.08,-3.1 0.9,-7.3 -3.62,-5.79 -17,0.28 -34,0.57 -51,0.85z","name":"Louisiana"},"ms":{"path":"m591.03,363.5c-1.45,1.74 -4.03,3.15 -4.63,6.03 -1.4,2.22 1.43,5.74 -2.69,6.07 -1.48,1.97 -4.77,4.42 -3.4,7.17 -1.36,1.83 -3.59,3.95 -3.48,7.01 -2.16,2.66 1.55,5.28 -0.27,7.12 -0.45,1.84 2.25,4.42 1.35,7.03 -1.92,2.71 -1.63,6.55 -0.61,9.53 1.6,2.4 0.78,5.54 3.73,6.94 -0.95,2.53 -1.41,3.75 -1.87,6.31 -2.55,4.96 -6.07,9.62 -7.89,14.84 0.01,2.98 -1.44,6.14 -0.14,8.97 11.4,-0.36 22.87,0.25 34.19,-1.5 2.75,2.21 -2.19,6.39 1.33,8.15 2.82,1.62 2.28,5.18 3.89,7.63 2.07,-1.86 2.51,-6.19 5.82,-4.07 3.21,-0.67 6.85,-3.02 9.89,-0.64 3.62,0.73 6.01,-0.27 4.42,-4.26 -0.81,-10.1 -2.99,-20.07 -3.84,-30.15 0.14,-21.99 1.48,-43.98 0.64,-65.97 -12.15,1.26 -24.29,2.52 -36.44,3.78z","name":"Mississippi"},"ia":{"path":"m476.25,181.16c-3.42,-0.05 -2.16,5.68 0.72,6.29 0.54,2.07 -0.75,5.06 -1.41,7.35 -2.13,2.82 -0.93,5.45 1.04,7.92 1.22,4.34 2.24,8.85 4.05,13.06 0.6,3.22 1.29,6.38 3.41,9 0.02,3.49 1.27,6.69 2.3,9.91 -0.04,3.54 0.03,7.05 2.08,10.09 22.2,-1.02 44.44,-1.75 66.66,-2.63 0.77,1.43 3.25,7.11 4.37,4.25 -0.96,-2.5 1.19,-4.52 3.57,-4.72 -0.88,-2.62 1.19,-4.59 2.5,-6.28 1.27,-2.92 -1.39,-4.02 -2.41,-6.31 0.69,-2.9 1.79,-5.3 5.13,-5.46 2.88,-0.83 6.57,-1.81 6.65,-5.41 1.76,-3.04 3.73,-8.01 -0.26,-10.18 -2.74,-1.06 -1.75,-5.27 -5.21,-5.14 -0.64,-1.97 -0.85,-4.76 -4.19,-4.21 -2.75,-0.8 -4.55,-3.47 -5.37,-6 -1.36,-2.89 2.01,-4.72 1.65,-7.28 -3.82,-0.4 -1.19,-6.5 -5.03,-5.47 -26.75,0.41 -53.5,0.81 -80.25,1.22z","name":"Iowa"},"mn":{"path":"m497.03,53.84c-0.69,2.52 0.93,7.42 -1.31,8.34 -9.65,-0.01 -19.29,-0.02 -28.94,-0.03 1.16,2.87 2.18,5.76 0.97,8.81 0.05,5.74 -0.79,11.86 2.51,16.95 2.04,3.78 0.64,8.47 1.5,12.6 0.82,6.84 1.76,13.67 3.55,20.32 0.05,3.83 0.88,7.8 0.03,11.53 -1.57,1.74 -4.91,3.29 -2.22,5.78 1.89,1.83 5.05,2.94 4.58,6.1 0.28,11.9 0.25,23.83 0.42,35.75 26.72,-0.38 53.44,-0.75 80.16,-1.13 -0.15,-3.62 -0.46,-7.93 -4.36,-9.47 -3.02,-1.66 -6.24,-3.1 -7.63,-6.5 -0.72,-3.61 -5.32,-1.16 -6.05,-4.61 -1.56,-2.09 -5.29,-0.37 -6.57,-3.78 -1.66,-2.1 -0.52,-5.5 -1.1,-8.1 -1.34,-2.93 1.65,-4.99 1.47,-7.54 -0.2,-3.22 -5.36,-3.85 -2.24,-7.43 0.41,-4.47 5.39,-5.33 7.61,-8.59 0.24,-3.87 -0.73,-8.14 0.52,-11.77 1.76,-3.14 5.17,-5.1 8.28,-6.26 1.92,-2.08 3.66,-4.57 6.13,-5.81 2.54,-4.97 6.04,-9.99 11.81,-11.4 4.55,-1.98 9.12,-3.92 13.6,-6.04 0.73,-3.15 -3.7,-0.18 -5.06,0.03 -0.82,-3.87 -4.2,-3.09 -7.28,-2.87 -2.25,-0.87 -5.34,2.83 -6,-0.66 -1.13,-3.5 -4.51,0.72 -5.88,2.13 -2.33,1.63 -6.22,1.16 -8.06,-0.56 0.94,-3.05 -4.61,-0.39 -4.53,-3.96 -0.16,-2.3 -3.48,1.3 -5.77,-1.2 -3.04,-0.91 -5.5,-3.22 -8.29,-4.38 -2.49,0.4 -5.86,-2.38 -6.7,1.5 -1.17,0.79 -7.15,1.83 -5.93,-1.54 -2.99,0.03 -6.03,-0.05 -7.53,-1.75 -2.6,0.59 -5.72,-0.41 -5.9,-3.43 -0.88,-3.28 -1.44,-6.61 -1.88,-9.98 -1.23,-0.6 -2.54,-1.02 -3.91,-1.06z","name":"Minnesota"},"ok":{"path":"m363.31,330.03c17.51,1.12 35.04,1.73 52.56,2.47 -1.37,13.62 -2.89,27.23 -2.83,40.93 -0.92,3.93 3.48,5.78 6.14,7.66 0.56,-5.56 2.96,1.46 4.25,-1.31 0.93,-1.5 5.57,1.68 3.39,4.42 1.59,0.66 4.76,0.51 6.73,1.82 2.79,-0.99 5.16,3.32 7.03,1.26 1.82,-1.93 5.59,-0.31 6.5,2.02 2.44,0.79 1.71,5.84 4.76,3.05 1.39,-1.65 6.25,-1.17 6.69,1.21 1.28,1.5 5.69,3.72 7.39,1.92 0.33,-2.75 3.38,-5.95 4.59,-1.83 3.59,0.38 6.96,2 10.46,3 2.28,-1.86 2.44,-4.68 6.53,-3.41 2.53,1.92 3.8,-1.41 6.31,-1.16 0.85,2.42 5.2,2.41 6.19,-0.5 3.2,-0.2 3.66,3.71 6.55,4.35 1.86,0.4 6.31,3.63 5.36,0.18 -0.32,-12.27 0.1,-24.59 -0.7,-36.82 -1.15,-6.03 -1.01,-12.18 -1.43,-18.25 -1.32,-5.29 -2.05,-10.73 -2.07,-16.18 -20.01,0.66 -40.04,-0.04 -60.06,-0.22 -27.85,-1.32 -55.73,-2.3 -83.53,-4.56 -0.27,3.31 -0.54,6.63 -0.81,9.94z","name":"Oklahoma"},"tx":{"path":"m359.47,330.97c2.34,-0.11 -0.86,-1.81 0,0z m0.72,18.31c-1.64,20.84 -2.52,41.75 -4.68,62.55 -0.51,4.33 -0.99,8.66 -1.51,12.98 -17.84,-0.87 -35.67,-1.93 -53.42,-3.89 -4.16,-0.41 -8.32,-0.76 -12.48,-1.11 -0.67,3.74 2.27,3.68 4.04,6.12 2.26,1.83 1.13,6.03 4.65,6.5 3.52,0.48 2.9,4.6 5.45,6.34 3.38,3.15 5.5,7.91 10.27,9.06 1.91,1.27 4,3.22 4.53,5.46 0.69,3.96 4.53,7.02 3.47,11.33 -0.88,5.15 2.22,9.63 5.93,12.88 2.18,2.95 5.14,4.76 8.63,5.78 1.88,1.95 3.01,3.88 5.72,4.88 2.59,0.18 5.38,4.34 7.35,1.18 2.59,-3.14 5.48,-6.41 6.05,-10.55 1.26,-2.82 3.58,-4.32 6.5,-5.06 2.72,-1.59 5.32,-2.13 7.47,0.62 4.91,0.57 10.2,0.53 14.79,2.22 2.83,1.43 2.56,4.53 5.17,6.33 1.73,2.05 4.83,3.37 5.81,5.82 1.37,2.07 2.66,4.26 2.69,7.03 1.62,4.34 4.17,8.51 5.31,12.94 -0.24,2.77 4.65,2.49 4.95,5.51 2.24,4.08 4.37,9.17 9.21,10.49 3.28,2 0.03,5.04 0.91,7.5 3.28,0.87 -0.01,4.68 0.94,6.67 2.53,1.36 4.37,3.2 4.22,6.44 0.39,3.34 2.13,6.83 5.69,7.54 3.01,1.93 6.69,2.13 9.87,3.4 2.28,1.79 5.15,4.09 8.16,2.83 3.46,0.46 6.77,1.29 9.37,3.75 1.43,2.54 6.51,-0.91 4.31,-2.89 -2.04,-3.39 -1.3,-7.79 -2.83,-11.46 -0.63,-3.07 -2.39,-5.95 -0.99,-9.1 1.17,-4.9 2.87,-9.76 4.04,-14.71 -3.37,-1.01 -2.07,-5.47 1.21,-4.71 3.99,0.42 3.65,-6.43 7.81,-6.05 5.25,-1.56 9.07,-6 14.16,-8.05 6.91,-2.81 13.62,-6.46 18.72,-12.05 2.58,-2.98 7.09,-3.95 8.69,-7.75 5,-2.22 9.8,-4.93 15.22,-6 -0.97,-2.64 0.52,-4.86 1.32,-7.22 0.39,-2.99 0.19,-6.07 1.18,-8.94 -3.15,-2.27 0.38,-4.91 1.38,-7.41 -0.2,-2.8 1.42,-6.25 0.09,-8.66 0.3,-2.93 -1.49,-5.14 -3.35,-7.29 -2.46,-2.64 -1.11,-6.91 -3.87,-9.52 -2.53,-4.57 -1.59,-10.19 -2.25,-15.22 0.02,-5 0.19,-10 -0.5,-14.97 -2.63,-2.31 -5.52,2.33 -7.52,-1.37 -3.1,-2.07 -7.66,-2.1 -9.73,-5.68 -2.31,-2.48 -3.82,2.84 -7.18,0.96 -1.91,-2.73 -3.59,0.03 -5.98,0.18 -2.27,-1.15 -6.07,-1.48 -6.09,1.76 -2.76,2.37 -5.95,-0.93 -8.94,-1.28 -3,1.38 -5.23,-3.83 -6.3,-1.87 -0.15,2.66 -2.52,5.1 -5.13,3.34 -3.23,-0.15 -4.91,-2.49 -6.57,-3.89 -2.95,-1.74 -4.3,2.32 -6.94,0.88 -1.48,-1.39 -1.87,-3.6 -3.92,-5.65 -3.06,-2.83 -5.03,3.17 -7.13,0.23 -2.05,-2.11 -5.57,-0.83 -7.94,-2.69 -3.56,0.59 -5.54,-0.24 -4.13,-4.11 -1.89,-1.85 -2.28,1.21 -4.77,-0.14 -0.59,-0.41 -3.45,1.78 -5,-1.11 -1.9,-1.9 -5.13,-3.22 -4.18,-6.45 0.03,-10.58 0.25,-21.15 1.66,-31.65 0.3,-2.99 0.6,-5.98 0.89,-8.98 -17.65,-0.63 -35.3,-1.27 -52.94,-2.22 -0.52,6.07 -1.04,12.15 -1.56,18.22z M466.53,518.63c-5.2,7.17 2.93,-3.27 0,0z","name":"Texas"},"nm":{"path":"m242.72,428.78c4.82,0.63 9.65,1.25 14.47,1.88 0.43,-3.33 0.85,-6.67 1.28,-10 9.7,0.89 19.4,1.86 29.09,2.78 -0.9,-3.14 -1.39,-5.98 2.84,-4.5 18.29,1.28 36.48,3.79 54.81,4.49 2.45,-0.6 7.66,2.13 7.99,-1.01 3.06,-22.93 3.75,-46.09 5.59,-69.14 0.54,-7.79 1.39,-15.56 2.02,-23.34 3.21,0.65 1.17,-4.81 2.07,-6.86 1.79,-4.38 -2.87,-3.37 -5.73,-3.85 -32.35,-3.3 -64.71,-6.59 -97.06,-9.89 -5.79,39.81 -11.58,79.63 -17.38,119.44z","name":"New Mexico"},"ks":{"path":"m380.53,320.34c25.06,1.17 50.11,2.71 75.19,3.35 17.22,0.07 34.44,0.63 51.66,0.18 -0.25,-12.69 0.23,-25.42 -0.47,-38.08 -0.61,-2.83 -0.17,-6.27 -1.38,-8.74 -3.04,-2.03 -6.02,-5.19 -6.68,-8.77 -0.43,-2.51 4.3,-4.59 1.29,-6.64 -3.02,0.54 -4.05,-3.34 -7.17,-2.43 -36.21,-0.82 -72.43,-1.33 -108.63,-2.5 -1.27,21.21 -2.54,42.42 -3.81,63.63z","name":"Kansas"},"ne":{"path":"m353.38,230.59c10.76,0.96 21.27,2.72 32.03,3.66 -0.37,7.11 -0.71,14.23 -1.06,21.34 36.49,1.29 73,1.84 109.5,2.56 -0.31,-1.17 -3.13,-4.05 -4.03,-6.15 -1.99,-2.11 -0.36,-5.13 -2.45,-7.34 -2.42,-3.19 -1.66,-7.14 -2.2,-10.79 -1.66,-2.86 -1.45,-6.25 -2.29,-9.26 -2.94,-2.85 -2.34,-7.01 -3.95,-10.49 -1.13,-3.1 -2.18,-6.19 -2.62,-9.47 -3.51,1.32 -2.89,-3.07 -4.85,-4.29 -2.4,-1.68 -5.57,-1.85 -7.72,-3.93 -3.79,0.07 -7.65,1.04 -11.13,1.94 -2.52,-2.2 -6.03,-3.13 -7.91,-6.06 -13.61,0.96 -27.23,-0.49 -40.83,-1.11 -15.5,-1.05 -31.02,-1.79 -46.51,-2.86 -1.67,14.08 -2.83,28.17 -4,42.25z","name":"Nebraska"},"sd":{"path":"m357.44,187.41c25.68,1.58 51.37,3.15 77.06,4.26 3.58,-0.01 7.34,-0.51 10.81,-0.23 1.8,2.9 5.24,3.85 7.69,6 3.55,-1.45 7.52,-1.89 11.25,-1.91 2.45,2.67 7.26,2.29 9.15,5.33 1.32,4.76 3.27,1.86 0.18,-1.15 -1.53,-2.17 1.46,-4.6 1.56,-6.99 1.2,-2.87 1.38,-5.28 -1.58,-6.75 -0.5,-2.04 -0.73,-6.65 2.41,-5.84 2.62,-0.28 0.39,-5.28 1.06,-7.5 -0.32,-9.7 0.19,-19.47 -0.64,-29.13 -0.24,-3.58 -6.26,-4.19 -5.42,-8.4 1.09,-1.22 5.81,-4.38 2.75,-5.4 -27.23,-0.89 -54.5,-1.01 -81.67,-3.15 -9.79,-0.62 -19.57,-1.24 -29.36,-1.86 -1.75,20.91 -3.5,41.81 -5.25,62.72z","name":"South Dakota"},"nd":{"path":"m362.88,123.72c26.46,1.49 52.89,3.7 79.4,3.91 10.84,0.26 21.67,0.52 32.51,0.78 0.01,-5.53 -1.38,-10.82 -2.5,-16.17 -1.27,-7.42 -2.05,-14.89 -2.13,-22.42 -2.61,-4.16 -4.11,-9 -3.48,-13.94 -0.44,-3.25 0.67,-6.57 0.3,-9.7 -0.15,-4.01 -2.83,-4.61 -6.31,-4.12 -25.15,-0.47 -50.33,-1.05 -75.41,-3.06 -5.17,-0.49 -10.33,-0.98 -15.5,-1.47 -2.29,22.06 -4.58,44.13 -6.88,66.19z","name":"North Dakota"},"wy":{"path":"m240.16,217.84c37.4,4.49 74.29,8.23 111.69,12.72 2.5,-29.2 5.5,-57.65 8,-86.84 -35.26,-4.45 -70.52,-8.9 -105.78,-13.34 -4.64,29.16 -9.27,58.31 -13.91,87.47z","name":"Wyoming"},"mt":{"path":"m192.59,52.19c0.84,2.76 3.25,5.4 3.2,8.23 -1.5,2.79 -1,5.49 0.52,8.15 3.4,0.39 4.18,3.44 5.26,6.16 1.43,3.34 2.55,6.88 5.37,9.34 0.88,2.21 5.27,1.18 4.34,4.72 -2.23,6.21 -5.45,12.23 -7.06,18.56 0.02,3.34 3.4,5.25 5.73,2.22 1.61,-2.43 5.63,-3.04 4.69,0.97 -0.5,5.3 1.81,10.35 2.59,15.53 1.9,2 5.27,3.44 5.68,6.31 -0.71,1.91 -0.39,8.78 2.32,5.14 1.85,-1.89 4.93,-0.29 6.85,0.86 3.28,-1.63 7.26,-1.21 10.34,0.69 3.69,0.41 1.52,-5 5.95,-4.08 2.71,-0.42 2.01,6.69 3.21,4.1 0.56,-3.26 1.09,-6.54 1.68,-9.8 35.57,4.49 71.15,8.96 106.72,13.44 2.9,-28.44 5.79,-56.88 8.69,-85.31 -28.84,-2.29 -57.55,-5.91 -86.19,-9.99 -26.71,-4.12 -53.36,-8.71 -79.73,-14.68 -3.05,-0.61 -6.99,-2.59 -6.53,2.19 -1.21,5.75 -2.42,11.51 -3.62,17.26z","name":"Montana"},"co":{"path":"m260.17,308.53c39.89,4.09 79.51,8.26 119.39,11.91 1.61,-28.46 3.23,-56.92 4.84,-85.38 -37.47,-4.17 -74.94,-8.33 -112.41,-12.5 -4.03,28.98 -7.8,56.99 -11.83,85.97z","name":"Colorado"},"id":{"path":"m169.84,91.72c0.52,3.07 2.27,5.25 4.94,6.78 0.4,3.02 -0.61,5.46 -3.03,7.31 -2.3,2.7 -4.38,5.97 -6.09,8.83 0.39,2.93 -2.57,3.54 -4.23,4.8 -1.77,2.31 -4.28,4.3 -3.93,7.5 -0.64,2.43 4.69,0.57 4.09,4.34 -5.19,11.17 -6.78,23.51 -10.13,35.32 -0.79,3.16 -1.22,4.91 -2.01,8.08 56.92,12.84 62.26,13.45 93.58,19.41 2.75,-17.6 5.5,-35.21 8.25,-52.81 -2.66,-0.84 -0.58,-6.52 -4.23,-4.97 -1.24,1.7 -1.62,4.95 -5.17,3.47 -3.11,-1.99 -6.81,-1.34 -10.13,-0.56 -2.53,-1.76 -5.91,-2.01 -7.69,0.88 -1.75,-0.05 -3.29,-3.39 -2.79,-5.36 1.91,-3.98 -2.85,-5.89 -5.05,-8.27 -0.98,-5.88 -3.48,-11.64 -2.5,-17.69 -1.86,-0.01 -4.25,2.69 -6.47,3.63 -2.21,0.18 -4.52,-3.09 -4.1,-5.31 1.19,-5.37 4.07,-10.37 5.88,-15.6 1.95,-2.64 1.12,-5.57 -2.41,-5.62 -1.55,-3.37 -4.92,-5.66 -5.61,-9.53 -1.31,-2.63 -1.42,-6.47 -5.06,-6.76 -0.99,-1.85 -3.18,-4.47 -1.91,-6.73 2.09,-2.98 -0.34,-5.7 -1.53,-8.5 -2.13,-3.05 0.55,-6.68 0.67,-10.01 0.9,-4.35 1.8,-8.69 2.69,-13.04 -4.18,-0.78 -8.35,-1.56 -12.53,-2.34 -4.5,20.92 -9,41.83 -13.5,62.75z","name":"Idaho"},"ut":{"path":"m176.34,297.78c27.57,3.92 55.15,7.83 82.72,11.75 4.04,-29.08 8.08,-58.17 12.13,-87.25 -10.83,-1.14 -21.65,-2.33 -32.47,-3.59 1.43,-7.93 2.82,-15.85 3.84,-23.84 -15.27,-2.85 -30.54,-5.71 -45.81,-8.56 -6.8,37.17 -13.6,74.33 -20.41,111.5z","name":"Utah"},"az":{"path":"m173.19,314.66c-2.49,-0.06 -3.05,4.43 -6.38,2.94 -0.74,-2.87 -3.59,-2.82 -5.59,-4.22 -3.74,0.74 -2.37,4.58 -2.68,7.41 -0.52,5.04 -0.42,10.21 -0.89,15.22 -2.19,2.33 -2.44,5.78 -0.24,8.19 2.32,2.62 0.58,7.52 4.09,9.09 0.98,3.59 -2.89,4.83 -5.41,6.09 -3.29,2.46 -3.28,6.86 -3.88,10.47 -1.25,2.44 -4.81,2.39 -4.92,4.97 0.47,2.18 6.18,0.38 3.42,4.54 -0.65,2.75 -3.14,3.45 -5.62,3.78 -3.6,1.45 -2.69,4.7 0.77,5.44 14.69,7.84 28.52,17.13 43.01,25.32 5.79,3.19 11.27,7.21 17.27,9.88 11.71,2.83 23.75,3.45 35.68,4.87 5.71,-39.38 11.42,-78.75 17.13,-118.13 -27.58,-3.93 -55.17,-7.85 -82.75,-11.78 -1,5.31 -2,10.63 -3,15.94z","name":"Arizona"},"nv":{"path":"m84.84,232.41c22.96,34.61 45.92,69.23 68.88,103.84 3.66,2.65 3.19,-3.47 3.27,-5.71 0.37,-5.43 0.36,-11.24 1.08,-16.44 2.05,-2.03 4.26,-2 6.08,-0.39 2.62,-0.16 3.86,5.9 6.03,1.27 2.74,-0.82 2.66,-3.64 3.13,-6.41 7.5,-40.87 15,-81.75 22.51,-122.62 -30.72,-6.81 -61.44,-13.63 -92.16,-20.44 -6.27,22.3 -12.54,44.6 -18.81,66.91z","name":"Nevada"},"or":{"path":"M67.16,62.81C64.24,70.42 62.73,78.57 58.5,85.63c-2.86,8.53 -5.96,16.93 -10.17,24.89 -3.06,6.61 -8,12.31 -11.32,18.7 -1.03,6.5 -0.64,13.05 -0.36,19.6 37.23,8.7 74.46,16.69 111.69,25.39 3.45,-13.15 6.51,-25.75 10.19,-38.81 1.2,-2.48 3.15,-6.06 -1.1,-5.42 -2.58,-1.78 -0.23,-4.45 -0.38,-6.91 2.3,-2.82 4.36,-5.82 7.47,-7.75 1.75,-5.08 5.43,-9.19 9.03,-13.06 1.66,-3.48 -2.46,-3.92 -3.39,-6.47 -0.25,-3.79 -3.56,-4.26 -6.62,-4.99 -7.63,-2.2 -15.38,-4.2 -23.21,-5.54 -4.9,0.03 -9.79,0.06 -14.69,0.09 -0.95,-2.84 -4.67,1.86 -7.11,0.5 -2.61,0.82 -4.42,-2.63 -6.57,-1.28 -2.61,-0.06 -5.23,0.11 -7.15,-1.87 -3.09,-1.53 -6.33,-1.81 -9.5,-3.1 -1.87,3.03 -5.69,1.22 -8.53,1.31 -1.65,-1.64 -5.79,-3.02 -6.03,-4.81 1.1,-2.44 0.78,-5.93 0.53,-8.59 -0.42,-3.92 -4.72,-2.63 -6.25,-4.49C74.59,58.67 69.45,62.45 67.16,62.81z","name":"Oregon"},"wa":{"path":"m101.38,8.72c0.05,2.75 2.93,5.39 3.25,8.16 -1.92,2.33 -1.78,5.19 -1.32,7.71 -1.81,2.64 1.63,4.82 0.67,7.42 -3.6,1.52 -2.43,-3.7 -4.86,-4.99 -3.34,-2.24 1.47,-3.87 1.17,-5.42 -2.5,-1.11 -2.24,3.88 -3.69,4.17C92.33,26.39 88.86,23.04 84.76,22.57 79.82,20.66 75.28,17.69 72.25,13.25c-3.13,-0.98 -1.96,4.97 -3.25,6.95 -0.63,2.8 2.59,5.06 1.41,8.21 0.52,3.86 -1.29,7.55 0.18,11.29 -1.06,2.88 4.75,5.54 2.94,6.39 -3.45,-1.05 -6.2,3.2 -2.25,4.34 1.57,0.97 -0.61,6.32 -3.3,5.43 -1.83,2.15 1.28,6.86 4.14,4.17 3.77,-1.55 2.75,3.51 5.83,3.13 2.81,-0.24 4.26,3.31 4.54,5.61 0.04,2.48 -0.15,6.02 -0.26,7.78 2.63,1.76 5.01,4.26 8.46,3.62 3.2,0.66 4.7,-3.26 7.97,-0.5 3.01,0.48 6.37,1.55 8.79,3.66 3.03,0.92 6.02,-1.78 8.19,1.05 3.44,1.3 6.67,0.03 9.84,-1.4 0.99,1.78 4.42,1.32 7,1.3 5.35,-0.19 10.68,-0.16 15.82,1.55 6.99,1.44 13.78,3.45 20.65,5.4 4.47,-20.85 8.94,-41.71 13.41,-62.56 -19.81,-3.93 -39.37,-9.21 -58.73,-14.66 -7.27,-1.53 -14.4,-3.52 -21.46,-5.87L101.75,8.45 101.38,8.72z M95.5,15.16C94.05,13.72 92.15,14.26 94.72,17.63 94.39,13.84 99.19,18.11 98.98,14.18 98.24,12.75 96.05,14.08 95.5,15.16z m2.31,1.91c-3.13,3.04 1.36,2.18 0.16,-0.25l-0.16,0.25z","name":"Washington"},"ca":{"path":"m35.06,153.94c-0.1,4.04 0.4,8.21 -1.99,11.75 -1.86,3.68 -2.55,8.24 -6.48,10.38 -1.19,2.11 -3.49,3.38 -3.59,6.45 -1.94,3.49 2.49,5.65 2.91,8.98 1.54,3.39 2.34,6.94 1.63,10.65 0,2.92 -2.79,5.01 -2.24,8.14 0.05,2.97 -2.24,5.87 0.04,8.54 2.58,5 6.38,9.93 6.71,15.69 -0.54,2.77 -0.99,5.37 1.81,7.17 1.6,1.95 4.49,3.66 2.79,6.46 -1.73,3.87 -1.14,8.04 -1.09,12.16 1.68,2.67 2.83,6.76 6.66,6.53 1.48,2.33 0.97,4.84 -0.22,7.13 -2.5,1.53 -4.36,2.73 -3.66,6.08 0.27,3.49 4.27,5.34 4.36,9.01 1.46,6.2 4.13,11.92 7.59,17.25 0.71,2.57 2.16,4.34 2.9,6.41 -0.24,3.33 -1.93,6.49 -2.41,9.87 -1.66,2.61 1.19,5.52 3.99,5.12 4.03,0.15 7.27,3.31 11.01,4.04 3,-0.55 4.74,2.9 6.07,5.11 1.54,2.71 2.37,6 5.76,6.88 2.51,1.14 6.19,0.05 7.17,3.45 2.41,2.72 -2.39,5.05 1.41,5.17 2.73,1.87 5.56,-1.74 7.56,-0.74 2.13,2.06 4.05,4.2 4.93,7.05 4.3,4.9 1.44,11.77 2.79,17.52 14.73,1.94 29.44,4.72 44.27,5.38 2.78,1.19 6.19,-4.43 2.84,-4.65 -3.13,0.64 -2.83,-4.02 -1.36,-4.66 3.15,-0.88 4.92,-3.83 4.65,-7.04 0.47,-3.98 3.27,-7.43 7.22,-8.4 3.43,-2.04 -0.33,-3.58 -0.79,-5.79 -0.23,-3.65 -1.95,-6.81 -3.62,-9.89 2.02,-3.66 -2.22,-3.32 -3.16,-6.24 -22.6,-34.1 -45.2,-68.19 -67.81,-102.29 6.27,-22.44 12.54,-44.88 18.81,-67.31 -22.04,-5.16 -44.08,-10.31 -66.13,-15.47 -0.45,1.38 -0.9,2.75 -1.34,4.13z m24.13,184.72c-0.27,3.05 7.99,3.06 4.7,2.07 -1.63,-0.35 -3.17,-2.46 -4.7,-2.07z m-5.16,0.38c0.33,3.71 5.81,0.51 1.31,-0.04 -0.44,0.01 -0.88,0.02 -1.31,0.04z M79.69,357.5c-0.2,1.58 4.42,6 3.16,2.37C82.22,358.91 80.8,357.6 79.69,357.5z M77.75,369.13c-0.14,1.55 3.2,3.89 1.32,1.26C78.6,369.72 77.39,366.55 77.75,369.13z","name":"California"}}});
--- /dev/null
+/** Add World Map Data Points */
+jQuery.fn.vectorMap('addMap', 'world_en', {"width":950,"height":550,"paths":{"id":{"path":"M781.68,324.4l-2.31,8.68l-12.53,4.23l-3.75-4.4l-1.82,0.5l3.4,13.12l5.09,0.57l6.79,2.57v2.57l3.11-0.57l4.53-6.27v-5.13l2.55-5.13l2.83,0.57l-3.4-7.13l-0.52-4.59L781.68,324.4L781.68,324.4M722.48,317.57l-0.28,2.28l6.79,11.41h1.98l14.15,23.67l5.66,0.57l2.83-8.27l-4.53-2.85l-0.85-4.56L722.48,317.57L722.48,317.57M789.53,349.11l2.26,2.77l-1.47,4.16v0.79h3.34l1.18-10.4l1.08,0.3l1.96,9.5l1.87,0.5l1.77-4.06l-1.77-6.14l-1.47-2.67l4.62-3.37l-1.08-1.49l-4.42,2.87h-1.18l-2.16-3.17l0.69-1.39l3.64-1.78l5.5,1.68l1.67-0.1l4.13-3.86l-1.67-1.68l-3.83,2.97h-2.46l-3.73-1.78l-2.65,0.1l-2.95,4.75l-1.87,8.22L789.53,349.11L789.53,349.11M814.19,330.5l-1.87,4.55l2.95,3.86h0.98l1.28-2.57l0.69-0.89l-1.28-1.39l-1.87-0.69L814.19,330.5L814.19,330.5M819.99,345.45l-4.03,0.89l-1.18,1.29l0.98,1.68l2.65-0.99l1.67-0.99l2.46,1.98l1.08-0.89l-1.96-2.38L819.99,345.45L819.99,345.45M753.17,358.32l-2.75,1.88l0.59,1.58l8.75,1.98l4.42,0.79l1.87,1.98l5.01,0.4l2.36,1.98l2.16-0.5l1.97-1.78l-3.64-1.68l-3.14-2.67l-8.16-1.98L753.17,358.32L753.17,358.32M781.77,366.93l-2.16,1.19l1.28,1.39l3.14-1.19L781.77,366.93L781.77,366.93M785.5,366.04l0.39,1.88l2.26,0.59l0.88-1.09l-0.98-1.49L785.5,366.04L785.5,366.04M790.91,370.99l-2.75,0.4l2.46,2.08h1.96L790.91,370.99L790.91,370.99M791.69,367.72l-0.59,1.19l4.42,0.69l3.44-1.98l-1.96-0.59l-3.14,0.89l-1.18-0.99L791.69,367.72L791.69,367.72M831.93,339.34l-4.17,0.47l-2.68,1.96l1.11,2.24l4.54,0.84v0.84l-2.87,2.33l1.39,4.85l1.39,0.09l1.2-4.76h2.22l0.93,4.66l10.83,8.96l0.28,7l3.7,4.01l1.67-0.09l0.37-24.72l-6.29-4.38l-5.93,4.01l-2.13,1.31l-3.52-2.24l-0.09-7.09L831.93,339.34L831.93,339.34z","name":"Indonesia"},"pg":{"path":"M852.76,348.29l-0.37,24.44l3.52-0.19l4.63-5.41l3.89,0.19l2.5,2.24l0.83,6.9l7.96,4.2l2.04-0.75v-2.52l-6.39-5.32l-3.15-7.28l2.5-1.21l-1.85-4.01l-3.7-0.09l-0.93-4.29l-9.81-6.62L852.76,348.29L852.76,348.29M880.48,349l-0.88,1.25l4.81,4.26l0.66,2.5l1.31-0.15l0.15-2.57l-1.46-1.32L880.48,349L880.48,349M882.89,355.03l-0.95,0.22l-0.58,2.57l-1.82,1.18l-5.47,0.96l0.22,2.06l5.76-0.29l3.65-2.28l-0.22-3.97L882.89,355.03L882.89,355.03M889.38,359.51l1.24,3.45l2.19,2.13l0.66-0.59l-0.22-2.28l-2.48-3.01L889.38,359.51L889.38,359.51z","name":"Papua New Guinea"},"mx":{"path":"M137.49,225.43l4.83,15.21l-2.25,1.26l0.25,3.02l4.25,3.27v6.05l5.25,5.04l-2.25-14.86l-3-9.83l0.75-6.8l2.5,0.25l1,2.27l-1,5.79l13,25.44v9.07l10.5,12.34l11.5,5.29l4.75-2.77l6.75,5.54l4-4.03l-1.75-4.54l5.75-1.76l1.75,1.01l1.75-1.76h2.75l5-8.82l-2.5-2.27l-9.75,2.27l-2.25,6.55l-5.75,1.01l-6.75-2.77l-3-9.57l2.27-12.07l-4.64-2.89l-2.21-11.59l-1.85-0.79l-3.38,3.43l-3.88-2.07l-1.52-7.73l-15.37-1.61l-7.94-5.97L137.49,225.43L137.49,225.43z","name":"Mexico"},"ee":{"path":"M517.77,143.66l-5.6-0.2l-3.55,2.17l-0.05,1.61l2.3,2.17l7.15,1.21L517.77,143.66L517.77,143.66M506.76,147.64l-1.55-0.05l-0.9,0.91l0.65,0.96l1.55,0.1l0.8-1.16L506.76,147.64L506.76,147.64z","name":"Estonia"},"dz":{"path":"M473.88,227.49l-4.08-1.37l-16.98,3.19l-3.7,2.81l2.26,11.67l-6.75,0.27l-4.06,6.53l-9.67,2.32l0.03,4.75l31.85,24.35l5.43,0.46l18.11-14.15l-1.81-2.28l-3.4-0.46l-2.04-3.42v-14.15l-1.36-1.37l0.23-3.65l-3.62-3.65l-0.45-3.88l1.58-1.14l-0.68-4.11L473.88,227.49L473.88,227.49z","name":"Algeria"},"ma":{"path":"M448.29,232.28h-11.55l-2.26,5.02l-5.21,2.51l-4.3,11.64l-8.38,5.02l-11.77,19.39l11.55-0.23l0.45-5.7h2.94v-7.76h10.19l0.23-10.04l9.74-2.28l4.08-6.62l6.34-0.23L448.29,232.28L448.29,232.28z","name":"Morocco"},"mr":{"path":"M404.9,276.66l2.18,2.85l-0.45,12.32l3.17-2.28l2.26-0.46l3.17,1.14l3.62,5.02l3.4-2.28l16.53-0.23l-4.08-27.61l4.38-0.02l-8.16-6.25l0.01,4.06l-10.33,0.01l-0.05,7.75l-2.97-0.01l-0.38,5.72L404.9,276.66L404.9,276.66z","name":"Mauritania"},"sn":{"path":"M412.03,289.84L410.12,290.31L406.18,293.18L405.28,294.78L405,296.37L406.43,297.40L411.28,297.34L414.40,296.5L414.75,298.03L414.46,300.06L414.53,300.09L406.78,300.21L408.03,303.21L408.71,301.37L418,302.15L418.06,302.21L419.03,302.25L422,302.37L422.12,300.62L418.53,296.31L414.53,290.87L412.03,289.84z","name":"Senegal"},"gm":{"path":"M406.89,298.34l-0.13,1.11l6.92-0.1l0.35-1.03l-0.15-1.04l-1.99,0.81L406.89,298.34L406.89,298.34z","name":"Gambia"},"gw":{"path":"M408.6,304.53l1.4,2.77l3.93-3.38l0.04-1.04l-4.63-0.67L408.6,304.53L408.6,304.53z","name":"Guinea-Bissau"},"gn":{"path":"M410.42,307.94l3.04,4.68l3.96-3.44l4.06-0.18l3.38,4.49l2.87,1.89l1.08-2.1l0.96-0.54l-0.07-4.62l-1.91-5.48l-5.86,0.65l-7.25-0.58l-0.04,1.86L410.42,307.94L410.42,307.94z","name":"Guinea"},"sl":{"path":"M413.93,313.13l5.65,5.46l4.03-4.89l-2.52-3.95l-3.47,0.35L413.93,313.13L413.93,313.13z","name":"Sierra Leone"},"lr":{"path":"M420.17,319.19l10.98,7.34l-0.26-5.56l-3.32-3.91l-3.24-2.87L420.17,319.19L420.17,319.19z","name":"Liberia"},"ci":{"path":"M432.07,326.75l4.28-3.03l5.32-0.93l5.43,1.17l-2.77-4.19l-0.81-2.56l0.81-7.57l-4.85,0.23l-2.2-2.1l-4.62,0.12l-2.2,0.35l0.23,5.12l-1.16,0.47l-1.39,2.56l3.58,4.19L432.07,326.75L432.07,326.75z","name":"Cote d'Ivoire"},"ml":{"path":"M419.46,295.84l3.08-2.11l17.12-0.1l-3.96-27.54l4.52-0.13l21.87,16.69l2.94,0.42l-1.11,9.28l-13.75,1.25l-10.61,7.92l-1.93,5.42l-7.37,0.31l-1.88-5.41l-5.65,0.4l0.22-1.77L419.46,295.84L419.46,295.84z","name":"Mali"},"bf":{"path":"M450.59,294.28l3.64-0.29l5.97,8.44l-5.54,4.18l-4.01-1.03l-5.39,0.07l-0.87,3.16l-4.52,0.22l-1.24-1.69l1.6-5.14L450.59,294.28L450.59,294.28z","name":"Burkina Faso"},"ne":{"path":"M460.89,302l2.55-0.06l2.3-3.45l3.86-0.69l4.11,2.51l8.77,0.25l6.78-2.76l2.55-2.19l0.19-2.88l4.73-4.77l1.25-10.53l-3.11-6.52l-7.96-1.94l-18.42,14.36l-2.61-0.25l-1.12,9.97l-9.4,0.94L460.89,302L460.89,302z","name":"Niger"},"gh":{"path":"M444.34,317.05l1.12,2.63l2.92,4.58l1.62-0.06l4.42-2.51l-0.31-14.29l-3.42-1l-4.79,0.13L444.34,317.05L444.34,317.05z","name":"Ghana"},"tg":{"path":"M455.22,321.25l2.68-1.57l-0.06-10.35l-1.74-2.82l-1.12,0.94L455.22,321.25L455.22,321.25z","name":"Togo"},"bj":{"path":"M458.71,319.49h2.12l0.12-6.02l2.68-3.89l-0.12-6.77l-2.43-0.06l-4.17,3.26l1.74,3.32L458.71,319.49L458.71,319.49z","name":"Benin"},"ng":{"path":"M461.57,319.37l3.92,0.19l4.73,5.27l2.3,0.63l1.8-0.88l2.74-0.38l0.93-3.82l3.73-2.45l4.04-0.19l7.4-13.61l-0.12-3.07l-3.42-2.63l-6.84,3.01l-9.15-0.13l-4.36-2.76l-3.11,0.69l-1.62,2.82l-0.12,7.96l-2.61,3.7L461.57,319.37L461.57,319.37z","name":"Nigeria"},"tn":{"path":"M474.91,227.33l5.53-2.23l1.82,1.18l0.07,1.44l-0.85,1.11l0.13,1.97l0.85,0.46v3.54l-0.98,1.64l0.13,1.05l3.71,1.31l-2.99,4.65l-1.17-0.07l-0.2,3.74l-1.3,0.2l-1.11-0.98l0.26-3.8l-3.64-3.54l-0.46-3.08l1.76-1.38L474.91,227.33L474.91,227.33z","name":"Tunisia"},"ly":{"path":"M480.05,248.03l1.56-0.26l0.46-3.6h0.78l3.19-5.24l7.87,2.29l2.15,3.34l7.74,3.54l4.03-1.7l-0.39-1.7l-1.76-1.7l0.2-1.18l2.86-2.42h5.66l2.15,2.88l4.55,0.66l0.59,36.89l-3.38-0.13l-20.42-10.62l-2.21,1.25l-8.39-2.1l-2.28-3.01l-3.32-0.46l-1.69-3.01L480.05,248.03L480.05,248.03z","name":"Libya"},"eg":{"path":"M521.93,243.06l2.67,0.07l5.2,1.44l2.47,0.07l3.06-2.56h1.43l2.6,1.44h3.29l0.59-0.04l2.08,5.98l0.59,1.93l0.55,2.89l-0.98,0.72l-1.69-0.85l-1.95-6.36l-1.76-0.13l-0.13,2.16l1.17,3.74l9.37,11.6l0.2,4.98l-2.73,3.15L522.32,273L521.93,243.06L521.93,243.06z","name":"Egypt"},"td":{"path":"M492.79,296l0.13-2.95l4.74-4.61l1.27-11.32l-3.16-6.04l2.21-1.13l21.4,11.15l-0.13,10.94l-3.77,3.21v5.64l2.47,4.78h-4.36l-7.22,7.14l-0.19,2.16l-5.33-0.07l-0.07,0.98l-3.04-0.4l-2.08-3.93l-1.56-0.77l0.2-1.2l1.96-1.5v-7.02l-2.71-0.42l-3.27-2.43L492.79,296L492.79,296L492.79,296z","name":"Chad"},"sd":{"path":"M520.15,292.43l0.18-11.83l2.46,0.07l-0.28-6.57l25.8,0.23l3.69-3.72l7.96,12.73l-4.36,5.14v7.85l-6.86,14.75l-2.36,1.04l0.75,4.11h2.94l3.99,5.79l-3.2,0.41l-0.82,1.49l-0.08,2.15l-9.6-0.17l-0.98-1.49l-6.71-0.38l-12.32-12.68l1.23-0.74l0.33-2.98l-2.95-1.74l-2.69-5.31l0.15-4.94L520.15,292.43L520.15,292.43z","name":"Sudan"},"cm":{"path":"M477.82,324.28l3.22,2.96l-0.23,4.58l17.66-0.41l1.44-1.62l-5.06-5.45l-0.75-1.97l3.22-6.03l-2.19-4l-1.84-0.99v-2.03l2.13-1.39l0.12-6.32l-1.69-0.19l-0.03,3.32l-7.42,13.85l-4.54,0.23l-3.11,2.14L477.82,324.28L477.82,324.28z","name":"Cameroon"},"er":{"path":"M556.71,294.7l-0.25-5.89l3.96-4.62l1.07,0.82l1.95,6.52l9.36,6.97l-1.7,2.09l-6.85-5.89H556.71L556.71,294.7z","name":"Eritrea"},"dj":{"path":"M571.48,301.54l-0.57,3.36l3.96-0.06l0.06-4.94l-1.45-0.89L571.48,301.54L571.48,301.54z","name":"Djibouti"},"et":{"path":"M549.49,311.76l7.28-16.2l7.23,0.04l6.41,5.57l-0.45,4.59h4.97l0.51,2.76l8.04,4.81l4.96,0.25l-9.43,10.13l-12.95,3.99h-3.21l-5.72-4.88l-2.26-0.95l-4.38-6.45l-2.89,0.04l-0.34-2.96L549.49,311.76L549.49,311.76z","name":"Ethiopia"},"so":{"path":"M575.74,305.04l4.08,2.78l1.21-0.06l10.13-3.48l1.15,3.71l-0.81,3.13l-2.19,1.74l-5.47-0.35l-7.83-4.81L575.74,305.04L575.74,305.04M591.97,304.05l4.37-1.68l1.55,0.93l-0.17,3.88l-4.03,11.48l-21.81,23.36l-2.53-1.74l-0.17-9.86l3.28-3.77l6.96-2.15l10.21-10.78l2.67-2.38l0.75-3.48L591.97,304.05L591.97,304.05z","name":"Somalia"},"ye":{"path":"M599.62,299.65l2.13,2.38l2.88-1.74l1.04-0.35l-1.32-1.28l-2.53,0.75L599.62,299.65L599.62,299.65M571.99,289.23l1.44,4.28v4.18l3.46,3.14l24.38-9.93l0.23-2.73l-3.91-7.02l-9.81,3.13l-5.63,5.54l-6.53-3.86L571.99,289.23L571.99,289.23z","name":"Yemen"},"cf":{"path":"M495.66,324.05l4.66,5.04l1.84-2.38l2.93,0.12l0.63-2.32l2.88-1.8l5.98,4.12l3.45-3.42l13.39,0.59L519,311.18l1.67-1.04l0.23-2.26l-2.82-1.33h-4.14l-6.67,6.61l-0.23,2.72l-5.29-0.17l-0.17,1.16l-3.45-0.35l-3.11,5.91L495.66,324.05L495.66,324.05z","name":"Central African Republic"},"st":{"path":"M470.74,337.15l1.15-0.58l0.86,0.7l-0.86,1.33l-1.04-0.41L470.74,337.15L470.74,337.15M473.05,333.5l1.73-0.29l0.58,1.1l-0.86,0.93l-0.86-0.12L473.05,333.5L473.05,333.5z","name":"Sao Tome and Principe"},"gq":{"path":"M476.84,327.41l-0.46,1.97l1.38,0.75l1.32-0.99l-0.46-2.03L476.84,327.41L476.84,327.41M480.99,332.69l-0.06,1.39l4.54,0.23l-0.06-1.57L480.99,332.69L480.99,332.69z","name":"Equatorial Guinea"},"ga":{"path":"M486.39,332.63l-0.12,2.49l-5.64-0.12l-3.45,6.67l8.11,8.87l2.01-1.68l-0.06-1.74l-1.38-0.64v-1.22l3.11-1.97l2.76,2.09l3.05,0.06l-0.06-10.49l-4.83-0.23l-0.06-2.2L486.39,332.63L486.39,332.63z","name":"Gabon"},"cg":{"path":"M491,332.52l-0.06,1.45l4.78,0.12l0.17,12.41l-4.37-0.12l-2.53-1.97l-1.96,1.1l-0.09,0.55l1.01,0.49l0.29,2.55l-2.7,2.32l0.58,1.22l2.99-2.32h1.44l0.46,1.39l1.9,0.81l6.1-5.16l-0.12-3.77l1.27-3.07l3.91-2.9l1.05-9.81l-2.78,0.01l-3.22,4.41L491,332.52L491,332.52z","name":"Congo"},"ao":{"path":"M486.55,353.23l1.74,2.26l2.25-2.13l-0.66-2.21l-0.56-0.04L486.55,353.23L486.55,353.23M488.62,356.71l3.41,12.73l-0.08,4.02l-4.99,5.36l-0.75,8.71l19.2,0.17l6.24,2.26l5.15-0.67l-3-3.76l0.01-10.74l5.9-0.25v-4.19l-4.79-0.2l-0.96-9.92l-2.02,0.03l-1.09-0.98l-1.19,0.06l-1.58,3.06H502l-1.41-1.42l0.42-2.01l-1.66-2.43L488.62,356.71L488.62,356.71z","name":"Angola"},"cd":{"path":"M489.38,355.71l10.31-0.18l2.09,2.97l-0.08,2.19l0.77,0.7h5.12l1.47-2.89h2.09l0.85,0.86l2.87-0.08l0.85,10.08l4.96,0.16v0.78l13.33,6.01l0.62,1.17h2.79l-0.31-4.22l-5.04-2.42l0.31-3.2l2.17-5.08l4.96-0.16l-4.26-14.14l0.08-6.01l6.74-10.54l0.08-1.48l-1.01-0.55l0.04-2.86l-1.23-0.11l-1.24-1.58l-20.35-0.92l-3.73,3.63l-6.11-4.02l-2.15,1.32l-1.56,13.13l-3.86,2.98l-1.16,2.64l0.21,3.91l-6.96,5.69l-1.85-0.84l0.25,1.09L489.38,355.71L489.38,355.71z","name":"Congo"},"rw":{"path":"M537.82,339.9l2.81,2.59l-0.12,2.77l-4.36,0.09v-3.06L537.82,339.9L537.82,339.9z","name":"Rwanda"},"bi":{"path":"M536.21,346.21l4.27-0.09l-1.11,3.74l-1.08,0.94h-1.32l-0.94-2.53L536.21,346.21L536.21,346.21z","name":"Burundi"},"ug":{"path":"M538.3,339.09l3.03,2.84l1.9-1.21l5.14-0.84l0.88,0.09l0.33-1.95l2.9-6.1l-2.44-5.08l-7.91,0.05l-0.05,2.09l1.06,1.02l-0.16,2.09L538.3,339.09L538.3,339.09z","name":"Uganda"},"ke":{"path":"M550.83,326.52l2.66,5.19l-3.19,6.69l-0.42,2.03l15.93,9.85l4.94-7.76l-2.5-2.03l-0.05-10.22l3.13-3.42l-4.99,1.66l-3.77,0.05l-5.9-4.98l-1.86-0.8l-3.45,0.32l-0.61,1.02L550.83,326.52L550.83,326.52z","name":"Kenya"},"tz":{"path":"M550.57,371.42l17.47-2.14l-3.93-7.6l-0.21-7.28l1.27-3.48l-16.62-10.44l-5.21,0.86l-1.81,1.34l-0.16,3.05l-1.17,4.23l-1.22,1.45l-1.75,0.16l3.35,11.61l5.47,2.57l3.77,0.11L550.57,371.42L550.57,371.42z","name":"Tanzania"},"zm":{"path":"M514.55,384.7l3.17,4.4l4.91,0.3l1.74,0.96l5.14,0.06l4.43-6.21l12.38-5.54l1.08-4.88l-1.44-6.99l-6.46-3.68l-4.31,0.3l-2.15,4.76l0.06,2.17l5.08,2.47l0.3,5.37l-4.37,0.24l-1.08-1.81l-12.14-5.18l-0.36,3.98l-5.74,0.18L514.55,384.7L514.55,384.7z","name":"Zambia"},"mw":{"path":"M547.16,379.4l3.11,3.25l-0.06,4.16l0.6,1.75l4.13-4.46l-0.48-5.67l-2.21-1.69l-1.97-9.95l-3.41-0.12l1.55,7.17L547.16,379.4L547.16,379.4z","name":"Malawi"},"mz":{"path":"M541.17,413.28l2.69,2.23l6.34-3.86l1.02-5.73v-9.46l10.17-8.32l1.74,0.06l6.16-5.91l-0.96-12.18L552,372.17l0.48,3.68l2.81,2.17l0.66,6.63l-5.5,5.37l-1.32-3.01l0.24-3.98l-3.17-3.44l-7.78,3.62l7.24,3.68l0.24,10.73l-4.79,7.11L541.17,413.28L541.17,413.28z","name":"Mozambique"},"zw":{"path":"M524.66,392.3l8.97,10.13l6.88,1.75l4.61-7.23l-0.36-9.58l-7.48-3.86l-2.81,1.27l-4.19,6.39l-5.8-0.06L524.66,392.3L524.66,392.3z","name":"Zimbabwe"},"na":{"path":"M496.55,421.96l3.35,0.24l1.97,1.99l4.67,0.06l1.14-13.26v-8.68l2.99-0.6l1.14-9.1l7.6-0.24l2.69-2.23l-4.55-0.18l-6.16,0.84l-6.64-2.41h-18.66l0.48,5.3l6.22,9.16l-1.08,4.7l0.06,2.47L496.55,421.96L496.55,421.96z","name":"Namibia"},"bw":{"path":"M508.51,411.23l2.15,0.66l-0.3,6.15l2.21,0.3l5.08-4.58l6.1,0.66l1.62-4.1l7.72-7.05l-9.27-10.67l-0.12-1.75l-1.02-0.3l-2.81,2.59l-7.3,0.18l-1.02,9.1l-2.87,0.66L508.51,411.23L508.51,411.23z","name":"Botswana"},"sz":{"path":"M540.87,414l-2.51,0.42l-1.08,2.95l1.92,1.75h2.33l1.97-2.83L540.87,414L540.87,414z","name":"Swaziland"},"ls":{"path":"M527.41,425.39l3.05-2.35l1.44,0.06l1.74,2.17l-0.18,2.17l-2.93,1.08v0.84l-3.23-0.18l-0.78-2.35L527.41,425.39L527.41,425.39z","name":"Lesotho"},"za":{"path":"M534.16,403.63l-7.9,7.3l-1.88,4.51l-6.26-0.78l-5.21,4.63l-3.46-0.34l0.28-6.4l-1.23-0.43l-0.86,13.09l-6.14-0.06l-1.85-2.18l-2.71-0.03l2.47,7.09l4.41,4.17l-3.15,3.67l2.04,4.6l4.72,1.8l3.76-3.2l10.77,0.06l0.77-0.96l4.78-0.84l16.17-16.1l-0.06-5.07l-1.73,2.24h-2.59l-3.15-2.64l1.6-3.98l2.75-0.56l-0.25-8.18L534.16,403.63L534.16,403.63z M530.37,422.13l1.51-0.06l2.45,2.66l-0.07,3.08l-2.87,1.45l-0.18,1.02l-4.38,0.05l-1.37-3.3l1.25-2.42L530.37,422.13L530.37,422.13z","name":"South Africa"},"gl":{"path":"M321.13,50.07l-1.36,2.17l2.45,2.45l-1.09,2.45l3.54,4.62l4.35-1.36l5.71-0.54l6.53,7.07l4.35,11.69l-3.53,7.34l4.89-0.82l2.72,1.63l0.27,3.54l-5.98,0.27l3.26,3.26l4.08,0.82l-8.97,11.96l-1.09,7.34l1.9,5.98l-1.36,3.54l2.45,7.61l4.62,5.17l1.36-0.27l2.99-0.82l0.27,4.35l1.9,2.72l3.53-0.27l2.72-10.06l8.16-10.06l12.24-4.89l7.61-9.52l3.53,1.63h7.34l5.98-5.98l7.34-2.99l0.82-4.62l-4.62-4.08l-4.08-1.36l-2.18-5.71l5.17-2.99l8.16,4.35l2.72-2.99l-4.35-2.45l9.25-12.51l-1.63-5.44l-4.35-0.27l1.63-4.89l5.44-2.45l11.15-9.79l-3.26-3.53l-12.51,1.09l-6.53,6.53l3.81-8.43l-4.35-1.09l-2.45,4.35l-3.53-2.99l-9.79,1.09l2.72-4.35l16.04-0.54l-4.08-5.44l-17.4-3.26l-7.07,1.09l0.27,3.54l-7.34-2.45l0.27-2.45l-5.17,1.09l-1.09,2.72l5.44,1.9l-5.71,4.08l-4.08-4.62l-5.71-1.63l-0.82,4.35h-5.71l-2.18-4.62l-8.97-1.36l-4.89,2.45l-0.27,3.26l-6.25-0.82l-3.81,1.63l0.27,3.81v1.9l-7.07,1.36l-3.26-2.17l-2.18,3.53l3.26,3.54l6.8-0.82l0.54,2.18l-5.17,2.45L321.13,50.07L321.13,50.07M342.89,92.49l1.63,2.45l-0.82,2.99h-1.63l-2.18-2.45l0.54-1.9L342.89,92.49L342.89,92.49M410.87,85.69l4.62,1.36l-0.27,3.81l-4.89-2.45l-1.09-1.36L410.87,85.69L410.87,85.69z","name":"Greenland"},"au":{"path":"M761.17,427.98l-0.35,25.38l-3.9,2.86l-0.35,2.5l5.32,3.57l13.13-2.5h6.74l2.48-3.58l14.9-2.86l10.64,3.22l-0.71,4.29l1.42,4.29l8.16-1.43l0.35,2.14l-5.32,3.93l1.77,1.43l3.9-1.43l-1.06,11.8l7.45,5.72l4.26-1.43l2.13,2.14l12.42-1.79l11.71-18.95l4.26-1.07l8.51-15.73l2.13-13.58l-5.32-6.79l2.13-1.43l-4.26-13.23l-4.61-3.22l0.71-17.87l-4.26-3.22l-1.06-10.01h-2.13l-7.1,23.59l-3.9,0.36l-8.87-8.94l4.97-13.23l-9.22-1.79l-10.29,2.86l-2.84,8.22l-4.61,1.07l-0.35-5.72l-18.8,11.44l0.35,4.29l-2.84,3.93h-7.1l-15.26,6.43L761.17,427.98L761.17,427.98M825.74,496.26l-1.77,7.15l0.35,5l5.32-0.36l6.03-9.29L825.74,496.26L825.74,496.26z","name":"Australia"},"nz":{"path":"M913.02,481.96l1.06,11.8l-1.42,5.36l-5.32,3.93l0.35,4.65v5l1.42,1.79l14.55-12.51v-2.86h-3.55l-4.97-16.8L913.02,481.96L913.02,481.96M902.38,507.7l2.84,5.36l-7.81,7.51l-0.71,3.93l-5.32,0.71l-8.87,8.22l-8.16-3.93l-0.71-2.86l14.9-6.43L902.38,507.7L902.38,507.7z","name":"New Zealand"},"nc":{"path":"M906.64,420.47l-0.35,1.79l4.61,6.43l2.48,1.07l0.35-2.5L906.64,420.47L906.64,420.47z","name":"New Caledonia"},"my":{"path":"M764.14,332.92l3.02,3.49l11.58-4.01l2.29-8.84l5.16-0.37l4.72-3.42l-6.12-4.46l-1.4-2.45l-3.02,5.57l1.11,3.2l-1.84,2.67l-3.47-0.89l-8.41,6.17l0.22,3.57L764.14,332.92L764.14,332.92M732.71,315.45l2.01,4.51l0.45,5.86l2.69,4.17l6.49,3.94l2.46,0.23l-0.45-4.06l-2.13-5.18l-3.12-6.63l-0.26,1.16l-3.76-0.17l-2.7-3.88L732.71,315.45L732.71,315.45z","name":"Malaysia"},"bn":{"path":"M779.77,319.25l-2.88,3.49l2.36,0.74l1.33-1.86L779.77,319.25L779.77,319.25z","name":"Brunei Darussalam"},"tl":{"path":"M806.14,368.42l-5.11,4.26l0.49,1.09l2.16-0.4l2.55-2.38l5.01-0.69l-0.98-1.68L806.14,368.42L806.14,368.42z","name":"Timor-Leste"},"sb":{"path":"M895.43,364.65l0.15,2.28l1.39,1.32l1.31-0.81l-1.17-2.43L895.43,364.65L895.43,364.65M897.18,370.31l-1.17,1.25l1.24,2.28l1.46,0.44l-0.07-1.54L897.18,370.31L897.18,370.31M900.03,368.99l1.02,2.5l1.97,2.35l1.09-1.76l-1.46-2.5L900.03,368.99L900.03,368.99M905.14,372.74l0.58,3.09l1.39,1.91l1.17-2.42L905.14,372.74L905.14,372.74M906.74,379.65l-0.51,0.88l1.68,2.21l1.17,0.07l-0.73-2.87L906.74,379.65L906.74,379.65M903.02,384.05l-1.75,0.81l1.53,2.13l1.31-0.74L903.02,384.05L903.02,384.05z","name":"Solomon Islands"},"vu":{"path":"M920.87,397.22l-1.24,1.66l0.52,1.87l0.62,0.42l1.13-1.46L920.87,397.22L920.87,397.22M921.49,402.31l0.1,1.35l1.34,0.42l0.93-0.52l-0.93-1.46L921.49,402.31L921.49,402.31M923.45,414.37l-0.62,0.94l0.93,1.04l1.55-0.52L923.45,414.37L923.45,414.37z","name":"Vanuatu"},"fj":{"path":"M948.62,412.29l-1.24,1.66l-0.1,1.87l1.44,1.46L948.62,412.29L948.62,412.29z","name":"Fiji"},"ph":{"path":"M789.37,297.53l-0.86,1.64l-0.48,2.02l-4.78,6.07l0.29,1.25l2.01-0.29l6.21-6.94L789.37,297.53L789.37,297.53M797.11,295.22l-0.1,5.01l1.82,1.83l0.67,3.56l1.82,0.39l0.86-2.22l-1.43-1.06l-0.38-6.26L797.11,295.22L797.11,295.22M802.28,297.15l-0.1,4.43l1.05,1.73l1.82-2.12l-0.48-3.85L802.28,297.15L802.28,297.15M803.42,293.29l1.82,2.41l0.86,2.31h1.63l-0.29-3.95l-1.82-1.25L803.42,293.29L803.42,293.29M806.96,302.35l0.38,2.89l-3.35,2.7l-2.77,0.29l-2.96,3.18l0.1,1.45l2.77-0.87l1.91-1.25l1.63,4.14l2.87,2.02l1.15-0.39l1.05-1.25l-2.29-2.31l1.34-1.06l1.53,1.25l1.05-1.73l-1.05-2.12l-0.19-4.72L806.96,302.35L806.96,302.35M791.38,272.97l-2.58,1.83l-0.29,5.78l4.02,7.8l1.34,1.06l1.72-1.16l2.96,0.48l0.57,2.6l2.2,0.19l1.05-1.44l-1.34-1.83l-1.63-1.54l-3.44-0.38l-1.82-2.99l2.1-3.18l0.19-2.79l-1.43-3.56L791.38,272.97L791.38,272.97M792.72,290.21l0.76,2.7l1.34,0.87l0.96-1.25l-1.53-2.12L792.72,290.21L792.72,290.21z","name":"Philippines"},"cn":{"path":"M759.83,270.17l-2.39,0.67l-1.72,2.12l1.43,2.79l2.1,0.19l2.39-2.12l0.57-2.79L759.83,270.17L759.83,270.17M670.4,170.07l-3.46,8.7l-4.77-0.25l-5.03,11.01l4.27,5.44l-8.8,12.15l-4.52-0.76l-3.02,3.8l0.75,2.28l3.52,0.25l1.76,4.05l3.52,0.76l10.81,13.93v7.09l5.28,3.29l5.78-1.01l7.29,4.3l8.8,2.53l4.27-0.51l4.78-0.51l10.05-6.58l3.27,0.51l1.25,2.97l2.77,0.83l3.77,5.57l-2.51,5.57l1.51,3.8l4.27,1.52l0.75,4.56l5.03,0.51l0.75-2.28l7.29-3.8l4.52,0.25l5.28,5.82l3.52-1.52l2.26,0.25l1.01,2.79l1.76,0.25l2.51-3.54l10.05-3.8l9.05-10.89l3.02-10.38l-0.25-6.84l-3.77-0.76l2.26-2.53l-0.5-4.05l-9.55-9.62v-4.81l2.76-3.54l2.76-1.27l0.25-2.79h-7.04l-1.26,3.8l-3.27-0.76l-4.02-4.3l2.51-6.58l3.52-3.8l3.27,0.25l-0.5,5.82l1.76,1.52l4.27-4.3l1.51-0.25l-0.5-3.29l4.02-4.81l3.02,0.25l1.76-5.57l2.06-1.09l0.21-3.47l-2-2.1l-0.17-5.48l3.85-0.25l-0.25-14.13l-2.7,1.62l-1.01,3.62l-4.51-0.01l-13.07-7.35l-9.44-11.38l-9.58-0.1l-2.44,2.12l3.1,7.1l-1.08,6.66l-3.86,1.6l-2.17-0.17l-0.16,6.59l2.26,0.51l4.02-1.77l5.28,2.53v2.53l-3.77,0.25l-3.02,6.58l-2.76,0.25l-9.8,12.91l-10.3,4.56l-7.04,0.51l-4.77-3.29l-6.79,3.55l-7.29-2.28l-1.76-4.81l-12.31-0.76l-6.53-10.63h-2.76l-2.22-4.93L670.4,170.07z","name":"China"},"tw":{"path":"M787.46,248.31l-3.54,2.7l-0.19,5.2l3.06,3.56l0.76-0.67L787.46,248.31L787.46,248.31z","name":"Taiwan"},"jp":{"path":"M803.23,216.42l-1.63,1.64l0.67,2.31l1.43,0.1l0.96,5.01l1.15,1.25l2.01-1.83l0.86-3.28l-2.49-3.56L803.23,216.42L803.23,216.42M812.03,213.15l-2.77,2.6l-0.1,2.99l0.67,0.87l3.73-3.18l-0.29-3.18L812.03,213.15L812.03,213.15M808.2,206.98l-4.88,5.59l0.86,1.35l2.39,0.29l4.49-3.47l3.16-0.58l2.87,3.37l2.2-0.77l0.86-3.28l4.11-0.1l4.02-4.82l-2.1-8l-0.96-4.24l2.1-1.73l-4.78-7.22l-1.24,0.1l-2.58,2.89v2.41l1.15,1.35l0.38,6.36l-2.96,3.66l-1.72-1.06l-1.34,2.99l-0.29,2.79l1.05,1.64l-0.67,1.25l-2.2-1.83h-1.53l-1.34,0.77L808.2,206.98L808.2,206.98M816.43,163.44l-1.53,1.35l0.77,2.89l1.34,1.35l-0.1,4.43l-1.72,0.67l-1.34,2.99l3.92,5.39l2.58-0.87l0.48-1.35l-2.77-2.5l1.72-2.22l1.82,0.29l1.43,1.54l0.1-3.18l3.92-3.18l2.2-0.58l-1.82-3.08l-0.86-1.35l-1.43,0.96l-1.24,1.54l-2.68-0.58l-2.77-1.83L816.43,163.44L816.43,163.44z","name":"Japan"},"ru":{"path":"M506.61,151.72l-1.5-0.15l-2.7,3.23v1.51l0.9,0.35l1.75,0.05l2.9-2.37l0.4-0.81L506.61,151.72L506.61,151.72M830.86,160.45l-2.68,3.76l0.19,1.83l1.34-0.58l3.15-3.95L830.86,160.45L830.86,160.45M834.4,154.96l-0.96,2.6l0.1,1.73l1.63-1.06l1.53-3.08V154L834.4,154.96L834.4,154.96M840.04,132.03l-1.24,1.54l0.1,2.41l1.15-0.1l1.91-3.37L840.04,132.03L840.04,132.03M837.75,137.91v4.24l1.34,0.48l0.96-1.54v-3.27L837.75,137.91L837.75,137.91M798.64,122.59l-0.09,6.17l7.74,11.95l2.77,10.4l4.88,9.25l1.91,0.67l1.63-1.35l0.76-2.22l-6.98-7.61l0.19-3.95l1.53-0.67l0.38-2.31l-13.67-19.36L798.64,122.59L798.64,122.59M852.57,103.42l-1.91,0.19l1.15,1.64l2.39,1.64l0.67-0.77L852.57,103.42L852.57,103.42M856.29,104.58l0.29,1.64l2.96,0.87l0.29-1.16L856.29,104.58L856.29,104.58M547.82,38.79l1.72,0.69l-1.21,2.08v2.95l-2.58,1.56H543l-1.55-1.91l0.17-2.08l1.21-1.56h2.41L547.82,38.79L547.82,38.79M554.36,36.88v2.08l1.72,1.39l2.41-0.17l2.07-1.91v-1.39h-1.89l-1.55,0.52l-1.21-1.39L554.36,36.88L554.36,36.88M564.18,37.06l1.21,2.6l2.41,0.17l1.72-0.69l-0.86-2.43l-2.24-0.52L564.18,37.06L564.18,37.06M573.99,33.59l-1.89-0.35l-1.72,1.74l0.86,1.56l0.52,2.43l2.24-1.73l0.52-1.91L573.99,33.59L573.99,33.59M584.49,51.98l-0.52,2.43l-3.96,3.47l-8.44,1.91l-6.89,11.45l-1.21,3.3l6.89,1.74l1.03-4.16l2.07-6.42l5.34-2.78l4.48-3.47l3.27-1.39h1.72v-4.68L584.49,51.98L584.49,51.98M562.28,77.31l4.65,0.52l1.55,5.38l3.96,4.16l-1.38,2.78h-2.41l-2.24-2.6l-4.99-0.17l-2.07-2.78v-1.91l3.1-0.87L562.28,77.31L562.28,77.31M634.95,18.15l-2.24-1.39h-2.58l-0.52,1.56l-2.75,1.56l-2.07,0.69l-0.34,2.08l4.82,0.35L634.95,18.15L634.95,18.15M640.28,18.67l-1.21,2.6l-2.41-0.17l-3.79,2.78l-1.03,3.47h2.41l1.38-2.26l3.27,2.43l3.1-1.39l2.24-1.91l-0.86-2.95l-1.21-2.08L640.28,18.67L640.28,18.67M645.28,20.58l1.21,4.86l1.89,4.51l2.07-3.64l3.96-0.87v-2.6l-2.58-1.91L645.28,20.58L645.28,20.58M739.76,12.8l2.69,2.26l1.91-0.79l0.56-3.17L741,8.39l-2.58,1.7l-6.28,0.57v2.83l-6.62,0.11v4.63l7.74,5.76l2.02-1.47l-0.45-4.07l4.94-1.24l-1.01-1.92l-1.79-1.81L739.76,12.8L739.76,12.8M746.94,10.09l1.79,3.39l6.96-0.79l1.91-2.49l-0.45-2.15l-1.91-0.79l-1.79,1.36l-5.16,1.13L746.94,10.09L746.94,10.09M746.49,23.31l-3.48-0.9L741,24.56l-0.9,2.94l4.71-0.45l3.59-1.81L746.49,23.31L746.49,23.31M836.68,3.76l-2.92-0.9L830.4,4.1l-1.68,2.49l2.13,2.83l5.61-2.49l1.12-1.24L836.68,3.76L836.68,3.76M817.97,72.93l1.76,6.08l3.52,1.01l3.52-5.57l-2.01-3.8l0.75-3.29h5.28l-1.26,2.53l0.5,9.12l-7.54,18.74l0.75,4.05l-0.25,6.84l14.07,20.51l2.76,0.76l0.25-16.71l2.76-2.53l-3.02-6.58l2.51-2.79l-5.53-7.34l-3.02,0.25l-1-12.15l7.79-2.03l0.5-3.55l4.02-1.01l2.26,2.03l2.76-11.14l4.77-8.1l3.77-2.03l3.27,0.25v-3.8l-5.28-1.01l-7.29-6.08l3.52-4.05l-3.02-6.84l2.51-2.53l3.02,4.05l7.54,2.79l8.29,0.76l1.01-3.54l-4.27-4.3l4.77-6.58l-10.81-3.8l-2.76,5.57l-3.52-4.56l-19.85-6.84l-18.85,3.29l-2.76,1.52v1.52l4.02,2.03l-0.5,4.81l-7.29-3.04l-16.08,6.33l-2.76-5.82h-11.06l-5.03,5.32l-17.84-4.05l-16.33,3.29l-2.01,5.06l2.51,0.76l-0.25,3.8l-15.83,1.77l1.01,5.06l-14.58-2.53l3.52-6.58l-14.83-0.76l1.26,6.84l-4.77,2.28l-4.02-3.8l-16.33,2.79l-6.28,5.82l-0.25,3.54l-4.02,0.25l-0.5-4.05l12.82-11.14v-7.6l-8.29-2.28l-10.81,3.54l-4.52-4.56h-2.01l-2.51,5.06l2.01,2.28l-14.33,7.85l-12.31,9.37l-7.54,10.38v4.3l8.04,3.29l-4.02,3.04l-8.54-3.04l-3.52,3.04l-5.28-6.08l-1.01,2.28l5.78,18.23l1.51,0.51l4.02-2.03l2.01,1.52v3.29l-3.77-1.52l-2.26,1.77l1.51,3.29l-1.26,8.61l-7.79,0.76l-0.5-2.79l4.52-2.79l1.01-7.6l-5.03-6.58l-1.76-11.39l-8.04-1.27l-0.75,4.05l1.51,2.03l-3.27,2.79l1.26,7.6l4.77,2.03l1.01,5.57l-4.78-3.04l-12.31-2.28l-1.51,4.05l-9.8,3.54l-1.51-2.53l-12.82,7.09l-0.25,4.81l-5.03,0.76l1.51-3.54v-3.54l-5.03-1.77l-3.27,1.27l2.76,5.32l2.01,3.54v2.79l-3.77-0.76l-0.75-0.76l-3.77,4.05l2.01,3.54l-8.54-0.25l2.76,3.55l-0.75,1.52h-4.52l-3.27-2.28l-0.75-6.33l-5.28-2.03v-2.53l11.06,2.28l6.03,0.51l2.51-3.8l-2.26-4.05l-16.08-6.33l-5.55,1.38l-1.9,1.63l0.59,3.75l2.36,0.41l-0.55,5.9l7.28,17.1l-5.26,8.34l-0.36,1.88l2.67,1.88l-2.41,1.59l-1.6,0.03l0.3,7.35l2.21,3.13l0.03,3.04l2.83,0.26l4.33,1.65l4.58,6.3l0.05,1.66l-1.49,2.55l3.42-0.19l3.33,0.96l4.5,6.37l11.08,1.01l-0.48,7.58l-3.82,3.27l0.79,1.28l-3.77,4.05l-1,3.8l2.26,3.29l7.29,2.53l3.02-1.77l19.35,7.34l0.75-2.03l-4.02-3.8v-4.81l-2.51-0.76l0.5-4.05l4.02-4.81l-7.21-5.4l0.5-7.51l7.71-5.07l9.05,0.51l1.51,2.79l9.3,0.51l6.79-3.8l-3.52-3.8l0.75-7.09l17.59-8.61l13.53,6.1l4.52-4.05l13.32,12.66l10.05-1.01l3.52,3.54l9.55,1.01l6.28-8.61l8.04,3.55l4.27,0.76l4.27-3.8l-3.77-2.53l3.27-5.06l9.3,3.04l2.01,4.05l4.02,0.25l2.51-1.77l6.79-0.25l0.75,1.77l7.79,0.51l5.28-5.57l10.81,1.27l3.27-1.27l1-6.08l-3.27-7.34l3.27-2.79h10.3l9.8,11.65l12.56,7.09h3.77l0.5-3.04l4.52-2.79l0.5,16.46l-4.02,0.25v4.05l2.26,2.79l-0.42,3.62l1.67,0.69l1.01-2.53l1.51,0.51l1,1.01l4.52-1.01l4.52-13.17l0.5-16.46l-5.78-13.17l-7.29-8.86l-3.52,0.51v2.79l-8.54-3.29l3.27-7.09l2.76-18.74l11.56-3.54l5.53-3.54h6.03L805.86,96l1.51,2.53l5.28-5.57l3.02,0.25l-0.5-3.29l-4.78-1.01l3.27-11.9L817.97,72.93L817.97,72.93z","name":"Russian Federation"},"us":{"path":"M69.17,53.35l3.46,6.47l2.22-0.5v-2.24L69.17,53.35L69.17,53.35M49.66,110.26l-0.17,3.01l2.16-0.5v-1.34L49.66,110.26L49.66,110.26M46.34,111.6l-4.32,2.18l0.67,2.34l1.66-1.34l3.32-1.51L46.34,111.6L46.34,111.6M28.39,114.44l-2.99-0.67l-0.5,1.34l0.33,2.51L28.39,114.44L28.39,114.44M22.07,114.28l-2.83-1.17l-1,1.84l1.83,1.84L22.07,114.28L22.07,114.28M12.27,111.6l-1.33-1.84l-1.33,0.5v2.51l1.5,1L12.27,111.6L12.27,111.6M1.47,99.71l1.66,1.17l-0.5,1.34H1.47V99.71L1.47,99.71M10,248.7l-0.14,2.33l2.04,1.37l1.22-1.09L10,248.7L10,248.7M15.29,252.13l-1.9,1.37l1.63,2.05l1.9-1.64L15.29,252.13L15.29,252.13M19.1,255.41l-1.63,2.19l0.54,1.37l2.31-1.09L19.1,255.41L19.1,255.41M21.81,259.65l-0.95,5.47l0.95,2.05l3.12-0.96l1.63-2.74l-3.4-3.15L21.81,259.65L21.81,259.65M271.05,281.06l-2.64-0.89l-2.12,1.33l1.06,1.24l3.61,0.53L271.05,281.06L271.05,281.06M93.11,44.89l-8.39,1.99l1.73,9.45l9.13,2.49l0.49,1.99L82.5,65.04l-7.65,12.68l2.71,13.43L82,94.13l3.46-3.23l0.99,1.99l-4.2,4.97l-16.29,7.46l-10.37,2.49l-0.25,3.73l23.94-6.96l9.87-2.74l9.13-11.19l10.12-6.71l-5.18,8.7l5.68,0.75l9.63-4.23l1.73,6.96l6.66,1.49l6.91,6.71l0.49,4.97l-0.99,1.24l1.23,4.72h1.73l0.25-7.96h1.97l0.49,19.64l4.94-4.23l-3.46-20.39h-5.18l-5.68-7.21l27.89-47.25l-27.64-21.63l-30.85,5.97l-1.23,9.45l6.66,3.98l-2.47,6.47L93.11,44.89L93.11,44.89M148.76,158.34l-1,4.02l-3.49-2.26h-1.74l-1,4.27l-12.21,27.36l3.24,23.84l3.99,2.01l0.75,6.53h8.22l7.97,6.02l15.69,1.51l1.74,8.03l2.49,1.76l3.49-3.51l2.74,1.25l2.49,11.54l4.23,2.76l3.49-6.53l10.71-7.78l6.97,3.26l5.98,0.5l0.25-3.76l12.45,0.25l2.49,2.76l0.5,6.27l-1.49,3.51l1.74,6.02h3.74l3.74-5.77l-1.49-2.76l-1.49-6.02l2.24-6.78l10.21-8.78l7.72-2.26l-1-7.28l10.71-11.55l10.71-1.76L272.8,199l10.46-6.02v-8.03l-1-0.5l-3.74,1.25l-0.5,4.92l-12.43,0.15l-9.74,6.47l-15.29,5l-2.44-2.99l6.94-10.5l-3.43-3.27l-2.33-4.44l-4.83-3.88l-5.25-0.44l-9.92-6.77L148.76,158.34L148.76,158.34z","name":"United States of America"},"mu":{"path":"M613.01,398.99l-1.52,1.99l0.3,2.15l3.2-2.61L613.01,398.99L613.01,398.99z","name":"Mauritius"},"re":{"path":"M607.38,402.37l-2.28,0.15l-0.15,1.99l1.52,0.31l2.28-1.07L607.38,402.37L607.38,402.37z","name":"Reunion"},"mg":{"path":"M592.3,372.92l-2.13,5.06l-3.65,6.44l-6.39,0.46l-2.74,3.22l0.46,9.82l-3.96,4.6l0.46,7.82l3.35,3.83l3.96-0.46l3.96-2.92l-0.91-4.6l9.13-15.8l-1.83-1.99l1.83-3.83l1.98,0.61l0.61-1.53l-1.83-7.82l-1.07-3.22L592.3,372.92L592.3,372.92z","name":"Madagascar"},"km":{"path":"M577.69,371.23l0.46,1.53l1.98,0.31l0.76-1.99L577.69,371.23L577.69,371.23M580.58,374.3l0.76,1.69h1.22l0.61-2.15L580.58,374.3L580.58,374.3z","name":"Comoros"},"sc":{"path":"M602.35,358.34l-0.61,1.23l1.67,1.38l1.22-1.38L602.35,358.34L602.35,358.34M610.88,349.14l-1.83,1.23l1.37,2.15h1.83L610.88,349.14L610.88,349.14M611.64,354.51l-1.22,1.38l0.91,1.38l1.67,0.31l0.15-2.92L611.64,354.51L611.64,354.51z","name":"Seychelles"},"mv":{"path":"M656.4,320.76l0.3,2.61l1.67,0.61l0.3-2.3L656.4,320.76L656.4,320.76M658.53,326.28l-0.15,3.22l1.22,0.61l1.07-2.15L658.53,326.28L658.53,326.28M658.84,332.57l-1.07,1.07l1.22,1.07l1.52-1.07L658.84,332.57L658.84,332.57z","name":"Maldives"},"pt":{"path":"M372.64,217.02l-1.36,1.37l2.44,1.37l0.27-1.91L372.64,217.02L372.64,217.02M379.97,216.2l-1.63,1.09l1.36,1.09l2.17-0.55L379.97,216.2L379.97,216.2M381.05,220.03l-0.81,2.19l1.08,1.37l1.36-1.09L381.05,220.03L381.05,220.03M387.56,224.4l-0.54,1.37l0.81,0.82l2.17-1.37L387.56,224.4L387.56,224.4M408.18,236.42l-1.08,1.37l1.08,1.37l1.63-0.82L408.18,236.42L408.18,236.42M430.93,211.24l-0.62,8.65l-1.77,1.6l0.18,0.98l1.24,2.05l-0.8,2.5l1.33,0.45l3.1-0.36l-0.18-2.5l2.03-11.59l-0.44-1.6L430.93,211.24L430.93,211.24z","name":"Portugal"},"es":{"path":"M415.62,253.73l-1.75,1.01l0.81,0.82L415.62,253.73L415.62,253.73M409.54,253.92l-2.17,0.55l1.08,1.64h1.63L409.54,253.92L409.54,253.92M404.38,252.28l-1.36,1.37l1.9,1.64l1.08-2.46L404.38,252.28L404.38,252.28M448.36,205h-12.74l-2.57-1.16l-1.24,0.09l-1.5,3.12l0.53,3.21l4.87,0.45l0.62,2.05l-2.12,11.95l0.09,2.14l3.45,1.87l3.98,0.27l7.96-1.96l3.89-4.9l0.09-4.99l6.9-6.24l0.35-2.76l-6.28-0.09L448.36,205L448.36,205M461.1,217.21l-1.59,0.54l0.35,1.43h2.3l0.97-1.07L461.1,217.21L461.1,217.21z","name":"Spain"},"cv":{"path":"M387.56,290.54l-1.9,1.09l1.36,1.09l1.63-0.82L387.56,290.54L387.56,290.54M392.23,292.74l-1.24,1.1l0.88,1.63l2.12-0.95L392.23,292.74L392.23,292.74M389.52,295.83l-1.59,0.95l1.71,2.29l1.35-0.71L389.52,295.83L389.52,295.83z","name":"Cape Verde"},"pf":{"path":"M27.25,402.68l-1.9-0.14l-0.14,1.78l1.49,0.96l1.77-1.09L27.25,402.68L27.25,402.68M33.77,404.6l-2.72,1.78l2.04,2.46l1.77-0.41l0.95-1.23L33.77,404.6L33.77,404.6z","name":"French Polynesia"},"kn":{"path":"M276.6,283.37l-1.5,0.62l0.53,1.33l1.76-1.15l-0.35-0.36L276.6,283.37L276.6,283.37z","name":"Saint Kitts and Nevis"},"ag":{"path":"M279.07,284.88l-0.88,1.87l1.06,1.42l1.32-1.15L279.07,284.88L279.07,284.88z","name":"Antigua and Barbuda"},"dm":{"path":"M282.07,290.03l-1.06,0.98l0.79,1.6l1.5-0.44L282.07,290.03L282.07,290.03z","name":"Dominica"},"lc":{"path":"M281.98,294.03l-0.71,1.51l1.15,1.24l1.5-0.8L281.98,294.03L281.98,294.03z","name":"Saint Lucia"},"bb":{"path":"M282.07,297.85l-1.23,0.89l0.97,1.78l1.59-0.89L282.07,297.85L282.07,297.85z","name":"Barbados"},"gd":{"path":"M280.57,301.31l-1.15,1.15l0.44,0.71h1.41l0.44-1.16L280.57,301.31L280.57,301.31z","name":"Grenada"},"tt":{"path":"M282.24,304.78l-1.06,0.98l-1.15,0.18v1.42l2.12,1.95l0.88-1.42l0.53-1.6l-0.18-1.33L282.24,304.78L282.24,304.78z","name":"Trinidad and Tobago"},"do":{"path":"M263.11,280.44l-5.29-3.46l-2.5-0.85l-0.84,6l0.88,1.69l1.15-1.33l3.35-0.89l2.91,0.62L263.11,280.44L263.11,280.44z","name":"Dominican Republic"},"ht":{"path":"M250.86,275.38l3.44,0.36l-0.41,4.22l-0.34,2.22l-4.01-0.22l-0.71,1.07l-1.23-0.09l-0.44-2.31l4.23-0.35l-0.26-2.4l-1.94-0.8L250.86,275.38L250.86,275.38z","name":"Haiti"},"fk":{"path":"M307.95,508.18l-2.63-0.29l-2.62,1.76l1.9,2.06L307.95,508.18L307.95,508.18M310.57,506.86l-0.87,2.79l-2.48,2.2l0.15,0.73l4.23-1.62l1.75-2.2L310.57,506.86L310.57,506.86z","name":"Falkland Islands"},"is":{"path":"M406.36,117.31l-1.96-1.11l-2.64,1.67l-2.27,2.1l0.06,1.17l2.94,0.37l-0.18,2.1l-1.04,1.05l0.25,0.68l2.94,0.19v3.4l4.23,0.74l2.51,1.42l2.82,0.12l4.84-2.41l3.74-4.94l0.06-3.34l-2.27-1.92l-1.9-1.61l-0.86,0.62l-1.29,1.67l-1.47-0.19l-1.47-1.61l-1.9,0.18l-2.76,2.29l-1.66,1.79l-0.92-0.8l-0.06-1.98l0.92-0.62L406.36,117.31L406.36,117.31z","name":"Iceland"},"no":{"path":"M488.26,53.96l-1.65-1.66l-3.66,1.78h-6.72L475.17,58l3.77,3.33l1.65-0.24l2.36-4.04l2,1.43l-1.42,2.85l-0.71,4.16l1.65,2.61l3.54-5.94l4.6-5.59l-1.77-1.54L488.26,53.96L488.26,53.96M490.26,46.83l-2.95,2.73l1.77,2.73h3.18l1.3,1.78l3.89,2.02l4.48-2.61l3.07-2.61l-1.06-2.14l-3.07-1.78l-2.24,2.02l-1.53-1.9l-1.18,0.12l-1.53,3.33l-2.24-2.26l-0.24-1.54L490.26,46.83L490.26,46.83M496.98,59.07l-2.36,2.14l-2,1.54l0.94,1.66l1.89,0.59l3.07-1.43l1.42-1.78l-1.3-2.14L496.98,59.07L496.98,59.07M515.46,102.14l2.02-1.48L517.3,99l-1.28-0.74l0.18-2.03h1.1v-1.11l-4.77-1.29l-7.15,0.74l-0.73,3.14L503,97.16l-1.1-1.85l-3.49,0.18L498.04,99l-1.65,0.74l-0.92-1.85l-7.34,5.91l1.47,1.66l-2.75,1.29l-6.24,12.38l-2.2,1.48l0.18,1.11l2.2,1.11l-0.55,2.4l-3.67-0.19l-1.1-1.29l-2.38,2.77l-1.47,1.11l-0.37,2.59l-1.28,0.74l-3.3,0.74l-1.65,5.18l1.1,8.5l1.28,3.88l1.47,1.48l3.3-0.18l4.77-4.62l1.83-3.14l0.55,4.62l3.12-5.54l0.18-15.53l2.54-1.6l0.76-8.57l7.7-11.09l3.67-1.29l1.65-2.03l5.5,1.29l2.75,1.66l0.92-4.62l4.59-2.77L515.46,102.14L515.46,102.14z","name":"Norway"},"lk":{"path":"M680.54,308.05l0.25,2.72l0.25,1.98l-1.47,0.25l0.74,4.45l2.21,1.24l3.43-1.98l-0.98-4.69l0.25-1.73l-3.19-2.96L680.54,308.05L680.54,308.05z","name":"Sri Lanka"},"cu":{"path":"M220.85,266.92v1.27l5.32,0.1l2.51-1.46l0.39,1.07l5.22,1.27l4.64,4.19l-1.06,1.46l0.19,1.66l3.87,0.97l3.87-1.75l1.74-1.75l-2.51-1.27l-12.95-7.6l-4.54-0.49L220.85,266.92L220.85,266.92z","name":"Cuba"},"bs":{"path":"M239.61,259.13l-1.26-0.39l-0.1,2.43l1.55,1.56l1.06-1.56L239.61,259.13L239.61,259.13M242.12,262.93l-1.74,0.97l1.64,2.34l0.87-1.17L242.12,262.93L242.12,262.93M247.73,264.68l-1.84-0.1l0.19,1.17l1.35,1.95l1.16-1.27L247.73,264.68L247.73,264.68M246.86,262.35l-3-1.27l-0.58-3.02l1.16-0.49l1.16,2.34l1.16,0.88L246.86,262.35L246.86,262.35M243.96,256.21l-1.55-0.39l-0.29-1.95l-1.64-0.58l1.06-1.07l1.93,0.68l1.45,0.88L243.96,256.21L243.96,256.21z","name":"Bahamas"},"jm":{"path":"M238.93,279.59l-3.48,0.88v0.97l2.03,1.17h2.13l1.35-1.56L238.93,279.59L238.93,279.59z","name":"Jamaica"},"ec":{"path":"M230.2,335.85l-4.73,2.94l-0.34,4.36l-0.95,1.43l2.98,2.86l-1.29,1.41l0.3,3.6l5.33,1.27l8.07-9.55l-0.02-3.33l-3.87-0.25L230.2,335.85L230.2,335.85z","name":"Ecuador"},"ca":{"path":"M203.73,35.89l0.22,4.02l-7.98,8.27l2,6.7l5.76-1.56l3.33-4.92l8.42-3.13l6.87-0.45l-5.32-5.81l-2.66,2.01l-2-0.67l-1.11-2.46l-2.44-2.46L203.73,35.89L203.73,35.89M214.15,24.05l-1.77,3.13l8.65,3.13l3.1-4.69l1.33,3.13h2.22l4.21-4.69l-5.1-1.34l-2-1.56l-2.66,2.68L214.15,24.05L214.15,24.05M229.23,30.31l-6.87,2.9v2.23l8.87,3.35l-2,2.23l1.33,2.9l5.54-2.46h4.66l2.22,3.57l3.77-3.8l-0.89-3.58l-3.1,1.12l-0.44-4.47l1.55-2.68h-1.55l-2.44,1.56l-1.11,0.89l0.67,3.13l-1.77,1.34l-2.66-0.22l-0.67-4.02L229.23,30.31L229.23,30.31M238.32,23.38l-0.67,2.23l4.21,2.01l3.1-1.79l-0.22-1.34L238.32,23.38L238.32,23.38M241.64,19.58l-3.1,1.12l0.22,1.56l6.87-0.45l-0.22-1.56L241.64,19.58L241.64,19.58M256.5,23.38l-0.44,1.56l-1.11,1.56v2.23l4.21-0.67l4.43,3.8h1.55v-3.8l-4.43-4.92L256.5,23.38L256.5,23.38M267.81,27.85l1.77,2.01l-1.55,2.68l1.11,2.9l4.88-2.68v-2.01l-2.88-3.35L267.81,27.85L267.81,27.85M274.24,22.71l0.22,3.57h5.99l1.55,1.34l-0.22,1.56l-5.32,0.67l3.77,5.14l5.1,0.89l7.09-3.13l-10.2-15.42l-3.1,2.01l0.22,2.68l-3.55-1.34L274.24,22.71L274.24,22.71M222.58,47.96l-8.42,2.23l-4.88,4.25l0.44,4.69l8.87,2.68l-2,4.47l-6.43-4.02l-1.77,3.35l4.21,2.9l-0.22,4.69l6.43,1.79l7.76-0.45l1.33-2.46l5.76,6.48l3.99-1.34l0.67-4.47l2.88,2.01l0.44-4.47l-3.55-2.23l0.22-14.07l-3.1-2.46L231.89,56L222.58,47.96L222.58,47.96M249.63,57.79l-2.88-1.34l-1.55,2.01l3.1,4.92l0.22,4.69l6.65-4.02v-5.81l2.44-2.46l-2.44-1.79h-3.99L249.63,57.79L249.63,57.79M263.82,55.78l-4.66,3.8l1.11,4.69h2.88l1.33-2.46l2,2.01l2-0.22l5.32-4.47L263.82,55.78L263.82,55.78M263.37,48.4l-1.11,2.23l4.88,1.79l1.33-2.01L263.37,48.4L263.37,48.4M260.49,39.91l-4.88,0.67l-2.88,2.68l5.32,0.22l-1.55,4.02l1.11,1.79l1.55-0.22l3.77-6.03L260.49,39.91L260.49,39.91M268.92,38.35l-2.66,0.89l0.44,3.57l4.43,2.9l0.22,2.23l-1.33,1.34l0.67,4.47l17.07,5.58l4.66,1.56l4.66-4.02l-5.54-4.47l-5.1,1.34l-7.09-0.67l-2.66-2.68l-0.67-7.37l-4.43-2.23L268.92,38.35L268.92,38.35M282.88,61.59L278,61.14l-5.76,2.23l-3.1,4.24l0.89,11.62l9.53,0.45l9.09,4.47l6.43,7.37l4.88-0.22l-1.33,6.92l-4.43,7.37l-4.88,2.23l-3.55-0.67l-1.77-1.56l-2.66,3.57l1.11,3.57l3.77,0.22l4.66-2.23l3.99,10.28l9.98,6.48l6.87-8.71l-5.76-9.38l3.33-3.8l4.66,7.82l8.42-7.37l-1.55-3.35l-5.76,1.79l-3.99-10.95l3.77-6.25l-7.54-8.04l-4.21,2.9l-3.99-8.71l-8.42,1.12l-2.22-10.5l-6.87,4.69l-0.67,5.81h-3.77l0.44-5.14L282.88,61.59L282.88,61.59M292.86,65.61l-1.77,1.79l1.55,2.46l7.32,0.89l-4.66-4.92L292.86,65.61L292.86,65.61M285.77,40.36v2.01l-4.88,1.12l1.33,2.23l5.54,2.23l6.21,0.67l4.43,3.13l4.43-2.46l-3.1-3.13h3.99l2.44-2.68l5.99-0.89v-1.34l-3.33-2.23l0.44-2.46l9.31,1.56l13.75-5.36l-5.1-1.56l1.33-1.79h10.64l1.77-1.79l-21.51-7.6l-5.1-1.79l-5.54,4.02l-6.21-5.14l-3.33-0.22l-0.67,4.25l-4.21-3.8l-4.88,1.56l0.89,2.46l7.32,1.56l-0.44,3.57l3.99,2.46l9.76-2.46l0.22,3.35l-7.98,3.8l-4.88-3.8l-4.43,0.45l4.43,6.26l-2.22,1.12l-3.33-2.9l-2.44,1.56l2.22,4.24h3.77l-0.89,4.02l-3.1-0.45l-3.99-4.25L285.77,40.36L285.77,40.36M266.01,101.85l-4.23,5.32l-0.26,5.86l3.7-2.13h4.49l3.17,2.93l2.91-2.4L266.01,101.85L266.01,101.85M317.52,171.05l-10.57,10.12l1.06,2.4l12.94,4.79l1.85-3.19l-1.06-5.32l-4.23,0.53l-2.38-2.66l3.96-3.99L317.52,171.05L317.52,171.05M158.22,48.66l1.99,3.01l1,4.02l4.98,1.25l3.49-3.76l2.99,1.51l8.47,0.75l5.98-2.51l1,8.28h3.49V57.7l3.49,0.25l8.72,10.29l5.73,3.51l-2.99,4.77l1.25,1.25L219,80.03l0.25,5.02l2.99,0.5l0.75-7.53l4.73-1.25l3.49,5.27l7.47,3.51l3.74,0.75l2.49-3.01l0.25-4.77l4.48-2.76l1.49,4.02l-3.99,7.03l0.5,3.51l2.24-3.51l4.48-4.02l0.25-5.27l-2.49-4.02l0.75-3.26l5.98-3.01l2.74,2.01l0.5,17.57l4.23-3.76l2.49,1.51l-3.49,6.02l4.48,1l6.48-10.04l5.48,5.77l-2.24,10.29l-5.48,3.01l-5.23-2.51l-9.46,2.01l1,3.26l-2.49,4.02l-7.72,1.76l-8.72,6.78l-7.72,10.29l-1,3.26l5.23,2.01l1.99,5.02l7.22,7.28l11.46,5.02l-2.49,11.54l-0.25,3.26l2.99,2.01l3.99-5.27l0.5-10.04l6.23-0.25l2.99-5.77l0.5-8.78l7.97-15.56l9.96,3.51l5.23,7.28l-2.24,7.28l3.99,2.26l9.71-6.53l2.74,17.82l8.97,10.79l0.25,5.52l-9.96,2.51l-4.73,5.02l-9.96-2.26l-4.98-0.25l-8.72,6.78l5.23-1.25l6.48-1.25l1.25,1.51l-1.74,5.52l0.25,5.02l2.99,2.01l2.99-0.75l1.5-2.26h1.99l-3.24,6.02l-6.23,0.25l-2.74,4.02h-3.49l-1-3.01l4.98-5.02l-5.98,2.01l-0.27-8.53l-1.72-1l-5.23,2.26l-0.5,4.27h-11.96l-10.21,7.03l-13.7,4.52l-1.49-2.01l6.9-10.3l-3.92-3.77l-2.49-4.78l-5.07-3.87l-5.44-0.45l-9.75-6.83l-70.71-11.62l-1.17-4.79l-6.48-6.02v-5.02l1-4.52l-0.5-2.51l-2.49-2.51l-0.5-4.02l6.48-4.52l-3.99-21.58l-5.48-0.25l-4.98-6.53L158.22,48.66L158.22,48.66M133.83,128.41l-1.7,3.26l0.59,2.31l1.11,0.69l-0.26,0.94l-1.19,0.34l0.34,3.43l1.28,1.29l1.02-1.11l-1.28-3.34l0.76-2.66l1.87-2.49l-1.36-2.31L133.83,128.41L133.83,128.41M139.45,147.95l-1.53,0.6l2.81,3.26l0.68,3.86l2.81,3l2.38-0.43v-3.94l-2.89-1.8L139.45,147.95L139.45,147.95z","name":"Canada"},"gt":{"path":"M194.88,291.52l5.93,4.34l5.98-7.43l-1.02-1.54l-2.04-0.07v-4.35l-1.53-0.93l-4.63,1.38l1.77,4.08L194.88,291.52L194.88,291.52z","name":"Guatemala"},"hn":{"path":"M207.55,288.78l9.24-0.35l2.74,3.26l-1.71-0.39l-3.29,0.14l-4.3,4.04l-1.84,4.09l-1.21-0.64l-0.01-4.48l-2.66-1.78L207.55,288.78L207.55,288.78z","name":"Honduras"},"sv":{"path":"M201.65,296.27l4.7,2.34l-0.07-3.71l-2.41-1.47L201.65,296.27L201.65,296.27z","name":"El Salvador"},"ni":{"path":"M217.74,292.11l2.19,0.44l0.07,4.49l-2.55,7.28l-6.87-0.68l-1.53-3.51l2.04-4.26l3.87-3.6L217.74,292.11L217.74,292.11z","name":"Nicaragua"},"cr":{"path":"M217.38,304.98l1.39,2.72l1.13,1.5l-1.52,4.51l-2.9-2.04l-4.74-4.34v-2.87L217.38,304.98L217.38,304.98z","name":"Costa Rica"},"pa":{"path":"M220.59,309.61l-1.46,4.56l4.82,1.25l2.99,0.59l0.51-3.53l3.21-1.62l2.85,1.47l1.12,1.79l1.36-0.16l1.07-3.25l-3.56-1.47l-2.7-1.47l-2.7,1.84l-3.21,1.62l-3.28-1.32L220.59,309.61L220.59,309.61z","name":"Panama"},"co":{"path":"M253.73,299.78l-2.06-0.21l-13.62,11.23l-1.44,3.95l-1.86,0.21l0.83,8.73l-4.75,11.65l5.16,4.37l6.61,0.42l4.54,6.66l6.6,0.21l-0.21,4.99H256l2.68-9.15l-2.48-3.12l0.62-5.82l5.16-0.42l-0.62-13.52l-11.56-3.74l-2.68-7.28L253.73,299.78L253.73,299.78z","name":"Colombia"},"ve":{"path":"M250.46,305.92l0.44,2.59l3.25,1.03l0.74-4.77l3.43-3.55l3.43,4.02l7.89,2.15l6.68-1.4l4.55,5.61l3.43,2.15l-3.76,5.73l1.26,4.34l-2.15,2.66l-2.23,1.87l-4.83-2.43l-1.11,1.12v3.46l3.53,1.68l-2.6,2.81l-2.6,2.81l-3.43-0.28l-3.45-3.79l-0.73-14.26l-11.78-4.02l-2.14-6.27L250.46,305.92L250.46,305.92z","name":"Venezuela"},"gy":{"path":"M285.05,314.13l7.22,6.54l-2.87,3.32l-0.23,1.97l3.77,3.89l-0.09,3.74l-6.56,2.5l-3.93-5.31l0.84-6.38l-1.68-4.75L285.05,314.13L285.05,314.13z","name":"Guyana"},"sr":{"path":"M293.13,321.14l2.04,1.87l3.16-1.96l2.88,0.09l-0.37,1.12l-1.21,2.52l-0.19,6.27l-5.75,2.34l0.28-4.02l-3.71-3.46l0.19-1.78L293.13,321.14L293.13,321.14z","name":"Suriname"},"gf":{"path":"M302.13,321.8l5.85,3.65l-3.06,6.08l-1.11,1.4l-3.25-1.87l0.09-6.55L302.13,321.8L302.13,321.8z","name":"French Guiana"},"pe":{"path":"M225.03,349.52l-1.94,1.96l0.13,3.13l16.94,30.88l17.59,11.34l2.72-4.56l0.65-10.03l-1.42-6.25l-4.79-8.08l-2.85,0.91l-1.29,1.43l-5.69-6.52l1.42-7.69l6.6-4.3l-0.52-4.04l-6.72-0.26l-3.49-5.86l-1.94-0.65l0.13,3.52l-8.66,10.29l-6.47-1.56L225.03,349.52L225.03,349.52z","name":"Peru"},"bo":{"path":"M258.71,372.79l8.23-3.59l2.72,0.26l1.81,7.56l12.54,4.17l2.07,6.39l5.17,0.65l2.2,5.47l-1.55,4.95l-8.41,0.65l-3.1,7.95l-6.6-0.13l-2.07-0.39l-3.81,3.7l-1.88-0.18l-6.47-14.99l1.79-2.68l0.63-10.6l-1.6-6.31L258.71,372.79L258.71,372.79z","name":"Bolivia"},"py":{"path":"M291.76,399.51l2.2,2.4l-0.26,5.08l6.34-0.39l4.79,6.13l-0.39,5.47l-3.1,4.69l-6.34,0.26l-0.26-2.61l1.81-4.3l-6.21-3.91h-5.17l-3.88-4.17l2.82-8.06L291.76,399.51L291.76,399.51z","name":"Paraguay"},"uy":{"path":"M300.36,431.93l-2.05,2.19l0.85,11.78l6.44,1.87l8.19-8.21L300.36,431.93L300.36,431.93z","name":"Uruguay"},"ar":{"path":"M305.47,418.2l1.94,1.82l-7.37,10.95l-2.59,2.87l0.9,12.51l5.69,6.91l-4.78,8.34l-3.62,1.56h-4.14l1.16,6.51l-6.47,2.22l1.55,5.47l-3.88,12.38l4.79,3.91l-2.59,6.38l-4.4,6.91l2.33,4.82l-5.69,0.91l-4.66-5.73l-0.78-17.85l-7.24-30.32l2.19-10.6l-4.66-13.55l3.1-17.59l2.85-3.39l-0.7-2.57l3.66-3.34l8.16,0.56l4.56,4.87l5.27,0.09l5.4,3.3l-1.59,3.72l0.38,3.76l7.65-0.36L305.47,418.2L305.47,418.2M288.92,518.79l0.26,5.73l4.4-0.39l3.75-2.48l-6.34-1.3L288.92,518.79L288.92,518.79z","name":"Argentina"},"cl":{"path":"M285.04,514.1l-4.27,9.38l7.37,0.78l0.13-6.25L285.04,514.1L285.04,514.1M283.59,512.63l-3.21,3.55l-0.39,4.17l-6.21-3.52l-6.6-9.51l-1.94-3.39l2.72-3.52l-0.26-4.43l-3.1-1.3l-2.46-1.82l0.52-2.48l3.23-0.91l0.65-14.33l-5.04-2.87l-3.29-74.59l0.85-1.48l6.44,14.85l2.06,0.04l0.67,2.37l-2.74,3.32l-3.15,17.87l4.48,13.76l-2.07,10.42l7.3,30.64l0.77,17.92l5.23,6.05L283.59,512.63L283.59,512.63M262.28,475.14l-1.29,1.95l0.65,3.39l1.29,0.13l0.65-4.3L262.28,475.14L262.28,475.14z","name":"Chile"},"br":{"path":"M314.24,438.85l6.25-12.02l0.23-10.1l11.66-7.52h6.53l5.13-8.69l0.93-16.68l-2.1-4.46l12.36-11.28l0.47-12.45l-16.79-8.22l-20.28-6.34l-9.56-0.94l2.57-5.4l-0.7-8.22l-2.09-0.69l-3.09,6.14l-1.62,2.03l-4.16-1.84l-13.99,4.93l-4.66-5.87l0.75-6.13l-4.4,4.48l-4.86-2.62l-0.49,0.69l0.01,2.13l4.19,2.25l-6.29,6.63l-3.97-0.04l-4.02-4.09l-4.55,0.14l-0.56,4.86l2.61,3.17l-3.08,9.87l-3.6,0.28l-5.73,3.62l-1.4,7.11l4.97,5.32l0.91-1.03l3.49-0.94l2.98,5.02l8.53-3.66l3.31,0.19l2.28,8.07l12.17,3.86l2.1,6.44l5.18,0.62l2.47,6.15l-1.67,5.47l2.18,2.86l-0.32,4.26l5.84-0.55l5.35,6.76l-0.42,4.75l3.17,2.68l-7.6,11.51L314.24,438.85L314.24,438.85z","name":"Brazil"},"bz":{"path":"M204.56,282.4l-0.05,3.65h0.84l2.86-5.34h-1.94L204.56,282.4L204.56,282.4z","name":"Belize"},"mn":{"path":"M673.8,170.17l5.82-7.72l6.99,3.23l4.75,1.27l5.82-5.34l-3.95-2.91l2.6-3.67l7.76,2.74l2.69,4.41l4.86,0.13l2.54-1.89l5.23-0.21l1.14,1.94l8.69,0.44l5.5-5.61l7.61,0.8l-0.44,7.64l3.33,0.76l4.09-1.86l4.33,2.14l-0.1,1.08l-3.14,0.09l-3.27,6.86l-2.54,0.25l-9.88,12.91l-10.09,4.45l-6.31,0.49l-5.24-3.38l-6.7,3.58l-6.6-2.05l-1.87-4.79l-12.5-0.88l-6.4-10.85l-3.11-0.2L673.8,170.17L673.8,170.17z","name":"Mongolia"},"kp":{"path":"M778.28,194.27l1.84,0.77l0.56,6.44l3.65,0.21l3.44-4.03l-1.19-1.06l0.14-4.32l3.16-3.82l-1.61-2.9l1.05-1.2l0.58-3l-1.83-0.83l-1.56,0.79l-1.93,5.86l-3.12-0.27l-3.61,4.26L778.28,194.27L778.28,194.27z","name":"North Korea"},"kr":{"path":"M788.34,198.2l6.18,5.04l1.05,4.88l-0.21,2.62l-3.02,3.4l-2.6,0.14l-2.95-6.37l-1.12-3.04l1.19-0.92l-0.28-1.27l-1.47-0.66L788.34,198.2L788.34,198.2z","name":"South Korea"},"kz":{"path":"M576.69,188.62l4.1-1.75l4.58-0.16l0.32,7h-2.68l-2.05,3.34l2.68,4.45l3.95,2.23l0.36,2.55l1.45-0.48l1.34-1.59l2.21,0.48l1.11,2.23h2.84v-2.86l-1.74-5.09l-0.79-4.13l5.05-2.23l6.79,1.11l4.26,4.29l9.63-0.95l5.37,7.63l6.31,0.32l1.74-2.86l2.21-0.48l0.32-3.18l3.31-0.16l1.74,2.07l1.74-4.13l14.99,2.07l2.52-3.34l-4.26-5.25l5.68-12.4l4.58,0.32l3.16-7.63l-6.31-0.64l-3.63-3.5l-10,1.16l-12.88-12.45l-4.54,4.03l-13.77-6.25l-16.89,8.27l-0.47,5.88l3.95,4.61l-7.7,4.35l-9.99-0.22l-2.09-3.07l-7.83-0.43l-7.42,4.77l-0.16,6.52L576.69,188.62L576.69,188.62z","name":"Kazakhstan"},"tm":{"path":"M593.85,207.59l-0.62,2.63h-4.15v3.56l4.46,2.94l-1.38,4.03v1.86l1.85,0.31l2.46-3.25l5.54-1.24l11.84,4.49l0.15,3.25l6.61,0.62l7.38-7.75l-0.92-2.48l-4.92-1.08l-13.84-8.99l-0.62-3.25h-5.23l-2.31,4.34h-2.31L593.85,207.59L593.85,207.59z","name":"Turkmenistan"},"uz":{"path":"M628.92,219.06l3.08,0.16v-5.27l-2.92-1.7l4.92-6.2h2l2,2.33l5.23-2.01l-7.23-2.48l-0.28-1.5l-1.72,0.42l-1.69,2.94l-7.29-0.24l-5.35-7.57l-9.4,0.93l-4.48-4.44l-6.2-1.05l-4.5,1.83l2.61,8.68l0.03,2.92l1.9,0.04l2.33-4.44l6.2,0.08l0.92,3.41l13.29,8.82l5.14,1.18L628.92,219.06L628.92,219.06z","name":"Uzbekistan"},"tj":{"path":"M630.19,211.84l4.11-5.1h1.55l0.54,1.14l-1.9,1.38v1.14l1.25,0.9l6.01,0.36l1.96-0.84l0.89,0.18l0.6,1.92l3.57,0.36l1.79,3.78l-0.54,1.14l-0.71,0.06l-0.71-1.44l-1.55-0.12l-2.68,0.36l-0.18,2.52l-2.68-0.18l0.12-3.18l-1.96-1.92l-2.98,2.46l0.06,1.62l-2.62,0.9h-1.55l0.12-5.58L630.19,211.84L630.19,211.84z","name":"Tajikistan"},"kg":{"path":"M636.81,199.21l-0.31,2.53l0.25,1.56l8.7,2.92l-7.64,3.08l-0.87-0.72l-1.65,1.06l0.08,0.58l0.88,0.4l5.36,0.14l2.72-0.82l3.49-4.4l4.37,0.76l5.27-7.3l-14.1-1.92l-1.95,4.73l-2.46-2.64L636.81,199.21L636.81,199.21z","name":"Kyrgyz Republic"},"af":{"path":"M614.12,227.05l1.59,12.46l3.96,0.87l0.37,2.24l-2.84,2.37l5.29,4.27l10.28-3.7l0.82-4.38l6.47-4.04l2.48-9.36l1.85-1.99l-1.92-3.34l6.26-3.87l-0.8-1.12l-2.89,0.18l-0.26,2.66l-3.88-0.04l-0.07-3.55l-1.25-1.49l-2.1,1.91l0.06,1.75l-3.17,1.2l-5.85-0.37l-7.6,7.96L614.12,227.05L614.12,227.05z","name":"Afghanistan"},"pk":{"path":"M623.13,249.84l2.6,3.86l-0.25,1.99l-3.46,1.37l-0.25,3.24h3.96l1.36-1.12h7.54l6.8,5.98l0.87-2.87h5.07l0.12-3.61l-5.19-4.98l1.11-2.74l5.32-0.37l7.17-14.95l-3.96-3.11l-1.48-5.23l9.64-0.87l-5.69-8.1l-3.03-0.82l-1.24,1.5l-0.93,0.07l-5.69,3.61l1.86,3.12l-2.1,2.24l-2.6,9.59l-6.43,4.11l-0.87,4.49L623.13,249.84L623.13,249.84z","name":"Pakistan"},"in":{"path":"M670.98,313.01l4.58-2.24l2.72-9.84l-0.12-12.08l15.58-16.82v-3.99l3.21-1.25l-0.12-4.61l-3.46-6.73l1.98-3.61l4.33,3.99l5.56,0.25v2.24l-1.73,1.87l0.37,1l2.97,0.12l0.62,3.36h0.87l2.23-3.99l1.11-10.46l3.71-2.62l0.12-3.61l-1.48-2.87l-2.35-0.12l-9.2,6.08l0.58,3.91l-6.46-0.02l-2.28-2.79l-1.24,0.16l0.42,3.88l-13.97-1l-8.66-3.86l-0.46-4.75l-5.77-3.58l-0.07-7.37l-3.96-4.53l-9.1,0.87l0.99,3.96l4.46,3.61l-7.71,15.78l-5.16,0.39l-0.85,1.9l5.08,4.7l-0.25,4.75l-5.19-0.08l-0.56,2.36l4.31-0.19l0.12,1.87l-3.09,1.62l1.98,3.74l3.83,1.25l2.35-1.74l1.11-3.11l1.36-0.62l1.61,1.62l-0.49,3.99l-1.11,1.87l0.25,3.24L670.98,313.01L670.98,313.01z","name":"India"},"np":{"path":"M671.19,242.56l0.46,4.27l8.08,3.66l12.95,0.96l-0.49-3.13l-8.65-2.38l-7.34-4.37L671.19,242.56L671.19,242.56z","name":"Nepal"},"bt":{"path":"M695.4,248.08l1.55,2.12l5.24,0.04l-0.53-2.9L695.4,248.08L695.4,248.08z","name":"Bhutan"},"bd":{"path":"M695.57,253.11l-1.31,2.37l3.4,6.46l0.1,5.04l0.62,1.35l3.99,0.07l2.26-2.17l1.64,0.99l0.33,3.07l1.31-0.82l0.08-3.92l-1.1-0.13l-0.69-3.33l-2.78-0.1l-0.69-1.85l1.7-2.27l0.03-1.12h-4.94L695.57,253.11L695.57,253.11z","name":"Bangladesh"},"mm":{"path":"M729.44,303.65l-2.77-4.44l2.01-2.82l-1.9-3.49l-1.79-0.34l-0.34-5.86l-2.68-5.19l-0.78,1.24l-1.79,3.04l-2.24,0.34l-1.12-1.47l-0.56-3.95l-1.68-3.16l-6.84-6.45l1.68-1.11l0.31-4.67l2.5-4.2l1.08-10.45l3.62-2.47l0.12-3.81l2.17,0.72l3.42,4.95l-2.54,5.44l1.71,4.27l4.23,1.66l0.77,4.65l5.68,0.88l-1.57,2.71l-7.16,2.82l-0.78,4.62l5.26,6.76l0.22,3.61l-1.23,1.24l0.11,1.13l3.92,5.75l0.11,5.97L729.44,303.65L729.44,303.65z","name":"Myanmar"},"th":{"path":"M730.03,270.47l3.24,4.17v5.07l1.12,0.56l5.15-2.48l1.01,0.34l6.15,7.1l-0.22,4.85l-2.01-0.34l-1.79-1.13l-1.34,0.11l-2.35,3.94l0.45,2.14l1.9,1.01l-0.11,2.37l-1.34,0.68l-4.59-3.16v-2.82l-1.9-0.11l-0.78,1.24l-0.4,12.62l2.97,5.42l5.26,5.07l-0.22,1.47l-2.8-0.11l-2.57-3.83h-2.69l-3.36-2.71l-1.01-2.82l1.45-2.37l0.5-2.14l1.58-2.8l-0.07-6.44l-3.86-5.58l-0.16-0.68l1.25-1.26l-0.29-4.43l-5.14-6.51l0.6-3.75L730.03,270.47L730.03,270.47z","name":"Thailand"},"kh":{"path":"M740.48,299.47l4.09,4.37l7.61-5.64l0.67-8.9l-3.93,2.71l-2.04-1.14l-2.77-0.37l-1.55-1.09l-0.75,0.04l-2.03,3.33l0.33,1.54l2.06,1.15l-0.25,3.13L740.48,299.47L740.48,299.47z","name":"Cambodia"},"la":{"path":"M735.47,262.93l-2.42,1.23l-2.01,5.86l3.36,4.28l-0.56,4.73l0.56,0.23l5.59-2.71l7.5,8.38l-0.18,5.28l1.63,0.88l4.03-3.27l-0.33-2.59l-11.63-11.05l0.11-1.69l1.45-1.01l-1.01-2.82l-4.81-0.79L735.47,262.93L735.47,262.93z","name":"Lao People's Democratic Republic"},"vn":{"path":"M745.06,304.45l1.19,1.87l0.22,2.14l3.13,0.34l3.8-5.07l3.58-1.01l1.9-5.18l-0.89-8.34l-3.69-5.07l-3.89-3.11l-4.95-8.5l3.55-5.94l-5.08-5.83l-4.07-0.18l-3.66,1.97l1.09,4.71l4.88,0.86l1.31,3.63l-1.72,1.12l0.11,0.9l11.45,11.2l0.45,3.29l-0.69,10.4L745.06,304.45L745.06,304.45z","name":"Vietnam"},"ge":{"path":"M555.46,204.16l3.27,4.27l4.08,1.88l2.51-0.01l4.31-1.17l1.08-1.69l-12.75-4.77L555.46,204.16L555.46,204.16z","name":"Georgia"},"am":{"path":"M569.72,209.89l4.8,6.26l-1.41,1.65l-3.4-0.59l-4.22-3.78l0.23-2.48L569.72,209.89L569.72,209.89z","name":"Armenia"},"az":{"path":"M571.41,207.72l-1.01,1.72l4.71,6.18l1.64-0.53l2.7,2.83l1.17-4.96l2.93,0.47l-0.12-1.42l-4.82-4.22l-0.92,2.48L571.41,207.72L571.41,207.72z","name":"Azerbaijan"},"ir":{"path":"M569.65,217.95l-1.22,1.27l0.12,2.01l1.52,2.13l5.39,5.9l-0.82,2.36h-0.94l-0.47,2.36l3.05,3.9l2.81,0.24l5.63,7.79l3.16,0.24l2.46,1.77l0.12,3.54l9.73,5.67h3.63l2.23-1.89l2.81-0.12l1.64,3.78l10.51,1.46l0.31-3.86l3.48-1.26l0.16-1.38l-2.77-3.78l-6.17-4.96l3.24-2.95l-0.23-1.3l-4.06-0.63l-1.72-13.7l-0.2-3.15l-11.01-4.21l-4.88,1.1l-2.73,3.35l-2.42-0.16l-0.7,0.59l-5.39-0.35l-6.8-4.96l-2.53-2.77l-1.16,0.28l-2.09,2.39L569.65,217.95L569.65,217.95z","name":"Iran"},"tr":{"path":"M558.7,209.19l-2.23,2.36l-8.2-0.24l-4.92-2.95l-4.8-0.12l-5.51,3.9l-5.16,0.24l-0.47,2.95h-5.86l-2.34,2.13v1.18l1.41,1.18v1.3l-0.59,1.54l0.59,1.3l1.88-0.94l1.88,2.01l-0.47,1.42l-0.7,0.95l1.05,1.18l5.16,1.06l3.63-1.54v-2.24l1.76,0.35l4.22,2.48l4.57-0.71l1.99-1.89l1.29,0.47v2.13h1.76l1.52-2.95l13.36-1.42l5.83-0.71l-1.54-2.02l-0.03-2.73l1.17-1.4l-4.26-3.42l0.23-2.95h-2.34L558.7,209.19L558.7,209.19M523.02,209.7l-0.16,3.55l3.1-0.95l1.42-0.95l-0.42-1.54l-1.47-1.17L523.02,209.7L523.02,209.7z","name":"Turkey"},"om":{"path":"M598.38,280.84l7.39-4.26l1.31-6.25l-1.62-0.93l0.67-6.7l1.41-0.82l1.51,2.37l8.99,4.7v2.61l-10.89,16.03l-5.01,0.17L598.38,280.84L598.38,280.84z","name":"Oman"},"ae":{"path":"M594.01,264.94l0.87,3.48l9.86,0.87l0.69-7.14l1.9-1.04l0.52-2.61l-3.11,0.87l-3.46,5.23L594.01,264.94L594.01,264.94z","name":"United Arab Emirates"},"qa":{"path":"M592.63,259.02l-0.52,4.01l1.54,1.17l1.4-0.13l0.52-5.05l-1.21-0.87L592.63,259.02L592.63,259.02z","name":"Qatar"},"kw":{"path":"M583.29,247.17l-2.25-1.22l-1.56,1.57l0.17,3.14l3.63,1.39L583.29,247.17L583.29,247.17z","name":"Kuwait"},"sa":{"path":"M584,253.24l7.01,9.77l2.26,1.8l1.01,4.38l10.79,0.85l1.22,0.64l-1.21,5.4l-7.09,4.18l-10.37,3.14l-5.53,5.4l-6.57-3.83l-3.98,3.48L566,279.4l-3.8-1.74l-1.38-2.09v-4.53l-13.83-16.72l-0.52-2.96h3.98l4.84-4.18l0.17-2.09l-1.38-1.39l2.77-2.26l5.88,0.35l10.03,8.36l5.92-0.27l0.38,1.46L584,253.24L584,253.24z","name":"Saudi Arabia"},"sy":{"path":"M546.67,229.13l-0.35,2.54l2.82,1.18l-0.12,7.04l2.82-0.06l2.82-2.13l1.06-0.18l6.4-5.09l1.29-7.39l-12.79,1.3l-1.35,2.96L546.67,229.13L546.67,229.13z","name":"Syrian Arab Republic"},"iq":{"path":"M564.31,225.03l-1.56,7.71l-6.46,5.38l0.41,2.54l6.31,0.43l10.05,8.18l5.62-0.16l0.15-1.89l2.06-2.21l2.88,1.63l0.38-0.36l-5.57-7.41l-2.64-0.16l-3.51-4.51l0.7-3.32l1.07-0.14l0.37-1.47l-4.78-5.03L564.31,225.03L564.31,225.03z","name":"Iraq"},"jo":{"path":"M548.9,240.78l-2.46,8.58l-0.11,1.31h3.87l4.33-3.82l0.11-1.45l-1.77-1.81l3.17-2.63l-0.46-2.44l-0.87,0.2l-2.64,1.89L548.9,240.78L548.9,240.78z","name":"Jordan"},"lb":{"path":"M546.2,232.44l0.06,1.95l-0.82,2.96l2.82,0.24l0.18-4.2L546.2,232.44L546.2,232.44z","name":"Lebanon"},"il":{"path":"M545.32,238.06l-1.58,5.03l2.05,6.03l2.35-8.81v-1.89L545.32,238.06L545.32,238.06z","name":"Israel"},"cy":{"path":"M543.21,229.84l1.23,0.89l-3.81,3.61l-1.82-0.06l-1.35-0.95l0.18-1.77l2.76-0.18L543.21,229.84L543.21,229.84z","name":"Cyprus"},"gb":{"path":"M446.12,149.08l-1.83,2.77l0.73,1.11h4.22v1.85l-1.1,1.48l0.73,3.88l2.38,4.62l1.83,4.25l2.93,1.11l1.28,2.22l-0.18,2.03l-1.83,1.11l-0.18,0.92l1.28,0.74l-1.1,1.48l-2.57,1.11l-4.95-0.55l-7.71,3.51l-2.57-1.29l7.34-4.25l-0.92-0.55l-3.85-0.37l2.38-3.51l0.37-2.96l3.12-0.37l-0.55-5.73l-3.67-0.18l-1.1-1.29l0.18-4.25l-2.2,0.18l2.2-7.39l4.04-2.96L446.12,149.08L446.12,149.08M438.42,161.47l-3.3,0.37l-0.18,2.96l2.2,1.48l2.38-0.55l0.92-1.66L438.42,161.47L438.42,161.47z","name":"United Kingdom"},"ie":{"path":"M439.51,166.55l-0.91,6l-8.07,2.96h-2.57l-1.83-1.29v-1.11l4.04-2.59l-1.1-2.22l0.18-3.14l3.49,0.18l1.6-3.76l-0.21,3.34l2.71,2.15L439.51,166.55L439.51,166.55z","name":"Ireland"},"se":{"path":"M497.72,104.58l1.96,1.81h3.67l2.02,3.88l0.55,6.65l-4.95,3.51v3.51l-3.49,4.81l-2.02,0.18l-2.75,4.62l0.18,4.44l4.77,3.51l-0.37,2.03l-1.83,2.77l-2.75,2.4l0.18,7.95l-4.22,1.48l-1.47,3.14h-2.02l-1.1-5.54l-4.59-7.04l3.77-6.31l0.26-15.59l2.6-1.43l0.63-8.92l7.41-10.61L497.72,104.58L497.72,104.58M498.49,150.17l-2.11,1.67l1.06,2.45l1.87-1.82L498.49,150.17L498.49,150.17z","name":"Sweden"},"fi":{"path":"M506.79,116.94l2.07,0.91l1.28,2.4l-1.28,1.66l-6.42,7.02l-1.1,3.7l1.47,5.36l4.95,3.7l6.6-3.14l5.32-0.74l4.95-7.95l-3.67-8.69l-3.49-8.32l0.55-5.36l-2.2-0.37l-0.57-3.91l-2.96-4.83l-3.28,2.27l-1.29,5.27l-3.48-2.09l-4.84-1.18l-1.08,1.26l1.86,1.68l3.39-0.06l2.73,4.41L506.79,116.94L506.79,116.94z","name":"Finland"},"lv":{"path":"M518.07,151.37l-6.85-1.11l0.15,3.83l6.35,3.88l2.6-0.76l-0.15-2.92L518.07,151.37L518.07,151.37z","name":"Latvia"},"lt":{"path":"M510.81,154.7l-2.15-0.05l-2.95,2.82h-2.5l0.15,3.53l-1.5,2.77l5.4,0.05l1.55-0.2l1.55,1.87l3.55-0.15l3.4-4.33l-0.2-2.57L510.81,154.7L510.81,154.7z","name":"Lithuania"},"by":{"path":"M510.66,166.29l1.5,2.47l-0.6,1.97l0.1,1.56l0.55,1.87l3.1-1.76l3.85,0.1l2.7,1.11h6.85l2-4.79l1.2-1.81v-1.21l-4.3-6.05l-3.8-1.51l-3.1-0.35l-2.7,0.86l0.1,2.72l-3.75,4.74L510.66,166.29L510.66,166.29z","name":"Belarus"},"pl":{"path":"M511.46,174.76l0.85,1.56l0.2,1.66l-0.7,1.61l-1.6,3.08l-1.35,0.61l-1.75-0.76l-1.05,0.05l-2.55,0.96l-2.9-0.86l-4.7-3.33l-4.6-2.47l-1.85-2.82l-0.35-6.65l3.6-3.13l4.7-1.56l1.75-0.2l-0.7,1.41l0.45,0.55l7.91,0.15l1.7-0.05l2.8,4.29l-0.7,1.76l0.3,2.07L511.46,174.76L511.46,174.76z","name":"Poland"},"it":{"path":"M477.56,213.38l-2.65,1.34l0.35,5.17l2.12,0.36l1.59-1.52v-4.9L477.56,213.38L477.56,213.38M472.27,196.98l-0.62,1.57l0.17,1.71l2.39,2.79l3.76-0.13l8.3,9.64l5.18,1.5l3.06,2.89l0.73,6.59l1.64-0.96l1.42-3.59l-0.35-2.58l2.43-0.22l0.35-1.46l-6.85-3.28l-6.5-6.39l-2.59-3.82l-0.63-3.63l3.31-0.79l-0.85-2.39l-2.03-1.71l-1.75-0.08l-2.44,0.67l-2.3,3.22l-1.39,0.92l-2.15-1.32L472.27,196.98L472.27,196.98M492.44,223.02l-1.45-0.78l-4.95,0.78l0.17,1.34l4.45,2.24l0.67,0.73l1.17,0.17L492.44,223.02L492.44,223.02z","name":"Italy"},"fr":{"path":"M477.83,206.96l-1.95,1.96l-0.18,1.78l1.59,0.98l0.62-0.09l0.35-2.59L477.83,206.96L477.83,206.96M460.4,178.7l-2.21,0.54l-4.42,4.81l-1.33,0.09l-1.77-1.25l-1.15,0.27l-0.88,2.76l-6.46,0.18l0.18,1.43l4.42,2.94l5.13,4.1l-0.09,4.9l-2.74,4.81l5.93,2.85l6.02,0.18l1.86-2.14l3.8,0.09l1.06,0.98l3.8-0.27l1.95-2.5l-2.48-2.94l-0.18-1.87l0.53-2.05l-1.24-1.78l-2.12,0.62l-0.27-1.6l4.69-5.17v-3.12l-3.1-1.78l-1.59-0.27L460.4,178.7L460.4,178.7z","name":"France"},"nl":{"path":"M470.09,168.27l-4.53,2.23l0.96,0.87l0.1,2.23l-0.96-0.19l-1.06-1.65l-2.53,4.01l3.89,0.81l1.45,1.53l0.77,0.02l0.51-3.46l2.45-1.03L470.09,168.27L470.09,168.27z","name":"Netherlands"},"be":{"path":"M461.61,176.52l-0.64,1.6l6.88,4.54l1.98,0.47l0.07-2.15l-1.73-1.94h-1.06l-1.45-1.65L461.61,176.52L461.61,176.52z","name":"Belgium"},"de":{"path":"M471.14,167.88l3.57-0.58v-2.52l2.99-0.49l1.64,1.65l1.73,0.19l2.7-1.17l2.41,0.68l2.12,1.84l0.29,6.89l2.12,2.82l-2.79,0.39l-4.63,2.91l0.39,0.97l4.14,3.88l-0.29,1.94l-3.85,1.94l-3.57,0.1l-0.87,1.84h-1.83l-0.87-1.94l-3.18-0.78l-0.1-3.2l-2.7-1.84l0.29-2.33l-1.83-2.52l0.48-3.3l2.5-1.17L471.14,167.88L471.14,167.88z","name":"Germany"},"dk":{"path":"M476.77,151.5l-4.15,4.59l-0.15,2.99l1.89,4.93l2.96-0.56l-0.37-4.03l2.04-2.28l-0.04-1.79l-1.44-3.73L476.77,151.5L476.77,151.5M481.44,159.64l-0.93-0.04l-1.22,1.12l0.15,1.75l2.89,0.08l0.15-1.98L481.44,159.64L481.44,159.64z","name":"Denmark"},"ch":{"path":"M472.91,189.38l-4.36,4.64l0.09,0.47l1.79-0.56l1.61,2.24l2.72-0.96l1.88,1.46l0.77-0.44l2.32-3.64l-0.59-0.56l-2.29-0.06l-1.11-2.27L472.91,189.38L472.91,189.38z","name":"Switzerland"},"cz":{"path":"M488.43,184.87h2.97h1.46l2.37,1.69l4.39-3.65l-4.26-3.04l-4.22-2.04l-2.89,0.52l-3.92,2.52L488.43,184.87L488.43,184.87z","name":"Czech Republic"},"sk":{"path":"M495.84,187.13l0.69,0.61l0.09,1.04l7.63-0.17l5.64-2.43l-0.09-2.47l-1.08,0.48l-1.55-0.83l-0.95-0.04l-2.5,1l-3.4-0.82L495.84,187.13L495.84,187.13z","name":"Slovakia"},"at":{"path":"M480.63,190.12l-0.65,1.35l0.56,0.96l2.33-0.48h1.98l2.15,1.82l4.57-0.83l3.36-2l0.86-1.35l-0.13-1.74l-3.02-2.26l-4.05,0.04l-0.34,2.3l-4.26,2.08L480.63,190.12L480.63,190.12z","name":"Austria"},"hu":{"path":"M496.74,189.6l-1.16,1.82l0.09,2.78l1.85,0.95l5.69,0.17l7.93-6.68l0.04-1.48l-0.86-0.43l-5.73,2.6L496.74,189.6L496.74,189.6z","name":"Hungary"},"si":{"path":"M494.8,191.99l-2.54,1.52l-4.74,1.04l0.95,2.74l3.32,0.04l3.06-2.56L494.8,191.99L494.8,191.99z","name":"Slovenia"},"hr":{"path":"M495.62,195.16l-3.53,2.91h-3.58l-0.43,2.52l1.64,0.43l0.82-1.22l1.29,1.13l1.03,3.6l7.07,3.3l0.7-0.8l-7.17-7.4l0.73-1.35l6.81-0.26l0.69-2.17l-4.44,0.13L495.62,195.16L495.62,195.16z","name":"Croatia"},"ba":{"path":"M494.8,198.94l-0.37,0.61l6.71,6.92l2.46-3.62l-0.09-1.43l-2.15-2.61L494.8,198.94L494.8,198.94z","name":"Bosnia and Herzegovina"},"mt":{"path":"M492.61,230.47l-1.67,0.34l0.06,1.85l1.5,0.5l0.67-0.56L492.61,230.47L492.61,230.47z","name":"Malta"},"ua":{"path":"M515.57,173.15l-2.9,1.63l0.72,3.08l-2.68,5.65l0.02,2.49l1.26,0.8l8.08,0.4l2.26-1.87l2.42,0.81l3.47,4.63l-2.54,4.56l3.02,0.88l3.95-4.55l2.26,0.41l2.1,1.46l-1.85,2.44l2.5,3.9h2.66l1.37-2.6l2.82-0.57l0.08-2.11l-5.24-0.81l0.16-2.27h5.08l5.48-4.39l2.42-2.11l0.4-6.66l-10.8-0.97l-4.43-6.25l-3.06-1.05l-3.71,0.16l-1.67,4.13l-7.6,0.1l-2.47-1.14L515.57,173.15L515.57,173.15z","name":"Ukraine"},"md":{"path":"M520.75,187.71l3.1,4.77l-0.26,2.7l1.11,0.05l2.63-4.45l-3.16-3.92l-1.79-0.74L520.75,187.71L520.75,187.71z","name":"Moldova"},"ro":{"path":"M512.18,187.6l-0.26,1.48l-5.79,4.82l4.84,7.1l3.1,2.17h5.58l1.84-1.54l2.47-0.32l1.84,1.11l3.26-3.71l-0.63-1.86l-3.31-0.85l-2.26-0.11l0.11-3.18l-3-4.72L512.18,187.6L512.18,187.6z","name":"Romania"},"rs":{"path":"M505.55,194.54l-2.05,1.54h-1l-0.68,2.12l2.42,2.81l0.16,2.23l-3,4.24l0.42,1.27l1.74,0.32l1.37-1.86l0.74-0.05l1.26,1.22l3.84-1.17l-0.32-5.46L505.55,194.54L505.55,194.54z","name":"Serbia"},"bg":{"path":"M511.44,202.39l0.16,4.98l1.68,3.5l6.31,0.11l2.84-2.01l2.79-1.11l-0.68-3.18l0.63-1.7l-1.42-0.74l-1.95,0.16l-1.53,1.54l-6.42,0.05L511.44,202.39L511.44,202.39z","name":"Bulgaria"},"al":{"path":"M504.02,209.76v4.61l1.32,2.49l0.95-0.11l1.63-2.97l-0.95-1.33l-0.37-3.29l-1.26-1.17L504.02,209.76L504.02,209.76z","name":"Albania"},"mk":{"path":"M510.92,208.01l-3.37,1.11l0.16,2.86l0.79,1.01l4-1.86L510.92,208.01L510.92,208.01z","name":"Macedonia"},"gr":{"path":"M506.71,217.6l-0.11,1.33l4.63,2.33l2.21,0.85l-1.16,1.22l-2.58,0.26l-0.37,1.17l0.89,2.01l2.89,1.54l1.26,0.11l0.16-3.45l1.89-2.28l-5.16-6.1l0.68-2.07l1.21-0.05l1.84,1.48l1.16-0.58l0.37-2.07l5.42,0.05l0.21-3.18l-2.26,1.59l-6.63-0.16l-4.31,2.23L506.71,217.6L506.71,217.6M516.76,230.59l1.63,0.05l0.68,1.01h2.37l1.58-0.58l0.53,0.64l-1.05,1.38l-4.63,0.16l-0.84-1.11l-0.89-0.53L516.76,230.59L516.76,230.59z","name":"Greece"}}});
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+ <head>
+ <title>JQVMap - Algeria Map</title>
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type">
+
+ <link href="../dist/jqvmap.css" media="screen" rel="stylesheet" type="text/css"/>
+
+ <script type="text/javascript" src="http://code.jquery.com/jquery-1.11.3.min.js"></script>
+ <script type="text/javascript" src="../dist/jquery.vmap.js"></script>
+ <script type="text/javascript" src="../dist/maps/jquery.vmap.algeria.js" charset="utf-8"></script>
+
+ <script>
+ jQuery(document).ready(function () {
+ jQuery('#vmap').vectorMap({
+ map: 'dz_fr',
+ enableZoom: true,
+ showTooltip: true
+ });
+ });
+ </script>
+ </head>
+ <body>
+ <div id="vmap" style="width: 600px; height: 400px;"></div>
+ </body>
+</html>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+ <head>
+ <title>JQVMap - Argentina Map</title>
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type">
+
+ <link href="../dist/jqvmap.css" media="screen" rel="stylesheet" type="text/css"/>
+
+ <script type="text/javascript" src="http://code.jquery.com/jquery-1.11.3.min.js"></script>
+ <script type="text/javascript" src="../dist/jquery.vmap.js"></script>
+ <script type="text/javascript" src="../dist/maps/jquery.vmap.argentina.js" charset="utf-8"></script>
+
+ <script>
+ jQuery(document).ready(function () {
+ jQuery('#vmap').vectorMap({
+ map: 'argentina_en',
+ onRegionClick: function (element, code, region) {
+ var message = 'You clicked "'
+ + region
+ + '" which has the code: '
+ + code.toUpperCase();
+
+ alert(message);
+ }
+ });
+ });
+ </script>
+ </head>
+ <body>
+ <div id="vmap" style="width: 400px; height: 400px;"></div>
+ </body>
+</html>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+ <head>
+ <title>JQVMap - Brazil Map</title>
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type">
+
+ <link href="../dist/jqvmap.css" media="screen" rel="stylesheet" type="text/css"/>
+
+ <script type="text/javascript" src="http://code.jquery.com/jquery-1.11.3.min.js"></script>
+ <script type="text/javascript" src="../dist/jquery.vmap.js"></script>
+ <script type="text/javascript" src="../dist/maps/jquery.vmap.brazil.js" charset="utf-8"></script>
+
+ <script>
+ jQuery(document).ready(function () {
+ jQuery('#vmap').vectorMap({
+ map: 'brazil_br',
+ onRegionClick: function (element, code, region) {
+ var message = 'You clicked "'
+ + region
+ + '" which has the code: '
+ + code.toUpperCase();
+
+ alert(message);
+ }
+ });
+ });
+ </script>
+ </head>
+ <body>
+ <div id="vmap" style="width: 400px; height: 400px;"></div>
+ </body>
+</html>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+ <head>
+ <title>JQVMap - World Map</title>
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type">
+
+ <link href="../dist/jqvmap.css" media="screen" rel="stylesheet" type="text/css"/>
+
+ <script type="text/javascript" src="http://code.jquery.com/jquery-1.11.3.min.js"></script>
+ <script type="text/javascript" src="../dist/jquery.vmap.js"></script>
+
+ <script type="text/javascript" src="../dist/maps/continents/jquery.vmap.asia.js"></script>
+ <script type="text/javascript" src="../dist/maps/continents/jquery.vmap.europe.js"></script>
+ <script type="text/javascript" src="../dist/maps/continents/jquery.vmap.australia.js"></script>
+ <script type="text/javascript" src="../dist/maps/continents/jquery.vmap.africa.js"></script>
+ <script type="text/javascript" src="../dist/maps/continents/jquery.vmap.north-america.js"></script>
+ <script type="text/javascript" src="../dist/maps/continents/jquery.vmap.south-america.js"></script>
+
+ <script type="text/javascript" src="js/jquery.vmap.sampledata.js"></script>
+
+ <script>
+ jQuery(document).ready(function () {
+ $('h2').each(function () {
+ $(this).click(function () {
+ $('.tab-selected').removeClass('tab-selected');
+ $(this).addClass('tab-selected');
+ $('.map').css('z-index', '0');
+ $('#vmap-' + this.id).parent().css('z-index', '1');
+ });
+ });
+ $('h2:first').addClass('tab-selected');
+ $('.map:first').css('z-index', '1');
+
+ jQuery('#vmap-asia').vectorMap({
+ map: 'asia_en',
+ backgroundColor: '#333333',
+ color: '#ffffff',
+ hoverOpacity: 0.7,
+ selectedColor: '#666666',
+ enableZoom: true,
+ showTooltip: true,
+ values: sample_data,
+ scaleColors: ['#C8EEFF', '#006491'],
+ normalizeFunction: 'polynomial'
+ });
+ jQuery('#vmap-europe').vectorMap({
+ map: 'europe_en',
+ backgroundColor: '#333333',
+ color: '#ffffff',
+ hoverOpacity: 0.7,
+ selectedColor: '#666666',
+ enableZoom: true,
+ showTooltip: true,
+ values: sample_data,
+ scaleColors: ['#C8EEFF', '#006491'],
+ normalizeFunction: 'polynomial'
+ });
+ jQuery('#vmap-australia').vectorMap({
+ map: 'australia_en',
+ backgroundColor: '#333333',
+ color: '#ffffff',
+ hoverOpacity: 0.7,
+ selectedColor: '#666666',
+ enableZoom: true,
+ showTooltip: true,
+ values: sample_data,
+ scaleColors: ['#C8EEFF', '#006491'],
+ normalizeFunction: 'polynomial'
+ });
+ jQuery('#vmap-africa').vectorMap({
+ map: 'africa_en',
+ backgroundColor: '#333333',
+ color: '#ffffff',
+ hoverOpacity: 0.7,
+ selectedColor: '#666666',
+ enableZoom: true,
+ showTooltip: true,
+ values: sample_data,
+ scaleColors: ['#C8EEFF', '#006491'],
+ normalizeFunction: 'polynomial'
+ });
+ jQuery('#vmap-northamerica').vectorMap({
+ map: 'north-america_en',
+ backgroundColor: '#333333',
+ color: '#ffffff',
+ hoverOpacity: 0.7,
+ selectedColor: '#666666',
+ enableZoom: true,
+ showTooltip: true,
+ values: sample_data,
+ scaleColors: ['#C8EEFF', '#006491'],
+ normalizeFunction: 'polynomial'
+ });
+ jQuery('#vmap-southamerica').vectorMap({
+ map: 'south-america_en',
+ backgroundColor: '#333333',
+ color: '#ffffff',
+ hoverOpacity: 0.7,
+ selectedColor: '#666666',
+ enableZoom: true,
+ showTooltip: true,
+ values: sample_data,
+ scaleColors: ['#C8EEFF', '#006491'],
+ normalizeFunction: 'polynomial'
+ });
+ });
+ </script>
+ <style>
+ * {
+ margin: 0;
+ padding: 0;
+ }
+
+ h2 {
+ background: none repeat scroll 0 0 #cccccc;
+ border: 1px solid #aaaaaa;
+ border-top-left-radius: 5px;
+ border-top-right-radius: 5px;
+ float: left;
+ padding: 5px;
+ font-size: 20px;
+ font-weight: normal;
+ cursor: pointer;
+ }
+
+ h2.tab-selected {
+ background: #888888;
+ border: 1px solid #000000;
+ }
+
+ .map {
+ position: absolute;
+ z-index: 0;
+ left: 0;
+ top: 35px;
+ }
+ </style>
+ </head>
+ <body>
+ <h2 id="asia">Asia</h2>
+
+ <div class="map">
+ <div id="vmap-asia" style="width: 600px; height: 400px;"></div>
+ </div>
+ <h2 id="europe">Europe</h2>
+
+ <div class="map">
+ <div id="vmap-europe" style="width: 600px; height: 400px;"></div>
+ </div>
+ <h2 id="australia">Australia</h2>
+
+ <div class="map">
+ <div id="vmap-australia" style="width: 600px; height: 400px;"></div>
+ </div>
+ <h2 id="africa">Africa</h2>
+
+ <div class="map">
+ <div id="vmap-africa" style="width: 600px; height: 400px;"></div>
+ </div>
+ <h2 id="northamerica">North America</h2>
+
+ <div class="map">
+ <div id="vmap-northamerica" style="width: 600px; height: 400px;"></div>
+ </div>
+ <h2 id="southamerica">South America</h2>
+
+ <div class="map">
+ <div id="vmap-southamerica" style="width: 600px; height: 400px;"></div>
+ </div>
+ </body>
+</html>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+ <head>
+ <title>JQVMap - Europe Map</title>
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type">
+
+ <link href="../dist/jqvmap.css" media="screen" rel="stylesheet" type="text/css"/>
+
+ <script type="text/javascript" src="http://code.jquery.com/jquery-1.11.3.min.js"></script>
+ <script type="text/javascript" src="../dist/jquery.vmap.js"></script>
+ <script type="text/javascript" src="../dist/maps/jquery.vmap.europe.js" charset="utf-8"></script>
+
+ <script>
+ jQuery(document).ready(function () {
+ jQuery('#vmap').vectorMap({
+ map: 'europe_en',
+ enableZoom: false,
+ showTooltip: false
+ });
+ });
+ </script>
+ </head>
+ <body>
+ <div id="vmap" style="width: 680px; height: 520px;"></div>
+ </body>
+</html>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+ <head>
+ <title>JQVMap - France Map</title>
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type">
+
+ <link href="../dist/jqvmap.css" media="screen" rel="stylesheet" type="text/css"/>
+
+ <script type="text/javascript" src="http://code.jquery.com/jquery-1.11.3.min.js"></script>
+ <script type="text/javascript" src="../dist/jquery.vmap.js"></script>
+ <script type="text/javascript" src="../dist/maps/jquery.vmap.france.js" charset="utf-8"></script>
+
+ <script>
+ jQuery(document).ready(function () {
+ jQuery('#vmap').vectorMap({
+ map: 'france_fr',
+ enableZoom: false,
+ showTooltip: true
+ });
+ });
+ </script>
+ </head>
+ <body>
+ <div id="vmap" style="width: 680px; height: 520px;"></div>
+ </body>
+</html>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+ <head>
+ <title>JQVMap - Germany Map</title>
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type">
+
+ <link href="../dist/jqvmap.css" media="screen" rel="stylesheet" type="text/css"/>
+
+ <script type="text/javascript" src="http://code.jquery.com/jquery-1.11.3.min.js"></script>
+ <script type="text/javascript" src="../dist/jquery.vmap.js"></script>
+ <script type="text/javascript" src="../dist/maps/jquery.vmap.germany.js" charset="utf-8"></script>
+
+ <script>
+ jQuery(document).ready(function () {
+ jQuery('#vmap').vectorMap({
+ map: 'germany_en',
+ onRegionClick: function (element, code, region) {
+ var message = 'You clicked "'
+ + region
+ + '" which has the code: '
+ + code.toUpperCase();
+
+ alert(message);
+ }
+ });
+ });
+ </script>
+ </head>
+ <body>
+ <div id="vmap" style="width: 400px; height: 400px;"></div>
+ </body>
+</html>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+ <head>
+ <title>JQVMap - Greece Map</title>
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type">
+
+ <link href="../dist/jqvmap.css" media="screen" rel="stylesheet" type="text/css"/>
+
+ <script type="text/javascript" src="http://code.jquery.com/jquery-1.11.3.min.js"></script>
+ <script type="text/javascript" src="../dist/jquery.vmap.js"></script>
+ <script type="text/javascript" src="../dist/maps/jquery.vmap.greece.js" charset="utf-8"></script>
+
+ <script>
+ jQuery(document).ready(function () {
+ jQuery('#vmap').vectorMap({
+ map: 'greece',
+ onRegionClick: function (element, code, region) {
+ var message = 'You clicked "'
+ + region
+ + '" which has the code: '
+ + code.toUpperCase();
+
+ alert(message);
+ }
+ });
+ });
+ </script>
+ </head>
+ <body>
+ <div id="vmap" style="width: 700px; height: 637px;"></div>
+ </body>
+</html>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+ <head>
+ <title>JQVMap - USA Map</title>
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type">
+
+ <link href="../dist/jqvmap.css" media="screen" rel="stylesheet" type="text/css"/>
+
+ <script type="text/javascript" src="http://code.jquery.com/jquery-1.11.3.min.js"></script>
+ <script type="text/javascript" src="../dist/jquery.vmap.js"></script>
+ <script type="text/javascript" src="../dist/maps/jquery.vmap.usa.js" charset="utf-8"></script>
+
+ <script>
+ var map;
+
+ jQuery(document).ready(function () {
+
+ // Store currentRegion
+ var currentRegion = 'fl';
+
+ // List of Regions we'll let clicks through for
+ var enabledRegions = ['mo', 'fl', 'or'];
+
+ map = jQuery('#vmap').vectorMap({
+ map: 'usa_en',
+ enableZoom: true,
+ showTooltip: true,
+ selectedColor: '#333333',
+ selectedRegions: ['fl'],
+ hoverColor: null,
+ colors: {
+ mo: '#C9DFAF',
+ fl: '#C9DFAF',
+ or: '#C9DFAF'
+ },
+ onRegionClick: function(event, code, region){
+ // Check if this is an Enabled Region, and not the current selected on
+ if(enabledRegions.indexOf(code) === -1 || currentRegion === code){
+ // Not an Enabled Region
+ event.preventDefault();
+ } else {
+ // Enabled Region. Update Newly Selected Region.
+ currentRegion = code;
+ }
+ },
+ onRegionSelect: function(event, code, region){
+ console.log(map.selectedRegions);
+ },
+ onLabelShow: function(event, label, code){
+ if(enabledRegions.indexOf(code) === -1){
+ event.preventDefault();
+ }
+ }
+ });
+ });
+ </script>
+ </head>
+ <body>
+ <div id="vmap" style="width: 600px; height: 400px;"></div>
+ </body>
+</html>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+ <head>
+ <title>JQVMap - Iran Map</title>
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type">
+
+ <link href="../dist/jqvmap.css" media="screen" rel="stylesheet" type="text/css"/>
+
+ <script type="text/javascript" src="http://code.jquery.com/jquery-1.11.3.min.js"></script>
+ <script type="text/javascript" src="../dist/jquery.vmap.js"></script>
+ <script type="text/javascript" src="../dist/maps/jquery.vmap.iran.js" charset="utf-8"></script>
+
+ <script>
+ jQuery(document).ready(function () {
+ jQuery('#vmap').vectorMap({
+ map: 'iran_ir',
+ backgroundColor: '#fff',
+ borderColor: '#818181',
+ borderOpacity: 0.25,
+ borderWidth: 2,
+ color: '#eee',
+ enableZoom: false,
+ hoverColor: '#DA251D',
+ hoverOpacity: null,
+ normalizeFunction: 'linear',
+ selectedColor: '#fff',
+ showTooltip: true,
+ onRegionClick: function (element, code, region) {
+ var message = 'You clicked "'
+ + region
+ + '" which has the code: '
+ + code.toUpperCase();
+
+ alert(message);
+ }
+ });
+ });
+ </script>
+ </head>
+ <body>
+ <div id="vmap" style="width: 600px; height: 600px;"></div>
+ </body>
+</html>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+ <head>
+ <title>JQVMap - Iran Map</title>
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type">
+
+ <link href="../dist/jqvmap.css" media="screen" rel="stylesheet" type="text/css"/>
+
+ <script type="text/javascript" src="http://code.jquery.com/jquery-1.11.3.min.js"></script>
+ <script type="text/javascript" src="../dist/jquery.vmap.js"></script>
+ <script type="text/javascript" src="../dist/maps/jquery.vmap.iraq.js" charset="utf-8"></script>
+
+ <script type="text/javascript">
+ jQuery(document).ready(function () {
+ jQuery('#vmap').vectorMap({
+ map: 'iraq',
+ backgroundColor: '#fff',
+ borderColor: '#818181',
+ borderOpacity: 0.25,
+ borderWidth: 1,
+ color: '#eee',
+ enableZoom: false,
+ hoverColor: '#DA251D',
+ hoverOpacity: null,
+ normalizeFunction: 'linear',
+ selectedColor: '#fff',
+ showTooltip: true,
+ onRegionClick: function (element, code, region) {
+ var message = 'You clicked "'
+ + region
+ + '" which has the code: '
+ + code.toUpperCase();
+
+ alert(message);
+ }
+ });
+ });
+ </script>
+ </head>
+ <body>
+ <div id="vmap" style="width: 612px; height: 600px;"></div>
+ </body>
+</html>
--- /dev/null
+var sample_data = {"af":"16.63","al":"11.58","dz":"158.97","ao":"85.81","ag":"1.1","ar":"351.02","am":"8.83","au":"1219.72","at":"366.26","az":"52.17","bs":"7.54","bh":"21.73","bd":"105.4","bb":"3.96","by":"52.89","be":"461.33","bz":"1.43","bj":"6.49","bt":"1.4","bo":"19.18","ba":"16.2","bw":"12.5","br":"2023.53","bn":"11.96","bg":"44.84","bf":"8.67","bi":"1.47","kh":"11.36","cm":"21.88","ca":"1563.66","cv":"1.57","cf":"2.11","td":"7.59","cl":"199.18","cn":"5745.13","co":"283.11","km":"0.56","cd":"12.6","cg":"11.88","cr":"35.02","ci":"22.38","hr":"59.92","cy":"22.75","cz":"195.23","dk":"304.56","dj":"1.14","dm":"0.38","do":"50.87","ec":"61.49","eg":"216.83","sv":"21.8","gq":"14.55","er":"2.25","ee":"19.22","et":"30.94","fj":"3.15","fi":"231.98","fr":"2555.44","ga":"12.56","gm":"1.04","ge":"11.23","de":"3305.9","gh":"18.06","gr":"305.01","gd":"0.65","gt":"40.77","gn":"4.34","gw":"0.83","gy":"2.2","ht":"6.5","hn":"15.34","hk":"226.49","hu":"132.28","is":"12.77","in":"1430.02","id":"695.06","ir":"337.9","iq":"84.14","ie":"204.14","il":"201.25","it":"2036.69","jm":"13.74","jp":"5390.9","jo":"27.13","kz":"129.76","ke":"32.42","ki":"0.15","kr":"986.26","undefined":"5.73","kw":"117.32","kg":"4.44","la":"6.34","lv":"23.39","lb":"39.15","ls":"1.8","lr":"0.98","ly":"77.91","lt":"35.73","lu":"52.43","mk":"9.58","mg":"8.33","mw":"5.04","my":"218.95","mv":"1.43","ml":"9.08","mt":"7.8","mr":"3.49","mu":"9.43","mx":"1004.04","md":"5.36","mn":"5.81","me":"3.88","ma":"91.7","mz":"10.21","mm":"35.65","na":"11.45","np":"15.11","nl":"770.31","nz":"138","ni":"6.38","ne":"5.6","ng":"206.66","no":"413.51","om":"53.78","pk":"174.79","pa":"27.2","pg":"8.81","py":"17.17","pe":"153.55","ph":"189.06","pl":"438.88","pt":"223.7","qa":"126.52","ro":"158.39","ru":"1476.91","rw":"5.69","ws":"0.55","st":"0.19","sa":"434.44","sn":"12.66","rs":"38.92","sc":"0.92","sl":"1.9","sg":"217.38","sk":"86.26","si":"46.44","sb":"0.67","za":"354.41","es":"1374.78","lk":"48.24","kn":"0.56","lc":"1","vc":"0.58","sd":"65.93","sr":"3.3","sz":"3.17","se":"444.59","ch":"522.44","sy":"59.63","tw":"426.98","tj":"5.58","tz":"22.43","th":"312.61","tl":"0.62","tg":"3.07","to":"0.3","tt":"21.2","tn":"43.86","tr":"729.05","tm":0,"ug":"17.12","ua":"136.56","ae":"239.65","gb":"2258.57","us":"14624.18","uy":"40.71","uz":"37.72","vu":"0.72","ve":"285.21","vn":"101.99","ye":"30.02","zm":"15.69","zw":"5.57"};
\ No newline at end of file
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+ <head>
+ <title>JQVMap - USA Map</title>
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type">
+
+ <!-- Mobile Specific Meta Tags -->
+ <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
+ <meta name="apple-mobile-web-app-capable" content="yes">
+ <meta name="apple-mobile-web-app-status-bar-style" content="black">
+
+ <link href="../dist/jqvmap.css" media="screen" rel="stylesheet" type="text/css"/>
+
+ <style>
+ html, body {
+ padding: 0;
+ margin: 0;
+ width: 100%;
+ height: 100%;
+ }
+ #vmap {
+ width: 100%;
+ height: 100%;
+ background-color: red;
+ -webkit-tap-highlight-color: rgba(0,0,0,0);
+ }
+
+ /* Setup basic CSS for Label */
+ .jqvmap-pin {
+ font-family: "Helvetica Neue Light", "HelveticaNeue-Light", "Helvetica Neue", Calibri, Helvetica, Arial, sans-serif;
+ cursor: default;
+ pointer-events: none;
+ }
+
+ /* Hide Whichever Labels you want */
+
+ #jqvmap1_ri_pin, #jqvmap1_dc_pin, #jqvmap1_de_pin, #jqvmap1_md_pin {
+ display: none;
+ }
+
+ /* Reposition Labels that are not quite right ( labels are centered in shape, and sometimes need tweaking ) */
+
+ #jqvmap1_ak_pin {
+ margin-top: -2%;
+ }
+ #jqvmap1_ca_pin {
+ margin-left: -2%;
+ }
+ #jqvmap1_ct_pin {
+ margin-top: -0.25%;
+ margin-left: -0.25%;
+ }
+ #jqvmap1_fl_pin {
+ margin-left: 5%;
+ }
+ #jqvmap1_id_pin {
+ margin-top: 3%;
+ margin-left: -1%;
+ }
+ #jqvmap1_ky_pin {
+ margin-left: 2%;
+ }
+ #jqvmap1_la_pin {
+ margin-left: -2%;
+ }
+ #jqvmap1_mi_pin {
+ margin-top: 4%;
+ margin-left: 3%;
+ }
+ #jqvmap1_ma_pin {
+ margin-top: -0.25%;
+ }
+ #jqvmap1_mn_pin {
+ margin-top: 2%;
+ margin-left: -2%;
+ }
+ #jqvmap1_nh_pin {
+ margin-top: 1%;
+ margin-left: -0.25%;
+ }
+ #jqvmap1_nj_pin {
+ margin-top: 1%;
+ }
+ #jqvmap1_ok_pin {
+ margin-left: 2%;
+ }
+ #jqvmap1_va_pin {
+ margin-left: 2%;
+ }
+ #jqvmap1_wv_pin {
+ margin-left: -1%;
+ margin-top: 1%;
+ }
+
+ /* Add responsibe support to resize labels for difference screen sizes */
+
+ @media only screen and (min-width: 320px) {
+ .jqvmap-pin {
+ font-size: 6px;
+ }
+ }
+
+ @media only screen and (min-width: 480px) {
+ .jqvmap-pin {
+ font-size: 8px;
+ }
+ }
+
+ @media only screen and (min-width: 640px) {
+ .jqvmap-pin {
+ font-size: 10px;
+ }
+ }
+
+ @media only screen and (min-width: 800px) {
+ .jqvmap-pin {
+ font-size: 12px;
+ }
+ }
+
+ @media only screen and (min-width: 1024px) {
+ .jqvmap-pin {
+ font-size: 14px;
+ }
+ }
+ </style>
+
+ <script type="text/javascript" src="http://code.jquery.com/jquery-1.11.3.min.js"></script>
+ <script type="text/javascript" src="../dist/jquery.vmap.js"></script>
+ <script type="text/javascript" src="../dist/maps/jquery.vmap.usa.js" charset="utf-8"></script>
+
+ <script>
+ jQuery(document).ready(function () {
+ jQuery('#vmap').vectorMap({
+ map: 'usa_en',
+ borderWidth: 0.25,
+ showLabels: true
+ });
+ });
+ </script>
+ </head>
+ <body>
+ <div id="vmap"></div>
+ </body>
+</html>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+ <head>
+ <title>JQVMap - Europe Map</title>
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type">
+
+ <!-- Mobile Specific Meta Tags -->
+ <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
+ <meta name="apple-mobile-web-app-capable" content="yes">
+ <meta name="apple-mobile-web-app-status-bar-style" content="black">
+
+ <link href="../dist/jqvmap.css" media="screen" rel="stylesheet" type="text/css">
+
+ <style>
+ html, body {
+ padding: 0;
+ margin: 0;
+ width: 100%;
+ height: 100%;
+ }
+ #vmap {
+ width: 100%;
+ height: 100%;
+ background-color: red;
+ -webkit-tap-highlight-color: rgba(0,0,0,0);
+ }
+ .jqvmap-zoomin {
+ width: 30px;
+ height: 30px;
+ line-height: 30px;
+ }
+ .jqvmap-zoomout {
+ width: 30px;
+ height: 30px;
+ top: 55px;
+ line-height: 30px;
+ }
+ </style>
+
+ <script type="text/javascript" src="http://code.jquery.com/jquery-1.11.3.min.js"></script>
+ <script type="text/javascript" src="../dist/jquery.vmap.js"></script>
+ <script type="text/javascript" src="../dist/maps/jquery.vmap.usa.js" charset="utf-8"></script>
+
+ <script type="text/javascript">
+ jQuery(document).ready(function () {
+ jQuery('#vmap').vectorMap({
+ map: 'usa_en',
+ enableZoom: true,
+ showTooltip: true
+ });
+ });
+ </script>
+ </head>
+
+ <body>
+ <div id="vmap"></div>
+ </body>
+</html>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+ <head>
+ <title>JQVMap - Europe Map</title>
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type">
+
+ <link href="../dist/jqvmap.css" media="screen" rel="stylesheet" type="text/css"/>
+
+ <script type="text/javascript" src="http://code.jquery.com/jquery-1.11.3.min.js"></script>
+ <script type="text/javascript" src="../dist/jquery.vmap.js"></script>
+ <script type="text/javascript" src="../dist/maps/jquery.vmap.europe.js" charset="utf-8"></script>
+
+ <script type="text/javascript">
+ jQuery(document).ready(function () {
+ jQuery('#vmap').vectorMap({
+ map: 'europe_en',
+ enableZoom: true,
+ showTooltip: true,
+ multiSelectRegion: true,
+ selectedRegions: ['FR']
+ });
+ });
+ </script>
+ </head>
+ <body>
+ <div id="vmap" style="width: 680px; height: 520px;"></div>
+ </body>
+</html>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+ <head>
+ <title>JQVMap - World Map</title>
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type">
+
+ <link href="../dist/jqvmap.css" media="screen" rel="stylesheet" type="text/css"/>
+
+ <style>
+ * {
+ margin: 0;
+ padding: 0;
+ }
+
+ #overlay {
+ position: relative;
+ overflow: hidden;
+ }
+
+ #overlay div {
+ position: absolute;
+ z-index: 1;
+ }
+
+ .jqvmap-zoomin,
+ .jqvmap-zoomout {
+ z-index: 1;
+ }
+
+ .pin {
+ background: url(images/tip.png) no-repeat;
+ width: 9px;
+ height: 5px;
+ position: absolute;
+ cursor: pointer;
+ pointer-events: none;
+ }
+
+ .pin .pin_content {
+ background: url("images/background.png") repeat scroll 0 0 transparent;
+ border-radius: 5px 5px 5px 5px;
+ bottom: 50px;
+ height: 50px;
+ position: relative;
+ right: 15px;
+ width: 100px;
+ }
+
+ .pin .pin_content div {
+ float: left;
+ height: 30px;
+ width: 35px;
+ padding: 10px 5px;
+ text-align: center;
+ }
+
+ .pin .pin_content div span {
+ color: #EA4E41;
+ font-size: 20px;
+ font-weight: bold;
+ line-height: 18px;
+ }
+
+ .pin .pin_content div span.small {
+ font-size: 12px;
+ }
+
+ .pin .pin_content .thumb {
+ width: 45px;
+ }
+
+ .pin .pin_content .thumb img {
+ max-width: 45px;
+ max-height: 30px;
+ }
+
+ #rightcol {
+ position: absolute;
+ right: 230px;
+ top: 0;
+ }
+
+ table, tr, td {
+ border: 1px solid #aaaaaa;
+ }
+
+ .pin-td {
+ height: 65px;
+ padding: 20px;
+ width: 70px;
+ }
+ </style>
+
+ <script type="text/javascript" src="http://code.jquery.com/jquery-1.11.3.min.js"></script>
+ <script src="../dist/jquery.vmap.js" type="text/javascript"></script>
+ <script src="../dist/maps/jquery.vmap.world.js" type="text/javascript"></script>
+
+ <script type="text/javascript">
+ var pins = {
+ 'ru': "\u003ca target=\"_blank\" href=\"http://www.google.com.ru\"\u003epin_ru\u003c/a\u003e",
+ 'pk': "\u003ca target=\"_blank\" href=\"http://www.google.com.pk\"\u003epin_pk\u003c/a\u003e"
+ };
+
+ jQuery(document).ready(function () {
+ jQuery('#vmap').vectorMap({
+ map: 'world_en',
+ backgroundColor: '#333333',
+ color: '#ffffff',
+ hoverOpacity: 0.7,
+ selectedColor: '#666666',
+ enableZoom: true,
+ showTooltip: true,
+ scaleColors: ['#C8EEFF', '#006491'],
+ normalizeFunction: 'polynomial',
+ pins: {
+ "ru": "\u003ca href=\"http://google.com\"\u003epin_ru\u003c/a\u003e",
+ "pk": "\u003ca href=\"http://google.com\"\u003epin_pk\u003c/a\u003e"
+ }
+ });
+ });
+
+ function placePin(id) {
+
+ id = id.toLowerCase();
+
+ var cc = jQuery("#" + id + ' input[name=cc]').val();
+ if (cc == '') {
+ alert('Insert a country code first');
+ return;
+ }
+ var pin = jQuery("#" + id + ' .pin-td').html();
+ if (jQuery.trim(pin) == '') {
+ alert('Pin has been moved');
+ return;
+ }
+
+ var pins = new Object();
+ pins[cc] = pin;
+
+ jQuery('#vmap').vectorMap('placePins', pins, 'content');
+ }
+
+ function movePin(id) {
+
+ id = id.toLowerCase();
+
+ var cc = jQuery("#" + id + ' input[name=cc]').val();
+ if (cc == '') {
+ alert('Insert a country code first');
+ return;
+ }
+ var pin = jQuery("#" + id + ' .pin-td').html();
+ if (jQuery.trim(pin) == '') {
+ alert('Pin has been moved');
+ return;
+ }
+ pin = id + '_content';
+
+ var pins = new Object();
+ pins[cc] = pin;
+
+ jQuery('#vmap').vectorMap('placePins', pins, 'id');
+ }
+
+ function removePin() {
+ var cc = jQuery('#remove input[name=cc]').val();
+ if (cc == '') {
+ alert('Insert a country code first');
+ return;
+ }
+ jQuery('#vmap').vectorMap('removePin', cc);
+ }
+
+ function removeAllPins() {
+ jQuery('#vmap').vectorMap('removePins');
+ }
+ </script>
+ </head>
+ <body>
+ <div id="vmap" style="width: 600px; height: 400px;"></div>
+ <div id="rightcol">
+ <table>
+ <tr id="pin1">
+ <td class="pin-td">
+ <div id="pin1_content" class="pin">
+ <div class="pin_content">
+ <div>
+ <span>09</span>
+ <span class="small">new</span>
+ </div>
+ <div class="thumb">
+ <img src="images/thumb.jpg"/>
+ </div>
+ </div>
+ </div>
+ </td>
+ <td>
+ <input type="text" name="cc" placeholder="Country code"/><br/>
+ <input type="button" onClick="placePin('pin1')" value="Copy"/>
+ <input type="button" onClick="movePin('pin1')" value="Move"/>
+ </td>
+ </tr>
+ <tr id="pin2">
+ <td class="pin-td">
+ <img id="pin2_content" src="images/globe.png"/>
+ </td>
+ <td>
+ <input type="text" name="cc" placeholder="Country code"/><br/>
+ <input type="button" onClick="placePin('pin2')" value="Copy"/>
+ <input type="button" onClick="movePin('pin2')" value="Move"/>
+ </td>
+ </tr>
+ <tr id="pin3">
+ <td class="pin-td">
+ <img id="pin3_content" src="images/flag.png"/>
+ </td>
+ <td>
+ <input type="text" name="cc" placeholder="Country code"/><br/>
+ <input type="button" onClick="placePin('pin3')" value="Copy"/>
+ <input type="button" onClick="movePin('pin3')" value="Move"/>
+ </td>
+ </tr>
+ <tr id="remove">
+ <td class="pin-td">
+ <input type="text" name="cc" placeholder="Country code"/><br/>
+ <input type="button" onClick="removePin()" value="Remove"/>
+ </td>
+ <td>
+ <input type="button" onClick="removeAllPins()" value="Remove"/>
+ </td>
+ </tr>
+ </table>
+ </div>
+ </body>
+</html>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+ <head>
+ <title>JQVMap - USA Map</title>
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type">
+
+ <!-- Mobile Specific Meta Tags -->
+ <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
+ <meta name="apple-mobile-web-app-capable" content="yes">
+ <meta name="apple-mobile-web-app-status-bar-style" content="black">
+
+ <link href="../dist/jqvmap.css" media="screen" rel="stylesheet" type="text/css"/>
+
+ <style>
+ html, body {
+ padding: 0;
+ margin: 0;
+ width: 100%;
+ height: 100%;
+ }
+ #vmap {
+ width: 100%;
+ height: 100%;
+ background-color: #333;
+ -webkit-tap-highlight-color: rgba(0,0,0,0);
+ }
+
+ .jqvmap-region {
+ cursor: default !important;
+ }
+
+ .map-pin {
+ width: 64px;
+ height: 50px;
+ position: absolute;
+ top: -25px;
+ left: -32px;
+ background-size: 32px 32px;
+ background-repeat: no-repeat;
+ text-align: center;
+ background-position: top center;
+ color: #888;
+ font-weight: 500;
+ font-size: 14px;
+ }
+
+ .map-pin span {
+ position: absolute;
+ bottom: 0;
+ width: 100%;
+ text-align: center;
+ left: 0;
+ }
+
+ .red {
+ background-image: url('images/marker/red.png');
+ }
+
+ .blue {
+ background-image: url('images/marker/blue.png');
+ }
+
+ .purple {
+ background-image: url('images/marker/purple.png');
+ }
+
+ /* Setup basic CSS for Label */
+ .jqvmap-pin {
+ font-family: "Helvetica Neue Light", "HelveticaNeue-Light", "Helvetica Neue", Calibri, Helvetica, Arial, sans-serif;
+ cursor: default;
+ }
+
+ /* Reposition Labels that are not quite right ( labels are centered in shape, and sometimes need tweaking ) */
+
+ #jqvmap1_fl_pin {
+ margin-left: 5%;
+ }
+
+ </style>
+
+ <script type="text/javascript" src="http://code.jquery.com/jquery-1.11.3.min.js"></script>
+ <script type="text/javascript" src="../dist/jquery.vmap.js"></script>
+ <script type="text/javascript" src="../dist/maps/jquery.vmap.usa.js" charset="utf-8"></script>
+
+ <script>
+
+ function escapeXml(string) {
+ return string.replace(/[<>]/g, function (c) {
+ switch (c) {
+ case '<': return '\u003c';
+ case '>': return '\u003e';
+ }
+ });
+ }
+
+ jQuery(document).ready(function () {
+
+ var pins = {
+ mo: escapeXml('<div class="map-pin red"><span>MO</span></div>'),
+ fl: escapeXml('<div class="map-pin blue"><span>FL</span></div>'),
+ or: escapeXml('<div class="map-pin purple"><span>OR</span></div>')
+ };
+
+ jQuery('#vmap').vectorMap({
+ backgroundColor: '#333',
+ borderColor: '#333',
+ map: 'usa_en',
+ pins: pins,
+ color: '#fff',
+ pinMode: 'content',
+ hoverColor: null,
+ selectedColor: '#111',
+ showTooltip: false,
+ selectedRegions: ['MO', 'FL', 'OR'],
+ onRegionClick: function(event){
+ event.preventDefault();
+ }
+ });
+
+ });
+ </script>
+ </head>
+ <body>
+ <div id="vmap"></div>
+ </body>
+</html>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+ <head>
+ <title>JQVMap - Europe Map</title>
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type">
+
+ <link href="../dist/jqvmap.css" media="screen" rel="stylesheet" type="text/css">
+
+ <style>
+ html, body {
+ padding: 0;
+ margin: 0;
+ width: 100%;
+ height: 100%;
+ }
+ #vmap {
+ width: 100%;
+ height: 100%;
+ background-color: red;
+ }
+ </style>
+
+ <script type="text/javascript" src="http://code.jquery.com/jquery-1.11.3.min.js"></script>
+ <script type="text/javascript" src="../dist/jquery.vmap.js"></script>
+ <script type="text/javascript" src="../dist/maps/jquery.vmap.usa.js" charset="utf-8"></script>
+
+ <script type="text/javascript">
+ jQuery(document).ready(function () {
+ jQuery('#vmap').vectorMap({
+ map: 'usa_en',
+ enableZoom: true,
+ showTooltip: true,
+ onResize: function (element, width, height) {
+ console.log('Map Size: ' + width + 'x' + height);
+ }
+ });
+ });
+ </script>
+ </head>
+
+ <body>
+ <div id="vmap"></div>
+ </body>
+</html>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+ <head>
+ <title>JQVMap - Russia Map</title>
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type">
+
+ <link href="../dist/jqvmap.css" media="screen" rel="stylesheet" type="text/css"/>
+
+ <script type="text/javascript" src="http://code.jquery.com/jquery-1.11.3.min.js"></script>
+ <script type="text/javascript" src="../dist/jquery.vmap.js"></script>
+ <script type="text/javascript" src="../dist/maps/jquery.vmap.russia.js" charset="utf-8"></script>
+
+ <script>
+ jQuery(document).ready(function () {
+ jQuery('#vmap').vectorMap({
+ map: 'russia_en',
+ backgroundColor: '#333333',
+ color: '#ffffff',
+ hoverOpacity: 0.7,
+ selectedColor: '#999999',
+ enableZoom: true,
+ showTooltip: true,
+ scaleColors: ['#C8EEFF', '#006491'],
+ normalizeFunction: 'polynomial'
+ });
+ });
+ </script>
+ </head>
+ <body>
+ <div id="vmap" style="width: 600px; height: 400px;"></div>
+ </body>
+</html>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+ <head>
+ <title>JQVMap - Europe Map</title>
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type">
+
+ <link href="../dist/jqvmap.css" media="screen" rel="stylesheet" type="text/css">
+
+ <script type="text/javascript" src="http://code.jquery.com/jquery-1.11.3.min.js"></script>
+ <script type="text/javascript" src="../dist/jquery.vmap.js"></script>
+ <script type="text/javascript" src="../dist/maps/jquery.vmap.europe.js" charset="utf-8"></script>
+
+ <script type="text/javascript">
+ function touch_detect() {
+ return 'ontouchstart' in window || 'onmsgesturechange' in window || navigator.msMaxTouchPoints > 0;
+ }
+
+ jQuery(document).ready(function () {
+ jQuery('#vmap').vectorMap({
+ map: 'europe_en',
+ enableZoom: false,
+ showTooltip: false,
+ onRegionClick: function (element, code, region) {
+ if (!touch_detect()) {
+ // we're not on a mobile device, handle the click
+ var message = 'You clicked "' + region + '" which has the code: ' + code.toUpperCase();
+ alert(message);
+ }
+ },
+ onRegionOver: function (element, code, region) {
+ if (touch_detect()) {
+ /// we're not on a mobile device, handle the click
+ var message = 'You clicked "' + region + '" which has the code: ' + code.toUpperCase();
+ alert(message);
+ }
+ }
+ });
+ });
+ </script>
+ </head>
+
+ <body>
+ <div id="vmap" style="width: 680px; height: 520px;"></div>
+ </body>
+</html>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+ <title>JQVMap - Tunisia Map</title>
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type">
+
+ <link href="../dist/jqvmap.css" media="screen" rel="stylesheet" type="text/css"/>
+
+ <script type="text/javascript" src="http://code.jquery.com/jquery-1.11.3.min.js"></script>
+ <script type="text/javascript" src="../dist/jquery.vmap.js"></script>
+ <script type="text/javascript" src="../dist/maps/jquery.vmap.tunisia.js" charset="utf-8"></script>
+
+ <script>
+ jQuery(document).ready(function () {
+ jQuery('#vmap').vectorMap({
+ map: 'tunisia',
+ onRegionClick: function (element, code, region) {
+ var message = 'You clicked "'
+ + region
+ + '" which has the code: '
+ + code.toUpperCase();
+
+ alert(message);
+ }
+ });
+ });
+ </script>
+</head>
+<body>
+<div id="vmap" style="width: 700px; height: 637px;"></div>
+</body>
+</html>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+ <title>JQVMap - Turkey Map</title>
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type">
+ <link href="../dist/jqvmap.css" media="screen" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div id="vmap" style="width: 1052.3622px; height: 744.09448px;"></div>
+<script type="text/javascript" src="http://code.jquery.com/jquery-1.11.3.min.js"></script>
+<script type="text/javascript" src="../dist/jquery.vmap.js"></script>
+<script type="text/javascript" src="../dist/maps/jquery.vmap.turkey.js" charset="utf-8"></script>
+<script>
+ jQuery(document).ready(function () {
+ jQuery('#vmap').vectorMap({
+ map: 'turkey',
+ onRegionClick: function (element, code, region) {
+ var message = 'You clicked "'+ region + '" which has the code: '+ code.toUpperCase();
+ alert(message);
+ }
+ });
+ });
+</script>
+</body>
+</html>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+ <head>
+ <title>JQVMap - USA Map</title>
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type">
+
+ <link href="../dist/jqvmap.css" media="screen" rel="stylesheet" type="text/css"/>
+
+ <script type="text/javascript" src="http://code.jquery.com/jquery-1.11.3.min.js"></script>
+ <script type="text/javascript" src="../dist/jquery.vmap.js"></script>
+ <script type="text/javascript" src="../dist/maps/jquery.vmap.usa.js" charset="utf-8"></script>
+
+ <script>
+ jQuery(document).ready(function () {
+ jQuery('#vmap').vectorMap({
+ map: 'usa_en',
+ enableZoom: true,
+ showTooltip: true,
+ selectedColor: null,
+ hoverColor: null,
+ colors: {
+ mo: '#C9DFAF',
+ fl: '#C9DFAF',
+ or: '#C9DFAF'
+ },
+ onRegionClick: function(event, code, region){
+ event.preventDefault();
+ }
+ });
+ });
+ </script>
+ </head>
+ <body>
+ <div id="vmap" style="width: 600px; height: 400px;"></div>
+ </body>
+</html>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+ <head>
+ <title>JQVMap - World Map</title>
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type">
+
+ <link href="../dist/jqvmap.css" media="screen" rel="stylesheet" type="text/css"/>
+
+ <script type="text/javascript" src="http://code.jquery.com/jquery-1.11.3.min.js"></script>
+ <script type="text/javascript" src="../dist/jquery.vmap.js"></script>
+ <script type="text/javascript" src="../dist/maps/jquery.vmap.world.js" charset="utf-8"></script>
+ <script type="text/javascript" src="js/jquery.vmap.sampledata.js"></script>
+
+ <script>
+ jQuery(document).ready(function () {
+ jQuery('#vmap').vectorMap({
+ map: 'world_en',
+ backgroundColor: '#333333',
+ color: '#ffffff',
+ hoverOpacity: 0.7,
+ selectedColor: '#666666',
+ enableZoom: true,
+ showTooltip: true,
+ scaleColors: ['#C8EEFF', '#006491'],
+ values: sample_data,
+ normalizeFunction: 'polynomial'
+ });
+ });
+ </script>
+ </head>
+ <body>
+ <div id="vmap" style="width: 600px; height: 400px;"></div>
+ </body>
+</html>
--- /dev/null
+module.exports = {
+ options: {
+ files: [
+ "package.json",
+ "bower.json"
+ ],
+ updateConfigs: [
+ "package"
+ ],
+ commit: true,
+ commitMessage: "Release v%VERSION%",
+ commitFiles: [
+ "-a"
+ ],
+ createTag: true,
+ tagName: "v%VERSION%",
+ tagMessage: "Version %VERSION%",
+ push: true,
+ pushTo: "origin",
+ gitDescribeOptions: "--tags --always --abbrev=1 --dirty=-d"
+ }
+};
--- /dev/null
+module.exports = {
+ release: {
+ options: {
+ insertType: "prepend",
+ template: "## Release v<%= package.version %>:\n\n{{> features}}{{> fixes}}\n\n",
+ partials: {
+ features: "#### Features:\n\n{{#if features}}{{#each features}}{{> feature}}{{/each}}{{else}}{{> empty}}{{/if}}\n",
+ fixes: "#### Bugfixes:\n\n{{#if fixes}}{{#each fixes}}{{> fix}}{{/each}}{{else}}{{> empty}}{{/if}}",
+ empty: " - (none)\n"
+ },
+ dest: "CHANGELOG.md"
+ }
+ }
+};
\ No newline at end of file
--- /dev/null
+module.exports = {
+ dist: [
+ "dist/*.js"
+ ]
+};
--- /dev/null
+module.exports = {
+ options: {
+ banner: '/*!\n' +
+ ' * <%= package.author.name %>: <%= package.description %>\n' +
+ ' * @author <%= package.author.name %> <<%= package.author.email %>>\n' +
+ ' * @version <%= package.version %>\n' +
+ ' * @link <%= package.author.url %>\n' +
+ ' * @license https://github.com/manifestinteractive/jqvmap/blob/master/LICENSE\n' +
+ ' * @builddate <%= grunt.template.today("yyyy/mm/dd") %>\n' +
+ ' */\n\n'
+ },
+ dist: {
+ files: {
+ 'dist/jquery.vmap.js': [
+ "src/VectorCanvas.js",
+ "src/ColorScale.js",
+ "src/JQVMap.js",
+ "src/Base.js",
+ "src/**/*.js"
+ ]
+ }
+ }
+};
--- /dev/null
+var requireDirectory = require("require-directory");
+module.exports = requireDirectory(module);
\ No newline at end of file
--- /dev/null
+module.exports = {
+ dist: ['tests/*.html']
+};
--- /dev/null
+module.exports = {
+ lint: {
+ command: "node_modules/.bin/eslint src --quiet && echo '\033[0;32m\n✓ All Good\033[0m ٩(ˊᗜˋ*)و'",
+ stdout: false
+ }
+};
--- /dev/null
+module.exports = {
+ options: {
+ banner: '/*!\n' +
+ ' * <%= package.author.name %>: <%= package.description %>\n' +
+ ' * @author <%= package.author.name %> <<%= package.author.email %>>\n' +
+ ' * @version <%= package.version %>\n' +
+ ' * @link <%= package.author.url %>\n' +
+ ' * @license https://github.com/manifestinteractive/jqvmap/blob/master/LICENSE\n' +
+ ' * @builddate <%= grunt.template.today("yyyy/mm/dd") %>\n' +
+ ' */\n\n'
+ },
+ dist: {
+ files: {
+ 'dist/jquery.vmap.min.js': [
+ "dist/jquery.vmap.js"
+ ]
+ }
+ }
+};
--- /dev/null
+module.exports = function(grunt)
+{
+ var gtx = require('gruntfile-gtx').wrap(grunt);
+ gtx.loadAuto();
+
+ var gruntConfig = require('./grunt');
+ gruntConfig.package = require('./package.json');
+
+ gtx.config(gruntConfig);
+
+ gtx.alias('build', ['shell:lint', 'clean:dist', 'concat:dist', 'uglify:dist', 'test']);
+
+ gtx.alias('release', ['build', 'bump-commit']);
+ gtx.alias('release-major', ['bump-only:major', 'release']);
+ gtx.alias('release-minor', ['bump-only:minor', 'release']);
+ gtx.alias('release-patch', ['bump-only:patch', 'release']);
+
+ gtx.alias('test', ['shell:lint', 'qunit:dist']);
+
+ gtx.finalise();
+};
--- /dev/null
+//jQuery.fn.vectorMap('addMap', 'fr_regions_2016_mill',{"insets": [{"width": 100, "top": 600, "height": 122.71220181016422, "bbox": [{"y": -640515.9263248637, "x": -6082830.163693012}, {"y": -235112.28629661424, "x": -5752460.702426716}], "left": 0}, {"width": 50, "top": 440, "height": 42.928059423707, "bbox": [{"y": -1855676.1027106678, "x": -6882793.3793751765}, {"y": -1778355.8860469644, "x": -6792735.480530344}], "left": 0}, {"width": 50, "top": 510, "height": 57.21127928831266, "bbox": [{"y": -1668974.3969949444, "x": -6819419.302373176}, {"y": -1615651.747314515, "x": -6772817.783980524}], "left": 0}, {"width": 50, "top": 700, "height": 42.31095479952366, "bbox": [{"y": 2357030.8412201093, "x": 6150785.273719754}, {"y": 2416319.6251247157, "x": 6220848.433704593}], "left": 740}, {"width": 40, "top": 690, "height": 55.96611426730096, "bbox": [{"y": 1415975.8044653006, "x": 5016650.333473452}, {"y": 1454680.1669724442, "x": 5044313.045465417}], "left": 640}, {"width": 900, "top": 0, "height": 749.2159980728637, "bbox": [{"y": -6244653.662562441, "x": -571670.6975907331}, {"y": -4882430.695155527, "x": 1064707.428102987}], "left": 0}], "paths": {"FR-GF": {"path": "M0.97,715.11l0.03,-0.01l1.04,0.32l0.16,0.02l0.86,-0.15l0.51,-0.46l0.86,-2.17l2.19,-0.54l1.75,-1.7l3.1,-6.63l2.47,-3.35l0.8,-2.07l0.47,-0.34l0.06,-0.66l-0.55,-0.79l0.94,-2.39l-0.02,-0.46l-0.64,-0.76l0.44,-0.66l-0.5,-1.65l0.23,-1.91l-0.45,-0.69l-0.46,-0.14l0.86,-1.73l2.07,-2.81l1.19,-0.89l0.84,-2.29l1.16,-1.21l0.63,-1.48l-0.08,-2.67l0.59,-2.69l-0.24,-0.63l-0.99,-0.8l-0.94,0.14l-0.73,-1.11l-0.67,-2.34l-1.1,-1.52l-2.15,-0.96l-0.85,-1.38l-0.94,-0.69l-0.78,-1.45l-0.91,-0.91l-0.6,-1.53l-1.41,-1.5l0.64,-2.85l-0.13,-0.85l-2.32,-1.44l0.46,-1.46l-0.01,-1.08l-0.33,-1.55l-1.0,-2.09l-0.57,-3.53l0.9,-2.56l0.01,-1.55l-0.48,-1.52l0.02,-2.19l-1.39,-1.38l0.0,-4.12l-0.26,-0.77l1.19,-1.14l-0.22,-1.91l0.25,-0.92l2.73,-3.76l0.74,-0.61l1.11,-2.37l4.66,-4.06l2.22,-1.17l1.58,-1.93l1.87,-4.21l0.52,-3.48l1.46,-2.55l2.53,0.36l1.76,0.65l0.25,-0.36l3.4,2.05l6.81,3.12l3.05,0.38l3.49,0.88l0.86,-0.07l1.81,1.42l0.75,-0.24l0.28,-0.38l-0.11,-0.54l0.6,0.16l3.21,1.77l2.63,0.74l0.44,-0.2l3.1,1.65l2.24,2.12l1.54,0.85l1.06,1.69l7.47,6.54l0.33,0.77l1.43,0.41l2.53,2.16l0.64,1.06l-0.27,1.23l0.6,0.43l2.01,-1.77l1.2,0.54l0.54,0.96l-2.76,4.28l0.03,1.47l0.4,0.37l0.6,-0.32l0.54,-0.93l0.57,-1.94l2.11,-1.78l0.87,0.63l1.21,1.89l2.18,1.25l2.26,2.1l0.89,1.31l1.5,6.51l-0.33,1.34l-1.91,1.37l-0.89,1.13l-0.01,0.47l0.45,0.15l2.11,-0.67l1.15,-0.61l0.64,-0.84l0.53,-2.04l-0.28,-4.87l0.65,-1.95l1.05,-0.2l1.97,1.65l0.0,0.74l1.13,1.9l0.28,1.83l0.66,0.89l-0.25,0.37l0.26,0.94l0.51,0.66l1.03,0.2l-0.69,0.86l-0.09,1.41l1.97,3.43l0.18,0.84l-0.06,2.16l-0.64,2.0l-0.3,0.58l-2.4,1.19l-1.04,0.92l-1.71,3.75l-2.1,2.32l-1.35,0.82l-0.13,1.42l-0.89,0.24l-0.67,0.68l-0.88,2.96l-1.99,3.34l-0.78,0.63l0.04,0.74l-4.48,7.35l-0.56,0.42l-1.13,0.12l-0.77,0.72l-0.64,1.51l-1.27,1.01l-0.24,0.8l0.31,2.33l-2.32,4.42l0.33,0.96l-1.39,1.05l-2.96,7.18l-1.09,0.6l0.67,2.17l-2.13,3.57l-1.21,1.07l-1.71,2.4l-5.24,2.87l-0.69,0.6l-0.84,1.79l-2.17,0.93l-2.57,-0.42l-1.92,-1.13l-5.09,0.79l1.41,-1.11l-0.13,-0.65l-2.09,-1.75l-0.88,-1.21l-0.87,-0.45l-0.43,0.08l-1.13,1.43l-2.74,1.58l-2.14,0.34l-1.52,-0.76l-2.22,-0.27l-2.22,-0.96l-0.87,-0.06l0.23,-1.21l-0.6,-0.69l-0.75,-0.14l-1.33,0.55l-1.05,1.47l-1.27,0.26l-0.98,1.22l-1.24,-0.04l-0.49,1.63l-0.46,0.33l-1.97,0.97l-0.71,-0.32l-1.16,0.23l-0.87,2.01l-0.86,0.39l-1.72,-1.68l-2.66,0.42l-1.6,-0.21l-2.03,-1.41l-3.41,-0.59l-1.86,-1.51l0.34,-0.7l-0.6,-0.59l-1.7,-0.92Z", "name": "Guyane fran\u00e7aise"}, "FR-H": {"path": "M838.53,672.37l1.08,0.06l0.88,-0.67l0.97,0.12l1.07,-2.21l1.86,-0.26l0.74,-0.59l0.25,-1.79l0.9,-1.48l-0.38,-0.73l-0.69,-0.15l0.49,-1.84l0.66,-0.7l2.07,-0.66l0.26,-0.57l-0.29,-0.57l0.29,-1.57l1.09,-0.31l1.75,0.99l1.22,-0.28l0.96,-0.92l0.83,-2.39l1.69,-0.12l3.84,-1.79l6.8,-1.3l2.03,-0.92l0.4,-1.61l3.75,-3.54l2.7,-0.22l4.3,0.91l1.55,0.91l1.19,2.4l0.37,0.25l0.75,-0.18l2.19,-3.35l0.93,-2.22l-0.53,-1.78l0.44,-1.29l-0.33,-1.53l-1.69,-2.25l1.55,-2.06l-0.41,-1.45l0.2,-1.05l1.75,-1.77l0.11,-1.69l-1.01,-1.98l0.14,-1.93l0.77,-0.45l2.42,-0.01l0.97,-0.35l0.69,0.85l1.59,0.95l-0.62,1.65l0.32,1.04l0.64,0.74l-0.24,1.34l1.15,6.71l-0.1,2.14l-1.97,6.87l-0.02,4.12l-0.45,1.01l0.91,0.83l0.24,0.8l-0.14,1.25l1.14,1.91l2.33,1.17l0.51,-0.65l0.25,0.54l0.31,7.85l0.73,1.54l-0.6,1.91l-0.19,2.68l1.67,5.79l-0.45,9.13l0.43,1.76l-0.38,2.31l-0.37,0.56l-1.68,1.43l-1.61,2.76l-5.49,7.01l-0.58,7.85l0.53,5.07l-0.08,5.26l-1.16,0.85l-0.93,1.45l0.36,0.56l0.38,0.0l-0.34,1.47l-1.74,0.45l-0.13,1.0l-2.1,-0.31l-0.71,0.1l-0.34,0.46l0.08,0.47l-0.87,1.33l0.15,0.53l1.18,0.53l2.94,-0.89l0.29,0.34l-0.16,0.77l-1.25,1.25l-1.71,0.61l-1.08,1.44l-0.92,0.16l-0.29,0.57l0.28,0.85l-0.28,0.85l0.82,0.98l-0.71,0.84l0.01,0.67l-2.14,1.17l-0.98,0.12l-0.35,0.4l0.0,0.54l0.75,0.99l-0.59,0.7l-0.15,0.77l0.54,0.37l1.71,-1.1l-1.36,2.96l-0.77,0.37l-0.56,-0.17l-1.56,-1.26l-4.09,-1.13l0.5,-1.41l0.63,-0.25l0.15,-0.7l-3.04,-1.76l0.64,-0.96l0.0,-0.46l-0.51,-0.38l-2.15,1.21l-0.36,-0.76l-1.07,0.38l-0.9,-0.82l-1.69,-0.51l-2.48,-0.05l-1.61,-1.23l-1.4,-0.31l-0.77,-0.93l-1.36,-0.18l0.42,-0.48l-0.28,-0.83l-3.45,-1.04l0.22,-1.42l-0.44,-0.73l-0.5,-0.17l1.06,-2.73l1.05,0.33l3.28,-1.35l0.76,-0.71l0.25,-0.88l2.21,-1.71l-0.28,-0.67l-8.03,-1.29l-0.49,-0.46l0.45,-1.23l-0.37,-0.54l-1.66,0.01l-3.15,0.9l0.15,-0.36l-0.39,-0.56l-1.58,-0.18l1.37,-0.22l1.43,-1.12l0.36,-1.08l-0.11,-0.68l-0.53,-0.48l2.22,-0.4l2.07,-1.1l0.18,-0.51l-0.3,-0.7l-0.72,-0.7l1.32,-0.68l0.04,-0.58l-0.51,-0.92l1.44,-2.22l-1.63,-2.04l-1.3,-0.47l-1.37,0.15l-3.3,1.36l-2.54,0.15l-1.78,0.63l-0.16,-0.36l0.64,-1.35l-0.36,-1.17l-1.16,-1.23l2.2,-0.2l1.3,-0.47l1.04,-1.45l-0.12,-0.56l-0.44,-0.27l0.27,-0.44l1.08,-0.73l3.47,-1.33l0.38,-0.36l0.09,-0.92l-0.43,-0.78l-0.97,-0.68l-1.71,-2.86l-0.82,-0.13l-1.52,0.37l-0.72,-1.14l-1.11,-0.59l-2.23,-0.31l0.1,-0.87l-0.66,-0.46l0.63,-0.4l0.19,-0.89l-0.4,-0.4l-0.84,0.0l0.49,-1.2l-0.24,-0.73l-0.53,-0.37l0.18,-0.95l-1.46,-1.0l2.12,-0.06l1.46,-0.81l2.49,-0.44l2.27,-0.94l0.28,-0.91l-1.26,-1.16l-2.16,-0.95l-0.59,-1.02l-0.54,-0.04l-0.76,0.57l-0.02,-0.4l1.8,-0.96l0.05,-0.67l-1.61,-1.07l-1.41,0.12l-1.48,0.55l-0.55,-1.32l-0.01,-0.82Z", "name": "Corse"}, "FR-F": {"path": "M352.12,269.71l-0.39,-0.79l0.59,-1.42l1.29,-1.16l5.17,-2.45l1.63,-1.53l1.57,-4.34l0.07,-3.55l0.45,-1.34l2.91,-2.22l0.88,-1.62l-0.43,-1.98l0.6,-3.59l-0.6,-0.63l-1.31,-0.12l-0.88,-2.08l2.47,-0.44l0.71,-0.46l0.07,-1.0l-1.12,-0.94l0.07,-0.52l3.99,-2.03l0.86,-0.92l-0.08,-0.73l-0.51,-0.52l-3.66,-0.66l-2.36,-1.54l1.12,-0.96l0.25,-1.0l-1.86,-3.44l0.07,-2.76l-0.31,-0.7l-0.92,-0.77l0.03,-1.1l0.42,-0.63l2.29,-0.4l5.6,-2.3l2.13,-1.95l0.67,-1.64l1.22,-1.8l-0.16,-0.83l-1.74,-2.11l0.08,-3.7l-3.65,-3.73l-2.55,-1.62l-1.61,-2.81l-0.36,-3.23l1.82,-1.67l1.34,-0.77l5.76,-1.41l2.04,-0.07l0.74,-0.36l1.7,-2.02l3.48,-0.35l0.63,-0.53l0.22,-1.53l3.0,1.67l3.49,-0.02l1.93,0.63l4.71,-2.07l1.42,-1.16l0.69,-1.87l0.95,-1.4l1.34,-1.03l2.49,-1.16l1.05,-1.01l0.26,-1.64l-0.52,-1.68l0.12,-0.44l2.22,-1.39l3.12,5.29l1.41,1.78l0.26,1.59l-0.56,2.83l0.31,1.68l0.56,0.67l1.6,0.81l-0.36,1.11l-1.35,1.63l-0.2,0.71l0.26,0.98l1.48,0.99l0.55,1.38l1.5,1.71l3.83,2.4l0.73,2.38l2.38,1.58l0.52,0.67l0.38,1.69l-0.03,2.29l1.38,2.04l1.1,0.79l4.59,1.88l2.43,-0.21l0.24,2.38l2.15,2.42l0.66,2.91l0.56,0.84l1.26,0.74l-1.59,2.0l-0.13,0.8l0.28,0.63l1.27,0.64l8.96,-1.77l2.18,-0.89l1.74,-2.19l1.08,0.42l1.34,1.84l0.89,0.32l1.9,-0.44l1.41,-1.25l0.41,-0.04l2.61,1.32l2.42,-0.25l1.05,1.47l1.06,3.38l3.56,2.09l1.09,1.21l-0.82,1.86l0.48,1.68l-2.36,-0.11l-1.14,1.09l0.09,1.33l1.07,0.83l2.02,0.26l3.17,-0.65l8.35,0.59l2.29,-0.94l1.66,-1.6l0.83,-0.26l2.03,0.05l-0.41,1.53l0.32,0.38l1.06,0.2l7.05,-1.97l1.76,0.12l2.27,0.58l1.52,1.02l1.38,4.33l1.05,1.28l2.81,2.18l0.52,2.18l-1.42,3.21l-0.46,0.6l-2.42,1.45l-1.42,1.43l-1.36,0.14l-0.46,0.42l0.1,2.67l0.95,2.06l-0.78,1.4l0.13,1.67l-0.42,0.96l-4.41,2.06l-4.17,0.46l-1.07,0.84l-0.36,1.76l0.56,1.49l2.33,0.9l2.32,2.0l1.13,2.08l-0.6,1.62l0.07,0.78l2.52,3.57l-3.82,0.47l-2.79,1.57l-0.07,0.91l1.55,1.67l1.57,3.11l1.42,1.89l-0.51,2.82l-0.86,1.93l-2.02,2.99l-0.1,0.83l0.94,1.66l1.73,0.94l3.6,3.47l0.78,3.4l1.43,3.27l1.23,3.95l-0.07,3.7l2.22,2.27l0.43,5.38l-1.31,4.71l1.12,2.83l-0.12,0.92l-2.12,3.69l-0.31,1.64l-3.08,-0.17l-2.72,0.77l-4.06,2.3l-1.68,2.09l-2.02,-0.32l-1.56,1.24l-2.13,-0.62l-0.64,-0.74l-0.84,-0.12l-4.12,3.34l-1.44,0.06l-0.57,0.31l-0.14,1.87l-2.29,0.13l-0.55,1.04l1.04,1.73l-0.51,1.0l0.05,1.2l1.67,2.1l0.3,1.38l-5.07,1.34l-7.99,0.81l-3.73,1.66l-1.58,1.88l-1.55,0.74l-2.19,3.55l-5.83,-0.29l-3.22,0.59l-2.11,-0.72l-3.44,0.0l-2.44,-0.84l-5.56,-0.15l-1.36,0.29l-1.79,1.06l-1.02,-0.37l-1.84,-1.89l-0.73,-0.15l-0.91,0.28l-0.52,0.62l-0.16,2.28l-0.72,0.98l-3.85,-0.24l-2.6,1.5l-1.18,-0.45l-0.12,-1.0l-0.46,-0.52l-0.8,-0.24l-1.55,0.21l-2.31,-0.53l-1.04,0.29l-3.98,3.58l-1.69,0.94l-2.46,-1.47l-0.93,-1.4l-0.84,-0.54l-0.84,-0.04l-0.83,0.37l-0.7,1.07l-1.07,0.49l-3.45,0.3l-2.25,-0.75l-0.71,-0.49l0.93,-3.22l-0.72,-1.01l-1.32,-0.68l-1.11,-1.06l0.45,-2.58l-0.5,-1.16l-0.91,-1.04l-1.23,-0.68l-5.0,-0.37l-0.32,-1.41l-0.46,-0.57l-3.41,-1.35l-2.07,-1.8l-0.45,-0.65l-0.51,-2.09l-0.01,-1.46l0.61,-2.86l-0.92,-2.42l-1.83,-2.14l-2.6,-1.8l-7.16,-9.22l-1.26,-3.31l-1.36,-1.88l-6.25,-3.03l-0.71,0.68l0.16,1.39l0.73,1.37l-0.4,0.35l-5.41,0.31l-1.21,0.29l-1.78,1.09l-2.67,-0.46l-2.71,0.24l-1.01,-0.19l-0.92,-0.81l-0.25,-0.98l0.04,-2.48l0.47,-2.57l-0.35,-1.03l-2.01,-0.4l-0.72,-1.12l-0.61,-0.29l-3.43,0.61l-0.29,-0.38l0.35,-1.68l-0.32,-1.32l-0.99,-0.39l-1.98,0.41l-0.5,-1.99l-0.74,-0.2l-1.7,0.66l-1.69,-2.39l0.88,-5.76l1.43,-5.26l4.43,-6.2l-0.2,-2.84l0.98,-2.98l1.96,-3.88l-0.45,-3.6l1.51,-3.81l7.61,1.68l0.98,-0.08l0.62,-0.83l-0.48,-2.31l0.7,-0.71l2.9,0.89l2.04,-1.63l2.39,-0.48l3.32,-1.45l2.28,-0.47l0.53,-0.73l-0.22,-1.26Z", "name": "Centre"}, "FR-E": {"path": "M25.63,242.25l0.98,-1.98l0.98,0.49l19.62,-3.77l3.65,0.88l0.91,-0.32l0.5,-0.76l0.62,-2.51l-0.36,-1.04l-0.81,-0.89l-0.58,-2.39l-1.01,-0.81l-2.92,-0.69l-0.66,-1.14l-0.5,-0.27l-1.37,0.44l-3.11,-1.71l-2.01,0.46l-2.96,4.7l-0.73,0.21l0.57,-1.39l-1.14,-2.33l0.91,-1.36l-0.39,-1.22l-1.09,-0.38l-3.21,-0.11l-0.03,-1.0l1.84,0.17l0.95,-0.24l0.41,-0.81l-0.22,-0.93l0.98,-2.21l0.53,-0.43l0.46,0.19l-0.71,2.55l0.23,0.48l1.87,0.72l5.36,-0.32l1.36,0.83l1.04,0.18l3.66,-0.78l2.04,-0.12l0.21,0.35l1.46,0.44l5.01,-0.91l0.33,-0.98l-0.42,-0.4l-1.83,0.11l-0.45,-0.19l-0.2,-0.74l-0.68,-0.16l-1.09,0.67l-1.22,-1.03l-2.07,0.18l0.59,-0.25l0.44,-0.73l1.79,-1.5l0.1,-0.44l-0.38,-0.25l-1.24,0.08l-1.29,0.8l0.0,-0.47l-0.85,-0.4l-0.96,1.04l-0.96,-0.2l-1.87,1.11l-0.5,0.08l-0.43,-0.77l-0.56,-0.05l-1.09,0.68l-1.02,0.2l3.24,-3.36l6.46,-3.39l0.19,-0.5l-0.47,-0.25l-4.22,1.6l-4.19,0.6l-5.77,2.77l-2.94,0.62l-1.85,0.8l-1.08,0.12l-4.35,-1.11l-0.58,0.4l-0.15,1.12l-0.27,0.13l-3.57,-0.23l-0.68,-1.74l0.68,-0.06l0.36,-0.44l-0.1,-1.01l-1.05,-2.18l-0.09,-1.34l0.28,-1.34l0.6,-0.89l1.01,-0.27l0.3,-0.88l-1.49,-1.16l0.52,-1.93l2.34,-3.42l1.07,0.45l0.46,-0.14l-0.19,-0.71l0.54,-0.32l2.86,-0.47l3.08,1.22l1.04,-0.16l0.21,-0.65l-1.67,-2.31l0.37,-0.22l2.65,0.59l1.24,-0.03l0.38,-0.34l-0.26,-0.44l-1.23,-0.43l0.07,-0.55l-0.35,-0.44l4.17,-0.0l3.43,-1.04l1.35,-0.03l0.38,-0.31l-0.2,-0.45l-0.86,-0.45l1.38,-0.23l3.24,-1.36l1.36,0.05l0.84,0.86l-0.39,1.52l0.42,0.5l1.58,-0.18l2.35,-1.07l2.95,0.58l0.4,-0.4l0.0,-0.59l-1.04,-0.57l0.11,-0.28l1.91,-1.43l2.45,-0.6l1.27,0.07l1.03,0.52l0.71,-0.39l0.36,0.69l0.75,0.24l1.01,-1.05l-0.02,-1.18l4.45,-1.51l-0.24,1.62l0.55,0.4l-0.25,0.84l1.04,1.07l-0.07,1.9l0.48,-0.03l1.68,-1.43l0.9,-0.29l-0.28,0.38l0.1,0.75l3.35,2.74l0.61,-0.01l0.45,-0.54l-0.24,-0.79l0.28,-0.74l-0.54,-1.41l0.79,0.35l0.21,-0.4l0.01,-2.72l0.24,-0.43l0.93,0.16l0.45,-0.85l1.48,0.59l2.89,-0.11l2.82,1.61l2.57,-0.38l0.28,1.21l1.61,0.42l1.96,-0.05l0.87,-0.41l0.21,-0.49l-0.71,-3.08l2.98,-0.46l0.33,-0.33l-3.03,-3.0l-0.19,-0.98l2.29,-1.26l1.58,-2.51l0.68,0.39l1.86,0.1l2.17,1.06l-0.28,0.54l0.32,0.6l2.25,0.04l1.71,-1.23l5.84,-2.09l1.17,0.0l1.67,-1.78l0.55,0.11l0.26,2.26l-0.4,1.28l-0.83,1.08l0.5,1.21l0.41,0.18l0.97,-1.9l1.78,-1.89l1.89,-1.51l0.81,0.06l1.06,-1.09l0.51,-0.13l0.85,0.83l-0.4,1.97l0.68,0.68l-1.05,2.42l-1.65,2.02l-0.1,0.85l0.4,0.4l0.8,-0.2l3.03,-4.81l0.76,0.15l1.33,-0.56l0.67,0.24l-0.02,0.75l-1.71,1.0l-0.01,1.15l2.48,1.16l4.01,0.41l0.01,1.2l-0.8,0.72l0.21,0.84l1.94,1.27l1.37,1.73l3.87,2.85l0.88,3.1l-0.26,0.69l0.22,0.77l2.78,1.74l3.18,1.32l-1.16,1.99l1.46,0.52l1.88,1.65l0.62,-0.24l0.25,-2.13l2.16,0.1l1.16,-0.4l3.22,-3.61l5.89,-2.95l0.99,-1.12l0.0,-0.53l-0.84,-0.45l1.49,-0.39l1.05,0.13l0.44,0.89l0.49,0.2l3.51,-1.61l2.1,-2.09l0.67,0.82l1.02,0.23l-1.01,1.46l-1.68,1.58l0.05,0.62l1.51,0.76l3.43,-2.2l0.62,2.37l0.78,0.42l0.63,2.14l0.57,0.3l1.25,-1.02l0.75,0.88l1.35,-0.4l0.22,-0.89l-0.64,-0.57l0.93,-0.86l1.16,0.66l0.55,-0.01l0.02,-0.55l-1.01,-1.64l2.26,-0.68l2.61,-0.22l1.31,2.11l0.42,1.64l1.16,0.92l-0.26,1.06l1.54,2.0l0.32,0.9l-0.23,1.64l0.21,0.41l0.46,-0.06l2.43,-1.55l0.01,-0.69l-1.38,-0.83l0.13,-0.69l-0.92,-1.66l0.91,0.63l0.48,-0.04l0.09,-0.48l-1.1,-1.52l-1.85,-0.63l-1.61,-3.1l0.13,-0.41l0.98,-1.09l1.07,-0.34l0.37,-1.34l0.28,-0.13l2.22,0.0l0.28,-0.7l4.99,-0.86l0.54,1.16l-1.35,1.87l-0.06,2.08l1.7,1.73l2.67,0.63l4.54,0.04l4.83,-0.64l3.02,-1.39l2.6,5.45l1.04,3.06l1.91,2.9l3.27,2.38l2.44,0.21l1.93,-0.61l2.78,-1.91l2.08,-0.77l2.22,-2.4l2.39,0.03l6.14,1.5l2.32,1.25l-0.2,5.67l0.77,8.15l-1.95,4.1l0.21,1.05l0.9,1.52l0.8,4.72l-0.73,1.74l0.74,4.88l0.57,1.17l1.18,1.08l0.09,4.44l-1.36,0.63l-4.18,0.61l-2.21,1.9l-0.63,1.08l-2.9,9.1l-1.14,1.77l-0.41,1.91l-6.47,-1.09l-0.75,-0.44l-0.77,-1.22l-1.29,-0.55l-3.34,-0.0l-1.83,1.23l-6.34,2.57l-1.86,1.31l-1.2,1.55l-2.58,1.54l-7.31,2.01l-3.72,-0.8l-4.42,1.41l-1.22,0.67l-2.07,-0.04l-2.38,0.42l-3.35,1.92l-0.46,1.34l0.13,2.04l-0.71,1.59l-0.73,3.38l-0.54,0.87l-2.15,1.35l-1.11,2.03l-0.68,0.15l-0.2,-1.32l-0.56,-0.55l-0.75,-0.02l-2.38,0.9l-1.56,-0.86l-0.9,0.05l-0.9,0.52l-1.08,1.85l-1.37,1.25l-3.37,0.29l-1.9,-0.8l-1.35,0.35l-0.47,0.66l-0.66,-0.06l-0.41,-0.22l0.4,-1.16l-0.67,-1.08l0.25,-0.19l3.7,-0.17l2.26,-0.53l1.21,0.07l0.42,-0.34l-0.3,-0.45l-0.99,-0.24l-2.8,0.23l-5.66,-1.72l-2.91,0.66l-1.93,0.0l1.05,-1.04l0.47,-1.05l-0.12,-0.48l-0.5,0.01l-0.86,0.73l-2.73,0.25l-0.32,0.4l1.11,0.66l-1.57,-0.11l-0.6,-0.37l-0.61,0.32l-0.09,1.63l-0.48,0.24l-1.89,-0.59l-1.16,0.04l-4.35,1.05l-1.51,-0.37l-2.24,-2.86l-1.34,-0.5l-0.54,-0.67l1.53,-0.13l1.13,1.56l1.15,-0.56l0.69,0.46l0.65,-0.25l0.21,-0.93l0.66,0.6l1.69,0.45l1.67,-0.14l1.46,-0.78l-0.13,-0.88l2.17,-2.6l0.37,-1.63l-1.48,-1.88l-0.44,-0.11l-0.26,0.86l0.64,0.9l-1.1,0.64l0.6,0.74l-0.39,0.02l-1.13,-0.82l0.39,-0.14l-0.02,-0.47l-0.84,-1.0l-0.86,-0.45l-1.89,-0.29l-0.44,0.26l0.31,0.55l-3.56,0.47l-0.85,0.64l-0.55,0.91l-2.13,0.65l0.0,-0.48l-0.46,-0.4l-1.32,0.49l-0.19,-1.21l0.7,-1.13l-1.61,-0.61l-0.47,-1.47l-0.85,-0.33l-0.4,0.46l0.45,2.1l0.01,1.94l0.27,0.88l1.3,1.72l-0.77,0.06l-1.84,-1.77l-0.48,-0.01l0.02,1.33l-0.45,-1.98l-0.51,-0.31l-0.67,0.4l-0.04,1.56l-1.22,-0.46l-1.86,0.87l-0.79,0.06l0.11,-0.88l-1.36,-0.9l-0.9,-0.02l-0.6,0.64l-1.75,-2.35l-1.96,-1.13l0.78,-2.82l4.43,-1.77l0.2,-0.57l-0.36,-1.98l-0.6,-0.34l-0.71,0.3l0.01,-1.53l-0.4,-0.43l-0.73,0.2l-0.33,0.57l-1.35,-0.45l-0.97,0.16l-0.33,0.36l1.51,1.12l0.5,1.38l-0.92,0.03l-0.89,0.76l-0.75,0.18l-0.19,0.67l0.52,0.61l-0.59,0.38l-0.66,1.45l-2.06,-1.94l-1.14,-0.34l-0.21,-0.79l-2.13,-0.87l-1.87,-0.17l0.38,-0.4l0.08,-1.06l0.95,0.1l0.65,-0.32l1.28,-2.54l0.88,-0.82l-0.25,-0.95l-0.44,0.09l-2.95,2.66l-1.78,0.9l-1.23,0.25l-0.32,0.34l0.22,0.41l0.92,0.77l-4.61,0.99l-0.63,-0.17l-2.02,-2.33l-2.01,-3.11l-0.6,-0.18l-0.57,0.4l-0.83,-0.02l-2.13,-0.46l-2.06,0.0l-1.4,-1.03l-2.45,0.05l-0.95,-0.29l-0.44,-0.91l-0.74,-0.41l-3.29,1.44l-0.96,-0.68l-3.48,0.2l-1.22,-1.97l-0.89,-0.77l0.11,-1.0l-0.37,-0.51l-1.34,-0.44l-0.26,-0.87l-1.15,-1.13l-1.72,-1.0l-1.75,-0.32l-0.44,0.53l0.51,1.46l-0.36,0.96l-0.24,0.22l-0.49,-0.49l-1.37,0.27l-0.79,0.62l-1.44,-1.0l-2.43,-0.67l-0.69,-0.82l-1.04,-2.67l-0.42,0.16l-0.7,1.27l0.43,1.31l1.4,1.55l-1.0,0.23l-0.97,0.66l-0.91,-1.34l-1.28,0.04l-0.48,1.28l0.73,0.75l-0.22,0.89l0.4,0.4l1.27,0.0l-1.81,1.5l-2.27,0.79l-8.52,-0.35l-0.07,-1.48l1.2,-0.18l0.52,-0.76l-0.21,-1.72l-1.54,-4.18l-0.96,-1.47l-2.99,-3.31l-6.1,-3.99l-1.18,0.45l-1.3,1.04l-1.84,-1.46l-3.15,-0.06l-3.8,-0.92ZM122.84,278.42l0.11,0.08l-0.08,0.32l-0.03,-0.4ZM122.52,282.02l0.23,1.3l1.65,2.47l-0.96,-0.23l-0.59,0.29l-0.71,-2.5l0.37,-1.33ZM133.84,278.57l0.45,0.38l-0.04,0.12l-0.41,-0.51ZM123.36,297.99l1.01,0.42l1.66,-0.07l0.33,0.33l-0.17,0.99l-1.32,0.33l-4.68,-0.38l-3.08,-0.8l-0.79,-0.48l0.14,-1.16l-1.41,-3.37l0.57,-0.67l4.02,1.8l3.72,3.05ZM1.37,208.95l2.5,-0.92l1.47,0.95l-2.48,1.11l-0.61,-1.01l-0.88,-0.14Z", "name": "Bretagne"}, "FR-X1": {"path": "M572.78,248.31l2.08,2.76l1.34,0.84l0.91,0.04l2.45,-1.72l13.22,-1.52l1.29,-0.82l0.21,-1.86l1.83,-1.16l3.72,0.47l2.38,-0.98l2.0,1.2l3.68,0.69l0.55,0.46l-0.52,1.12l0.41,0.79l2.84,0.99l0.59,0.52l-1.02,1.96l0.47,1.65l1.15,0.43l0.67,-0.37l0.54,-0.83l0.47,-0.03l3.02,3.37l2.43,4.0l0.05,1.03l-2.6,0.55l-0.58,0.46l-0.24,0.88l1.41,1.97l0.37,2.77l0.83,1.89l1.58,0.62l1.84,-1.46l0.41,0.07l2.15,2.8l2.67,1.55l2.02,-0.25l1.44,-1.65l0.75,-0.28l0.74,1.67l1.78,1.46l2.45,1.22l0.68,2.08l0.94,0.42l0.76,-0.18l2.08,-1.37l1.1,1.03l1.19,-0.18l2.67,-4.97l0.7,-0.81l0.64,-0.2l3.99,-0.6l3.21,1.65l1.53,0.3l6.58,-1.86l0.7,-0.44l0.69,-0.83l0.2,-0.97l-0.19,-2.21l0.55,-2.48l-0.58,-2.14l0.19,-0.51l0.63,-0.82l6.42,-3.94l2.41,-2.91l2.03,-0.75l0.4,-0.92l-0.24,-0.87l1.66,-0.91l1.8,-2.61l0.31,0.88l-0.17,1.53l0.84,0.59l3.53,-2.14l2.66,-2.84l1.54,-0.3l2.78,0.53l1.12,0.68l0.83,1.02l-0.06,1.28l0.31,0.67l3.72,1.77l2.64,-0.19l2.39,-1.21l3.0,-0.19l2.26,0.8l5.28,2.92l1.38,0.35l2.17,-0.03l1.59,-0.57l1.93,-2.36l0.72,-0.14l3.61,3.45l3.4,1.51l6.19,4.28l1.5,0.2l0.14,1.19l0.91,0.99l8.6,4.3l0.93,0.78l0.84,1.51l0.15,2.71l-0.51,1.44l-1.54,2.09l0.01,1.47l0.98,0.9l2.57,0.38l3.76,3.82l0.41,1.01l0.0,1.19l-0.38,1.14l-2.02,-0.53l-3.13,0.45l-2.79,-0.68l-2.25,0.79l-0.29,0.46l0.15,0.87l0.88,1.86l-1.14,1.05l-2.47,0.75l-0.32,0.37l-0.08,1.24l-1.37,0.7l-1.02,1.11l-1.15,2.35l0.42,0.52l7.29,-0.62l1.04,-0.41l2.04,1.73l-0.29,0.52l-1.73,0.73l-0.94,1.05l-0.92,0.22l-1.15,1.02l-0.52,1.79l0.21,1.82l-4.0,2.53l-1.78,1.58l-1.19,1.68l-3.91,3.12l-1.76,0.53l-0.28,0.41l0.06,1.05l-0.9,0.44l-0.31,0.51l-1.37,0.42l-0.72,0.57l-0.9,1.31l0.59,1.61l-1.2,1.49l-3.98,2.62l-6.53,1.77l-3.04,1.51l-1.11,2.94l1.07,2.32l0.08,1.66l-1.81,4.3l0.94,1.51l-0.16,1.55l-1.18,1.03l-2.12,1.0l-2.15,1.96l-4.43,2.12l-8.29,6.58l-0.92,1.27l0.3,1.23l1.2,1.17l-1.94,2.13l-3.09,4.33l0.33,2.88l-3.79,4.35l-2.1,1.94l-1.03,1.64l-4.26,3.58l-2.33,0.56l-7.03,-0.44l-0.45,-0.65l-0.22,-1.3l-0.66,-0.88l-3.08,-2.47l-0.52,-0.06l-2.8,2.33l-0.57,1.15l-1.28,0.24l-1.18,1.22l-1.45,0.59l-0.82,0.73l-1.63,-0.33l-0.55,-0.58l0.17,-3.09l-0.55,-0.51l-1.61,-0.3l-0.9,-1.08l-2.54,-0.97l-1.18,-3.01l-1.25,-0.94l-1.43,-0.41l-0.41,-0.65l-0.02,-2.61l-0.31,-0.39l-4.28,-1.02l-1.53,-0.8l-2.16,-1.97l-1.58,-0.52l-2.05,0.18l-3.7,1.25l-1.28,0.13l-3.18,-1.12l-1.8,-0.3l-1.05,0.23l-0.72,0.64l-1.5,3.9l-0.84,4.18l-1.47,2.56l-0.15,1.93l-3.53,6.7l-1.32,4.86l0.08,0.87l-2.89,-0.32l-0.98,-0.75l-0.98,-2.54l0.04,-1.79l-1.73,-1.29l-0.18,-1.86l-0.76,-0.6l-1.87,-0.55l-1.12,0.62l-0.53,1.93l-1.03,0.26l-2.35,-2.01l-0.72,0.04l-1.62,0.92l-1.03,0.08l-2.29,-0.51l-2.25,-0.92l-0.92,0.11l-0.68,0.9l-1.27,4.46l-1.74,2.06l-1.51,1.09l-1.62,0.57l-1.65,0.02l-4.83,-1.24l-3.08,0.65l-4.17,-0.93l-4.25,1.28l-1.42,-0.08l-2.06,-1.47l-2.77,-1.06l0.11,-2.73l-0.6,-1.7l5.26,-2.58l1.52,-1.33l0.08,-0.97l-0.86,-1.29l0.04,-1.38l-0.52,-1.25l0.64,-3.0l-0.8,-3.17l-2.08,-1.35l-4.18,-0.89l-2.7,-2.24l-1.72,-0.07l-3.83,-1.94l0.37,-3.1l-0.38,-1.88l-1.07,-0.72l-1.57,-2.64l-2.41,-2.14l-0.51,-1.65l-1.52,-2.44l-2.0,-0.46l-0.44,0.26l-0.43,1.96l-1.36,0.87l-0.44,1.79l-3.8,2.0l-1.31,0.28l-0.45,-0.19l-0.06,-1.53l-1.67,-2.57l-1.59,-0.43l-0.82,0.13l-1.33,1.43l-0.97,0.48l-2.64,-1.07l-1.82,-0.29l-1.87,0.11l-3.04,1.06l-3.34,-2.82l-1.29,-0.36l-1.77,0.04l-2.77,-1.63l-1.05,-1.28l-0.19,-0.83l0.34,-2.43l2.35,-4.46l-1.16,-3.32l1.31,-4.66l-0.44,-5.56l-2.26,-2.43l0.11,-3.58l-1.26,-4.05l-1.41,-3.21l-0.84,-3.54l-3.63,-3.57l-1.85,-1.04l-0.71,-1.21l2.92,-5.34l0.56,-3.19l-0.17,-0.62l-1.7,-2.2l-1.25,-2.57l-1.44,-1.56l0.08,-0.29l2.27,-1.1l2.94,-0.21l1.27,-0.38l0.25,-0.54l-0.6,-1.33l-2.08,-2.61l0.57,-2.21l-1.26,-2.45l-2.54,-2.22l-2.26,-0.85l-0.21,-1.48l0.17,-0.7l0.75,-0.56l4.07,-0.42l4.77,-2.29l0.53,-0.86l-0.08,-2.09l0.82,-1.64l-0.97,-2.16l-0.15,-2.18l1.55,-0.25l1.46,-1.47l2.5,-1.52l2.08,-4.18l-0.63,-2.78l-2.95,-2.35l-0.89,-1.09l-1.46,-4.45l-1.91,-1.27l-3.81,-0.73l0.73,-2.78l3.72,-2.26l1.64,-2.66l0.15,-0.86l-0.86,-1.48l-0.18,-1.43l1.15,-3.5l0.41,-0.36l3.03,0.06l2.27,-0.89l4.61,0.48l6.23,-0.91l2.51,0.47l0.72,-0.38l0.87,-1.43l1.29,-1.21l0.68,0.48l0.65,2.62l0.7,0.31l1.89,-0.13l2.82,1.56l5.42,6.18l0.37,0.67l0.39,2.99l-1.82,2.13l0.14,1.13l2.19,0.89l3.06,2.04l1.02,0.12l1.09,-0.29l0.78,-1.18l1.07,0.24l1.04,2.12l1.93,1.93l4.55,6.82l-1.58,0.69l-0.06,1.02l2.02,1.14l2.25,-0.31l0.24,0.47l-0.05,2.31l0.83,1.24l2.41,0.53l2.82,-0.18l1.96,0.66l0.71,-0.08l1.68,-1.15l1.71,0.44l2.04,-0.07l2.04,-1.61l0.63,0.05l1.22,0.92l0.82,0.12l0.66,-0.82l0.03,-1.6Z", "name": "Bourgogne-Franche-Comt\u00e9"}, "FR-MQ": {"path": "M29.58,521.59l2.04,4.09l0.61,0.13l1.69,-1.37l2.35,-1.15l2.71,-0.7l1.66,-0.01l-1.1,1.0l0.15,0.92l-1.99,2.03l-1.17,-1.91l-0.57,-0.12l-1.08,0.91l-0.34,2.42l0.25,2.72l0.56,0.33l1.58,-0.37l0.87,0.65l-2.81,1.51l-0.09,0.63l0.51,0.51l-0.97,0.5l-0.21,0.44l0.48,1.35l1.03,0.35l0.45,-0.14l0.84,-1.13l2.53,1.1l-1.26,0.61l-0.22,0.52l0.83,1.98l1.01,1.02l2.32,1.31l0.92,2.1l2.03,0.78l0.32,0.71l-0.03,1.98l0.6,0.39l0.71,-0.41l-0.25,2.4l0.41,1.46l0.77,1.07l-1.35,1.57l0.15,0.59l1.42,0.69l1.69,5.35l-1.43,0.75l-1.43,3.51l-1.14,1.51l-1.19,0.51l-1.52,0.14l-1.15,-0.51l-0.42,-1.43l0.56,-0.96l1.27,-0.41l1.36,-0.96l0.05,-2.11l-1.15,-1.71l-0.48,-0.15l-3.49,1.8l-1.39,-0.1l0.06,-0.84l-0.32,-0.42l-0.79,-0.15l-3.38,0.55l-6.91,-0.91l-2.07,0.3l-2.92,1.18l-1.59,0.24l-0.81,-0.46l-2.5,-3.48l-0.12,-1.4l-1.35,-0.99l2.86,-2.99l3.07,-1.49l0.78,-0.71l1.21,1.62l2.11,0.55l1.94,-0.83l0.87,-2.13l-2.15,-3.7l-0.25,-2.0l-0.53,-0.33l-3.16,0.87l-5.49,-0.02l-1.6,-2.4l-4.32,-2.94l-2.07,-1.98l-1.24,-3.51l-1.31,-1.93l0.78,-2.27l-0.31,-1.75l-1.64,-2.67l-3.41,-3.56l-0.79,-1.4l-0.29,-1.59l0.29,-1.51l0.74,-1.23l0.98,-0.9l4.61,-2.61l4.02,-0.06l3.94,1.27l5.23,3.33l4.71,2.09l1.84,1.19l1.36,2.81l1.45,0.5Z", "name": "Martinique"}, "FR-YT": {"path": "M678.38,715.39l-0.52,0.0l-2.02,-6.29l2.65,-2.73l0.87,2.15l0.24,2.21l-0.38,2.26l-0.84,2.4ZM647.49,692.27l-1.04,0.75l-0.14,0.46l1.6,0.36l0.6,0.88l2.18,1.87l2.93,3.52l1.63,1.28l2.49,0.62l4.96,-0.04l2.61,0.78l2.6,1.74l1.05,1.73l0.02,2.1l-0.68,2.82l-3.71,5.46l-1.53,1.19l0.14,2.09l1.04,1.92l2.81,1.86l-0.3,1.89l-3.07,6.4l-2.6,3.07l-1.21,3.45l2.82,4.18l-1.15,1.69l-1.53,1.06l-0.76,-1.37l-0.41,-0.2l-1.1,0.17l-1.53,1.03l-1.83,0.51l-1.63,-0.43l-2.25,-1.33l-1.24,0.41l0.12,-1.88l-0.84,-1.8l-1.74,-0.77l-1.92,0.17l0.0,-0.31l2.91,-1.61l0.29,-2.68l-1.49,-2.81l-2.83,-1.57l0.22,-0.43l1.06,-0.67l1.55,-0.14l0.82,0.5l2.83,3.33l2.81,1.68l1.89,-0.73l0.6,-2.42l-0.76,-2.88l-1.37,-2.17l-1.74,-1.96l-4.21,-3.56l2.58,-0.75l0.36,-0.4l-0.07,-1.34l-0.91,-1.33l-0.68,-2.3l-0.55,-4.71l-0.6,-2.37l-1.57,-1.23l-1.87,-0.61l-1.59,-1.03l-1.74,-2.81l-0.41,-4.1l7.31,-7.87l0.59,1.27l-0.82,0.34Z", "name": "Mayotte"}, "FR-X4": {"path": "M522.82,186.37l0.16,-1.02l1.68,-1.84l-0.22,-0.68l-0.89,-0.72l3.35,-0.37l0.76,-1.01l0.2,-1.75l1.48,-2.59l4.29,-3.81l1.07,-2.07l1.68,-1.1l0.81,-1.18l2.06,-1.61l0.39,-0.63l-0.02,-1.16l-0.99,-0.78l-3.39,0.04l-0.83,-0.47l0.06,-1.11l1.31,-0.86l1.17,-1.67l0.21,-0.79l-0.25,-2.97l1.17,-0.73l3.12,0.34l1.45,-0.25l1.33,-1.0l0.36,-0.86l-0.5,-1.26l-1.41,-0.81l-0.87,-0.98l-1.6,-0.47l-0.56,-4.86l-0.91,-2.12l2.95,-1.52l5.1,-1.23l4.31,-0.57l0.52,-0.78l-0.12,-1.35l0.85,-0.54l2.04,0.1l3.04,1.4l2.06,-0.68l2.32,0.84l1.14,-0.78l0.49,-1.35l0.08,-2.0l-0.52,-1.32l-0.68,-0.44l0.36,-0.58l1.56,-0.48l0.31,-0.52l-1.82,-3.65l1.76,-1.97l-0.32,-2.31l0.46,-1.54l-1.6,-4.48l0.75,-0.67l1.86,-0.09l1.55,-0.83l1.47,-2.03l1.72,-1.03l3.2,-2.67l0.94,-1.48l0.01,-1.35l-1.51,-2.11l0.44,-2.67l1.83,-3.2l0.19,-1.43l-0.27,-1.06l-1.76,-2.77l-0.03,-2.56l3.32,-0.4l9.73,2.22l1.91,-0.29l8.49,-3.54l2.64,-0.38l0.81,-0.51l1.03,-2.26l0.49,-2.73l-0.42,-1.4l0.42,-1.14l6.43,-5.47l1.16,-0.45l0.43,1.03l0.89,0.26l1.7,-0.3l0.3,0.34l-0.46,3.48l-0.42,-0.16l-0.65,0.28l-1.15,2.13l-0.07,2.33l-2.32,4.87l-0.3,1.37l0.89,1.44l2.96,1.1l0.83,1.27l-0.04,1.46l-1.51,3.13l0.87,1.86l0.09,3.19l0.8,0.73l1.7,0.19l5.18,-1.02l3.3,2.38l3.4,1.12l3.27,3.72l2.07,1.47l1.72,0.4l3.86,-0.67l2.26,2.11l0.31,0.88l-0.71,0.59l-0.19,1.13l0.55,1.39l1.85,0.16l0.84,-1.02l2.66,0.93l1.03,0.78l2.89,4.41l0.2,1.33l-0.26,1.48l0.69,1.13l1.59,0.26l4.1,-2.17l2.36,0.84l1.04,-0.1l1.27,-1.8l1.33,-0.57l4.11,0.97l2.13,-1.42l2.44,0.88l3.06,3.02l1.61,0.63l3.79,0.76l0.99,0.85l0.81,2.18l0.48,0.25l7.2,-0.85l1.6,-1.26l0.33,-1.21l1.94,-0.22l0.21,-0.79l2.88,-0.27l3.24,0.68l4.79,2.7l1.85,0.15l2.29,-0.93l0.53,0.08l5.52,2.34l0.95,0.78l0.43,1.78l3.49,3.43l-1.28,0.51l-0.34,1.05l0.39,0.92l5.12,4.46l-0.0,1.31l1.48,0.85l1.03,2.86l0.65,0.17l0.76,-0.38l0.24,0.78l-0.46,1.9l1.04,1.55l0.86,0.29l2.67,0.02l2.33,0.73l0.97,-0.14l1.37,-1.65l-0.67,-2.53l0.24,-0.75l2.79,0.42l1.85,-0.14l4.34,1.88l1.09,0.08l-0.03,2.41l0.73,2.3l1.51,1.11l2.29,-0.99l0.3,-0.66l-0.21,-0.77l0.26,-0.22l2.39,1.43l1.98,0.72l5.31,0.06l2.06,0.7l0.67,-0.41l0.98,-1.46l2.37,-0.6l0.98,-1.9l2.23,-0.77l0.85,0.06l0.55,0.9l3.47,0.42l0.22,0.64l-0.49,0.46l-0.0,0.71l3.02,3.51l1.57,0.84l2.62,0.39l1.24,0.55l0.93,1.37l0.84,0.6l1.01,0.16l2.14,-0.55l2.64,0.55l2.77,-0.96l5.0,1.23l4.59,-0.2l9.65,4.37l6.29,1.29l-1.02,1.01l-1.91,3.08l-2.79,6.52l-0.7,1.0l-3.2,1.38l-0.7,0.85l-0.46,1.3l-2.12,0.14l-0.95,0.41l-0.65,2.78l-3.8,3.45l-2.72,1.47l-2.58,3.44l-0.59,2.73l-0.01,2.81l0.72,2.0l-2.23,1.72l-0.47,2.28l-1.12,1.98l-0.77,3.01l-0.07,1.2l0.89,2.96l-0.06,0.91l-0.71,0.98l-2.24,1.43l-0.92,4.51l-4.46,5.68l-0.61,2.23l-1.16,1.77l-0.81,2.75l0.18,3.35l2.65,4.1l0.12,2.21l-2.19,2.41l-0.36,2.63l-1.24,1.91l0.21,3.21l-1.19,0.9l-1.06,3.68l0.75,2.84l-0.03,1.09l-1.25,1.28l-0.34,0.8l0.43,2.7l1.23,0.87l2.11,3.24l1.05,1.06l-0.21,1.33l-3.51,1.37l-2.73,1.91l0.1,0.7l1.12,0.69l0.01,0.32l-1.72,0.61l-0.07,0.53l0.6,1.0l-0.84,0.74l-2.31,-0.79l-0.93,0.18l-0.3,0.87l0.9,1.46l-1.22,1.75l-1.53,0.53l-4.27,-0.15l-4.24,1.21l-0.96,-0.82l-3.02,-1.12l-0.26,-0.95l1.04,-2.07l-0.39,-0.58l-1.82,0.11l0.39,-1.2l0.0,-1.45l-1.12,-2.14l-3.45,-3.28l-0.86,-0.37l-1.8,-0.05l-0.57,-0.53l0.01,-0.77l1.5,-2.01l0.61,-1.75l-0.17,-3.01l-1.03,-1.85l-1.11,-0.92l-8.58,-4.29l-0.62,-0.69l-0.07,-1.18l-0.36,-0.37l-1.57,-0.16l-6.14,-4.25l-3.36,-1.49l-2.89,-3.05l-1.0,-0.52l-0.66,-0.08l-0.72,0.37l-1.82,2.29l-1.32,0.48l-1.98,0.03l-1.09,-0.27l-5.28,-2.92l-2.42,-0.87l-3.37,0.19l-1.11,0.31l-1.36,0.92l-2.15,0.18l-3.33,-1.51l-0.16,-1.78l-1.1,-1.33l-1.36,-0.79l-2.91,-0.55l-2.05,0.41l-2.72,2.89l-3.08,1.95l0.04,-2.28l-0.66,-0.67l-0.65,0.03l-0.83,0.72l-1.26,2.11l-1.69,0.8l-0.26,0.52l0.33,0.93l-0.2,0.45l-1.94,0.67l-2.38,2.89l-6.41,3.93l-0.82,1.02l-0.32,1.1l0.57,2.0l-0.54,2.43l0.2,2.14l-0.58,1.27l-6.85,2.14l-1.15,-0.23l-3.43,-1.72l-4.29,0.62l-1.46,0.81l-2.83,5.28l-0.39,0.11l-0.67,-0.88l-0.77,-0.22l-2.89,1.56l-0.53,-0.69l-0.42,-1.51l-3.74,-2.21l-0.5,-0.48l-0.45,-1.41l-0.55,-0.47l-1.19,0.09l-1.76,1.89l-1.49,0.14l-2.23,-1.34l-2.42,-2.98l-1.06,-0.04l-1.62,1.4l-0.89,-0.42l-0.59,-1.48l-0.36,-2.77l-1.38,-1.79l0.33,-0.6l2.33,-0.37l0.83,-0.93l-0.18,-1.31l-1.18,-2.31l-4.52,-5.41l-1.18,-0.18l-1.09,1.24l-0.51,-0.21l-0.23,-0.95l0.85,-1.35l0.11,-1.07l-1.02,-0.91l-2.65,-0.91l0.44,-1.3l-0.31,-0.7l-0.84,-0.49l-3.68,-0.69l-1.99,-1.23l-2.67,0.98l-2.98,-0.51l-1.76,0.38l-1.47,1.25l-0.22,1.84l-0.81,0.45l-13.17,1.5l-2.39,1.7l-0.5,0.01l-1.12,-0.71l-1.95,-2.64l-0.78,-0.38l-0.55,0.41l-0.26,2.11l-1.42,-0.99l-1.02,-0.13l-0.91,0.39l-1.31,1.25l-1.75,0.05l-1.93,-0.43l-1.85,1.2l-2.25,-0.63l-2.87,0.17l-1.97,-0.36l-0.57,-0.86l0.08,-2.22l-0.52,-0.94l-0.98,-0.2l-1.67,0.35l-1.41,-0.73l1.56,-0.67l0.12,-0.94l-4.65,-7.0l-1.91,-1.9l-0.72,-1.79l-0.62,-0.61l-1.22,-0.42l-0.78,0.28l-0.57,1.04l-1.58,0.12l-2.82,-1.93l-2.05,-0.84l1.35,-1.41l0.55,-1.05l-0.39,-3.31l-0.49,-0.96l-5.62,-6.39l-3.0,-1.66l-2.3,-0.01l-0.47,-2.37l-1.12,-0.92l-0.15,-0.51l0.56,-2.27l-0.63,-1.75l1.81,-1.89l-0.93,-1.96l2.55,-0.54l0.75,-0.59l1.02,-2.47l0.98,-1.32l2.66,-1.99l0.06,-0.58l-1.98,-2.34l-2.8,0.05l-0.2,-1.26l0.51,-1.93l-0.76,-3.12l-2.03,-2.25l-1.36,-0.04Z", "name": "Alsace-Champagne-Ardenne-Lorraine"}, "FR-X5": {"path": "M296.09,638.61l-0.69,-4.39l0.23,-0.9l1.78,-2.58l-0.28,-3.88l2.39,-2.45l2.79,-0.25l0.84,-0.59l0.32,-0.83l-0.41,-1.39l0.02,-1.75l0.72,-0.92l2.37,-1.37l1.67,-2.92l1.05,0.11l0.6,-0.32l1.2,-3.37l1.88,-1.77l0.55,-1.02l0.07,-0.67l-0.62,-1.7l0.51,-2.21l0.68,-0.76l2.02,-0.75l0.47,-0.89l-1.07,-3.38l0.21,-2.73l-0.21,-0.77l-0.56,-0.5l-0.61,-0.06l-0.78,0.37l-1.02,1.09l-0.38,-0.27l-0.07,-1.71l1.65,-0.19l0.44,-0.8l-0.43,-1.63l-1.92,-3.78l-1.59,-1.2l-0.74,-1.54l-1.23,-0.77l-5.85,-1.11l-1.94,0.13l-0.8,-1.93l-0.88,-0.6l1.33,-2.32l-0.5,-1.87l1.41,-0.23l0.84,-0.72l1.33,-3.17l-0.83,-1.53l0.05,-2.22l1.48,-3.42l-0.0,-0.64l-0.91,-2.1l-1.51,-1.7l0.06,-0.26l3.02,-2.18l2.14,0.33l2.17,-0.22l1.91,-1.79l2.5,-1.32l1.3,0.7l0.06,0.52l-0.83,1.47l0.06,0.63l0.61,0.78l1.48,0.53l2.83,0.04l0.81,-0.49l0.46,-0.83l-0.21,-2.54l0.68,-1.02l1.79,-0.56l0.96,0.87l1.31,-0.01l1.3,-0.95l2.0,-2.61l0.42,-0.08l4.36,1.63l0.81,-0.02l3.09,-1.56l1.3,-0.2l4.46,-1.96l1.1,-0.75l2.5,0.3l5.09,-1.52l1.7,0.75l2.19,1.82l1.56,-0.16l3.92,-2.03l1.14,-2.97l2.17,-1.22l0.77,-1.7l1.0,-0.23l2.2,0.69l1.76,-0.35l0.51,-0.77l-0.02,-0.8l-0.33,-0.62l-1.03,-0.71l2.05,-1.55l2.29,-4.41l0.28,-1.14l-0.68,-1.14l-2.14,-0.75l-0.89,-1.21l0.8,-1.93l0.2,-2.29l0.6,-0.27l1.68,0.95l1.42,0.26l5.01,-0.38l1.18,-1.19l0.12,-3.52l-1.84,-1.84l-0.96,-2.38l-0.09,-1.96l-1.19,-1.7l0.07,-0.49l0.56,-0.53l2.99,-1.33l3.6,-2.94l3.41,-5.27l0.78,-0.63l2.29,-0.5l4.57,-2.86l1.44,-2.18l-0.02,-1.02l-0.61,-0.82l0.11,-0.81l0.64,-0.86l2.37,-0.76l1.69,-2.66l2.13,-1.79l0.74,-1.12l-0.14,-1.73l0.68,-1.13l0.08,-1.03l-1.31,-3.89l0.24,-0.96l3.33,-2.09l1.05,-0.26l1.04,-0.9l1.16,1.27l2.28,-0.55l2.62,0.91l4.01,2.82l1.3,1.87l1.92,0.91l1.31,1.01l0.85,0.2l1.52,0.03l3.21,-0.98l3.94,-1.84l2.17,0.72l1.98,-0.89l4.23,-0.19l0.61,1.12l0.9,5.86l3.12,4.71l1.22,2.47l-0.85,4.57l-0.66,1.67l0.13,0.4l1.71,1.0l1.23,3.98l0.91,0.71l0.84,0.16l0.43,-0.29l0.49,-1.7l5.01,-1.51l1.0,0.08l1.12,1.11l0.62,0.08l1.36,-0.63l3.34,0.11l1.98,-0.21l1.25,-0.59l3.91,-4.25l0.61,-2.45l2.43,-3.52l0.63,-2.44l7.94,-7.42l2.16,2.45l0.35,2.78l0.85,0.31l2.55,-0.29l2.18,2.96l0.8,2.12l1.02,0.73l1.85,0.66l-1.03,0.82l-0.2,0.72l0.58,1.36l0.58,3.63l1.38,2.09l2.07,1.57l0.62,-0.19l0.85,-2.42l1.89,-2.92l0.36,-2.65l1.38,-4.58l0.47,-0.79l1.76,-1.22l0.98,-3.72l0.74,-0.4l1.59,1.82l1.21,-0.05l1.38,-0.79l3.42,-3.06l2.41,-0.28l3.68,-2.03l1.93,-0.24l0.36,0.35l0.79,2.6l3.5,5.9l1.31,1.29l1.23,0.42l1.33,-0.63l3.37,-0.36l1.07,-0.91l0.56,-2.31l0.89,-0.32l1.69,0.16l0.84,0.67l-0.48,1.5l0.3,0.89l4.51,0.95l4.08,3.38l2.89,1.45l1.57,0.41l-0.03,2.85l1.28,3.55l0.51,3.07l0.72,2.11l0.66,1.17l1.36,0.88l0.8,1.32l2.21,6.94l1.77,1.52l1.64,2.61l-0.83,2.07l0.49,3.26l0.42,0.65l0.92,0.24l4.17,-0.59l1.08,1.04l4.93,2.42l1.51,0.3l1.25,-0.53l1.13,-1.2l2.93,-1.99l2.23,-0.62l0.91,0.24l-0.18,1.71l0.35,0.84l1.54,0.89l0.98,-0.13l1.05,-0.78l0.46,-2.02l0.63,-0.49l3.18,-0.06l1.68,0.67l2.19,2.02l1.73,0.78l2.57,0.61l0.57,1.69l1.23,1.54l0.1,1.58l1.9,1.83l0.18,2.73l-0.33,2.14l0.45,2.79l0.62,0.47l1.22,-0.4l1.2,0.21l4.51,5.33l-0.09,0.53l-1.09,-0.09l-0.55,0.26l-0.07,2.45l-1.05,1.25l-1.67,1.19l-2.8,1.16l-5.36,3.57l-0.17,0.92l0.54,4.15l-1.95,4.79l0.01,1.9l-0.43,1.1l-4.47,-1.25l-2.03,0.57l-1.49,1.04l-1.68,2.12l-1.37,2.92l0.45,1.06l1.58,0.26l-0.52,1.33l-2.32,0.57l-0.61,1.38l-1.54,0.44l-3.46,2.46l-2.02,0.48l-1.44,1.06l-1.17,0.31l-1.37,3.01l-2.27,-0.34l-2.81,-1.63l-0.8,-1.47l0.85,-1.47l-0.07,-0.6l-1.92,-1.42l-3.63,-0.32l-3.46,0.39l-2.41,0.83l-13.11,9.5l-7.26,2.86l-2.05,1.55l-4.61,5.42l-1.04,0.41l-2.52,-1.04l-4.05,0.36l-4.36,1.63l-4.56,3.3l-1.44,1.8l-2.59,2.25l-1.5,2.23l-2.41,2.09l-2.8,6.09l-1.93,6.26l0.17,0.94l0.79,0.58l0.07,1.22l-0.96,8.67l0.17,4.88l-0.34,3.08l0.26,4.02l0.72,5.72l1.02,1.05l4.27,1.24l0.37,0.52l-0.12,1.76l1.98,2.59l0.3,1.34l-2.29,0.36l-3.05,-0.09l-1.83,-0.7l-1.61,-2.13l-2.87,-0.28l-1.16,0.57l-2.17,-0.57l-1.94,1.35l-3.1,0.24l-3.76,2.65l-4.83,-0.08l-1.22,0.53l-2.65,1.86l-0.57,0.72l0.5,1.8l0.52,0.57l-2.26,-0.17l-2.79,-0.85l-1.31,0.01l-0.83,0.63l-0.48,1.11l-0.67,0.22l-2.94,-1.07l-1.08,-0.76l-1.67,-2.44l-2.78,-0.4l-6.16,-2.91l-1.99,0.2l-3.71,1.04l-3.02,-0.29l-1.14,0.54l-1.01,1.86l-2.45,1.95l-0.62,0.36l-2.45,0.36l-0.71,-0.1l-1.77,-1.24l-1.32,-3.75l-1.07,-1.5l-3.53,-0.74l-4.73,-2.58l-4.65,-0.78l-0.31,-0.6l0.18,-1.54l0.62,-1.4l0.95,-0.83l1.41,-0.12l0.28,-0.64l-0.97,-1.12l-2.03,-0.75l0.42,-1.19l-0.34,-0.53l-6.9,-0.61l-4.12,-2.32l-2.77,0.67l-1.86,-0.09l-0.4,0.28l-0.88,2.73l-0.91,0.33l-0.66,-0.77l-1.07,-2.58l-2.23,-3.15l-1.29,-0.49l0.21,-0.83l-0.29,-0.49l-1.53,-0.36l-7.55,-0.02l-2.58,0.53l-0.9,-0.58l-1.64,-3.14l-1.32,-1.06l-1.36,-0.37l-5.14,-0.31l-1.98,-1.15l-1.93,0.82l-1.92,-1.37l-4.63,-2.09l-2.28,-0.07l-4.25,-1.04l-1.85,0.13l-1.67,0.77l-0.3,1.2l0.12,1.49l-0.82,1.99l0.47,0.91l-0.83,1.28l0.24,0.56l0.76,0.24l0.61,0.69l0.36,0.97l-0.05,1.0l-0.39,0.58l-10.29,0.14l-1.18,-0.37l-3.41,0.59l-1.07,-0.19l-0.39,-1.05l-2.06,-1.35l-1.26,0.44l-2.75,3.06l-0.55,0.07l-2.26,-3.03l-4.31,-1.22l-1.14,0.13l-1.23,0.71l-3.75,0.5l-4.68,1.54l-1.99,0.16l-2.26,-0.8l-1.02,-1.0l-1.36,-0.45l-0.27,-0.97l-1.39,-1.16l-0.66,-0.99l-0.32,-1.14l0.13,-1.21l-0.54,-0.42l-2.76,0.82l-1.36,-0.14l-0.79,-1.35l-3.39,-1.83ZM436.08,668.09l0.96,-0.22l0.2,-0.59l-1.32,-2.33l-0.63,-0.79l-0.47,-0.12l-0.9,0.48l-0.67,1.33l0.07,1.16l0.97,0.84l1.79,0.25ZM309.0,601.52l-0.8,-0.16l-0.41,-0.99l0.4,-2.01l0.84,-0.4l0.79,0.28l0.31,0.77l-0.59,2.03l-0.54,0.47ZM307.75,607.5l-0.9,-0.16l-0.53,-1.24l0.07,-0.86l1.14,-1.14l1.03,0.52l0.48,1.4l-0.86,1.31l-0.43,0.15Z", "name": "Languedoc-Roussillon-Midi-Pyr\u00e9n\u00e9es"}, "FR-X6": {"path": "M415.84,70.92l0.57,0.0l0.4,-0.4l0.0,-0.59l-0.39,-0.4l-2.26,-0.33l-0.8,-0.54l-1.15,-2.03l-2.54,-1.04l-0.42,-0.47l0.59,-5.43l1.08,-1.83l2.08,0.36l0.47,-0.39l-0.18,-0.83l-3.2,-2.12l1.12,-3.04l0.33,-6.83l1.74,-1.1l0.1,-0.58l-1.61,-2.08l-0.3,-1.01l-0.26,-3.74l-0.64,-3.46l0.26,-2.94l2.0,-4.41l0.34,-1.54l-1.52,-6.24l1.26,-0.84l3.05,-0.71l2.82,-2.96l1.8,-1.42l11.58,-4.22l1.24,0.13l2.03,-1.0l9.83,-1.04l11.16,-3.16l4.16,0.3l5.0,-1.09l3.16,-1.35l0.71,1.42l0.6,3.51l0.63,1.64l3.14,3.26l0.16,1.34l-1.61,1.47l-0.46,0.87l1.16,3.76l-0.52,1.99l1.22,0.87l1.03,1.61l4.25,0.56l0.92,1.61l2.23,1.78l1.46,2.61l1.24,0.91l5.27,2.03l1.32,0.13l0.92,-0.63l1.82,-2.63l2.37,-1.63l7.93,-2.08l1.41,0.36l0.92,0.73l2.64,4.35l0.72,0.59l1.48,0.27l0.38,0.58l0.61,1.69l-0.8,1.48l0.51,2.38l1.6,4.47l0.09,2.5l0.42,1.17l1.9,1.66l3.82,1.44l1.7,-0.16l2.68,-0.82l2.06,-1.38l0.72,-0.05l0.89,0.38l-0.6,1.19l0.12,0.56l0.76,0.47l4.13,0.08l2.56,0.75l1.12,0.9l0.91,1.39l1.05,10.05l2.3,1.94l1.29,-0.74l1.51,-2.44l1.09,-0.6l2.59,-0.16l2.45,0.25l3.52,1.61l1.52,-0.04l3.85,-1.36l1.15,-0.1l1.03,0.41l1.98,1.84l2.53,1.56l1.84,3.13l1.53,0.38l0.59,-0.74l-0.06,-0.72l0.39,-0.14l1.83,1.02l0.14,0.88l-2.69,2.35l-1.79,5.34l-0.17,1.55l1.11,0.78l1.48,-0.45l0.84,0.08l1.74,4.81l-3.86,2.3l-0.55,0.59l-0.59,1.62l0.62,1.5l0.04,0.67l-0.45,0.3l0.22,0.46l3.43,1.56l1.54,0.17l0.08,2.76l1.79,2.83l0.07,1.8l-1.86,3.26l-0.49,2.91l0.31,0.92l0.9,0.74l0.32,1.65l-0.7,1.08l-3.14,2.62l-1.8,1.1l-1.44,2.0l-1.21,0.65l-2.01,0.15l-1.16,1.07l0.06,0.89l1.48,3.98l-0.45,1.42l0.37,2.06l-1.37,1.28l-0.45,0.95l0.11,0.84l1.61,2.67l-1.45,0.55l-0.75,1.27l0.2,0.5l0.68,0.33l0.4,0.93l-0.07,1.86l-0.63,1.32l-0.79,0.0l-1.69,-0.75l-2.03,0.68l-2.88,-1.37l-2.38,-0.13l-1.45,0.91l-0.06,1.82l-4.11,0.52l-5.16,1.25l-3.39,1.78l-0.06,0.98l0.85,1.81l0.67,5.15l0.51,0.49l1.41,0.26l2.36,2.15l-0.2,0.54l-0.95,0.74l-1.13,0.21l-3.3,-0.33l-1.51,0.77l-0.45,1.51l0.35,1.68l-0.15,1.05l-0.98,1.37l-1.47,1.05l-0.1,1.7l0.34,0.61l1.16,0.44l3.19,-0.1l0.6,0.44l-0.02,0.44l-2.28,1.99l-0.73,1.1l-1.76,1.18l-1.05,2.05l-3.83,3.24l-2.02,3.25l-2.26,0.11l-3.0,-1.67l-0.43,-0.63l-0.47,-2.75l-0.76,-0.9l-0.81,-0.01l-0.99,0.47l-0.51,-0.14l-8.73,-6.6l-0.51,-1.18l0.6,-1.73l-0.09,-0.9l-0.97,-1.91l-1.19,-1.29l-3.91,-1.13l-2.27,1.08l-1.86,0.05l-1.84,1.04l-1.74,-0.79l-5.87,1.07l-4.04,-0.91l-0.77,0.16l-1.31,1.18l-0.79,0.15l-2.03,-1.11l-1.93,0.48l-1.66,-1.34l-1.69,-0.39l-2.67,0.99l-1.08,-0.76l-1.25,-1.57l-0.8,-0.23l-1.37,0.39l-10.67,-5.04l-1.18,-0.26l-1.21,0.29l-2.01,1.11l-1.55,-0.09l-3.94,-1.5l-2.4,-0.25l-1.47,-0.68l-1.66,-1.28l-0.74,-0.17l-1.89,0.7l-3.44,2.04l-4.01,0.26l-2.09,0.47l-5.65,-1.4l-2.68,-0.11l-1.23,-0.58l-0.69,-1.87l-0.93,-0.84l-0.28,-0.86l-0.07,-0.43l0.7,-0.94l0.92,-0.28l0.45,0.19l1.28,1.38l0.8,0.35l0.78,-0.08l0.66,-0.55l-0.41,-1.62l-1.62,-3.45l-1.74,-5.57l-0.28,-3.2l1.24,-3.11l1.48,-1.09l0.51,-1.75l-0.83,-1.22l-2.26,0.41l-0.42,-0.32l-0.42,-3.51l-0.53,-1.76l-0.18,-3.85l-0.71,-1.37l2.2,-1.38l0.74,-1.07l0.26,-1.01l-0.65,-0.89l-2.49,0.44l-0.22,-0.26l2.37,-3.65l2.12,-1.58l0.03,-1.31l-2.65,-4.66l-0.9,-3.09l-1.01,-1.33l-10.08,-8.97l-8.3,-4.93l5.17,-5.05l1.41,-4.28l1.94,-2.2l1.85,-0.21l5.97,2.46l0.78,-0.01l0.75,-0.53l0.14,-0.85l-1.42,-0.64Z", "name": "Nord-Pas-de-Calais-Picardie"}, "FR-X7": {"path": "M458.84,445.76l1.95,-0.35l3.03,1.58l1.95,0.27l1.37,-0.72l0.73,-1.76l1.22,-4.68l-1.19,-1.15l-0.26,-4.14l-1.44,-1.87l-0.36,-0.94l0.86,-2.7l1.65,-0.68l0.84,-1.03l0.29,-4.28l-0.66,-1.43l-1.92,-2.11l-0.96,-0.86l-1.78,-0.64l-0.67,-1.98l-1.72,-2.4l0.64,-0.91l3.14,-2.29l2.41,-0.16l2.48,-2.58l1.63,-3.33l1.7,-1.93l0.19,-3.74l-0.21,-0.9l-1.86,-3.26l-0.2,-1.44l0.37,-3.62l-2.17,-3.8l-1.06,-3.16l-3.18,-4.2l-1.27,-0.36l-1.13,0.66l-0.76,-1.76l-0.96,-0.91l-3.48,-0.95l-0.4,-0.39l-0.94,-2.84l-1.76,-1.56l-1.91,-2.38l2.1,-3.42l1.46,-0.64l1.48,-1.8l3.52,-1.57l7.94,-0.8l5.53,-1.6l0.14,-1.5l-1.97,-2.78l-0.03,-0.72l0.53,-1.33l-1.03,-1.64l0.3,-0.35l2.27,-0.17l0.41,-0.79l-0.09,-1.21l1.63,-0.12l4.07,-3.3l0.82,0.8l2.29,0.76l0.71,-0.21l1.28,-1.11l2.21,0.26l1.77,-2.17l3.83,-2.18l2.59,-0.73l2.86,0.18l0.27,1.52l1.25,1.52l3.22,1.84l2.72,0.19l2.74,2.56l0.75,0.33l1.03,0.0l2.4,-1.05l1.66,-0.1l1.61,0.25l2.97,1.11l1.41,-0.68l1.06,-1.27l1.82,0.28l1.29,2.19l0.04,1.49l0.5,0.54l0.6,0.12l1.71,-0.33l4.06,-2.15l0.58,-1.97l1.34,-0.87l0.39,-1.8l1.21,0.2l1.4,2.25l0.6,1.79l2.46,2.19l1.56,2.63l0.94,0.54l0.28,1.5l-0.41,3.04l0.32,0.67l4.03,2.05l1.74,0.08l2.67,2.22l3.67,0.71l2.19,1.13l0.73,2.83l-0.64,3.08l0.52,1.3l-0.02,1.46l0.82,1.68l-1.19,1.0l-5.58,2.73l-0.18,0.55l0.71,1.8l-0.19,2.42l0.26,0.72l1.01,0.63l2.01,0.62l2.09,1.49l0.85,0.18l1.12,-0.06l4.06,-1.25l3.56,0.89l3.56,-0.61l4.78,1.24l1.97,-0.03l1.79,-0.63l1.67,-1.19l1.89,-2.21l1.71,-5.14l5.06,1.43l1.25,-0.12l1.94,-0.93l1.54,1.64l0.93,0.37l1.05,-0.11l0.65,-0.45l0.57,-1.97l0.55,-0.28l1.79,0.68l0.27,1.99l1.62,1.08l0.05,2.15l1.07,2.48l1.36,0.98l3.59,0.4l0.43,-0.51l-0.22,-1.1l1.28,-4.71l3.52,-6.66l0.17,-1.98l1.46,-2.52l0.86,-4.24l1.47,-3.8l1.04,-0.4l5.0,1.43l1.47,-0.15l3.7,-1.24l1.74,-0.16l1.25,0.39l2.16,1.97l1.64,0.85l4.11,0.99l0.02,2.41l0.61,1.09l1.69,0.58l0.98,0.74l0.72,2.39l1.08,1.11l2.12,0.65l0.91,1.09l1.74,0.37l-0.08,3.17l0.9,0.94l1.79,0.47l2.93,-1.5l1.13,-1.19l1.49,-0.38l0.56,-1.17l2.38,-2.03l2.83,2.21l0.53,0.68l0.4,1.81l0.7,0.56l7.33,0.5l2.1,-0.36l4.85,-3.81l1.29,-1.9l5.29,-5.36l2.71,1.45l1.49,1.81l0.06,0.64l-2.15,4.4l-0.57,4.01l-1.43,0.34l-1.32,-0.11l-3.71,1.58l-1.69,1.08l-0.18,1.23l1.62,2.13l-1.39,2.81l0.08,0.46l0.46,0.07l1.43,-0.74l2.69,-0.56l2.68,-0.09l2.31,0.77l2.11,-0.97l3.09,-3.14l3.94,-2.28l1.58,-1.45l-0.19,-2.13l-0.68,-0.47l-1.16,0.35l-0.4,-0.18l-0.89,-2.03l4.08,-5.7l3.32,0.16l1.15,1.46l0.93,0.33l0.77,-0.37l0.82,-1.0l4.35,-1.83l1.15,-1.48l11.95,-1.05l5.16,0.78l0.08,0.91l-0.38,1.12l-1.55,1.58l-0.38,1.39l1.23,1.83l2.14,1.97l1.23,1.83l-2.07,3.51l-1.08,2.81l-0.54,2.86l0.83,1.53l4.77,0.91l0.69,0.58l-1.17,1.69l0.25,3.27l1.29,0.49l1.46,-0.85l1.18,0.45l4.32,4.17l1.84,4.74l-1.27,1.06l-1.66,3.08l-1.14,0.85l-2.54,0.9l-1.94,0.05l-0.44,1.16l-1.45,-0.68l-2.83,1.09l-0.84,1.25l-0.34,1.34l0.12,2.79l0.7,3.2l1.31,1.78l1.75,1.17l2.44,0.57l2.19,1.73l2.63,0.83l0.29,0.87l-0.98,2.48l1.03,2.1l0.33,3.09l0.49,1.22l5.55,3.27l1.58,2.67l3.72,1.73l-0.54,1.71l-1.23,1.93l-2.31,2.53l0.24,2.49l0.65,1.55l0.0,0.91l-1.6,1.21l-1.13,1.81l-0.21,0.18l-0.84,-0.84l-0.72,-0.2l-4.4,1.41l-2.78,3.01l-2.44,0.32l-0.53,0.84l0.54,1.12l-1.68,0.71l-4.37,-1.72l-2.37,-0.29l-2.05,1.2l-2.07,0.11l-2.41,1.23l-1.98,0.23l-2.21,1.2l-2.35,0.04l-0.74,0.29l-1.11,2.4l-0.81,0.88l-1.02,0.26l-3.86,-1.22l-0.85,-1.84l-1.43,-1.0l-4.05,-0.41l-1.45,-0.84l-0.51,0.04l-1.75,2.08l-1.05,4.98l0.01,1.51l0.51,1.03l1.24,0.41l3.69,-0.43l0.93,0.46l0.56,3.36l1.75,2.0l0.32,1.03l-0.27,3.17l-0.32,0.52l-3.52,-0.79l-3.8,0.98l-1.71,-0.15l-1.86,0.35l-2.28,-0.4l-3.91,2.12l-0.99,0.14l-1.72,-0.45l-1.28,0.35l-2.59,1.78l-0.33,0.77l0.25,1.63l-0.69,0.66l-2.32,0.66l-3.68,0.21l-1.02,0.38l-2.07,2.9l0.34,1.1l0.66,0.51l0.02,0.62l-1.63,1.7l-4.53,1.21l-3.09,-0.29l-1.24,0.51l-0.43,1.87l-2.53,3.81l-0.14,0.94l0.84,1.52l2.0,1.4l0.28,0.97l-0.33,0.33l-3.19,1.81l-4.16,-1.25l-1.98,-0.25l-1.44,0.11l-0.53,0.46l-0.21,0.76l0.41,1.66l1.65,1.36l0.07,0.45l-0.58,0.32l-2.77,-0.46l-0.85,0.34l-0.32,0.69l0.24,0.71l1.21,1.35l0.6,1.94l2.45,1.8l2.52,0.64l1.16,0.61l4.22,0.12l-0.41,1.18l0.12,0.71l1.56,1.75l2.09,1.43l-0.14,4.66l-0.66,1.16l0.12,1.87l-0.76,-0.17l-0.63,-1.31l-0.81,-0.55l-1.74,-0.29l-0.98,0.29l-3.26,3.17l-1.73,0.96l-2.39,-0.41l-3.82,-2.56l-1.16,-2.83l-0.73,-0.49l-2.0,-0.2l-4.34,-1.4l-2.82,0.21l-2.6,-0.66l-0.67,-0.77l-0.1,-1.5l0.78,-2.2l-0.29,-0.88l-0.62,-0.28l-2.47,1.42l-4.48,-0.52l-4.27,1.08l-3.5,1.47l-2.77,0.41l-2.98,1.5l-1.01,-0.71l-1.77,-4.15l-1.43,-1.32l-1.13,-0.54l-3.59,-0.26l-1.8,0.22l-0.35,0.4l0.02,2.88l-3.85,-1.27l-2.16,-2.01l-1.82,-0.73l-3.57,0.03l-1.2,0.93l-0.35,1.86l-1.3,0.63l-0.49,-0.12l-0.72,-0.87l0.27,-1.36l-0.32,-0.86l-0.67,-0.41l-0.94,-0.05l-2.47,0.7l-4.94,3.64l-1.17,-0.23l-4.88,-2.4l-1.24,-1.11l-4.78,0.52l-0.65,-3.42l0.81,-1.28l-0.0,-0.88l-1.75,-2.86l-1.71,-1.42l-2.22,-6.93l-0.89,-1.48l-1.35,-0.86l-0.56,-0.98l-0.68,-1.98l-0.52,-3.12l-1.27,-3.49l0.08,-2.96l-0.31,-0.43l-1.46,-0.31l-3.14,-1.55l-4.13,-3.41l-4.32,-0.85l0.51,-1.34l-0.08,-0.66l-1.42,-1.21l-1.93,-0.18l-1.33,0.48l-0.47,0.69l-0.31,1.9l-0.69,0.54l-3.23,0.32l-1.34,0.6l-0.62,-0.3l-1.06,-1.05l-3.45,-5.83l-0.79,-2.59l-0.84,-0.77l-2.38,0.25l-3.69,2.03l-1.69,-0.0l-0.85,0.32l-4.65,3.8l-0.58,0.1l-1.2,-1.57l-0.6,-0.32l-1.46,0.59l-0.57,0.8l-0.62,3.19l-1.64,1.03l-0.58,0.99l-1.42,4.71l-0.35,2.6l-1.83,2.78l-0.72,2.01l-1.6,-1.21l-1.15,-1.79l-0.53,-3.47l-0.56,-1.36l1.14,-0.77l-0.12,-1.16l-2.88,-1.38l-0.69,-1.95l-2.44,-3.26l-0.78,-0.22l-2.44,0.35l0.05,-1.49l-0.34,-1.19l-1.91,-2.42l-1.03,-0.42l-8.44,7.7l-0.74,2.6l-2.44,3.55l-0.58,2.41l-3.68,3.99l-0.93,0.45l-1.89,0.2l-3.45,-0.1l-1.45,0.62l-1.19,-1.14l-1.48,-0.11l-5.33,1.64l-0.67,1.8l-0.21,-0.03l-0.95,-1.01l-0.89,-3.39l-1.7,-1.05l1.55,-5.49l-0.1,-0.85l-1.32,-2.73l-3.07,-4.61l-0.85,-5.71l-0.6,-1.16l0.94,-0.4l2.23,-0.24l1.11,-0.74l0.08,-1.24l-1.43,-2.43l-0.11,-0.76l3.2,-2.58l2.85,-5.59l0.22,-1.14l-1.07,-2.31l0.11,-1.37l2.59,-1.98l0.51,-1.87l3.08,-1.33l2.04,-2.9l1.09,-0.69l1.42,-3.08l-0.14,-1.07l-0.95,-0.99ZM619.51,528.65l1.54,-0.89l1.27,-2.18l1.36,-1.26l0.07,-0.97l-0.77,-1.43l-2.49,-2.28l-2.0,-0.54l-1.01,0.36l-0.89,0.76l-3.05,4.55l-0.55,2.1l0.5,1.33l0.7,0.43l5.31,0.04Z", "name": "Auvergne-Rh\u00f4ne-Alpes"}, "FR-X3": {"path": "M215.0,114.74l0.19,0.68l0.67,0.4l0.84,-0.17l1.4,-0.93l2.84,0.51l1.15,-0.47l3.33,-3.1l2.74,-0.72l1.03,-0.08l7.56,1.27l2.02,5.19l-1.5,1.01l-0.48,1.56l-1.27,0.04l-1.1,0.67l-0.37,2.34l1.83,2.99l0.97,2.27l4.63,4.95l0.53,1.09l0.2,1.62l-0.78,2.24l0.19,0.81l0.44,0.3l1.7,-0.5l1.69,1.31l1.46,-0.25l0.31,-0.93l-0.57,-0.85l0.33,-0.79l0.91,-0.85l0.91,-0.36l7.94,0.35l7.3,2.35l10.46,0.54l4.16,0.79l2.31,-1.02l4.08,1.27l4.12,0.0l2.91,1.4l3.03,0.6l5.69,2.93l0.43,-0.04l1.48,-1.14l9.72,-1.95l2.93,-1.18l1.7,-1.25l1.45,-0.37l2.06,-2.35l3.94,-2.42l15.26,-2.94l2.9,-1.27l2.26,-2.14l0.01,-0.51l-0.5,-0.1l-4.29,2.28l-4.93,0.6l-4.99,-0.57l-4.35,-1.26l-3.7,-0.45l-1.09,-0.56l-0.79,-1.28l-0.73,-0.42l0.09,-1.68l3.15,-4.92l2.42,-6.93l3.76,-2.82l9.31,-3.67l0.73,-0.8l7.56,-3.82l2.18,-0.58l2.37,-1.37l4.68,-1.45l5.32,0.04l25.22,-6.87l1.56,-1.02l1.59,-0.51l2.41,-2.26l6.63,-4.5l8.53,5.05l10.02,8.92l0.82,1.05l0.92,3.13l2.44,4.07l0.21,1.13l-2.03,1.49l-2.12,2.89l-0.43,1.1l0.07,0.84l0.35,0.34l2.53,-0.43l0.4,0.34l-0.82,1.37l-1.94,1.09l-0.47,0.89l0.74,1.37l0.19,3.89l0.54,1.79l0.44,3.63l0.8,0.82l2.01,-0.46l0.65,0.53l-0.4,1.31l-1.05,0.52l-0.44,0.58l-1.34,3.49l0.3,3.4l1.76,5.64l1.98,4.52l-0.91,-0.06l-0.81,-0.99l-1.21,-0.74l-0.85,0.03l-0.88,0.48l-0.92,1.37l0.38,1.6l-1.77,3.08l-2.9,8.4l-2.17,1.01l-7.75,1.57l-0.75,0.55l-0.17,1.05l0.69,1.52l-0.24,2.26l0.57,0.74l1.67,0.42l0.21,2.28l-2.16,1.15l-0.44,0.6l-0.21,0.94l0.52,1.61l-0.14,1.15l-0.79,0.76l-2.47,1.15l-1.51,1.17l-1.09,1.61l-0.67,1.82l-0.53,0.5l-4.94,2.31l-1.82,-0.62l-3.38,0.04l-2.24,-1.49l-1.25,-0.15l-0.48,0.48l-0.06,1.17l-0.31,0.42l-3.47,0.34l-2.42,2.37l-1.92,0.04l-5.91,1.45l-1.53,0.88l-2.02,1.86l0.26,3.84l0.66,1.39l1.17,1.83l2.61,1.67l3.16,2.99l0.37,0.83l-0.39,1.76l0.17,1.43l1.87,2.7l-1.12,1.47l-0.63,1.57l-1.95,1.77l-5.36,2.18l-2.34,0.41l-0.55,0.48l-0.55,1.79l1.37,1.79l-0.05,2.88l1.83,3.34l-0.85,1.08l-2.22,0.71l-2.49,-1.01l-2.47,-2.98l-1.91,-1.6l-3.5,0.2l-5.14,-1.24l-0.71,-0.36l-0.06,-1.74l-0.56,-0.94l-3.09,-0.02l-2.45,-1.44l-1.01,-1.58l-0.49,-1.75l0.16,-5.51l-0.43,-0.91l-1.29,-0.88l-2.69,-1.04l-1.85,-0.2l-5.49,1.1l-3.21,1.67l-1.67,2.12l-2.54,0.86l-0.71,1.68l-2.54,-0.46l-3.9,0.33l-0.22,-3.58l-0.39,-0.79l-0.77,-0.81l-1.89,-0.44l-3.02,-2.76l-0.65,-1.6l0.49,-1.46l-0.32,-0.81l-0.74,-0.61l-3.82,-1.27l-0.99,0.47l-0.03,1.62l-0.34,0.71l-1.15,0.57l-1.4,-0.02l-1.63,0.51l-1.2,1.45l-0.68,0.11l-4.11,-0.95l-3.98,-0.16l-1.2,0.44l-2.14,1.99l-1.05,0.56l-5.18,1.05l-1.18,-1.31l-0.96,-0.14l-3.52,0.92l-0.5,1.08l-0.81,0.48l-1.68,-1.15l-1.86,0.23l-1.74,-2.89l-1.1,-0.85l-2.45,0.29l-2.37,-0.8l-3.57,1.1l-2.0,0.01l-3.01,-0.43l-2.56,-1.35l-7.85,-1.68l-1.41,0.23l-2.22,2.41l-1.99,0.71l-2.78,1.91l-1.65,0.53l-2.09,-0.17l-2.56,-1.81l-2.2,-3.13l-0.99,-2.96l-2.54,-5.28l4.98,0.51l6.48,-1.24l2.14,0.69l0.44,-0.14l0.0,-0.47l-1.13,-1.5l-1.5,-0.64l-2.34,-0.18l-0.46,0.44l-0.7,-1.34l-2.87,-0.97l-0.88,-2.35l-2.17,-1.65l-0.47,-1.69l-0.34,-4.2l-0.74,-1.24l-1.4,-0.44l1.45,-1.15l0.44,-1.03l0.49,-3.71l0.92,-0.11l0.34,-0.9l0.0,-1.07l-1.2,-0.91l0.97,-5.38l0.51,-0.24l1.33,0.54l0.55,-0.37l-0.25,-0.86l-1.33,-0.51l-1.38,0.0l-1.32,0.6l-0.59,1.22l-0.56,-1.29l0.43,-3.35l-0.31,-0.52l-0.67,-0.12l-0.18,-0.32l0.72,-2.62l1.48,-1.06l0.02,-0.68l-0.75,-0.5l-0.56,0.09l-0.66,-2.09l-0.35,-2.8l0.3,-0.47l0.85,-0.05l2.15,0.54l0.5,-0.39l0.0,-0.49l-0.3,-0.39l-2.96,-0.99l-1.32,-0.03l-0.67,1.15l-0.44,-0.44l-0.98,-2.84l-0.71,-0.78l0.42,-0.24l0.06,-0.7l-2.38,-1.94l-0.24,-0.63l0.68,0.0l0.4,-0.4l-0.83,-2.29l-0.82,-0.22l-0.71,1.2l-3.02,-2.14l0.32,-0.66l-0.42,-0.61l-2.16,0.52l-0.37,-0.34l-0.17,-5.35l-1.15,-1.92l-0.39,-1.49l-2.39,-2.79l0.28,-0.81l1.64,-1.27l0.51,-0.95l0.27,-4.14l-1.3,-2.8l-0.63,-0.67l-4.47,-1.27l0.4,-1.53l-0.1,-1.22l0.13,-0.3l1.34,-0.15l2.46,1.07l1.75,-0.2l0.58,0.33l0.27,1.01l0.5,0.53l6.68,0.92l5.27,1.29Z", "name": "Normandy"}, "FR-R": {"path": "M159.66,300.12l3.14,1.13l1.62,-0.32l1.05,-1.07l0.07,-0.47l-0.56,-1.04l-2.21,-2.2l-0.46,-0.11l-0.82,0.44l-0.77,-1.59l-2.05,-1.2l4.12,-2.13l1.57,0.33l-0.09,0.55l0.45,0.48l0.58,0.01l2.59,-1.53l0.4,-0.74l-0.31,-0.53l-2.95,-0.38l0.35,-0.69l-0.16,-0.53l-0.77,-0.68l0.87,-0.21l2.37,0.81l3.21,-0.37l0.81,-0.45l0.88,-1.05l1.08,-1.85l0.93,-0.29l1.83,0.9l2.88,-0.91l0.01,0.96l0.41,0.72l0.57,0.29l0.85,-0.14l0.92,-1.04l0.66,-1.38l2.05,-1.24l0.71,-1.09l0.79,-3.53l0.74,-1.69l0.12,-1.43l-0.24,-0.62l0.35,-1.02l2.91,-1.59l2.21,-0.38l2.07,0.05l5.67,-2.08l1.82,0.61l1.95,0.17l7.4,-2.04l2.87,-1.7l1.19,-1.55l1.73,-1.21l6.3,-2.55l1.6,-1.15l1.76,-0.13l1.82,0.29l1.17,1.44l1.85,0.86l6.14,0.89l0.45,-0.31l0.47,-2.16l1.14,-1.77l2.89,-9.08l0.53,-0.9l1.85,-1.62l4.09,-0.58l1.25,-0.49l0.67,-0.66l-0.07,-4.84l-1.76,-2.27l-0.71,-4.7l0.64,-0.86l0.08,-0.99l-0.82,-4.82l-1.09,-2.36l1.95,-4.01l-0.03,-2.5l-0.74,-5.78l0.2,-5.45l4.76,0.37l3.56,-1.09l2.14,0.78l2.29,-0.33l0.82,0.61l1.89,3.04l0.78,0.28l1.22,-0.43l1.2,1.0l0.96,0.2l0.9,-0.36l0.74,-1.34l3.16,-0.79l0.67,0.27l0.43,0.85l0.82,0.32l5.49,-1.07l1.32,-0.69l2.1,-1.96l0.92,-0.33l3.75,0.17l4.09,0.95l1.06,-0.14l1.34,-1.53l1.33,-0.41l1.5,0.0l1.45,-0.72l0.62,-1.2l-0.17,-1.13l0.3,-0.28l3.98,1.51l0.19,0.36l-0.49,1.44l0.18,1.02l0.67,1.13l3.2,2.92l2.03,0.53l0.36,0.46l0.28,0.51l0.24,3.91l0.44,0.37l3.61,-0.38l3.37,0.46l0.6,-0.45l0.44,-1.41l2.46,-0.81l2.23,-2.53l2.43,-1.15l5.27,-1.07l1.66,0.18l3.55,1.66l0.35,1.07l-0.32,2.68l0.3,3.32l0.87,2.03l1.63,1.4l1.84,0.94l2.82,-0.07l0.41,2.48l1.13,0.63l5.3,1.27l2.3,0.07l0.97,-0.32l1.62,1.39l1.93,2.55l2.19,1.39l1.53,0.31l1.53,-0.36l2.97,1.92l3.09,0.38l0.63,0.45l-0.41,0.52l-4.24,2.22l-0.26,1.28l1.21,1.18l-2.67,0.5l-0.56,0.47l-0.11,1.1l0.84,1.7l0.5,0.5l1.48,0.31l-0.65,3.22l0.42,1.92l-0.15,0.49l-3.53,3.05l-0.56,1.67l-0.05,3.43l-1.51,4.18l-1.33,1.2l-1.74,0.98l-3.44,1.47l-1.46,1.3l-0.79,1.81l0.64,1.76l-0.14,0.45l-2.17,0.43l-3.23,1.43l-2.52,0.52l-1.04,0.58l-0.9,0.99l-1.95,-0.85l-1.07,0.0l-0.78,0.53l-0.36,0.7l0.4,2.57l-8.48,-1.68l-0.46,0.23l-1.7,4.29l0.46,3.58l-1.91,3.72l-1.03,3.13l0.2,2.82l-4.39,6.08l-1.47,5.38l-0.85,5.56l-2.84,-0.47l-1.46,0.44l-2.01,2.22l-0.96,2.4l-2.38,0.81l-1.53,2.05l-1.11,-0.31l-0.83,-2.02l-0.97,-0.76l-0.79,-0.2l-1.88,0.35l-3.55,-0.08l-6.53,0.7l-5.83,1.67l-2.05,-0.73l-2.08,0.46l-1.21,0.8l-0.31,0.62l0.12,0.77l0.69,0.97l-0.13,0.38l-4.92,2.46l-3.85,0.33l-5.2,-0.68l-4.23,0.56l-4.16,-1.9l-0.94,-0.18l-0.84,0.51l-0.29,1.01l0.17,0.47l2.2,1.37l2.18,3.03l1.67,0.89l0.69,0.84l0.32,2.18l1.04,2.25l0.66,0.7l3.5,1.91l1.73,1.57l0.1,0.48l-0.78,1.59l0.1,0.98l3.83,6.52l0.57,3.11l1.44,2.21l0.79,4.91l-1.22,1.54l-0.25,0.91l0.97,4.27l-0.6,2.86l0.25,1.23l0.83,0.72l1.04,-0.23l1.97,1.38l0.71,1.02l-0.74,0.77l-1.26,-0.1l-1.22,0.34l-2.25,2.0l-2.76,0.16l-3.62,1.68l-4.06,-2.24l-1.7,-0.27l-6.67,1.09l-0.44,-0.27l0.9,-1.15l0.15,-0.7l-0.48,-0.9l-0.77,-0.24l-6.96,1.54l-1.16,0.7l-1.12,1.42l-0.75,-0.72l-2.95,-0.11l-2.27,1.19l-0.16,2.27l-1.02,-0.24l-2.4,-2.73l-1.56,-0.33l-4.08,-2.32l-3.43,0.87l-1.24,-0.06l-0.97,-3.42l-1.1,-1.51l-1.55,-0.91l-6.9,-0.76l0.18,-1.01l-1.0,-0.83l-3.36,-0.58l-1.97,-1.51l-2.47,-0.81l-1.08,-2.24l-0.58,-0.83l-0.45,-0.15l-0.28,0.39l0.27,2.62l-0.46,-0.56l-1.32,-5.47l0.25,-1.25l-0.25,-0.45l-0.84,-0.31l-1.14,-2.75l-2.53,-2.31l-0.74,-2.09l-0.93,-0.62l-1.98,-0.4l-2.24,-3.59l-3.47,-3.13l-4.07,-2.07l-0.39,-1.05l-0.3,-2.69l0.47,-2.19l1.48,-0.93l0.17,-0.46l-0.28,-0.85l3.12,-1.98l2.48,-5.26l1.17,-1.01l-0.16,-1.45l-0.69,-1.37l-1.7,-1.83l-3.77,-1.84l-7.12,-1.1l-1.45,-0.69l1.47,-1.03l1.91,-0.24l0.8,-0.55l0.42,-2.94l-0.66,-1.35l-0.09,-1.84l1.02,-2.31l1.32,-0.5l5.58,-0.5l1.1,-0.5l1.01,0.86l3.14,0.71l1.04,-0.02l0.24,-0.51l0.65,0.2l-0.47,0.4l0.19,0.91l2.51,1.59l2.62,0.48l1.97,1.62l1.54,0.57l3.31,0.09l0.4,-0.29l-0.19,-0.46l-1.37,-0.76l-2.42,-0.42l-2.85,-2.6l-4.32,-2.68l-2.78,-0.52l-1.38,-0.93l-2.33,-0.59l-8.74,0.54l-2.06,1.13l-1.5,1.94l-1.74,0.44l-1.54,1.27l-1.02,0.36l-2.05,-0.36l-2.32,-2.13l-1.22,-0.61l-2.17,0.0l-0.78,0.6l-0.33,0.97l-1.39,-0.03l-4.87,-2.21ZM161.53,297.57l0.02,0.14l-0.01,0.02l-0.01,-0.17ZM179.99,325.41l2.68,1.47l0.24,2.88l-0.47,-0.24l-2.28,-3.55l-1.56,-0.93l-1.75,0.59l-0.73,-0.9l-0.93,-2.89l-0.56,-0.68l2.62,-0.12l2.02,0.71l-0.04,2.78l0.75,0.89ZM174.33,345.92l-4.93,-0.12l-0.49,-0.98l0.24,-0.36l1.99,0.02l3.18,1.44Z", "name": "Pays de la Loire"}, "FR-GP": {"path": "M44.87,452.95l2.26,-1.9l1.31,-0.53l0.63,0.19l-2.39,1.57l-1.81,0.66ZM16.07,454.56l0.99,-3.24l0.45,-0.54l1.25,-0.4l0.33,-0.98l-0.15,-1.3l-1.63,-0.93l-0.61,-3.02l1.65,-2.23l2.47,-1.44l2.87,2.33l0.67,1.2l0.24,4.01l1.84,2.68l1.77,1.09l0.71,-0.33l2.34,0.36l6.21,4.32l1.16,0.34l-0.55,0.18l-3.31,-0.89l-10.9,2.46l-3.09,1.07l-2.38,-0.65l-1.77,-1.2l-0.78,-1.34l0.24,-1.57ZM29.3,476.81l1.29,-2.59l1.05,-1.18l1.16,-0.64l1.27,0.28l1.08,0.91l0.68,1.72l0.94,0.93l0.13,1.34l-1.12,1.36l-1.47,0.73l-1.99,0.48l-1.58,-0.25l-1.44,-3.1ZM6.63,475.24l-0.25,-0.65l0.35,-0.72l-0.44,-0.85l-1.95,-1.6l-0.87,-1.97l-0.57,-0.45l-0.69,-2.06l-0.05,-4.94l-0.89,-2.29l0.25,-1.07l-1.09,-2.09l0.05,-3.66l1.5,-2.21l0.77,-0.65l0.89,-0.23l1.5,1.13l3.84,1.09l2.02,1.06l0.67,0.81l-0.4,0.18l0.01,0.74l0.87,0.07l0.72,0.74l0.65,-0.12l0.7,-0.95l0.47,-0.08l0.26,0.32l-0.35,1.27l0.32,1.1l-1.34,0.42l-0.48,0.89l0.13,2.94l0.8,2.29l0.41,3.37l-0.49,3.19l-1.83,2.19l-2.76,1.62l-2.74,1.16ZM13.68,480.6l0.09,-0.17l0.15,-0.01l-0.11,0.1l-0.13,0.09ZM10.63,481.22l0.17,0.27l-0.27,0.31l-0.19,-0.11l0.3,-0.46Z", "name": "Guadeloupe"}, "FR-U": {"path": "M574.87,589.37l0.92,-0.18l1.37,-1.04l2.17,-0.54l3.45,-2.45l1.63,-0.49l0.58,-1.36l1.97,-0.33l0.5,-0.38l0.72,-1.53l-0.09,-0.84l-1.94,-0.6l1.3,-2.75l1.5,-1.9l1.28,-0.92l2.03,-0.52l3.72,1.32l1.03,-0.3l0.65,-1.54l-0.04,-1.78l1.98,-4.92l-0.49,-4.74l5.08,-3.33l2.76,-1.14l1.8,-1.27l1.33,-1.63l0.03,-2.18l1.18,0.07l0.47,-0.43l0.15,-1.04l-0.37,-0.8l-4.15,-4.77l-1.27,-0.56l-1.83,0.31l-0.37,-2.47l0.33,-2.07l-0.19,-2.88l-0.5,-0.93l-1.47,-1.11l-0.09,-1.56l-1.29,-1.64l-0.54,-1.66l-0.02,-2.97l3.17,-0.14l2.43,0.62l1.57,1.66l1.7,4.01l1.31,0.65l1.08,-0.2l2.24,-1.34l2.77,-0.41l3.47,-1.46l4.07,-1.05l3.48,0.59l1.1,-0.08l2.31,-1.4l0.14,0.38l-0.71,1.56l-0.03,1.7l0.31,1.17l0.77,0.67l2.96,0.79l2.82,-0.21l4.22,1.37l1.95,0.19l0.66,0.8l0.94,2.37l4.51,2.92l2.5,0.22l1.96,-1.1l2.53,-2.56l1.32,-0.74l1.8,0.54l0.64,1.31l0.52,0.4l0.87,0.13l0.61,-0.33l0.31,-0.68l-0.23,-1.68l0.64,-1.04l0.14,-4.96l-0.53,-0.87l-1.46,-0.73l-1.74,-1.84l0.47,-1.33l-0.29,-0.71l-1.33,-0.38l-2.81,0.16l-3.98,-1.31l-2.2,-1.6l-0.54,-1.85l-1.31,-1.69l0.85,-0.19l2.33,0.46l0.67,-0.16l0.58,-0.67l-0.17,-1.21l-1.58,-1.26l-0.32,-1.32l0.2,-0.43l2.95,0.15l4.34,1.28l0.95,-0.24l2.8,-1.78l0.61,-0.81l-0.12,-1.02l-0.85,-1.05l-1.56,-0.99l-0.6,-0.98l0.34,-1.04l1.84,-2.49l0.74,-2.54l1.28,-0.26l2.49,0.32l4.9,-1.34l1.9,-1.99l0.0,-1.34l-0.94,-1.02l1.78,-2.52l4.33,-0.43l2.59,-0.77l1.06,-1.17l-0.23,-1.81l1.51,-1.3l1.93,-0.81l1.61,0.45l1.3,-0.18l3.71,-2.08l2.21,0.4l1.91,-0.35l1.7,0.15l3.74,-0.98l2.72,0.76l1.33,-0.13l0.6,-0.99l0.28,-3.45l-0.47,-1.39l-1.68,-1.88l-0.61,-3.45l-1.52,-0.82l-3.62,0.45l-0.92,-0.3l-0.21,-0.57l1.03,-6.05l1.31,-1.51l1.5,0.78l3.9,0.36l1.08,0.74l1.0,1.99l4.33,1.4l1.59,-0.46l0.96,-1.07l0.85,-2.13l2.87,-0.24l2.8,-1.28l-0.62,0.73l-0.02,0.5l2.03,2.18l0.17,1.69l0.79,1.24l0.95,0.66l2.05,0.17l1.38,0.88l0.35,1.96l-0.12,4.19l1.23,1.91l2.07,1.56l4.22,2.16l1.41,0.3l3.93,-0.45l2.94,1.06l1.2,1.26l-0.4,2.57l1.25,4.13l2.03,3.55l-3.87,-0.56l-1.7,0.81l-1.13,1.22l-0.53,1.69l0.58,1.56l-0.69,0.5l-2.06,3.14l-3.05,2.06l-0.83,1.38l0.25,2.53l1.44,2.18l2.96,2.54l-1.46,0.71l-0.59,0.79l-0.73,3.01l0.24,1.21l1.67,1.86l1.59,2.88l2.27,1.81l0.83,2.02l0.66,0.7l1.16,0.41l2.19,-0.38l0.67,0.17l6.04,2.48l6.53,3.55l3.45,0.91l0.74,1.13l1.35,0.71l2.64,0.05l10.62,-2.7l1.73,-0.12l2.57,-1.44l1.28,0.21l-0.66,2.31l0.83,1.51l1.3,1.15l0.87,1.66l-0.1,1.05l-2.22,2.08l-1.33,3.37l-4.45,3.63l-1.3,1.81l-2.63,2.56l-1.02,1.63l0.26,2.23l1.1,3.29l-1.5,0.69l0.05,1.26l-0.73,0.15l-1.26,1.13l-0.56,-0.67l-1.18,-0.6l-1.65,0.49l-1.0,1.05l-0.43,1.64l-1.32,1.04l-0.71,1.53l-2.86,-0.54l-1.41,0.13l-2.01,1.42l0.04,0.96l-1.09,1.0l-0.54,-0.78l-1.17,-0.24l-2.01,0.57l-0.96,1.09l-0.66,2.71l0.71,3.75l-0.22,0.12l-0.57,-0.92l-0.68,-0.42l-1.15,-0.07l-1.27,0.64l-1.75,1.52l-0.56,-0.6l-2.19,-0.07l-1.21,0.15l-0.99,0.57l-1.1,1.01l-0.38,1.3l0.79,0.89l-1.67,1.9l-0.35,1.79l-1.2,0.73l-0.35,0.74l-0.79,0.06l-0.5,-0.8l-0.56,-0.07l-0.45,0.47l0.04,1.32l-0.33,0.1l-1.7,-0.24l-2.06,0.51l-0.64,-0.66l-0.97,-0.32l-1.96,1.17l-0.06,2.1l-0.82,1.01l-0.09,1.11l-2.6,0.48l-0.8,1.76l-2.13,1.86l-1.64,0.87l-0.58,1.35l0.27,0.52l1.27,0.34l3.83,-0.86l1.01,0.19l-0.51,1.21l-1.15,0.87l-0.18,1.36l0.76,1.4l-2.03,1.21l-1.78,0.59l-1.1,-1.03l-3.19,0.39l-1.04,1.7l-1.07,0.59l-1.62,-0.35l-3.45,0.27l-1.36,0.42l-1.49,0.84l-0.91,1.44l0.37,1.87l-1.34,0.0l-1.03,-0.98l-2.86,-1.09l-1.75,-0.16l-3.76,0.92l-1.97,1.27l-0.72,1.7l-0.05,1.91l0.91,0.63l-3.08,0.19l0.74,-0.26l0.95,-0.93l-0.33,-1.65l-1.19,-0.96l-5.05,0.37l-0.84,-1.54l-3.51,-0.25l-1.12,-0.63l0.3,-1.17l-0.36,-0.56l-2.16,0.24l-1.78,0.81l-0.23,0.38l1.15,0.68l1.01,1.7l1.93,0.76l-3.17,0.02l-0.89,0.28l-1.2,1.7l-1.96,-0.54l-1.85,-1.41l1.88,-1.3l0.07,-0.54l-0.41,-0.57l-1.72,-0.7l-0.74,-1.26l-2.11,-0.09l-2.49,-1.0l-0.47,-1.46l-1.08,-1.07l-2.53,-0.57l-1.03,0.91l-0.53,0.98l-2.05,-0.53l-1.98,-2.66l-0.96,-0.55l-1.48,0.47l-6.6,-0.49l-1.53,0.31l-1.02,-0.43l0.34,-1.68l0.94,-1.98l-0.08,-0.43l-0.62,-0.64l-1.13,-3.95l-2.92,-1.81l-3.73,1.99l-4.48,-0.09l-2.35,0.26l-3.62,-0.16l-1.71,-0.5l-1.11,-1.51l-0.44,-1.53l1.11,-1.82l1.71,-0.86l5.36,0.0l1.8,-0.48l2.62,-2.32l0.89,-2.0l-0.21,-1.77l-0.6,-0.3l-3.34,1.54l-1.34,-0.21l-1.17,-1.2l-0.81,-2.2l-1.53,-0.53l-1.81,-0.01l-1.47,-1.47l-0.5,0.08l-0.49,0.59l-0.81,2.82l0.42,1.59l2.15,1.63l0.63,1.61l-0.57,1.4l-1.25,0.8l-1.63,0.16l-4.46,-1.86l-2.21,1.1l-1.58,0.35l-0.71,0.61l-0.46,1.44l0.98,2.54l0.42,0.33l0.81,-0.05l-1.29,0.81l-1.31,-2.62l-2.66,-1.4l-1.98,-1.65l-0.86,-1.8l-0.02,-5.7l-1.08,-2.53l-0.85,-1.1l-1.19,-0.67l-0.59,0.35l0.0,0.46l2.09,3.43l0.0,5.28l0.86,2.64l4.89,4.15l-0.11,1.02l-9.05,-0.1l-4.41,-0.9l-1.34,-0.7l-0.03,-0.85l1.11,-1.09l0.22,-1.41l-0.65,-1.13l-1.58,-1.03l-2.76,-0.96l-6.31,0.6l-10.72,-0.78l1.08,-2.45ZM708.84,625.18l0.07,-0.56l1.07,-0.35l0.67,-0.95l0.94,-0.47l-1.31,1.7l-1.44,0.64ZM692.6,626.12l1.76,-0.0l0.97,-0.54l0.94,-0.02l0.43,-0.62l0.24,0.26l0.04,0.66l-2.62,1.0l-1.76,-0.73ZM619.44,527.85l-4.96,0.01l-0.37,-0.2l-0.33,-0.9l0.44,-1.6l2.99,-4.46l1.31,-0.8l1.47,0.37l2.37,2.16l0.58,1.0l-0.0,0.54l-1.24,1.1l-1.26,2.17l-1.01,0.62Z", "name": "Provence-Alpes-C\u00f4te-d'Azur"}, "FR-J": {"path": "M472.43,160.67l2.91,-0.96l1.28,0.25l1.79,1.42l0.99,0.02l1.16,-0.44l1.27,0.83l1.39,0.28l2.4,-1.49l4.01,0.91l5.72,-1.07l1.57,0.83l2.35,-1.11l1.82,-0.03l2.03,-1.04l3.48,0.96l0.98,1.05l0.87,1.67l-0.52,2.79l0.73,1.41l8.88,6.73l0.87,0.26l1.23,-0.5l0.48,0.14l0.61,2.97l0.7,1.03l3.28,1.81l2.3,-0.04l-0.11,1.1l-0.51,0.67l-2.55,0.08l-0.94,0.42l-0.16,0.75l1.09,1.07l-1.54,1.52l-0.27,1.55l0.54,0.66l1.24,-0.02l1.67,1.83l0.7,2.85l-0.5,1.9l0.28,1.65l0.9,0.56l2.22,-0.3l1.49,1.83l-2.45,1.85l-1.06,1.42l-0.92,2.34l-0.48,0.4l-2.35,0.42l-0.63,0.51l-0.08,0.73l0.94,1.41l-1.79,1.84l-0.05,0.79l0.65,1.23l-0.56,2.16l0.16,0.69l-2.61,2.88l-2.24,-0.49l-6.28,0.91l-4.68,-0.48l-2.32,0.9l-3.26,0.0l-0.8,0.78l-1.14,3.17l0.16,2.32l0.83,1.42l-1.58,2.76l-3.77,2.32l-0.95,3.37l-5.9,1.83l-1.36,-0.07l0.46,-1.24l-0.4,-0.63l-0.91,-0.28l-2.7,0.45l-1.78,1.66l-1.87,0.81l-8.32,-0.58l-3.25,0.65l-1.6,-0.18l-0.78,-0.59l0.23,-0.94l0.72,-0.24l1.65,0.3l0.91,-0.65l0.07,-0.64l-0.51,-1.19l0.65,-0.98l0.11,-1.36l-1.39,-1.54l-3.36,-1.92l-1.3,-3.89l-1.33,-1.28l-2.27,0.3l-2.83,-1.36l-0.86,0.16l-1.36,1.23l-1.4,0.35l-0.76,-0.38l-0.47,-1.03l-0.68,-0.61l-0.85,-0.52l-0.84,-0.03l-0.66,0.4l-1.38,1.92l-1.99,0.8l-8.7,1.71l-0.72,-0.42l-0.0,-0.42l1.65,-1.87l0.02,-0.74l-1.91,-1.77l-0.62,-2.84l-0.52,-0.9l-1.62,-1.5l-0.35,-2.59l-0.81,-0.45l-2.11,0.38l-4.37,-1.8l-0.92,-0.66l-1.17,-1.71l0.01,-2.65l-0.44,-1.51l-0.7,-0.87l-2.25,-1.46l-0.79,-2.45l-3.87,-2.43l-1.32,-1.5l-0.63,-1.5l-1.41,-0.91l0.0,-0.93l1.6,-2.06l0.18,-1.09l-0.28,-0.53l-1.69,-0.85l-0.41,-0.65l-0.06,-1.41l0.53,-2.41l-0.31,-1.9l-1.49,-1.94l-3.28,-5.55l-0.4,-2.82l-2.11,-0.85l0.25,-2.13l-0.72,-1.71l0.41,-0.57l7.7,-1.56l2.46,-1.13l3.15,-8.76l1.58,-2.72l0.43,0.35l0.8,2.03l0.97,0.67l3.39,0.3l5.65,1.41l6.54,-0.78l5.01,-2.69l3.66,2.09l2.47,0.26l3.97,1.5l1.83,0.1l3.18,-1.39l11.5,5.26l0.91,0.03l0.87,-0.37l1.31,1.53l1.38,0.99Z", "name": "\u00cele-de-France"}, "FR-X2": {"path": "M204.81,598.27l0.63,0.4l0.52,-0.08l1.38,-0.84l5.64,-0.92l1.36,-1.72l2.57,-1.46l2.17,-3.85l5.18,-6.42l0.5,-2.5l1.48,-4.27l2.51,-12.23l1.46,-4.3l2.15,-9.72l3.95,-21.25l1.68,-10.56l0.42,-4.7l-0.62,-3.76l1.59,-2.05l1.5,-4.83l1.04,-1.14l1.32,-0.04l3.84,0.81l2.32,-0.34l1.43,-1.11l0.02,-1.15l-1.01,-1.12l0.28,-0.48l-0.7,-1.19l-4.63,-3.83l-1.79,-0.89l-0.92,0.36l-3.56,5.22l-0.53,2.34l3.34,-33.36l2.55,-12.04l1.09,-15.98l3.2,-5.75l1.08,-0.08l-0.29,2.7l1.44,2.01l4.22,2.89l3.51,1.53l7.32,7.13l1.65,2.15l1.65,6.53l1.42,7.99l2.13,4.49l2.13,2.43l2.35,2.0l2.44,1.49l0.52,1.41l-0.17,1.23l0.35,3.2l0.54,1.31l0.97,0.73l0.45,-0.0l0.16,-0.42l-0.81,-4.06l0.53,-2.18l-0.8,-1.78l-1.38,-1.23l1.66,0.3l2.68,1.57l0.51,-0.03l0.06,-0.51l-1.72,-2.53l-5.08,-1.82l-2.05,-1.4l-1.05,-1.86l-0.76,-2.33l-2.32,-14.51l-0.81,-2.98l-2.08,-4.88l-2.62,-4.07l-2.95,-2.95l-8.61,-5.47l-0.48,-1.77l-2.47,-1.03l-3.22,-2.81l-4.04,-1.44l-2.76,-2.39l-2.34,0.33l-0.67,-0.24l0.99,-5.73l3.71,-0.99l0.98,0.04l3.79,3.91l1.46,1.04l4.4,1.81l0.48,-0.15l-0.05,-0.5l-1.38,-1.36l-5.52,-3.9l-1.51,-1.58l-1.36,-4.22l2.03,-1.93l0.85,-0.46l1.1,-0.0l0.61,-0.43l0.19,-1.83l-0.98,-1.77l0.89,-0.77l-0.02,-0.68l-0.92,-0.54l-1.09,-2.34l1.55,0.32l1.08,-0.72l0.78,-1.42l-0.03,-0.9l-1.1,-1.07l-1.08,-0.37l-0.71,-3.23l-1.9,-1.16l0.55,-0.47l-0.04,-0.64l-1.96,-1.09l0.07,-0.62l-0.38,-0.5l-2.85,-0.2l-0.39,-0.36l0.27,-0.97l1.24,-1.31l-0.29,-1.3l0.52,-0.79l4.3,-2.4l0.5,-0.98l-0.01,-0.83l-0.87,-2.37l1.16,-1.51l0.86,-0.51l6.69,-1.49l0.44,0.35l-0.06,0.32l-1.0,1.63l0.99,0.9l1.99,-0.09l4.86,-0.96l1.46,0.21l4.42,2.32l3.79,-1.72l2.86,-0.19l2.34,-2.04l2.77,-0.34l0.86,-1.23l-0.25,-0.98l-0.76,-0.79l-2.09,-1.47l-1.48,-0.05l-0.2,-0.92l0.59,-2.98l-0.97,-4.09l1.47,-2.55l-0.66,-4.53l-1.62,-2.86l-0.6,-3.2l-3.78,-6.41l-0.05,-0.67l0.8,-2.07l-0.78,-1.19l-1.4,-1.1l-3.53,-1.93l-0.48,-0.54l-0.88,-1.94l-0.43,-2.43l-0.91,-1.07l-1.53,-0.78l-2.22,-3.06l-2.05,-1.29l0.13,-0.56l1.47,0.22l2.4,1.36l1.33,0.38l4.31,-0.56l5.13,0.68l3.99,-0.34l1.28,-0.41l1.37,-1.03l2.73,-1.24l0.34,-1.13l-0.81,-1.37l1.0,-0.85l1.73,-0.42l2.13,0.74l5.97,-1.69l6.45,-0.7l5.88,-0.12l0.56,0.42l1.0,2.22l1.71,0.55l0.45,-0.18l1.48,-2.08l2.51,-0.92l1.0,-2.45l1.89,-2.08l0.9,-0.26l2.97,0.49l1.47,2.34l0.64,0.37l0.98,-0.07l1.14,-0.55l0.13,1.56l0.57,0.55l2.68,-0.26l0.19,0.85l-0.35,1.75l0.25,0.7l0.48,0.33l1.15,0.07l2.51,-0.61l1.03,1.31l1.83,0.26l-0.34,5.65l0.36,1.29l1.37,1.15l1.25,0.23l2.61,-0.25l2.91,0.46l1.93,-1.14l1.04,-0.24l5.49,-0.33l0.79,-0.44l0.19,-0.71l-0.77,-1.6l-0.1,-0.95l5.63,2.78l1.17,1.63l1.3,3.39l7.23,9.31l2.64,1.85l1.67,1.93l0.84,2.19l-0.61,2.63l0.01,1.65l0.57,2.3l0.55,0.83l2.33,2.03l3.29,1.27l0.85,2.04l0.88,0.33l3.79,0.0l1.03,0.35l0.88,0.74l0.67,1.18l-0.49,1.9l0.16,1.06l0.74,0.86l1.78,1.01l0.54,0.76l-1.01,2.95l0.15,0.46l1.04,0.72l2.54,0.83l3.65,-0.3l1.07,-0.33l1.0,-1.33l1.05,-0.24l1.47,1.8l3.13,1.64l2.0,-1.13l3.93,-3.54l0.68,-0.15l2.17,0.53l2.02,-0.06l0.36,1.35l0.7,0.52l1.01,0.19l1.02,-0.2l1.87,-1.33l3.01,0.41l0.9,-0.2l1.03,-0.98l0.25,-2.59l0.71,-0.54l0.76,0.32l1.92,1.93l0.96,0.16l2.07,-1.12l1.08,-0.24l5.41,0.14l2.45,0.84l3.5,0.01l2.22,0.72l3.19,-0.59l5.83,0.29l2.01,2.5l1.67,1.44l0.91,2.78l0.59,0.64l0.74,0.43l2.88,0.63l0.67,0.63l1.08,2.07l0.77,0.02l0.86,-0.61l1.19,0.76l2.45,3.45l1.01,3.07l2.11,3.67l-0.39,3.35l0.22,1.7l2.06,4.03l-0.15,3.39l-1.62,1.78l-1.56,3.24l-2.36,2.46l-1.64,-0.11l-1.29,0.59l-1.33,1.29l-1.33,0.73l-0.92,1.43l0.25,0.94l1.58,1.96l0.73,2.07l0.5,0.47l1.47,0.35l0.84,0.76l1.85,2.04l0.51,1.09l-0.24,3.82l-0.55,0.67l-1.67,0.69l-0.46,0.57l-0.73,2.83l0.51,1.34l1.35,1.7l0.25,4.1l1.11,1.0l-1.14,4.37l-0.87,1.76l-2.16,-0.09l-3.12,-1.6l-1.18,-0.01l-1.52,0.59l-0.21,0.82l0.95,0.93l0.15,0.84l-1.24,2.6l-1.06,0.64l-1.96,2.84l-3.1,1.35l-0.66,2.04l-2.65,2.08l-0.16,1.81l0.96,1.75l-0.04,1.26l-2.76,5.43l-2.8,2.03l-0.55,0.87l-0.03,0.76l1.6,2.88l-0.03,0.57l-4.22,1.17l-4.52,0.2l-1.94,0.88l-1.38,-0.66l-0.83,-0.05l-4.06,1.88l-3.12,0.95l-1.23,-0.04l-3.73,-1.98l-1.24,-1.82l-2.13,-1.68l-3.07,-1.73l-1.98,-0.53l-2.06,0.56l-0.77,-1.17l-0.7,-0.11l-1.4,1.03l-1.03,0.25l-3.64,2.43l-0.29,1.46l1.3,3.78l-0.03,0.72l-0.72,1.24l-0.01,2.07l-2.54,2.21l-1.66,2.62l-2.23,0.65l-0.87,1.1l-0.29,0.94l0.72,1.44l-0.03,0.57l-1.25,1.78l-4.31,2.66l-2.39,0.56l-0.98,0.82l-3.33,5.17l-3.48,2.85l-2.93,1.29l-0.86,0.82l-0.26,0.78l1.31,2.09l0.06,1.85l0.83,2.15l2.02,2.25l-0.18,3.0l-0.59,0.58l-4.81,0.36l-1.13,-0.2l-1.77,-0.98l-0.77,0.08l-0.72,0.57l-0.27,2.47l-0.74,1.55l-0.06,0.88l0.85,1.37l2.45,0.96l0.36,0.51l-2.45,5.11l-2.16,1.72l0.1,0.72l1.14,0.8l-0.03,0.97l-1.25,0.21l-2.22,-0.7l-1.4,0.32l-0.49,0.48l-0.46,1.35l-2.26,1.33l-1.04,2.84l-3.57,1.87l-1.05,0.18l-2.71,-2.15l-1.51,-0.47l-5.15,1.53l-2.7,-0.26l-1.21,0.8l-4.35,1.91l-1.3,0.2l-3.0,1.53l-4.83,-1.62l-0.8,0.09l-1.07,0.84l-1.29,1.99l-1.07,0.78l-0.59,0.02l-0.58,-0.74l-0.76,-0.21l-2.4,0.81l-0.9,1.56l0.26,2.33l-0.72,0.77l-2.48,-0.06l-1.1,-0.37l-0.37,-0.73l0.78,-1.23l-0.06,-1.08l-0.91,-0.88l-1.22,-0.35l-1.33,0.44l-1.59,1.05l-1.8,1.72l-1.77,0.13l-2.38,-0.3l-2.89,1.82l-0.59,0.71l-0.12,1.04l1.31,1.37l1.05,2.2l-1.49,3.87l-0.05,2.41l0.82,1.36l-1.48,3.09l-1.21,0.16l-0.79,0.5l-0.11,0.65l0.54,1.41l-1.07,1.59l-0.25,1.25l0.98,0.76l0.47,1.52l0.52,0.63l2.33,-0.0l5.59,1.04l1.06,0.66l0.67,1.47l1.56,1.16l2.16,4.89l-0.31,0.26l-1.15,-0.07l-0.56,0.49l0.03,2.28l0.52,0.69l0.76,0.17l1.43,-1.29l0.75,0.02l-0.11,3.16l1.06,3.23l-0.48,0.48l-1.62,0.52l-0.96,1.06l-0.61,2.64l0.6,2.08l-0.4,0.75l-1.97,1.89l-1.1,3.23l-1.55,0.13l-1.74,2.98l-2.28,1.29l-0.98,1.23l0.15,3.83l-0.4,0.28l-2.98,0.33l-2.69,2.77l-0.17,0.81l0.39,1.61l-0.03,1.69l-1.67,2.29l-0.35,1.23l0.55,3.77l-0.88,-0.07l-0.78,1.18l-0.86,-0.35l-4.31,2.79l-1.69,0.12l-3.22,-1.34l-1.7,-0.07l-0.41,0.38l-0.09,1.49l-1.58,0.74l-0.62,-1.55l-1.55,-0.25l-0.08,-0.92l-2.44,-2.91l-3.24,-2.0l-1.85,-0.11l-0.47,-0.41l-0.25,-0.49l0.25,-1.36l-1.4,-2.86l-1.82,-0.51l-4.68,0.75l-4.79,-0.35l-2.24,-0.65l-2.95,-2.22l-3.08,-0.49l-2.02,-1.09l-2.32,0.15l-4.04,-2.44l-3.6,-0.59l-1.04,-0.56l-0.92,-0.94l-0.21,-0.75l0.38,-0.75l1.21,-0.93l-0.15,-0.71l-1.6,-0.32l-1.53,0.56l-1.05,1.06l-0.53,1.66l-0.16,1.94l-0.41,0.78l-0.81,0.24l-3.0,-0.46l-1.26,-0.64l-1.02,-1.03l-0.63,-1.32l3.7,-3.88l0.95,-2.41l0.66,-2.96l-0.35,-3.1l-2.03,-1.72l-2.04,0.3l-2.51,-1.16l-3.21,-0.56l-1.3,0.75l-0.75,1.77l-1.7,0.25l-0.8,-0.46l-0.49,-1.68l0.17,-0.84l-0.85,-0.76l-1.84,-0.58l-3.76,1.0l-0.43,-1.87l-0.91,-1.03l-1.52,-0.66l0.07,-2.41ZM309.11,602.32l1.15,-0.9l0.67,-2.47l-0.61,-1.33l-1.64,-0.44l-1.19,0.8l-0.49,2.49l0.63,1.45l1.49,0.4ZM307.84,608.3l0.94,-0.4l1.08,-1.94l-0.6,-1.74l-1.63,-0.95l-0.46,0.07l-1.45,1.45l-0.2,1.38l0.25,1.08l0.52,0.68l1.55,0.37ZM235.41,400.43l1.09,0.41l1.35,-0.28l0.64,0.57l0.15,2.37l0.68,0.73l-0.16,1.32l2.38,1.46l0.35,0.53l-0.41,3.62l-0.61,1.91l-0.67,0.91l-0.62,-0.25l-0.84,-2.53l-1.25,-2.19l-3.59,-3.54l-1.32,-0.83l-2.14,-2.59l0.33,-1.57l-1.72,-3.8l1.1,0.13l1.99,0.91l3.27,2.7ZM219.58,381.29l3.07,-0.67l0.94,0.18l0.51,0.48l-0.09,0.29l-1.95,-0.5l-0.35,0.62l1.41,1.8l1.75,-0.06l1.83,-0.69l0.25,0.77l1.02,0.43l6.19,0.88l1.32,0.74l1.5,1.94l-0.96,0.35l-3.3,-0.75l-5.87,-3.31l-3.6,0.51l-0.76,-0.27l-2.9,-2.73Z", "name": "Aquitaine-Limousin-Poitou-Charentes"}, "FR-RE": {"path": "M761.79,701.36l1.08,0.18l1.12,-0.39l1.21,0.39l2.77,-0.03l2.17,1.11l3.51,0.8l0.97,0.55l2.4,2.39l0.54,1.06l0.32,2.77l0.52,1.06l1.9,1.97l0.91,3.81l1.85,0.93l1.43,2.47l3.94,1.89l0.84,0.82l0.32,1.39l-1.08,2.72l-1.31,6.18l-0.27,4.98l-0.6,1.25l-1.42,0.53l-4.24,0.16l-2.56,1.32l-1.76,0.26l-1.74,-0.1l-1.22,-0.48l-1.58,0.46l-1.92,0.08l-3.62,-0.55l-3.79,-2.43l-5.72,-1.87l-1.23,-0.75l-1.75,-2.11l-3.42,-0.26l-3.52,-4.42l-0.9,-1.55l-0.63,-4.75l-3.33,-4.36l-1.6,-3.39l0.0,-1.42l0.43,-1.55l0.75,-1.19l2.55,-1.05l1.15,-1.41l0.43,-1.65l-0.32,-1.19l0.55,-0.82l-0.29,-0.86l0.61,-0.27l2.76,-0.09l5.6,-3.4l4.93,-0.0l2.25,0.81Z", "name": "R\u00e9union"}}, "height": 749.2159980728637, "projection": {"type": "mill", "centralMeridian": 0.0}, "width": 900.0});
\ No newline at end of file
--- /dev/null
+{
+ "name": "jqvmap",
+ "version": "1.5.1",
+ "homepage": "http://jqvmap.com",
+ "author": {
+ "name": "JQVMap",
+ "email": "me@peterschmalfeldt.com",
+ "url": "http://jqvmap.com"
+ },
+ "license": "(MIT OR GPL-3.0)",
+ "description": "jQuery Vector Map Library",
+ "main": "dist/jquery.vmap.min.js",
+ "keywords": [
+ "jquery",
+ "map",
+ "svg",
+ "vml",
+ "vector"
+ ],
+ "repository": {
+ "type": "git",
+ "url": "https://github.com/manifestinteractive/jqvmap.git"
+ },
+ "dependencies": {
+ "jquery": "~1.11.3"
+ },
+ "scripts": {
+ "test": "grunt test"
+ },
+ "devDependencies": {
+ "eslint": "^0.21.0",
+ "grunt": "^0.4.5",
+ "grunt-bump": "0.0.15",
+ "grunt-changelog": "^0.2.2",
+ "grunt-contrib-clean": "^0.6.0",
+ "grunt-contrib-concat": "*",
+ "grunt-contrib-copy": "^0.5.0",
+ "grunt-contrib-qunit": "^0.7.0",
+ "grunt-contrib-uglify": "^0.10.0",
+ "grunt-gulp": "^0.1.0",
+ "grunt-shell": "^1.1.1",
+ "gruntfile-gtx": "^0.3.0",
+ "require-directory": "^2.0.0"
+ }
+}
--- /dev/null
+(function(){
+
+ var apiParams = {
+ colors: 1,
+ values: 1,
+ backgroundColor: 1,
+ scaleColors: 1,
+ normalizeFunction: 1,
+ enableZoom: 1,
+ showTooltip: 1,
+ borderColor: 1,
+ borderWidth: 1,
+ borderOpacity: 1,
+ selectedRegions: 1,
+ multiSelectRegion: 1
+ };
+
+ var apiEvents = {
+ onLabelShow: 'labelShow',
+ onLoad: 'load',
+ onRegionOver: 'regionMouseOver',
+ onRegionOut: 'regionMouseOut',
+ onRegionClick: 'regionClick',
+ onRegionSelect: 'regionSelect',
+ onRegionDeselect: 'regionDeselect',
+ onResize: 'resize'
+ };
+
+ jQuery.fn.vectorMap = function (options) {
+
+ var defaultParams = {
+ map: 'world_en',
+ backgroundColor: '#a5bfdd',
+ color: '#f4f3f0',
+ hoverColor: '#c9dfaf',
+ hoverColors: {},
+ selectedColor: '#c9dfaf',
+ scaleColors: ['#b6d6ff', '#005ace'],
+ normalizeFunction: 'linear',
+ enableZoom: true,
+ showTooltip: true,
+ borderColor: '#818181',
+ borderWidth: 1,
+ borderOpacity: 0.25,
+ selectedRegions: null,
+ multiSelectRegion: false
+ }, map = this.data('mapObject');
+
+ if (options === 'addMap') {
+ JQVMap.maps[arguments[1]] = arguments[2];
+ } else if (options === 'set' && apiParams[arguments[1]]) {
+ map['set' + arguments[1].charAt(0).toUpperCase() + arguments[1].substr(1)].apply(map, Array.prototype.slice.call(arguments, 2));
+ } else if (typeof options === 'string' &&
+ typeof map[options] === 'function') {
+ return map[options].apply(map, Array.prototype.slice.call(arguments, 1));
+ } else {
+ jQuery.extend(defaultParams, options);
+ defaultParams.container = this;
+ this.css({ position: 'relative', overflow: 'hidden' });
+
+ map = new JQVMap(defaultParams);
+
+ this.data('mapObject', map);
+
+ this.unbind('.jqvmap');
+
+ for (var e in apiEvents) {
+ if (defaultParams[e]) {
+ this.bind(apiEvents[e] + '.jqvmap', defaultParams[e]);
+ }
+ }
+
+ var loadEvent = jQuery.Event('load.jqvmap');
+ jQuery(defaultParams.container).trigger(loadEvent, map);
+
+ return map;
+ }
+ };
+
+})(jQuery);
--- /dev/null
+var ColorScale = function (colors, normalizeFunction, minValue, maxValue) {
+ if (colors) {
+ this.setColors(colors);
+ }
+ if (normalizeFunction) {
+ this.setNormalizeFunction(normalizeFunction);
+ }
+ if (minValue) {
+ this.setMin(minValue);
+ }
+ if (minValue) {
+ this.setMax(maxValue);
+ }
+};
+
+ColorScale.prototype = {
+ colors: []
+};
--- /dev/null
+ColorScale.arrayToRgb = function (ar) {
+ var rgb = '#';
+ var d;
+ for (var i = 0; i < ar.length; i++) {
+ d = ar[i].toString(16);
+ rgb += d.length === 1 ? '0' + d : d;
+ }
+ return rgb;
+};
--- /dev/null
+ColorScale.prototype.getColor = function (value) {
+ if (typeof this.normalize === 'function') {
+ value = this.normalize(value);
+ }
+
+ var lengthes = [];
+ var fullLength = 0;
+ var l;
+
+ for (var i = 0; i < this.colors.length - 1; i++) {
+ l = this.vectorLength(this.vectorSubtract(this.colors[i + 1], this.colors[i]));
+ lengthes.push(l);
+ fullLength += l;
+ }
+
+ var c = (this.maxValue - this.minValue) / fullLength;
+
+ for (i = 0; i < lengthes.length; i++) {
+ lengthes[i] *= c;
+ }
+
+ i = 0;
+ value -= this.minValue;
+
+ while (value - lengthes[i] >= 0) {
+ value -= lengthes[i];
+ i++;
+ }
+
+ var color;
+ if (i === this.colors.length - 1) {
+ color = this.vectorToNum(this.colors[i]).toString(16);
+ } else {
+ color = (this.vectorToNum(this.vectorAdd(this.colors[i], this.vectorMult(this.vectorSubtract(this.colors[i + 1], this.colors[i]), (value) / (lengthes[i]))))).toString(16);
+ }
+
+ while (color.length < 6) {
+ color = '0' + color;
+ }
+ return '#' + color;
+};
--- /dev/null
+ColorScale.rgbToArray = function (rgb) {
+ rgb = rgb.substr(1);
+ return [parseInt(rgb.substr(0, 2), 16), parseInt(rgb.substr(2, 2), 16), parseInt(rgb.substr(4, 2), 16)];
+};
--- /dev/null
+ColorScale.prototype.setColors = function (colors) {
+ for (var i = 0; i < colors.length; i++) {
+ colors[i] = ColorScale.rgbToArray(colors[i]);
+ }
+ this.colors = colors;
+};
--- /dev/null
+ColorScale.prototype.setMax = function (max) {
+ this.clearMaxValue = max;
+ if (typeof this.normalize === 'function') {
+ this.maxValue = this.normalize(max);
+ } else {
+ this.maxValue = max;
+ }
+};
--- /dev/null
+ColorScale.prototype.setMin = function (min) {
+ this.clearMinValue = min;
+
+ if (typeof this.normalize === 'function') {
+ this.minValue = this.normalize(min);
+ } else {
+ this.minValue = min;
+ }
+};
--- /dev/null
+ColorScale.prototype.setNormalizeFunction = function (f) {
+ if (f === 'polynomial') {
+ this.normalize = function (value) {
+ return Math.pow(value, 0.2);
+ };
+ } else if (f === 'linear') {
+ delete this.normalize;
+ } else {
+ this.normalize = f;
+ }
+ this.setMin(this.clearMinValue);
+ this.setMax(this.clearMaxValue);
+};
--- /dev/null
+ColorScale.prototype.vectorAdd = function (vector1, vector2) {
+ var vector = [];
+ for (var i = 0; i < vector1.length; i++) {
+ vector[i] = vector1[i] + vector2[i];
+ }
+ return vector;
+};
--- /dev/null
+ColorScale.prototype.vectorLength = function (vector) {
+ var result = 0;
+ for (var i = 0; i < vector.length; i++) {
+ result += vector[i] * vector[i];
+ }
+ return Math.sqrt(result);
+};
--- /dev/null
+ColorScale.prototype.vectorMult = function (vector, num) {
+ var result = [];
+ for (var i = 0; i < vector.length; i++) {
+ result[i] = vector[i] * num;
+ }
+ return result;
+};
--- /dev/null
+ColorScale.prototype.vectorSubtract = function (vector1, vector2) {
+ var vector = [];
+ for (var i = 0; i < vector1.length; i++) {
+ vector[i] = vector1[i] - vector2[i];
+ }
+ return vector;
+};
--- /dev/null
+ColorScale.prototype.vectorToNum = function (vector) {
+ var num = 0;
+ for (var i = 0; i < vector.length; i++) {
+ num += Math.round(vector[i]) * Math.pow(256, vector.length - i - 1);
+ }
+ return num;
+};
--- /dev/null
+//var JQVMap = function (params) {
+// params = params || {};
+// var map = this;
+// var mapData = JQVMap.maps[params.map];
+// var mapPins;
+//
+// if( !mapData){
+// throw new Error('Invalid "' + params.map + '" map parameter. Please make sure you have loaded this map file in your HTML.');
+// }
+//
+// this.selectedRegions = [];
+// this.multiSelectRegion = params.multiSelectRegion;
+//
+// this.container = params.container;
+//
+// this.defaultWidth = mapData.width;
+// this.defaultHeight = mapData.height;
+//
+// this.color = params.color;
+// this.selectedColor = params.selectedColor;
+// this.hoverColor = params.hoverColor;
+// this.hoverColors = params.hoverColors;
+// this.hoverOpacity = params.hoverOpacity;
+// this.setBackgroundColor(params.backgroundColor);
+//
+// this.width = params.container.width();
+// this.height = params.container.height();
+//
+// this.resize();
+//
+// jQuery(window).resize(function () {
+// var newWidth = params.container.width();
+// var newHeight = params.container.height();
+//
+// if(newWidth && newHeight){
+// map.width = newWidth;
+// map.height = newHeight;
+// map.resize();
+// map.canvas.setSize(map.width, map.height);
+// map.applyTransform();
+//
+// var resizeEvent = jQuery.Event('resize.jqvmap');
+// jQuery(params.container).trigger(resizeEvent, [newWidth, newHeight]);
+//
+// if(mapPins){
+// jQuery('.jqvmap-pin').remove();
+// map.pinHandlers = false;
+// map.placePins(mapPins.pins, mapPins.mode);
+// }
+// }
+// });
+//
+// this.canvas = new VectorCanvas(this.width, this.height, params);
+// params.container.append(this.canvas.canvas);
+//
+// this.makeDraggable();
+//
+// this.rootGroup = this.canvas.createGroup(true);
+//
+// this.index = JQVMap.mapIndex;
+// this.label = jQuery('<div/>').addClass('jqvmap-label').appendTo(jQuery('body')).hide();
+// this.desc = jQuery('<div/>').addClass('jqvmap-desc').appendTo(jQuery('body')).hide();
+// this.post_id = jQuery('<div/>').addClass('jqvmap-post_id').appendTo(jQuery('body')).hide();
+//
+// if (params.enableZoom) {
+// jQuery('<div/>').addClass('jqvmap-zoomin').text('+').appendTo(params.container);
+// jQuery('<div/>').addClass('jqvmap-zoomout').html('−').appendTo(params.container);
+// }
+//
+// map.countries = [];
+//
+// for (var key in mapData.paths) {
+// var path = this.canvas.createPath({
+// path: mapData.paths[key].path
+// });
+//
+// path.setFill(this.color);
+// path.id = map.getCountryId(key);
+// map.countries[key] = path;
+//
+// if (this.canvas.mode === 'svg') {
+// path.setAttribute('class', 'jqvmap-region');
+// } else {
+// jQuery(path).addClass('jqvmap-region');
+// }
+//
+// jQuery(this.rootGroup).append(path);
+// }
+//
+// jQuery(params.container).delegate(this.canvas.mode === 'svg' ? 'path' : 'shape', 'mouseover mouseout', function (e) {
+// var containerPath = e.target,
+// code = e.target.id.split('_').pop(),
+// labelShowEvent = jQuery.Event('labelShow.jqvmap'),
+// regionMouseOverEvent = jQuery.Event('regionMouseOver.jqvmap');
+//
+// code = code.toLowerCase();
+//
+// if (e.type === 'mouseover') {
+// jQuery(params.container).trigger(regionMouseOverEvent, [code, mapData.paths[code].name, mapData.paths[code].desc, mapData.paths[code].post_id]);
+// if (!regionMouseOverEvent.isDefaultPrevented()) {
+// map.highlight(code, containerPath);
+// }
+// if (params.showTooltip) {
+// map.label.text(mapData.paths[code].name);
+// map.desc.text(mapData.paths[code].desc);
+// map.post_id.text(mapData.paths[code].post_id)
+// jQuery(params.container).trigger(labelShowEvent, [map.label, map.desc, map.post_id, code]);
+//
+// if (!labelShowEvent.isDefaultPrevented()) {
+// map.label.show();
+// map.desc.show();
+// map.post_id.show();
+// map.labelWidth = map.label.width();
+// map.labelHeight = map.label.height();
+// map.descWidth = map.desc.width();
+// map.descHeight = map.desc.height();
+// }
+// }
+// } else {
+// map.unhighlight(code, containerPath);
+//
+// map.label.hide();
+// jQuery(params.container).trigger('regionMouseOut.jqvmap', [code, mapData.paths[code].name, mapData.paths[code].desc, mapData.paths[code].post_id]);
+// }
+// });
+//
+// jQuery(params.container).delegate(this.canvas.mode === 'svg' ? 'path' : 'shape', 'click', function (regionClickEvent) {
+//
+// var targetPath = regionClickEvent.target;
+// var code = regionClickEvent.target.id.split('_').pop();
+// var mapClickEvent = jQuery.Event('regionClick.jqvmap');
+//
+// code = code.toLowerCase();
+//
+// jQuery(params.container).trigger(mapClickEvent, [code, mapData.paths[code].name], mapData.paths[code].desc, mapData.paths[code].post_id);
+//
+// if ( !params.multiSelectRegion && !mapClickEvent.isDefaultPrevented()) {
+// for (var keyPath in mapData.paths) {
+// map.countries[keyPath].currentFillColor = map.countries[keyPath].getOriginalFill();
+// map.countries[keyPath].setFill(map.countries[keyPath].getOriginalFill());
+// }
+// }
+//
+// if ( !mapClickEvent.isDefaultPrevented()) {
+// if (map.isSelected(code)) {
+// map.deselect(code, targetPath);
+// } else {
+// map.select(code, targetPath);
+// }
+// }
+// });
+//
+// if (params.showTooltip) {
+// params.container.mousemove(function (e) {
+// if (map.label.is(':visible')) {
+// var left = e.pageX - 15 - map.labelWidth;
+// var top = e.pageY - 15 - map.labelHeight;
+//
+// if(left < 0) {
+// left = e.pageX + 15;
+// }
+// if(top < 0) {
+// top = e.pageY + 15;
+// }
+//
+// map.label.css({
+// left: left,
+// top: top
+// });
+// }
+// });
+// }
+//
+// this.setColors(params.colors);
+//
+// this.canvas.canvas.appendChild(this.rootGroup);
+//
+// this.applyTransform();
+//
+// this.colorScale = new ColorScale(params.scaleColors, params.normalizeFunction, params.valueMin, params.valueMax);
+//
+// if (params.values) {
+// this.values = params.values;
+// this.setValues(params.values);
+// }
+//
+// if (params.selectedRegions) {
+// if (params.selectedRegions instanceof Array) {
+// for(var k in params.selectedRegions) {
+// this.select(params.selectedRegions[k].toLowerCase());
+// }
+// } else {
+// this.select(params.selectedRegions.toLowerCase());
+// }
+// }
+//
+// this.bindZoomButtons();
+//
+// if(params.pins) {
+// mapPins = {
+// pins: params.pins,
+// mode: params.pinMode
+// };
+//
+// this.pinHandlers = false;
+// this.placePins(params.pins, params.pinMode);
+// }
+//
+// if(params.showLabels){
+// this.pinHandlers = false;
+//
+// var pins = {};
+// for (key in map.countries){
+// if (typeof map.countries[key] !== 'function') {
+// if( !params.pins || !params.pins[key] ){
+// pins[key] = key.toUpperCase();
+// }
+// }
+// }
+//
+// mapPins = {
+// pins: pins,
+// mode: 'content'
+// };
+//
+// this.placePins(pins, 'content');
+// }
+//
+// JQVMap.mapIndex++;
+//};
+//
+//JQVMap.prototype = {
+// transX: 0,
+// transY: 0,
+// scale: 1,
+// baseTransX: 0,
+// baseTransY: 0,
+// baseScale: 1,
+// width: 0,
+// height: 0,
+// countries: {},
+// countriesColors: {},
+// countriesData: {},
+// zoomStep: 1.4,
+// zoomMaxStep: 4,
+// zoomCurStep: 1
+//};
+//
+//JQVMap.xlink = 'http://www.w3.org/1999/xlink';
+//JQVMap.mapIndex = 1;
+//JQVMap.maps = {};
--- /dev/null
+JQVMap.prototype.applyTransform = function () {
+ var maxTransX, maxTransY, minTransX, minTransY;
+ if (this.defaultWidth * this.scale <= this.width) {
+ maxTransX = (this.width - this.defaultWidth * this.scale) / (2 * this.scale);
+ minTransX = (this.width - this.defaultWidth * this.scale) / (2 * this.scale);
+ } else {
+ maxTransX = 0;
+ minTransX = (this.width - this.defaultWidth * this.scale) / this.scale;
+ }
+
+ if (this.defaultHeight * this.scale <= this.height) {
+ maxTransY = (this.height - this.defaultHeight * this.scale) / (2 * this.scale);
+ minTransY = (this.height - this.defaultHeight * this.scale) / (2 * this.scale);
+ } else {
+ maxTransY = 0;
+ minTransY = (this.height - this.defaultHeight * this.scale) / this.scale;
+ }
+
+ if (this.transY > maxTransY) {
+ this.transY = maxTransY;
+ } else if (this.transY < minTransY) {
+ this.transY = minTransY;
+ }
+ if (this.transX > maxTransX) {
+ this.transX = maxTransX;
+ } else if (this.transX < minTransX) {
+ this.transX = minTransX;
+ }
+
+ this.canvas.applyTransformParams(this.scale, this.transX, this.transY);
+};
--- /dev/null
+JQVMap.prototype.bindZoomButtons = function () {
+ var map = this;
+ this.container.find('.jqvmap-zoomin').click(function(){
+ map.zoomIn();
+ });
+ this.container.find('.jqvmap-zoomout').click(function(){
+ map.zoomOut();
+ });
+};
--- /dev/null
+JQVMap.prototype.deselect = function (cc, path) {
+ cc = cc.toLowerCase();
+ path = path || jQuery('#' + this.getCountryId(cc))[0];
+
+ if (this.isSelected(cc)) {
+ this.selectedRegions.splice(this.selectIndex(cc), 1);
+
+ jQuery(this.container).trigger('regionDeselect.jqvmap', [cc]);
+ path.currentFillColor = path.getOriginalFill();
+ path.setFill(path.getOriginalFill());
+ } else {
+ for (var key in this.countries) {
+ this.selectedRegions.splice(this.selectedRegions.indexOf(key), 1);
+ this.countries[key].currentFillColor = this.color;
+ this.countries[key].setFill(this.color);
+ }
+ }
+};
--- /dev/null
+JQVMap.prototype.getCountryId = function (cc) {
+ return 'jqvmap' + this.index + '_' + cc;
+};
--- /dev/null
+JQVMap.prototype.getPin = function(cc){
+ var pinObj = jQuery('#' + this.getPinId(cc));
+ return pinObj.html();
+};
--- /dev/null
+JQVMap.prototype.getPinId = function (cc) {
+ return this.getCountryId(cc) + '_pin';
+};
--- /dev/null
+JQVMap.prototype.getPins = function(){
+ var pins = this.container.find('.jqvmap-pin');
+ var ret = {};
+ jQuery.each(pins, function(index, pinObj){
+ pinObj = jQuery(pinObj);
+ var cc = pinObj.attr('for').toLowerCase();
+ var pinContent = pinObj.html();
+ ret[cc] = pinContent;
+ });
+ return JSON.stringify(ret);
+};
--- /dev/null
+JQVMap.prototype.highlight = function (cc, path) {
+ path = path || jQuery('#' + this.getCountryId(cc))[0];
+ if (this.hoverOpacity) {
+ path.setOpacity(this.hoverOpacity);
+ } else if (this.hoverColors && (cc in this.hoverColors)) {
+ path.currentFillColor = path.getFill() + '';
+ path.setFill(this.hoverColors[cc]);
+ } else if (this.hoverColor) {
+ path.currentFillColor = path.getFill() + '';
+ path.setFill(this.hoverColor);
+ }
+};
--- /dev/null
+JQVMap.prototype.isSelected = function(cc) {
+ return this.selectIndex(cc) >= 0;
+};
--- /dev/null
+JQVMap.prototype.makeDraggable = function () {
+ var mouseDown = false;
+ var oldPageX, oldPageY;
+ var self = this;
+
+ self.isMoving = false;
+ self.isMovingTimeout = false;
+
+ var lastTouchCount;
+ var touchCenterX;
+ var touchCenterY;
+ var touchStartDistance;
+ var touchStartScale;
+ var touchX;
+ var touchY;
+
+ this.container.mousemove(function (e) {
+
+ if (mouseDown) {
+ self.transX -= (oldPageX - e.pageX) / self.scale;
+ self.transY -= (oldPageY - e.pageY) / self.scale;
+
+ self.applyTransform();
+
+ oldPageX = e.pageX;
+ oldPageY = e.pageY;
+
+ self.isMoving = true;
+ if (self.isMovingTimeout) {
+ clearTimeout(self.isMovingTimeout);
+ }
+
+ self.container.trigger('drag');
+ }
+
+ return false;
+
+ }).mousedown(function (e) {
+
+ mouseDown = true;
+ oldPageX = e.pageX;
+ oldPageY = e.pageY;
+
+ return false;
+
+ }).mouseup(function () {
+
+ mouseDown = false;
+
+ clearTimeout(self.isMovingTimeout);
+ self.isMovingTimeout = setTimeout(function () {
+ self.isMoving = false;
+ }, 100);
+
+ return false;
+
+ }).mouseout(function () {
+
+ if(mouseDown && self.isMoving){
+
+ clearTimeout(self.isMovingTimeout);
+ self.isMovingTimeout = setTimeout(function () {
+ mouseDown = false;
+ self.isMoving = false;
+ }, 100);
+
+ return false;
+ }
+ });
+
+ jQuery(this.container).bind('touchmove', function (e) {
+
+ var offset;
+ var scale;
+ var touches = e.originalEvent.touches;
+ var transformXOld;
+ var transformYOld;
+
+ if (touches.length === 1) {
+ if (lastTouchCount === 1) {
+
+ if(touchX === touches[0].pageX && touchY === touches[0].pageY){
+ return;
+ }
+
+ transformXOld = self.transX;
+ transformYOld = self.transY;
+
+ self.transX -= (touchX - touches[0].pageX) / self.scale;
+ self.transY -= (touchY - touches[0].pageY) / self.scale;
+
+ self.applyTransform();
+
+ if (transformXOld !== self.transX || transformYOld !== self.transY) {
+ e.preventDefault();
+ }
+
+ self.isMoving = true;
+ if (self.isMovingTimeout) {
+ clearTimeout(self.isMovingTimeout);
+ }
+ }
+
+ touchX = touches[0].pageX;
+ touchY = touches[0].pageY;
+
+ } else if (touches.length === 2) {
+
+ if (lastTouchCount === 2) {
+ scale = Math.sqrt(
+ Math.pow(touches[0].pageX - touches[1].pageX, 2) +
+ Math.pow(touches[0].pageY - touches[1].pageY, 2)
+ ) / touchStartDistance;
+
+ self.setScale(
+ touchStartScale * scale,
+ touchCenterX,
+ touchCenterY
+ );
+
+ e.preventDefault();
+
+ } else {
+
+ offset = jQuery(self.container).offset();
+ if (touches[0].pageX > touches[1].pageX) {
+ touchCenterX = touches[1].pageX + (touches[0].pageX - touches[1].pageX) / 2;
+ } else {
+ touchCenterX = touches[0].pageX + (touches[1].pageX - touches[0].pageX) / 2;
+ }
+
+ if (touches[0].pageY > touches[1].pageY) {
+ touchCenterY = touches[1].pageY + (touches[0].pageY - touches[1].pageY) / 2;
+ } else {
+ touchCenterY = touches[0].pageY + (touches[1].pageY - touches[0].pageY) / 2;
+ }
+
+ touchCenterX -= offset.left;
+ touchCenterY -= offset.top;
+ touchStartScale = self.scale;
+
+ touchStartDistance = Math.sqrt(
+ Math.pow(touches[0].pageX - touches[1].pageX, 2) +
+ Math.pow(touches[0].pageY - touches[1].pageY, 2)
+ );
+ }
+ }
+
+ lastTouchCount = touches.length;
+ });
+
+ jQuery(this.container).bind('touchstart', function () {
+ lastTouchCount = 0;
+ });
+
+ jQuery(this.container).bind('touchend', function () {
+ lastTouchCount = 0;
+ });
+};
--- /dev/null
+JQVMap.prototype.placePins = function(pins, pinMode){
+ var map = this;
+
+ if(!pinMode || (pinMode !== 'content' && pinMode !== 'id')) {
+ pinMode = 'content';
+ }
+
+ if(pinMode === 'content') {//treat pin as content
+ jQuery.each(pins, function(index, pin){
+ if(jQuery('#' + map.getCountryId(index)).length === 0){
+ return;
+ }
+
+ var pinIndex = map.getPinId(index);
+ var $pin = jQuery('#' + pinIndex);
+ if($pin.length > 0){
+ $pin.remove();
+ }
+ map.container.append('<div id="' + pinIndex + '" for="' + index + '" class="jqvmap-pin" style="position:absolute">' + pin + '</div>');
+ });
+ } else { //treat pin as id of an html content
+ jQuery.each(pins, function(index, pin){
+ if(jQuery('#' + map.getCountryId(index)).length === 0){
+ return;
+ }
+ var pinIndex = map.getPinId(index);
+ var $pin = jQuery('#' + pinIndex);
+ if($pin.length > 0){
+ $pin.remove();
+ }
+ map.container.append('<div id="' + pinIndex + '" for="' + index + '" class="jqvmap-pin" style="position:absolute"></div>');
+ $pin.append(jQuery('#' + pin));
+ });
+ }
+
+ this.positionPins();
+ if(!this.pinHandlers){
+ this.pinHandlers = true;
+ var positionFix = function(){
+ map.positionPins();
+ };
+ this.container.bind('zoomIn', positionFix)
+ .bind('zoomOut', positionFix)
+ .bind('drag', positionFix);
+ }
+};
--- /dev/null
+JQVMap.prototype.positionPins = function(){
+ var map = this;
+ var pins = this.container.find('.jqvmap-pin');
+ jQuery.each(pins, function(index, pinObj){
+ pinObj = jQuery(pinObj);
+ var countryId = map.getCountryId(pinObj.attr('for').toLowerCase());
+ var countryObj = jQuery('#' + countryId);
+ var bbox = countryObj[0].getBBox();
+
+ var scale = map.scale;
+ var rootCoords = map.canvas.rootGroup.getBoundingClientRect();
+ var mapCoords = map.container[0].getBoundingClientRect();
+
+ var middleX = (bbox.x * scale) + ((bbox.width * scale) / 2);
+ var middleY = (bbox.y * scale) + ((bbox.height * scale) / 2);
+
+ pinObj.css({
+ left: (rootCoords.left - mapCoords.left) + middleX - (pinObj.width() / 2),
+ top: (rootCoords.top - mapCoords.top) + middleY - (pinObj.height() / 2)
+ });
+ });
+};
--- /dev/null
+JQVMap.prototype.removePin = function(cc) {
+ cc = cc.toLowerCase();
+ jQuery('#' + this.getPinId(cc)).remove();
+};
--- /dev/null
+JQVMap.prototype.removePins = function(){
+ this.container.find('.jqvmap-pin').remove();
+};
--- /dev/null
+JQVMap.prototype.reset = function () {
+ for (var key in this.countries) {
+ this.countries[key].setFill(this.color);
+ }
+ this.scale = this.baseScale;
+ this.transX = this.baseTransX;
+ this.transY = this.baseTransY;
+ this.applyTransform();
+};
--- /dev/null
+JQVMap.prototype.resize = function () {
+ var curBaseScale = this.baseScale;
+ if (this.width / this.height > this.defaultWidth / this.defaultHeight) {
+ this.baseScale = this.height / this.defaultHeight;
+ this.baseTransX = Math.abs(this.width - this.defaultWidth * this.baseScale) / (2 * this.baseScale);
+ } else {
+ this.baseScale = this.width / this.defaultWidth;
+ this.baseTransY = Math.abs(this.height - this.defaultHeight * this.baseScale) / (2 * this.baseScale);
+ }
+ this.scale *= this.baseScale / curBaseScale;
+ this.transX *= this.baseScale / curBaseScale;
+ this.transY *= this.baseScale / curBaseScale;
+};
--- /dev/null
+JQVMap.prototype.select = function (cc, path) {
+ cc = cc.toLowerCase();
+ path = path || jQuery('#' + this.getCountryId(cc))[0];
+
+ if (!this.isSelected(cc)) {
+ if (this.multiSelectRegion) {
+ this.selectedRegions.push(cc);
+ } else {
+ this.selectedRegions = [cc];
+ }
+
+ jQuery(this.container).trigger('regionSelect.jqvmap', [cc]);
+ if (this.selectedColor && path) {
+ path.currentFillColor = this.selectedColor;
+ path.setFill(this.selectedColor);
+ }
+ }
+};
--- /dev/null
+JQVMap.prototype.selectIndex = function (cc) {
+ cc = cc.toLowerCase();
+ for (var i = 0; i < this.selectedRegions.length; i++) {
+ if (cc === this.selectedRegions[i]) {
+ return i;
+ }
+ }
+ return -1;
+};
--- /dev/null
+JQVMap.prototype.setBackgroundColor = function (backgroundColor) {
+ this.container.css('background-color', backgroundColor);
+};
--- /dev/null
+JQVMap.prototype.setColors = function (key, color) {
+ if (typeof key === 'string') {
+ this.countries[key].setFill(color);
+ this.countries[key].setAttribute('original', color);
+ } else {
+ var colors = key;
+
+ for (var code in colors) {
+ if (this.countries[code]) {
+ this.countries[code].setFill(colors[code]);
+ this.countries[code].setAttribute('original', colors[code]);
+ }
+ }
+ }
+};
--- /dev/null
+JQVMap.prototype.setNormalizeFunction = function (f) {
+ this.colorScale.setNormalizeFunction(f);
+
+ if (this.values) {
+ this.setValues(this.values);
+ }
+};
--- /dev/null
+JQVMap.prototype.setScale = function (scale) {
+ this.scale = scale;
+ this.applyTransform();
+};
--- /dev/null
+JQVMap.prototype.setScaleColors = function (colors) {
+ this.colorScale.setColors(colors);
+
+ if (this.values) {
+ this.setValues(this.values);
+ }
+};
--- /dev/null
+JQVMap.prototype.setValues = function (values) {
+ var max = 0,
+ min = Number.MAX_VALUE,
+ val;
+
+ for (var cc in values) {
+ cc = cc.toLowerCase();
+ val = parseFloat(values[cc]);
+
+ if (isNaN(val)) {
+ continue;
+ }
+ if (val > max) {
+ max = values[cc];
+ }
+ if (val < min) {
+ min = val;
+ }
+ }
+
+ if (min === max) {
+ max++;
+ }
+
+ this.colorScale.setMin(min);
+ this.colorScale.setMax(max);
+
+ var colors = {};
+ for (cc in values) {
+ cc = cc.toLowerCase();
+ val = parseFloat(values[cc]);
+ colors[cc] = isNaN(val) ? this.color : this.colorScale.getColor(val);
+ }
+ this.setColors(colors);
+ this.values = values;
+};
--- /dev/null
+JQVMap.prototype.unhighlight = function (cc, path) {
+ cc = cc.toLowerCase();
+ path = path || jQuery('#' + this.getCountryId(cc))[0];
+ path.setOpacity(1);
+ if (path.currentFillColor) {
+ path.setFill(path.currentFillColor);
+ }
+};
--- /dev/null
+JQVMap.prototype.zoomIn = function () {
+ var map = this;
+ var sliderDelta = (jQuery('#zoom').innerHeight() - 6 * 2 - 15 * 2 - 3 * 2 - 7 - 6) / (this.zoomMaxStep - this.zoomCurStep);
+
+ if (map.zoomCurStep < map.zoomMaxStep) {
+ map.transX -= (map.width / map.scale - map.width / (map.scale * map.zoomStep)) / 2;
+ map.transY -= (map.height / map.scale - map.height / (map.scale * map.zoomStep)) / 2;
+ map.setScale(map.scale * map.zoomStep);
+ map.zoomCurStep++;
+
+ var $slider = jQuery('#zoomSlider');
+
+ $slider.css('top', parseInt($slider.css('top'), 10) - sliderDelta);
+
+ map.container.trigger('zoomIn');
+ }
+};
--- /dev/null
+JQVMap.prototype.zoomOut = function () {
+ var map = this;
+ var sliderDelta = (jQuery('#zoom').innerHeight() - 6 * 2 - 15 * 2 - 3 * 2 - 7 - 6) / (this.zoomMaxStep - this.zoomCurStep);
+
+ if (map.zoomCurStep > 1) {
+ map.transX += (map.width / (map.scale / map.zoomStep) - map.width / map.scale) / 2;
+ map.transY += (map.height / (map.scale / map.zoomStep) - map.height / map.scale) / 2;
+ map.setScale(map.scale / map.zoomStep);
+ map.zoomCurStep--;
+
+ var $slider = jQuery('#zoomSlider');
+
+ $slider.css('top', parseInt($slider.css('top'), 10) + sliderDelta);
+
+ map.container.trigger('zoomOut');
+ }
+};
--- /dev/null
+var VectorCanvas = function (width, height, params) {
+ this.mode = window.SVGAngle ? 'svg' : 'vml';
+ this.params = params;
+
+ if (this.mode === 'svg') {
+ this.createSvgNode = function (nodeName) {
+ return document.createElementNS(this.svgns, nodeName);
+ };
+ } else {
+ try {
+ if (!document.namespaces.rvml) {
+ document.namespaces.add('rvml', 'urn:schemas-microsoft-com:vml');
+ }
+ this.createVmlNode = function (tagName) {
+ return document.createElement('<rvml:' + tagName + ' class="rvml">');
+ };
+ } catch (e) {
+ this.createVmlNode = function (tagName) {
+ return document.createElement('<' + tagName + ' xmlns="urn:schemas-microsoft.com:vml" class="rvml">');
+ };
+ }
+
+ document.createStyleSheet().addRule('.rvml', 'behavior:url(#default#VML)');
+ }
+
+ if (this.mode === 'svg') {
+ this.canvas = this.createSvgNode('svg');
+ } else {
+ this.canvas = this.createVmlNode('group');
+ this.canvas.style.position = 'absolute';
+ }
+
+ this.setSize(width, height);
+};
+
+VectorCanvas.prototype = {
+ svgns: 'http://www.w3.org/2000/svg',
+ mode: 'svg',
+ width: 0,
+ height: 0,
+ canvas: null
+};
--- /dev/null
+VectorCanvas.prototype.applyTransformParams = function (scale, transX, transY) {
+ if (this.mode === 'svg') {
+ this.rootGroup.setAttribute('transform', 'scale(' + scale + ') translate(' + transX + ', ' + transY + ')');
+ } else {
+ this.rootGroup.coordorigin = (this.width - transX) + ',' + (this.height - transY);
+ this.rootGroup.coordsize = this.width / scale + ',' + this.height / scale;
+ }
+};
--- /dev/null
+VectorCanvas.prototype.createGroup = function (isRoot) {
+ var node;
+ if (this.mode === 'svg') {
+ node = this.createSvgNode('g');
+ } else {
+ node = this.createVmlNode('group');
+ node.style.width = this.width + 'px';
+ node.style.height = this.height + 'px';
+ node.style.left = '0px';
+ node.style.top = '0px';
+ node.coordorigin = '0 0';
+ node.coordsize = this.width + ' ' + this.height;
+ }
+
+ if (isRoot) {
+ this.rootGroup = node;
+ }
+ return node;
+};
--- /dev/null
+VectorCanvas.prototype.createPath = function (config) {
+ var node;
+ if (this.mode === 'svg') {
+ node = this.createSvgNode('path');
+ node.setAttribute('d', config.path);
+
+ if (this.params.borderColor !== null) {
+ node.setAttribute('stroke', this.params.borderColor);
+ }
+ if (this.params.borderWidth > 0) {
+ node.setAttribute('stroke-width', this.params.borderWidth);
+ node.setAttribute('stroke-linecap', 'round');
+ node.setAttribute('stroke-linejoin', 'round');
+ }
+ if (this.params.borderOpacity > 0) {
+ node.setAttribute('stroke-opacity', this.params.borderOpacity);
+ }
+
+ node.setFill = function (color) {
+ this.setAttribute('fill', color);
+ if (this.getAttribute('original') === null) {
+ this.setAttribute('original', color);
+ }
+ };
+
+ node.getFill = function () {
+ return this.getAttribute('fill');
+ };
+
+ node.getOriginalFill = function () {
+ return this.getAttribute('original');
+ };
+
+ node.setOpacity = function (opacity) {
+ this.setAttribute('fill-opacity', opacity);
+ };
+ } else {
+ node = this.createVmlNode('shape');
+ node.coordorigin = '0 0';
+ node.coordsize = this.width + ' ' + this.height;
+ node.style.width = this.width + 'px';
+ node.style.height = this.height + 'px';
+ node.fillcolor = JQVMap.defaultFillColor;
+ node.stroked = false;
+ node.path = VectorCanvas.pathSvgToVml(config.path);
+
+ var scale = this.createVmlNode('skew');
+ scale.on = true;
+ scale.matrix = '0.01,0,0,0.01,0,0';
+ scale.offset = '0,0';
+
+ node.appendChild(scale);
+
+ var fill = this.createVmlNode('fill');
+ node.appendChild(fill);
+
+ node.setFill = function (color) {
+ this.getElementsByTagName('fill')[0].color = color;
+ if (this.getAttribute('original') === null) {
+ this.setAttribute('original', color);
+ }
+ };
+
+ node.getFill = function () {
+ return this.getElementsByTagName('fill')[0].color;
+ };
+ node.getOriginalFill = function () {
+ return this.getAttribute('original');
+ };
+ node.setOpacity = function (opacity) {
+ this.getElementsByTagName('fill')[0].opacity = parseInt(opacity * 100, 10) + '%';
+ };
+ }
+ return node;
+};
--- /dev/null
+VectorCanvas.prototype.pathSvgToVml = function (path) {
+ var result = '';
+ var cx = 0, cy = 0, ctrlx, ctrly;
+
+ return path.replace(/([MmLlHhVvCcSs])((?:-?(?:\d+)?(?:\.\d+)?,?\s?)+)/g, function (segment, letter, coords) {
+ coords = coords.replace(/(\d)-/g, '$1,-').replace(/\s+/g, ',').split(',');
+ if (!coords[0]) {
+ coords.shift();
+ }
+
+ for (var i = 0, l = coords.length; i < l; i++) {
+ coords[i] = Math.round(100 * coords[i]);
+ }
+
+ switch (letter) {
+ case 'm':
+ cx += coords[0];
+ cy += coords[1];
+ result = 't' + coords.join(',');
+ break;
+
+ case 'M':
+ cx = coords[0];
+ cy = coords[1];
+ result = 'm' + coords.join(',');
+ break;
+
+ case 'l':
+ cx += coords[0];
+ cy += coords[1];
+ result = 'r' + coords.join(',');
+ break;
+
+ case 'L':
+ cx = coords[0];
+ cy = coords[1];
+ result = 'l' + coords.join(',');
+ break;
+
+ case 'h':
+ cx += coords[0];
+ result = 'r' + coords[0] + ',0';
+ break;
+
+ case 'H':
+ cx = coords[0];
+ result = 'l' + cx + ',' + cy;
+ break;
+
+ case 'v':
+ cy += coords[0];
+ result = 'r0,' + coords[0];
+ break;
+
+ case 'V':
+ cy = coords[0];
+ result = 'l' + cx + ',' + cy;
+ break;
+
+ case 'c':
+ ctrlx = cx + coords[coords.length - 4];
+ ctrly = cy + coords[coords.length - 3];
+ cx += coords[coords.length - 2];
+ cy += coords[coords.length - 1];
+ result = 'v' + coords.join(',');
+ break;
+
+ case 'C':
+ ctrlx = coords[coords.length - 4];
+ ctrly = coords[coords.length - 3];
+ cx = coords[coords.length - 2];
+ cy = coords[coords.length - 1];
+ result = 'c' + coords.join(',');
+ break;
+
+ case 's':
+ coords.unshift(cy - ctrly);
+ coords.unshift(cx - ctrlx);
+ ctrlx = cx + coords[coords.length - 4];
+ ctrly = cy + coords[coords.length - 3];
+ cx += coords[coords.length - 2];
+ cy += coords[coords.length - 1];
+ result = 'v' + coords.join(',');
+ break;
+
+ case 'S':
+ coords.unshift(cy + cy - ctrly);
+ coords.unshift(cx + cx - ctrlx);
+ ctrlx = coords[coords.length - 4];
+ ctrly = coords[coords.length - 3];
+ cx = coords[coords.length - 2];
+ cy = coords[coords.length - 1];
+ result = 'c' + coords.join(',');
+ break;
+
+ default:
+ break;
+ }
+
+ return result;
+
+ }).replace(/z/g, '');
+};
--- /dev/null
+VectorCanvas.prototype.setSize = function (width, height) {
+ if (this.mode === 'svg') {
+ this.canvas.setAttribute('width', width);
+ this.canvas.setAttribute('height', height);
+ } else {
+ this.canvas.style.width = width + 'px';
+ this.canvas.style.height = height + 'px';
+ this.canvas.coordsize = width + ' ' + height;
+ this.canvas.coordorigin = '0 0';
+ if (this.rootGroup) {
+ var paths = this.rootGroup.getElementsByTagName('shape');
+ for (var i = 0, l = paths.length; i < l; i++) {
+ paths[i].coordsize = width + ' ' + height;
+ paths[i].style.width = width + 'px';
+ paths[i].style.height = height + 'px';
+ }
+ this.rootGroup.coordsize = width + ' ' + height;
+ this.rootGroup.style.width = width + 'px';
+ this.rootGroup.style.height = height + 'px';
+ }
+ }
+ this.width = width;
+ this.height = height;
+};
--- /dev/null
+<!DOCTYPE html>
+<html id="html">
+ <head>
+ <meta charset="utf-8">
+ <title>JQVMap - Test Suite</title>
+ <link rel="stylesheet" href="qunit/qunit.css">
+ <link rel="stylesheet" href="../dist/jqvmap.css">
+
+ <script type="text/javascript" src="http://code.jquery.com/jquery-1.11.3.min.js"></script>
+ <script type="text/javascript" src="../dist/jquery.vmap.js"></script>
+ <script type="text/javascript" src="../dist/maps/jquery.vmap.world.js" charset="utf-8"></script>
+ <script src="qunit/qunit.js"></script>
+
+ <script src="tests.js"></script>
+ </head>
+ <body id="body">
+ <h1 id="qunit-header">
+ <a href="http://jqvmap.com/">JQVMap</a> Test Suite
+ </h1>
+
+ <div></div>
+ <h2 id="qunit-banner"></h2>
+
+ <div id="qunit-testrunner-toolbar"></div>
+ <h2 id="qunit-userAgent"></h2>
+ <ol id="qunit-tests"></ol>
+
+ <!-- Test HTML -->
+ <div id="test-map"></div>
+
+ </body>
+</html>
--- /dev/null
+/*!
+ * QUnit 1.18.0
+ * http://qunitjs.com/
+ *
+ * Copyright jQuery Foundation and other contributors
+ * Released under the MIT license
+ * http://jquery.org/license
+ *
+ * Date: 2015-04-03T10:23Z
+ */
+
+/** Font Family and Sizes */
+
+#qunit-tests, #qunit-header, #qunit-banner, #qunit-testrunner-toolbar, #qunit-userAgent, #qunit-testresult {
+ font-family: "Helvetica Neue Light", "HelveticaNeue-Light", "Helvetica Neue", Calibri, Helvetica, Arial, sans-serif;
+}
+
+#qunit-testrunner-toolbar, #qunit-userAgent, #qunit-testresult, #qunit-tests li { font-size: small; }
+#qunit-tests { font-size: smaller; }
+
+
+/** Resets */
+
+#qunit-tests, #qunit-header, #qunit-banner, #qunit-userAgent, #qunit-testresult, #qunit-modulefilter {
+ margin: 0;
+ padding: 0;
+}
+
+
+/** Header */
+
+#qunit-header {
+ padding: 0.5em 0 0.5em 1em;
+
+ color: #8699A4;
+ background-color: #0D3349;
+
+ font-size: 1.5em;
+ line-height: 1em;
+ font-weight: 400;
+
+ border-radius: 5px 5px 0 0;
+}
+
+#qunit-header a {
+ text-decoration: none;
+ color: #C2CCD1;
+}
+
+#qunit-header a:hover,
+#qunit-header a:focus {
+ color: #FFF;
+}
+
+#qunit-testrunner-toolbar label {
+ display: inline-block;
+ padding: 0 0.5em 0 0.1em;
+}
+
+#qunit-banner {
+ height: 5px;
+}
+
+#qunit-testrunner-toolbar {
+ padding: 0.5em 1em 0.5em 1em;
+ color: #5E740B;
+ background-color: #EEE;
+ overflow: hidden;
+}
+
+#qunit-userAgent {
+ padding: 0.5em 1em 0.5em 1em;
+ background-color: #2B81AF;
+ color: #FFF;
+ text-shadow: rgba(0, 0, 0, 0.5) 2px 2px 1px;
+}
+
+#qunit-modulefilter-container {
+ float: right;
+ padding: 0.2em;
+}
+
+.qunit-url-config {
+ display: inline-block;
+ padding: 0.1em;
+}
+
+.qunit-filter {
+ display: block;
+ float: right;
+ margin-left: 1em;
+}
+
+/** Tests: Pass/Fail */
+
+#qunit-tests {
+ list-style-position: inside;
+}
+
+#qunit-tests li {
+ padding: 0.4em 1em 0.4em 1em;
+ border-bottom: 1px solid #FFF;
+ list-style-position: inside;
+}
+
+#qunit-tests > li {
+ display: none;
+}
+
+#qunit-tests li.running,
+#qunit-tests li.pass,
+#qunit-tests li.fail,
+#qunit-tests li.skipped {
+ display: list-item;
+}
+
+#qunit-tests.hidepass li.running,
+#qunit-tests.hidepass li.pass {
+ visibility: hidden;
+ position: absolute;
+ width: 0px;
+ height: 0px;
+ padding: 0;
+ border: 0;
+ margin: 0;
+}
+
+#qunit-tests li strong {
+ cursor: pointer;
+}
+
+#qunit-tests li.skipped strong {
+ cursor: default;
+}
+
+#qunit-tests li a {
+ padding: 0.5em;
+ color: #C2CCD1;
+ text-decoration: none;
+}
+
+#qunit-tests li p a {
+ padding: 0.25em;
+ color: #6B6464;
+}
+#qunit-tests li a:hover,
+#qunit-tests li a:focus {
+ color: #000;
+}
+
+#qunit-tests li .runtime {
+ float: right;
+ font-size: smaller;
+}
+
+.qunit-assert-list {
+ margin-top: 0.5em;
+ padding: 0.5em;
+
+ background-color: #FFF;
+
+ border-radius: 5px;
+}
+
+.qunit-collapsed {
+ display: none;
+}
+
+#qunit-tests table {
+ border-collapse: collapse;
+ margin-top: 0.2em;
+}
+
+#qunit-tests th {
+ text-align: right;
+ vertical-align: top;
+ padding: 0 0.5em 0 0;
+}
+
+#qunit-tests td {
+ vertical-align: top;
+}
+
+#qunit-tests pre {
+ margin: 0;
+ white-space: pre-wrap;
+ word-wrap: break-word;
+}
+
+#qunit-tests del {
+ background-color: #E0F2BE;
+ color: #374E0C;
+ text-decoration: none;
+}
+
+#qunit-tests ins {
+ background-color: #FFCACA;
+ color: #500;
+ text-decoration: none;
+}
+
+/*** Test Counts */
+
+#qunit-tests b.counts { color: #000; }
+#qunit-tests b.passed { color: #5E740B; }
+#qunit-tests b.failed { color: #710909; }
+
+#qunit-tests li li {
+ padding: 5px;
+ background-color: #FFF;
+ border-bottom: none;
+ list-style-position: inside;
+}
+
+/*** Passing Styles */
+
+#qunit-tests li li.pass {
+ color: #3C510C;
+ background-color: #FFF;
+ border-left: 10px solid #C6E746;
+}
+
+#qunit-tests .pass { color: #528CE0; background-color: #D2E0E6; }
+#qunit-tests .pass .test-name { color: #366097; }
+
+#qunit-tests .pass .test-actual,
+#qunit-tests .pass .test-expected { color: #999; }
+
+#qunit-banner.qunit-pass { background-color: #C6E746; }
+
+/*** Failing Styles */
+
+#qunit-tests li li.fail {
+ color: #710909;
+ background-color: #FFF;
+ border-left: 10px solid #EE5757;
+ white-space: pre;
+}
+
+#qunit-tests > li:last-child {
+ border-radius: 0 0 5px 5px;
+}
+
+#qunit-tests .fail { color: #000; background-color: #EE5757; }
+#qunit-tests .fail .test-name,
+#qunit-tests .fail .module-name { color: #000; }
+
+#qunit-tests .fail .test-actual { color: #EE5757; }
+#qunit-tests .fail .test-expected { color: #008000; }
+
+#qunit-banner.qunit-fail { background-color: #EE5757; }
+
+/*** Skipped tests */
+
+#qunit-tests .skipped {
+ background-color: #EBECE9;
+}
+
+#qunit-tests .qunit-skipped-label {
+ background-color: #F4FF77;
+ display: inline-block;
+ font-style: normal;
+ color: #366097;
+ line-height: 1.8em;
+ padding: 0 0.5em;
+ margin: -0.4em 0.4em -0.4em 0;
+}
+
+/** Result */
+
+#qunit-testresult {
+ padding: 0.5em 1em 0.5em 1em;
+
+ color: #2B81AF;
+ background-color: #D2E0E6;
+
+ border-bottom: 1px solid #FFF;
+}
+#qunit-testresult .module-name {
+ font-weight: 700;
+}
+
+/** Fixture */
+
+#qunit-fixture {
+ position: absolute;
+ top: -10000px;
+ left: -10000px;
+ width: 1000px;
+ height: 1000px;
+}
--- /dev/null
+/*!
+ * QUnit 1.18.0
+ * http://qunitjs.com/
+ *
+ * Copyright jQuery Foundation and other contributors
+ * Released under the MIT license
+ * http://jquery.org/license
+ *
+ * Date: 2015-04-03T10:23Z
+ */
+
+(function( window ) {
+
+ var QUnit,
+ config,
+ onErrorFnPrev,
+ loggingCallbacks = {},
+ fileName = ( sourceFromStacktrace( 0 ) || "" ).replace( /(:\d+)+\)?/, "" ).replace( /.+\//, "" ),
+ toString = Object.prototype.toString,
+ hasOwn = Object.prototype.hasOwnProperty,
+ // Keep a local reference to Date (GH-283)
+ Date = window.Date,
+ now = Date.now || function() {
+ return new Date().getTime();
+ },
+ globalStartCalled = false,
+ runStarted = false,
+ setTimeout = window.setTimeout,
+ clearTimeout = window.clearTimeout,
+ defined = {
+ document: window.document !== undefined,
+ setTimeout: window.setTimeout !== undefined,
+ sessionStorage: (function() {
+ var x = "qunit-test-string";
+ try {
+ sessionStorage.setItem( x, x );
+ sessionStorage.removeItem( x );
+ return true;
+ } catch ( e ) {
+ return false;
+ }
+ }())
+ },
+ /**
+ * Provides a normalized error string, correcting an issue
+ * with IE 7 (and prior) where Error.prototype.toString is
+ * not properly implemented
+ *
+ * Based on http://es5.github.com/#x15.11.4.4
+ *
+ * @param {String|Error} error
+ * @return {String} error message
+ */
+ errorString = function( error ) {
+ var name, message,
+ errorString = error.toString();
+ if ( errorString.substring( 0, 7 ) === "[object" ) {
+ name = error.name ? error.name.toString() : "Error";
+ message = error.message ? error.message.toString() : "";
+ if ( name && message ) {
+ return name + ": " + message;
+ } else if ( name ) {
+ return name;
+ } else if ( message ) {
+ return message;
+ } else {
+ return "Error";
+ }
+ } else {
+ return errorString;
+ }
+ },
+ /**
+ * Makes a clone of an object using only Array or Object as base,
+ * and copies over the own enumerable properties.
+ *
+ * @param {Object} obj
+ * @return {Object} New object with only the own properties (recursively).
+ */
+ objectValues = function( obj ) {
+ var key, val,
+ vals = QUnit.is( "array", obj ) ? [] : {};
+ for ( key in obj ) {
+ if ( hasOwn.call( obj, key ) ) {
+ val = obj[ key ];
+ vals[ key ] = val === Object( val ) ? objectValues( val ) : val;
+ }
+ }
+ return vals;
+ };
+
+ QUnit = {};
+
+ /**
+ * Config object: Maintain internal state
+ * Later exposed as QUnit.config
+ * `config` initialized at top of scope
+ */
+ config = {
+ // The queue of tests to run
+ queue: [],
+
+ // block until document ready
+ blocking: true,
+
+ // by default, run previously failed tests first
+ // very useful in combination with "Hide passed tests" checked
+ reorder: true,
+
+ // by default, modify document.title when suite is done
+ altertitle: true,
+
+ // by default, scroll to top of the page when suite is done
+ scrolltop: true,
+
+ // when enabled, all tests must call expect()
+ requireExpects: false,
+
+ // depth up-to which object will be dumped
+ maxDepth: 5,
+
+ // add checkboxes that are persisted in the query-string
+ // when enabled, the id is set to `true` as a `QUnit.config` property
+ urlConfig: [
+ {
+ id: "hidepassed",
+ label: "Hide passed tests",
+ tooltip: "Only show tests and assertions that fail. Stored as query-strings."
+ },
+ {
+ id: "noglobals",
+ label: "Check for Globals",
+ tooltip: "Enabling this will test if any test introduces new properties on the " +
+ "`window` object. Stored as query-strings."
+ },
+ {
+ id: "notrycatch",
+ label: "No try-catch",
+ tooltip: "Enabling this will run tests outside of a try-catch block. Makes debugging " +
+ "exceptions in IE reasonable. Stored as query-strings."
+ }
+ ],
+
+ // Set of all modules.
+ modules: [],
+
+ // The first unnamed module
+ currentModule: {
+ name: "",
+ tests: []
+ },
+
+ callbacks: {}
+ };
+
+// Push a loose unnamed module to the modules collection
+ config.modules.push( config.currentModule );
+
+// Initialize more QUnit.config and QUnit.urlParams
+ (function() {
+ var i, current,
+ location = window.location || { search: "", protocol: "file:" },
+ params = location.search.slice( 1 ).split( "&" ),
+ length = params.length,
+ urlParams = {};
+
+ if ( params[ 0 ] ) {
+ for ( i = 0; i < length; i++ ) {
+ current = params[ i ].split( "=" );
+ current[ 0 ] = decodeURIComponent( current[ 0 ] );
+
+ // allow just a key to turn on a flag, e.g., test.html?noglobals
+ current[ 1 ] = current[ 1 ] ? decodeURIComponent( current[ 1 ] ) : true;
+ if ( urlParams[ current[ 0 ] ] ) {
+ urlParams[ current[ 0 ] ] = [].concat( urlParams[ current[ 0 ] ], current[ 1 ] );
+ } else {
+ urlParams[ current[ 0 ] ] = current[ 1 ];
+ }
+ }
+ }
+
+ if ( urlParams.filter === true ) {
+ delete urlParams.filter;
+ }
+
+ QUnit.urlParams = urlParams;
+
+ // String search anywhere in moduleName+testName
+ config.filter = urlParams.filter;
+
+ if ( urlParams.maxDepth ) {
+ config.maxDepth = parseInt( urlParams.maxDepth, 10 ) === -1 ?
+ Number.POSITIVE_INFINITY :
+ urlParams.maxDepth;
+ }
+
+ config.testId = [];
+ if ( urlParams.testId ) {
+
+ // Ensure that urlParams.testId is an array
+ urlParams.testId = decodeURIComponent( urlParams.testId ).split( "," );
+ for ( i = 0; i < urlParams.testId.length; i++ ) {
+ config.testId.push( urlParams.testId[ i ] );
+ }
+ }
+
+ // Figure out if we're running the tests from a server or not
+ QUnit.isLocal = location.protocol === "file:";
+
+ // Expose the current QUnit version
+ QUnit.version = "1.18.0";
+ }());
+
+// Root QUnit object.
+// `QUnit` initialized at top of scope
+ extend( QUnit, {
+
+ // call on start of module test to prepend name to all tests
+ module: function( name, testEnvironment ) {
+ var currentModule = {
+ name: name,
+ testEnvironment: testEnvironment,
+ tests: []
+ };
+
+ // DEPRECATED: handles setup/teardown functions,
+ // beforeEach and afterEach should be used instead
+ if ( testEnvironment && testEnvironment.setup ) {
+ testEnvironment.beforeEach = testEnvironment.setup;
+ delete testEnvironment.setup;
+ }
+ if ( testEnvironment && testEnvironment.teardown ) {
+ testEnvironment.afterEach = testEnvironment.teardown;
+ delete testEnvironment.teardown;
+ }
+
+ config.modules.push( currentModule );
+ config.currentModule = currentModule;
+ },
+
+ // DEPRECATED: QUnit.asyncTest() will be removed in QUnit 2.0.
+ asyncTest: function( testName, expected, callback ) {
+ if ( arguments.length === 2 ) {
+ callback = expected;
+ expected = null;
+ }
+
+ QUnit.test( testName, expected, callback, true );
+ },
+
+ test: function( testName, expected, callback, async ) {
+ var test;
+
+ if ( arguments.length === 2 ) {
+ callback = expected;
+ expected = null;
+ }
+
+ test = new Test({
+ testName: testName,
+ expected: expected,
+ async: async,
+ callback: callback
+ });
+
+ test.queue();
+ },
+
+ skip: function( testName ) {
+ var test = new Test({
+ testName: testName,
+ skip: true
+ });
+
+ test.queue();
+ },
+
+ // DEPRECATED: The functionality of QUnit.start() will be altered in QUnit 2.0.
+ // In QUnit 2.0, invoking it will ONLY affect the `QUnit.config.autostart` blocking behavior.
+ start: function( count ) {
+ var globalStartAlreadyCalled = globalStartCalled;
+
+ if ( !config.current ) {
+ globalStartCalled = true;
+
+ if ( runStarted ) {
+ throw new Error( "Called start() outside of a test context while already started" );
+ } else if ( globalStartAlreadyCalled || count > 1 ) {
+ throw new Error( "Called start() outside of a test context too many times" );
+ } else if ( config.autostart ) {
+ throw new Error( "Called start() outside of a test context when " +
+ "QUnit.config.autostart was true" );
+ } else if ( !config.pageLoaded ) {
+
+ // The page isn't completely loaded yet, so bail out and let `QUnit.load` handle it
+ config.autostart = true;
+ return;
+ }
+ } else {
+
+ // If a test is running, adjust its semaphore
+ config.current.semaphore -= count || 1;
+
+ // Don't start until equal number of stop-calls
+ if ( config.current.semaphore > 0 ) {
+ return;
+ }
+
+ // throw an Error if start is called more often than stop
+ if ( config.current.semaphore < 0 ) {
+ config.current.semaphore = 0;
+
+ QUnit.pushFailure(
+ "Called start() while already started (test's semaphore was 0 already)",
+ sourceFromStacktrace( 2 )
+ );
+ return;
+ }
+ }
+
+ resumeProcessing();
+ },
+
+ // DEPRECATED: QUnit.stop() will be removed in QUnit 2.0.
+ stop: function( count ) {
+
+ // If there isn't a test running, don't allow QUnit.stop() to be called
+ if ( !config.current ) {
+ throw new Error( "Called stop() outside of a test context" );
+ }
+
+ // If a test is running, adjust its semaphore
+ config.current.semaphore += count || 1;
+
+ pauseProcessing();
+ },
+
+ config: config,
+
+ // Safe object type checking
+ is: function( type, obj ) {
+ return QUnit.objectType( obj ) === type;
+ },
+
+ objectType: function( obj ) {
+ if ( typeof obj === "undefined" ) {
+ return "undefined";
+ }
+
+ // Consider: typeof null === object
+ if ( obj === null ) {
+ return "null";
+ }
+
+ var match = toString.call( obj ).match( /^\[object\s(.*)\]$/ ),
+ type = match && match[ 1 ] || "";
+
+ switch ( type ) {
+ case "Number":
+ if ( isNaN( obj ) ) {
+ return "nan";
+ }
+ return "number";
+ case "String":
+ case "Boolean":
+ case "Array":
+ case "Date":
+ case "RegExp":
+ case "Function":
+ return type.toLowerCase();
+ }
+ if ( typeof obj === "object" ) {
+ return "object";
+ }
+ return undefined;
+ },
+
+ extend: extend,
+
+ load: function() {
+ config.pageLoaded = true;
+
+ // Initialize the configuration options
+ extend( config, {
+ stats: { all: 0, bad: 0 },
+ moduleStats: { all: 0, bad: 0 },
+ started: 0,
+ updateRate: 1000,
+ autostart: true,
+ filter: ""
+ }, true );
+
+ config.blocking = false;
+
+ if ( config.autostart ) {
+ resumeProcessing();
+ }
+ }
+ });
+
+// Register logging callbacks
+ (function() {
+ var i, l, key,
+ callbacks = [ "begin", "done", "log", "testStart", "testDone",
+ "moduleStart", "moduleDone" ];
+
+ function registerLoggingCallback( key ) {
+ var loggingCallback = function( callback ) {
+ if ( QUnit.objectType( callback ) !== "function" ) {
+ throw new Error(
+ "QUnit logging methods require a callback function as their first parameters."
+ );
+ }
+
+ config.callbacks[ key ].push( callback );
+ };
+
+ // DEPRECATED: This will be removed on QUnit 2.0.0+
+ // Stores the registered functions allowing restoring
+ // at verifyLoggingCallbacks() if modified
+ loggingCallbacks[ key ] = loggingCallback;
+
+ return loggingCallback;
+ }
+
+ for ( i = 0, l = callbacks.length; i < l; i++ ) {
+ key = callbacks[ i ];
+
+ // Initialize key collection of logging callback
+ if ( QUnit.objectType( config.callbacks[ key ] ) === "undefined" ) {
+ config.callbacks[ key ] = [];
+ }
+
+ QUnit[ key ] = registerLoggingCallback( key );
+ }
+ })();
+
+// `onErrorFnPrev` initialized at top of scope
+// Preserve other handlers
+ onErrorFnPrev = window.onerror;
+
+// Cover uncaught exceptions
+// Returning true will suppress the default browser handler,
+// returning false will let it run.
+ window.onerror = function( error, filePath, linerNr ) {
+ var ret = false;
+ if ( onErrorFnPrev ) {
+ ret = onErrorFnPrev( error, filePath, linerNr );
+ }
+
+ // Treat return value as window.onerror itself does,
+ // Only do our handling if not suppressed.
+ if ( ret !== true ) {
+ if ( QUnit.config.current ) {
+ if ( QUnit.config.current.ignoreGlobalErrors ) {
+ return true;
+ }
+ QUnit.pushFailure( error, filePath + ":" + linerNr );
+ } else {
+ QUnit.test( "global failure", extend(function() {
+ QUnit.pushFailure( error, filePath + ":" + linerNr );
+ }, { validTest: true } ) );
+ }
+ return false;
+ }
+
+ return ret;
+ };
+
+ function done() {
+ var runtime, passed;
+
+ config.autorun = true;
+
+ // Log the last module results
+ if ( config.previousModule ) {
+ runLoggingCallbacks( "moduleDone", {
+ name: config.previousModule.name,
+ tests: config.previousModule.tests,
+ failed: config.moduleStats.bad,
+ passed: config.moduleStats.all - config.moduleStats.bad,
+ total: config.moduleStats.all,
+ runtime: now() - config.moduleStats.started
+ });
+ }
+ delete config.previousModule;
+
+ runtime = now() - config.started;
+ passed = config.stats.all - config.stats.bad;
+
+ runLoggingCallbacks( "done", {
+ failed: config.stats.bad,
+ passed: passed,
+ total: config.stats.all,
+ runtime: runtime
+ });
+ }
+
+// Doesn't support IE6 to IE9, it will return undefined on these browsers
+// See also https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Error/Stack
+ function extractStacktrace( e, offset ) {
+ offset = offset === undefined ? 4 : offset;
+
+ var stack, include, i;
+
+ if ( e.stack ) {
+ stack = e.stack.split( "\n" );
+ if ( /^error$/i.test( stack[ 0 ] ) ) {
+ stack.shift();
+ }
+ if ( fileName ) {
+ include = [];
+ for ( i = offset; i < stack.length; i++ ) {
+ if ( stack[ i ].indexOf( fileName ) !== -1 ) {
+ break;
+ }
+ include.push( stack[ i ] );
+ }
+ if ( include.length ) {
+ return include.join( "\n" );
+ }
+ }
+ return stack[ offset ];
+
+ // Support: Safari <=6 only
+ } else if ( e.sourceURL ) {
+
+ // exclude useless self-reference for generated Error objects
+ if ( /qunit.js$/.test( e.sourceURL ) ) {
+ return;
+ }
+
+ // for actual exceptions, this is useful
+ return e.sourceURL + ":" + e.line;
+ }
+ }
+
+ function sourceFromStacktrace( offset ) {
+ var error = new Error();
+
+ // Support: Safari <=7 only, IE <=10 - 11 only
+ // Not all browsers generate the `stack` property for `new Error()`, see also #636
+ if ( !error.stack ) {
+ try {
+ throw error;
+ } catch ( err ) {
+ error = err;
+ }
+ }
+
+ return extractStacktrace( error, offset );
+ }
+
+ function synchronize( callback, last ) {
+ if ( QUnit.objectType( callback ) === "array" ) {
+ while ( callback.length ) {
+ synchronize( callback.shift() );
+ }
+ return;
+ }
+ config.queue.push( callback );
+
+ if ( config.autorun && !config.blocking ) {
+ process( last );
+ }
+ }
+
+ function process( last ) {
+ function next() {
+ process( last );
+ }
+ var start = now();
+ config.depth = ( config.depth || 0 ) + 1;
+
+ while ( config.queue.length && !config.blocking ) {
+ if ( !defined.setTimeout || config.updateRate <= 0 ||
+ ( ( now() - start ) < config.updateRate ) ) {
+ if ( config.current ) {
+
+ // Reset async tracking for each phase of the Test lifecycle
+ config.current.usedAsync = false;
+ }
+ config.queue.shift()();
+ } else {
+ setTimeout( next, 13 );
+ break;
+ }
+ }
+ config.depth--;
+ if ( last && !config.blocking && !config.queue.length && config.depth === 0 ) {
+ done();
+ }
+ }
+
+ function begin() {
+ var i, l,
+ modulesLog = [];
+
+ // If the test run hasn't officially begun yet
+ if ( !config.started ) {
+
+ // Record the time of the test run's beginning
+ config.started = now();
+
+ verifyLoggingCallbacks();
+
+ // Delete the loose unnamed module if unused.
+ if ( config.modules[ 0 ].name === "" && config.modules[ 0 ].tests.length === 0 ) {
+ config.modules.shift();
+ }
+
+ // Avoid unnecessary information by not logging modules' test environments
+ for ( i = 0, l = config.modules.length; i < l; i++ ) {
+ modulesLog.push({
+ name: config.modules[ i ].name,
+ tests: config.modules[ i ].tests
+ });
+ }
+
+ // The test run is officially beginning now
+ runLoggingCallbacks( "begin", {
+ totalTests: Test.count,
+ modules: modulesLog
+ });
+ }
+
+ config.blocking = false;
+ process( true );
+ }
+
+ function resumeProcessing() {
+ runStarted = true;
+
+ // A slight delay to allow this iteration of the event loop to finish (more assertions, etc.)
+ if ( defined.setTimeout ) {
+ setTimeout(function() {
+ if ( config.current && config.current.semaphore > 0 ) {
+ return;
+ }
+ if ( config.timeout ) {
+ clearTimeout( config.timeout );
+ }
+
+ begin();
+ }, 13 );
+ } else {
+ begin();
+ }
+ }
+
+ function pauseProcessing() {
+ config.blocking = true;
+
+ if ( config.testTimeout && defined.setTimeout ) {
+ clearTimeout( config.timeout );
+ config.timeout = setTimeout(function() {
+ if ( config.current ) {
+ config.current.semaphore = 0;
+ QUnit.pushFailure( "Test timed out", sourceFromStacktrace( 2 ) );
+ } else {
+ throw new Error( "Test timed out" );
+ }
+ resumeProcessing();
+ }, config.testTimeout );
+ }
+ }
+
+ function saveGlobal() {
+ config.pollution = [];
+
+ if ( config.noglobals ) {
+ for ( var key in window ) {
+ if ( hasOwn.call( window, key ) ) {
+ // in Opera sometimes DOM element ids show up here, ignore them
+ if ( /^qunit-test-output/.test( key ) ) {
+ continue;
+ }
+ config.pollution.push( key );
+ }
+ }
+ }
+ }
+
+ function checkPollution() {
+ var newGlobals,
+ deletedGlobals,
+ old = config.pollution;
+
+ saveGlobal();
+
+ newGlobals = diff( config.pollution, old );
+ if ( newGlobals.length > 0 ) {
+ QUnit.pushFailure( "Introduced global variable(s): " + newGlobals.join( ", " ) );
+ }
+
+ deletedGlobals = diff( old, config.pollution );
+ if ( deletedGlobals.length > 0 ) {
+ QUnit.pushFailure( "Deleted global variable(s): " + deletedGlobals.join( ", " ) );
+ }
+ }
+
+// returns a new Array with the elements that are in a but not in b
+ function diff( a, b ) {
+ var i, j,
+ result = a.slice();
+
+ for ( i = 0; i < result.length; i++ ) {
+ for ( j = 0; j < b.length; j++ ) {
+ if ( result[ i ] === b[ j ] ) {
+ result.splice( i, 1 );
+ i--;
+ break;
+ }
+ }
+ }
+ return result;
+ }
+
+ function extend( a, b, undefOnly ) {
+ for ( var prop in b ) {
+ if ( hasOwn.call( b, prop ) ) {
+
+ // Avoid "Member not found" error in IE8 caused by messing with window.constructor
+ if ( !( prop === "constructor" && a === window ) ) {
+ if ( b[ prop ] === undefined ) {
+ delete a[ prop ];
+ } else if ( !( undefOnly && typeof a[ prop ] !== "undefined" ) ) {
+ a[ prop ] = b[ prop ];
+ }
+ }
+ }
+ }
+
+ return a;
+ }
+
+ function runLoggingCallbacks( key, args ) {
+ var i, l, callbacks;
+
+ callbacks = config.callbacks[ key ];
+ for ( i = 0, l = callbacks.length; i < l; i++ ) {
+ callbacks[ i ]( args );
+ }
+ }
+
+// DEPRECATED: This will be removed on 2.0.0+
+// This function verifies if the loggingCallbacks were modified by the user
+// If so, it will restore it, assign the given callback and print a console warning
+ function verifyLoggingCallbacks() {
+ var loggingCallback, userCallback;
+
+ for ( loggingCallback in loggingCallbacks ) {
+ if ( QUnit[ loggingCallback ] !== loggingCallbacks[ loggingCallback ] ) {
+
+ userCallback = QUnit[ loggingCallback ];
+
+ // Restore the callback function
+ QUnit[ loggingCallback ] = loggingCallbacks[ loggingCallback ];
+
+ // Assign the deprecated given callback
+ QUnit[ loggingCallback ]( userCallback );
+
+ if ( window.console && window.console.warn ) {
+ window.console.warn(
+ "QUnit." + loggingCallback + " was replaced with a new value.\n" +
+ "Please, check out the documentation on how to apply logging callbacks.\n" +
+ "Reference: http://api.qunitjs.com/category/callbacks/"
+ );
+ }
+ }
+ }
+ }
+
+// from jquery.js
+ function inArray( elem, array ) {
+ if ( array.indexOf ) {
+ return array.indexOf( elem );
+ }
+
+ for ( var i = 0, length = array.length; i < length; i++ ) {
+ if ( array[ i ] === elem ) {
+ return i;
+ }
+ }
+
+ return -1;
+ }
+
+ function Test( settings ) {
+ var i, l;
+
+ ++Test.count;
+
+ extend( this, settings );
+ this.assertions = [];
+ this.semaphore = 0;
+ this.usedAsync = false;
+ this.module = config.currentModule;
+ this.stack = sourceFromStacktrace( 3 );
+
+ // Register unique strings
+ for ( i = 0, l = this.module.tests; i < l.length; i++ ) {
+ if ( this.module.tests[ i ].name === this.testName ) {
+ this.testName += " ";
+ }
+ }
+
+ this.testId = generateHash( this.module.name, this.testName );
+
+ this.module.tests.push({
+ name: this.testName,
+ testId: this.testId
+ });
+
+ if ( settings.skip ) {
+
+ // Skipped tests will fully ignore any sent callback
+ this.callback = function() {};
+ this.async = false;
+ this.expected = 0;
+ } else {
+ this.assert = new Assert( this );
+ }
+ }
+
+ Test.count = 0;
+
+ Test.prototype = {
+ before: function() {
+ if (
+
+ // Emit moduleStart when we're switching from one module to another
+ this.module !== config.previousModule ||
+
+ // They could be equal (both undefined) but if the previousModule property doesn't
+ // yet exist it means this is the first test in a suite that isn't wrapped in a
+ // module, in which case we'll just emit a moduleStart event for 'undefined'.
+ // Without this, reporters can get testStart before moduleStart which is a problem.
+ !hasOwn.call( config, "previousModule" )
+ ) {
+ if ( hasOwn.call( config, "previousModule" ) ) {
+ runLoggingCallbacks( "moduleDone", {
+ name: config.previousModule.name,
+ tests: config.previousModule.tests,
+ failed: config.moduleStats.bad,
+ passed: config.moduleStats.all - config.moduleStats.bad,
+ total: config.moduleStats.all,
+ runtime: now() - config.moduleStats.started
+ });
+ }
+ config.previousModule = this.module;
+ config.moduleStats = { all: 0, bad: 0, started: now() };
+ runLoggingCallbacks( "moduleStart", {
+ name: this.module.name,
+ tests: this.module.tests
+ });
+ }
+
+ config.current = this;
+
+ this.testEnvironment = extend( {}, this.module.testEnvironment );
+ delete this.testEnvironment.beforeEach;
+ delete this.testEnvironment.afterEach;
+
+ this.started = now();
+ runLoggingCallbacks( "testStart", {
+ name: this.testName,
+ module: this.module.name,
+ testId: this.testId
+ });
+
+ if ( !config.pollution ) {
+ saveGlobal();
+ }
+ },
+
+ run: function() {
+ var promise;
+
+ config.current = this;
+
+ if ( this.async ) {
+ QUnit.stop();
+ }
+
+ this.callbackStarted = now();
+
+ if ( config.notrycatch ) {
+ promise = this.callback.call( this.testEnvironment, this.assert );
+ this.resolvePromise( promise );
+ return;
+ }
+
+ try {
+ promise = this.callback.call( this.testEnvironment, this.assert );
+ this.resolvePromise( promise );
+ } catch ( e ) {
+ this.pushFailure( "Died on test #" + ( this.assertions.length + 1 ) + " " +
+ this.stack + ": " + ( e.message || e ), extractStacktrace( e, 0 ) );
+
+ // else next test will carry the responsibility
+ saveGlobal();
+
+ // Restart the tests if they're blocking
+ if ( config.blocking ) {
+ QUnit.start();
+ }
+ }
+ },
+
+ after: function() {
+ checkPollution();
+ },
+
+ queueHook: function( hook, hookName ) {
+ var promise,
+ test = this;
+ return function runHook() {
+ config.current = test;
+ if ( config.notrycatch ) {
+ promise = hook.call( test.testEnvironment, test.assert );
+ test.resolvePromise( promise, hookName );
+ return;
+ }
+ try {
+ promise = hook.call( test.testEnvironment, test.assert );
+ test.resolvePromise( promise, hookName );
+ } catch ( error ) {
+ test.pushFailure( hookName + " failed on " + test.testName + ": " +
+ ( error.message || error ), extractStacktrace( error, 0 ) );
+ }
+ };
+ },
+
+ // Currently only used for module level hooks, can be used to add global level ones
+ hooks: function( handler ) {
+ var hooks = [];
+
+ // Hooks are ignored on skipped tests
+ if ( this.skip ) {
+ return hooks;
+ }
+
+ if ( this.module.testEnvironment &&
+ QUnit.objectType( this.module.testEnvironment[ handler ] ) === "function" ) {
+ hooks.push( this.queueHook( this.module.testEnvironment[ handler ], handler ) );
+ }
+
+ return hooks;
+ },
+
+ finish: function() {
+ config.current = this;
+ if ( config.requireExpects && this.expected === null ) {
+ this.pushFailure( "Expected number of assertions to be defined, but expect() was " +
+ "not called.", this.stack );
+ } else if ( this.expected !== null && this.expected !== this.assertions.length ) {
+ this.pushFailure( "Expected " + this.expected + " assertions, but " +
+ this.assertions.length + " were run", this.stack );
+ } else if ( this.expected === null && !this.assertions.length ) {
+ this.pushFailure( "Expected at least one assertion, but none were run - call " +
+ "expect(0) to accept zero assertions.", this.stack );
+ }
+
+ var i,
+ bad = 0;
+
+ this.runtime = now() - this.started;
+ config.stats.all += this.assertions.length;
+ config.moduleStats.all += this.assertions.length;
+
+ for ( i = 0; i < this.assertions.length; i++ ) {
+ if ( !this.assertions[ i ].result ) {
+ bad++;
+ config.stats.bad++;
+ config.moduleStats.bad++;
+ }
+ }
+
+ runLoggingCallbacks( "testDone", {
+ name: this.testName,
+ module: this.module.name,
+ skipped: !!this.skip,
+ failed: bad,
+ passed: this.assertions.length - bad,
+ total: this.assertions.length,
+ runtime: this.runtime,
+
+ // HTML Reporter use
+ assertions: this.assertions,
+ testId: this.testId,
+
+ // DEPRECATED: this property will be removed in 2.0.0, use runtime instead
+ duration: this.runtime
+ });
+
+ // QUnit.reset() is deprecated and will be replaced for a new
+ // fixture reset function on QUnit 2.0/2.1.
+ // It's still called here for backwards compatibility handling
+ QUnit.reset();
+
+ config.current = undefined;
+ },
+
+ queue: function() {
+ var bad,
+ test = this;
+
+ if ( !this.valid() ) {
+ return;
+ }
+
+ function run() {
+
+ // each of these can by async
+ synchronize([
+ function() {
+ test.before();
+ },
+
+ test.hooks( "beforeEach" ),
+
+ function() {
+ test.run();
+ },
+
+ test.hooks( "afterEach" ).reverse(),
+
+ function() {
+ test.after();
+ },
+ function() {
+ test.finish();
+ }
+ ]);
+ }
+
+ // `bad` initialized at top of scope
+ // defer when previous test run passed, if storage is available
+ bad = QUnit.config.reorder && defined.sessionStorage &&
+ +sessionStorage.getItem( "qunit-test-" + this.module.name + "-" + this.testName );
+
+ if ( bad ) {
+ run();
+ } else {
+ synchronize( run, true );
+ }
+ },
+
+ push: function( result, actual, expected, message ) {
+ var source,
+ details = {
+ module: this.module.name,
+ name: this.testName,
+ result: result,
+ message: message,
+ actual: actual,
+ expected: expected,
+ testId: this.testId,
+ runtime: now() - this.started
+ };
+
+ if ( !result ) {
+ source = sourceFromStacktrace();
+
+ if ( source ) {
+ details.source = source;
+ }
+ }
+
+ runLoggingCallbacks( "log", details );
+
+ this.assertions.push({
+ result: !!result,
+ message: message
+ });
+ },
+
+ pushFailure: function( message, source, actual ) {
+ if ( !this instanceof Test ) {
+ throw new Error( "pushFailure() assertion outside test context, was " +
+ sourceFromStacktrace( 2 ) );
+ }
+
+ var details = {
+ module: this.module.name,
+ name: this.testName,
+ result: false,
+ message: message || "error",
+ actual: actual || null,
+ testId: this.testId,
+ runtime: now() - this.started
+ };
+
+ if ( source ) {
+ details.source = source;
+ }
+
+ runLoggingCallbacks( "log", details );
+
+ this.assertions.push({
+ result: false,
+ message: message
+ });
+ },
+
+ resolvePromise: function( promise, phase ) {
+ var then, message,
+ test = this;
+ if ( promise != null ) {
+ then = promise.then;
+ if ( QUnit.objectType( then ) === "function" ) {
+ QUnit.stop();
+ then.call(
+ promise,
+ QUnit.start,
+ function( error ) {
+ message = "Promise rejected " +
+ ( !phase ? "during" : phase.replace( /Each$/, "" ) ) +
+ " " + test.testName + ": " + ( error.message || error );
+ test.pushFailure( message, extractStacktrace( error, 0 ) );
+
+ // else next test will carry the responsibility
+ saveGlobal();
+
+ // Unblock
+ QUnit.start();
+ }
+ );
+ }
+ }
+ },
+
+ valid: function() {
+ var include,
+ filter = config.filter && config.filter.toLowerCase(),
+ module = QUnit.urlParams.module && QUnit.urlParams.module.toLowerCase(),
+ fullName = ( this.module.name + ": " + this.testName ).toLowerCase();
+
+ // Internally-generated tests are always valid
+ if ( this.callback && this.callback.validTest ) {
+ return true;
+ }
+
+ if ( config.testId.length > 0 && inArray( this.testId, config.testId ) < 0 ) {
+ return false;
+ }
+
+ if ( module && ( !this.module.name || this.module.name.toLowerCase() !== module ) ) {
+ return false;
+ }
+
+ if ( !filter ) {
+ return true;
+ }
+
+ include = filter.charAt( 0 ) !== "!";
+ if ( !include ) {
+ filter = filter.slice( 1 );
+ }
+
+ // If the filter matches, we need to honour include
+ if ( fullName.indexOf( filter ) !== -1 ) {
+ return include;
+ }
+
+ // Otherwise, do the opposite
+ return !include;
+ }
+
+ };
+
+// Resets the test setup. Useful for tests that modify the DOM.
+ /*
+ DEPRECATED: Use multiple tests instead of resetting inside a test.
+ Use testStart or testDone for custom cleanup.
+ This method will throw an error in 2.0, and will be removed in 2.1
+ */
+ QUnit.reset = function() {
+
+ // Return on non-browser environments
+ // This is necessary to not break on node tests
+ if ( typeof window === "undefined" ) {
+ return;
+ }
+
+ var fixture = defined.document && document.getElementById &&
+ document.getElementById( "qunit-fixture" );
+
+ if ( fixture ) {
+ fixture.innerHTML = config.fixture;
+ }
+ };
+
+ QUnit.pushFailure = function() {
+ if ( !QUnit.config.current ) {
+ throw new Error( "pushFailure() assertion outside test context, in " +
+ sourceFromStacktrace( 2 ) );
+ }
+
+ // Gets current test obj
+ var currentTest = QUnit.config.current;
+
+ return currentTest.pushFailure.apply( currentTest, arguments );
+ };
+
+// Based on Java's String.hashCode, a simple but not
+// rigorously collision resistant hashing function
+ function generateHash( module, testName ) {
+ var hex,
+ i = 0,
+ hash = 0,
+ str = module + "\x1C" + testName,
+ len = str.length;
+
+ for ( ; i < len; i++ ) {
+ hash = ( ( hash << 5 ) - hash ) + str.charCodeAt( i );
+ hash |= 0;
+ }
+
+ // Convert the possibly negative integer hash code into an 8 character hex string, which isn't
+ // strictly necessary but increases user understanding that the id is a SHA-like hash
+ hex = ( 0x100000000 + hash ).toString( 16 );
+ if ( hex.length < 8 ) {
+ hex = "0000000" + hex;
+ }
+
+ return hex.slice( -8 );
+ }
+
+ function Assert( testContext ) {
+ this.test = testContext;
+ }
+
+// Assert helpers
+ QUnit.assert = Assert.prototype = {
+
+ // Specify the number of expected assertions to guarantee that failed test
+ // (no assertions are run at all) don't slip through.
+ expect: function( asserts ) {
+ if ( arguments.length === 1 ) {
+ this.test.expected = asserts;
+ } else {
+ return this.test.expected;
+ }
+ },
+
+ // Increment this Test's semaphore counter, then return a single-use function that
+ // decrements that counter a maximum of once.
+ async: function() {
+ var test = this.test,
+ popped = false;
+
+ test.semaphore += 1;
+ test.usedAsync = true;
+ pauseProcessing();
+
+ return function done() {
+ if ( !popped ) {
+ test.semaphore -= 1;
+ popped = true;
+ resumeProcessing();
+ } else {
+ test.pushFailure( "Called the callback returned from `assert.async` more than once",
+ sourceFromStacktrace( 2 ) );
+ }
+ };
+ },
+
+ // Exports test.push() to the user API
+ push: function( /* result, actual, expected, message */ ) {
+ var assert = this,
+ currentTest = ( assert instanceof Assert && assert.test ) || QUnit.config.current;
+
+ // Backwards compatibility fix.
+ // Allows the direct use of global exported assertions and QUnit.assert.*
+ // Although, it's use is not recommended as it can leak assertions
+ // to other tests from async tests, because we only get a reference to the current test,
+ // not exactly the test where assertion were intended to be called.
+ if ( !currentTest ) {
+ throw new Error( "assertion outside test context, in " + sourceFromStacktrace( 2 ) );
+ }
+
+ if ( currentTest.usedAsync === true && currentTest.semaphore === 0 ) {
+ currentTest.pushFailure( "Assertion after the final `assert.async` was resolved",
+ sourceFromStacktrace( 2 ) );
+
+ // Allow this assertion to continue running anyway...
+ }
+
+ if ( !( assert instanceof Assert ) ) {
+ assert = currentTest.assert;
+ }
+ return assert.test.push.apply( assert.test, arguments );
+ },
+
+ ok: function( result, message ) {
+ message = message || ( result ? "okay" : "failed, expected argument to be truthy, was: " +
+ QUnit.dump.parse( result ) );
+ this.push( !!result, result, true, message );
+ },
+
+ notOk: function( result, message ) {
+ message = message || ( !result ? "okay" : "failed, expected argument to be falsy, was: " +
+ QUnit.dump.parse( result ) );
+ this.push( !result, result, false, message );
+ },
+
+ equal: function( actual, expected, message ) {
+ /*jshint eqeqeq:false */
+ this.push( expected == actual, actual, expected, message );
+ },
+
+ notEqual: function( actual, expected, message ) {
+ /*jshint eqeqeq:false */
+ this.push( expected != actual, actual, expected, message );
+ },
+
+ propEqual: function( actual, expected, message ) {
+ actual = objectValues( actual );
+ expected = objectValues( expected );
+ this.push( QUnit.equiv( actual, expected ), actual, expected, message );
+ },
+
+ notPropEqual: function( actual, expected, message ) {
+ actual = objectValues( actual );
+ expected = objectValues( expected );
+ this.push( !QUnit.equiv( actual, expected ), actual, expected, message );
+ },
+
+ deepEqual: function( actual, expected, message ) {
+ this.push( QUnit.equiv( actual, expected ), actual, expected, message );
+ },
+
+ notDeepEqual: function( actual, expected, message ) {
+ this.push( !QUnit.equiv( actual, expected ), actual, expected, message );
+ },
+
+ strictEqual: function( actual, expected, message ) {
+ this.push( expected === actual, actual, expected, message );
+ },
+
+ notStrictEqual: function( actual, expected, message ) {
+ this.push( expected !== actual, actual, expected, message );
+ },
+
+ "throws": function( block, expected, message ) {
+ var actual, expectedType,
+ expectedOutput = expected,
+ ok = false,
+ currentTest = ( this instanceof Assert && this.test ) || QUnit.config.current;
+
+ // 'expected' is optional unless doing string comparison
+ if ( message == null && typeof expected === "string" ) {
+ message = expected;
+ expected = null;
+ }
+
+ currentTest.ignoreGlobalErrors = true;
+ try {
+ block.call( currentTest.testEnvironment );
+ } catch (e) {
+ actual = e;
+ }
+ currentTest.ignoreGlobalErrors = false;
+
+ if ( actual ) {
+ expectedType = QUnit.objectType( expected );
+
+ // we don't want to validate thrown error
+ if ( !expected ) {
+ ok = true;
+ expectedOutput = null;
+
+ // expected is a regexp
+ } else if ( expectedType === "regexp" ) {
+ ok = expected.test( errorString( actual ) );
+
+ // expected is a string
+ } else if ( expectedType === "string" ) {
+ ok = expected === errorString( actual );
+
+ // expected is a constructor, maybe an Error constructor
+ } else if ( expectedType === "function" && actual instanceof expected ) {
+ ok = true;
+
+ // expected is an Error object
+ } else if ( expectedType === "object" ) {
+ ok = actual instanceof expected.constructor &&
+ actual.name === expected.name &&
+ actual.message === expected.message;
+
+ // expected is a validation function which returns true if validation passed
+ } else if ( expectedType === "function" && expected.call( {}, actual ) === true ) {
+ expectedOutput = null;
+ ok = true;
+ }
+ }
+
+ currentTest.assert.push( ok, actual, expectedOutput, message );
+ }
+ };
+
+// Provide an alternative to assert.throws(), for enviroments that consider throws a reserved word
+// Known to us are: Closure Compiler, Narwhal
+ (function() {
+ /*jshint sub:true */
+ Assert.prototype.raises = Assert.prototype[ "throws" ];
+ }());
+
+// Test for equality any JavaScript type.
+// Author: Philippe Rathé <prathe@gmail.com>
+ QUnit.equiv = (function() {
+
+ // Call the o related callback with the given arguments.
+ function bindCallbacks( o, callbacks, args ) {
+ var prop = QUnit.objectType( o );
+ if ( prop ) {
+ if ( QUnit.objectType( callbacks[ prop ] ) === "function" ) {
+ return callbacks[ prop ].apply( callbacks, args );
+ } else {
+ return callbacks[ prop ]; // or undefined
+ }
+ }
+ }
+
+ // the real equiv function
+ var innerEquiv,
+
+ // stack to decide between skip/abort functions
+ callers = [],
+
+ // stack to avoiding loops from circular referencing
+ parents = [],
+ parentsB = [],
+
+ getProto = Object.getPrototypeOf || function( obj ) {
+ /* jshint camelcase: false, proto: true */
+ return obj.__proto__;
+ },
+ callbacks = (function() {
+
+ // for string, boolean, number and null
+ function useStrictEquality( b, a ) {
+
+ /*jshint eqeqeq:false */
+ if ( b instanceof a.constructor || a instanceof b.constructor ) {
+
+ // to catch short annotation VS 'new' annotation of a
+ // declaration
+ // e.g. var i = 1;
+ // var j = new Number(1);
+ return a == b;
+ } else {
+ return a === b;
+ }
+ }
+
+ return {
+ "string": useStrictEquality,
+ "boolean": useStrictEquality,
+ "number": useStrictEquality,
+ "null": useStrictEquality,
+ "undefined": useStrictEquality,
+
+ "nan": function( b ) {
+ return isNaN( b );
+ },
+
+ "date": function( b, a ) {
+ return QUnit.objectType( b ) === "date" && a.valueOf() === b.valueOf();
+ },
+
+ "regexp": function( b, a ) {
+ return QUnit.objectType( b ) === "regexp" &&
+
+ // the regex itself
+ a.source === b.source &&
+
+ // and its modifiers
+ a.global === b.global &&
+
+ // (gmi) ...
+ a.ignoreCase === b.ignoreCase &&
+ a.multiline === b.multiline &&
+ a.sticky === b.sticky;
+ },
+
+ // - skip when the property is a method of an instance (OOP)
+ // - abort otherwise,
+ // initial === would have catch identical references anyway
+ "function": function() {
+ var caller = callers[ callers.length - 1 ];
+ return caller !== Object && typeof caller !== "undefined";
+ },
+
+ "array": function( b, a ) {
+ var i, j, len, loop, aCircular, bCircular;
+
+ // b could be an object literal here
+ if ( QUnit.objectType( b ) !== "array" ) {
+ return false;
+ }
+
+ len = a.length;
+ if ( len !== b.length ) {
+ // safe and faster
+ return false;
+ }
+
+ // track reference to avoid circular references
+ parents.push( a );
+ parentsB.push( b );
+ for ( i = 0; i < len; i++ ) {
+ loop = false;
+ for ( j = 0; j < parents.length; j++ ) {
+ aCircular = parents[ j ] === a[ i ];
+ bCircular = parentsB[ j ] === b[ i ];
+ if ( aCircular || bCircular ) {
+ if ( a[ i ] === b[ i ] || aCircular && bCircular ) {
+ loop = true;
+ } else {
+ parents.pop();
+ parentsB.pop();
+ return false;
+ }
+ }
+ }
+ if ( !loop && !innerEquiv( a[ i ], b[ i ] ) ) {
+ parents.pop();
+ parentsB.pop();
+ return false;
+ }
+ }
+ parents.pop();
+ parentsB.pop();
+ return true;
+ },
+
+ "object": function( b, a ) {
+
+ /*jshint forin:false */
+ var i, j, loop, aCircular, bCircular,
+ // Default to true
+ eq = true,
+ aProperties = [],
+ bProperties = [];
+
+ // comparing constructors is more strict than using
+ // instanceof
+ if ( a.constructor !== b.constructor ) {
+
+ // Allow objects with no prototype to be equivalent to
+ // objects with Object as their constructor.
+ if ( !( ( getProto( a ) === null && getProto( b ) === Object.prototype ) ||
+ ( getProto( b ) === null && getProto( a ) === Object.prototype ) ) ) {
+ return false;
+ }
+ }
+
+ // stack constructor before traversing properties
+ callers.push( a.constructor );
+
+ // track reference to avoid circular references
+ parents.push( a );
+ parentsB.push( b );
+
+ // be strict: don't ensure hasOwnProperty and go deep
+ for ( i in a ) {
+ loop = false;
+ for ( j = 0; j < parents.length; j++ ) {
+ aCircular = parents[ j ] === a[ i ];
+ bCircular = parentsB[ j ] === b[ i ];
+ if ( aCircular || bCircular ) {
+ if ( a[ i ] === b[ i ] || aCircular && bCircular ) {
+ loop = true;
+ } else {
+ eq = false;
+ break;
+ }
+ }
+ }
+ aProperties.push( i );
+ if ( !loop && !innerEquiv( a[ i ], b[ i ] ) ) {
+ eq = false;
+ break;
+ }
+ }
+
+ parents.pop();
+ parentsB.pop();
+ callers.pop(); // unstack, we are done
+
+ for ( i in b ) {
+ bProperties.push( i ); // collect b's properties
+ }
+
+ // Ensures identical properties name
+ return eq && innerEquiv( aProperties.sort(), bProperties.sort() );
+ }
+ };
+ }());
+
+ innerEquiv = function() { // can take multiple arguments
+ var args = [].slice.apply( arguments );
+ if ( args.length < 2 ) {
+ return true; // end transition
+ }
+
+ return ( (function( a, b ) {
+ if ( a === b ) {
+ return true; // catch the most you can
+ } else if ( a === null || b === null || typeof a === "undefined" ||
+ typeof b === "undefined" ||
+ QUnit.objectType( a ) !== QUnit.objectType( b ) ) {
+
+ // don't lose time with error prone cases
+ return false;
+ } else {
+ return bindCallbacks( a, callbacks, [ b, a ] );
+ }
+
+ // apply transition with (1..n) arguments
+ }( args[ 0 ], args[ 1 ] ) ) &&
+ innerEquiv.apply( this, args.splice( 1, args.length - 1 ) ) );
+ };
+
+ return innerEquiv;
+ }());
+
+// Based on jsDump by Ariel Flesler
+// http://flesler.blogspot.com/2008/05/jsdump-pretty-dump-of-any-javascript.html
+ QUnit.dump = (function() {
+ function quote( str ) {
+ return "\"" + str.toString().replace( /"/g, "\\\"" ) + "\"";
+ }
+ function literal( o ) {
+ return o + "";
+ }
+ function join( pre, arr, post ) {
+ var s = dump.separator(),
+ base = dump.indent(),
+ inner = dump.indent( 1 );
+ if ( arr.join ) {
+ arr = arr.join( "," + s + inner );
+ }
+ if ( !arr ) {
+ return pre + post;
+ }
+ return [ pre, inner + arr, base + post ].join( s );
+ }
+ function array( arr, stack ) {
+ var i = arr.length,
+ ret = new Array( i );
+
+ if ( dump.maxDepth && dump.depth > dump.maxDepth ) {
+ return "[object Array]";
+ }
+
+ this.up();
+ while ( i-- ) {
+ ret[ i ] = this.parse( arr[ i ], undefined, stack );
+ }
+ this.down();
+ return join( "[", ret, "]" );
+ }
+
+ var reName = /^function (\w+)/,
+ dump = {
+
+ // objType is used mostly internally, you can fix a (custom) type in advance
+ parse: function( obj, objType, stack ) {
+ stack = stack || [];
+ var res, parser, parserType,
+ inStack = inArray( obj, stack );
+
+ if ( inStack !== -1 ) {
+ return "recursion(" + ( inStack - stack.length ) + ")";
+ }
+
+ objType = objType || this.typeOf( obj );
+ parser = this.parsers[ objType ];
+ parserType = typeof parser;
+
+ if ( parserType === "function" ) {
+ stack.push( obj );
+ res = parser.call( this, obj, stack );
+ stack.pop();
+ return res;
+ }
+ return ( parserType === "string" ) ? parser : this.parsers.error;
+ },
+ typeOf: function( obj ) {
+ var type;
+ if ( obj === null ) {
+ type = "null";
+ } else if ( typeof obj === "undefined" ) {
+ type = "undefined";
+ } else if ( QUnit.is( "regexp", obj ) ) {
+ type = "regexp";
+ } else if ( QUnit.is( "date", obj ) ) {
+ type = "date";
+ } else if ( QUnit.is( "function", obj ) ) {
+ type = "function";
+ } else if ( obj.setInterval !== undefined &&
+ obj.document !== undefined &&
+ obj.nodeType === undefined ) {
+ type = "window";
+ } else if ( obj.nodeType === 9 ) {
+ type = "document";
+ } else if ( obj.nodeType ) {
+ type = "node";
+ } else if (
+
+ // native arrays
+ toString.call( obj ) === "[object Array]" ||
+
+ // NodeList objects
+ ( typeof obj.length === "number" && obj.item !== undefined &&
+ ( obj.length ? obj.item( 0 ) === obj[ 0 ] : ( obj.item( 0 ) === null &&
+ obj[ 0 ] === undefined ) ) )
+ ) {
+ type = "array";
+ } else if ( obj.constructor === Error.prototype.constructor ) {
+ type = "error";
+ } else {
+ type = typeof obj;
+ }
+ return type;
+ },
+ separator: function() {
+ return this.multiline ? this.HTML ? "<br />" : "\n" : this.HTML ? " " : " ";
+ },
+ // extra can be a number, shortcut for increasing-calling-decreasing
+ indent: function( extra ) {
+ if ( !this.multiline ) {
+ return "";
+ }
+ var chr = this.indentChar;
+ if ( this.HTML ) {
+ chr = chr.replace( /\t/g, " " ).replace( / /g, " " );
+ }
+ return new Array( this.depth + ( extra || 0 ) ).join( chr );
+ },
+ up: function( a ) {
+ this.depth += a || 1;
+ },
+ down: function( a ) {
+ this.depth -= a || 1;
+ },
+ setParser: function( name, parser ) {
+ this.parsers[ name ] = parser;
+ },
+ // The next 3 are exposed so you can use them
+ quote: quote,
+ literal: literal,
+ join: join,
+ //
+ depth: 1,
+ maxDepth: QUnit.config.maxDepth,
+
+ // This is the list of parsers, to modify them, use dump.setParser
+ parsers: {
+ window: "[Window]",
+ document: "[Document]",
+ error: function( error ) {
+ return "Error(\"" + error.message + "\")";
+ },
+ unknown: "[Unknown]",
+ "null": "null",
+ "undefined": "undefined",
+ "function": function( fn ) {
+ var ret = "function",
+
+ // functions never have name in IE
+ name = "name" in fn ? fn.name : ( reName.exec( fn ) || [] )[ 1 ];
+
+ if ( name ) {
+ ret += " " + name;
+ }
+ ret += "( ";
+
+ ret = [ ret, dump.parse( fn, "functionArgs" ), "){" ].join( "" );
+ return join( ret, dump.parse( fn, "functionCode" ), "}" );
+ },
+ array: array,
+ nodelist: array,
+ "arguments": array,
+ object: function( map, stack ) {
+ var keys, key, val, i, nonEnumerableProperties,
+ ret = [];
+
+ if ( dump.maxDepth && dump.depth > dump.maxDepth ) {
+ return "[object Object]";
+ }
+
+ dump.up();
+ keys = [];
+ for ( key in map ) {
+ keys.push( key );
+ }
+
+ // Some properties are not always enumerable on Error objects.
+ nonEnumerableProperties = [ "message", "name" ];
+ for ( i in nonEnumerableProperties ) {
+ key = nonEnumerableProperties[ i ];
+ if ( key in map && inArray( key, keys ) < 0 ) {
+ keys.push( key );
+ }
+ }
+ keys.sort();
+ for ( i = 0; i < keys.length; i++ ) {
+ key = keys[ i ];
+ val = map[ key ];
+ ret.push( dump.parse( key, "key" ) + ": " +
+ dump.parse( val, undefined, stack ) );
+ }
+ dump.down();
+ return join( "{", ret, "}" );
+ },
+ node: function( node ) {
+ var len, i, val,
+ open = dump.HTML ? "<" : "<",
+ close = dump.HTML ? ">" : ">",
+ tag = node.nodeName.toLowerCase(),
+ ret = open + tag,
+ attrs = node.attributes;
+
+ if ( attrs ) {
+ for ( i = 0, len = attrs.length; i < len; i++ ) {
+ val = attrs[ i ].nodeValue;
+
+ // IE6 includes all attributes in .attributes, even ones not explicitly
+ // set. Those have values like undefined, null, 0, false, "" or
+ // "inherit".
+ if ( val && val !== "inherit" ) {
+ ret += " " + attrs[ i ].nodeName + "=" +
+ dump.parse( val, "attribute" );
+ }
+ }
+ }
+ ret += close;
+
+ // Show content of TextNode or CDATASection
+ if ( node.nodeType === 3 || node.nodeType === 4 ) {
+ ret += node.nodeValue;
+ }
+
+ return ret + open + "/" + tag + close;
+ },
+
+ // function calls it internally, it's the arguments part of the function
+ functionArgs: function( fn ) {
+ var args,
+ l = fn.length;
+
+ if ( !l ) {
+ return "";
+ }
+
+ args = new Array( l );
+ while ( l-- ) {
+
+ // 97 is 'a'
+ args[ l ] = String.fromCharCode( 97 + l );
+ }
+ return " " + args.join( ", " ) + " ";
+ },
+ // object calls it internally, the key part of an item in a map
+ key: quote,
+ // function calls it internally, it's the content of the function
+ functionCode: "[code]",
+ // node calls it internally, it's an html attribute value
+ attribute: quote,
+ string: quote,
+ date: quote,
+ regexp: literal,
+ number: literal,
+ "boolean": literal
+ },
+ // if true, entities are escaped ( <, >, \t, space and \n )
+ HTML: false,
+ // indentation unit
+ indentChar: " ",
+ // if true, items in a collection, are separated by a \n, else just a space.
+ multiline: true
+ };
+
+ return dump;
+ }());
+
+// back compat
+ QUnit.jsDump = QUnit.dump;
+
+// For browser, export only select globals
+ if ( typeof window !== "undefined" ) {
+
+ // Deprecated
+ // Extend assert methods to QUnit and Global scope through Backwards compatibility
+ (function() {
+ var i,
+ assertions = Assert.prototype;
+
+ function applyCurrent( current ) {
+ return function() {
+ var assert = new Assert( QUnit.config.current );
+ current.apply( assert, arguments );
+ };
+ }
+
+ for ( i in assertions ) {
+ QUnit[ i ] = applyCurrent( assertions[ i ] );
+ }
+ })();
+
+ (function() {
+ var i, l,
+ keys = [
+ "test",
+ "module",
+ "expect",
+ "asyncTest",
+ "start",
+ "stop",
+ "ok",
+ "notOk",
+ "equal",
+ "notEqual",
+ "propEqual",
+ "notPropEqual",
+ "deepEqual",
+ "notDeepEqual",
+ "strictEqual",
+ "notStrictEqual",
+ "throws"
+ ];
+
+ for ( i = 0, l = keys.length; i < l; i++ ) {
+ window[ keys[ i ] ] = QUnit[ keys[ i ] ];
+ }
+ })();
+
+ window.QUnit = QUnit;
+ }
+
+// For nodejs
+ if ( typeof module !== "undefined" && module && module.exports ) {
+ module.exports = QUnit;
+
+ // For consistency with CommonJS environments' exports
+ module.exports.QUnit = QUnit;
+ }
+
+// For CommonJS with exports, but without module.exports, like Rhino
+ if ( typeof exports !== "undefined" && exports ) {
+ exports.QUnit = QUnit;
+ }
+
+ if ( typeof define === "function" && define.amd ) {
+ define( function() {
+ return QUnit;
+ } );
+ QUnit.config.autostart = false;
+ }
+
+// Get a reference to the global object, like window in browsers
+}( (function() {
+ return this;
+})() ));
+
+/*istanbul ignore next */
+// jscs:disable maximumLineLength
+/*
+ * This file is a modified version of google-diff-match-patch's JavaScript implementation
+ * (https://code.google.com/p/google-diff-match-patch/source/browse/trunk/javascript/diff_match_patch_uncompressed.js),
+ * modifications are licensed as more fully set forth in LICENSE.txt.
+ *
+ * The original source of google-diff-match-patch is attributable and licensed as follows:
+ *
+ * Copyright 2006 Google Inc.
+ * http://code.google.com/p/google-diff-match-patch/
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ * More Info:
+ * https://code.google.com/p/google-diff-match-patch/
+ *
+ * Usage: QUnit.diff(expected, actual)
+ *
+ * QUnit.diff( "the quick brown fox jumped over", "the quick fox jumps over" ) === "the quick <del>brown </del> fox jump<ins>s</ins><del>ed</del over"
+ */
+QUnit.diff = (function() {
+
+ function DiffMatchPatch() {
+
+ // Defaults.
+ // Redefine these in your program to override the defaults.
+
+ // Number of seconds to map a diff before giving up (0 for infinity).
+ this.DiffTimeout = 1.0;
+ // Cost of an empty edit operation in terms of edit characters.
+ this.DiffEditCost = 4;
+ }
+
+ // DIFF FUNCTIONS
+
+ /**
+ * The data structure representing a diff is an array of tuples:
+ * [[DIFF_DELETE, 'Hello'], [DIFF_INSERT, 'Goodbye'], [DIFF_EQUAL, ' world.']]
+ * which means: delete 'Hello', add 'Goodbye' and keep ' world.'
+ */
+ var DIFF_DELETE = -1,
+ DIFF_INSERT = 1,
+ DIFF_EQUAL = 0;
+
+ /**
+ * Find the differences between two texts. Simplifies the problem by stripping
+ * any common prefix or suffix off the texts before diffing.
+ * @param {string} text1 Old string to be diffed.
+ * @param {string} text2 New string to be diffed.
+ * @param {boolean=} optChecklines Optional speedup flag. If present and false,
+ * then don't run a line-level diff first to identify the changed areas.
+ * Defaults to true, which does a faster, slightly less optimal diff.
+ * @param {number} optDeadline Optional time when the diff should be complete
+ * by. Used internally for recursive calls. Users should set DiffTimeout
+ * instead.
+ * @return {!Array.<!DiffMatchPatch.Diff>} Array of diff tuples.
+ */
+ DiffMatchPatch.prototype.DiffMain = function( text1, text2, optChecklines, optDeadline ) {
+ var deadline, checklines, commonlength,
+ commonprefix, commonsuffix, diffs;
+ // Set a deadline by which time the diff must be complete.
+ if ( typeof optDeadline === "undefined" ) {
+ if ( this.DiffTimeout <= 0 ) {
+ optDeadline = Number.MAX_VALUE;
+ } else {
+ optDeadline = ( new Date() ).getTime() + this.DiffTimeout * 1000;
+ }
+ }
+ deadline = optDeadline;
+
+ // Check for null inputs.
+ if ( text1 === null || text2 === null ) {
+ throw new Error( "Null input. (DiffMain)" );
+ }
+
+ // Check for equality (speedup).
+ if ( text1 === text2 ) {
+ if ( text1 ) {
+ return [
+ [ DIFF_EQUAL, text1 ]
+ ];
+ }
+ return [];
+ }
+
+ if ( typeof optChecklines === "undefined" ) {
+ optChecklines = true;
+ }
+
+ checklines = optChecklines;
+
+ // Trim off common prefix (speedup).
+ commonlength = this.diffCommonPrefix( text1, text2 );
+ commonprefix = text1.substring( 0, commonlength );
+ text1 = text1.substring( commonlength );
+ text2 = text2.substring( commonlength );
+
+ // Trim off common suffix (speedup).
+ /////////
+ commonlength = this.diffCommonSuffix( text1, text2 );
+ commonsuffix = text1.substring( text1.length - commonlength );
+ text1 = text1.substring( 0, text1.length - commonlength );
+ text2 = text2.substring( 0, text2.length - commonlength );
+
+ // Compute the diff on the middle block.
+ diffs = this.diffCompute( text1, text2, checklines, deadline );
+
+ // Restore the prefix and suffix.
+ if ( commonprefix ) {
+ diffs.unshift( [ DIFF_EQUAL, commonprefix ] );
+ }
+ if ( commonsuffix ) {
+ diffs.push( [ DIFF_EQUAL, commonsuffix ] );
+ }
+ this.diffCleanupMerge( diffs );
+ return diffs;
+ };
+
+ /**
+ * Reduce the number of edits by eliminating operationally trivial equalities.
+ * @param {!Array.<!DiffMatchPatch.Diff>} diffs Array of diff tuples.
+ */
+ DiffMatchPatch.prototype.diffCleanupEfficiency = function( diffs ) {
+ var changes, equalities, equalitiesLength, lastequality,
+ pointer, preIns, preDel, postIns, postDel;
+ changes = false;
+ equalities = []; // Stack of indices where equalities are found.
+ equalitiesLength = 0; // Keeping our own length var is faster in JS.
+ /** @type {?string} */
+ lastequality = null;
+ // Always equal to diffs[equalities[equalitiesLength - 1]][1]
+ pointer = 0; // Index of current position.
+ // Is there an insertion operation before the last equality.
+ preIns = false;
+ // Is there a deletion operation before the last equality.
+ preDel = false;
+ // Is there an insertion operation after the last equality.
+ postIns = false;
+ // Is there a deletion operation after the last equality.
+ postDel = false;
+ while ( pointer < diffs.length ) {
+ if ( diffs[ pointer ][ 0 ] === DIFF_EQUAL ) { // Equality found.
+ if ( diffs[ pointer ][ 1 ].length < this.DiffEditCost && ( postIns || postDel ) ) {
+ // Candidate found.
+ equalities[ equalitiesLength++ ] = pointer;
+ preIns = postIns;
+ preDel = postDel;
+ lastequality = diffs[ pointer ][ 1 ];
+ } else {
+ // Not a candidate, and can never become one.
+ equalitiesLength = 0;
+ lastequality = null;
+ }
+ postIns = postDel = false;
+ } else { // An insertion or deletion.
+ if ( diffs[ pointer ][ 0 ] === DIFF_DELETE ) {
+ postDel = true;
+ } else {
+ postIns = true;
+ }
+ /*
+ * Five types to be split:
+ * <ins>A</ins><del>B</del>XY<ins>C</ins><del>D</del>
+ * <ins>A</ins>X<ins>C</ins><del>D</del>
+ * <ins>A</ins><del>B</del>X<ins>C</ins>
+ * <ins>A</del>X<ins>C</ins><del>D</del>
+ * <ins>A</ins><del>B</del>X<del>C</del>
+ */
+ if ( lastequality && ( ( preIns && preDel && postIns && postDel ) ||
+ ( ( lastequality.length < this.DiffEditCost / 2 ) &&
+ ( preIns + preDel + postIns + postDel ) === 3 ) ) ) {
+ // Duplicate record.
+ diffs.splice( equalities[equalitiesLength - 1], 0, [ DIFF_DELETE, lastequality ] );
+ // Change second copy to insert.
+ diffs[ equalities[ equalitiesLength - 1 ] + 1 ][ 0 ] = DIFF_INSERT;
+ equalitiesLength--; // Throw away the equality we just deleted;
+ lastequality = null;
+ if (preIns && preDel) {
+ // No changes made which could affect previous entry, keep going.
+ postIns = postDel = true;
+ equalitiesLength = 0;
+ } else {
+ equalitiesLength--; // Throw away the previous equality.
+ pointer = equalitiesLength > 0 ? equalities[ equalitiesLength - 1 ] : -1;
+ postIns = postDel = false;
+ }
+ changes = true;
+ }
+ }
+ pointer++;
+ }
+
+ if ( changes ) {
+ this.diffCleanupMerge( diffs );
+ }
+ };
+
+ /**
+ * Convert a diff array into a pretty HTML report.
+ * @param {!Array.<!DiffMatchPatch.Diff>} diffs Array of diff tuples.
+ * @param {integer} string to be beautified.
+ * @return {string} HTML representation.
+ */
+ DiffMatchPatch.prototype.diffPrettyHtml = function( diffs ) {
+ var op, data, x, html = [];
+ for ( x = 0; x < diffs.length; x++ ) {
+ op = diffs[x][0]; // Operation (insert, delete, equal)
+ data = diffs[x][1]; // Text of change.
+ switch ( op ) {
+ case DIFF_INSERT:
+ html[x] = "<ins>" + data + "</ins>";
+ break;
+ case DIFF_DELETE:
+ html[x] = "<del>" + data + "</del>";
+ break;
+ case DIFF_EQUAL:
+ html[x] = "<span>" + data + "</span>";
+ break;
+ }
+ }
+ return html.join("");
+ };
+
+ /**
+ * Determine the common prefix of two strings.
+ * @param {string} text1 First string.
+ * @param {string} text2 Second string.
+ * @return {number} The number of characters common to the start of each
+ * string.
+ */
+ DiffMatchPatch.prototype.diffCommonPrefix = function( text1, text2 ) {
+ var pointermid, pointermax, pointermin, pointerstart;
+ // Quick check for common null cases.
+ if ( !text1 || !text2 || text1.charAt(0) !== text2.charAt(0) ) {
+ return 0;
+ }
+ // Binary search.
+ // Performance analysis: http://neil.fraser.name/news/2007/10/09/
+ pointermin = 0;
+ pointermax = Math.min( text1.length, text2.length );
+ pointermid = pointermax;
+ pointerstart = 0;
+ while ( pointermin < pointermid ) {
+ if ( text1.substring( pointerstart, pointermid ) === text2.substring( pointerstart, pointermid ) ) {
+ pointermin = pointermid;
+ pointerstart = pointermin;
+ } else {
+ pointermax = pointermid;
+ }
+ pointermid = Math.floor( ( pointermax - pointermin ) / 2 + pointermin );
+ }
+ return pointermid;
+ };
+
+ /**
+ * Determine the common suffix of two strings.
+ * @param {string} text1 First string.
+ * @param {string} text2 Second string.
+ * @return {number} The number of characters common to the end of each string.
+ */
+ DiffMatchPatch.prototype.diffCommonSuffix = function( text1, text2 ) {
+ var pointermid, pointermax, pointermin, pointerend;
+ // Quick check for common null cases.
+ if (!text1 || !text2 || text1.charAt(text1.length - 1) !== text2.charAt(text2.length - 1)) {
+ return 0;
+ }
+ // Binary search.
+ // Performance analysis: http://neil.fraser.name/news/2007/10/09/
+ pointermin = 0;
+ pointermax = Math.min(text1.length, text2.length);
+ pointermid = pointermax;
+ pointerend = 0;
+ while ( pointermin < pointermid ) {
+ if (text1.substring( text1.length - pointermid, text1.length - pointerend ) ===
+ text2.substring( text2.length - pointermid, text2.length - pointerend ) ) {
+ pointermin = pointermid;
+ pointerend = pointermin;
+ } else {
+ pointermax = pointermid;
+ }
+ pointermid = Math.floor( ( pointermax - pointermin ) / 2 + pointermin );
+ }
+ return pointermid;
+ };
+
+ /**
+ * Find the differences between two texts. Assumes that the texts do not
+ * have any common prefix or suffix.
+ * @param {string} text1 Old string to be diffed.
+ * @param {string} text2 New string to be diffed.
+ * @param {boolean} checklines Speedup flag. If false, then don't run a
+ * line-level diff first to identify the changed areas.
+ * If true, then run a faster, slightly less optimal diff.
+ * @param {number} deadline Time when the diff should be complete by.
+ * @return {!Array.<!DiffMatchPatch.Diff>} Array of diff tuples.
+ * @private
+ */
+ DiffMatchPatch.prototype.diffCompute = function( text1, text2, checklines, deadline ) {
+ var diffs, longtext, shorttext, i, hm,
+ text1A, text2A, text1B, text2B,
+ midCommon, diffsA, diffsB;
+
+ if ( !text1 ) {
+ // Just add some text (speedup).
+ return [
+ [ DIFF_INSERT, text2 ]
+ ];
+ }
+
+ if (!text2) {
+ // Just delete some text (speedup).
+ return [
+ [ DIFF_DELETE, text1 ]
+ ];
+ }
+
+ longtext = text1.length > text2.length ? text1 : text2;
+ shorttext = text1.length > text2.length ? text2 : text1;
+ i = longtext.indexOf( shorttext );
+ if ( i !== -1 ) {
+ // Shorter text is inside the longer text (speedup).
+ diffs = [
+ [ DIFF_INSERT, longtext.substring( 0, i ) ],
+ [ DIFF_EQUAL, shorttext ],
+ [ DIFF_INSERT, longtext.substring( i + shorttext.length ) ]
+ ];
+ // Swap insertions for deletions if diff is reversed.
+ if ( text1.length > text2.length ) {
+ diffs[0][0] = diffs[2][0] = DIFF_DELETE;
+ }
+ return diffs;
+ }
+
+ if ( shorttext.length === 1 ) {
+ // Single character string.
+ // After the previous speedup, the character can't be an equality.
+ return [
+ [ DIFF_DELETE, text1 ],
+ [ DIFF_INSERT, text2 ]
+ ];
+ }
+
+ // Check to see if the problem can be split in two.
+ hm = this.diffHalfMatch(text1, text2);
+ if (hm) {
+ // A half-match was found, sort out the return data.
+ text1A = hm[0];
+ text1B = hm[1];
+ text2A = hm[2];
+ text2B = hm[3];
+ midCommon = hm[4];
+ // Send both pairs off for separate processing.
+ diffsA = this.DiffMain(text1A, text2A, checklines, deadline);
+ diffsB = this.DiffMain(text1B, text2B, checklines, deadline);
+ // Merge the results.
+ return diffsA.concat([
+ [ DIFF_EQUAL, midCommon ]
+ ], diffsB);
+ }
+
+ if (checklines && text1.length > 100 && text2.length > 100) {
+ return this.diffLineMode(text1, text2, deadline);
+ }
+
+ return this.diffBisect(text1, text2, deadline);
+ };
+
+ /**
+ * Do the two texts share a substring which is at least half the length of the
+ * longer text?
+ * This speedup can produce non-minimal diffs.
+ * @param {string} text1 First string.
+ * @param {string} text2 Second string.
+ * @return {Array.<string>} Five element Array, containing the prefix of
+ * text1, the suffix of text1, the prefix of text2, the suffix of
+ * text2 and the common middle. Or null if there was no match.
+ * @private
+ */
+ DiffMatchPatch.prototype.diffHalfMatch = function(text1, text2) {
+ var longtext, shorttext, dmp,
+ text1A, text2B, text2A, text1B, midCommon,
+ hm1, hm2, hm;
+ if (this.DiffTimeout <= 0) {
+ // Don't risk returning a non-optimal diff if we have unlimited time.
+ return null;
+ }
+ longtext = text1.length > text2.length ? text1 : text2;
+ shorttext = text1.length > text2.length ? text2 : text1;
+ if (longtext.length < 4 || shorttext.length * 2 < longtext.length) {
+ return null; // Pointless.
+ }
+ dmp = this; // 'this' becomes 'window' in a closure.
+
+ /**
+ * Does a substring of shorttext exist within longtext such that the substring
+ * is at least half the length of longtext?
+ * Closure, but does not reference any external variables.
+ * @param {string} longtext Longer string.
+ * @param {string} shorttext Shorter string.
+ * @param {number} i Start index of quarter length substring within longtext.
+ * @return {Array.<string>} Five element Array, containing the prefix of
+ * longtext, the suffix of longtext, the prefix of shorttext, the suffix
+ * of shorttext and the common middle. Or null if there was no match.
+ * @private
+ */
+ function diffHalfMatchI(longtext, shorttext, i) {
+ var seed, j, bestCommon, prefixLength, suffixLength,
+ bestLongtextA, bestLongtextB, bestShorttextA, bestShorttextB;
+ // Start with a 1/4 length substring at position i as a seed.
+ seed = longtext.substring(i, i + Math.floor(longtext.length / 4));
+ j = -1;
+ bestCommon = "";
+ while ((j = shorttext.indexOf(seed, j + 1)) !== -1) {
+ prefixLength = dmp.diffCommonPrefix(longtext.substring(i),
+ shorttext.substring(j));
+ suffixLength = dmp.diffCommonSuffix(longtext.substring(0, i),
+ shorttext.substring(0, j));
+ if (bestCommon.length < suffixLength + prefixLength) {
+ bestCommon = shorttext.substring(j - suffixLength, j) +
+ shorttext.substring(j, j + prefixLength);
+ bestLongtextA = longtext.substring(0, i - suffixLength);
+ bestLongtextB = longtext.substring(i + prefixLength);
+ bestShorttextA = shorttext.substring(0, j - suffixLength);
+ bestShorttextB = shorttext.substring(j + prefixLength);
+ }
+ }
+ if (bestCommon.length * 2 >= longtext.length) {
+ return [ bestLongtextA, bestLongtextB,
+ bestShorttextA, bestShorttextB, bestCommon
+ ];
+ } else {
+ return null;
+ }
+ }
+
+ // First check if the second quarter is the seed for a half-match.
+ hm1 = diffHalfMatchI(longtext, shorttext,
+ Math.ceil(longtext.length / 4));
+ // Check again based on the third quarter.
+ hm2 = diffHalfMatchI(longtext, shorttext,
+ Math.ceil(longtext.length / 2));
+ if (!hm1 && !hm2) {
+ return null;
+ } else if (!hm2) {
+ hm = hm1;
+ } else if (!hm1) {
+ hm = hm2;
+ } else {
+ // Both matched. Select the longest.
+ hm = hm1[4].length > hm2[4].length ? hm1 : hm2;
+ }
+
+ // A half-match was found, sort out the return data.
+ text1A, text1B, text2A, text2B;
+ if (text1.length > text2.length) {
+ text1A = hm[0];
+ text1B = hm[1];
+ text2A = hm[2];
+ text2B = hm[3];
+ } else {
+ text2A = hm[0];
+ text2B = hm[1];
+ text1A = hm[2];
+ text1B = hm[3];
+ }
+ midCommon = hm[4];
+ return [ text1A, text1B, text2A, text2B, midCommon ];
+ };
+
+ /**
+ * Do a quick line-level diff on both strings, then rediff the parts for
+ * greater accuracy.
+ * This speedup can produce non-minimal diffs.
+ * @param {string} text1 Old string to be diffed.
+ * @param {string} text2 New string to be diffed.
+ * @param {number} deadline Time when the diff should be complete by.
+ * @return {!Array.<!DiffMatchPatch.Diff>} Array of diff tuples.
+ * @private
+ */
+ DiffMatchPatch.prototype.diffLineMode = function(text1, text2, deadline) {
+ var a, diffs, linearray, pointer, countInsert,
+ countDelete, textInsert, textDelete, j;
+ // Scan the text on a line-by-line basis first.
+ a = this.diffLinesToChars(text1, text2);
+ text1 = a.chars1;
+ text2 = a.chars2;
+ linearray = a.lineArray;
+
+ diffs = this.DiffMain(text1, text2, false, deadline);
+
+ // Convert the diff back to original text.
+ this.diffCharsToLines(diffs, linearray);
+ // Eliminate freak matches (e.g. blank lines)
+ this.diffCleanupSemantic(diffs);
+
+ // Rediff any replacement blocks, this time character-by-character.
+ // Add a dummy entry at the end.
+ diffs.push( [ DIFF_EQUAL, "" ] );
+ pointer = 0;
+ countDelete = 0;
+ countInsert = 0;
+ textDelete = "";
+ textInsert = "";
+ while (pointer < diffs.length) {
+ switch ( diffs[pointer][0] ) {
+ case DIFF_INSERT:
+ countInsert++;
+ textInsert += diffs[pointer][1];
+ break;
+ case DIFF_DELETE:
+ countDelete++;
+ textDelete += diffs[pointer][1];
+ break;
+ case DIFF_EQUAL:
+ // Upon reaching an equality, check for prior redundancies.
+ if (countDelete >= 1 && countInsert >= 1) {
+ // Delete the offending records and add the merged ones.
+ diffs.splice(pointer - countDelete - countInsert,
+ countDelete + countInsert);
+ pointer = pointer - countDelete - countInsert;
+ a = this.DiffMain(textDelete, textInsert, false, deadline);
+ for (j = a.length - 1; j >= 0; j--) {
+ diffs.splice( pointer, 0, a[j] );
+ }
+ pointer = pointer + a.length;
+ }
+ countInsert = 0;
+ countDelete = 0;
+ textDelete = "";
+ textInsert = "";
+ break;
+ }
+ pointer++;
+ }
+ diffs.pop(); // Remove the dummy entry at the end.
+
+ return diffs;
+ };
+
+ /**
+ * Find the 'middle snake' of a diff, split the problem in two
+ * and return the recursively constructed diff.
+ * See Myers 1986 paper: An O(ND) Difference Algorithm and Its Variations.
+ * @param {string} text1 Old string to be diffed.
+ * @param {string} text2 New string to be diffed.
+ * @param {number} deadline Time at which to bail if not yet complete.
+ * @return {!Array.<!DiffMatchPatch.Diff>} Array of diff tuples.
+ * @private
+ */
+ DiffMatchPatch.prototype.diffBisect = function(text1, text2, deadline) {
+ var text1Length, text2Length, maxD, vOffset, vLength,
+ v1, v2, x, delta, front, k1start, k1end, k2start,
+ k2end, k2Offset, k1Offset, x1, x2, y1, y2, d, k1, k2;
+ // Cache the text lengths to prevent multiple calls.
+ text1Length = text1.length;
+ text2Length = text2.length;
+ maxD = Math.ceil((text1Length + text2Length) / 2);
+ vOffset = maxD;
+ vLength = 2 * maxD;
+ v1 = new Array(vLength);
+ v2 = new Array(vLength);
+ // Setting all elements to -1 is faster in Chrome & Firefox than mixing
+ // integers and undefined.
+ for (x = 0; x < vLength; x++) {
+ v1[x] = -1;
+ v2[x] = -1;
+ }
+ v1[vOffset + 1] = 0;
+ v2[vOffset + 1] = 0;
+ delta = text1Length - text2Length;
+ // If the total number of characters is odd, then the front path will collide
+ // with the reverse path.
+ front = (delta % 2 !== 0);
+ // Offsets for start and end of k loop.
+ // Prevents mapping of space beyond the grid.
+ k1start = 0;
+ k1end = 0;
+ k2start = 0;
+ k2end = 0;
+ for (d = 0; d < maxD; d++) {
+ // Bail out if deadline is reached.
+ if ((new Date()).getTime() > deadline) {
+ break;
+ }
+
+ // Walk the front path one step.
+ for (k1 = -d + k1start; k1 <= d - k1end; k1 += 2) {
+ k1Offset = vOffset + k1;
+ if ( k1 === -d || ( k1 !== d && v1[ k1Offset - 1 ] < v1[ k1Offset + 1 ] ) ) {
+ x1 = v1[k1Offset + 1];
+ } else {
+ x1 = v1[k1Offset - 1] + 1;
+ }
+ y1 = x1 - k1;
+ while (x1 < text1Length && y1 < text2Length &&
+ text1.charAt(x1) === text2.charAt(y1)) {
+ x1++;
+ y1++;
+ }
+ v1[k1Offset] = x1;
+ if (x1 > text1Length) {
+ // Ran off the right of the graph.
+ k1end += 2;
+ } else if (y1 > text2Length) {
+ // Ran off the bottom of the graph.
+ k1start += 2;
+ } else if (front) {
+ k2Offset = vOffset + delta - k1;
+ if (k2Offset >= 0 && k2Offset < vLength && v2[k2Offset] !== -1) {
+ // Mirror x2 onto top-left coordinate system.
+ x2 = text1Length - v2[k2Offset];
+ if (x1 >= x2) {
+ // Overlap detected.
+ return this.diffBisectSplit(text1, text2, x1, y1, deadline);
+ }
+ }
+ }
+ }
+
+ // Walk the reverse path one step.
+ for (k2 = -d + k2start; k2 <= d - k2end; k2 += 2) {
+ k2Offset = vOffset + k2;
+ if ( k2 === -d || (k2 !== d && v2[ k2Offset - 1 ] < v2[ k2Offset + 1 ] ) ) {
+ x2 = v2[k2Offset + 1];
+ } else {
+ x2 = v2[k2Offset - 1] + 1;
+ }
+ y2 = x2 - k2;
+ while (x2 < text1Length && y2 < text2Length &&
+ text1.charAt(text1Length - x2 - 1) ===
+ text2.charAt(text2Length - y2 - 1)) {
+ x2++;
+ y2++;
+ }
+ v2[k2Offset] = x2;
+ if (x2 > text1Length) {
+ // Ran off the left of the graph.
+ k2end += 2;
+ } else if (y2 > text2Length) {
+ // Ran off the top of the graph.
+ k2start += 2;
+ } else if (!front) {
+ k1Offset = vOffset + delta - k2;
+ if (k1Offset >= 0 && k1Offset < vLength && v1[k1Offset] !== -1) {
+ x1 = v1[k1Offset];
+ y1 = vOffset + x1 - k1Offset;
+ // Mirror x2 onto top-left coordinate system.
+ x2 = text1Length - x2;
+ if (x1 >= x2) {
+ // Overlap detected.
+ return this.diffBisectSplit(text1, text2, x1, y1, deadline);
+ }
+ }
+ }
+ }
+ }
+ // Diff took too long and hit the deadline or
+ // number of diffs equals number of characters, no commonality at all.
+ return [
+ [ DIFF_DELETE, text1 ],
+ [ DIFF_INSERT, text2 ]
+ ];
+ };
+
+ /**
+ * Given the location of the 'middle snake', split the diff in two parts
+ * and recurse.
+ * @param {string} text1 Old string to be diffed.
+ * @param {string} text2 New string to be diffed.
+ * @param {number} x Index of split point in text1.
+ * @param {number} y Index of split point in text2.
+ * @param {number} deadline Time at which to bail if not yet complete.
+ * @return {!Array.<!DiffMatchPatch.Diff>} Array of diff tuples.
+ * @private
+ */
+ DiffMatchPatch.prototype.diffBisectSplit = function( text1, text2, x, y, deadline ) {
+ var text1a, text1b, text2a, text2b, diffs, diffsb;
+ text1a = text1.substring(0, x);
+ text2a = text2.substring(0, y);
+ text1b = text1.substring(x);
+ text2b = text2.substring(y);
+
+ // Compute both diffs serially.
+ diffs = this.DiffMain(text1a, text2a, false, deadline);
+ diffsb = this.DiffMain(text1b, text2b, false, deadline);
+
+ return diffs.concat(diffsb);
+ };
+
+ /**
+ * Reduce the number of edits by eliminating semantically trivial equalities.
+ * @param {!Array.<!DiffMatchPatch.Diff>} diffs Array of diff tuples.
+ */
+ DiffMatchPatch.prototype.diffCleanupSemantic = function(diffs) {
+ var changes, equalities, equalitiesLength, lastequality,
+ pointer, lengthInsertions2, lengthDeletions2, lengthInsertions1,
+ lengthDeletions1, deletion, insertion, overlapLength1, overlapLength2;
+ changes = false;
+ equalities = []; // Stack of indices where equalities are found.
+ equalitiesLength = 0; // Keeping our own length var is faster in JS.
+ /** @type {?string} */
+ lastequality = null;
+ // Always equal to diffs[equalities[equalitiesLength - 1]][1]
+ pointer = 0; // Index of current position.
+ // Number of characters that changed prior to the equality.
+ lengthInsertions1 = 0;
+ lengthDeletions1 = 0;
+ // Number of characters that changed after the equality.
+ lengthInsertions2 = 0;
+ lengthDeletions2 = 0;
+ while (pointer < diffs.length) {
+ if (diffs[pointer][0] === DIFF_EQUAL) { // Equality found.
+ equalities[equalitiesLength++] = pointer;
+ lengthInsertions1 = lengthInsertions2;
+ lengthDeletions1 = lengthDeletions2;
+ lengthInsertions2 = 0;
+ lengthDeletions2 = 0;
+ lastequality = diffs[pointer][1];
+ } else { // An insertion or deletion.
+ if (diffs[pointer][0] === DIFF_INSERT) {
+ lengthInsertions2 += diffs[pointer][1].length;
+ } else {
+ lengthDeletions2 += diffs[pointer][1].length;
+ }
+ // Eliminate an equality that is smaller or equal to the edits on both
+ // sides of it.
+ if (lastequality && (lastequality.length <=
+ Math.max(lengthInsertions1, lengthDeletions1)) &&
+ (lastequality.length <= Math.max(lengthInsertions2,
+ lengthDeletions2))) {
+ // Duplicate record.
+ diffs.splice( equalities[ equalitiesLength - 1 ], 0, [ DIFF_DELETE, lastequality ] );
+ // Change second copy to insert.
+ diffs[equalities[equalitiesLength - 1] + 1][0] = DIFF_INSERT;
+ // Throw away the equality we just deleted.
+ equalitiesLength--;
+ // Throw away the previous equality (it needs to be reevaluated).
+ equalitiesLength--;
+ pointer = equalitiesLength > 0 ? equalities[equalitiesLength - 1] : -1;
+ lengthInsertions1 = 0; // Reset the counters.
+ lengthDeletions1 = 0;
+ lengthInsertions2 = 0;
+ lengthDeletions2 = 0;
+ lastequality = null;
+ changes = true;
+ }
+ }
+ pointer++;
+ }
+
+ // Normalize the diff.
+ if (changes) {
+ this.diffCleanupMerge(diffs);
+ }
+
+ // Find any overlaps between deletions and insertions.
+ // e.g: <del>abcxxx</del><ins>xxxdef</ins>
+ // -> <del>abc</del>xxx<ins>def</ins>
+ // e.g: <del>xxxabc</del><ins>defxxx</ins>
+ // -> <ins>def</ins>xxx<del>abc</del>
+ // Only extract an overlap if it is as big as the edit ahead or behind it.
+ pointer = 1;
+ while (pointer < diffs.length) {
+ if (diffs[pointer - 1][0] === DIFF_DELETE &&
+ diffs[pointer][0] === DIFF_INSERT) {
+ deletion = diffs[pointer - 1][1];
+ insertion = diffs[pointer][1];
+ overlapLength1 = this.diffCommonOverlap(deletion, insertion);
+ overlapLength2 = this.diffCommonOverlap(insertion, deletion);
+ if (overlapLength1 >= overlapLength2) {
+ if (overlapLength1 >= deletion.length / 2 ||
+ overlapLength1 >= insertion.length / 2) {
+ // Overlap found. Insert an equality and trim the surrounding edits.
+ diffs.splice( pointer, 0, [ DIFF_EQUAL, insertion.substring( 0, overlapLength1 ) ] );
+ diffs[pointer - 1][1] =
+ deletion.substring(0, deletion.length - overlapLength1);
+ diffs[pointer + 1][1] = insertion.substring(overlapLength1);
+ pointer++;
+ }
+ } else {
+ if (overlapLength2 >= deletion.length / 2 ||
+ overlapLength2 >= insertion.length / 2) {
+ // Reverse overlap found.
+ // Insert an equality and swap and trim the surrounding edits.
+ diffs.splice( pointer, 0, [ DIFF_EQUAL, deletion.substring( 0, overlapLength2 ) ] );
+ diffs[pointer - 1][0] = DIFF_INSERT;
+ diffs[pointer - 1][1] =
+ insertion.substring(0, insertion.length - overlapLength2);
+ diffs[pointer + 1][0] = DIFF_DELETE;
+ diffs[pointer + 1][1] =
+ deletion.substring(overlapLength2);
+ pointer++;
+ }
+ }
+ pointer++;
+ }
+ pointer++;
+ }
+ };
+
+ /**
+ * Determine if the suffix of one string is the prefix of another.
+ * @param {string} text1 First string.
+ * @param {string} text2 Second string.
+ * @return {number} The number of characters common to the end of the first
+ * string and the start of the second string.
+ * @private
+ */
+ DiffMatchPatch.prototype.diffCommonOverlap = function(text1, text2) {
+ var text1Length, text2Length, textLength,
+ best, length, pattern, found;
+ // Cache the text lengths to prevent multiple calls.
+ text1Length = text1.length;
+ text2Length = text2.length;
+ // Eliminate the null case.
+ if (text1Length === 0 || text2Length === 0) {
+ return 0;
+ }
+ // Truncate the longer string.
+ if (text1Length > text2Length) {
+ text1 = text1.substring(text1Length - text2Length);
+ } else if (text1Length < text2Length) {
+ text2 = text2.substring(0, text1Length);
+ }
+ textLength = Math.min(text1Length, text2Length);
+ // Quick check for the worst case.
+ if (text1 === text2) {
+ return textLength;
+ }
+
+ // Start by looking for a single character match
+ // and increase length until no match is found.
+ // Performance analysis: http://neil.fraser.name/news/2010/11/04/
+ best = 0;
+ length = 1;
+ while (true) {
+ pattern = text1.substring(textLength - length);
+ found = text2.indexOf(pattern);
+ if (found === -1) {
+ return best;
+ }
+ length += found;
+ if (found === 0 || text1.substring(textLength - length) ===
+ text2.substring(0, length)) {
+ best = length;
+ length++;
+ }
+ }
+ };
+
+ /**
+ * Split two texts into an array of strings. Reduce the texts to a string of
+ * hashes where each Unicode character represents one line.
+ * @param {string} text1 First string.
+ * @param {string} text2 Second string.
+ * @return {{chars1: string, chars2: string, lineArray: !Array.<string>}}
+ * An object containing the encoded text1, the encoded text2 and
+ * the array of unique strings.
+ * The zeroth element of the array of unique strings is intentionally blank.
+ * @private
+ */
+ DiffMatchPatch.prototype.diffLinesToChars = function(text1, text2) {
+ var lineArray, lineHash, chars1, chars2;
+ lineArray = []; // e.g. lineArray[4] === 'Hello\n'
+ lineHash = {}; // e.g. lineHash['Hello\n'] === 4
+
+ // '\x00' is a valid character, but various debuggers don't like it.
+ // So we'll insert a junk entry to avoid generating a null character.
+ lineArray[0] = "";
+
+ /**
+ * Split a text into an array of strings. Reduce the texts to a string of
+ * hashes where each Unicode character represents one line.
+ * Modifies linearray and linehash through being a closure.
+ * @param {string} text String to encode.
+ * @return {string} Encoded string.
+ * @private
+ */
+ function diffLinesToCharsMunge(text) {
+ var chars, lineStart, lineEnd, lineArrayLength, line;
+ chars = "";
+ // Walk the text, pulling out a substring for each line.
+ // text.split('\n') would would temporarily double our memory footprint.
+ // Modifying text would create many large strings to garbage collect.
+ lineStart = 0;
+ lineEnd = -1;
+ // Keeping our own length variable is faster than looking it up.
+ lineArrayLength = lineArray.length;
+ while (lineEnd < text.length - 1) {
+ lineEnd = text.indexOf("\n", lineStart);
+ if (lineEnd === -1) {
+ lineEnd = text.length - 1;
+ }
+ line = text.substring(lineStart, lineEnd + 1);
+ lineStart = lineEnd + 1;
+
+ if (lineHash.hasOwnProperty ? lineHash.hasOwnProperty(line) :
+ (lineHash[line] !== undefined)) {
+ chars += String.fromCharCode( lineHash[ line ] );
+ } else {
+ chars += String.fromCharCode(lineArrayLength);
+ lineHash[line] = lineArrayLength;
+ lineArray[lineArrayLength++] = line;
+ }
+ }
+ return chars;
+ }
+
+ chars1 = diffLinesToCharsMunge(text1);
+ chars2 = diffLinesToCharsMunge(text2);
+ return {
+ chars1: chars1,
+ chars2: chars2,
+ lineArray: lineArray
+ };
+ };
+
+ /**
+ * Rehydrate the text in a diff from a string of line hashes to real lines of
+ * text.
+ * @param {!Array.<!DiffMatchPatch.Diff>} diffs Array of diff tuples.
+ * @param {!Array.<string>} lineArray Array of unique strings.
+ * @private
+ */
+ DiffMatchPatch.prototype.diffCharsToLines = function( diffs, lineArray ) {
+ var x, chars, text, y;
+ for ( x = 0; x < diffs.length; x++ ) {
+ chars = diffs[x][1];
+ text = [];
+ for ( y = 0; y < chars.length; y++ ) {
+ text[y] = lineArray[chars.charCodeAt(y)];
+ }
+ diffs[x][1] = text.join("");
+ }
+ };
+
+ /**
+ * Reorder and merge like edit sections. Merge equalities.
+ * Any edit section can move as long as it doesn't cross an equality.
+ * @param {!Array.<!DiffMatchPatch.Diff>} diffs Array of diff tuples.
+ */
+ DiffMatchPatch.prototype.diffCleanupMerge = function(diffs) {
+ var pointer, countDelete, countInsert, textInsert, textDelete,
+ commonlength, changes;
+ diffs.push( [ DIFF_EQUAL, "" ] ); // Add a dummy entry at the end.
+ pointer = 0;
+ countDelete = 0;
+ countInsert = 0;
+ textDelete = "";
+ textInsert = "";
+ commonlength;
+ while (pointer < diffs.length) {
+ switch ( diffs[ pointer ][ 0 ] ) {
+ case DIFF_INSERT:
+ countInsert++;
+ textInsert += diffs[pointer][1];
+ pointer++;
+ break;
+ case DIFF_DELETE:
+ countDelete++;
+ textDelete += diffs[pointer][1];
+ pointer++;
+ break;
+ case DIFF_EQUAL:
+ // Upon reaching an equality, check for prior redundancies.
+ if (countDelete + countInsert > 1) {
+ if (countDelete !== 0 && countInsert !== 0) {
+ // Factor out any common prefixies.
+ commonlength = this.diffCommonPrefix(textInsert, textDelete);
+ if (commonlength !== 0) {
+ if ((pointer - countDelete - countInsert) > 0 &&
+ diffs[pointer - countDelete - countInsert - 1][0] ===
+ DIFF_EQUAL) {
+ diffs[pointer - countDelete - countInsert - 1][1] +=
+ textInsert.substring(0, commonlength);
+ } else {
+ diffs.splice( 0, 0, [ DIFF_EQUAL,
+ textInsert.substring( 0, commonlength )
+ ] );
+ pointer++;
+ }
+ textInsert = textInsert.substring(commonlength);
+ textDelete = textDelete.substring(commonlength);
+ }
+ // Factor out any common suffixies.
+ commonlength = this.diffCommonSuffix(textInsert, textDelete);
+ if (commonlength !== 0) {
+ diffs[pointer][1] = textInsert.substring(textInsert.length -
+ commonlength) + diffs[pointer][1];
+ textInsert = textInsert.substring(0, textInsert.length -
+ commonlength);
+ textDelete = textDelete.substring(0, textDelete.length -
+ commonlength);
+ }
+ }
+ // Delete the offending records and add the merged ones.
+ if (countDelete === 0) {
+ diffs.splice( pointer - countInsert,
+ countDelete + countInsert, [ DIFF_INSERT, textInsert ] );
+ } else if (countInsert === 0) {
+ diffs.splice( pointer - countDelete,
+ countDelete + countInsert, [ DIFF_DELETE, textDelete ] );
+ } else {
+ diffs.splice( pointer - countDelete - countInsert,
+ countDelete + countInsert, [ DIFF_DELETE, textDelete ], [ DIFF_INSERT, textInsert ] );
+ }
+ pointer = pointer - countDelete - countInsert +
+ (countDelete ? 1 : 0) + (countInsert ? 1 : 0) + 1;
+ } else if (pointer !== 0 && diffs[pointer - 1][0] === DIFF_EQUAL) {
+ // Merge this equality with the previous one.
+ diffs[pointer - 1][1] += diffs[pointer][1];
+ diffs.splice(pointer, 1);
+ } else {
+ pointer++;
+ }
+ countInsert = 0;
+ countDelete = 0;
+ textDelete = "";
+ textInsert = "";
+ break;
+ }
+ }
+ if (diffs[diffs.length - 1][1] === "") {
+ diffs.pop(); // Remove the dummy entry at the end.
+ }
+
+ // Second pass: look for single edits surrounded on both sides by equalities
+ // which can be shifted sideways to eliminate an equality.
+ // e.g: A<ins>BA</ins>C -> <ins>AB</ins>AC
+ changes = false;
+ pointer = 1;
+ // Intentionally ignore the first and last element (don't need checking).
+ while (pointer < diffs.length - 1) {
+ if (diffs[pointer - 1][0] === DIFF_EQUAL &&
+ diffs[pointer + 1][0] === DIFF_EQUAL) {
+ // This is a single edit surrounded by equalities.
+ if ( diffs[ pointer ][ 1 ].substring( diffs[ pointer ][ 1 ].length -
+ diffs[ pointer - 1 ][ 1 ].length ) === diffs[ pointer - 1 ][ 1 ] ) {
+ // Shift the edit over the previous equality.
+ diffs[pointer][1] = diffs[pointer - 1][1] +
+ diffs[pointer][1].substring(0, diffs[pointer][1].length -
+ diffs[pointer - 1][1].length);
+ diffs[pointer + 1][1] = diffs[pointer - 1][1] + diffs[pointer + 1][1];
+ diffs.splice(pointer - 1, 1);
+ changes = true;
+ } else if ( diffs[ pointer ][ 1 ].substring( 0, diffs[ pointer + 1 ][ 1 ].length ) ===
+ diffs[ pointer + 1 ][ 1 ] ) {
+ // Shift the edit over the next equality.
+ diffs[pointer - 1][1] += diffs[pointer + 1][1];
+ diffs[pointer][1] =
+ diffs[pointer][1].substring(diffs[pointer + 1][1].length) +
+ diffs[pointer + 1][1];
+ diffs.splice(pointer + 1, 1);
+ changes = true;
+ }
+ }
+ pointer++;
+ }
+ // If shifts were made, the diff needs reordering and another shift sweep.
+ if (changes) {
+ this.diffCleanupMerge(diffs);
+ }
+ };
+
+ return function(o, n) {
+ var diff, output, text;
+ diff = new DiffMatchPatch();
+ output = diff.DiffMain(o, n);
+ //console.log(output);
+ diff.diffCleanupEfficiency(output);
+ text = diff.diffPrettyHtml(output);
+
+ return text;
+ };
+}());
+// jscs:enable
+
+(function() {
+
+// Deprecated QUnit.init - Ref #530
+// Re-initialize the configuration options
+ QUnit.init = function() {
+ var tests, banner, result, qunit,
+ config = QUnit.config;
+
+ config.stats = { all: 0, bad: 0 };
+ config.moduleStats = { all: 0, bad: 0 };
+ config.started = 0;
+ config.updateRate = 1000;
+ config.blocking = false;
+ config.autostart = true;
+ config.autorun = false;
+ config.filter = "";
+ config.queue = [];
+
+ // Return on non-browser environments
+ // This is necessary to not break on node tests
+ if ( typeof window === "undefined" ) {
+ return;
+ }
+
+ qunit = id( "qunit" );
+ if ( qunit ) {
+ qunit.innerHTML =
+ "<h1 id='qunit-header'>" + escapeText( document.title ) + "</h1>" +
+ "<h2 id='qunit-banner'></h2>" +
+ "<div id='qunit-testrunner-toolbar'></div>" +
+ "<h2 id='qunit-userAgent'></h2>" +
+ "<ol id='qunit-tests'></ol>";
+ }
+
+ tests = id( "qunit-tests" );
+ banner = id( "qunit-banner" );
+ result = id( "qunit-testresult" );
+
+ if ( tests ) {
+ tests.innerHTML = "";
+ }
+
+ if ( banner ) {
+ banner.className = "";
+ }
+
+ if ( result ) {
+ result.parentNode.removeChild( result );
+ }
+
+ if ( tests ) {
+ result = document.createElement( "p" );
+ result.id = "qunit-testresult";
+ result.className = "result";
+ tests.parentNode.insertBefore( result, tests );
+ result.innerHTML = "Running...<br /> ";
+ }
+ };
+
+// Don't load the HTML Reporter on non-Browser environments
+ if ( typeof window === "undefined" ) {
+ return;
+ }
+
+ var config = QUnit.config,
+ hasOwn = Object.prototype.hasOwnProperty,
+ defined = {
+ document: window.document !== undefined,
+ sessionStorage: (function() {
+ var x = "qunit-test-string";
+ try {
+ sessionStorage.setItem( x, x );
+ sessionStorage.removeItem( x );
+ return true;
+ } catch ( e ) {
+ return false;
+ }
+ }())
+ },
+ modulesList = [];
+
+ /**
+ * Escape text for attribute or text content.
+ */
+ function escapeText( s ) {
+ if ( !s ) {
+ return "";
+ }
+ s = s + "";
+
+ // Both single quotes and double quotes (for attributes)
+ return s.replace( /['"<>&]/g, function( s ) {
+ switch ( s ) {
+ case "'":
+ return "'";
+ case "\"":
+ return """;
+ case "<":
+ return "<";
+ case ">":
+ return ">";
+ case "&":
+ return "&";
+ }
+ });
+ }
+
+ /**
+ * @param {HTMLElement} elem
+ * @param {string} type
+ * @param {Function} fn
+ */
+ function addEvent( elem, type, fn ) {
+ if ( elem.addEventListener ) {
+
+ // Standards-based browsers
+ elem.addEventListener( type, fn, false );
+ } else if ( elem.attachEvent ) {
+
+ // support: IE <9
+ elem.attachEvent( "on" + type, function() {
+ var event = window.event;
+ if ( !event.target ) {
+ event.target = event.srcElement || document;
+ }
+
+ fn.call( elem, event );
+ });
+ }
+ }
+
+ /**
+ * @param {Array|NodeList} elems
+ * @param {string} type
+ * @param {Function} fn
+ */
+ function addEvents( elems, type, fn ) {
+ var i = elems.length;
+ while ( i-- ) {
+ addEvent( elems[ i ], type, fn );
+ }
+ }
+
+ function hasClass( elem, name ) {
+ return ( " " + elem.className + " " ).indexOf( " " + name + " " ) >= 0;
+ }
+
+ function addClass( elem, name ) {
+ if ( !hasClass( elem, name ) ) {
+ elem.className += ( elem.className ? " " : "" ) + name;
+ }
+ }
+
+ function toggleClass( elem, name ) {
+ if ( hasClass( elem, name ) ) {
+ removeClass( elem, name );
+ } else {
+ addClass( elem, name );
+ }
+ }
+
+ function removeClass( elem, name ) {
+ var set = " " + elem.className + " ";
+
+ // Class name may appear multiple times
+ while ( set.indexOf( " " + name + " " ) >= 0 ) {
+ set = set.replace( " " + name + " ", " " );
+ }
+
+ // trim for prettiness
+ elem.className = typeof set.trim === "function" ? set.trim() : set.replace( /^\s+|\s+$/g, "" );
+ }
+
+ function id( name ) {
+ return defined.document && document.getElementById && document.getElementById( name );
+ }
+
+ function getUrlConfigHtml() {
+ var i, j, val,
+ escaped, escapedTooltip,
+ selection = false,
+ len = config.urlConfig.length,
+ urlConfigHtml = "";
+
+ for ( i = 0; i < len; i++ ) {
+ val = config.urlConfig[ i ];
+ if ( typeof val === "string" ) {
+ val = {
+ id: val,
+ label: val
+ };
+ }
+
+ escaped = escapeText( val.id );
+ escapedTooltip = escapeText( val.tooltip );
+
+ if ( config[ val.id ] === undefined ) {
+ config[ val.id ] = QUnit.urlParams[ val.id ];
+ }
+
+ if ( !val.value || typeof val.value === "string" ) {
+ urlConfigHtml += "<input id='qunit-urlconfig-" + escaped +
+ "' name='" + escaped + "' type='checkbox'" +
+ ( val.value ? " value='" + escapeText( val.value ) + "'" : "" ) +
+ ( config[ val.id ] ? " checked='checked'" : "" ) +
+ " title='" + escapedTooltip + "' /><label for='qunit-urlconfig-" + escaped +
+ "' title='" + escapedTooltip + "'>" + val.label + "</label>";
+ } else {
+ urlConfigHtml += "<label for='qunit-urlconfig-" + escaped +
+ "' title='" + escapedTooltip + "'>" + val.label +
+ ": </label><select id='qunit-urlconfig-" + escaped +
+ "' name='" + escaped + "' title='" + escapedTooltip + "'><option></option>";
+
+ if ( QUnit.is( "array", val.value ) ) {
+ for ( j = 0; j < val.value.length; j++ ) {
+ escaped = escapeText( val.value[ j ] );
+ urlConfigHtml += "<option value='" + escaped + "'" +
+ ( config[ val.id ] === val.value[ j ] ?
+ ( selection = true ) && " selected='selected'" : "" ) +
+ ">" + escaped + "</option>";
+ }
+ } else {
+ for ( j in val.value ) {
+ if ( hasOwn.call( val.value, j ) ) {
+ urlConfigHtml += "<option value='" + escapeText( j ) + "'" +
+ ( config[ val.id ] === j ?
+ ( selection = true ) && " selected='selected'" : "" ) +
+ ">" + escapeText( val.value[ j ] ) + "</option>";
+ }
+ }
+ }
+ if ( config[ val.id ] && !selection ) {
+ escaped = escapeText( config[ val.id ] );
+ urlConfigHtml += "<option value='" + escaped +
+ "' selected='selected' disabled='disabled'>" + escaped + "</option>";
+ }
+ urlConfigHtml += "</select>";
+ }
+ }
+
+ return urlConfigHtml;
+ }
+
+// Handle "click" events on toolbar checkboxes and "change" for select menus.
+// Updates the URL with the new state of `config.urlConfig` values.
+ function toolbarChanged() {
+ var updatedUrl, value,
+ field = this,
+ params = {};
+
+ // Detect if field is a select menu or a checkbox
+ if ( "selectedIndex" in field ) {
+ value = field.options[ field.selectedIndex ].value || undefined;
+ } else {
+ value = field.checked ? ( field.defaultValue || true ) : undefined;
+ }
+
+ params[ field.name ] = value;
+ updatedUrl = setUrl( params );
+
+ if ( "hidepassed" === field.name && "replaceState" in window.history ) {
+ config[ field.name ] = value || false;
+ if ( value ) {
+ addClass( id( "qunit-tests" ), "hidepass" );
+ } else {
+ removeClass( id( "qunit-tests" ), "hidepass" );
+ }
+
+ // It is not necessary to refresh the whole page
+ window.history.replaceState( null, "", updatedUrl );
+ } else {
+ window.location = updatedUrl;
+ }
+ }
+
+ function setUrl( params ) {
+ var key,
+ querystring = "?";
+
+ params = QUnit.extend( QUnit.extend( {}, QUnit.urlParams ), params );
+
+ for ( key in params ) {
+ if ( hasOwn.call( params, key ) ) {
+ if ( params[ key ] === undefined ) {
+ continue;
+ }
+ querystring += encodeURIComponent( key );
+ if ( params[ key ] !== true ) {
+ querystring += "=" + encodeURIComponent( params[ key ] );
+ }
+ querystring += "&";
+ }
+ }
+ return location.protocol + "//" + location.host +
+ location.pathname + querystring.slice( 0, -1 );
+ }
+
+ function applyUrlParams() {
+ var selectedModule,
+ modulesList = id( "qunit-modulefilter" ),
+ filter = id( "qunit-filter-input" ).value;
+
+ selectedModule = modulesList ?
+ decodeURIComponent( modulesList.options[ modulesList.selectedIndex ].value ) :
+ undefined;
+
+ window.location = setUrl({
+ module: ( selectedModule === "" ) ? undefined : selectedModule,
+ filter: ( filter === "" ) ? undefined : filter,
+
+ // Remove testId filter
+ testId: undefined
+ });
+ }
+
+ function toolbarUrlConfigContainer() {
+ var urlConfigContainer = document.createElement( "span" );
+
+ urlConfigContainer.innerHTML = getUrlConfigHtml();
+ addClass( urlConfigContainer, "qunit-url-config" );
+
+ // For oldIE support:
+ // * Add handlers to the individual elements instead of the container
+ // * Use "click" instead of "change" for checkboxes
+ addEvents( urlConfigContainer.getElementsByTagName( "input" ), "click", toolbarChanged );
+ addEvents( urlConfigContainer.getElementsByTagName( "select" ), "change", toolbarChanged );
+
+ return urlConfigContainer;
+ }
+
+ function toolbarLooseFilter() {
+ var filter = document.createElement( "form" ),
+ label = document.createElement( "label" ),
+ input = document.createElement( "input" ),
+ button = document.createElement( "button" );
+
+ addClass( filter, "qunit-filter" );
+
+ label.innerHTML = "Filter: ";
+
+ input.type = "text";
+ input.value = config.filter || "";
+ input.name = "filter";
+ input.id = "qunit-filter-input";
+
+ button.innerHTML = "Go";
+
+ label.appendChild( input );
+
+ filter.appendChild( label );
+ filter.appendChild( button );
+ addEvent( filter, "submit", function( ev ) {
+ applyUrlParams();
+
+ if ( ev && ev.preventDefault ) {
+ ev.preventDefault();
+ }
+
+ return false;
+ });
+
+ return filter;
+ }
+
+ function toolbarModuleFilterHtml() {
+ var i,
+ moduleFilterHtml = "";
+
+ if ( !modulesList.length ) {
+ return false;
+ }
+
+ modulesList.sort(function( a, b ) {
+ return a.localeCompare( b );
+ });
+
+ moduleFilterHtml += "<label for='qunit-modulefilter'>Module: </label>" +
+ "<select id='qunit-modulefilter' name='modulefilter'><option value='' " +
+ ( QUnit.urlParams.module === undefined ? "selected='selected'" : "" ) +
+ ">< All Modules ></option>";
+
+ for ( i = 0; i < modulesList.length; i++ ) {
+ moduleFilterHtml += "<option value='" +
+ escapeText( encodeURIComponent( modulesList[ i ] ) ) + "' " +
+ ( QUnit.urlParams.module === modulesList[ i ] ? "selected='selected'" : "" ) +
+ ">" + escapeText( modulesList[ i ] ) + "</option>";
+ }
+ moduleFilterHtml += "</select>";
+
+ return moduleFilterHtml;
+ }
+
+ function toolbarModuleFilter() {
+ var toolbar = id( "qunit-testrunner-toolbar" ),
+ moduleFilter = document.createElement( "span" ),
+ moduleFilterHtml = toolbarModuleFilterHtml();
+
+ if ( !toolbar || !moduleFilterHtml ) {
+ return false;
+ }
+
+ moduleFilter.setAttribute( "id", "qunit-modulefilter-container" );
+ moduleFilter.innerHTML = moduleFilterHtml;
+
+ addEvent( moduleFilter.lastChild, "change", applyUrlParams );
+
+ toolbar.appendChild( moduleFilter );
+ }
+
+ function appendToolbar() {
+ var toolbar = id( "qunit-testrunner-toolbar" );
+
+ if ( toolbar ) {
+ toolbar.appendChild( toolbarUrlConfigContainer() );
+ toolbar.appendChild( toolbarLooseFilter() );
+ }
+ }
+
+ function appendHeader() {
+ var header = id( "qunit-header" );
+
+ if ( header ) {
+ header.innerHTML = "<a href='" +
+ setUrl({ filter: undefined, module: undefined, testId: undefined }) +
+ "'>" + header.innerHTML + "</a> ";
+ }
+ }
+
+ function appendBanner() {
+ var banner = id( "qunit-banner" );
+
+ if ( banner ) {
+ banner.className = "";
+ }
+ }
+
+ function appendTestResults() {
+ var tests = id( "qunit-tests" ),
+ result = id( "qunit-testresult" );
+
+ if ( result ) {
+ result.parentNode.removeChild( result );
+ }
+
+ if ( tests ) {
+ tests.innerHTML = "";
+ result = document.createElement( "p" );
+ result.id = "qunit-testresult";
+ result.className = "result";
+ tests.parentNode.insertBefore( result, tests );
+ result.innerHTML = "Running...<br /> ";
+ }
+ }
+
+ function storeFixture() {
+ var fixture = id( "qunit-fixture" );
+ if ( fixture ) {
+ config.fixture = fixture.innerHTML;
+ }
+ }
+
+ function appendUserAgent() {
+ var userAgent = id( "qunit-userAgent" );
+
+ if ( userAgent ) {
+ userAgent.innerHTML = "";
+ userAgent.appendChild(
+ document.createTextNode(
+ "QUnit " + QUnit.version + "; " + navigator.userAgent
+ )
+ );
+ }
+ }
+
+ function appendTestsList( modules ) {
+ var i, l, x, z, test, moduleObj;
+
+ for ( i = 0, l = modules.length; i < l; i++ ) {
+ moduleObj = modules[ i ];
+
+ if ( moduleObj.name ) {
+ modulesList.push( moduleObj.name );
+ }
+
+ for ( x = 0, z = moduleObj.tests.length; x < z; x++ ) {
+ test = moduleObj.tests[ x ];
+
+ appendTest( test.name, test.testId, moduleObj.name );
+ }
+ }
+ }
+
+ function appendTest( name, testId, moduleName ) {
+ var title, rerunTrigger, testBlock, assertList,
+ tests = id( "qunit-tests" );
+
+ if ( !tests ) {
+ return;
+ }
+
+ title = document.createElement( "strong" );
+ title.innerHTML = getNameHtml( name, moduleName );
+
+ rerunTrigger = document.createElement( "a" );
+ rerunTrigger.innerHTML = "Rerun";
+ rerunTrigger.href = setUrl({ testId: testId });
+
+ testBlock = document.createElement( "li" );
+ testBlock.appendChild( title );
+ testBlock.appendChild( rerunTrigger );
+ testBlock.id = "qunit-test-output-" + testId;
+
+ assertList = document.createElement( "ol" );
+ assertList.className = "qunit-assert-list";
+
+ testBlock.appendChild( assertList );
+
+ tests.appendChild( testBlock );
+ }
+
+// HTML Reporter initialization and load
+ QUnit.begin(function( details ) {
+ var qunit = id( "qunit" );
+
+ // Fixture is the only one necessary to run without the #qunit element
+ storeFixture();
+
+ if ( qunit ) {
+ qunit.innerHTML =
+ "<h1 id='qunit-header'>" + escapeText( document.title ) + "</h1>" +
+ "<h2 id='qunit-banner'></h2>" +
+ "<div id='qunit-testrunner-toolbar'></div>" +
+ "<h2 id='qunit-userAgent'></h2>" +
+ "<ol id='qunit-tests'></ol>";
+ }
+
+ appendHeader();
+ appendBanner();
+ appendTestResults();
+ appendUserAgent();
+ appendToolbar();
+ appendTestsList( details.modules );
+ toolbarModuleFilter();
+
+ if ( qunit && config.hidepassed ) {
+ addClass( qunit.lastChild, "hidepass" );
+ }
+ });
+
+ QUnit.done(function( details ) {
+ var i, key,
+ banner = id( "qunit-banner" ),
+ tests = id( "qunit-tests" ),
+ html = [
+ "Tests completed in ",
+ details.runtime,
+ " milliseconds.<br />",
+ "<span class='passed'>",
+ details.passed,
+ "</span> assertions of <span class='total'>",
+ details.total,
+ "</span> passed, <span class='failed'>",
+ details.failed,
+ "</span> failed."
+ ].join( "" );
+
+ if ( banner ) {
+ banner.className = details.failed ? "qunit-fail" : "qunit-pass";
+ }
+
+ if ( tests ) {
+ id( "qunit-testresult" ).innerHTML = html;
+ }
+
+ if ( config.altertitle && defined.document && document.title ) {
+
+ // show ✖ for good, ✔ for bad suite result in title
+ // use escape sequences in case file gets loaded with non-utf-8-charset
+ document.title = [
+ ( details.failed ? "\u2716" : "\u2714" ),
+ document.title.replace( /^[\u2714\u2716] /i, "" )
+ ].join( " " );
+ }
+
+ // clear own sessionStorage items if all tests passed
+ if ( config.reorder && defined.sessionStorage && details.failed === 0 ) {
+ for ( i = 0; i < sessionStorage.length; i++ ) {
+ key = sessionStorage.key( i++ );
+ if ( key.indexOf( "qunit-test-" ) === 0 ) {
+ sessionStorage.removeItem( key );
+ }
+ }
+ }
+
+ // scroll back to top to show results
+ if ( config.scrolltop && window.scrollTo ) {
+ window.scrollTo( 0, 0 );
+ }
+ });
+
+ function getNameHtml( name, module ) {
+ var nameHtml = "";
+
+ if ( module ) {
+ nameHtml = "<span class='module-name'>" + escapeText( module ) + "</span>: ";
+ }
+
+ nameHtml += "<span class='test-name'>" + escapeText( name ) + "</span>";
+
+ return nameHtml;
+ }
+
+ QUnit.testStart(function( details ) {
+ var running, testBlock, bad;
+
+ testBlock = id( "qunit-test-output-" + details.testId );
+ if ( testBlock ) {
+ testBlock.className = "running";
+ } else {
+
+ // Report later registered tests
+ appendTest( details.name, details.testId, details.module );
+ }
+
+ running = id( "qunit-testresult" );
+ if ( running ) {
+ bad = QUnit.config.reorder && defined.sessionStorage &&
+ +sessionStorage.getItem( "qunit-test-" + details.module + "-" + details.name );
+
+ running.innerHTML = ( bad ?
+ "Rerunning previously failed test: <br />" :
+ "Running: <br />" ) +
+ getNameHtml( details.name, details.module );
+ }
+
+ });
+
+ QUnit.log(function( details ) {
+ var assertList, assertLi,
+ message, expected, actual,
+ testItem = id( "qunit-test-output-" + details.testId );
+
+ if ( !testItem ) {
+ return;
+ }
+
+ message = escapeText( details.message ) || ( details.result ? "okay" : "failed" );
+ message = "<span class='test-message'>" + message + "</span>";
+ message += "<span class='runtime'>@ " + details.runtime + " ms</span>";
+
+ // pushFailure doesn't provide details.expected
+ // when it calls, it's implicit to also not show expected and diff stuff
+ // Also, we need to check details.expected existence, as it can exist and be undefined
+ if ( !details.result && hasOwn.call( details, "expected" ) ) {
+ expected = escapeText( QUnit.dump.parse( details.expected ) );
+ actual = escapeText( QUnit.dump.parse( details.actual ) );
+ message += "<table><tr class='test-expected'><th>Expected: </th><td><pre>" +
+ expected +
+ "</pre></td></tr>";
+
+ if ( actual !== expected ) {
+ message += "<tr class='test-actual'><th>Result: </th><td><pre>" +
+ actual + "</pre></td></tr>" +
+ "<tr class='test-diff'><th>Diff: </th><td><pre>" +
+ QUnit.diff( expected, actual ) + "</pre></td></tr>";
+ } else {
+ if ( expected.indexOf( "[object Array]" ) !== -1 ||
+ expected.indexOf( "[object Object]" ) !== -1 ) {
+ message += "<tr class='test-message'><th>Message: </th><td>" +
+ "Diff suppressed as the depth of object is more than current max depth (" +
+ QUnit.config.maxDepth + ").<p>Hint: Use <code>QUnit.dump.maxDepth</code> to " +
+ " run with a higher max depth or <a href='" + setUrl({ maxDepth: -1 }) + "'>" +
+ "Rerun</a> without max depth.</p></td></tr>";
+ }
+ }
+
+ if ( details.source ) {
+ message += "<tr class='test-source'><th>Source: </th><td><pre>" +
+ escapeText( details.source ) + "</pre></td></tr>";
+ }
+
+ message += "</table>";
+
+ // this occours when pushFailure is set and we have an extracted stack trace
+ } else if ( !details.result && details.source ) {
+ message += "<table>" +
+ "<tr class='test-source'><th>Source: </th><td><pre>" +
+ escapeText( details.source ) + "</pre></td></tr>" +
+ "</table>";
+ }
+
+ assertList = testItem.getElementsByTagName( "ol" )[ 0 ];
+
+ assertLi = document.createElement( "li" );
+ assertLi.className = details.result ? "pass" : "fail";
+ assertLi.innerHTML = message;
+ assertList.appendChild( assertLi );
+ });
+
+ QUnit.testDone(function( details ) {
+ var testTitle, time, testItem, assertList,
+ good, bad, testCounts, skipped,
+ tests = id( "qunit-tests" );
+
+ if ( !tests ) {
+ return;
+ }
+
+ testItem = id( "qunit-test-output-" + details.testId );
+
+ assertList = testItem.getElementsByTagName( "ol" )[ 0 ];
+
+ good = details.passed;
+ bad = details.failed;
+
+ // store result when possible
+ if ( config.reorder && defined.sessionStorage ) {
+ if ( bad ) {
+ sessionStorage.setItem( "qunit-test-" + details.module + "-" + details.name, bad );
+ } else {
+ sessionStorage.removeItem( "qunit-test-" + details.module + "-" + details.name );
+ }
+ }
+
+ if ( bad === 0 ) {
+ addClass( assertList, "qunit-collapsed" );
+ }
+
+ // testItem.firstChild is the test name
+ testTitle = testItem.firstChild;
+
+ testCounts = bad ?
+ "<b class='failed'>" + bad + "</b>, " + "<b class='passed'>" + good + "</b>, " :
+ "";
+
+ testTitle.innerHTML += " <b class='counts'>(" + testCounts +
+ details.assertions.length + ")</b>";
+
+ if ( details.skipped ) {
+ testItem.className = "skipped";
+ skipped = document.createElement( "em" );
+ skipped.className = "qunit-skipped-label";
+ skipped.innerHTML = "skipped";
+ testItem.insertBefore( skipped, testTitle );
+ } else {
+ addEvent( testTitle, "click", function() {
+ toggleClass( assertList, "qunit-collapsed" );
+ });
+
+ testItem.className = bad ? "fail" : "pass";
+
+ time = document.createElement( "span" );
+ time.className = "runtime";
+ time.innerHTML = details.runtime + " ms";
+ testItem.insertBefore( time, assertList );
+ }
+ });
+
+ if ( defined.document ) {
+ if ( document.readyState === "complete" ) {
+ QUnit.load();
+ } else {
+ addEvent( window, "load", QUnit.load );
+ }
+ } else {
+ config.pageLoaded = true;
+ config.autorun = true;
+ }
+
+})();
--- /dev/null
+/**
+ * --------------------------------------------------------------------------------
+ * Test Basic Constructor
+ * --------------------------------------------------------------------------------
+ */
+
+module("jqvmap-base");
+
+test("Constructor Only", function () {
+
+ var $container = $('#test-map');
+ var testMap = $('<div id="vmap" style="width: 600px; height: 400px;"></div>');
+
+ $container.append(testMap);
+
+ var map = $('#vmap').vectorMap();
+
+ ok(map instanceof JQVMap, 'vectorMap() is instance of JQVMap');
+
+ $container.html('');
+});
+
+test("Accepts Config Options", function () {
+
+ var $container = $('#test-map');
+ var testMap = $('<div id="vmap" style="width: 600px; height: 400px;"></div>');
+
+ $container.append(testMap);
+
+ var map = $('#vmap').vectorMap({
+ map: 'world_en',
+ backgroundColor: '#ffffff',
+ color: '#0D3349',
+ hoverOpacity: 0.7,
+ selectedColor: '#2B81AF',
+ enableZoom: true,
+ showTooltip: true
+ });
+
+ ok(map instanceof JQVMap, 'vectorMap() is instance of JQVMap');
+
+ $container.html('');
+});
+
+/**
+ * --------------------------------------------------------------------------------
+ * Test for Successful Configuration
+ * --------------------------------------------------------------------------------
+ */
+
+module("jqvmap-config-validation");
+
+test("Test Config Options", function () {
+
+ var $container = $('#test-map');
+ var testMap = $('<div id="vmap" style="width: 600px; height: 400px;"></div>');
+
+ $container.append(testMap);
+
+ var map = $('#vmap').vectorMap({
+ map: 'world_en',
+ backgroundColor: '#ffffff',
+ borderColor: '#ffffff',
+ borderOpacity: 0.25,
+ borderWidth: 1,
+ color: '#000000',
+ colors: {
+ us: '#ff0000'
+ },
+ enableZoom: false,
+ hoverColor: '#0000FF',
+ hoverColors: {
+ us: '#ff0000'
+ },
+ hoverOpacity: 0.7,
+ normalizeFunction: 'polynomial',
+ scaleColors: ['#b6d6ff', '#005ace'],
+ selectedColor: '#333333',
+ selectedRegions: ['us', 'mx'],
+ multiSelectRegion: false,
+ showTooltip: false,
+ showLabels: true,
+ onLabelShow: function(){ return 'Label Showing'; },
+ onRegionOver: function(){ return 'Region Over'; },
+ onRegionOut: function(){ return 'Region Out'; },
+ onRegionClick: function(){ return 'Region Clicked'; },
+ pins: {
+ us: 'America'
+ },
+ pinMode: 'content'
+ });
+
+ equal(map.canvas.params.map, 'world_en', 'vectorMap({ map: "world_en" }) set correctly');
+ equal(map.canvas.params.backgroundColor, '#ffffff', 'vectorMap({ backgroundColor: "#ffffff" }) set correctly');
+ equal(map.canvas.params.borderColor, '#ffffff', 'vectorMap({ borderColor: "#ffffff" }) set correctly');
+ equal(map.canvas.params.borderOpacity, 0.25, 'vectorMap({ borderOpacity: 0.25 }) set correctly');
+ equal(map.canvas.params.borderWidth, 1, 'vectorMap({ borderWidth: 1 }) set correctly');
+ equal(map.canvas.params.color, '#000000', 'vectorMap({ color: "#000000" }) set correctly');
+ equal(map.canvas.params.colors['us'], '#ff0000', 'vectorMap({ colors: { us: "#ff0000" } }) set correctly');
+ equal(map.canvas.params.enableZoom, false, 'vectorMap({ enableZoom: false }) set correctly');
+ equal(map.canvas.params.hoverColor, '#0000FF', 'vectorMap({ hoverColor: "#0000FF" }) set correctly');
+ equal(map.canvas.params.hoverColors['us'], '#ff0000', 'vectorMap({ hoverColors: { us: "#ff0000" } }) set correctly');
+ equal(map.canvas.params.hoverOpacity, 0.7, 'vectorMap({ hoverOpacity: 0.7 }) set correctly');
+ equal(map.canvas.params.normalizeFunction, 'polynomial', 'vectorMap({ normalizeFunction: "polynomial" }) set correctly');
+ equal(map.canvas.params.scaleColors[0][0], 182, 'vectorMap({ scaleColors: ["#b6d6ff", "#005ace"] }) first color red set correctly');
+ equal(map.canvas.params.scaleColors[0][1], 214, 'vectorMap({ scaleColors: ["#b6d6ff", "#005ace"] }) first color green set correctly');
+ equal(map.canvas.params.scaleColors[0][2], 255, 'vectorMap({ scaleColors: ["#b6d6ff", "#005ace"] }) first color blue set correctly');
+ equal(map.canvas.params.scaleColors[1][0], 0, 'vectorMap({ scaleColors: ["#b6d6ff", "#005ace"] }) second color red set correctly');
+ equal(map.canvas.params.scaleColors[1][1], 90, 'vectorMap({ scaleColors: ["#b6d6ff", "#005ace"] }) second color green set correctly');
+ equal(map.canvas.params.scaleColors[1][2], 206, 'vectorMap({ scaleColors: ["#b6d6ff", "#005ace"] }) second color blue set correctly');
+ equal(map.canvas.params.selectedColor, '#333333', 'vectorMap({ selectedColor: "#333333" }) US set correctly');
+ equal(map.canvas.params.selectedRegions[0], 'us', 'vectorMap({ selectedRegions: ["us", "mx"] }) US set correctly');
+ equal(map.canvas.params.selectedRegions[1], 'mx', 'vectorMap({ selectedRegions: ["us", "mx"] }) MX set correctly');
+ equal(map.canvas.params.multiSelectRegion, false, 'vectorMap({ multiSelectRegion: false }) set correctly');
+ equal(map.canvas.params.showTooltip, false, 'vectorMap({ showTooltip: false }) set correctly');
+ equal(map.canvas.params.showLabels, true, 'vectorMap({ showLabels: true }) set correctly');
+ equal(map.canvas.params.onLabelShow(), 'Label Showing', 'vectorMap({ onLabelShow: function(){} }) set correctly');
+ equal(map.canvas.params.onRegionOver(), 'Region Over', 'vectorMap({ onRegionOver: function(){} }) set correctly');
+ equal(map.canvas.params.onRegionOut(), 'Region Out', 'vectorMap({ onRegionOut: function(){} }) set correctly');
+ equal(map.canvas.params.onRegionClick(), 'Region Clicked', 'vectorMap({ onRegionClick: function(){} }) set correctly');
+ equal(map.canvas.params.pins['us'], 'America', 'vectorMap({ pins: { us: "America" } }) set correctly');
+ equal(map.canvas.params.pinMode, 'content', 'vectorMap({ pinMode: "content" }) set correctly');
+
+ $container.html('');
+});
+
+test("Test selectedRegions actually set in canvas", function () {
+
+ var $container = $('#test-map');
+ var testMap = $('<div id="vmap" style="width: 600px; height: 400px;"></div>');
+
+ $container.append(testMap);
+
+ var map = $('#vmap').vectorMap({
+ map: 'world_en',
+ selectedRegions: ['us', 'mx'],
+ selectedColor: '#333333'
+ });
+
+ equal(map.countries['us'].getFill(), '#333333', 'vectorMap({ selectedColor: "#333333" }) set correctly for US');
+ equal(map.countries['mx'].getFill(), '#333333', 'vectorMap({ selectedColor: "#333333" }) set correctly for MX');
+
+ $container.html('');
+});
+
+test("Test colors actually set in canvas", function () {
+
+ var $container = $('#test-map');
+ var testMap = $('<div id="vmap" style="width: 600px; height: 400px;"></div>');
+
+ $container.append(testMap);
+
+ var map = $('#vmap').vectorMap({
+ map: 'world_en',
+ colors: {
+ us: '#0000FF',
+ mx: '#00FF00'
+ }
+ });
+
+ equal(map.countries['us'].getFill(), '#0000FF', 'vectorMap({ colors: { us: "#0000FF", mx: "#00FF00" } }) set correctly for US');
+ equal(map.countries['mx'].getFill(), '#00FF00', 'vectorMap({ colors: { us: "#0000FF", mx: "#00FF00" } }) set correctly for MX');
+
+ $container.html('');
+});
+
+test("Test labels show up", function () {
+
+ var $container = $('#test-map');
+ var testMap = $('<div id="vmap" style="width: 600px; height: 400px;"></div>');
+
+ $container.append(testMap);
+
+ var map = $('#vmap').vectorMap({
+ map: 'world_en',
+ showLabels: true
+ });
+
+ var labelsExist = (jQuery('.jqvmap-pin').length > 0);
+
+ equal(labelsExist, 1, 'vectorMap({ showLabels: true }) set correctly and label showing');
+
+ jQuery('.jqvmap-pin').remove();
+ $container.html('');
+});
+
+/**
+ * --------------------------------------------------------------------------------
+ * Test Event Handlers
+ * --------------------------------------------------------------------------------
+ */
+
+module("jqvmap-event-handling");
+
+test("onLoad() event handler", function () {
+
+ var $container = $('#test-map');
+ var testMap = $('<div id="vmap" style="width: 600px; height: 400px;"></div>');
+ var testHandler = {
+ event: null,
+ map: null
+ };
+
+ $container.append(testMap);
+
+ var map = $('#vmap').vectorMap({
+ map: 'world_en',
+ onLoad: function(event, map){
+ testHandler.event = typeof event;
+ testHandler.map = map;
+
+ console.log(testHandler);
+ }
+ });
+
+ equal(testHandler.event, 'object', 'vectorMap({ onLoad: function(event, map }) fires correctly and returns an event');
+ equal(testHandler.map.canvas.params.map, 'world_en', 'vectorMap({ onLoad: function(event, map }) fires correctly and returns map');
+
+ $container.html('');
+});
+
+test("onLabelShow() event handler", function () {
+
+ var $container = $('#test-map');
+ var testMap = $('<div id="vmap" style="width: 600px; height: 400px;"></div>');
+ var testHandler = {
+ event: null,
+ code: null,
+ label: null
+ };
+
+ $container.append(testMap);
+
+ var map = $('#vmap').vectorMap({
+ map: 'world_en',
+ onLabelShow: function(event, label, code){
+ testHandler.event = typeof event;
+ testHandler.code = code;
+ testHandler.label = label;
+ }
+ });
+
+ jQuery('#vmap').trigger('labelShow.jqvmap', ['United States', 'us']);
+
+ equal(testHandler.event, 'object', 'vectorMap({ onLabelShow: function(event, label, code){ ... } }) fires correctly and returns an event');
+ equal(testHandler.code, 'us', 'vectorMap({ onLabelShow: function(event, label, code){ ... } }) fires correctly and returns code');
+ equal(testHandler.label, 'United States', 'vectorMap({ onLabelShow: function(event, label, code){ ... } }) fires correctly and returns label');
+
+ $container.html('');
+});
+
+test("onRegionOver() event handler", function () {
+
+ var $container = $('#test-map');
+ var testMap = $('<div id="vmap" style="width: 600px; height: 400px;"></div>');
+ var testHandler = {
+ event: null,
+ code: null,
+ region: null
+ };
+
+ $container.append(testMap);
+
+ var map = $('#vmap').vectorMap({
+ map: 'world_en',
+ onRegionOver: function(event, code, region){
+ testHandler.event = typeof event;
+ testHandler.code = code;
+ testHandler.region = region;
+ }
+ });
+
+ jQuery('#vmap').trigger('regionMouseOver.jqvmap', ['us', 'United States']);
+
+ equal(testHandler.event, 'object', 'vectorMap({ onRegionOver: function(event, code, region){ ... } }) fires correctly and returns an event');
+ equal(testHandler.code, 'us', 'vectorMap({ onRegionOver: function(event, code, region){ ... } }) fires correctly and returns code');
+ equal(testHandler.region, 'United States', 'vectorMap({ onRegionOver: function(event, code, region){ ... } }) fires correctly and returns region');
+
+ $container.html('');
+});
+
+test("onRegionOut() event handler", function () {
+
+ var $container = $('#test-map');
+ var testMap = $('<div id="vmap" style="width: 600px; height: 400px;"></div>');
+ var testHandler = {
+ event: null,
+ code: null,
+ region: null
+ };
+
+ $container.append(testMap);
+
+ var map = $('#vmap').vectorMap({
+ map: 'world_en',
+ onRegionOut: function(event, code, region){
+ testHandler.event = typeof event;
+ testHandler.code = code;
+ testHandler.region = region;
+ }
+ });
+
+ jQuery('#vmap').trigger('regionMouseOut.jqvmap', ['us', 'United States']);
+
+ equal(testHandler.event, 'object', 'vectorMap({ onRegionOut: function(event, code, region){ ... } }) fires correctly and returns an event');
+ equal(testHandler.code, 'us', 'vectorMap({ onRegionOut: function(event, code, region){ ... } }) fires correctly and returns code');
+ equal(testHandler.region, 'United States', 'vectorMap({ onRegionOut: function(event, code, region){ ... } }) fires correctly and returns region');
+
+ $container.html('');
+});
+
+test("onRegionClick() event handler", function () {
+
+ var $container = $('#test-map');
+ var testMap = $('<div id="vmap" style="width: 600px; height: 400px;"></div>');
+ var testHandler = {
+ event: null,
+ code: null,
+ region: null
+ };
+
+ $container.append(testMap);
+
+ var map = $('#vmap').vectorMap({
+ map: 'world_en',
+ onRegionClick: function(event, code, region){
+ testHandler.event = typeof event;
+ testHandler.code = code;
+ testHandler.region = region;
+ }
+ });
+
+ jQuery('#vmap').trigger('regionClick.jqvmap', ['us', 'United States']);
+
+ equal(testHandler.event, 'object', 'vectorMap({ onRegionClick: function(event, code, region){ ... } }) fires correctly and returns an event');
+ equal(testHandler.code, 'us', 'vectorMap({ onRegionClick: function(event, code, region){ ... } }) fires correctly and returns code');
+ equal(testHandler.region, 'United States', 'vectorMap({ onRegionClick: function(event, code, region){ ... } }) fires correctly and returns region');
+
+ $container.html('');
+});
+
+test("onRegionSelect() event handler", function () {
+
+ var $container = $('#test-map');
+ var testMap = $('<div id="vmap" style="width: 600px; height: 400px;"></div>');
+ var testHandler = {
+ event: null,
+ code: null,
+ region: null
+ };
+
+ $container.append(testMap);
+
+ var map = $('#vmap').vectorMap({
+ map: 'world_en',
+ onRegionSelect: function(event, code, region){
+ testHandler.event = typeof event;
+ testHandler.code = code;
+ testHandler.region = region;
+ }
+ });
+
+ jQuery('#vmap').trigger('regionSelect.jqvmap', ['us', 'United States']);
+
+ equal(testHandler.event, 'object', 'vectorMap({ onRegionSelect: function(event, code, region){ ... } }) fires correctly and returns an event');
+ equal(testHandler.code, 'us', 'vectorMap({ onRegionSelect: function(event, code, region){ ... } }) fires correctly and returns code');
+ equal(testHandler.region, 'United States', 'vectorMap({ onRegionSelect: function(event, code, region){ ... } }) fires correctly and returns region');
+
+ $container.html('');
+});
+
+test("onRegionDeselect() event handler", function () {
+
+ var $container = $('#test-map');
+ var testMap = $('<div id="vmap" style="width: 600px; height: 400px;"></div>');
+ var testHandler = {
+ event: null,
+ code: null,
+ region: null
+ };
+
+ $container.append(testMap);
+
+ var map = $('#vmap').vectorMap({
+ map: 'world_en',
+ onRegionDeselect: function(event, code, region){
+ testHandler.event = typeof event;
+ testHandler.code = code;
+ testHandler.region = region;
+ }
+ });
+
+ jQuery('#vmap').trigger('regionDeselect.jqvmap', ['us', 'United States']);
+
+ equal(testHandler.event, 'object', 'vectorMap({ onRegionDeselect: function(event, code, region){ ... } }) fires correctly and returns an event');
+ equal(testHandler.code, 'us', 'vectorMap({ onRegionDeselect: function(event, code, region){ ... } }) fires correctly and returns code');
+ equal(testHandler.region, 'United States', 'vectorMap({ onRegionDeselect: function(event, code, region){ ... } }) fires correctly and returns region');
+
+ $container.html('');
+});
+
+/**
+ * --------------------------------------------------------------------------------
+ * Test for Known Errors
+ * --------------------------------------------------------------------------------
+ */
+
+module("jqvmap-error-handling");
+
+test("Invalid Map Name", function () {
+
+ var $container = $('#test-map');
+ var testMap = $('<div id="vmap" style="width: 600px; height: 400px;"></div>');
+
+ $container.append(testMap);
+
+ throws(function(){ $('#vmap').vectorMap({ map: 'made_up_map' }); }, function( err ) {
+ return err.toString() === 'Error: Invalid "made_up_map" map parameter. Please make sure you have loaded this map file in your HTML.';
+ }, 'Correctly threw invalid map error');
+
+ $container.html('');
+});
--- /dev/null
+jQuery.fn.vectorMap('addMap', 'fr_regions_2016_mill',{"insets": [{"width": 100, "top": 600, "height": 122.71220181016422, "bbox": [{"y": -640515.9263248637, "x": -6082830.163693012}, {"y": -235112.28629661424, "x": -5752460.702426716}], "left": 0}, {"width": 50, "top": 440, "height": 42.928059423707, "bbox": [{"y": -1855676.1027106678, "x": -6882793.3793751765}, {"y": -1778355.8860469644, "x": -6792735.480530344}], "left": 0}, {"width": 50, "top": 510, "height": 57.21127928831266, "bbox": [{"y": -1668974.3969949444, "x": -6819419.302373176}, {"y": -1615651.747314515, "x": -6772817.783980524}], "left": 0}, {"width": 50, "top": 700, "height": 42.31095479952366, "bbox": [{"y": 2357030.8412201093, "x": 6150785.273719754}, {"y": 2416319.6251247157, "x": 6220848.433704593}], "left": 740}, {"width": 40, "top": 690, "height": 55.96611426730096, "bbox": [{"y": 1415975.8044653006, "x": 5016650.333473452}, {"y": 1454680.1669724442, "x": 5044313.045465417}], "left": 640}, {"width": 900, "top": 0, "height": 749.2159980728637, "bbox": [{"y": -6244653.662562441, "x": -571670.6975907331}, {"y": -4882430.695155527, "x": 1064707.428102987}], "left": 0}], "paths": {"FR-GF": {"path": "M0.97,715.11l0.03,-0.01l1.04,0.32l0.16,0.02l0.86,-0.15l0.51,-0.46l0.86,-2.17l2.19,-0.54l1.75,-1.7l3.1,-6.63l2.47,-3.35l0.8,-2.07l0.47,-0.34l0.06,-0.66l-0.55,-0.79l0.94,-2.39l-0.02,-0.46l-0.64,-0.76l0.44,-0.66l-0.5,-1.65l0.23,-1.91l-0.45,-0.69l-0.46,-0.14l0.86,-1.73l2.07,-2.81l1.19,-0.89l0.84,-2.29l1.16,-1.21l0.63,-1.48l-0.08,-2.67l0.59,-2.69l-0.24,-0.63l-0.99,-0.8l-0.94,0.14l-0.73,-1.11l-0.67,-2.34l-1.1,-1.52l-2.15,-0.96l-0.85,-1.38l-0.94,-0.69l-0.78,-1.45l-0.91,-0.91l-0.6,-1.53l-1.41,-1.5l0.64,-2.85l-0.13,-0.85l-2.32,-1.44l0.46,-1.46l-0.01,-1.08l-0.33,-1.55l-1.0,-2.09l-0.57,-3.53l0.9,-2.56l0.01,-1.55l-0.48,-1.52l0.02,-2.19l-1.39,-1.38l0.0,-4.12l-0.26,-0.77l1.19,-1.14l-0.22,-1.91l0.25,-0.92l2.73,-3.76l0.74,-0.61l1.11,-2.37l4.66,-4.06l2.22,-1.17l1.58,-1.93l1.87,-4.21l0.52,-3.48l1.46,-2.55l2.53,0.36l1.76,0.65l0.25,-0.36l3.4,2.05l6.81,3.12l3.05,0.38l3.49,0.88l0.86,-0.07l1.81,1.42l0.75,-0.24l0.28,-0.38l-0.11,-0.54l0.6,0.16l3.21,1.77l2.63,0.74l0.44,-0.2l3.1,1.65l2.24,2.12l1.54,0.85l1.06,1.69l7.47,6.54l0.33,0.77l1.43,0.41l2.53,2.16l0.64,1.06l-0.27,1.23l0.6,0.43l2.01,-1.77l1.2,0.54l0.54,0.96l-2.76,4.28l0.03,1.47l0.4,0.37l0.6,-0.32l0.54,-0.93l0.57,-1.94l2.11,-1.78l0.87,0.63l1.21,1.89l2.18,1.25l2.26,2.1l0.89,1.31l1.5,6.51l-0.33,1.34l-1.91,1.37l-0.89,1.13l-0.01,0.47l0.45,0.15l2.11,-0.67l1.15,-0.61l0.64,-0.84l0.53,-2.04l-0.28,-4.87l0.65,-1.95l1.05,-0.2l1.97,1.65l0.0,0.74l1.13,1.9l0.28,1.83l0.66,0.89l-0.25,0.37l0.26,0.94l0.51,0.66l1.03,0.2l-0.69,0.86l-0.09,1.41l1.97,3.43l0.18,0.84l-0.06,2.16l-0.64,2.0l-0.3,0.58l-2.4,1.19l-1.04,0.92l-1.71,3.75l-2.1,2.32l-1.35,0.82l-0.13,1.42l-0.89,0.24l-0.67,0.68l-0.88,2.96l-1.99,3.34l-0.78,0.63l0.04,0.74l-4.48,7.35l-0.56,0.42l-1.13,0.12l-0.77,0.72l-0.64,1.51l-1.27,1.01l-0.24,0.8l0.31,2.33l-2.32,4.42l0.33,0.96l-1.39,1.05l-2.96,7.18l-1.09,0.6l0.67,2.17l-2.13,3.57l-1.21,1.07l-1.71,2.4l-5.24,2.87l-0.69,0.6l-0.84,1.79l-2.17,0.93l-2.57,-0.42l-1.92,-1.13l-5.09,0.79l1.41,-1.11l-0.13,-0.65l-2.09,-1.75l-0.88,-1.21l-0.87,-0.45l-0.43,0.08l-1.13,1.43l-2.74,1.58l-2.14,0.34l-1.52,-0.76l-2.22,-0.27l-2.22,-0.96l-0.87,-0.06l0.23,-1.21l-0.6,-0.69l-0.75,-0.14l-1.33,0.55l-1.05,1.47l-1.27,0.26l-0.98,1.22l-1.24,-0.04l-0.49,1.63l-0.46,0.33l-1.97,0.97l-0.71,-0.32l-1.16,0.23l-0.87,2.01l-0.86,0.39l-1.72,-1.68l-2.66,0.42l-1.6,-0.21l-2.03,-1.41l-3.41,-0.59l-1.86,-1.51l0.34,-0.7l-0.6,-0.59l-1.7,-0.92Z", "name": "Guyane fran\u00e7aise"}, "FR-H": {"path": "M838.53,672.37l1.08,0.06l0.88,-0.67l0.97,0.12l1.07,-2.21l1.86,-0.26l0.74,-0.59l0.25,-1.79l0.9,-1.48l-0.38,-0.73l-0.69,-0.15l0.49,-1.84l0.66,-0.7l2.07,-0.66l0.26,-0.57l-0.29,-0.57l0.29,-1.57l1.09,-0.31l1.75,0.99l1.22,-0.28l0.96,-0.92l0.83,-2.39l1.69,-0.12l3.84,-1.79l6.8,-1.3l2.03,-0.92l0.4,-1.61l3.75,-3.54l2.7,-0.22l4.3,0.91l1.55,0.91l1.19,2.4l0.37,0.25l0.75,-0.18l2.19,-3.35l0.93,-2.22l-0.53,-1.78l0.44,-1.29l-0.33,-1.53l-1.69,-2.25l1.55,-2.06l-0.41,-1.45l0.2,-1.05l1.75,-1.77l0.11,-1.69l-1.01,-1.98l0.14,-1.93l0.77,-0.45l2.42,-0.01l0.97,-0.35l0.69,0.85l1.59,0.95l-0.62,1.65l0.32,1.04l0.64,0.74l-0.24,1.34l1.15,6.71l-0.1,2.14l-1.97,6.87l-0.02,4.12l-0.45,1.01l0.91,0.83l0.24,0.8l-0.14,1.25l1.14,1.91l2.33,1.17l0.51,-0.65l0.25,0.54l0.31,7.85l0.73,1.54l-0.6,1.91l-0.19,2.68l1.67,5.79l-0.45,9.13l0.43,1.76l-0.38,2.31l-0.37,0.56l-1.68,1.43l-1.61,2.76l-5.49,7.01l-0.58,7.85l0.53,5.07l-0.08,5.26l-1.16,0.85l-0.93,1.45l0.36,0.56l0.38,0.0l-0.34,1.47l-1.74,0.45l-0.13,1.0l-2.1,-0.31l-0.71,0.1l-0.34,0.46l0.08,0.47l-0.87,1.33l0.15,0.53l1.18,0.53l2.94,-0.89l0.29,0.34l-0.16,0.77l-1.25,1.25l-1.71,0.61l-1.08,1.44l-0.92,0.16l-0.29,0.57l0.28,0.85l-0.28,0.85l0.82,0.98l-0.71,0.84l0.01,0.67l-2.14,1.17l-0.98,0.12l-0.35,0.4l0.0,0.54l0.75,0.99l-0.59,0.7l-0.15,0.77l0.54,0.37l1.71,-1.1l-1.36,2.96l-0.77,0.37l-0.56,-0.17l-1.56,-1.26l-4.09,-1.13l0.5,-1.41l0.63,-0.25l0.15,-0.7l-3.04,-1.76l0.64,-0.96l0.0,-0.46l-0.51,-0.38l-2.15,1.21l-0.36,-0.76l-1.07,0.38l-0.9,-0.82l-1.69,-0.51l-2.48,-0.05l-1.61,-1.23l-1.4,-0.31l-0.77,-0.93l-1.36,-0.18l0.42,-0.48l-0.28,-0.83l-3.45,-1.04l0.22,-1.42l-0.44,-0.73l-0.5,-0.17l1.06,-2.73l1.05,0.33l3.28,-1.35l0.76,-0.71l0.25,-0.88l2.21,-1.71l-0.28,-0.67l-8.03,-1.29l-0.49,-0.46l0.45,-1.23l-0.37,-0.54l-1.66,0.01l-3.15,0.9l0.15,-0.36l-0.39,-0.56l-1.58,-0.18l1.37,-0.22l1.43,-1.12l0.36,-1.08l-0.11,-0.68l-0.53,-0.48l2.22,-0.4l2.07,-1.1l0.18,-0.51l-0.3,-0.7l-0.72,-0.7l1.32,-0.68l0.04,-0.58l-0.51,-0.92l1.44,-2.22l-1.63,-2.04l-1.3,-0.47l-1.37,0.15l-3.3,1.36l-2.54,0.15l-1.78,0.63l-0.16,-0.36l0.64,-1.35l-0.36,-1.17l-1.16,-1.23l2.2,-0.2l1.3,-0.47l1.04,-1.45l-0.12,-0.56l-0.44,-0.27l0.27,-0.44l1.08,-0.73l3.47,-1.33l0.38,-0.36l0.09,-0.92l-0.43,-0.78l-0.97,-0.68l-1.71,-2.86l-0.82,-0.13l-1.52,0.37l-0.72,-1.14l-1.11,-0.59l-2.23,-0.31l0.1,-0.87l-0.66,-0.46l0.63,-0.4l0.19,-0.89l-0.4,-0.4l-0.84,0.0l0.49,-1.2l-0.24,-0.73l-0.53,-0.37l0.18,-0.95l-1.46,-1.0l2.12,-0.06l1.46,-0.81l2.49,-0.44l2.27,-0.94l0.28,-0.91l-1.26,-1.16l-2.16,-0.95l-0.59,-1.02l-0.54,-0.04l-0.76,0.57l-0.02,-0.4l1.8,-0.96l0.05,-0.67l-1.61,-1.07l-1.41,0.12l-1.48,0.55l-0.55,-1.32l-0.01,-0.82Z", "name": "Corse"}, "FR-F": {"path": "M352.12,269.71l-0.39,-0.79l0.59,-1.42l1.29,-1.16l5.17,-2.45l1.63,-1.53l1.57,-4.34l0.07,-3.55l0.45,-1.34l2.91,-2.22l0.88,-1.62l-0.43,-1.98l0.6,-3.59l-0.6,-0.63l-1.31,-0.12l-0.88,-2.08l2.47,-0.44l0.71,-0.46l0.07,-1.0l-1.12,-0.94l0.07,-0.52l3.99,-2.03l0.86,-0.92l-0.08,-0.73l-0.51,-0.52l-3.66,-0.66l-2.36,-1.54l1.12,-0.96l0.25,-1.0l-1.86,-3.44l0.07,-2.76l-0.31,-0.7l-0.92,-0.77l0.03,-1.1l0.42,-0.63l2.29,-0.4l5.6,-2.3l2.13,-1.95l0.67,-1.64l1.22,-1.8l-0.16,-0.83l-1.74,-2.11l0.08,-3.7l-3.65,-3.73l-2.55,-1.62l-1.61,-2.81l-0.36,-3.23l1.82,-1.67l1.34,-0.77l5.76,-1.41l2.04,-0.07l0.74,-0.36l1.7,-2.02l3.48,-0.35l0.63,-0.53l0.22,-1.53l3.0,1.67l3.49,-0.02l1.93,0.63l4.71,-2.07l1.42,-1.16l0.69,-1.87l0.95,-1.4l1.34,-1.03l2.49,-1.16l1.05,-1.01l0.26,-1.64l-0.52,-1.68l0.12,-0.44l2.22,-1.39l3.12,5.29l1.41,1.78l0.26,1.59l-0.56,2.83l0.31,1.68l0.56,0.67l1.6,0.81l-0.36,1.11l-1.35,1.63l-0.2,0.71l0.26,0.98l1.48,0.99l0.55,1.38l1.5,1.71l3.83,2.4l0.73,2.38l2.38,1.58l0.52,0.67l0.38,1.69l-0.03,2.29l1.38,2.04l1.1,0.79l4.59,1.88l2.43,-0.21l0.24,2.38l2.15,2.42l0.66,2.91l0.56,0.84l1.26,0.74l-1.59,2.0l-0.13,0.8l0.28,0.63l1.27,0.64l8.96,-1.77l2.18,-0.89l1.74,-2.19l1.08,0.42l1.34,1.84l0.89,0.32l1.9,-0.44l1.41,-1.25l0.41,-0.04l2.61,1.32l2.42,-0.25l1.05,1.47l1.06,3.38l3.56,2.09l1.09,1.21l-0.82,1.86l0.48,1.68l-2.36,-0.11l-1.14,1.09l0.09,1.33l1.07,0.83l2.02,0.26l3.17,-0.65l8.35,0.59l2.29,-0.94l1.66,-1.6l0.83,-0.26l2.03,0.05l-0.41,1.53l0.32,0.38l1.06,0.2l7.05,-1.97l1.76,0.12l2.27,0.58l1.52,1.02l1.38,4.33l1.05,1.28l2.81,2.18l0.52,2.18l-1.42,3.21l-0.46,0.6l-2.42,1.45l-1.42,1.43l-1.36,0.14l-0.46,0.42l0.1,2.67l0.95,2.06l-0.78,1.4l0.13,1.67l-0.42,0.96l-4.41,2.06l-4.17,0.46l-1.07,0.84l-0.36,1.76l0.56,1.49l2.33,0.9l2.32,2.0l1.13,2.08l-0.6,1.62l0.07,0.78l2.52,3.57l-3.82,0.47l-2.79,1.57l-0.07,0.91l1.55,1.67l1.57,3.11l1.42,1.89l-0.51,2.82l-0.86,1.93l-2.02,2.99l-0.1,0.83l0.94,1.66l1.73,0.94l3.6,3.47l0.78,3.4l1.43,3.27l1.23,3.95l-0.07,3.7l2.22,2.27l0.43,5.38l-1.31,4.71l1.12,2.83l-0.12,0.92l-2.12,3.69l-0.31,1.64l-3.08,-0.17l-2.72,0.77l-4.06,2.3l-1.68,2.09l-2.02,-0.32l-1.56,1.24l-2.13,-0.62l-0.64,-0.74l-0.84,-0.12l-4.12,3.34l-1.44,0.06l-0.57,0.31l-0.14,1.87l-2.29,0.13l-0.55,1.04l1.04,1.73l-0.51,1.0l0.05,1.2l1.67,2.1l0.3,1.38l-5.07,1.34l-7.99,0.81l-3.73,1.66l-1.58,1.88l-1.55,0.74l-2.19,3.55l-5.83,-0.29l-3.22,0.59l-2.11,-0.72l-3.44,0.0l-2.44,-0.84l-5.56,-0.15l-1.36,0.29l-1.79,1.06l-1.02,-0.37l-1.84,-1.89l-0.73,-0.15l-0.91,0.28l-0.52,0.62l-0.16,2.28l-0.72,0.98l-3.85,-0.24l-2.6,1.5l-1.18,-0.45l-0.12,-1.0l-0.46,-0.52l-0.8,-0.24l-1.55,0.21l-2.31,-0.53l-1.04,0.29l-3.98,3.58l-1.69,0.94l-2.46,-1.47l-0.93,-1.4l-0.84,-0.54l-0.84,-0.04l-0.83,0.37l-0.7,1.07l-1.07,0.49l-3.45,0.3l-2.25,-0.75l-0.71,-0.49l0.93,-3.22l-0.72,-1.01l-1.32,-0.68l-1.11,-1.06l0.45,-2.58l-0.5,-1.16l-0.91,-1.04l-1.23,-0.68l-5.0,-0.37l-0.32,-1.41l-0.46,-0.57l-3.41,-1.35l-2.07,-1.8l-0.45,-0.65l-0.51,-2.09l-0.01,-1.46l0.61,-2.86l-0.92,-2.42l-1.83,-2.14l-2.6,-1.8l-7.16,-9.22l-1.26,-3.31l-1.36,-1.88l-6.25,-3.03l-0.71,0.68l0.16,1.39l0.73,1.37l-0.4,0.35l-5.41,0.31l-1.21,0.29l-1.78,1.09l-2.67,-0.46l-2.71,0.24l-1.01,-0.19l-0.92,-0.81l-0.25,-0.98l0.04,-2.48l0.47,-2.57l-0.35,-1.03l-2.01,-0.4l-0.72,-1.12l-0.61,-0.29l-3.43,0.61l-0.29,-0.38l0.35,-1.68l-0.32,-1.32l-0.99,-0.39l-1.98,0.41l-0.5,-1.99l-0.74,-0.2l-1.7,0.66l-1.69,-2.39l0.88,-5.76l1.43,-5.26l4.43,-6.2l-0.2,-2.84l0.98,-2.98l1.96,-3.88l-0.45,-3.6l1.51,-3.81l7.61,1.68l0.98,-0.08l0.62,-0.83l-0.48,-2.31l0.7,-0.71l2.9,0.89l2.04,-1.63l2.39,-0.48l3.32,-1.45l2.28,-0.47l0.53,-0.73l-0.22,-1.26Z", "name": "Centre"}, "FR-E": {"path": "M25.63,242.25l0.98,-1.98l0.98,0.49l19.62,-3.77l3.65,0.88l0.91,-0.32l0.5,-0.76l0.62,-2.51l-0.36,-1.04l-0.81,-0.89l-0.58,-2.39l-1.01,-0.81l-2.92,-0.69l-0.66,-1.14l-0.5,-0.27l-1.37,0.44l-3.11,-1.71l-2.01,0.46l-2.96,4.7l-0.73,0.21l0.57,-1.39l-1.14,-2.33l0.91,-1.36l-0.39,-1.22l-1.09,-0.38l-3.21,-0.11l-0.03,-1.0l1.84,0.17l0.95,-0.24l0.41,-0.81l-0.22,-0.93l0.98,-2.21l0.53,-0.43l0.46,0.19l-0.71,2.55l0.23,0.48l1.87,0.72l5.36,-0.32l1.36,0.83l1.04,0.18l3.66,-0.78l2.04,-0.12l0.21,0.35l1.46,0.44l5.01,-0.91l0.33,-0.98l-0.42,-0.4l-1.83,0.11l-0.45,-0.19l-0.2,-0.74l-0.68,-0.16l-1.09,0.67l-1.22,-1.03l-2.07,0.18l0.59,-0.25l0.44,-0.73l1.79,-1.5l0.1,-0.44l-0.38,-0.25l-1.24,0.08l-1.29,0.8l0.0,-0.47l-0.85,-0.4l-0.96,1.04l-0.96,-0.2l-1.87,1.11l-0.5,0.08l-0.43,-0.77l-0.56,-0.05l-1.09,0.68l-1.02,0.2l3.24,-3.36l6.46,-3.39l0.19,-0.5l-0.47,-0.25l-4.22,1.6l-4.19,0.6l-5.77,2.77l-2.94,0.62l-1.85,0.8l-1.08,0.12l-4.35,-1.11l-0.58,0.4l-0.15,1.12l-0.27,0.13l-3.57,-0.23l-0.68,-1.74l0.68,-0.06l0.36,-0.44l-0.1,-1.01l-1.05,-2.18l-0.09,-1.34l0.28,-1.34l0.6,-0.89l1.01,-0.27l0.3,-0.88l-1.49,-1.16l0.52,-1.93l2.34,-3.42l1.07,0.45l0.46,-0.14l-0.19,-0.71l0.54,-0.32l2.86,-0.47l3.08,1.22l1.04,-0.16l0.21,-0.65l-1.67,-2.31l0.37,-0.22l2.65,0.59l1.24,-0.03l0.38,-0.34l-0.26,-0.44l-1.23,-0.43l0.07,-0.55l-0.35,-0.44l4.17,-0.0l3.43,-1.04l1.35,-0.03l0.38,-0.31l-0.2,-0.45l-0.86,-0.45l1.38,-0.23l3.24,-1.36l1.36,0.05l0.84,0.86l-0.39,1.52l0.42,0.5l1.58,-0.18l2.35,-1.07l2.95,0.58l0.4,-0.4l0.0,-0.59l-1.04,-0.57l0.11,-0.28l1.91,-1.43l2.45,-0.6l1.27,0.07l1.03,0.52l0.71,-0.39l0.36,0.69l0.75,0.24l1.01,-1.05l-0.02,-1.18l4.45,-1.51l-0.24,1.62l0.55,0.4l-0.25,0.84l1.04,1.07l-0.07,1.9l0.48,-0.03l1.68,-1.43l0.9,-0.29l-0.28,0.38l0.1,0.75l3.35,2.74l0.61,-0.01l0.45,-0.54l-0.24,-0.79l0.28,-0.74l-0.54,-1.41l0.79,0.35l0.21,-0.4l0.01,-2.72l0.24,-0.43l0.93,0.16l0.45,-0.85l1.48,0.59l2.89,-0.11l2.82,1.61l2.57,-0.38l0.28,1.21l1.61,0.42l1.96,-0.05l0.87,-0.41l0.21,-0.49l-0.71,-3.08l2.98,-0.46l0.33,-0.33l-3.03,-3.0l-0.19,-0.98l2.29,-1.26l1.58,-2.51l0.68,0.39l1.86,0.1l2.17,1.06l-0.28,0.54l0.32,0.6l2.25,0.04l1.71,-1.23l5.84,-2.09l1.17,0.0l1.67,-1.78l0.55,0.11l0.26,2.26l-0.4,1.28l-0.83,1.08l0.5,1.21l0.41,0.18l0.97,-1.9l1.78,-1.89l1.89,-1.51l0.81,0.06l1.06,-1.09l0.51,-0.13l0.85,0.83l-0.4,1.97l0.68,0.68l-1.05,2.42l-1.65,2.02l-0.1,0.85l0.4,0.4l0.8,-0.2l3.03,-4.81l0.76,0.15l1.33,-0.56l0.67,0.24l-0.02,0.75l-1.71,1.0l-0.01,1.15l2.48,1.16l4.01,0.41l0.01,1.2l-0.8,0.72l0.21,0.84l1.94,1.27l1.37,1.73l3.87,2.85l0.88,3.1l-0.26,0.69l0.22,0.77l2.78,1.74l3.18,1.32l-1.16,1.99l1.46,0.52l1.88,1.65l0.62,-0.24l0.25,-2.13l2.16,0.1l1.16,-0.4l3.22,-3.61l5.89,-2.95l0.99,-1.12l0.0,-0.53l-0.84,-0.45l1.49,-0.39l1.05,0.13l0.44,0.89l0.49,0.2l3.51,-1.61l2.1,-2.09l0.67,0.82l1.02,0.23l-1.01,1.46l-1.68,1.58l0.05,0.62l1.51,0.76l3.43,-2.2l0.62,2.37l0.78,0.42l0.63,2.14l0.57,0.3l1.25,-1.02l0.75,0.88l1.35,-0.4l0.22,-0.89l-0.64,-0.57l0.93,-0.86l1.16,0.66l0.55,-0.01l0.02,-0.55l-1.01,-1.64l2.26,-0.68l2.61,-0.22l1.31,2.11l0.42,1.64l1.16,0.92l-0.26,1.06l1.54,2.0l0.32,0.9l-0.23,1.64l0.21,0.41l0.46,-0.06l2.43,-1.55l0.01,-0.69l-1.38,-0.83l0.13,-0.69l-0.92,-1.66l0.91,0.63l0.48,-0.04l0.09,-0.48l-1.1,-1.52l-1.85,-0.63l-1.61,-3.1l0.13,-0.41l0.98,-1.09l1.07,-0.34l0.37,-1.34l0.28,-0.13l2.22,0.0l0.28,-0.7l4.99,-0.86l0.54,1.16l-1.35,1.87l-0.06,2.08l1.7,1.73l2.67,0.63l4.54,0.04l4.83,-0.64l3.02,-1.39l2.6,5.45l1.04,3.06l1.91,2.9l3.27,2.38l2.44,0.21l1.93,-0.61l2.78,-1.91l2.08,-0.77l2.22,-2.4l2.39,0.03l6.14,1.5l2.32,1.25l-0.2,5.67l0.77,8.15l-1.95,4.1l0.21,1.05l0.9,1.52l0.8,4.72l-0.73,1.74l0.74,4.88l0.57,1.17l1.18,1.08l0.09,4.44l-1.36,0.63l-4.18,0.61l-2.21,1.9l-0.63,1.08l-2.9,9.1l-1.14,1.77l-0.41,1.91l-6.47,-1.09l-0.75,-0.44l-0.77,-1.22l-1.29,-0.55l-3.34,-0.0l-1.83,1.23l-6.34,2.57l-1.86,1.31l-1.2,1.55l-2.58,1.54l-7.31,2.01l-3.72,-0.8l-4.42,1.41l-1.22,0.67l-2.07,-0.04l-2.38,0.42l-3.35,1.92l-0.46,1.34l0.13,2.04l-0.71,1.59l-0.73,3.38l-0.54,0.87l-2.15,1.35l-1.11,2.03l-0.68,0.15l-0.2,-1.32l-0.56,-0.55l-0.75,-0.02l-2.38,0.9l-1.56,-0.86l-0.9,0.05l-0.9,0.52l-1.08,1.85l-1.37,1.25l-3.37,0.29l-1.9,-0.8l-1.35,0.35l-0.47,0.66l-0.66,-0.06l-0.41,-0.22l0.4,-1.16l-0.67,-1.08l0.25,-0.19l3.7,-0.17l2.26,-0.53l1.21,0.07l0.42,-0.34l-0.3,-0.45l-0.99,-0.24l-2.8,0.23l-5.66,-1.72l-2.91,0.66l-1.93,0.0l1.05,-1.04l0.47,-1.05l-0.12,-0.48l-0.5,0.01l-0.86,0.73l-2.73,0.25l-0.32,0.4l1.11,0.66l-1.57,-0.11l-0.6,-0.37l-0.61,0.32l-0.09,1.63l-0.48,0.24l-1.89,-0.59l-1.16,0.04l-4.35,1.05l-1.51,-0.37l-2.24,-2.86l-1.34,-0.5l-0.54,-0.67l1.53,-0.13l1.13,1.56l1.15,-0.56l0.69,0.46l0.65,-0.25l0.21,-0.93l0.66,0.6l1.69,0.45l1.67,-0.14l1.46,-0.78l-0.13,-0.88l2.17,-2.6l0.37,-1.63l-1.48,-1.88l-0.44,-0.11l-0.26,0.86l0.64,0.9l-1.1,0.64l0.6,0.74l-0.39,0.02l-1.13,-0.82l0.39,-0.14l-0.02,-0.47l-0.84,-1.0l-0.86,-0.45l-1.89,-0.29l-0.44,0.26l0.31,0.55l-3.56,0.47l-0.85,0.64l-0.55,0.91l-2.13,0.65l0.0,-0.48l-0.46,-0.4l-1.32,0.49l-0.19,-1.21l0.7,-1.13l-1.61,-0.61l-0.47,-1.47l-0.85,-0.33l-0.4,0.46l0.45,2.1l0.01,1.94l0.27,0.88l1.3,1.72l-0.77,0.06l-1.84,-1.77l-0.48,-0.01l0.02,1.33l-0.45,-1.98l-0.51,-0.31l-0.67,0.4l-0.04,1.56l-1.22,-0.46l-1.86,0.87l-0.79,0.06l0.11,-0.88l-1.36,-0.9l-0.9,-0.02l-0.6,0.64l-1.75,-2.35l-1.96,-1.13l0.78,-2.82l4.43,-1.77l0.2,-0.57l-0.36,-1.98l-0.6,-0.34l-0.71,0.3l0.01,-1.53l-0.4,-0.43l-0.73,0.2l-0.33,0.57l-1.35,-0.45l-0.97,0.16l-0.33,0.36l1.51,1.12l0.5,1.38l-0.92,0.03l-0.89,0.76l-0.75,0.18l-0.19,0.67l0.52,0.61l-0.59,0.38l-0.66,1.45l-2.06,-1.94l-1.14,-0.34l-0.21,-0.79l-2.13,-0.87l-1.87,-0.17l0.38,-0.4l0.08,-1.06l0.95,0.1l0.65,-0.32l1.28,-2.54l0.88,-0.82l-0.25,-0.95l-0.44,0.09l-2.95,2.66l-1.78,0.9l-1.23,0.25l-0.32,0.34l0.22,0.41l0.92,0.77l-4.61,0.99l-0.63,-0.17l-2.02,-2.33l-2.01,-3.11l-0.6,-0.18l-0.57,0.4l-0.83,-0.02l-2.13,-0.46l-2.06,0.0l-1.4,-1.03l-2.45,0.05l-0.95,-0.29l-0.44,-0.91l-0.74,-0.41l-3.29,1.44l-0.96,-0.68l-3.48,0.2l-1.22,-1.97l-0.89,-0.77l0.11,-1.0l-0.37,-0.51l-1.34,-0.44l-0.26,-0.87l-1.15,-1.13l-1.72,-1.0l-1.75,-0.32l-0.44,0.53l0.51,1.46l-0.36,0.96l-0.24,0.22l-0.49,-0.49l-1.37,0.27l-0.79,0.62l-1.44,-1.0l-2.43,-0.67l-0.69,-0.82l-1.04,-2.67l-0.42,0.16l-0.7,1.27l0.43,1.31l1.4,1.55l-1.0,0.23l-0.97,0.66l-0.91,-1.34l-1.28,0.04l-0.48,1.28l0.73,0.75l-0.22,0.89l0.4,0.4l1.27,0.0l-1.81,1.5l-2.27,0.79l-8.52,-0.35l-0.07,-1.48l1.2,-0.18l0.52,-0.76l-0.21,-1.72l-1.54,-4.18l-0.96,-1.47l-2.99,-3.31l-6.1,-3.99l-1.18,0.45l-1.3,1.04l-1.84,-1.46l-3.15,-0.06l-3.8,-0.92ZM122.84,278.42l0.11,0.08l-0.08,0.32l-0.03,-0.4ZM122.52,282.02l0.23,1.3l1.65,2.47l-0.96,-0.23l-0.59,0.29l-0.71,-2.5l0.37,-1.33ZM133.84,278.57l0.45,0.38l-0.04,0.12l-0.41,-0.51ZM123.36,297.99l1.01,0.42l1.66,-0.07l0.33,0.33l-0.17,0.99l-1.32,0.33l-4.68,-0.38l-3.08,-0.8l-0.79,-0.48l0.14,-1.16l-1.41,-3.37l0.57,-0.67l4.02,1.8l3.72,3.05ZM1.37,208.95l2.5,-0.92l1.47,0.95l-2.48,1.11l-0.61,-1.01l-0.88,-0.14Z", "name": "Bretagne"}, "FR-X1": {"path": "M572.78,248.31l2.08,2.76l1.34,0.84l0.91,0.04l2.45,-1.72l13.22,-1.52l1.29,-0.82l0.21,-1.86l1.83,-1.16l3.72,0.47l2.38,-0.98l2.0,1.2l3.68,0.69l0.55,0.46l-0.52,1.12l0.41,0.79l2.84,0.99l0.59,0.52l-1.02,1.96l0.47,1.65l1.15,0.43l0.67,-0.37l0.54,-0.83l0.47,-0.03l3.02,3.37l2.43,4.0l0.05,1.03l-2.6,0.55l-0.58,0.46l-0.24,0.88l1.41,1.97l0.37,2.77l0.83,1.89l1.58,0.62l1.84,-1.46l0.41,0.07l2.15,2.8l2.67,1.55l2.02,-0.25l1.44,-1.65l0.75,-0.28l0.74,1.67l1.78,1.46l2.45,1.22l0.68,2.08l0.94,0.42l0.76,-0.18l2.08,-1.37l1.1,1.03l1.19,-0.18l2.67,-4.97l0.7,-0.81l0.64,-0.2l3.99,-0.6l3.21,1.65l1.53,0.3l6.58,-1.86l0.7,-0.44l0.69,-0.83l0.2,-0.97l-0.19,-2.21l0.55,-2.48l-0.58,-2.14l0.19,-0.51l0.63,-0.82l6.42,-3.94l2.41,-2.91l2.03,-0.75l0.4,-0.92l-0.24,-0.87l1.66,-0.91l1.8,-2.61l0.31,0.88l-0.17,1.53l0.84,0.59l3.53,-2.14l2.66,-2.84l1.54,-0.3l2.78,0.53l1.12,0.68l0.83,1.02l-0.06,1.28l0.31,0.67l3.72,1.77l2.64,-0.19l2.39,-1.21l3.0,-0.19l2.26,0.8l5.28,2.92l1.38,0.35l2.17,-0.03l1.59,-0.57l1.93,-2.36l0.72,-0.14l3.61,3.45l3.4,1.51l6.19,4.28l1.5,0.2l0.14,1.19l0.91,0.99l8.6,4.3l0.93,0.78l0.84,1.51l0.15,2.71l-0.51,1.44l-1.54,2.09l0.01,1.47l0.98,0.9l2.57,0.38l3.76,3.82l0.41,1.01l0.0,1.19l-0.38,1.14l-2.02,-0.53l-3.13,0.45l-2.79,-0.68l-2.25,0.79l-0.29,0.46l0.15,0.87l0.88,1.86l-1.14,1.05l-2.47,0.75l-0.32,0.37l-0.08,1.24l-1.37,0.7l-1.02,1.11l-1.15,2.35l0.42,0.52l7.29,-0.62l1.04,-0.41l2.04,1.73l-0.29,0.52l-1.73,0.73l-0.94,1.05l-0.92,0.22l-1.15,1.02l-0.52,1.79l0.21,1.82l-4.0,2.53l-1.78,1.58l-1.19,1.68l-3.91,3.12l-1.76,0.53l-0.28,0.41l0.06,1.05l-0.9,0.44l-0.31,0.51l-1.37,0.42l-0.72,0.57l-0.9,1.31l0.59,1.61l-1.2,1.49l-3.98,2.62l-6.53,1.77l-3.04,1.51l-1.11,2.94l1.07,2.32l0.08,1.66l-1.81,4.3l0.94,1.51l-0.16,1.55l-1.18,1.03l-2.12,1.0l-2.15,1.96l-4.43,2.12l-8.29,6.58l-0.92,1.27l0.3,1.23l1.2,1.17l-1.94,2.13l-3.09,4.33l0.33,2.88l-3.79,4.35l-2.1,1.94l-1.03,1.64l-4.26,3.58l-2.33,0.56l-7.03,-0.44l-0.45,-0.65l-0.22,-1.3l-0.66,-0.88l-3.08,-2.47l-0.52,-0.06l-2.8,2.33l-0.57,1.15l-1.28,0.24l-1.18,1.22l-1.45,0.59l-0.82,0.73l-1.63,-0.33l-0.55,-0.58l0.17,-3.09l-0.55,-0.51l-1.61,-0.3l-0.9,-1.08l-2.54,-0.97l-1.18,-3.01l-1.25,-0.94l-1.43,-0.41l-0.41,-0.65l-0.02,-2.61l-0.31,-0.39l-4.28,-1.02l-1.53,-0.8l-2.16,-1.97l-1.58,-0.52l-2.05,0.18l-3.7,1.25l-1.28,0.13l-3.18,-1.12l-1.8,-0.3l-1.05,0.23l-0.72,0.64l-1.5,3.9l-0.84,4.18l-1.47,2.56l-0.15,1.93l-3.53,6.7l-1.32,4.86l0.08,0.87l-2.89,-0.32l-0.98,-0.75l-0.98,-2.54l0.04,-1.79l-1.73,-1.29l-0.18,-1.86l-0.76,-0.6l-1.87,-0.55l-1.12,0.62l-0.53,1.93l-1.03,0.26l-2.35,-2.01l-0.72,0.04l-1.62,0.92l-1.03,0.08l-2.29,-0.51l-2.25,-0.92l-0.92,0.11l-0.68,0.9l-1.27,4.46l-1.74,2.06l-1.51,1.09l-1.62,0.57l-1.65,0.02l-4.83,-1.24l-3.08,0.65l-4.17,-0.93l-4.25,1.28l-1.42,-0.08l-2.06,-1.47l-2.77,-1.06l0.11,-2.73l-0.6,-1.7l5.26,-2.58l1.52,-1.33l0.08,-0.97l-0.86,-1.29l0.04,-1.38l-0.52,-1.25l0.64,-3.0l-0.8,-3.17l-2.08,-1.35l-4.18,-0.89l-2.7,-2.24l-1.72,-0.07l-3.83,-1.94l0.37,-3.1l-0.38,-1.88l-1.07,-0.72l-1.57,-2.64l-2.41,-2.14l-0.51,-1.65l-1.52,-2.44l-2.0,-0.46l-0.44,0.26l-0.43,1.96l-1.36,0.87l-0.44,1.79l-3.8,2.0l-1.31,0.28l-0.45,-0.19l-0.06,-1.53l-1.67,-2.57l-1.59,-0.43l-0.82,0.13l-1.33,1.43l-0.97,0.48l-2.64,-1.07l-1.82,-0.29l-1.87,0.11l-3.04,1.06l-3.34,-2.82l-1.29,-0.36l-1.77,0.04l-2.77,-1.63l-1.05,-1.28l-0.19,-0.83l0.34,-2.43l2.35,-4.46l-1.16,-3.32l1.31,-4.66l-0.44,-5.56l-2.26,-2.43l0.11,-3.58l-1.26,-4.05l-1.41,-3.21l-0.84,-3.54l-3.63,-3.57l-1.85,-1.04l-0.71,-1.21l2.92,-5.34l0.56,-3.19l-0.17,-0.62l-1.7,-2.2l-1.25,-2.57l-1.44,-1.56l0.08,-0.29l2.27,-1.1l2.94,-0.21l1.27,-0.38l0.25,-0.54l-0.6,-1.33l-2.08,-2.61l0.57,-2.21l-1.26,-2.45l-2.54,-2.22l-2.26,-0.85l-0.21,-1.48l0.17,-0.7l0.75,-0.56l4.07,-0.42l4.77,-2.29l0.53,-0.86l-0.08,-2.09l0.82,-1.64l-0.97,-2.16l-0.15,-2.18l1.55,-0.25l1.46,-1.47l2.5,-1.52l2.08,-4.18l-0.63,-2.78l-2.95,-2.35l-0.89,-1.09l-1.46,-4.45l-1.91,-1.27l-3.81,-0.73l0.73,-2.78l3.72,-2.26l1.64,-2.66l0.15,-0.86l-0.86,-1.48l-0.18,-1.43l1.15,-3.5l0.41,-0.36l3.03,0.06l2.27,-0.89l4.61,0.48l6.23,-0.91l2.51,0.47l0.72,-0.38l0.87,-1.43l1.29,-1.21l0.68,0.48l0.65,2.62l0.7,0.31l1.89,-0.13l2.82,1.56l5.42,6.18l0.37,0.67l0.39,2.99l-1.82,2.13l0.14,1.13l2.19,0.89l3.06,2.04l1.02,0.12l1.09,-0.29l0.78,-1.18l1.07,0.24l1.04,2.12l1.93,1.93l4.55,6.82l-1.58,0.69l-0.06,1.02l2.02,1.14l2.25,-0.31l0.24,0.47l-0.05,2.31l0.83,1.24l2.41,0.53l2.82,-0.18l1.96,0.66l0.71,-0.08l1.68,-1.15l1.71,0.44l2.04,-0.07l2.04,-1.61l0.63,0.05l1.22,0.92l0.82,0.12l0.66,-0.82l0.03,-1.6Z", "name": "Bourgogne-Franche-Comt\u00e9"}, "FR-MQ": {"path": "M29.58,521.59l2.04,4.09l0.61,0.13l1.69,-1.37l2.35,-1.15l2.71,-0.7l1.66,-0.01l-1.1,1.0l0.15,0.92l-1.99,2.03l-1.17,-1.91l-0.57,-0.12l-1.08,0.91l-0.34,2.42l0.25,2.72l0.56,0.33l1.58,-0.37l0.87,0.65l-2.81,1.51l-0.09,0.63l0.51,0.51l-0.97,0.5l-0.21,0.44l0.48,1.35l1.03,0.35l0.45,-0.14l0.84,-1.13l2.53,1.1l-1.26,0.61l-0.22,0.52l0.83,1.98l1.01,1.02l2.32,1.31l0.92,2.1l2.03,0.78l0.32,0.71l-0.03,1.98l0.6,0.39l0.71,-0.41l-0.25,2.4l0.41,1.46l0.77,1.07l-1.35,1.57l0.15,0.59l1.42,0.69l1.69,5.35l-1.43,0.75l-1.43,3.51l-1.14,1.51l-1.19,0.51l-1.52,0.14l-1.15,-0.51l-0.42,-1.43l0.56,-0.96l1.27,-0.41l1.36,-0.96l0.05,-2.11l-1.15,-1.71l-0.48,-0.15l-3.49,1.8l-1.39,-0.1l0.06,-0.84l-0.32,-0.42l-0.79,-0.15l-3.38,0.55l-6.91,-0.91l-2.07,0.3l-2.92,1.18l-1.59,0.24l-0.81,-0.46l-2.5,-3.48l-0.12,-1.4l-1.35,-0.99l2.86,-2.99l3.07,-1.49l0.78,-0.71l1.21,1.62l2.11,0.55l1.94,-0.83l0.87,-2.13l-2.15,-3.7l-0.25,-2.0l-0.53,-0.33l-3.16,0.87l-5.49,-0.02l-1.6,-2.4l-4.32,-2.94l-2.07,-1.98l-1.24,-3.51l-1.31,-1.93l0.78,-2.27l-0.31,-1.75l-1.64,-2.67l-3.41,-3.56l-0.79,-1.4l-0.29,-1.59l0.29,-1.51l0.74,-1.23l0.98,-0.9l4.61,-2.61l4.02,-0.06l3.94,1.27l5.23,3.33l4.71,2.09l1.84,1.19l1.36,2.81l1.45,0.5Z", "name": "Martinique"}, "FR-YT": {"path": "M678.38,715.39l-0.52,0.0l-2.02,-6.29l2.65,-2.73l0.87,2.15l0.24,2.21l-0.38,2.26l-0.84,2.4ZM647.49,692.27l-1.04,0.75l-0.14,0.46l1.6,0.36l0.6,0.88l2.18,1.87l2.93,3.52l1.63,1.28l2.49,0.62l4.96,-0.04l2.61,0.78l2.6,1.74l1.05,1.73l0.02,2.1l-0.68,2.82l-3.71,5.46l-1.53,1.19l0.14,2.09l1.04,1.92l2.81,1.86l-0.3,1.89l-3.07,6.4l-2.6,3.07l-1.21,3.45l2.82,4.18l-1.15,1.69l-1.53,1.06l-0.76,-1.37l-0.41,-0.2l-1.1,0.17l-1.53,1.03l-1.83,0.51l-1.63,-0.43l-2.25,-1.33l-1.24,0.41l0.12,-1.88l-0.84,-1.8l-1.74,-0.77l-1.92,0.17l0.0,-0.31l2.91,-1.61l0.29,-2.68l-1.49,-2.81l-2.83,-1.57l0.22,-0.43l1.06,-0.67l1.55,-0.14l0.82,0.5l2.83,3.33l2.81,1.68l1.89,-0.73l0.6,-2.42l-0.76,-2.88l-1.37,-2.17l-1.74,-1.96l-4.21,-3.56l2.58,-0.75l0.36,-0.4l-0.07,-1.34l-0.91,-1.33l-0.68,-2.3l-0.55,-4.71l-0.6,-2.37l-1.57,-1.23l-1.87,-0.61l-1.59,-1.03l-1.74,-2.81l-0.41,-4.1l7.31,-7.87l0.59,1.27l-0.82,0.34Z", "name": "Mayotte"}, "FR-X4": {"path": "M522.82,186.37l0.16,-1.02l1.68,-1.84l-0.22,-0.68l-0.89,-0.72l3.35,-0.37l0.76,-1.01l0.2,-1.75l1.48,-2.59l4.29,-3.81l1.07,-2.07l1.68,-1.1l0.81,-1.18l2.06,-1.61l0.39,-0.63l-0.02,-1.16l-0.99,-0.78l-3.39,0.04l-0.83,-0.47l0.06,-1.11l1.31,-0.86l1.17,-1.67l0.21,-0.79l-0.25,-2.97l1.17,-0.73l3.12,0.34l1.45,-0.25l1.33,-1.0l0.36,-0.86l-0.5,-1.26l-1.41,-0.81l-0.87,-0.98l-1.6,-0.47l-0.56,-4.86l-0.91,-2.12l2.95,-1.52l5.1,-1.23l4.31,-0.57l0.52,-0.78l-0.12,-1.35l0.85,-0.54l2.04,0.1l3.04,1.4l2.06,-0.68l2.32,0.84l1.14,-0.78l0.49,-1.35l0.08,-2.0l-0.52,-1.32l-0.68,-0.44l0.36,-0.58l1.56,-0.48l0.31,-0.52l-1.82,-3.65l1.76,-1.97l-0.32,-2.31l0.46,-1.54l-1.6,-4.48l0.75,-0.67l1.86,-0.09l1.55,-0.83l1.47,-2.03l1.72,-1.03l3.2,-2.67l0.94,-1.48l0.01,-1.35l-1.51,-2.11l0.44,-2.67l1.83,-3.2l0.19,-1.43l-0.27,-1.06l-1.76,-2.77l-0.03,-2.56l3.32,-0.4l9.73,2.22l1.91,-0.29l8.49,-3.54l2.64,-0.38l0.81,-0.51l1.03,-2.26l0.49,-2.73l-0.42,-1.4l0.42,-1.14l6.43,-5.47l1.16,-0.45l0.43,1.03l0.89,0.26l1.7,-0.3l0.3,0.34l-0.46,3.48l-0.42,-0.16l-0.65,0.28l-1.15,2.13l-0.07,2.33l-2.32,4.87l-0.3,1.37l0.89,1.44l2.96,1.1l0.83,1.27l-0.04,1.46l-1.51,3.13l0.87,1.86l0.09,3.19l0.8,0.73l1.7,0.19l5.18,-1.02l3.3,2.38l3.4,1.12l3.27,3.72l2.07,1.47l1.72,0.4l3.86,-0.67l2.26,2.11l0.31,0.88l-0.71,0.59l-0.19,1.13l0.55,1.39l1.85,0.16l0.84,-1.02l2.66,0.93l1.03,0.78l2.89,4.41l0.2,1.33l-0.26,1.48l0.69,1.13l1.59,0.26l4.1,-2.17l2.36,0.84l1.04,-0.1l1.27,-1.8l1.33,-0.57l4.11,0.97l2.13,-1.42l2.44,0.88l3.06,3.02l1.61,0.63l3.79,0.76l0.99,0.85l0.81,2.18l0.48,0.25l7.2,-0.85l1.6,-1.26l0.33,-1.21l1.94,-0.22l0.21,-0.79l2.88,-0.27l3.24,0.68l4.79,2.7l1.85,0.15l2.29,-0.93l0.53,0.08l5.52,2.34l0.95,0.78l0.43,1.78l3.49,3.43l-1.28,0.51l-0.34,1.05l0.39,0.92l5.12,4.46l-0.0,1.31l1.48,0.85l1.03,2.86l0.65,0.17l0.76,-0.38l0.24,0.78l-0.46,1.9l1.04,1.55l0.86,0.29l2.67,0.02l2.33,0.73l0.97,-0.14l1.37,-1.65l-0.67,-2.53l0.24,-0.75l2.79,0.42l1.85,-0.14l4.34,1.88l1.09,0.08l-0.03,2.41l0.73,2.3l1.51,1.11l2.29,-0.99l0.3,-0.66l-0.21,-0.77l0.26,-0.22l2.39,1.43l1.98,0.72l5.31,0.06l2.06,0.7l0.67,-0.41l0.98,-1.46l2.37,-0.6l0.98,-1.9l2.23,-0.77l0.85,0.06l0.55,0.9l3.47,0.42l0.22,0.64l-0.49,0.46l-0.0,0.71l3.02,3.51l1.57,0.84l2.62,0.39l1.24,0.55l0.93,1.37l0.84,0.6l1.01,0.16l2.14,-0.55l2.64,0.55l2.77,-0.96l5.0,1.23l4.59,-0.2l9.65,4.37l6.29,1.29l-1.02,1.01l-1.91,3.08l-2.79,6.52l-0.7,1.0l-3.2,1.38l-0.7,0.85l-0.46,1.3l-2.12,0.14l-0.95,0.41l-0.65,2.78l-3.8,3.45l-2.72,1.47l-2.58,3.44l-0.59,2.73l-0.01,2.81l0.72,2.0l-2.23,1.72l-0.47,2.28l-1.12,1.98l-0.77,3.01l-0.07,1.2l0.89,2.96l-0.06,0.91l-0.71,0.98l-2.24,1.43l-0.92,4.51l-4.46,5.68l-0.61,2.23l-1.16,1.77l-0.81,2.75l0.18,3.35l2.65,4.1l0.12,2.21l-2.19,2.41l-0.36,2.63l-1.24,1.91l0.21,3.21l-1.19,0.9l-1.06,3.68l0.75,2.84l-0.03,1.09l-1.25,1.28l-0.34,0.8l0.43,2.7l1.23,0.87l2.11,3.24l1.05,1.06l-0.21,1.33l-3.51,1.37l-2.73,1.91l0.1,0.7l1.12,0.69l0.01,0.32l-1.72,0.61l-0.07,0.53l0.6,1.0l-0.84,0.74l-2.31,-0.79l-0.93,0.18l-0.3,0.87l0.9,1.46l-1.22,1.75l-1.53,0.53l-4.27,-0.15l-4.24,1.21l-0.96,-0.82l-3.02,-1.12l-0.26,-0.95l1.04,-2.07l-0.39,-0.58l-1.82,0.11l0.39,-1.2l0.0,-1.45l-1.12,-2.14l-3.45,-3.28l-0.86,-0.37l-1.8,-0.05l-0.57,-0.53l0.01,-0.77l1.5,-2.01l0.61,-1.75l-0.17,-3.01l-1.03,-1.85l-1.11,-0.92l-8.58,-4.29l-0.62,-0.69l-0.07,-1.18l-0.36,-0.37l-1.57,-0.16l-6.14,-4.25l-3.36,-1.49l-2.89,-3.05l-1.0,-0.52l-0.66,-0.08l-0.72,0.37l-1.82,2.29l-1.32,0.48l-1.98,0.03l-1.09,-0.27l-5.28,-2.92l-2.42,-0.87l-3.37,0.19l-1.11,0.31l-1.36,0.92l-2.15,0.18l-3.33,-1.51l-0.16,-1.78l-1.1,-1.33l-1.36,-0.79l-2.91,-0.55l-2.05,0.41l-2.72,2.89l-3.08,1.95l0.04,-2.28l-0.66,-0.67l-0.65,0.03l-0.83,0.72l-1.26,2.11l-1.69,0.8l-0.26,0.52l0.33,0.93l-0.2,0.45l-1.94,0.67l-2.38,2.89l-6.41,3.93l-0.82,1.02l-0.32,1.1l0.57,2.0l-0.54,2.43l0.2,2.14l-0.58,1.27l-6.85,2.14l-1.15,-0.23l-3.43,-1.72l-4.29,0.62l-1.46,0.81l-2.83,5.28l-0.39,0.11l-0.67,-0.88l-0.77,-0.22l-2.89,1.56l-0.53,-0.69l-0.42,-1.51l-3.74,-2.21l-0.5,-0.48l-0.45,-1.41l-0.55,-0.47l-1.19,0.09l-1.76,1.89l-1.49,0.14l-2.23,-1.34l-2.42,-2.98l-1.06,-0.04l-1.62,1.4l-0.89,-0.42l-0.59,-1.48l-0.36,-2.77l-1.38,-1.79l0.33,-0.6l2.33,-0.37l0.83,-0.93l-0.18,-1.31l-1.18,-2.31l-4.52,-5.41l-1.18,-0.18l-1.09,1.24l-0.51,-0.21l-0.23,-0.95l0.85,-1.35l0.11,-1.07l-1.02,-0.91l-2.65,-0.91l0.44,-1.3l-0.31,-0.7l-0.84,-0.49l-3.68,-0.69l-1.99,-1.23l-2.67,0.98l-2.98,-0.51l-1.76,0.38l-1.47,1.25l-0.22,1.84l-0.81,0.45l-13.17,1.5l-2.39,1.7l-0.5,0.01l-1.12,-0.71l-1.95,-2.64l-0.78,-0.38l-0.55,0.41l-0.26,2.11l-1.42,-0.99l-1.02,-0.13l-0.91,0.39l-1.31,1.25l-1.75,0.05l-1.93,-0.43l-1.85,1.2l-2.25,-0.63l-2.87,0.17l-1.97,-0.36l-0.57,-0.86l0.08,-2.22l-0.52,-0.94l-0.98,-0.2l-1.67,0.35l-1.41,-0.73l1.56,-0.67l0.12,-0.94l-4.65,-7.0l-1.91,-1.9l-0.72,-1.79l-0.62,-0.61l-1.22,-0.42l-0.78,0.28l-0.57,1.04l-1.58,0.12l-2.82,-1.93l-2.05,-0.84l1.35,-1.41l0.55,-1.05l-0.39,-3.31l-0.49,-0.96l-5.62,-6.39l-3.0,-1.66l-2.3,-0.01l-0.47,-2.37l-1.12,-0.92l-0.15,-0.51l0.56,-2.27l-0.63,-1.75l1.81,-1.89l-0.93,-1.96l2.55,-0.54l0.75,-0.59l1.02,-2.47l0.98,-1.32l2.66,-1.99l0.06,-0.58l-1.98,-2.34l-2.8,0.05l-0.2,-1.26l0.51,-1.93l-0.76,-3.12l-2.03,-2.25l-1.36,-0.04Z", "name": "Alsace-Champagne-Ardenne-Lorraine"}, "FR-X5": {"path": "M296.09,638.61l-0.69,-4.39l0.23,-0.9l1.78,-2.58l-0.28,-3.88l2.39,-2.45l2.79,-0.25l0.84,-0.59l0.32,-0.83l-0.41,-1.39l0.02,-1.75l0.72,-0.92l2.37,-1.37l1.67,-2.92l1.05,0.11l0.6,-0.32l1.2,-3.37l1.88,-1.77l0.55,-1.02l0.07,-0.67l-0.62,-1.7l0.51,-2.21l0.68,-0.76l2.02,-0.75l0.47,-0.89l-1.07,-3.38l0.21,-2.73l-0.21,-0.77l-0.56,-0.5l-0.61,-0.06l-0.78,0.37l-1.02,1.09l-0.38,-0.27l-0.07,-1.71l1.65,-0.19l0.44,-0.8l-0.43,-1.63l-1.92,-3.78l-1.59,-1.2l-0.74,-1.54l-1.23,-0.77l-5.85,-1.11l-1.94,0.13l-0.8,-1.93l-0.88,-0.6l1.33,-2.32l-0.5,-1.87l1.41,-0.23l0.84,-0.72l1.33,-3.17l-0.83,-1.53l0.05,-2.22l1.48,-3.42l-0.0,-0.64l-0.91,-2.1l-1.51,-1.7l0.06,-0.26l3.02,-2.18l2.14,0.33l2.17,-0.22l1.91,-1.79l2.5,-1.32l1.3,0.7l0.06,0.52l-0.83,1.47l0.06,0.63l0.61,0.78l1.48,0.53l2.83,0.04l0.81,-0.49l0.46,-0.83l-0.21,-2.54l0.68,-1.02l1.79,-0.56l0.96,0.87l1.31,-0.01l1.3,-0.95l2.0,-2.61l0.42,-0.08l4.36,1.63l0.81,-0.02l3.09,-1.56l1.3,-0.2l4.46,-1.96l1.1,-0.75l2.5,0.3l5.09,-1.52l1.7,0.75l2.19,1.82l1.56,-0.16l3.92,-2.03l1.14,-2.97l2.17,-1.22l0.77,-1.7l1.0,-0.23l2.2,0.69l1.76,-0.35l0.51,-0.77l-0.02,-0.8l-0.33,-0.62l-1.03,-0.71l2.05,-1.55l2.29,-4.41l0.28,-1.14l-0.68,-1.14l-2.14,-0.75l-0.89,-1.21l0.8,-1.93l0.2,-2.29l0.6,-0.27l1.68,0.95l1.42,0.26l5.01,-0.38l1.18,-1.19l0.12,-3.52l-1.84,-1.84l-0.96,-2.38l-0.09,-1.96l-1.19,-1.7l0.07,-0.49l0.56,-0.53l2.99,-1.33l3.6,-2.94l3.41,-5.27l0.78,-0.63l2.29,-0.5l4.57,-2.86l1.44,-2.18l-0.02,-1.02l-0.61,-0.82l0.11,-0.81l0.64,-0.86l2.37,-0.76l1.69,-2.66l2.13,-1.79l0.74,-1.12l-0.14,-1.73l0.68,-1.13l0.08,-1.03l-1.31,-3.89l0.24,-0.96l3.33,-2.09l1.05,-0.26l1.04,-0.9l1.16,1.27l2.28,-0.55l2.62,0.91l4.01,2.82l1.3,1.87l1.92,0.91l1.31,1.01l0.85,0.2l1.52,0.03l3.21,-0.98l3.94,-1.84l2.17,0.72l1.98,-0.89l4.23,-0.19l0.61,1.12l0.9,5.86l3.12,4.71l1.22,2.47l-0.85,4.57l-0.66,1.67l0.13,0.4l1.71,1.0l1.23,3.98l0.91,0.71l0.84,0.16l0.43,-0.29l0.49,-1.7l5.01,-1.51l1.0,0.08l1.12,1.11l0.62,0.08l1.36,-0.63l3.34,0.11l1.98,-0.21l1.25,-0.59l3.91,-4.25l0.61,-2.45l2.43,-3.52l0.63,-2.44l7.94,-7.42l2.16,2.45l0.35,2.78l0.85,0.31l2.55,-0.29l2.18,2.96l0.8,2.12l1.02,0.73l1.85,0.66l-1.03,0.82l-0.2,0.72l0.58,1.36l0.58,3.63l1.38,2.09l2.07,1.57l0.62,-0.19l0.85,-2.42l1.89,-2.92l0.36,-2.65l1.38,-4.58l0.47,-0.79l1.76,-1.22l0.98,-3.72l0.74,-0.4l1.59,1.82l1.21,-0.05l1.38,-0.79l3.42,-3.06l2.41,-0.28l3.68,-2.03l1.93,-0.24l0.36,0.35l0.79,2.6l3.5,5.9l1.31,1.29l1.23,0.42l1.33,-0.63l3.37,-0.36l1.07,-0.91l0.56,-2.31l0.89,-0.32l1.69,0.16l0.84,0.67l-0.48,1.5l0.3,0.89l4.51,0.95l4.08,3.38l2.89,1.45l1.57,0.41l-0.03,2.85l1.28,3.55l0.51,3.07l0.72,2.11l0.66,1.17l1.36,0.88l0.8,1.32l2.21,6.94l1.77,1.52l1.64,2.61l-0.83,2.07l0.49,3.26l0.42,0.65l0.92,0.24l4.17,-0.59l1.08,1.04l4.93,2.42l1.51,0.3l1.25,-0.53l1.13,-1.2l2.93,-1.99l2.23,-0.62l0.91,0.24l-0.18,1.71l0.35,0.84l1.54,0.89l0.98,-0.13l1.05,-0.78l0.46,-2.02l0.63,-0.49l3.18,-0.06l1.68,0.67l2.19,2.02l1.73,0.78l2.57,0.61l0.57,1.69l1.23,1.54l0.1,1.58l1.9,1.83l0.18,2.73l-0.33,2.14l0.45,2.79l0.62,0.47l1.22,-0.4l1.2,0.21l4.51,5.33l-0.09,0.53l-1.09,-0.09l-0.55,0.26l-0.07,2.45l-1.05,1.25l-1.67,1.19l-2.8,1.16l-5.36,3.57l-0.17,0.92l0.54,4.15l-1.95,4.79l0.01,1.9l-0.43,1.1l-4.47,-1.25l-2.03,0.57l-1.49,1.04l-1.68,2.12l-1.37,2.92l0.45,1.06l1.58,0.26l-0.52,1.33l-2.32,0.57l-0.61,1.38l-1.54,0.44l-3.46,2.46l-2.02,0.48l-1.44,1.06l-1.17,0.31l-1.37,3.01l-2.27,-0.34l-2.81,-1.63l-0.8,-1.47l0.85,-1.47l-0.07,-0.6l-1.92,-1.42l-3.63,-0.32l-3.46,0.39l-2.41,0.83l-13.11,9.5l-7.26,2.86l-2.05,1.55l-4.61,5.42l-1.04,0.41l-2.52,-1.04l-4.05,0.36l-4.36,1.63l-4.56,3.3l-1.44,1.8l-2.59,2.25l-1.5,2.23l-2.41,2.09l-2.8,6.09l-1.93,6.26l0.17,0.94l0.79,0.58l0.07,1.22l-0.96,8.67l0.17,4.88l-0.34,3.08l0.26,4.02l0.72,5.72l1.02,1.05l4.27,1.24l0.37,0.52l-0.12,1.76l1.98,2.59l0.3,1.34l-2.29,0.36l-3.05,-0.09l-1.83,-0.7l-1.61,-2.13l-2.87,-0.28l-1.16,0.57l-2.17,-0.57l-1.94,1.35l-3.1,0.24l-3.76,2.65l-4.83,-0.08l-1.22,0.53l-2.65,1.86l-0.57,0.72l0.5,1.8l0.52,0.57l-2.26,-0.17l-2.79,-0.85l-1.31,0.01l-0.83,0.63l-0.48,1.11l-0.67,0.22l-2.94,-1.07l-1.08,-0.76l-1.67,-2.44l-2.78,-0.4l-6.16,-2.91l-1.99,0.2l-3.71,1.04l-3.02,-0.29l-1.14,0.54l-1.01,1.86l-2.45,1.95l-0.62,0.36l-2.45,0.36l-0.71,-0.1l-1.77,-1.24l-1.32,-3.75l-1.07,-1.5l-3.53,-0.74l-4.73,-2.58l-4.65,-0.78l-0.31,-0.6l0.18,-1.54l0.62,-1.4l0.95,-0.83l1.41,-0.12l0.28,-0.64l-0.97,-1.12l-2.03,-0.75l0.42,-1.19l-0.34,-0.53l-6.9,-0.61l-4.12,-2.32l-2.77,0.67l-1.86,-0.09l-0.4,0.28l-0.88,2.73l-0.91,0.33l-0.66,-0.77l-1.07,-2.58l-2.23,-3.15l-1.29,-0.49l0.21,-0.83l-0.29,-0.49l-1.53,-0.36l-7.55,-0.02l-2.58,0.53l-0.9,-0.58l-1.64,-3.14l-1.32,-1.06l-1.36,-0.37l-5.14,-0.31l-1.98,-1.15l-1.93,0.82l-1.92,-1.37l-4.63,-2.09l-2.28,-0.07l-4.25,-1.04l-1.85,0.13l-1.67,0.77l-0.3,1.2l0.12,1.49l-0.82,1.99l0.47,0.91l-0.83,1.28l0.24,0.56l0.76,0.24l0.61,0.69l0.36,0.97l-0.05,1.0l-0.39,0.58l-10.29,0.14l-1.18,-0.37l-3.41,0.59l-1.07,-0.19l-0.39,-1.05l-2.06,-1.35l-1.26,0.44l-2.75,3.06l-0.55,0.07l-2.26,-3.03l-4.31,-1.22l-1.14,0.13l-1.23,0.71l-3.75,0.5l-4.68,1.54l-1.99,0.16l-2.26,-0.8l-1.02,-1.0l-1.36,-0.45l-0.27,-0.97l-1.39,-1.16l-0.66,-0.99l-0.32,-1.14l0.13,-1.21l-0.54,-0.42l-2.76,0.82l-1.36,-0.14l-0.79,-1.35l-3.39,-1.83ZM436.08,668.09l0.96,-0.22l0.2,-0.59l-1.32,-2.33l-0.63,-0.79l-0.47,-0.12l-0.9,0.48l-0.67,1.33l0.07,1.16l0.97,0.84l1.79,0.25ZM309.0,601.52l-0.8,-0.16l-0.41,-0.99l0.4,-2.01l0.84,-0.4l0.79,0.28l0.31,0.77l-0.59,2.03l-0.54,0.47ZM307.75,607.5l-0.9,-0.16l-0.53,-1.24l0.07,-0.86l1.14,-1.14l1.03,0.52l0.48,1.4l-0.86,1.31l-0.43,0.15Z", "name": "Languedoc-Roussillon-Midi-Pyr\u00e9n\u00e9es"}, "FR-X6": {"path": "M415.84,70.92l0.57,0.0l0.4,-0.4l0.0,-0.59l-0.39,-0.4l-2.26,-0.33l-0.8,-0.54l-1.15,-2.03l-2.54,-1.04l-0.42,-0.47l0.59,-5.43l1.08,-1.83l2.08,0.36l0.47,-0.39l-0.18,-0.83l-3.2,-2.12l1.12,-3.04l0.33,-6.83l1.74,-1.1l0.1,-0.58l-1.61,-2.08l-0.3,-1.01l-0.26,-3.74l-0.64,-3.46l0.26,-2.94l2.0,-4.41l0.34,-1.54l-1.52,-6.24l1.26,-0.84l3.05,-0.71l2.82,-2.96l1.8,-1.42l11.58,-4.22l1.24,0.13l2.03,-1.0l9.83,-1.04l11.16,-3.16l4.16,0.3l5.0,-1.09l3.16,-1.35l0.71,1.42l0.6,3.51l0.63,1.64l3.14,3.26l0.16,1.34l-1.61,1.47l-0.46,0.87l1.16,3.76l-0.52,1.99l1.22,0.87l1.03,1.61l4.25,0.56l0.92,1.61l2.23,1.78l1.46,2.61l1.24,0.91l5.27,2.03l1.32,0.13l0.92,-0.63l1.82,-2.63l2.37,-1.63l7.93,-2.08l1.41,0.36l0.92,0.73l2.64,4.35l0.72,0.59l1.48,0.27l0.38,0.58l0.61,1.69l-0.8,1.48l0.51,2.38l1.6,4.47l0.09,2.5l0.42,1.17l1.9,1.66l3.82,1.44l1.7,-0.16l2.68,-0.82l2.06,-1.38l0.72,-0.05l0.89,0.38l-0.6,1.19l0.12,0.56l0.76,0.47l4.13,0.08l2.56,0.75l1.12,0.9l0.91,1.39l1.05,10.05l2.3,1.94l1.29,-0.74l1.51,-2.44l1.09,-0.6l2.59,-0.16l2.45,0.25l3.52,1.61l1.52,-0.04l3.85,-1.36l1.15,-0.1l1.03,0.41l1.98,1.84l2.53,1.56l1.84,3.13l1.53,0.38l0.59,-0.74l-0.06,-0.72l0.39,-0.14l1.83,1.02l0.14,0.88l-2.69,2.35l-1.79,5.34l-0.17,1.55l1.11,0.78l1.48,-0.45l0.84,0.08l1.74,4.81l-3.86,2.3l-0.55,0.59l-0.59,1.62l0.62,1.5l0.04,0.67l-0.45,0.3l0.22,0.46l3.43,1.56l1.54,0.17l0.08,2.76l1.79,2.83l0.07,1.8l-1.86,3.26l-0.49,2.91l0.31,0.92l0.9,0.74l0.32,1.65l-0.7,1.08l-3.14,2.62l-1.8,1.1l-1.44,2.0l-1.21,0.65l-2.01,0.15l-1.16,1.07l0.06,0.89l1.48,3.98l-0.45,1.42l0.37,2.06l-1.37,1.28l-0.45,0.95l0.11,0.84l1.61,2.67l-1.45,0.55l-0.75,1.27l0.2,0.5l0.68,0.33l0.4,0.93l-0.07,1.86l-0.63,1.32l-0.79,0.0l-1.69,-0.75l-2.03,0.68l-2.88,-1.37l-2.38,-0.13l-1.45,0.91l-0.06,1.82l-4.11,0.52l-5.16,1.25l-3.39,1.78l-0.06,0.98l0.85,1.81l0.67,5.15l0.51,0.49l1.41,0.26l2.36,2.15l-0.2,0.54l-0.95,0.74l-1.13,0.21l-3.3,-0.33l-1.51,0.77l-0.45,1.51l0.35,1.68l-0.15,1.05l-0.98,1.37l-1.47,1.05l-0.1,1.7l0.34,0.61l1.16,0.44l3.19,-0.1l0.6,0.44l-0.02,0.44l-2.28,1.99l-0.73,1.1l-1.76,1.18l-1.05,2.05l-3.83,3.24l-2.02,3.25l-2.26,0.11l-3.0,-1.67l-0.43,-0.63l-0.47,-2.75l-0.76,-0.9l-0.81,-0.01l-0.99,0.47l-0.51,-0.14l-8.73,-6.6l-0.51,-1.18l0.6,-1.73l-0.09,-0.9l-0.97,-1.91l-1.19,-1.29l-3.91,-1.13l-2.27,1.08l-1.86,0.05l-1.84,1.04l-1.74,-0.79l-5.87,1.07l-4.04,-0.91l-0.77,0.16l-1.31,1.18l-0.79,0.15l-2.03,-1.11l-1.93,0.48l-1.66,-1.34l-1.69,-0.39l-2.67,0.99l-1.08,-0.76l-1.25,-1.57l-0.8,-0.23l-1.37,0.39l-10.67,-5.04l-1.18,-0.26l-1.21,0.29l-2.01,1.11l-1.55,-0.09l-3.94,-1.5l-2.4,-0.25l-1.47,-0.68l-1.66,-1.28l-0.74,-0.17l-1.89,0.7l-3.44,2.04l-4.01,0.26l-2.09,0.47l-5.65,-1.4l-2.68,-0.11l-1.23,-0.58l-0.69,-1.87l-0.93,-0.84l-0.28,-0.86l-0.07,-0.43l0.7,-0.94l0.92,-0.28l0.45,0.19l1.28,1.38l0.8,0.35l0.78,-0.08l0.66,-0.55l-0.41,-1.62l-1.62,-3.45l-1.74,-5.57l-0.28,-3.2l1.24,-3.11l1.48,-1.09l0.51,-1.75l-0.83,-1.22l-2.26,0.41l-0.42,-0.32l-0.42,-3.51l-0.53,-1.76l-0.18,-3.85l-0.71,-1.37l2.2,-1.38l0.74,-1.07l0.26,-1.01l-0.65,-0.89l-2.49,0.44l-0.22,-0.26l2.37,-3.65l2.12,-1.58l0.03,-1.31l-2.65,-4.66l-0.9,-3.09l-1.01,-1.33l-10.08,-8.97l-8.3,-4.93l5.17,-5.05l1.41,-4.28l1.94,-2.2l1.85,-0.21l5.97,2.46l0.78,-0.01l0.75,-0.53l0.14,-0.85l-1.42,-0.64Z", "name": "Nord-Pas-de-Calais-Picardie"}, "FR-X7": {"path": "M458.84,445.76l1.95,-0.35l3.03,1.58l1.95,0.27l1.37,-0.72l0.73,-1.76l1.22,-4.68l-1.19,-1.15l-0.26,-4.14l-1.44,-1.87l-0.36,-0.94l0.86,-2.7l1.65,-0.68l0.84,-1.03l0.29,-4.28l-0.66,-1.43l-1.92,-2.11l-0.96,-0.86l-1.78,-0.64l-0.67,-1.98l-1.72,-2.4l0.64,-0.91l3.14,-2.29l2.41,-0.16l2.48,-2.58l1.63,-3.33l1.7,-1.93l0.19,-3.74l-0.21,-0.9l-1.86,-3.26l-0.2,-1.44l0.37,-3.62l-2.17,-3.8l-1.06,-3.16l-3.18,-4.2l-1.27,-0.36l-1.13,0.66l-0.76,-1.76l-0.96,-0.91l-3.48,-0.95l-0.4,-0.39l-0.94,-2.84l-1.76,-1.56l-1.91,-2.38l2.1,-3.42l1.46,-0.64l1.48,-1.8l3.52,-1.57l7.94,-0.8l5.53,-1.6l0.14,-1.5l-1.97,-2.78l-0.03,-0.72l0.53,-1.33l-1.03,-1.64l0.3,-0.35l2.27,-0.17l0.41,-0.79l-0.09,-1.21l1.63,-0.12l4.07,-3.3l0.82,0.8l2.29,0.76l0.71,-0.21l1.28,-1.11l2.21,0.26l1.77,-2.17l3.83,-2.18l2.59,-0.73l2.86,0.18l0.27,1.52l1.25,1.52l3.22,1.84l2.72,0.19l2.74,2.56l0.75,0.33l1.03,0.0l2.4,-1.05l1.66,-0.1l1.61,0.25l2.97,1.11l1.41,-0.68l1.06,-1.27l1.82,0.28l1.29,2.19l0.04,1.49l0.5,0.54l0.6,0.12l1.71,-0.33l4.06,-2.15l0.58,-1.97l1.34,-0.87l0.39,-1.8l1.21,0.2l1.4,2.25l0.6,1.79l2.46,2.19l1.56,2.63l0.94,0.54l0.28,1.5l-0.41,3.04l0.32,0.67l4.03,2.05l1.74,0.08l2.67,2.22l3.67,0.71l2.19,1.13l0.73,2.83l-0.64,3.08l0.52,1.3l-0.02,1.46l0.82,1.68l-1.19,1.0l-5.58,2.73l-0.18,0.55l0.71,1.8l-0.19,2.42l0.26,0.72l1.01,0.63l2.01,0.62l2.09,1.49l0.85,0.18l1.12,-0.06l4.06,-1.25l3.56,0.89l3.56,-0.61l4.78,1.24l1.97,-0.03l1.79,-0.63l1.67,-1.19l1.89,-2.21l1.71,-5.14l5.06,1.43l1.25,-0.12l1.94,-0.93l1.54,1.64l0.93,0.37l1.05,-0.11l0.65,-0.45l0.57,-1.97l0.55,-0.28l1.79,0.68l0.27,1.99l1.62,1.08l0.05,2.15l1.07,2.48l1.36,0.98l3.59,0.4l0.43,-0.51l-0.22,-1.1l1.28,-4.71l3.52,-6.66l0.17,-1.98l1.46,-2.52l0.86,-4.24l1.47,-3.8l1.04,-0.4l5.0,1.43l1.47,-0.15l3.7,-1.24l1.74,-0.16l1.25,0.39l2.16,1.97l1.64,0.85l4.11,0.99l0.02,2.41l0.61,1.09l1.69,0.58l0.98,0.74l0.72,2.39l1.08,1.11l2.12,0.65l0.91,1.09l1.74,0.37l-0.08,3.17l0.9,0.94l1.79,0.47l2.93,-1.5l1.13,-1.19l1.49,-0.38l0.56,-1.17l2.38,-2.03l2.83,2.21l0.53,0.68l0.4,1.81l0.7,0.56l7.33,0.5l2.1,-0.36l4.85,-3.81l1.29,-1.9l5.29,-5.36l2.71,1.45l1.49,1.81l0.06,0.64l-2.15,4.4l-0.57,4.01l-1.43,0.34l-1.32,-0.11l-3.71,1.58l-1.69,1.08l-0.18,1.23l1.62,2.13l-1.39,2.81l0.08,0.46l0.46,0.07l1.43,-0.74l2.69,-0.56l2.68,-0.09l2.31,0.77l2.11,-0.97l3.09,-3.14l3.94,-2.28l1.58,-1.45l-0.19,-2.13l-0.68,-0.47l-1.16,0.35l-0.4,-0.18l-0.89,-2.03l4.08,-5.7l3.32,0.16l1.15,1.46l0.93,0.33l0.77,-0.37l0.82,-1.0l4.35,-1.83l1.15,-1.48l11.95,-1.05l5.16,0.78l0.08,0.91l-0.38,1.12l-1.55,1.58l-0.38,1.39l1.23,1.83l2.14,1.97l1.23,1.83l-2.07,3.51l-1.08,2.81l-0.54,2.86l0.83,1.53l4.77,0.91l0.69,0.58l-1.17,1.69l0.25,3.27l1.29,0.49l1.46,-0.85l1.18,0.45l4.32,4.17l1.84,4.74l-1.27,1.06l-1.66,3.08l-1.14,0.85l-2.54,0.9l-1.94,0.05l-0.44,1.16l-1.45,-0.68l-2.83,1.09l-0.84,1.25l-0.34,1.34l0.12,2.79l0.7,3.2l1.31,1.78l1.75,1.17l2.44,0.57l2.19,1.73l2.63,0.83l0.29,0.87l-0.98,2.48l1.03,2.1l0.33,3.09l0.49,1.22l5.55,3.27l1.58,2.67l3.72,1.73l-0.54,1.71l-1.23,1.93l-2.31,2.53l0.24,2.49l0.65,1.55l0.0,0.91l-1.6,1.21l-1.13,1.81l-0.21,0.18l-0.84,-0.84l-0.72,-0.2l-4.4,1.41l-2.78,3.01l-2.44,0.32l-0.53,0.84l0.54,1.12l-1.68,0.71l-4.37,-1.72l-2.37,-0.29l-2.05,1.2l-2.07,0.11l-2.41,1.23l-1.98,0.23l-2.21,1.2l-2.35,0.04l-0.74,0.29l-1.11,2.4l-0.81,0.88l-1.02,0.26l-3.86,-1.22l-0.85,-1.84l-1.43,-1.0l-4.05,-0.41l-1.45,-0.84l-0.51,0.04l-1.75,2.08l-1.05,4.98l0.01,1.51l0.51,1.03l1.24,0.41l3.69,-0.43l0.93,0.46l0.56,3.36l1.75,2.0l0.32,1.03l-0.27,3.17l-0.32,0.52l-3.52,-0.79l-3.8,0.98l-1.71,-0.15l-1.86,0.35l-2.28,-0.4l-3.91,2.12l-0.99,0.14l-1.72,-0.45l-1.28,0.35l-2.59,1.78l-0.33,0.77l0.25,1.63l-0.69,0.66l-2.32,0.66l-3.68,0.21l-1.02,0.38l-2.07,2.9l0.34,1.1l0.66,0.51l0.02,0.62l-1.63,1.7l-4.53,1.21l-3.09,-0.29l-1.24,0.51l-0.43,1.87l-2.53,3.81l-0.14,0.94l0.84,1.52l2.0,1.4l0.28,0.97l-0.33,0.33l-3.19,1.81l-4.16,-1.25l-1.98,-0.25l-1.44,0.11l-0.53,0.46l-0.21,0.76l0.41,1.66l1.65,1.36l0.07,0.45l-0.58,0.32l-2.77,-0.46l-0.85,0.34l-0.32,0.69l0.24,0.71l1.21,1.35l0.6,1.94l2.45,1.8l2.52,0.64l1.16,0.61l4.22,0.12l-0.41,1.18l0.12,0.71l1.56,1.75l2.09,1.43l-0.14,4.66l-0.66,1.16l0.12,1.87l-0.76,-0.17l-0.63,-1.31l-0.81,-0.55l-1.74,-0.29l-0.98,0.29l-3.26,3.17l-1.73,0.96l-2.39,-0.41l-3.82,-2.56l-1.16,-2.83l-0.73,-0.49l-2.0,-0.2l-4.34,-1.4l-2.82,0.21l-2.6,-0.66l-0.67,-0.77l-0.1,-1.5l0.78,-2.2l-0.29,-0.88l-0.62,-0.28l-2.47,1.42l-4.48,-0.52l-4.27,1.08l-3.5,1.47l-2.77,0.41l-2.98,1.5l-1.01,-0.71l-1.77,-4.15l-1.43,-1.32l-1.13,-0.54l-3.59,-0.26l-1.8,0.22l-0.35,0.4l0.02,2.88l-3.85,-1.27l-2.16,-2.01l-1.82,-0.73l-3.57,0.03l-1.2,0.93l-0.35,1.86l-1.3,0.63l-0.49,-0.12l-0.72,-0.87l0.27,-1.36l-0.32,-0.86l-0.67,-0.41l-0.94,-0.05l-2.47,0.7l-4.94,3.64l-1.17,-0.23l-4.88,-2.4l-1.24,-1.11l-4.78,0.52l-0.65,-3.42l0.81,-1.28l-0.0,-0.88l-1.75,-2.86l-1.71,-1.42l-2.22,-6.93l-0.89,-1.48l-1.35,-0.86l-0.56,-0.98l-0.68,-1.98l-0.52,-3.12l-1.27,-3.49l0.08,-2.96l-0.31,-0.43l-1.46,-0.31l-3.14,-1.55l-4.13,-3.41l-4.32,-0.85l0.51,-1.34l-0.08,-0.66l-1.42,-1.21l-1.93,-0.18l-1.33,0.48l-0.47,0.69l-0.31,1.9l-0.69,0.54l-3.23,0.32l-1.34,0.6l-0.62,-0.3l-1.06,-1.05l-3.45,-5.83l-0.79,-2.59l-0.84,-0.77l-2.38,0.25l-3.69,2.03l-1.69,-0.0l-0.85,0.32l-4.65,3.8l-0.58,0.1l-1.2,-1.57l-0.6,-0.32l-1.46,0.59l-0.57,0.8l-0.62,3.19l-1.64,1.03l-0.58,0.99l-1.42,4.71l-0.35,2.6l-1.83,2.78l-0.72,2.01l-1.6,-1.21l-1.15,-1.79l-0.53,-3.47l-0.56,-1.36l1.14,-0.77l-0.12,-1.16l-2.88,-1.38l-0.69,-1.95l-2.44,-3.26l-0.78,-0.22l-2.44,0.35l0.05,-1.49l-0.34,-1.19l-1.91,-2.42l-1.03,-0.42l-8.44,7.7l-0.74,2.6l-2.44,3.55l-0.58,2.41l-3.68,3.99l-0.93,0.45l-1.89,0.2l-3.45,-0.1l-1.45,0.62l-1.19,-1.14l-1.48,-0.11l-5.33,1.64l-0.67,1.8l-0.21,-0.03l-0.95,-1.01l-0.89,-3.39l-1.7,-1.05l1.55,-5.49l-0.1,-0.85l-1.32,-2.73l-3.07,-4.61l-0.85,-5.71l-0.6,-1.16l0.94,-0.4l2.23,-0.24l1.11,-0.74l0.08,-1.24l-1.43,-2.43l-0.11,-0.76l3.2,-2.58l2.85,-5.59l0.22,-1.14l-1.07,-2.31l0.11,-1.37l2.59,-1.98l0.51,-1.87l3.08,-1.33l2.04,-2.9l1.09,-0.69l1.42,-3.08l-0.14,-1.07l-0.95,-0.99ZM619.51,528.65l1.54,-0.89l1.27,-2.18l1.36,-1.26l0.07,-0.97l-0.77,-1.43l-2.49,-2.28l-2.0,-0.54l-1.01,0.36l-0.89,0.76l-3.05,4.55l-0.55,2.1l0.5,1.33l0.7,0.43l5.31,0.04Z", "name": "Auvergne-Rh\u00f4ne-Alpes"}, "FR-X3": {"path": "M215.0,114.74l0.19,0.68l0.67,0.4l0.84,-0.17l1.4,-0.93l2.84,0.51l1.15,-0.47l3.33,-3.1l2.74,-0.72l1.03,-0.08l7.56,1.27l2.02,5.19l-1.5,1.01l-0.48,1.56l-1.27,0.04l-1.1,0.67l-0.37,2.34l1.83,2.99l0.97,2.27l4.63,4.95l0.53,1.09l0.2,1.62l-0.78,2.24l0.19,0.81l0.44,0.3l1.7,-0.5l1.69,1.31l1.46,-0.25l0.31,-0.93l-0.57,-0.85l0.33,-0.79l0.91,-0.85l0.91,-0.36l7.94,0.35l7.3,2.35l10.46,0.54l4.16,0.79l2.31,-1.02l4.08,1.27l4.12,0.0l2.91,1.4l3.03,0.6l5.69,2.93l0.43,-0.04l1.48,-1.14l9.72,-1.95l2.93,-1.18l1.7,-1.25l1.45,-0.37l2.06,-2.35l3.94,-2.42l15.26,-2.94l2.9,-1.27l2.26,-2.14l0.01,-0.51l-0.5,-0.1l-4.29,2.28l-4.93,0.6l-4.99,-0.57l-4.35,-1.26l-3.7,-0.45l-1.09,-0.56l-0.79,-1.28l-0.73,-0.42l0.09,-1.68l3.15,-4.92l2.42,-6.93l3.76,-2.82l9.31,-3.67l0.73,-0.8l7.56,-3.82l2.18,-0.58l2.37,-1.37l4.68,-1.45l5.32,0.04l25.22,-6.87l1.56,-1.02l1.59,-0.51l2.41,-2.26l6.63,-4.5l8.53,5.05l10.02,8.92l0.82,1.05l0.92,3.13l2.44,4.07l0.21,1.13l-2.03,1.49l-2.12,2.89l-0.43,1.1l0.07,0.84l0.35,0.34l2.53,-0.43l0.4,0.34l-0.82,1.37l-1.94,1.09l-0.47,0.89l0.74,1.37l0.19,3.89l0.54,1.79l0.44,3.63l0.8,0.82l2.01,-0.46l0.65,0.53l-0.4,1.31l-1.05,0.52l-0.44,0.58l-1.34,3.49l0.3,3.4l1.76,5.64l1.98,4.52l-0.91,-0.06l-0.81,-0.99l-1.21,-0.74l-0.85,0.03l-0.88,0.48l-0.92,1.37l0.38,1.6l-1.77,3.08l-2.9,8.4l-2.17,1.01l-7.75,1.57l-0.75,0.55l-0.17,1.05l0.69,1.52l-0.24,2.26l0.57,0.74l1.67,0.42l0.21,2.28l-2.16,1.15l-0.44,0.6l-0.21,0.94l0.52,1.61l-0.14,1.15l-0.79,0.76l-2.47,1.15l-1.51,1.17l-1.09,1.61l-0.67,1.82l-0.53,0.5l-4.94,2.31l-1.82,-0.62l-3.38,0.04l-2.24,-1.49l-1.25,-0.15l-0.48,0.48l-0.06,1.17l-0.31,0.42l-3.47,0.34l-2.42,2.37l-1.92,0.04l-5.91,1.45l-1.53,0.88l-2.02,1.86l0.26,3.84l0.66,1.39l1.17,1.83l2.61,1.67l3.16,2.99l0.37,0.83l-0.39,1.76l0.17,1.43l1.87,2.7l-1.12,1.47l-0.63,1.57l-1.95,1.77l-5.36,2.18l-2.34,0.41l-0.55,0.48l-0.55,1.79l1.37,1.79l-0.05,2.88l1.83,3.34l-0.85,1.08l-2.22,0.71l-2.49,-1.01l-2.47,-2.98l-1.91,-1.6l-3.5,0.2l-5.14,-1.24l-0.71,-0.36l-0.06,-1.74l-0.56,-0.94l-3.09,-0.02l-2.45,-1.44l-1.01,-1.58l-0.49,-1.75l0.16,-5.51l-0.43,-0.91l-1.29,-0.88l-2.69,-1.04l-1.85,-0.2l-5.49,1.1l-3.21,1.67l-1.67,2.12l-2.54,0.86l-0.71,1.68l-2.54,-0.46l-3.9,0.33l-0.22,-3.58l-0.39,-0.79l-0.77,-0.81l-1.89,-0.44l-3.02,-2.76l-0.65,-1.6l0.49,-1.46l-0.32,-0.81l-0.74,-0.61l-3.82,-1.27l-0.99,0.47l-0.03,1.62l-0.34,0.71l-1.15,0.57l-1.4,-0.02l-1.63,0.51l-1.2,1.45l-0.68,0.11l-4.11,-0.95l-3.98,-0.16l-1.2,0.44l-2.14,1.99l-1.05,0.56l-5.18,1.05l-1.18,-1.31l-0.96,-0.14l-3.52,0.92l-0.5,1.08l-0.81,0.48l-1.68,-1.15l-1.86,0.23l-1.74,-2.89l-1.1,-0.85l-2.45,0.29l-2.37,-0.8l-3.57,1.1l-2.0,0.01l-3.01,-0.43l-2.56,-1.35l-7.85,-1.68l-1.41,0.23l-2.22,2.41l-1.99,0.71l-2.78,1.91l-1.65,0.53l-2.09,-0.17l-2.56,-1.81l-2.2,-3.13l-0.99,-2.96l-2.54,-5.28l4.98,0.51l6.48,-1.24l2.14,0.69l0.44,-0.14l0.0,-0.47l-1.13,-1.5l-1.5,-0.64l-2.34,-0.18l-0.46,0.44l-0.7,-1.34l-2.87,-0.97l-0.88,-2.35l-2.17,-1.65l-0.47,-1.69l-0.34,-4.2l-0.74,-1.24l-1.4,-0.44l1.45,-1.15l0.44,-1.03l0.49,-3.71l0.92,-0.11l0.34,-0.9l0.0,-1.07l-1.2,-0.91l0.97,-5.38l0.51,-0.24l1.33,0.54l0.55,-0.37l-0.25,-0.86l-1.33,-0.51l-1.38,0.0l-1.32,0.6l-0.59,1.22l-0.56,-1.29l0.43,-3.35l-0.31,-0.52l-0.67,-0.12l-0.18,-0.32l0.72,-2.62l1.48,-1.06l0.02,-0.68l-0.75,-0.5l-0.56,0.09l-0.66,-2.09l-0.35,-2.8l0.3,-0.47l0.85,-0.05l2.15,0.54l0.5,-0.39l0.0,-0.49l-0.3,-0.39l-2.96,-0.99l-1.32,-0.03l-0.67,1.15l-0.44,-0.44l-0.98,-2.84l-0.71,-0.78l0.42,-0.24l0.06,-0.7l-2.38,-1.94l-0.24,-0.63l0.68,0.0l0.4,-0.4l-0.83,-2.29l-0.82,-0.22l-0.71,1.2l-3.02,-2.14l0.32,-0.66l-0.42,-0.61l-2.16,0.52l-0.37,-0.34l-0.17,-5.35l-1.15,-1.92l-0.39,-1.49l-2.39,-2.79l0.28,-0.81l1.64,-1.27l0.51,-0.95l0.27,-4.14l-1.3,-2.8l-0.63,-0.67l-4.47,-1.27l0.4,-1.53l-0.1,-1.22l0.13,-0.3l1.34,-0.15l2.46,1.07l1.75,-0.2l0.58,0.33l0.27,1.01l0.5,0.53l6.68,0.92l5.27,1.29Z", "name": "Normandy"}, "FR-R": {"path": "M159.66,300.12l3.14,1.13l1.62,-0.32l1.05,-1.07l0.07,-0.47l-0.56,-1.04l-2.21,-2.2l-0.46,-0.11l-0.82,0.44l-0.77,-1.59l-2.05,-1.2l4.12,-2.13l1.57,0.33l-0.09,0.55l0.45,0.48l0.58,0.01l2.59,-1.53l0.4,-0.74l-0.31,-0.53l-2.95,-0.38l0.35,-0.69l-0.16,-0.53l-0.77,-0.68l0.87,-0.21l2.37,0.81l3.21,-0.37l0.81,-0.45l0.88,-1.05l1.08,-1.85l0.93,-0.29l1.83,0.9l2.88,-0.91l0.01,0.96l0.41,0.72l0.57,0.29l0.85,-0.14l0.92,-1.04l0.66,-1.38l2.05,-1.24l0.71,-1.09l0.79,-3.53l0.74,-1.69l0.12,-1.43l-0.24,-0.62l0.35,-1.02l2.91,-1.59l2.21,-0.38l2.07,0.05l5.67,-2.08l1.82,0.61l1.95,0.17l7.4,-2.04l2.87,-1.7l1.19,-1.55l1.73,-1.21l6.3,-2.55l1.6,-1.15l1.76,-0.13l1.82,0.29l1.17,1.44l1.85,0.86l6.14,0.89l0.45,-0.31l0.47,-2.16l1.14,-1.77l2.89,-9.08l0.53,-0.9l1.85,-1.62l4.09,-0.58l1.25,-0.49l0.67,-0.66l-0.07,-4.84l-1.76,-2.27l-0.71,-4.7l0.64,-0.86l0.08,-0.99l-0.82,-4.82l-1.09,-2.36l1.95,-4.01l-0.03,-2.5l-0.74,-5.78l0.2,-5.45l4.76,0.37l3.56,-1.09l2.14,0.78l2.29,-0.33l0.82,0.61l1.89,3.04l0.78,0.28l1.22,-0.43l1.2,1.0l0.96,0.2l0.9,-0.36l0.74,-1.34l3.16,-0.79l0.67,0.27l0.43,0.85l0.82,0.32l5.49,-1.07l1.32,-0.69l2.1,-1.96l0.92,-0.33l3.75,0.17l4.09,0.95l1.06,-0.14l1.34,-1.53l1.33,-0.41l1.5,0.0l1.45,-0.72l0.62,-1.2l-0.17,-1.13l0.3,-0.28l3.98,1.51l0.19,0.36l-0.49,1.44l0.18,1.02l0.67,1.13l3.2,2.92l2.03,0.53l0.36,0.46l0.28,0.51l0.24,3.91l0.44,0.37l3.61,-0.38l3.37,0.46l0.6,-0.45l0.44,-1.41l2.46,-0.81l2.23,-2.53l2.43,-1.15l5.27,-1.07l1.66,0.18l3.55,1.66l0.35,1.07l-0.32,2.68l0.3,3.32l0.87,2.03l1.63,1.4l1.84,0.94l2.82,-0.07l0.41,2.48l1.13,0.63l5.3,1.27l2.3,0.07l0.97,-0.32l1.62,1.39l1.93,2.55l2.19,1.39l1.53,0.31l1.53,-0.36l2.97,1.92l3.09,0.38l0.63,0.45l-0.41,0.52l-4.24,2.22l-0.26,1.28l1.21,1.18l-2.67,0.5l-0.56,0.47l-0.11,1.1l0.84,1.7l0.5,0.5l1.48,0.31l-0.65,3.22l0.42,1.92l-0.15,0.49l-3.53,3.05l-0.56,1.67l-0.05,3.43l-1.51,4.18l-1.33,1.2l-1.74,0.98l-3.44,1.47l-1.46,1.3l-0.79,1.81l0.64,1.76l-0.14,0.45l-2.17,0.43l-3.23,1.43l-2.52,0.52l-1.04,0.58l-0.9,0.99l-1.95,-0.85l-1.07,0.0l-0.78,0.53l-0.36,0.7l0.4,2.57l-8.48,-1.68l-0.46,0.23l-1.7,4.29l0.46,3.58l-1.91,3.72l-1.03,3.13l0.2,2.82l-4.39,6.08l-1.47,5.38l-0.85,5.56l-2.84,-0.47l-1.46,0.44l-2.01,2.22l-0.96,2.4l-2.38,0.81l-1.53,2.05l-1.11,-0.31l-0.83,-2.02l-0.97,-0.76l-0.79,-0.2l-1.88,0.35l-3.55,-0.08l-6.53,0.7l-5.83,1.67l-2.05,-0.73l-2.08,0.46l-1.21,0.8l-0.31,0.62l0.12,0.77l0.69,0.97l-0.13,0.38l-4.92,2.46l-3.85,0.33l-5.2,-0.68l-4.23,0.56l-4.16,-1.9l-0.94,-0.18l-0.84,0.51l-0.29,1.01l0.17,0.47l2.2,1.37l2.18,3.03l1.67,0.89l0.69,0.84l0.32,2.18l1.04,2.25l0.66,0.7l3.5,1.91l1.73,1.57l0.1,0.48l-0.78,1.59l0.1,0.98l3.83,6.52l0.57,3.11l1.44,2.21l0.79,4.91l-1.22,1.54l-0.25,0.91l0.97,4.27l-0.6,2.86l0.25,1.23l0.83,0.72l1.04,-0.23l1.97,1.38l0.71,1.02l-0.74,0.77l-1.26,-0.1l-1.22,0.34l-2.25,2.0l-2.76,0.16l-3.62,1.68l-4.06,-2.24l-1.7,-0.27l-6.67,1.09l-0.44,-0.27l0.9,-1.15l0.15,-0.7l-0.48,-0.9l-0.77,-0.24l-6.96,1.54l-1.16,0.7l-1.12,1.42l-0.75,-0.72l-2.95,-0.11l-2.27,1.19l-0.16,2.27l-1.02,-0.24l-2.4,-2.73l-1.56,-0.33l-4.08,-2.32l-3.43,0.87l-1.24,-0.06l-0.97,-3.42l-1.1,-1.51l-1.55,-0.91l-6.9,-0.76l0.18,-1.01l-1.0,-0.83l-3.36,-0.58l-1.97,-1.51l-2.47,-0.81l-1.08,-2.24l-0.58,-0.83l-0.45,-0.15l-0.28,0.39l0.27,2.62l-0.46,-0.56l-1.32,-5.47l0.25,-1.25l-0.25,-0.45l-0.84,-0.31l-1.14,-2.75l-2.53,-2.31l-0.74,-2.09l-0.93,-0.62l-1.98,-0.4l-2.24,-3.59l-3.47,-3.13l-4.07,-2.07l-0.39,-1.05l-0.3,-2.69l0.47,-2.19l1.48,-0.93l0.17,-0.46l-0.28,-0.85l3.12,-1.98l2.48,-5.26l1.17,-1.01l-0.16,-1.45l-0.69,-1.37l-1.7,-1.83l-3.77,-1.84l-7.12,-1.1l-1.45,-0.69l1.47,-1.03l1.91,-0.24l0.8,-0.55l0.42,-2.94l-0.66,-1.35l-0.09,-1.84l1.02,-2.31l1.32,-0.5l5.58,-0.5l1.1,-0.5l1.01,0.86l3.14,0.71l1.04,-0.02l0.24,-0.51l0.65,0.2l-0.47,0.4l0.19,0.91l2.51,1.59l2.62,0.48l1.97,1.62l1.54,0.57l3.31,0.09l0.4,-0.29l-0.19,-0.46l-1.37,-0.76l-2.42,-0.42l-2.85,-2.6l-4.32,-2.68l-2.78,-0.52l-1.38,-0.93l-2.33,-0.59l-8.74,0.54l-2.06,1.13l-1.5,1.94l-1.74,0.44l-1.54,1.27l-1.02,0.36l-2.05,-0.36l-2.32,-2.13l-1.22,-0.61l-2.17,0.0l-0.78,0.6l-0.33,0.97l-1.39,-0.03l-4.87,-2.21ZM161.53,297.57l0.02,0.14l-0.01,0.02l-0.01,-0.17ZM179.99,325.41l2.68,1.47l0.24,2.88l-0.47,-0.24l-2.28,-3.55l-1.56,-0.93l-1.75,0.59l-0.73,-0.9l-0.93,-2.89l-0.56,-0.68l2.62,-0.12l2.02,0.71l-0.04,2.78l0.75,0.89ZM174.33,345.92l-4.93,-0.12l-0.49,-0.98l0.24,-0.36l1.99,0.02l3.18,1.44Z", "name": "Pays de la Loire"}, "FR-GP": {"path": "M44.87,452.95l2.26,-1.9l1.31,-0.53l0.63,0.19l-2.39,1.57l-1.81,0.66ZM16.07,454.56l0.99,-3.24l0.45,-0.54l1.25,-0.4l0.33,-0.98l-0.15,-1.3l-1.63,-0.93l-0.61,-3.02l1.65,-2.23l2.47,-1.44l2.87,2.33l0.67,1.2l0.24,4.01l1.84,2.68l1.77,1.09l0.71,-0.33l2.34,0.36l6.21,4.32l1.16,0.34l-0.55,0.18l-3.31,-0.89l-10.9,2.46l-3.09,1.07l-2.38,-0.65l-1.77,-1.2l-0.78,-1.34l0.24,-1.57ZM29.3,476.81l1.29,-2.59l1.05,-1.18l1.16,-0.64l1.27,0.28l1.08,0.91l0.68,1.72l0.94,0.93l0.13,1.34l-1.12,1.36l-1.47,0.73l-1.99,0.48l-1.58,-0.25l-1.44,-3.1ZM6.63,475.24l-0.25,-0.65l0.35,-0.72l-0.44,-0.85l-1.95,-1.6l-0.87,-1.97l-0.57,-0.45l-0.69,-2.06l-0.05,-4.94l-0.89,-2.29l0.25,-1.07l-1.09,-2.09l0.05,-3.66l1.5,-2.21l0.77,-0.65l0.89,-0.23l1.5,1.13l3.84,1.09l2.02,1.06l0.67,0.81l-0.4,0.18l0.01,0.74l0.87,0.07l0.72,0.74l0.65,-0.12l0.7,-0.95l0.47,-0.08l0.26,0.32l-0.35,1.27l0.32,1.1l-1.34,0.42l-0.48,0.89l0.13,2.94l0.8,2.29l0.41,3.37l-0.49,3.19l-1.83,2.19l-2.76,1.62l-2.74,1.16ZM13.68,480.6l0.09,-0.17l0.15,-0.01l-0.11,0.1l-0.13,0.09ZM10.63,481.22l0.17,0.27l-0.27,0.31l-0.19,-0.11l0.3,-0.46Z", "name": "Guadeloupe"}, "FR-U": {"path": "M574.87,589.37l0.92,-0.18l1.37,-1.04l2.17,-0.54l3.45,-2.45l1.63,-0.49l0.58,-1.36l1.97,-0.33l0.5,-0.38l0.72,-1.53l-0.09,-0.84l-1.94,-0.6l1.3,-2.75l1.5,-1.9l1.28,-0.92l2.03,-0.52l3.72,1.32l1.03,-0.3l0.65,-1.54l-0.04,-1.78l1.98,-4.92l-0.49,-4.74l5.08,-3.33l2.76,-1.14l1.8,-1.27l1.33,-1.63l0.03,-2.18l1.18,0.07l0.47,-0.43l0.15,-1.04l-0.37,-0.8l-4.15,-4.77l-1.27,-0.56l-1.83,0.31l-0.37,-2.47l0.33,-2.07l-0.19,-2.88l-0.5,-0.93l-1.47,-1.11l-0.09,-1.56l-1.29,-1.64l-0.54,-1.66l-0.02,-2.97l3.17,-0.14l2.43,0.62l1.57,1.66l1.7,4.01l1.31,0.65l1.08,-0.2l2.24,-1.34l2.77,-0.41l3.47,-1.46l4.07,-1.05l3.48,0.59l1.1,-0.08l2.31,-1.4l0.14,0.38l-0.71,1.56l-0.03,1.7l0.31,1.17l0.77,0.67l2.96,0.79l2.82,-0.21l4.22,1.37l1.95,0.19l0.66,0.8l0.94,2.37l4.51,2.92l2.5,0.22l1.96,-1.1l2.53,-2.56l1.32,-0.74l1.8,0.54l0.64,1.31l0.52,0.4l0.87,0.13l0.61,-0.33l0.31,-0.68l-0.23,-1.68l0.64,-1.04l0.14,-4.96l-0.53,-0.87l-1.46,-0.73l-1.74,-1.84l0.47,-1.33l-0.29,-0.71l-1.33,-0.38l-2.81,0.16l-3.98,-1.31l-2.2,-1.6l-0.54,-1.85l-1.31,-1.69l0.85,-0.19l2.33,0.46l0.67,-0.16l0.58,-0.67l-0.17,-1.21l-1.58,-1.26l-0.32,-1.32l0.2,-0.43l2.95,0.15l4.34,1.28l0.95,-0.24l2.8,-1.78l0.61,-0.81l-0.12,-1.02l-0.85,-1.05l-1.56,-0.99l-0.6,-0.98l0.34,-1.04l1.84,-2.49l0.74,-2.54l1.28,-0.26l2.49,0.32l4.9,-1.34l1.9,-1.99l0.0,-1.34l-0.94,-1.02l1.78,-2.52l4.33,-0.43l2.59,-0.77l1.06,-1.17l-0.23,-1.81l1.51,-1.3l1.93,-0.81l1.61,0.45l1.3,-0.18l3.71,-2.08l2.21,0.4l1.91,-0.35l1.7,0.15l3.74,-0.98l2.72,0.76l1.33,-0.13l0.6,-0.99l0.28,-3.45l-0.47,-1.39l-1.68,-1.88l-0.61,-3.45l-1.52,-0.82l-3.62,0.45l-0.92,-0.3l-0.21,-0.57l1.03,-6.05l1.31,-1.51l1.5,0.78l3.9,0.36l1.08,0.74l1.0,1.99l4.33,1.4l1.59,-0.46l0.96,-1.07l0.85,-2.13l2.87,-0.24l2.8,-1.28l-0.62,0.73l-0.02,0.5l2.03,2.18l0.17,1.69l0.79,1.24l0.95,0.66l2.05,0.17l1.38,0.88l0.35,1.96l-0.12,4.19l1.23,1.91l2.07,1.56l4.22,2.16l1.41,0.3l3.93,-0.45l2.94,1.06l1.2,1.26l-0.4,2.57l1.25,4.13l2.03,3.55l-3.87,-0.56l-1.7,0.81l-1.13,1.22l-0.53,1.69l0.58,1.56l-0.69,0.5l-2.06,3.14l-3.05,2.06l-0.83,1.38l0.25,2.53l1.44,2.18l2.96,2.54l-1.46,0.71l-0.59,0.79l-0.73,3.01l0.24,1.21l1.67,1.86l1.59,2.88l2.27,1.81l0.83,2.02l0.66,0.7l1.16,0.41l2.19,-0.38l0.67,0.17l6.04,2.48l6.53,3.55l3.45,0.91l0.74,1.13l1.35,0.71l2.64,0.05l10.62,-2.7l1.73,-0.12l2.57,-1.44l1.28,0.21l-0.66,2.31l0.83,1.51l1.3,1.15l0.87,1.66l-0.1,1.05l-2.22,2.08l-1.33,3.37l-4.45,3.63l-1.3,1.81l-2.63,2.56l-1.02,1.63l0.26,2.23l1.1,3.29l-1.5,0.69l0.05,1.26l-0.73,0.15l-1.26,1.13l-0.56,-0.67l-1.18,-0.6l-1.65,0.49l-1.0,1.05l-0.43,1.64l-1.32,1.04l-0.71,1.53l-2.86,-0.54l-1.41,0.13l-2.01,1.42l0.04,0.96l-1.09,1.0l-0.54,-0.78l-1.17,-0.24l-2.01,0.57l-0.96,1.09l-0.66,2.71l0.71,3.75l-0.22,0.12l-0.57,-0.92l-0.68,-0.42l-1.15,-0.07l-1.27,0.64l-1.75,1.52l-0.56,-0.6l-2.19,-0.07l-1.21,0.15l-0.99,0.57l-1.1,1.01l-0.38,1.3l0.79,0.89l-1.67,1.9l-0.35,1.79l-1.2,0.73l-0.35,0.74l-0.79,0.06l-0.5,-0.8l-0.56,-0.07l-0.45,0.47l0.04,1.32l-0.33,0.1l-1.7,-0.24l-2.06,0.51l-0.64,-0.66l-0.97,-0.32l-1.96,1.17l-0.06,2.1l-0.82,1.01l-0.09,1.11l-2.6,0.48l-0.8,1.76l-2.13,1.86l-1.64,0.87l-0.58,1.35l0.27,0.52l1.27,0.34l3.83,-0.86l1.01,0.19l-0.51,1.21l-1.15,0.87l-0.18,1.36l0.76,1.4l-2.03,1.21l-1.78,0.59l-1.1,-1.03l-3.19,0.39l-1.04,1.7l-1.07,0.59l-1.62,-0.35l-3.45,0.27l-1.36,0.42l-1.49,0.84l-0.91,1.44l0.37,1.87l-1.34,0.0l-1.03,-0.98l-2.86,-1.09l-1.75,-0.16l-3.76,0.92l-1.97,1.27l-0.72,1.7l-0.05,1.91l0.91,0.63l-3.08,0.19l0.74,-0.26l0.95,-0.93l-0.33,-1.65l-1.19,-0.96l-5.05,0.37l-0.84,-1.54l-3.51,-0.25l-1.12,-0.63l0.3,-1.17l-0.36,-0.56l-2.16,0.24l-1.78,0.81l-0.23,0.38l1.15,0.68l1.01,1.7l1.93,0.76l-3.17,0.02l-0.89,0.28l-1.2,1.7l-1.96,-0.54l-1.85,-1.41l1.88,-1.3l0.07,-0.54l-0.41,-0.57l-1.72,-0.7l-0.74,-1.26l-2.11,-0.09l-2.49,-1.0l-0.47,-1.46l-1.08,-1.07l-2.53,-0.57l-1.03,0.91l-0.53,0.98l-2.05,-0.53l-1.98,-2.66l-0.96,-0.55l-1.48,0.47l-6.6,-0.49l-1.53,0.31l-1.02,-0.43l0.34,-1.68l0.94,-1.98l-0.08,-0.43l-0.62,-0.64l-1.13,-3.95l-2.92,-1.81l-3.73,1.99l-4.48,-0.09l-2.35,0.26l-3.62,-0.16l-1.71,-0.5l-1.11,-1.51l-0.44,-1.53l1.11,-1.82l1.71,-0.86l5.36,0.0l1.8,-0.48l2.62,-2.32l0.89,-2.0l-0.21,-1.77l-0.6,-0.3l-3.34,1.54l-1.34,-0.21l-1.17,-1.2l-0.81,-2.2l-1.53,-0.53l-1.81,-0.01l-1.47,-1.47l-0.5,0.08l-0.49,0.59l-0.81,2.82l0.42,1.59l2.15,1.63l0.63,1.61l-0.57,1.4l-1.25,0.8l-1.63,0.16l-4.46,-1.86l-2.21,1.1l-1.58,0.35l-0.71,0.61l-0.46,1.44l0.98,2.54l0.42,0.33l0.81,-0.05l-1.29,0.81l-1.31,-2.62l-2.66,-1.4l-1.98,-1.65l-0.86,-1.8l-0.02,-5.7l-1.08,-2.53l-0.85,-1.1l-1.19,-0.67l-0.59,0.35l0.0,0.46l2.09,3.43l0.0,5.28l0.86,2.64l4.89,4.15l-0.11,1.02l-9.05,-0.1l-4.41,-0.9l-1.34,-0.7l-0.03,-0.85l1.11,-1.09l0.22,-1.41l-0.65,-1.13l-1.58,-1.03l-2.76,-0.96l-6.31,0.6l-10.72,-0.78l1.08,-2.45ZM708.84,625.18l0.07,-0.56l1.07,-0.35l0.67,-0.95l0.94,-0.47l-1.31,1.7l-1.44,0.64ZM692.6,626.12l1.76,-0.0l0.97,-0.54l0.94,-0.02l0.43,-0.62l0.24,0.26l0.04,0.66l-2.62,1.0l-1.76,-0.73ZM619.44,527.85l-4.96,0.01l-0.37,-0.2l-0.33,-0.9l0.44,-1.6l2.99,-4.46l1.31,-0.8l1.47,0.37l2.37,2.16l0.58,1.0l-0.0,0.54l-1.24,1.1l-1.26,2.17l-1.01,0.62Z", "name": "Provence-Alpes-C\u00f4te-d'Azur"}, "FR-J": {"path": "M472.43,160.67l2.91,-0.96l1.28,0.25l1.79,1.42l0.99,0.02l1.16,-0.44l1.27,0.83l1.39,0.28l2.4,-1.49l4.01,0.91l5.72,-1.07l1.57,0.83l2.35,-1.11l1.82,-0.03l2.03,-1.04l3.48,0.96l0.98,1.05l0.87,1.67l-0.52,2.79l0.73,1.41l8.88,6.73l0.87,0.26l1.23,-0.5l0.48,0.14l0.61,2.97l0.7,1.03l3.28,1.81l2.3,-0.04l-0.11,1.1l-0.51,0.67l-2.55,0.08l-0.94,0.42l-0.16,0.75l1.09,1.07l-1.54,1.52l-0.27,1.55l0.54,0.66l1.24,-0.02l1.67,1.83l0.7,2.85l-0.5,1.9l0.28,1.65l0.9,0.56l2.22,-0.3l1.49,1.83l-2.45,1.85l-1.06,1.42l-0.92,2.34l-0.48,0.4l-2.35,0.42l-0.63,0.51l-0.08,0.73l0.94,1.41l-1.79,1.84l-0.05,0.79l0.65,1.23l-0.56,2.16l0.16,0.69l-2.61,2.88l-2.24,-0.49l-6.28,0.91l-4.68,-0.48l-2.32,0.9l-3.26,0.0l-0.8,0.78l-1.14,3.17l0.16,2.32l0.83,1.42l-1.58,2.76l-3.77,2.32l-0.95,3.37l-5.9,1.83l-1.36,-0.07l0.46,-1.24l-0.4,-0.63l-0.91,-0.28l-2.7,0.45l-1.78,1.66l-1.87,0.81l-8.32,-0.58l-3.25,0.65l-1.6,-0.18l-0.78,-0.59l0.23,-0.94l0.72,-0.24l1.65,0.3l0.91,-0.65l0.07,-0.64l-0.51,-1.19l0.65,-0.98l0.11,-1.36l-1.39,-1.54l-3.36,-1.92l-1.3,-3.89l-1.33,-1.28l-2.27,0.3l-2.83,-1.36l-0.86,0.16l-1.36,1.23l-1.4,0.35l-0.76,-0.38l-0.47,-1.03l-0.68,-0.61l-0.85,-0.52l-0.84,-0.03l-0.66,0.4l-1.38,1.92l-1.99,0.8l-8.7,1.71l-0.72,-0.42l-0.0,-0.42l1.65,-1.87l0.02,-0.74l-1.91,-1.77l-0.62,-2.84l-0.52,-0.9l-1.62,-1.5l-0.35,-2.59l-0.81,-0.45l-2.11,0.38l-4.37,-1.8l-0.92,-0.66l-1.17,-1.71l0.01,-2.65l-0.44,-1.51l-0.7,-0.87l-2.25,-1.46l-0.79,-2.45l-3.87,-2.43l-1.32,-1.5l-0.63,-1.5l-1.41,-0.91l0.0,-0.93l1.6,-2.06l0.18,-1.09l-0.28,-0.53l-1.69,-0.85l-0.41,-0.65l-0.06,-1.41l0.53,-2.41l-0.31,-1.9l-1.49,-1.94l-3.28,-5.55l-0.4,-2.82l-2.11,-0.85l0.25,-2.13l-0.72,-1.71l0.41,-0.57l7.7,-1.56l2.46,-1.13l3.15,-8.76l1.58,-2.72l0.43,0.35l0.8,2.03l0.97,0.67l3.39,0.3l5.65,1.41l6.54,-0.78l5.01,-2.69l3.66,2.09l2.47,0.26l3.97,1.5l1.83,0.1l3.18,-1.39l11.5,5.26l0.91,0.03l0.87,-0.37l1.31,1.53l1.38,0.99Z", "name": "\u00cele-de-France"}, "FR-X2": {"path": "M204.81,598.27l0.63,0.4l0.52,-0.08l1.38,-0.84l5.64,-0.92l1.36,-1.72l2.57,-1.46l2.17,-3.85l5.18,-6.42l0.5,-2.5l1.48,-4.27l2.51,-12.23l1.46,-4.3l2.15,-9.72l3.95,-21.25l1.68,-10.56l0.42,-4.7l-0.62,-3.76l1.59,-2.05l1.5,-4.83l1.04,-1.14l1.32,-0.04l3.84,0.81l2.32,-0.34l1.43,-1.11l0.02,-1.15l-1.01,-1.12l0.28,-0.48l-0.7,-1.19l-4.63,-3.83l-1.79,-0.89l-0.92,0.36l-3.56,5.22l-0.53,2.34l3.34,-33.36l2.55,-12.04l1.09,-15.98l3.2,-5.75l1.08,-0.08l-0.29,2.7l1.44,2.01l4.22,2.89l3.51,1.53l7.32,7.13l1.65,2.15l1.65,6.53l1.42,7.99l2.13,4.49l2.13,2.43l2.35,2.0l2.44,1.49l0.52,1.41l-0.17,1.23l0.35,3.2l0.54,1.31l0.97,0.73l0.45,-0.0l0.16,-0.42l-0.81,-4.06l0.53,-2.18l-0.8,-1.78l-1.38,-1.23l1.66,0.3l2.68,1.57l0.51,-0.03l0.06,-0.51l-1.72,-2.53l-5.08,-1.82l-2.05,-1.4l-1.05,-1.86l-0.76,-2.33l-2.32,-14.51l-0.81,-2.98l-2.08,-4.88l-2.62,-4.07l-2.95,-2.95l-8.61,-5.47l-0.48,-1.77l-2.47,-1.03l-3.22,-2.81l-4.04,-1.44l-2.76,-2.39l-2.34,0.33l-0.67,-0.24l0.99,-5.73l3.71,-0.99l0.98,0.04l3.79,3.91l1.46,1.04l4.4,1.81l0.48,-0.15l-0.05,-0.5l-1.38,-1.36l-5.52,-3.9l-1.51,-1.58l-1.36,-4.22l2.03,-1.93l0.85,-0.46l1.1,-0.0l0.61,-0.43l0.19,-1.83l-0.98,-1.77l0.89,-0.77l-0.02,-0.68l-0.92,-0.54l-1.09,-2.34l1.55,0.32l1.08,-0.72l0.78,-1.42l-0.03,-0.9l-1.1,-1.07l-1.08,-0.37l-0.71,-3.23l-1.9,-1.16l0.55,-0.47l-0.04,-0.64l-1.96,-1.09l0.07,-0.62l-0.38,-0.5l-2.85,-0.2l-0.39,-0.36l0.27,-0.97l1.24,-1.31l-0.29,-1.3l0.52,-0.79l4.3,-2.4l0.5,-0.98l-0.01,-0.83l-0.87,-2.37l1.16,-1.51l0.86,-0.51l6.69,-1.49l0.44,0.35l-0.06,0.32l-1.0,1.63l0.99,0.9l1.99,-0.09l4.86,-0.96l1.46,0.21l4.42,2.32l3.79,-1.72l2.86,-0.19l2.34,-2.04l2.77,-0.34l0.86,-1.23l-0.25,-0.98l-0.76,-0.79l-2.09,-1.47l-1.48,-0.05l-0.2,-0.92l0.59,-2.98l-0.97,-4.09l1.47,-2.55l-0.66,-4.53l-1.62,-2.86l-0.6,-3.2l-3.78,-6.41l-0.05,-0.67l0.8,-2.07l-0.78,-1.19l-1.4,-1.1l-3.53,-1.93l-0.48,-0.54l-0.88,-1.94l-0.43,-2.43l-0.91,-1.07l-1.53,-0.78l-2.22,-3.06l-2.05,-1.29l0.13,-0.56l1.47,0.22l2.4,1.36l1.33,0.38l4.31,-0.56l5.13,0.68l3.99,-0.34l1.28,-0.41l1.37,-1.03l2.73,-1.24l0.34,-1.13l-0.81,-1.37l1.0,-0.85l1.73,-0.42l2.13,0.74l5.97,-1.69l6.45,-0.7l5.88,-0.12l0.56,0.42l1.0,2.22l1.71,0.55l0.45,-0.18l1.48,-2.08l2.51,-0.92l1.0,-2.45l1.89,-2.08l0.9,-0.26l2.97,0.49l1.47,2.34l0.64,0.37l0.98,-0.07l1.14,-0.55l0.13,1.56l0.57,0.55l2.68,-0.26l0.19,0.85l-0.35,1.75l0.25,0.7l0.48,0.33l1.15,0.07l2.51,-0.61l1.03,1.31l1.83,0.26l-0.34,5.65l0.36,1.29l1.37,1.15l1.25,0.23l2.61,-0.25l2.91,0.46l1.93,-1.14l1.04,-0.24l5.49,-0.33l0.79,-0.44l0.19,-0.71l-0.77,-1.6l-0.1,-0.95l5.63,2.78l1.17,1.63l1.3,3.39l7.23,9.31l2.64,1.85l1.67,1.93l0.84,2.19l-0.61,2.63l0.01,1.65l0.57,2.3l0.55,0.83l2.33,2.03l3.29,1.27l0.85,2.04l0.88,0.33l3.79,0.0l1.03,0.35l0.88,0.74l0.67,1.18l-0.49,1.9l0.16,1.06l0.74,0.86l1.78,1.01l0.54,0.76l-1.01,2.95l0.15,0.46l1.04,0.72l2.54,0.83l3.65,-0.3l1.07,-0.33l1.0,-1.33l1.05,-0.24l1.47,1.8l3.13,1.64l2.0,-1.13l3.93,-3.54l0.68,-0.15l2.17,0.53l2.02,-0.06l0.36,1.35l0.7,0.52l1.01,0.19l1.02,-0.2l1.87,-1.33l3.01,0.41l0.9,-0.2l1.03,-0.98l0.25,-2.59l0.71,-0.54l0.76,0.32l1.92,1.93l0.96,0.16l2.07,-1.12l1.08,-0.24l5.41,0.14l2.45,0.84l3.5,0.01l2.22,0.72l3.19,-0.59l5.83,0.29l2.01,2.5l1.67,1.44l0.91,2.78l0.59,0.64l0.74,0.43l2.88,0.63l0.67,0.63l1.08,2.07l0.77,0.02l0.86,-0.61l1.19,0.76l2.45,3.45l1.01,3.07l2.11,3.67l-0.39,3.35l0.22,1.7l2.06,4.03l-0.15,3.39l-1.62,1.78l-1.56,3.24l-2.36,2.46l-1.64,-0.11l-1.29,0.59l-1.33,1.29l-1.33,0.73l-0.92,1.43l0.25,0.94l1.58,1.96l0.73,2.07l0.5,0.47l1.47,0.35l0.84,0.76l1.85,2.04l0.51,1.09l-0.24,3.82l-0.55,0.67l-1.67,0.69l-0.46,0.57l-0.73,2.83l0.51,1.34l1.35,1.7l0.25,4.1l1.11,1.0l-1.14,4.37l-0.87,1.76l-2.16,-0.09l-3.12,-1.6l-1.18,-0.01l-1.52,0.59l-0.21,0.82l0.95,0.93l0.15,0.84l-1.24,2.6l-1.06,0.64l-1.96,2.84l-3.1,1.35l-0.66,2.04l-2.65,2.08l-0.16,1.81l0.96,1.75l-0.04,1.26l-2.76,5.43l-2.8,2.03l-0.55,0.87l-0.03,0.76l1.6,2.88l-0.03,0.57l-4.22,1.17l-4.52,0.2l-1.94,0.88l-1.38,-0.66l-0.83,-0.05l-4.06,1.88l-3.12,0.95l-1.23,-0.04l-3.73,-1.98l-1.24,-1.82l-2.13,-1.68l-3.07,-1.73l-1.98,-0.53l-2.06,0.56l-0.77,-1.17l-0.7,-0.11l-1.4,1.03l-1.03,0.25l-3.64,2.43l-0.29,1.46l1.3,3.78l-0.03,0.72l-0.72,1.24l-0.01,2.07l-2.54,2.21l-1.66,2.62l-2.23,0.65l-0.87,1.1l-0.29,0.94l0.72,1.44l-0.03,0.57l-1.25,1.78l-4.31,2.66l-2.39,0.56l-0.98,0.82l-3.33,5.17l-3.48,2.85l-2.93,1.29l-0.86,0.82l-0.26,0.78l1.31,2.09l0.06,1.85l0.83,2.15l2.02,2.25l-0.18,3.0l-0.59,0.58l-4.81,0.36l-1.13,-0.2l-1.77,-0.98l-0.77,0.08l-0.72,0.57l-0.27,2.47l-0.74,1.55l-0.06,0.88l0.85,1.37l2.45,0.96l0.36,0.51l-2.45,5.11l-2.16,1.72l0.1,0.72l1.14,0.8l-0.03,0.97l-1.25,0.21l-2.22,-0.7l-1.4,0.32l-0.49,0.48l-0.46,1.35l-2.26,1.33l-1.04,2.84l-3.57,1.87l-1.05,0.18l-2.71,-2.15l-1.51,-0.47l-5.15,1.53l-2.7,-0.26l-1.21,0.8l-4.35,1.91l-1.3,0.2l-3.0,1.53l-4.83,-1.62l-0.8,0.09l-1.07,0.84l-1.29,1.99l-1.07,0.78l-0.59,0.02l-0.58,-0.74l-0.76,-0.21l-2.4,0.81l-0.9,1.56l0.26,2.33l-0.72,0.77l-2.48,-0.06l-1.1,-0.37l-0.37,-0.73l0.78,-1.23l-0.06,-1.08l-0.91,-0.88l-1.22,-0.35l-1.33,0.44l-1.59,1.05l-1.8,1.72l-1.77,0.13l-2.38,-0.3l-2.89,1.82l-0.59,0.71l-0.12,1.04l1.31,1.37l1.05,2.2l-1.49,3.87l-0.05,2.41l0.82,1.36l-1.48,3.09l-1.21,0.16l-0.79,0.5l-0.11,0.65l0.54,1.41l-1.07,1.59l-0.25,1.25l0.98,0.76l0.47,1.52l0.52,0.63l2.33,-0.0l5.59,1.04l1.06,0.66l0.67,1.47l1.56,1.16l2.16,4.89l-0.31,0.26l-1.15,-0.07l-0.56,0.49l0.03,2.28l0.52,0.69l0.76,0.17l1.43,-1.29l0.75,0.02l-0.11,3.16l1.06,3.23l-0.48,0.48l-1.62,0.52l-0.96,1.06l-0.61,2.64l0.6,2.08l-0.4,0.75l-1.97,1.89l-1.1,3.23l-1.55,0.13l-1.74,2.98l-2.28,1.29l-0.98,1.23l0.15,3.83l-0.4,0.28l-2.98,0.33l-2.69,2.77l-0.17,0.81l0.39,1.61l-0.03,1.69l-1.67,2.29l-0.35,1.23l0.55,3.77l-0.88,-0.07l-0.78,1.18l-0.86,-0.35l-4.31,2.79l-1.69,0.12l-3.22,-1.34l-1.7,-0.07l-0.41,0.38l-0.09,1.49l-1.58,0.74l-0.62,-1.55l-1.55,-0.25l-0.08,-0.92l-2.44,-2.91l-3.24,-2.0l-1.85,-0.11l-0.47,-0.41l-0.25,-0.49l0.25,-1.36l-1.4,-2.86l-1.82,-0.51l-4.68,0.75l-4.79,-0.35l-2.24,-0.65l-2.95,-2.22l-3.08,-0.49l-2.02,-1.09l-2.32,0.15l-4.04,-2.44l-3.6,-0.59l-1.04,-0.56l-0.92,-0.94l-0.21,-0.75l0.38,-0.75l1.21,-0.93l-0.15,-0.71l-1.6,-0.32l-1.53,0.56l-1.05,1.06l-0.53,1.66l-0.16,1.94l-0.41,0.78l-0.81,0.24l-3.0,-0.46l-1.26,-0.64l-1.02,-1.03l-0.63,-1.32l3.7,-3.88l0.95,-2.41l0.66,-2.96l-0.35,-3.1l-2.03,-1.72l-2.04,0.3l-2.51,-1.16l-3.21,-0.56l-1.3,0.75l-0.75,1.77l-1.7,0.25l-0.8,-0.46l-0.49,-1.68l0.17,-0.84l-0.85,-0.76l-1.84,-0.58l-3.76,1.0l-0.43,-1.87l-0.91,-1.03l-1.52,-0.66l0.07,-2.41ZM309.11,602.32l1.15,-0.9l0.67,-2.47l-0.61,-1.33l-1.64,-0.44l-1.19,0.8l-0.49,2.49l0.63,1.45l1.49,0.4ZM307.84,608.3l0.94,-0.4l1.08,-1.94l-0.6,-1.74l-1.63,-0.95l-0.46,0.07l-1.45,1.45l-0.2,1.38l0.25,1.08l0.52,0.68l1.55,0.37ZM235.41,400.43l1.09,0.41l1.35,-0.28l0.64,0.57l0.15,2.37l0.68,0.73l-0.16,1.32l2.38,1.46l0.35,0.53l-0.41,3.62l-0.61,1.91l-0.67,0.91l-0.62,-0.25l-0.84,-2.53l-1.25,-2.19l-3.59,-3.54l-1.32,-0.83l-2.14,-2.59l0.33,-1.57l-1.72,-3.8l1.1,0.13l1.99,0.91l3.27,2.7ZM219.58,381.29l3.07,-0.67l0.94,0.18l0.51,0.48l-0.09,0.29l-1.95,-0.5l-0.35,0.62l1.41,1.8l1.75,-0.06l1.83,-0.69l0.25,0.77l1.02,0.43l6.19,0.88l1.32,0.74l1.5,1.94l-0.96,0.35l-3.3,-0.75l-5.87,-3.31l-3.6,0.51l-0.76,-0.27l-2.9,-2.73Z", "name": "Aquitaine-Limousin-Poitou-Charentes"}, "FR-RE": {"path": "M761.79,701.36l1.08,0.18l1.12,-0.39l1.21,0.39l2.77,-0.03l2.17,1.11l3.51,0.8l0.97,0.55l2.4,2.39l0.54,1.06l0.32,2.77l0.52,1.06l1.9,1.97l0.91,3.81l1.85,0.93l1.43,2.47l3.94,1.89l0.84,0.82l0.32,1.39l-1.08,2.72l-1.31,6.18l-0.27,4.98l-0.6,1.25l-1.42,0.53l-4.24,0.16l-2.56,1.32l-1.76,0.26l-1.74,-0.1l-1.22,-0.48l-1.58,0.46l-1.92,0.08l-3.62,-0.55l-3.79,-2.43l-5.72,-1.87l-1.23,-0.75l-1.75,-2.11l-3.42,-0.26l-3.52,-4.42l-0.9,-1.55l-0.63,-4.75l-3.33,-4.36l-1.6,-3.39l0.0,-1.42l0.43,-1.55l0.75,-1.19l2.55,-1.05l1.15,-1.41l0.43,-1.65l-0.32,-1.19l0.55,-0.82l-0.29,-0.86l0.61,-0.27l2.76,-0.09l5.6,-3.4l4.93,-0.0l2.25,0.81Z", "name": "R\u00e9union"}}, "height": 749.2159980728637, "projection": {"type": "mill", "centralMeridian": 0.0}, "width": 900.0});
\ No newline at end of file
--- /dev/null
+<?php
+/**
+ * Customize the output of menus for Foundation top bar
+ */
+if ( ! class_exists( 'Glm_Theme_Top_Bar_Walker' ) ) :
+class Glm_Theme_Top_Bar_Walker extends Walker_Nav_Menu {
+ function display_element( $element, &$children_elements, $max_depth, $depth = 0, $args, &$output ) {
+ static $mainLevelCounter;
+ if ($depth == 0) {
+ ++$mainLevelCounter;
+ }
+ $element->has_children = ! empty( $children_elements[ $element->ID ] );
+ $element->classes[] = ( $element->current || $element->current_item_ancestor ) ? 'active' : '';
+ $element->classes[] = ( $element->has_children && 1 !== $max_depth ) ? 'has-dropdown' : '';
+ $element->classes[] = ( $element->post_parent == 0 && $mainLevelCounter < 5 ) ? '' : 'drop-left parent';
+ parent::display_element( $element, $children_elements, $max_depth, $depth, $args, $output );
+ }
+
+ function start_el( &$output, $object, $depth = 0, $args = array(), $current_object_id = 0 ) {
+ $item_html = '';
+ parent::start_el( $item_html, $object, $depth, $args );
+
+ // Insert style to display page's thumbnail $depth == 0 && has_post_thumbnail((int)$object->object_id
+ $item_style = '';
+// echo "<pre>", print_r($object), "</pre>";
+ /*if ( $depth !== 0 && has_post_thumbnail( (int)$object->object_id ) ) {
+ $thumbnail = wp_get_attachment_image_src( get_post_thumbnail_id( (int)$object->object_id ), 'large' );
+
+ $item_style .= "<style>
+ #menu-item-".$object->ID.":before {
+ display: inline-block;
+ width: 200px;
+ height: 100px;
+ content: ' ';
+ background-image: url('".$thumbnail[0]."');
+ background-size: cover;
+ </style>";
+
+ } else if( $depth !== 0 && $object->type == "taxonomy") {
+
+ //$thumbnail = z_taxonomy_image_url( (int)$object->object_id );
+
+ $item_style .= "<style>
+ #menu-item-".$object->ID.":before {
+ display: inline-block;
+ width: 200px;
+ height: 100px;
+ content: ' ';
+ background-image: url('".$thumbnail."');
+ background-size: cover;
+ </style>";
+
+ } else if( $depth !== 0 && ! has_post_thumbnail( (int)$object->object_id ) ){
+
+ $thumbnail = get_template_directory_uri() . '/assets/header-images-2.jpg';
+ $item_style .= "<style>
+ #menu-item-".$object->ID.":before {
+ display: inline-block;
+ width: 200px;
+ height: 100px;
+ content: ' ';
+ background-image: url('".$thumbnail."');
+ background-size: cover;
+ </style>";
+ }
+ */
+ //$output .= ( 0 == $depth ) ? '<li class="divider"></li>' : '';
+ $classes = empty( $object->classes ) ? array() : (array) $object->classes;
+ if ( in_array( 'label', $classes ) ) {
+ //$output .= '<li class="divider"></li>';
+ $item_html = preg_replace( '/<a[^>]*>(.*)<\/a>/iU', '<label>$1</label>', $item_html );
+ }
+ if ( in_array( 'divider', $classes ) ) {
+ $item_html = preg_replace( '/<a[^>]*>( .* )<\/a>/iU', '', $item_html );
+ }
+ if ($item_style)
+ $output .= $item_style;
+ $output .= $item_html;
+ }
+
+ function start_lvl( &$output, $depth = 0, $args = array() ) {
+ $output .= "\n<ul class=\"sub-menu dropdown\">\n";
+ }
+}
+endif;
+if ( ! class_exists( 'Glm_Theme_Off_Canvas_Walker' ) ) :
+class Glm_Theme_Off_Canvas_Walker extends Walker_Nav_Menu {
+ function display_element( $element, &$children_elements, $max_depth, $depth = 0, $args, &$output ) {
+ $element->has_children = ! empty( $children_elements[ $element->ID ] );
+ $element->classes[] = ( $element->current || $element->current_item_ancestor ) ? 'active' : '';
+ $element->classes[] = ( $element->has_children && 1 !== $max_depth ) ? 'page_item_has_children' : '';
+ $element->classes[] = 'page_item';
+
+ parent::display_element( $element, $children_elements, $max_depth, $depth, $args, $output );
+ }
+
+ function start_el( &$output, $object, $depth = 0, $args = array(), $current_object_id = 0 ) {
+ $item_html = '';
+ parent::start_el( $item_html, $object, $depth, $args );
+
+ $classes = empty( $object->classes ) ? array() : (array) $object->classes;
+
+ if ( in_array( 'label', $classes ) ) {
+ $item_html = preg_replace( '/<a[^>]*>(.*)<\/a>/iU', '<label>$1</label>', $item_html );
+ }
+
+ $output .= $item_html;
+ }
+
+ function start_lvl( &$output, $depth = 0, $args = array() ) {
+ $output .= "\n<ul class=\"children\">\n";
+ }
+
+ function end_lvl(&$output, $depth = 0, $args = array()){
+ $output .= '</ul>';
+ }
+}
+endif;
+?>
--- /dev/null
+<?php
+
+register_nav_menus(array(
+ 'top-bar' => 'Site Navigation',
+ 'footer' => 'Footer Navigation',
+ 'second-header' => 'Secondary Header Navigation'
+));
+
+/**
+ * Top Bar
+ */
+if ( ! function_exists( 'glm_theme_top_bar' ) ) {
+ function glm_theme_top_bar() {
+ wp_nav_menu(array(
+ 'container' => false, // remove nav container
+ 'container_class' => '', // class of container
+ 'menu' => '', // menu name
+ 'menu_class' => '', // adding custom nav class
+ 'theme_location' => 'top-bar', // where it's located in the theme
+ 'before' => '', // before each link <a>
+ 'after' => '', // after each link </a>
+ 'link_before' => '', // before each link text
+ 'link_after' => '', // after each link text
+ 'depth' => 3, // limit the depth of the nav
+ 'fallback_cb' => false, // fallback function (see below)
+ 'walker' => new Glm_Theme_Top_Bar_Walker()
+ ));
+ }
+}
+
+/**
+ * Mobile off-canvas
+ */
+if ( ! function_exists( 'glm_theme_mobile_off_canvas' ) ) {
+ function glm_theme_mobile_off_canvas() {
+ echo '<div class="left-off-canvas-list">';
+ echo '<ul><li class="page_item"><a href="' . home_url() . '">Home</a></li>';
+ echo glm_get_mobile_nav_menu( 'top-bar' );
+ echo '</ul></div>';
+ }
+}
+
+function glm_get_mobile_nav_menu( $theme_location )
+{
+ $menu = wp_nav_menu(array(
+ 'echo' => false, // don't echo
+ 'container' => false, // remove nav container
+ 'container_class' => '', // class of container
+ 'menu' => '', // menu name
+ 'menu_class' => 'off-canvas-list', // adding custom nav class
+ 'theme_location' => $theme_location, // where it's located in the theme
+ 'before' => '', // before each link <a>
+ 'after' => '', // after each link </a>
+ 'link_before' => '', // before each link text
+ 'link_after' => '', // after each link text
+ 'depth' => 5, // limit the depth of the nav
+ 'fallback_cb' => false, // fallback function (see below)
+ 'walker' => new Glm_Theme_Off_Canvas_Walker()
+ ));
+ return preg_replace( array( '%^<ul[^>]*>%', '%</ul>$%' ), '', $menu );
+}
+
+/**
+ * Footer
+ */
+if ( ! function_exists( 'glm_theme_footer' ) ) {
+ function glm_theme_footer() {
+ wp_nav_menu(array(
+ 'container' => false, // remove nav container
+ 'container_class' => '', // class of container
+ 'menu' => '', // menu name
+ 'menu_class' => '', // adding custom nav class
+ 'theme_location' => 'footer', // where it's located in the theme
+ 'before' => '', // before each link <a>
+ 'after' => '', // after each link </a>
+ 'link_before' => '', // before each link text
+ 'link_after' => '', // after each link text
+ 'depth' => 1, // limit the depth of the nav
+ 'fallback_cb' => false, // fallback function (see below)
+ ));
+ }
+}
+
+/**
+ * glm_page_menu
+ *
+ * Grab the top level pages and their sub pages as the main navigation
+ */
+function glm_page_menu($parent = 0, $class = '')
+{
+ $menuConfig = glm_get_menu_options();
+ $frontPageId = get_option('page_on_front');
+ $parents = array();
+ $args = array(
+ 'post_type' => 'page',
+ 'parent' => $parent,
+ 'number' => '',
+ 'exclude' => $frontPageId,
+ 'post_status' => 'publish',
+ 'sort_order' => 'asc',
+ 'sort_column' => 'menu_order'
+ );
+ if ($parent == 0 && $menuConfig['menu_options']['main_level_pages']) {
+ $args['include'] = $menuConfig['menu_options']['main_level_pages'];
+ }
+ $pages = get_pages($args);
+ echo '<ul'.(($class)?' class="'.$class.'"':'').'><!-- begin -->'."\n";
+ foreach ($pages as $page) {
+ $childs = get_pages('child_of=' . $page->ID);
+ if (count($childs) > 0) {
+ echo '<li class="has-dropdown">'."\n";
+ echo '<a href="'.get_permalink($page->ID).'">'.$page->post_title.'</a>'."\n";
+ echo glm_page_menu($page->ID, 'sub-menu dropdown');
+ echo '</li>'."\n";
+ } else {
+ echo '<li><a href="'.get_permalink($page->ID).'">'.$page->post_title.'</a></li>'."\n";
+ }
+ }
+ echo '</ul><!-- end -->'."\n";
+}
+
+/**
+ * glm_offcanvas_menu
+ *
+ * Generate the list of pages as nested ul li list
+ */
+function glm_offcanvas_menu()
+{
+ wp_page_menu(array(
+ 'depth' => 0,
+ 'sort_column' => 'menu_order',
+ 'menu_class' => 'left-off-canvas-list'
+ ));
+}
+
+/**
+ * get_menu_options
+ *
+ * Grab the menu options from the theme.ini file
+ */
+function glm_get_menu_options()
+{
+ static $menu_options;
+ $themeConfig = get_template_directory() . '/theme.ini';
+
+ if (!$menu_options && is_file($themeConfig)) {
+ $menu_options = parse_ini_file($themeConfig, true);
+ }
+ return $menu_options;
+}
+
+function glm_side_menu() {
+ global $post;
+ $parents = get_post_ancestors($post->ID);
+ $id = ($parents) ? $parents[count($parents)-1]: $post->ID;
+ $parent = get_page( $id );
+ if ($id == 0) {
+ $ID = $post->ID;
+ } else {
+ $ID = $parent->ID;
+ }
+ echo '<h1>'.get_the_title($ID).'</h1>';
+ echo '<ul class="sidebar"><!-- begin -->'."\n";
+ echo wp_list_pages( 'child_of='.$ID.'&title_li=&depth=1&echo=0');
+ echo '</ul><!-- end -->'."\n";
+}
+
+//<?php
+//
+//register_nav_menus(array(
+// 'top-bar' => 'Site Navigation',
+// 'regions' => 'Regions'
+//));
+//
+///**
+// * Top Bar
+// */
+//if ( ! function_exists( 'glm_theme_top_bar' ) ) {
+// function glm_theme_top_bar() {
+// wp_nav_menu(array(
+// 'container' => false, // remove nav container
+// 'container_class' => '', // class of container
+// 'menu' => '', // menu name
+// 'menu_class' => '', // adding custom nav class
+// 'theme_location' => 'top-bar', // where it's located in the theme
+// 'before' => '', // before each link <a>
+// 'after' => '', // after each link </a>
+// 'link_before' => '', // before each link text
+// 'link_after' => '', // after each link text
+// 'depth' => 3, // limit the depth of the nav
+// 'fallback_cb' => false, // fallback function (see below)
+// 'walker' => new Glm_Theme_Top_Bar_Walker()
+// ));
+// }
+//}
+//
+///**
+// * Mobile off-canvas
+// */
+//if ( ! function_exists( 'glm_theme_mobile_off_canvas' ) ) {
+// function glm_theme_mobile_off_canvas() {
+// echo '<div class="left-off-canvas-list">';
+// echo '<ul><li class="page_item"><a href="' . home_url() . '">Home</a></li>';
+// echo glm_get_mobile_nav_menu( 'top-bar' );
+// echo '</ul></div>';
+// }
+//}
+///**
+// * Mobile off-canvas
+// */
+//if ( ! function_exists( 'glm_regions_mobile_off_canvas' ) ) {
+// function glm_regions_mobile_off_canvas() {
+// echo '<div class="regions-menu">';
+// echo glm_get_mobile_nav_menu( 'regions' );
+// echo '</ul></div>';
+// }
+//}
+//
+//function glm_get_mobile_nav_menu( $theme_location )
+//{
+// $menu = wp_nav_menu(array(
+// 'echo' => false, // don't echo
+// 'container' => false, // remove nav container
+// 'container_class' => '', // class of container
+// 'menu' => '', // menu name
+// 'menu_class' => 'off-canvas-list', // adding custom nav class
+// 'theme_location' => $theme_location, // where it's located in the theme
+// 'before' => '', // before each link <a>
+// 'after' => '', // after each link </a>
+// 'link_before' => '', // before each link text
+// 'link_after' => '', // after each link text
+// 'depth' => 5, // limit the depth of the nav
+// 'fallback_cb' => false, // fallback function (see below)
+// 'walker' => new Glm_Theme_Off_Canvas_Walker()
+// ));
+// return preg_replace( array( '%^<ul[^>]*>%', '%</ul>$%' ), '', $menu );
+//}
+//
+///**
+// * Footer
+// */
+//if ( ! function_exists( 'glm_theme_footer' ) ) {
+// function glm_theme_footer() {
+// wp_nav_menu(array(
+// 'container' => false, // remove nav container
+// 'container_class' => '', // class of container
+// 'menu' => '', // menu name
+// 'menu_class' => '', // adding custom nav class
+// 'theme_location' => 'footer', // where it's located in the theme
+// 'before' => '', // before each link <a>
+// 'after' => '', // after each link </a>
+// 'link_before' => '', // before each link text
+// 'link_after' => '', // after each link text
+// 'depth' => 1, // limit the depth of the nav
+// 'fallback_cb' => false, // fallback function (see below)
+// ));
+// }
+//}
+//
+///**
+// * glm_page_menu
+// *
+// * Grab the top level pages and their sub pages as the main navigation
+// */
+//function glm_page_menu($parent = 0, $class = '')
+//{
+// $menuConfig = glm_get_menu_options();
+// $frontPageId = get_option('page_on_front');
+// $parents = array();
+// $args = array(
+// 'post_type' => 'page',
+// 'parent' => $parent,
+// 'number' => '',
+// 'exclude' => $frontPageId,
+// 'post_status' => 'publish',
+// 'sort_order' => 'asc',
+// 'sort_column' => 'menu_order'
+// );
+// if ($parent == 0 && $menuConfig['menu_options']['main_level_pages']) {
+// $args['include'] = $menuConfig['menu_options']['main_level_pages'];
+// }
+// $pages = get_pages($args);
+// echo '<ul'.(($class)?' class="'.$class.'"':'').'><!-- begin -->'."\n";
+// foreach ($pages as $page) {
+// $childs = get_pages('child_of=' . $page->ID);
+// if (count($childs) > 0) {
+// echo '<li class="has-dropdown">'."\n";
+// echo '<a href="'.get_permalink($page->ID).'">'.$page->post_title.'</a>'."\n";
+// echo glm_page_menu($page->ID, 'sub-menu dropdown');
+// echo '</li>'."\n";
+// } else {
+// echo '<li><a href="'.get_permalink($page->ID).'">'.$page->post_title.'</a></li>'."\n";
+// }
+// }
+// echo '</ul><!-- end -->'."\n";
+//}
+//
+///**
+// * glm_offcanvas_menu
+// *
+// * Generate the list of pages as nested ul li list
+// */
+//function glm_offcanvas_menu()
+//{
+// wp_page_menu(array(
+// 'depth' => 0,
+// 'sort_column' => 'menu_order',
+// 'menu_class' => 'left-off-canvas-list'
+// ));
+//}
+//
+///**
+// * get_menu_options
+// *
+// * Grab the menu options from the theme.ini file
+// */
+//function glm_get_menu_options()
+//{
+// static $menu_options;
+// $themeConfig = get_template_directory() . '/theme.ini';
+//
+// if (!$menu_options && is_file($themeConfig)) {
+// $menu_options = parse_ini_file($themeConfig, true);
+// }
+// return $menu_options;
+//}
+//
+//function glm_side_menu() {
+// global $post;
+// $parents = get_post_ancestors($post->ID);
+// $id = ($parents) ? $parents[count($parents)-1]: $post->ID;
+// $parent = get_page( $id );
+// if ($id == 0) {
+// $ID = $post->ID;
+// } else {
+// $ID = $parent->ID;
+// }
+// echo '<h1>'.get_the_title($ID).'</h1>';
+// echo '<ul class="sidebar"><!-- begin -->'."\n";
+// echo wp_list_pages( 'child_of='.$ID.'&title_li=&depth=1&echo=0');
+// echo '</ul><!-- end -->'."\n";
+//}
--- /dev/null
+<?php
+/**
+Template Page for the album overview
+
+Follow variables are useable :
+
+ $album : Contain information about the first album
+ $albums : Contain information about all albums
+ $galleries : Contain all galleries inside this album
+ $pagination : Contain the pagination content
+
+ You can check the content when you insert the tag <?php var_dump($variable) ?>
+ If you would like to show the timestamp of the image ,you can use <?php echo $exif['created_timestamp'] ?>
+**/
+?>
+<?php if (!defined ('ABSPATH')) die ('No direct access allowed'); ?><?php if (!empty ($galleries)) : ?>
+
+<div class="ngg-albumoverview">
+
+ <!-- List of galleries -->
+ <?php foreach ($galleries as $gallery) : ?>
+
+ <div class="ngg-glmalbums ngg-album-compact small-6 medium-4 large-3">
+ <div class="ngg-album-compactbox">
+ <div class="ngg-album-link">
+ <a class="Link" href="<?php echo nextgen_esc_url($gallery->pagelink) ?>">
+ <img class="Thumb" alt="<?php echo esc_attr($gallery->title) ?>" src="<?php echo nextgen_esc_url($gallery->previewurl) ?>"/>
+ </a>
+ </div>
+ </div>
+ <?php if (!empty($image_gen_params)) {
+ $max_width = 'style="max-width: ' . ($image_gen_params['width'] + 20) . 'px"';
+ } else {
+ $max_width = '';
+ } ?>
+ <section class="album-meta-wrapper">
+ <h4>
+ <a class="ngg-album-desc"
+ title="<?php echo esc_attr($gallery->title); ?>"
+ href="<?php echo nextgen_esc_url($gallery->pagelink); ?>"
+ <?php echo $max_width; ?>>
+ <?php echo_safe_html($gallery->title); ?>
+ </a>
+ </h4>
+ <p class="ngg-album-gallery-image-counter">
+ <?php if ($gallery->counter > 0) { ?>
+ <strong><?php echo $gallery->counter; ?></strong> <?php _e('Photos', 'nggallery'); ?>
+ <?php } else { ?>
+
+ <?php } ?>
+ </p>
+ </section>
+ </div>
+ <?php endforeach; ?>
+ <!-- Pagination -->
+ <br class="ngg-clear"/>
+ <?php echo $pagination ?>
+</div>
+
+<?php endif; ?>
--- /dev/null
+<?php
+/**
+Template Page for the gallery overview
+
+Follow variables are useable :
+
+ $gallery : Contain all about the gallery
+ $images : Contain all images, path, title
+ $pagination : Contain the pagination content
+
+ You can check the content when you insert the tag <?php var_dump($variable) ?>
+ If you would like to show the timestamp of the image ,you can use <?php echo $exif['created_timestamp'] ?>
+**/
+?>
+<?php if (!defined ('ABSPATH')) die ('No direct access allowed'); ?><?php if (!empty ($gallery)) : ?>
+
+ <!-- Thumbnails -->
+ <?php $i = 0; ?>
+ <ul class="gallery row small-block-grid-3 medium-block-grid-6 large-block-grid-8">
+ <?php foreach ( $images as $image ) : ?>
+ <li>
+ <div id="ngg-image-<?php echo $image->pid ?>" class="ngg-gallery-thumbnail-box imgBorderMe" <?php echo $image->style ?> >
+
+ <div class="ngg-gallery-thumbnail" >
+ <a href="<?php echo nextgen_esc_url($image->imageURL) ?>"
+ title="<?php echo esc_attr($image->description) ?>"
+ data-src="<?php echo nextgen_esc_url($image->imageURL) ?>"
+ data-thumbnail="<?php echo nextgen_esc_url($image->thumbnailURL); ?>"
+ data-image-id="<?php echo esc_attr($image->pid); ?>"
+ data-title="<?php echo esc_attr($image->alttext); ?>"
+ data-description="<?php echo esc_attr($image->description); ?>"
+ <?php echo $image->thumbcode ?> >
+ <?php if ( !$image->hidden ) { ?>
+
+ <div class="image_overlay">
+ <img title="<?php echo esc_attr($image->alttext) ?>" alt="<?php echo esc_attr($image->alttext) ?>" src="<?php echo nextgen_esc_url($image->thumbnailURL) ?>" <?php echo $image->size ?> />
+ </div>
+ <span class="photoTitle" title="<?php echo esc_attr($image->alttext) ?>"><?php if (!$image->hidden) { echo esc_attr($image->alttext); }?></span>
+ <?php } ?>
+ </a>
+ </div>
+
+ </div>
+ </li>
+ <?php if ( $image->hidden ) continue; ?>
+ <?php if ( $gallery->columns > 0 && ++$i % $gallery->columns == 0 ) { ?>
+ <br style="clear: both" />
+ <?php } ?>
+ <?php endforeach; ?>
+ </ul>
+ <!-- Pagination -->
+ <?php echo $pagination ?>
+</ul>
+
+<?php endif; ?>
--- /dev/null
+<?php
+/**
+Template Page for the gallery overview
+
+Follow variables are useable :
+
+ $gallery : Contain all about the gallery
+ $images : Contain all images, path, title
+ $pagination : Contain the pagination content
+
+ You can check the content when you insert the tag <?php var_dump($variable) ?>
+ If you would like to show the timestamp of the image ,you can use <?php echo $exif['created_timestamp'] ?>
+**/
+?>
+<?php if (!defined ('ABSPATH')) die ('No direct access allowed'); ?><?php if (!empty ($gallery)) : ?>
+
+ <!-- Thumbnails -->
+ <?php $i = 0; ?>
+ <ul class="gallery row small-block-grid-1 medium-block-grid-2 large-block-grid-3">
+ <?php foreach ( $images as $image ) : ?>
+ <li>
+ <div id="ngg-image-<?php echo $image->pid ?>" class="ngg-gallery-thumbnail-box imgBorderMe" <?php echo $image->style ?> >
+
+ <div class="ngg-gallery-thumbnail" >
+ <a href="<?php echo nextgen_esc_url($image->imageURL) ?>"
+ title="<?php echo esc_attr($image->description) ?>"
+ data-src="<?php echo nextgen_esc_url($image->imageURL) ?>"
+ data-thumbnail="<?php echo nextgen_esc_url($image->thumbnailURL); ?>"
+ data-image-id="<?php echo esc_attr($image->pid); ?>"
+ data-title="<?php echo esc_attr($image->alttext); ?>"
+ data-description="<?php echo esc_attr($image->description); ?>"
+ <?php echo $image->thumbcode ?> >
+ <?php if ( !$image->hidden ) { ?>
+
+ <div class="image_overlay">
+ <img title="<?php echo esc_attr($image->alttext) ?>" alt="<?php echo esc_attr($image->alttext) ?>" src="<?php echo nextgen_esc_url($image->thumbnailURL) ?>" <?php echo $image->size ?> />
+ </div>
+ <span class="photoTitle" title="<?php echo esc_attr($image->alttext) ?>"><?php if (!$image->hidden) { echo esc_attr($image->alttext); }?></span>
+ <?php } ?>
+ </a>
+ </div>
+
+ </div>
+ </li>
+ <?php if ( $image->hidden ) continue; ?>
+ <?php if ( $gallery->columns > 0 && ++$i % $gallery->columns == 0 ) { ?>
+ <br style="clear: both" />
+ <?php } ?>
+ <?php endforeach; ?>
+ </ul>
+ <!-- Pagination -->
+ <?php echo $pagination ?>
+</ul>
+
+<?php endif; ?>
--- /dev/null
+<?php
+/**
+Template Page for the gallery overview
+
+Follow variables are useable :
+
+ $gallery : Contain all about the gallery
+ $images : Contain all images, path, title
+ $pagination : Contain the pagination content
+
+ You can check the content when you insert the tag <?php var_dump($variable) ?>
+ If you would like to show the timestamp of the image ,you can use <?php echo $exif['created_timestamp'] ?>
+**/
+?>
+<?php if (!defined ('ABSPATH')) die ('No direct access allowed'); ?><?php if (!empty ($gallery)) : ?>
+
+<div class="ngg-galleryoverview" id="<?php echo $gallery->anchor ?>">
+ <!-- Thumbnails -->
+ <?php $i = 0; ?>
+ <ul class="gallery row small-block-grid-2 medium-block-grid-3 large-block-grid-4">
+ <?php foreach ( $images as $image ) : ?>
+ <li>
+ <div id="ngg-image-<?php echo $image->pid ?>" class="ngg-gallery-thumbnail-box imgBorderMe" <?php echo $image->style ?> >
+
+ <div class="ngg-gallery-thumbnail" >
+ <a href="<?php echo nextgen_esc_url($image->imageURL) ?>"
+ title="<?php echo esc_attr($image->description) ?>"
+ data-src="<?php echo nextgen_esc_url($image->imageURL) ?>"
+ data-thumbnail="<?php echo nextgen_esc_url($image->thumbnailURL); ?>"
+ data-image-id="<?php echo esc_attr($image->pid); ?>"
+ data-title="<?php echo esc_attr($image->alttext); ?>"
+ data-description="<?php echo esc_attr($image->description); ?>"
+ <?php echo $image->thumbcode ?> >
+ <?php if ( !$image->hidden ) { ?>
+
+ <div class="image_overlay">
+ <img
+ title="<?php echo esc_attr($image->alttext) ?>"
+ alt="<?php echo esc_attr($image->alttext) ?>"
+ src="<?php echo nextgen_esc_url($image->thumbnailURL) ?>"
+ <?php echo $image->size ?> />
+ </div>
+ <?php
+ $imageTitle = !preg_match(';is\d{2,}-\d{10,}-\d{5,}$;', $image->alttext) ? $image->alttext: '';
+ ?>
+ <span class="photoTitle" title="<?php echo esc_attr($imageTitle) ?>">
+ <?php if (!$image->hidden) { echo esc_attr($imageTitle); }?>
+ </span>
+ <?php } ?>
+ </a>
+ </div>
+
+ </div>
+ </li>
+ <?php if ( $image->hidden ) continue; ?>
+ <?php if ( $gallery->columns > 0 && ++$i % $gallery->columns == 0 ) { ?>
+ <br style="clear: both" />
+ <?php } ?>
+ <?php endforeach; ?>
+ </ul>
+ <!-- Pagination -->
+ <?php echo $pagination ?>
+</ul>
+</div>
+
+<?php endif; ?>
--- /dev/null
+<?php
+/**
+Template Page for the gallery overview
+
+Follow variables are useable :
+
+ $gallery : Contain all about the gallery
+ $images : Contain all images, path, title
+ $pagination : Contain the pagination content
+
+ You can check the content when you insert the tag <?php var_dump($variable) ?>
+ If you would like to show the timestamp of the image ,you can use <?php echo $exif['created_timestamp'] ?>
+**/
+?>
+<?php if (!defined ('ABSPATH')) die ('No direct access allowed'); ?><?php if (!empty ($gallery)) : ?>
+
+<ul id='gallery' class='gallery row small-block-grid-2 medium-block-grid-3 large-block-grid-4'>
+<?php if ($gallery->show_slideshow) { ?>
+ <!-- Slideshow link -->
+ <div class="slideshowlink">
+ <a class="slideshowlink" href="<?php echo nextgen_esc_url($gallery->slideshow_link) ?>">
+ <?php echo $gallery->slideshow_link_text ?>
+ </a>
+ </div>
+<?php } ?>
+ <!-- Thumbnails -->
+ <?php $i = 0; ?>
+ <?php foreach ( $images as $image ) : ?>
+ <li>
+ <div id="ngg-image-<?php echo $image->pid ?>" class="ngg-gallery-thumbnail-box imgBorderMe" <?php echo $image->style ?> >
+
+ <div class="ngg-gallery-thumbnail" >
+ <a href="<?php echo nggcf_get_field($image->pid, "video_url"); ?>"
+ title="<?php echo esc_attr($image->description); ?>"
+ data-src="<?php echo nextgen_esc_url($image->imageURL); ?>"
+ data-thumbnail="<?php echo nextgen_esc_url($image->thumbnailURL); ?>"
+ data-image-id="<?php echo esc_attr($image->pid); ?>"
+ data-title="<?php echo esc_attr($image->alttext); ?>"
+ data-description="<?php echo esc_attr($image->description); ?>"
+ data-url="<?php echo nggcf_get_field($image->pid, "video_url"); ?>"
+ <?php echo $image->thumbcode ?> >
+ <?php if ( !$image->hidden ) { ?>
+
+ <div class="image_overlay">
+ <img title="<?php echo esc_attr($image->alttext) ?>" alt="<?php echo esc_attr($image->alttext) ?>" src="<?php echo nextgen_esc_url($image->thumbnailURL) ?>" <?php echo $image->size ?> />
+ </div>
+ <span class="photoTitle"><?php if (!$image->hidden) { echo esc_attr($image->alttext); }?></span>
+
+ <?php } ?>
+ </a>
+ </div>
+
+ </div>
+ </li>
+ <?php if ( $image->hidden ) continue; ?>
+ <?php if ( $gallery->columns > 0 && ++$i % $gallery->columns == 0 ) { ?>
+ <br style="clear: both" />
+ <?php } ?>
+ <?php endforeach; ?>
+
+ <!-- Pagination -->
+ <?php echo $pagination ?>
+</ul>
+<script>
+ jQuery(document).ready(function(){
+ jQuery(".ngg-fancybox").each(function (){
+ jQuery(this).addClass("various iframe");
+ jQuery(this).attr("href",jQuery(this).children("img").attr("title"));
+ });
+ });
+</script>
+<?php endif; ?>
--- /dev/null
+{
+ "name": "FranceJourneys",
+ "description": "Gaslight Media",
+ "version": "0.0.1",
+ "devDependencies": {
+ "node-sass": "~2.0.1",
+ "grunt": "~0.4.5",
+ "grunt-contrib-watch": "~0.6.1",
+ "grunt-sass": "~0.18.0",
+ "grunt-contrib-uglify": "~0.7.0",
+ "grunt-contrib-concat": "~0.5.0",
+ "grunt-contrib-copy": "~0.7.0"
+ }
+}
\ No newline at end of file
--- /dev/null
+<?php $args = array( 'numberposts' => 4);?>
+<div id="home-feed-posts">
+<?php
+$lastposts = get_posts( $args );
+ $count = 0;
+foreach($lastposts as $post) : setup_postdata($post); ?>
+ <div class="home-feed-post">
+ <div class="row">
+ <?php if (has_post_thumbnail( $post->ID )) { ?>
+ <div class="small-11 small-centered columns text-center home-feed-post-image">
+ <?php echo get_the_post_thumbnail($post->ID, array(190, 190), array('class' => 'blog-excerpt-img-wrap')); ?>
+ </div>
+ <div class="small-12 medium-12 columns home-feed-post-content">
+ <?php } else { ?>
+ <div class="small-12 columns home-feed-post-content">
+ <?php } ?>
+ <span class="meta date"><?php the_time('F j, Y') ?></span>
+ <h2 class="title-posts" href="<?php the_permalink(); ?>"><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h2>
+
+ <div class="excerpt<?php echo $count ?>"><?php echo the_advanced_excerpt('length=265&length_type=characters&no_custom=1&ellipsis=%26hellip;&exclude_tags=a,img,p,strong,h1,h2,h3,hr,div'); ?></div>
+ </div>
+ </div>
+ </div>
+ <hr>
+ <?php $count++; ?>
+<?php endforeach; ?>
+</div>
\ No newline at end of file
--- /dev/null
+<?php $args = array( 'numberposts' => 2);?>
+<div id="home-feed-posts">
+<?php
+$lastposts = get_posts( $args );
+ $count = 0;
+foreach($lastposts as $post) : setup_postdata($post); ?>
+ <div class="home-feed-post">
+ <div class="row">
+ <?php if (has_post_thumbnail( $post->ID )) { ?>
+
+ <div class="small-centered small-12 medium-uncentered medium-12 columns home-feed-post-content">
+ <h3 class="title-posts" href="<?php the_permalink(); ?>"><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h3>
+ <span class="meta date">Posted on <?php the_time('F jS, Y') ?></span>
+ <?php echo get_the_post_thumbnail($post->ID, array(680, 190), array('class' => 'blog-excerpt-img-wrap')); ?>
+ <?php } else { ?>
+ <div class="small-centered small-12 medium-uncentered medium-12 columns home-feed-post-content">
+ <h3 class="title-posts" href="<?php the_permalink(); ?>"><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h3>
+ <span class="meta date">Posted on <?php the_time('F jS, Y') ?></span>
+ <?php } ?>
+ <div class="excerpt<?php echo $count ?>"><?php echo the_advanced_excerpt('length=265&length_type=characters&no_custom=1&ellipsis=%26hellip;&exclude_tags=a,img,p,strong,h1,h2,h3,hr,div'); ?></div>
+ </div>
+ </div>
+ </div>
+ <?php $count++; ?>
+<?php endforeach; ?>
+</div>
\ No newline at end of file
--- /dev/null
+ <div id="blog-side-info-wrapper" class="small-11 small-only-text-center medium-3 columns">
+ <div id="blog-side-info">
+ <form id="searchform" action="<?php echo esc_url( home_url() ); ?>" method="get">
+ <div><input id="s" class="text" type="text" name="s" value="" />
+ <input class="submit blogbutton" type="submit" name="submit" value="Search" />
+ <input type="hidden" name="searchType" value="blog" /> </div>
+ </form>
+ <p>Recent Posts</p>
+ <ul>
+ <?php
+ $args = array( 'numberposts' => '5','post_status'=>'publish' );
+ $recent_posts = wp_get_recent_posts( $args );
+ foreach( $recent_posts as $recent ){
+ echo '<li><a href="' . get_permalink($recent["ID"]) . '">' . $recent["post_title"].'</a> </li> ';
+ }
+ ?>
+ </ul>
+ <p>Archive</p>
+ <ul><?php wp_get_archives( array( 'type' => 'monthly', 'limit' => 12 ) ); ?></ul>
+ <p>Categories</p>
+ <ul>
+ <?php
+ $args = array(
+ 'orderby' => 'name',
+ 'order' => 'ASC'
+ );
+ $categories = get_categories($args);
+ foreach($categories as $category) {
+ echo '<li><a href="' . get_category_link( $category->term_id ) . '" title="' . sprintf( __( "View all posts in %s" ), $category->name ) . '" ' . '>' . $category->name.'</a> </li> '; }
+ ?>
+ </ul>
+ </div>
+ </div>
\ No newline at end of file
--- /dev/null
+<?php if(function_exists('bcn_display') && !is_front_page())
+{
+ echo "<div class=\"breadcrumbs\">";
+ bcn_display();
+ echo "</div>";
+}
+?>
--- /dev/null
+<div id="footer_address" class=" medium-6 large-4 columns show-for-medium-up">
+ <?php if (function_exists('glm_get_clientinfo_option')) :?>
+ <div class="row">
+ <div class="medium-12 columns address">
+ <h4><?php echo glm_get_clientinfo_option('businessName');?></h4>
+ <?php if (glm_get_clientinfo_option('address')):?>
+ <span><?php echo glm_get_clientinfo_option('address');?>,</span>
+ <span><?php echo glm_get_clientinfo_option('city');?>, <?php echo glm_get_clientinfo_option('state');?>
+ <?php echo glm_get_clientinfo_option('zip');?></span>
+ <?php endif;?>
+ <?php if (glm_get_clientinfo_option('phone')) :?>
+ <span><?php echo glm_get_clientinfo_option('phone');?></span>
+ <?php endif;?>
+ <?php if (glm_get_clientinfo_option('phone2')) :?>
+ <span class="bullet"> • </span><span><?php echo glm_get_clientinfo_option('phone2');?></span>
+ <?php endif;?>
+ <?php if (glm_get_clientinfo_option('email')) :?>
+ <br><a href="#"><span><?php echo glm_get_clientinfo_option('email');?></span></a>
+ <?php endif;?>
+ </div>
+ </div>
+
+
+ <?php endif;?>
+</div>
+
--- /dev/null
+<?php if (function_exists('glm_get_clientinfo_option')) :?>
+<ul>
+ <li><?php echo glm_get_clientinfo_option('businessName');?></li>
+ <?php if (glm_get_clientinfo_option('address')):?>
+ <li><?php echo glm_get_clientinfo_option('address');?></li>
+ <li><?php echo glm_get_clientinfo_option('city');?>, <?php echo glm_get_clientinfo_option('state');?>
+ <?php echo glm_get_clientinfo_option('zip');?></li>
+ <?php endif;?>
+ <?php if (glm_get_clientinfo_option('address2')):?>
+ <li><?php echo glm_get_clientinfo_option('address2');?></li>
+ <li><?php echo glm_get_clientinfo_option('city2');?>, <?php echo glm_get_clientinfo_option('state2');?>
+ <?php echo glm_get_clientinfo_option('zip2');?></li>
+ <?php endif;?>
+ <?php if (glm_get_clientinfo_option('phone')) :?>
+ <li><?php echo glm_get_clientinfo_option('phone');?></li>
+ <?php endif;?>
+ <?php if (glm_get_clientinfo_option('phone2')) :?>
+ <li><?php echo glm_get_clientinfo_option('phone2');?></li>
+ <?php endif;?>
+ <?php if (glm_get_clientinfo_option('email')) :?>
+ <li><a href="mailto:voyage@francejourneys.com"><?php echo glm_get_clientinfo_option('email');?></a></li>
+ <?php endif;?>
+ <?php if (glm_get_clientinfo_option('fax')) :?>
+ <li><?php echo glm_get_clientinfo_option('fax');?></li>
+ <?php endif;?>
+ <?php if (glm_get_clientinfo_option('extra')) :?>
+ <li><?php echo glm_get_clientinfo_option('extra');?></li>
+ <?php endif;?>
+</ul>
+<?php endif;?>
--- /dev/null
+<?php echo do_shortcode('[glm-members-event-list template="eventsFeed.html" featured="True"]');?>
--- /dev/null
+<?php if(function_exists('fetch_all_glm_blocks')):?>
+<?php $blocks = fetch_all_glm_blocks();?>
+<div class="blocks">
+ <?php foreach ($blocks as $block):?>
+ <div class="text-center small-12 medium-4 columns large-text-left block">
+ <?php if($block->url):?>
+ <a class="glm-block-image-container" href="<?php echo $block->url;?>"<?php if($block->externalUrl){echo ' target="_blank"';}?>>
+ <?php endif;?>
+ <?php echo get_the_post_thumbnail($block->ID, 'glm-block-image');?>
+ <?php if($block->url):?>
+ </a>
+ <?php endif;?>
+ <div class="block-area">
+ <?php if($block->url):?>
+ <a class="title-posts" href="<?php echo $block->url;?>"<?php if($block->externalUrl){echo ' target="_blank"';}?>>
+ <?php endif;?>
+ <h4><?php echo $block->post_title;?></h4>
+ <?php if($block->url):?>
+ </a>
+ <?php endif;?>
+ <p><?php echo $block->post_content . $block->post_excerpt;?></p>
+ <?php if($block->url):?>
+ <a class="blocks-readmore" href="<?php echo $block->url;?>">Read more...</a>
+ <?php endif;?>
+ </div>
+ </div>
+ <?php endforeach;?>
+</div>
+
+<?php endif;?>
--- /dev/null
+ <div class="row small-collapse">
+ <div id="left_scroll" class="small-1 columns arrow">
+ <a class="left"><img src="<?php bloginfo('template_url'); ?>/assets/arrow-left.jpg"></a>
+ </div>
+ <div id="carousel_container" class="small-10 columns">
+ <h1 class="text-center"></h1>
+ <div id='carousel_inner'>
+<!-- <ul id="carousel_ul" class="small-block-grid-1 medium-block-grid-4">-->
+
+ <ul id="carousel_ul" >
+
+ <?php
+ //$meta_query = WC()->query->get_meta_query();
+ //$meta_query[] = array(
+ // 'key' => '_featured',
+ // 'value' => 'yes'
+ //);
+ //$args = array(
+ // 'post_type' => 'product',
+ // 'stock' => 1,
+ // 'showposts' => 6,
+ // 'orderby' => 'date',
+ // 'order' => 'DESC',
+ // 'meta_query' => $meta_query
+ //);
+
+ //$loop = new WP_Query( $args );
+
+ //while ( $loop->have_posts() ) : $loop->the_post(); global $product; ?>
+ <?php
+ //if (has_post_thumbnail( $loop->post->ID )) {
+ // $url = get_post_thumbnail_id($loop->post->ID);
+ // $thumbnail = wp_get_attachment_image_src( $url, 'full', false);
+
+ // if ($thumbnail){
+ // get relative path of url
+ // (string)$thumbnail = $thumbnail[0];
+ // }
+ // $product_url = get_permalink($loop->post->ID);
+ // $title = $loop->post->post_title;
+ // echo $title;
+
+ ?>
+
+<!--
+ <li class="tour-slides" id="tour-slide-<?php //echo //$loop->post->ID; ?>" style="background: url('<?php //echo $thumbnail; ?>') no-repeat center center; background-size: cover;">
+ <a class='tour-link' href="<?php //echo $product_url; ?>" data-title="<?php //echo $title; ?>"></a>
+ </li>
+-->
+ <?php
+ //} else { ?>
+ <li><?php //echo '<img src="'.$woocommerce->plugin_url().'/assets/images/placeholder.png" alt="Placeholder" width="200px" height="200px" />';?></li><span></span><?php
+ //}
+
+ //endwhile;
+
+ ?>
+
+ </ul>
+
+
+
+
+ </div>
+ </div>
+ <div id="right_scroll" class="small-1 columns arrow">
+ <a class="right"><img src="<?php bloginfo('template_url'); ?>/assets/arrow-right.jpg"></a>
+ </div>
+ </div>
\ No newline at end of file
--- /dev/null
+
+<div style="background:rgba(0,0,0,0.4);border:1px solid black;border-radius:5px;display:block;margin:5px auto;width:90%;max-width:500px">
+ <ul style="columns: 2; -webkit-columns: 2; -moz-columns: 2;">
+ <li><a href="#social">social</a></li>
+ <li><a href="#header">header</a></li>
+ <li><a href="#search">search</a></li>
+ <li><a href="#slideshow">slideshow</a></li>
+ <li><a href="#featured">featured</a></li>
+ <li><a href="#breacrumbs">breadcrumbs</a></li>
+ <li><a href="#glm-blocks">glm-blocks</a></li>
+ <li><a href="#paragraphs">paragraphs</a></li>
+ <li><a href="#images-background">images-background</a></li>
+ <li><a href="#images-captions">images-captions</a></li>
+ <li><a href="#images">images</a></li>
+ <li><a href="#paragraphs">paragraphs</a></li>
+ <li><a href="#test-header-fonts">test-header-fonts</a></li>
+ <li><a href="#test-lists">test-lists</a></li>
+ <li><a href="#test-table">test-table</a></li>
+ <li><a href="#ninja-form">ninja-form</a></li>
+ <li><a href="#image-gallery">image-gallery</a></li>
+ <li><a href="#video-gallery">video-gallery</a></li>
+ <li><a href="#event-calendar">event-calendar</a></li>
+ <li><a href="#footer">footer</a></li>
+ <li><a href="#address">address</a></li>
+ <li><a href="#copyright">copyright</a></li>
+ <li><a href="#"></a></li>
+
+ <br><a name=""></a>
+ </ul>
+</div>
+
+<header></header>
+
+ <br><a name="social">social</a>
+ <p>temporary inline style: height 32, width 32, float left.</p>
+<div id="testsocial" class="row">
+ <style>
+ #testsocial .soc_icon {
+ height: 32px; width:32px; float: left;
+ }
+ </style>
+</div>
+
+<br><a name="header">header</a>
+<div id="header" class="row"></div>
+
+<br><a name="search">search</a>
+<div id="search" class="row">
+ <?php
+ get_template_part('parts/search');
+ ?>
+</div>
+
+<div id="sample-content" class="row">
+ <div id="main-content" class="small-12 medium-6 large-8 columns">
+ <?php if(have_posts()) : while(have_posts()): the_post();?>
+ <?php the_content();?>
+ <p> <h2>sample Text in case there is no content</h2>
+ Yúyo tihta atalantëa wen nu. Lau nú engë rotelë, telpë ananta ré llo. San ré yávë ohtatyaro. Vén sú telpë yanen laira. Mel ehtë teren tanga nu. Hwarma tareldar at ëar, ep man norna carcassë.
+ </p>
+ <?php endwhile; else:?>
+ <p><?php _e('Sorry, no posts yet');?></p>
+ <?php endif;?>
+ </div>
+ <div class="small-12 medium-6 large-4 columns small-text-center medium-text-left">
+ <?php get_sidebar(); ?>
+ </div>
+</div>
+
+ <br><a name="slideshow">slideshow</a>
+<div id="slideshow" class="row">
+ <?php get_template_part('parts/slide-show'); ?>
+</div>
+
+ <br><a name="featured">featured</a>
+<div id="featured" class="row">
+</div>
+
+ <br><a name="breadcrumbs">breadcrumbs</a>
+<div id="breadcrumbs" class="row">
+ <?php get_template_part('parts/bread-crumbs'); ?>
+</div>
+
+ <br><a name="paragraphs">paragraphs</a>
+<div id="test-paragraphs" class="row">
+ <p>
+ Yúyo tihta atalantëa wen nu. Lau nú engë rotelë, telpë ananta ré llo. San ré yávë ohtatyaro. Vén sú telpë yanen laira. Mel ehtë teren tanga nu. Hwarma tareldar at ëar, ep man norna carcassë.
+ </p>
+</div>
+
+ <br><a name="glm-blocks">glm-blocks</a>
+<div id="glm-blocks" class="row">
+ <?php get_template_part('parts/glm-blocks'); ?>
+</div>
+
+ <br><a name="images-background">images-background</a>
+<div id="background-images" class="row">
+ <div background-image="src: '../assets/logo.png'"></div>
+ <div background-image="src: '../assets/logo.png'">
+ some text on an image?
+ </div>
+</div>
+
+ <br><a name="images-captions">images-captions</a>
+<div id="test-images-captions" class="row">
+
+ <div class="wp-caption alignright">
+ <img alt="This is alt text for the image" src="http://placehold.it/250x250">
+ <p class="wp-caption-text">Guests and staff join for a farewell photo</p>
+ </div>
+ <p>
+ Yúyo tihta atalantëa wen nu. Lau nú engë rotelë, telpë ananta ré llo. San ré yávë ohtatyaro. Vén sú telpë yanen laira. Mel ehtë teren tanga nu. Hwarma tareldar at ëar, ep man norna carcassë.
+ </p>
+ <div class="wp-caption alignleft">
+ <img alt="This is alt text for the image" src="http://placehold.it/250x250">
+ <p class="wp-caption-text">Guests and staff join for a farewell photo</p>
+ </div>
+ <p>
+ Yúyo tihta atalantëa wen nu. Lau nú engë rotelë, telpë ananta ré llo. San ré yávë ohtatyaro. Vén sú telpë yanen laira. Mel ehtë teren tanga nu. Hwarma tareldar at ëar, ep man norna carcassë.
+ </p>
+ <div class="wp-caption aligncenter">
+ <img alt="This is alt text for the image" src="http://placehold.it/250x250">
+ <p class="wp-caption-text">Guests and staff join for a farewell photo</p>
+ </div>
+ <p>
+ Yúyo tihta atalantëa wen nu. Lau nú engë rotelë, telpë ananta ré llo. San ré yávë ohtatyaro. Vén sú telpë yanen laira. Mel ehtë teren tanga nu. Hwarma tareldar at ëar, ep man norna carcassë.
+ </p>
+ <div class="wp-caption">
+ <img alt="This is alt text for the image" src="http://placehold.it/250x250">
+ <p class="wp-caption-text">Guests and staff join for a farewell photo</p>
+ </div>
+ <p>
+ Yúyo tihta atalantëa wen nu. Lau nú engë rotelë, telpë ananta ré llo. San ré yávë ohtatyaro. Vén sú telpë yanen laira. Mel ehtë teren tanga nu. Hwarma tareldar at ëar, ep man norna carcassë.
+ </p>
+</div>
+
+ <br><a name="images">images</a>
+<div id="test-images" class="row">
+ <div class="alignright">
+ <img alt="This is alt text for the image" src="http://placehold.it/250x250">
+ </div>
+ <p>
+ Yúyo tihta atalantëa wen nu. Lau nú engë rotelë, telpë ananta ré llo. San ré yávë ohtatyaro. Vén sú telpë yanen laira. Mel ehtë teren tanga nu. Hwarma tareldar at ëar, ep man norna carcassë.
+ </p>
+ <hr>
+ <div class="alignleft">
+ <img alt="This is alt text for the image" src="http://placehold.it/250x250">
+ </div>
+ <p>
+ Yúyo tihta atalantëa wen nu. Lau nú engë rotelë, telpë ananta ré llo. San ré yávë ohtatyaro. Vén sú telpë yanen laira. Mel ehtë teren tanga nu. Hwarma tareldar at ëar, ep man norna carcassë.
+ </p>
+ <hr>
+ <div class="aligncenter">
+ <img alt="This is alt text for the image" src="http://placehold.it/250x250">
+ </div>
+ <p>
+ Yúyo tihta atalantëa wen nu. Lau nú engë rotelë, telpë ananta ré llo. San ré yávë ohtatyaro. Vén sú telpë yanen laira. Mel ehtë teren tanga nu. Hwarma tareldar at ëar, ep man norna carcassë.
+ </p>
+ <hr>
+ <div class="">
+ <img alt="This is alt text for the image" src="http://placehold.it/250x250">
+ </div>
+ <p>
+ Yúyo tihta atalantëa wen nu. Lau nú engë rotelë, telpë ananta ré llo. San ré yávë ohtatyaro. Vén sú telpë yanen laira. Mel ehtë teren tanga nu. Hwarma tareldar at ëar, ep man norna carcassë.
+ </p>
+</div>
+
+ <br><a name="test-header-fonts">test-header-fonts</a>
+<div id="test-header-fonts" class="row">
+ <p> this is a paragraph for reference. Be sure to keep an eye on the line-height below</p>
+ <h1>This is a H1 element and should be large, prominent, and sparse, likely used only once on a page at the top.</h1>
+ <p> this is a paragraph for reference.</p>
+ <h2>This is a H2 element and should be prominent, likely used as headers for paragraphs.</h2>
+ <p> this is a paragraph for reference.</p>
+ <h3>This is a h3 element and should stand out, may be used as headers for paragraphs or drawing attention to certain elements</h3>
+ <p> this is a paragraph for reference.</p>
+ <h4>This is a h4 element and will likely not be used or be the same size as the surrounding P elements.</h4>
+ <p> this is a paragraph for reference.</p>
+ <h5>This is a h5 element and will likely not be used or be the same size as the surrounding P elements.</h5>
+ <p> this is a paragraph for reference.</p>
+</div>
+
+ <br><a name="test-lists">test-lists</a>
+<div id="test-lists" class="row">
+ UL, bulleted
+ <ul>
+ <li>content</li>
+ <li>content</li>
+ <li>content</li>
+ <li>content</li>
+ <li>content</li>
+ <li>content</li>
+ <li>
+ oversized content oversized content oversized content oversized content oversized content oversized content oversized content oversized content oversized content oversized content oversized content oversized contented
+ </li>
+ </ul>
+ <br>
+ OL, numbered
+ <ol>
+ <li>content</li>
+ <li>content</li>
+ <li>content</li>
+ <li>content</li>
+ <li>content</li>
+ <li>content</li>
+ <li>
+ oversized content oversized content oversized content oversized content oversized content oversized content oversized content oversized content oversized content oversized content oversized content oversized contented
+ </li>
+ </ol>
+</div>
+
+ <br><a name="test-table">test-table</a>
+<div id="test-table" class="row">
+ <table>
+ <thead>
+ <tr>
+ <td>head data0,0</td>
+ <td>head data0,1</td>
+ <td>head data0,2</td>
+ <td>head data0,3</td>
+ </tr>
+ </thead>
+ <tbody>
+ <tr>
+ <td>body data1,0</td>
+ <td>body data1,1</td>
+ <td>body data1,2</td>
+ <td>body data1,3</td>
+ </tr>
+ <tr>
+ <td>body data2,0</td>
+ <td>body data2,1</td>
+ <td>body data2,2</td>
+ <td>body data2,3</td>
+ </tr>
+ </tbody>
+ </table>
+</div>
+
+ <br><a name="ninja-form">ninja-form</a>
+<div id="ninja-form" class="row">
+ Insert ninja form here.
+</div>
+
+ <br><a name="image-gallery">image-gallery</a>
+ <h2> below momentarily won't work, nextgen might not use shortcodes anymore</h2>
+<div id="image-gallery" class="row">
+ <?php do_shortcode('[ngg_images gallery_ids="23" template=glmphotos display_type="photocrati-nextgen_basic_slideshow"]');?>
+ <?php do_shortcode('[nggallery gallery_ids="1" template=glmphotos display_type="photocrati-nextgen_basic_slideshow"]');?>
+</div>
+
+ <br><a name="video-gallery">video-gallery</a>
+<div id="video-gallery" class="row">
+ <h2>this will only work with nextgen custom fields plugin installed</h2>
+ <h2>but below won't work at all at the moment</h2>
+
+ <?php do_shortcode('[ngg_images gallery_ids="24" template=glmphotos display_type="photocrati-nextgen_basic_slideshow"]');?>
+ <?php do_shortcode('[nggallery id=24 template="glmvideos" display_type="photocrati-nextgen_basic_slideshow"]');?>
+</div>
+
+ <br><a name="event-calendar">event-calendar</a>
+<div id="event-calendar" class="row">
+ <h2>this will only work with ai1ec time.ly event calendar plugin installed</h2>
+ <?php do_shortcode('[ai1ec view="agenda" events_limit="3"]');?>
+ <?php do_shortcode('[ai1ec view="stream" events_limit="3"]');?>
+</div>
+
+ <br><a name="footer">footer</a>
+<footer>
+ Example footer.
+</footer>
+
+ <br><a name="address">address</a>
+<div id="address">
+ <span>Business Name</span>
+ <span class="bullet"> • </span>
+ <span>123 Lane Street, P.O. Box 321</span>
+ <span class="bullet"> • </span>
+ <span>Village City, MI 49586</span>
+ <span class="bullet"> • </span>
+ <span>231-123-1231</span>
+ <span class="bullet"></span>
+ <span><a href="<?php echo home_url();?>/contact-us">Contact Us</a></span>
+</div>
+
+ <br><a name="copyright">copyright</a>
+<div id="copyright" class="row">
+ <span>© <?php echo date('Y');?> </span>
+ <span class="bullet"> • </span>
+ <span> All Rights Reserved.</span>
+ <span class="bullet"> • </span>
+ <span> Produced by <a target="_blank" href="http://www.gaslightmedia.com">Gaslight Media</a></span>
+</div>
\ No newline at end of file
--- /dev/null
+<?php
+
+// Custom variables used by the jQuery for the interactive map
+wp_register_script('wp_vars_for_vmap',get_stylesheet_directory_uri().'/js/vmap/dist/jquery.vmap.js');
+
+$blocks = fetch_all_glm_blocks(REGIONS_GROUP);
+//$new_wp_query = new WP_Query();
+//$all_wp_pages = $new_wp_query->query(array('post_type' => 'page', 'post_parent' => $toursPageID));
+foreach ($blocks as $block) {
+ $tourPages[] = $block->ID;
+
+ if ( has_post_thumbnail($block) ) {
+ $imageAttributes = wp_get_attachment_image_src(get_post_thumbnail_id($block->ID),'glm-block-image');
+ $tourImage = $imageAttributes[0];
+ } else {
+ $tourImage = get_template_directory_uri().'/assets/tours-default.jpg';
+ }
+ $tourUrl = $block->url ? $block->url : "#";
+ $tourTitle = $block->post_title ? $block->post_title : "";
+ $tourContent = $block->post_content ? nl2br($block->post_content) : "";
+ $tourData[$block->ID] = [
+ 'image' => $tourImage,
+ 'url' => $tourUrl,
+ 'title' => $tourTitle,
+ 'content' => $tourContent,
+ ];
+}
+
+// Enqueued script with localized data.
+wp_enqueue_script( 'wp_vars_for_vmap' );
+wp_localize_script( 'wp_vars_for_vmap', 'tourData', $tourData );
+
+?>
+
+<script src="<?php echo get_stylesheet_directory_uri() ; ?>/js/vmap/dist/jquery.vmap.js"></script>
+<link href="<?php echo get_stylesheet_directory_uri() ; ?>/js/vmap/dist/jqvmap.css" media="screen" rel="stylesheet" type="text/css">
+<script src="<?php echo get_stylesheet_directory_uri() ; ?>/js/vmap/dist/maps/jquery.vmap.fr_regions_2016_mill.js"></script>
+<ul id="interactive-map">
+ <li class="drop-centered menu-item menu-item-object-page menu-item-has-children has-dropdown drop-left not-click">
+ <a href="#">Regions of France</a>
+ <ul class="dropdown">
+ <div id="map"></div>
+ <div id="mapRegionData">
+<!-- <a class="jqvmap-header" href="">
+ REGIONS OF FRANCE
+ </a>-->
+ </div>
+ <div class="jqvmap-region_button glm-button button">Click any region to find out more!</div>
+ </ul>
+ </li>
+</ul>
+<script>
+ //jQuery('#map').vectorMap({map: 'fr_regions_2016_mill'});
+
+jQuery('#map').vectorMap(
+{
+ map: 'fr_regions_2016_mill',
+ backgroundColor: '#fff',
+ borderColor: '#cdcdcd',
+ borderOpacity: 0.25,
+ borderWidth: 2,
+ color: '#ababab',
+ enableZoom: false,
+ hoverColor: '#006a71',
+ hoverOpacity: null,
+ normalizeFunction: 'linear',
+ scaleColors: ['#b6d6ff', '#005ace'],
+ selectedColor: '#c9dfaf',
+ selectedRegions: null,
+ showTooltip: true,
+ showLabel: true,
+ pins: {
+ "fr-gf" : "Guyane<br>française",
+ "fr-h" : "Corse",
+ "fr-f" : "Centre Val de <br>Loire",
+ "fr-e" : "Bretagne",
+ "fr-x1" : "Bourgogne-Franche-<br>Comté",
+ "fr-mq" : "Martinique",
+ "fr-yt" : "Mayotte",
+ "fr-x4" : "Grand Est",
+ "fr-x5" : "Occitaine",
+ "fr-x6" : "Hauts-de-France",
+ "fr-x7" : "Auvergne-Rhône<br>-Alpes",
+ "fr-x3" : "Normandy",
+ "fr-r" : "Pays de la<br>Loire",
+ "fr-gp" : "Guadeloupe",
+ "fr-u" : "Provence-Alpes<br>-Côte-d'Azur",
+// "fr-u" : "Paca",
+ "fr-j" : "Île-de-<br>France",
+ "fr-x2" : "Nouvelle Aquitaine",
+ "fr-re" : "Réunion"
+ }
+// onRegionClick: function(element, code, region)
+// {
+// var message = 'You clicked "'
+// + region
+// + '" which has the code: '
+// + code.toUpperCase();
+//
+// alert(message);
+// }
+
+});
+</script>
\ No newline at end of file
--- /dev/null
+<aside class="left-off-canvas-menu hide-for-large-up opensearchserver.ignore">
+ <?php glm_theme_mobile_off_canvas(); ?>
+ <?php get_template_part('parts/search');?>
+ <ul class="offcanvas-social-list">
+
+ </ul>
+ <?php get_template_part('parts/client-info-offcanvas');?>
+
+</aside>
+<!--
+<aside class="right-off-canvas-menu">
+
+</aside>-->
--- /dev/null
+<form role="search" method="get" class="searchform" action="<?php echo home_url('/').'site-search/'; ?>">
+ <input class="search-input" type="text" placeholder="Search" value="" name="query">
+ <input class="search-button button" type="submit" value="Search" name="submit">
+</form>
\ No newline at end of file
--- /dev/null
+<?php if (is_front_page()) : ?>
+ <div id="slideshow">
+ <?php
+ echo do_shortcode("[metaslider id=597]");
+ ?>
+ <?php if ( is_active_sidebar( 'slideshow' ) ) : ?>
+ <?php dynamic_sidebar( 'slideshow' ); ?>
+ <?php endif; ?>
+ </div>
+<?php endif; ?>
--- /dev/null
+<nav class="top-bar text-justify show-for-large-up" data-topbar role="navigation">
+ <section class="top-bar-section">
+ <?php glm_theme_top_bar(); ?>
+ </section>
+</nav>
+<nav class="tab-bar show-for-medium-down">
+ <section class="left-small">
+ <a class="left-off-canvas-toggle menu-icon" href="#"><span>Menu</span></a>
+ </section>
+</nav>
--- /dev/null
+# www.robotstxt.org/
+# www.google.com/support/webmasters/bin/answer.py?hl=en&answer=156449
+
+User-agent: *
--- /dev/null
+
+.home-feed-post {
+ padding-bottom: 25px;
+// @media #{$small-only} {
+// > * {
+// text-align: center;
+// }
+// }
+}
+input[type="submit"].blogbutton {
+ border-radius: 3px;
+ color: $white;
+ border: 2px solid $white;
+ font-weight: bold;
+ font-size: 13px;
+ padding: 2px 5px;
+ margin-top: -10px;
+ text-transform: uppercase;
+ &:hover {
+ cursor: pointer;
+ background: $white;
+ border: 2px solid #035C84;
+ color: white;
+ }
+}
+#blog-posts-over{
+ .search_result_context{
+ margin-bottom: 5px;
+ }
+}
+#blog-posts-over article {
+// padding-top: 10px;
+// margin-bottom: 15px;
+ display: inline-block;
+ width: 100%;
+ z-index: 0;
+ line-height: 120%;
+ .entry-header {
+ background: transparent;
+ }
+ #addthis_wrapper {
+ margin-top: 3px;
+ }
+ p {
+// padding-bottom: 15px;
+ }
+ a.read-more {
+ border: 2px solid $white;
+ font-weight: bold;
+ font-size: 13px;
+ padding: 0 3px;
+ display: inline;
+ text-transform: uppercase;
+ &:hover {
+ background: $white;
+ border: 2px solid $blue;
+ color: $dark-tan;
+ }
+ }
+ .entry-header {
+ margin-bottom: 15px;
+ .entry-title {
+ margin-bottom: 0;
+ }
+ .meta.date {
+ font-weight: bold;
+ font-size: 13px;
+// font-weight: bold;
+ }
+ }
+ h1.entry-title{
+ line-height: 1.2;
+ font-size: rem-calc(38);
+ }
+ .single-title{
+ & a{
+ text-decoration: none;
+ }
+ padding-bottom: 15px;
+ }
+}
+article .entry-header .featured-image-wrap{
+ margin-bottom: 25px;
+}
+.blog-excerpt-date{
+ font-size: 12px;
+ margin-bottom: 10px;
+ color: grey;
+
+}
+/*#searchform div input &[type="text"] {
+ width: 95%;
+}*/
+#blog-posts-over .entry-meta {
+ text-align: center;
+ color: #757575;
+ font-size: 12px;
+}
+#blog-posts-over > div {
+ margin: 25px 0 50px 0;
+}
+#blog-side-info {
+ #searchform {
+ margin-bottom: 30px;
+ }
+ p {
+ margin-bottom: 0;
+ }
+}
+@media #{$small-only} {
+ #blog-side-info-wrapper {
+ float: none;
+ margin: 0 auto;
+ clear: both;
+ }
+ #blog-side-info {
+ padding-left: 0;
+ border-left: 0;
+ ul {
+ margin-left: 0;
+ margin-top:10px;
+ }
+ #searchform {
+ padding: 35px 0;
+ #s {
+ width: 100%;
+ }
+ }
+ }
+}
+#blog-side-info {
+ padding-right: 10px;
+ ul {
+ list-style-type: none;
+ li {
+ margin-bottom: 15px;
+ }
+ }
+}
+.blog-featured-home, .blog-featured-archive{
+ height: 250px;
+ float: left;
+ background-size: cover;
+ background-repeat: no-repeat;
+ background-position: center;
+}
+#addthis_wrapper{
+ float: right;
+}
+
--- /dev/null
+body {
+ .shadow-wrapper {
+ margin: 0 auto;
+ background: $white;
+ box-shadow: 0 0 15px -6px $black;
+ -ms-box-shadow: 0 0 15px -6px $black;
+ -moz-box-shadow: 0 0 15px -6px $black;
+ -webkit-box-shadow: 0 0 15px -6px $black;
+
+ max-width: 1000px;
+ padding-top: rem-calc(20);
+ }
+}
--- /dev/null
+#copyright {
+ position: relative;
+ z-index: 0;
+ background: $green;
+ padding: 5px 0;
+ margin: 0 auto;
+ float: none;
+ text-align: center;
+ span {
+ font-size: rem-calc(10);
+ color: $white;
+ a {
+ color: $white;
+ text-decoration: underline;
+ }
+ }
+}
+#footer_address span.bullet,
+#copyright span.bullet {
+ margin: 0 5px;
+ @media #{$small-only} {
+ display: none !important;
+ }
+}
--- /dev/null
+// This document will contain all the styles that we want to apply to every
+// site. Make sure this is placed before _structures (if that is still the
+// primary css file).
+
+h1,h2,h3,h4,h5,h6 {
+ clear: both;
+}
+
+/* PLUGINS */
+/* Nextgen */
+.gallery li a img { // without this images will overlap each other at certain widths
+ display: block;
+ width: 100%;
+}
+.ngg-gallery-thumbnail, .ngg-gallery-thumbnail-box {
+ float: none !important;
+}
+.ngg-album-compact h4 .ngg-album-desc {
+ height: auto !important;
+ font-family: $font-family-serif;
+ font-weight: 400;
+}
+.ngg-album-compact .album-meta-wrapper h4 a {
+ font-style: normal;
+}
+.album-meta-wrapper {
+ display: block;
+ height: 54px;
+ margin-bottom: 20px;
+}
+.ngg-glmalbums {
+ margin: 10px 0;
+ min-height: 260px;
+ @media #{$small-only} {
+ min-height: 180px;
+ }
+}
+.ngg-album-link {
+ text-align: center;
+}
+/* Ninja Forms */
+.ninja-forms-form-wrap {
+ max-width: 600px;
+ margin: 0 auto;
+ input[type=submit] {
+ @include button();
+ display: block;
+ margin: 0 auto;
+ }
+}
+/* For fixing cellphones not showing phone numbers because of /helpful/ auto-coloring */
+a[href^=tel]{
+ color:inherit;
+ text-decoration:none;
+}
\ No newline at end of file
--- /dev/null
+/* for the mobile menu */
+aside.left-off-canvas-menu {
+// background-color: rgba(0, 0, 0, 0.7);
+// color: white;
+}
+aside.left-off-canvas-menu li.page_item {
+ display: block;
+ overflow: hidden;
+ position: relative;
+ padding: 4px 8px;
+}
+aside.left-off-canvas-menu .off-canvas-list ul li a {
+ line-height: 20px;
+ color: white;
+ border-bottom: 1px solid #b1b3b6;
+ background-repeat: no-repeat;
+ background-position: 3px 50%;
+}
+aside.left-off-canvas-menu li.page_item_has_children a.toggle {
+ position: absolute;
+ right: 10px;
+ top: 5px;
+ width: auto;
+ text-decoration: none;
+ &:before {
+ @include off-canvas-point(right, $white, 17px);
+ }
+ &:hover {
+ background: transparent;
+ }
+}
+aside.left-off-canvas-menu li.page_item_has_children a.toggle.open {
+ @include off-canvas-point(down, $white);
+}
+aside.left-off-canvas-menu ul.children {
+ display: none;
+}
+aside.left-off-canvas-menu .off-canvas-list ul li > ul li > a {
+ padding-left: 10px;
+ margin-left: 25px;
+ line-height: 18px;
+}
+aside.left-off-canvas-menu ul.open {
+ display: block;
+}
+.left-off-canvas-menu {
+ list-style: none;
+ li {
+ a {
+ color: $white;
+ font-size: rem-calc(16);
+ line-height: 1.2;
+ margin-bottom: 5px;
+ border-color: white;
+ }
+ a:hover {
+ color: $dark-tan;
+ }
+ .dropdown {
+ list-style: none;
+ }
+ }
+ ul {
+ list-style: none;
+
+ padding: 10px 0;
+ li {
+ color: $white;
+ a {
+ color: $white;
+ }
+ ul {
+ list-style: none;
+ li {
+ a {
+ width: 85%;
+ display: block;
+ white-space: pre-wrap;
+ }
+ }
+ }
+ }
+ }
+ .searchform {
+ .search-button {
+ float: none;
+ margin: 0 auto 10px;
+
+ display: block;
+ }
+ }
+}
+.offcanvas-social-list {
+ @include inline-list;
+ margin-left: auto;
+ display: inline-block;
+ li a.facebook, li a.insta, li a.twit, li a.tube {
+ background: url(../assets/Social-Icons-Set-color.png) no-repeat;
+ width: 25px;
+ height: 25px;
+ display: block;
+ }
+ li {
+ display: inline-block;
+ padding: 5px;
+ a {
+ &.facebook {
+ background-position: -672px 0;
+ }
+ &.insta {
+ background-position: -751px 0;
+ }
+ &.twit {
+ background-position: -712px 0;
+ }
+ &.tube {
+ background-position: -792px 0;
+ }
+ }
+ }
+}
+/* End Mobile Menu */
--- /dev/null
+.page-front {
+ @media #{$small-only}{
+ position: relative;
+ }
+ #block-row {
+ margin-top: 100px;
+ .blocks {
+ .block {
+ position: relative;
+ @media #{$small-only} {
+ float: none;
+ left: 0;
+ right: 0;
+ max-width: 395px;
+ margin: 0 auto 15px;
+ }
+ img {
+ border: 2px solid $white;
+ width: 100%;
+ height: 100%;
+ box-shadow: 0 2px 5px 0 $black;
+ -webkit-box-shadow: 0 2px 5px 0 $black;
+ -moz-box-shadow: 0 2px 5px 0 $black;
+ -ms-box-shadow: 0 2px 5px 0 $black;
+ @media #{$small-only} {
+ float: none;
+ left: 0;
+ right: 0;
+ }
+ }
+ .block-area {
+ max-width: 303.5px;
+ position: absolute;
+ z-index: 3;
+ top: 0;
+ display: block;
+ width: 91%;
+ height: 100%;
+ h4 {
+ background: #80153f;
+ position: absolute;
+ bottom: 5px;
+ display: block;
+ padding: 0 5px;
+ width: 98.5%;
+ left: 2px;
+ text-align: center;
+ line-height: 1.8;
+ font-size: rem-calc(19);
+ @media screen and (min-width: 871px) and (max-width: 969px){
+ font-size: rem-calc(17);
+ }
+ @media screen and (min-width: 847px) and (max-width: 870px){
+ font-size: rem-calc(16);
+ width: 96.5%;
+ }
+ @media screen and (min-width: 811px) and (max-width: 846px){
+ font-size: rem-calc(15);
+ width: 96.5%;
+ }
+ @media screen and (min-width: 774px) and (max-width: 810px){
+ font-size: rem-calc(14);
+ width: 96%;
+ }
+ @media screen and (min-width: 641px) and (max-width: 773px){
+ font-size: rem-calc(12);
+ width: 96%;
+ }
+ @media screen and (min-width: 385px) and (max-width: 640px){
+ width: 100%;
+ }
+ @media screen and (min-width: 365px) and (max-width: 384px){
+ width: 99.6%;
+ }
+ @media screen and (min-width: 320px) and (max-width: 364px){
+ width: 99%;
+ }
+ @media #{$small-only} {
+ float: none;
+ left: 0;
+ right: 0;
+ }
+ }
+ &:hover {
+ min-height: 200px;
+ background: rgba($black, 0.8);
+ height: auto;
+ h4 {
+ position: relative;
+ top: 0px;
+ display: block;
+ width: 98.5%;
+ left: 2px;
+ padding: 0 5px;
+ font-size: rem-calc(19);
+ text-align: center;
+ line-height: 1.8;
+ @media screen and (min-width: 855px) and (max-width: 924px){
+ font-size: rem-calc(18);
+ }
+ @media screen and (min-width: 847px) and (max-width: 854px){
+ font-size: rem-calc(18);
+ width: 96.5%;
+ }
+ @media screen and (min-width: 774px) and (max-width: 846px){
+ font-size: rem-calc(16);
+ width: 96.5%;
+ }
+ @media screen and (min-width: 641px) and (max-width: 773px){
+ font-size: rem-calc(13);
+ width: 96.5%;
+ }
+ @media screen and (min-width: 320px) and (max-width: 640px){
+ width: 100%;
+ }
+ @media #{$small-only} {
+ float: none;
+ left: 0;
+ right: 0;
+ }
+ }
+ p {
+ padding: 0 10px;
+ display: inline-block;
+ color: $white;
+ }
+ a.blocks-readmore {
+ padding: 0 10px;
+ display: inline-block;
+ color: $white;
+ &:hover {
+ color: $green;
+ }
+ }
+ }
+ @media #{$small-only} {
+ max-width: 365px;
+ width: 92.5%;
+ &:hover {
+ min-height: 240.5px;
+ }
+ }
+ }
+ p {
+ display: none;
+ }
+ a.blocks-readmore {
+ display: none;
+ }
+ }
+ }
+ }
+ #main-content {
+ h1 {
+ font-size: rem-calc(32);
+ font-family: Roman;
+ font-style: italic;
+ color: $dark-tan;
+ }
+ }
+}
+.page-inside {
+ @media #{$small-only}{
+ position: relative;
+ }
+}
+#main-content {
+ h4 {
+ color: $blue;
+ }
+}
+#slide-cover {
+ position: absolute;
+ top: 200px;
+ height: 575px;
+ @include gradient(rgba($white, 0), $white);
+ width: 100%;
+// @media screen and (min-width: 1025px) and (max-width: 1300px){
+// height: 100%;
+// max-height: 500px;
+// min-height: 450px;
+// }
+// @media screen and (min-width: 1080px) and (max-width: 1250px){
+// min-height: 400px;
+// }
+// @media screen and (min-width: 1025px) and (max-width: 1079px){
+// min-height: 375px;
+// }
+// @media #{$medium-only}{
+// position: relative;
+// height: auto;
+// min-height: 295px;
+// }
+// @media screen and (min-width: 1011px) and (max-width: 1024px){
+// top: 110px;
+// }
+// @media screen and (min-width: 961px) and (max-width: 1010px){
+// top: 105px;
+// }
+// @media screen and (min-width: 916px) and (max-width: 960px){
+// top: 100px;
+// }
+// @media screen and (min-width: 830px) and (max-width: 915px){
+// top: 85px;
+// }
+// @media screen and (min-width: 795px) and (max-width: 829px){
+// top: 70px;
+// }
+// @media screen and (min-width: 770px) and (max-width: 794px){
+// top: 55px;
+// }
+// @media screen and (min-width: 735px) and (max-width: 769px){
+// top: 40px;
+// }
+// @media screen and (min-width: 700px) and (max-width: 734px){
+// top: 30px;
+// }
+// @media screen and (min-width: 641px) and (max-width: 699px){
+// top: 15px;
+// }
+// @media screen and (max-width: 640px) {
+// height: auto;
+// min-height: 200px;
+// position: absolute;
+// top: 136px;
+// }
+// @media screen and (max-width: 415px) {
+// height: auto;
+// min-height: 200px;
+// position: absolute;
+// top: 120px;
+// }
+// @media screen and (max-width: 385px) {
+// height: auto;
+// min-height: 200px;
+// position: absolute;
+// top: 110px;
+// }
+// @media screen and (max-width: 355px) {
+// height: auto;
+// min-height: 200px;
+// position: absolute;
+// top: 100px;
+// }
+// @media screen and (max-width: 330px) {
+// height: auto;
+// min-height: 200px;
+// position: absolute;
+// top: 90px;
+// }
+}
+#content-wrapper {
+ position: relative;
+// @media screen and (min-width: 795px) and (max-width: 1024px){
+// top: -35px;
+// }
+// @media screen and (min-width: 770px) and (max-width: 794px){
+// top: -45px;
+// }
+// @media screen and (min-width: 735px) and (max-width: 769px){
+// top: -50px;
+// }
+// @media screen and (min-width: 700px) and (max-width: 734px){
+// top: -65px;
+// }
+// @media screen and (min-width: 641px) and (max-width: 699px){
+// top: -80px;
+// }
+}
+#rotation {
+ margin: 20px 0 25px;
+ background: #f1efea;
+ padding: 25px 0px 30px;
+ position: relative;
+ width: 100%;
+ display: inline-block;
+ .event {
+ h6 {
+ padding: 0 15px;
+ }
+ span {
+ display: inline-block;
+ color: $green;
+ }
+ }
+ h1 {
+ font-weight: normal;
+ margin-top: 0;
+ line-height: 1.2;
+ }
+ .arrow {
+ position: relative;
+ top: 70px;
+ @media #{$small-only} {
+ top: 95px;
+ }
+ }
+ ul {
+ li a{
+ position: relative;
+ &:hover {
+ &:before {
+ position: absolute;
+ display: block;
+ color: $white;
+ font-size: rem-calc(20);
+ content: attr(data-title);
+ z-index: 3;
+ top: 40%;
+ left: 8%;
+ text-align: center;
+ }
+ &:after {
+ position: absolute;
+ top: 0;
+ left: 0px;
+ height: 100%;
+ width: 100%;
+// max-height: 193px;
+// max-width: 193px;
+ background: rgba($black, 0.75);
+ display: block;
+ content: "";
+ z-index: 2;
+
+ }
+ }
+// &:nth-child(2){
+// &:hover {
+// &:before {
+// content: "Sample 2";
+// }
+// }
+// }
+// &:nth-child(3){
+// &:hover {
+// &:before {
+// content: "Sample 3";
+// }
+// }
+// }
+// &:nth-child(4) {
+// &:hover {
+// &:before {
+// content: "Sample 4";
+// }
+// }
+// }
+ }
+ }
+}
+#event-container {
+
+}
+#home-feed-posts {
+ h3 {
+ margin-bottom: 0;
+ a {
+ color: $green;
+ }
+ }
+ span {
+ margin-bottom: 15px;
+ color: #808285;
+ }
+ img {
+ display: inline-block;
+ border-bottom: 5px solid $dark-tan;
+// margin-bottom: 30px;
+ padding-top: 10px;
+ float: left;
+ margin-right: 15px;
+ @media #{$small-only} {
+ display: block;
+ float: none;
+ margin: 0 auto;
+ }
+ }
+ a.read-more {
+ display: inline;
+ }
+}
+.page-header {
+ position: relative;
+ top: 0;
+ max-height: 370px;
+
+ overflow-y: hidden;
+ z-index: -1;
+ width: 100%;
+ @media#{$small-only}{
+
+ }
+}
+main .page-header .header-image-background{
+ @media#{$small-only}{
+
+ }
+}
+//@media(max-width: 640px){
+// .search-results #header-image{
+// height: 350px;
+// min-height: 0px;
+// max-height: none;
+// }
+//}
+.breadcrumbs {
+ margin-top: 10px;
+}
+#content-bulk {
+ #con {
+ margin: 0;
+ }
+ h2 {
+ text-transform: uppercase;
+ font-size: 25px;
+ }
+ footer {
+ margin: 35px 0;
+ #address {
+ margin-top: 25px;
+ p {
+ font-size: 12px;
+ margin-top: 5px;
+ }
+ img {
+ margin: 0;
+ padding-right: 5px;
+ }
+ a {
+ font-size: 12px;
+ }
+ }
+ img {
+ box-shadow: none;
+ }
+ }
+}
+#carousel_inner {
+ float:left; /* important for inline positioning */
+ width:100%; /* important (this width = width of list item(including margin) * items shown */
+ overflow: hidden; /* important (hide the items outside the div) */
+ /* non-important styling bellow */
+ background: #F0F0F0;
+ @media #{$medium-only} {
+ float: none;
+ margin: 0 auto;
+ width: 630px;
+ }
+ @media #{$small-only} {
+ width: 210px;
+ float:none;
+ margin: 0 auto;
+ }
+}
+
+#carousel_ul {
+ position:relative;
+ left: -210px; /* important (this should be negative number of list items width(including margin) */
+ list-style-type: none; /* removing the default styling for unordered list items */
+ margin: 0px;
+ padding: 0px;
+ width: 9999px; /* important */
+ /* non-important styling bellow */
+ padding-bottom:10px;
+}
+
+#carousel_ul li{
+ float: left; /* important for inline positioning of the list items */
+ width:200px; /* fixed width, important */
+ /* just styling bellow*/
+ padding:0px;
+ height:200px;
+ background: #000000;
+ margin-top:10px;
+ margin-bottom:10px;
+ margin-left:5px;
+ margin-right:5px;
+}
+
+#carousel_ul li img {
+ margin-bottom:-4px; /* IE is making a 4px gap bellow an image inside of an anchor (<a href...>) so this is to fix that*/
+ /* styling */
+ cursor:pointer;
+ cursor: hand;
+ border:0px;
+}
+
+#left_scroll img, #right_scroll img{
+ /*styling*/
+ cursor: pointer;
+ cursor: hand;
+}
+.tour-link{
+ display: inline-block;
+ width: 100%;
+ height: 100%;
+}
+#tours-tags-grid li{
+ display: inline-block;
+ margin: 15px;
+ max-width: 200px;
+ vertical-align: top;
+ & a{
+ font-size: 1.1rem;
+ }
+}
+.tag_image:hover{
+ cursor: pointer;
+}
+@media(max-width: 482px) and (min-width: 320px){
+ #tours-tags-grid {
+ text-align: center;
+ }
+}
+.related_tours{
+ list-style: none;
+ line-height: 1;
+ padding: 6px;
+ & a{
+ color: black;
+ font-family: "josefin sans";
+ line-height: 1;
+ }
+
+}
+small.product_category_title_item{
+ text-align: left;
+ display: block;
+ font-size: 13px;
+ color: $burgandy;
+ margin-bottom: 7px;
+ margin-top: -3px;
+}
+#container #content .product .woocommerce-tabs .panel {
+ h1, h3, h4, h6{
+ color: $teal;
+ }
+ h2, h5{
+ color: $base;
+ }
+}
\ No newline at end of file
--- /dev/null
+ @import "mixins/gradient";
+ @import "mixins/off-canvas-arrow";
\ No newline at end of file
--- /dev/null
+footer.main {
+ background-color: $green;
+ position: relative;
+ z-index: 1;
+// bottom: 40px;
+ left: 0;
+ right: 0;
+ padding: 20px 0 0px;
+ box-shadow: 0 8px 10px 0px rgba(0, 0, 0, 0.5);
+ -ms-box-shadow: 0 8px 10px 0px rgba(0, 0, 0, 0.5);
+ -moz-box-shadow: 0 8px 10px 0px rgba(0, 0, 0, 0.5);
+ -webkit-box-shadow: 0 8px 10px 0px rgba(0, 0, 0, 0.5);
+// @media only screen and (max-width: 1024px) {
+// position: relative;
+// bottom: 0;
+// }
+ a {
+ color: $white;
+ text-decoration: underline;
+ &:hover {
+ color: $white;
+ }
+ }
+}
+#space {
+ background: url(../assets/general.jpg) no-repeat center center;
+ background-size: cover;
+ height: 400px;
+}
+#footer_address {
+ .address {
+// padding-left: 10px;
+ margin-bottom: 10px;
+ }
+ .contact {
+// padding-left: 10px;
+ margin-left: -5px;
+ }
+ .footer-img {
+ padding-top: 10px;
+ }
+ h4 {
+ text-transform: none;
+ letter-spacing: normal;
+ margin: 0;
+ }
+ span{
+ color: $white;
+ white-space: nowrap;
+ }
+ a {
+ span {
+ color: $white;
+ text-decoration: underline;
+ }
+ color: $white;
+ text-decoration: underline;
+ }
+}
+#footer-widget {
+ li {
+ list-style: none;
+ ul {
+ margin: 0;
+ list-style: none;
+ li {
+ display: inline-block;
+ padding: 0 5px;
+ width: auto;
+ }
+ }
+ }
+}
+.social {
+ display: inline-block;
+ ul {
+ list-style: none;
+ margin: 15px 0 0;
+ display: block;
+ li a.facebook, li a.insta, li a.twit, li a.tube {
+ background: url(../assets/Social-Icons-Set-color.png) no-repeat;
+ width: 25px;
+ height: 25px;
+ display: block;
+ }
+ li {
+ display: inline-block;
+ padding: 5px;
+ a {
+ &.facebook {
+ background-position: -672px 0;
+ }
+ &.insta {
+ background-position: -751px 0;
+ }
+ &.twit {
+ background-position: -712px 0;
+
+ }
+ &.tube {
+ background-position: -792px 0;
+ }
+ }
+ }
+ }
+}
+#connect {
+ padding-top: 20px;
+ background: #4c4d4f;
+ ul{
+ margin: 0;
+ list-style: none;
+ li {
+ background: none;
+ padding: 0 5px;
+ display: inline-block;
+ & > a {
+ display: block;
+ font-family: Open Sans, sans-serif;
+ font-size: 12px;
+ color: #fff;
+ padding: 20px 18px;
+ line-height: 1.2;
+ }
+ a {
+ &#current {
+ background: $l-blue;
+ }
+ }
+ }
+ }
+}
--- /dev/null
+header.main {
+ padding-top: 5px;
+// height: 137px;
+ background: $white;
+// z-index: 5;
+ -webkit-box-shadow: 5px 3px 6px -3px #000000;
+ -moz-box-shadow: 5px 3px 6px -3px #000000;
+ box-shadow: 5px 3px 6px -3px #000000;
+// @media(max-width: 732px) and (min-width: 639px){
+// height: 177px;
+// }
+// @media #{$small-only}{
+// height: auto;
+// top: 0;
+// }
+
+ span {
+ color: $green;
+ font-size: rem-calc(16);
+ margin: 0 5px;
+ }
+ #logo-tag {
+
+ h3 {
+ clear: none;
+ display: inline;
+ color: $green;
+ white-space: nowrap;
+ }
+ img#logo {
+ display: block;
+ }
+ }
+// & #logo {
+// img {
+// margin-bottom: 15px;
+// }
+// }
+// & .search {
+// input {
+// height: 20px;
+// width: 167px;
+// padding: 0 8px;
+// margin: 13px 0px 0px 18px;
+// border-radius: 3px;
+// font-size: 10px;
+// color: $black;
+// display: inline-block;
+// }
+// a {
+// &.magnifying-glass {
+// font-size: 10em; /* This controls the size. */
+// display: inline-block;
+// width: rem-calc(10);
+// height: rem-calc(10);
+// border: rem-calc(2) solid $d-blue;
+// position: relative;
+// border-radius: 0.35em;
+// margin: 0 0 0 -25px;
+// &:before {
+// content: "";
+// display: inline-block;
+// position: absolute;
+// right: rem-calc(-7);
+// bottom: rem-calc(-4);
+// border-width: 0;
+// background: $d-blue;
+// width: rem-calc(8);
+// height: rem-calc(2);
+// -webkit-transform: rotate(45deg);
+// -moz-transform: rotate(45deg);
+// -ms-transform: rotate(45deg);
+// transform: rotate(45deg);
+// }
+// }
+// }
+// }
+// #sec-nav {
+// position: relative;
+// text-align: left;
+// padding: 10px 0;
+// margin: 0 0 15px 45px;
+// ul {
+// margin: 0;
+// li {
+// display: inline;
+// a {
+// font-size: 12px;
+// color: $d-blue;
+// padding: 0 5px;
+// font-weight: bold;
+// }
+// }
+// }
+// & > ul > li {
+// position: relative;
+// &:before {
+// color: $aluminum;
+// content: "|";
+// position: absolute;
+// top: 2px;
+// left: -15px;
+// font-size: 14px;
+// font-weight: bold;
+// display:block;
+// padding: 0 10px;
+// }
+// &:first-child:before {
+// content: none;
+// }
+// }
+// }
+// img {
+// margin-left: 5px;
+// }
+// .social {
+// margin-top: -25px;
+// padding-right: 0;
+// a {
+// float: right;
+// margin: 0 5px;
+// img {
+// margin: 0;
+// }
+// }
+// }
+}
+//@media(max-width: 480px){
+// .search-results #header-image .no-featured{
+// height: 250px;
+// }
+//}
+
--- /dev/null
+@import "plugins/nextgen";
+@import "plugins/gravityForms";
+@import "plugins/woocommerce";
\ No newline at end of file
--- /dev/null
+/* for the mobile menu */
+aside.right-off-canvas-menu {
+ background-color: $primary-color;
+ color: white;
+}
+aside.right-off-canvas-menu li.page_item {
+ display: block;
+ overflow: hidden;
+ position: relative;
+ padding: 4px 8px;
+}
+aside.right-off-canvas-menu .off-canvas-list ul li a {
+ line-height: 20px;
+ color: white;
+ border-bottom: 1px solid #b1b3b6;
+ background-repeat: no-repeat;
+ background-position: 3px 50%;
+}
+aside.right-off-canvas-menu li.page_item_has_children a.toggle {
+ position: absolute;
+ right: 10px;
+ top: 5px;
+ text-decoration: none;
+ &:before {
+ @include off-canvas-point(right, $white, 17px);
+ }
+ &:hover {
+ background: transparent;
+ }
+}
+aside.right-off-canvas-menu li.page_item_has_children a.toggle.open {
+ @include off-canvas-point(down, $white);
+}
+aside.right-off-canvas-menu ul.children {
+ display: none;
+}
+aside.right--menu .off-canvas-list ul li > ul li > a {
+ padding-left: 10px;
+ margin-left: 25px;
+ line-height: 18px;
+}
+aside.right-off-canvas-menu ul.open {
+ display: block;
+}
+.right-off-canvas-menu {
+ list-style: none;
+ li {
+ a {
+ color: $white;
+ font-size: rem-calc(16);
+ line-height: 1.2;
+ margin-bottom: 5px;
+ border-color: white;
+ }
+ a:hover {
+ color: black;
+ }
+ .dropdown {
+ list-style: none;
+ }
+ }
+ ul {
+ list-style: none;
+
+ padding: 10px 0;
+ li {
+ a {
+ color: $white;
+ }
+ ul {
+ list-style: none;
+ li {
+ a {
+ width: 85%;
+ display: block;
+ white-space: pre-wrap;
+ }
+ }
+ }
+ }
+ }
+}
+.offcanvas-social-list {
+ @include inline-list;
+ margin-right: auto;
+}
+/* End Mobile Menu */
--- /dev/null
+.search-top {
+ #searchform {
+ text-align: left;
+ display: inline-block;
+ position: relative;
+ #search-button {
+ width: 22px;
+ right: 0px;
+ position: absolute;
+ padding: 0;
+ border: 1px solid lightgray;
+ }
+ }
+ input {
+ height: 20px;
+ width: 167px;
+ padding: 0 8px;
+ margin: 13px 0px 0px 18px;
+ border-radius: 3px;
+ font-size: 10px;
+ color: $black;
+ display: inline-block;
+ }
+ a {
+ &.magnifying-glass {
+ font-size: 10em; /* This controls the size. */
+ width: rem-calc(12);
+ height: rem-calc(12);
+ border: rem-calc(2) solid darkblue;
+ position: absolute;
+ top: 15px;
+ border-radius: 0.35em;
+ margin: 0 0 0 -20px;
+ &:before {
+ content: "";
+ display: inline-block;
+ position: absolute;
+ right: rem-calc(-7);
+ bottom: rem-calc(-4);
+ border-width: 0;
+ background: darkblue;
+ width: rem-calc(8);
+ height: rem-calc(2);
+ -webkit-transform: rotate(45deg);
+ -moz-transform: rotate(45deg);
+ -ms-transform: rotate(45deg);
+ transform: rotate(45deg);
+ }
+ }
+ }
+}
\ No newline at end of file
--- /dev/null
+// Foundation by ZURB
+// foundation.zurb.com
+// Licensed under MIT Open Source
+
+//
+
+// Table of Contents
+// Foundation Settings
+//
+// a. Base
+// b. Grid
+// c. Global
+// d. Media Query Ranges
+// e. Typography
+// 01. Accordion
+// 02. Alert Boxes
+// 03. Block Grid
+// 04. Breadcrumbs
+// 05. Buttons
+// 06. Button Groups
+// 07. Clearing
+// 08. Dropdown
+// 09. Dropdown Buttons
+// 10. Flex Video
+// 11. Forms
+// 12. Icon Bar
+// 13. Inline Lists
+// 14. Joyride
+// 15. Keystrokes
+// 16. Labels
+// 17. Magellan
+// 18. Off-canvas
+// 19. Orbit
+// 20. Pagination
+// 21. Panels
+// 22. Pricing Tables
+// 23. Progress Bar
+// 24. Range Slider
+// 25. Reveal
+// 26. Side Nav
+// 27. Split Buttons
+// 28. Sub Nav
+// 29. Switch
+// 30. Tables
+// 31. Tabs
+// 32. Thumbnails
+// 33. Tooltips
+// 34. Top Bar
+// 36. Visibility Classes
+
+// a. Base
+// - - - - - - - - - - - - - - - - - - - - - - - - -
+
+// This is the default html and body font-size for the base rem value.
+$rem-base: 16px;
+
+// Allows the use of rem-calc() or lower-bound() in your settings
+@import "foundation/functions";
+
+// The default font-size is set to 100% of the browser style sheet (usually 16px)
+// for compatibility with browser-based text zoom or user-set defaults.
+
+// Since the typical default browser font-size is 16px, that makes the calculation for grid size.
+// If you want your base font-size to be different and not have it affect the grid breakpoints,
+// set $rem-base to $base-font-size and make sure $base-font-size is a px value.
+$base-font-size: 100%;
+
+// The $base-font-size is 100% while $base-line-height is 150%
+$base-line-height: 150%;
+
+// We use this to control whether or not CSS classes come through in the gem files.
+$include-html-classes: true;
+// $include-print-styles: true;
+$include-html-global-classes: $include-html-classes;
+
+// b. Grid
+// - - - - - - - - - - - - - - - - - - - - - - - - -
+
+// $include-html-grid-classes: $include-html-classes;
+// $include-xl-html-grid-classes: false;
+
+$row-width: rem-calc(1000);
+$total-columns: 12;
+$column-gutter: rem-calc(30);
+
+//$last-child-float: $opposite-direction;
+
+// c. Global
+// - - - - - - - - - - - - - - - - - - - - - - - - -
+
+// We use these to define default font stacks
+$font-family-sans-serif: "Josefin Sans", sans-serif;
+$font-family-serif: Georgia, Cambria, "Times New Roman", Times, serif;
+$font-family-monospace: Consolas, "Liberation Mono", Courier, monospace;
+
+// We use these to define default font weights
+$font-weight-normal: normal;
+$font-weight-bold: bold;
+
+$white : #FFFFFF;
+$ghost : #FAFAFA;
+$snow : #F9F9F9;
+$vapor : #F6F6F6;
+$white-smoke : #F5F5F5;
+$silver : #EFEFEF;
+$smoke : #EEEEEE;
+$gainsboro : #DDDDDD;
+$iron : #CCCCCC;
+$base : #AAAAAA;
+$aluminum : #999999;
+$jumbo : #888888;
+$monsoon : #777777;
+$steel : #666666;
+$charcoal : #555555;
+$tuatara : #444444;
+$oil : #333333;
+$jet : #222222;
+$black : #000000;
+$green : #009543;
+$red : #d2222a;
+$d-blue : #014976;
+$l-blue : #96d3f9;
+$blue : #0065a4;
+$teal : #006a71;
+$dark-teal : #044d53;
+$tan : #c8c0ab;
+$dark-tan : #a6a090;
+$burgandy : #572700;
+
+// We use these as default colors throughout
+$primary-color: #008CBA;
+$secondary-color: #e7e7e7;
+$alert-color: #f04124;
+$success-color: #43AC6A;
+$warning-color: #f08a24;
+$info-color: #a0d3e8;
+
+// We use these to control various global styles
+// $body-bg: $white;
+$body-font-color: $black;
+$body-font-family: $font-family-sans-serif;
+$body-font-weight: $font-weight-normal;
+$body-font-style: normal;
+
+// We use this to control font-smoothing
+// $font-smoothing: antialiased;
+
+// We use these to control text direction settings
+// $text-direction: ltr;
+// $opposite-direction: right;
+// $default-float: left;
+// $last-child-float: $opposite-direction;
+
+// We use these to make sure border radius matches unless we want it different.
+// $global-radius: 3px;
+// $global-rounded: 1000px;
+
+// We use these to control inset shadow shiny edges and depressions.
+// $shiny-edge-size: 0 1px 0;
+// $shiny-edge-color: rgba($white, .5);
+// $shiny-edge-active-color: rgba($black, .2);
+
+// d. Media Query Ranges
+// - - - - - - - - - - - - - - - - - - - - - - - - -
+
+$small-range: (0em, 40em);
+$medium-range: (40.063em, 64em);
+$large-range: (64.063em, 90em);
+$xlarge-range: (90.063em, 120em);
+$xxlarge-range: (120.063em, 99999999em);
+
+$screen: "only screen";
+
+$landscape: "#{$screen} and (orientation: landscape)";
+$portrait: "#{$screen} and (orientation: portrait)";
+
+$small-up: $screen;
+$small-only: "#{$screen} and (max-width: #{upper-bound($small-range)})";
+
+$medium-up: "#{$screen} and (min-width:#{lower-bound($medium-range)})";
+$medium-only: "#{$screen} and (min-width:#{lower-bound($medium-range)}) and (max-width:#{upper-bound($medium-range)})";
+
+$medium-down: "#{$screen} and (min-width:#{lower-bound($small-range)}) and (max-width:#{upper-bound($medium-range)})";
+
+$large-up: "#{$screen} and (min-width:#{lower-bound($large-range)})";
+$large-only: "#{$screen} and (min-width:#{lower-bound($large-range)}) and (max-width:#{upper-bound($large-range)})";
+
+$large-down: "#{$screen} and (min-width:#{lower-bound($small-range)}) and (max-width:#{upper-bound($large-range)})";
+
+$xlarge-up: "#{$screen} and (min-width:#{lower-bound($xlarge-range)})";
+$xlarge-only: "#{$screen} and (min-width:#{lower-bound($xlarge-range)}) and (max-width:#{upper-bound($xlarge-range)})";
+
+$xxlarge-up: "#{$screen} and (min-width:#{lower-bound($xxlarge-range)})";
+$xxlarge-only: "#{$screen} and (min-width:#{lower-bound($xxlarge-range)}) and (max-width:#{upper-bound($xxlarge-range)})";
+
+// Legacy
+$small: $medium-up;
+$medium: $medium-up;
+$large: $large-up;
+
+// We use this as cursors values for enabling the option of having custom cursors in the whole site's stylesheet
+$cursor-crosshair-value: crosshair;
+$cursor-default-value: default;
+$cursor-disabled-value: not-allowed;
+$cursor-pointer-value: pointer;
+$cursor-help-value: help;
+$cursor-text-value: text;
+
+// e. Typography
+// - - - - - - - - - - - - - - - - - - - - - - - - -
+
+// $include-html-type-classes: $include-html-classes;
+
+// We use these to control header font styles
+$header-font-family: $body-font-family;
+$header-font-weight: $font-weight-normal;
+$header-font-style: normal;
+$header-font-color: $jet;
+$header-line-height: 1.4;
+$header-top-margin: .2rem;
+$header-bottom-margin: .5rem;
+$header-text-rendering: optimizeLegibility;
+
+// We use these to control header font sizes
+$h1-font-size: rem-calc(48);
+$h2-font-size: rem-calc(36);
+$h3-font-size: rem-calc(32);
+$h4-font-size: rem-calc(19);
+$h5-font-size: rem-calc(18);
+$h6-font-size: rem-calc(18);
+
+// We use these to control header size reduction on small screens
+$h1-font-reduction: rem-calc(10);
+$h2-font-reduction: rem-calc(5);
+$h3-font-reduction: rem-calc(5);
+$h4-font-reduction: rem-calc(2);
+$h5-font-reduction: rem-calc(2);
+$h6-font-reduction: rem-calc(2);
+
+// These control how subheaders are styled.
+$subheader-line-height: 1.4;
+$subheader-font-color: scale-color($header-font-color, $lightness: 35%);
+$subheader-font-weight: $font-weight-normal;
+$subheader-top-margin: .2rem;
+$subheader-bottom-margin: .5rem;
+
+// A general <small> styling
+$small-font-size: 60%;
+$small-font-color: scale-color($header-font-color, $lightness: 35%);
+
+// We use these to style paragraphs
+// $paragraph-font-family: inherit;
+// $paragraph-font-weight: $font-weight-normal;
+ $paragraph-font-size: rem-calc(16);
+// $paragraph-line-height: 1.6;
+// $paragraph-margin-bottom: rem-calc(20);
+// $paragraph-aside-font-size: rem-calc(14);
+// $paragraph-aside-line-height: 1.35;
+// $paragraph-aside-font-style: italic;
+// $paragraph-text-rendering: optimizeLegibility;
+
+// We use these to style <code> tags
+// $code-color: $oil;
+// $code-font-family: $font-family-monospace;
+// $code-font-weight: $font-weight-normal;
+// $code-background-color: scale-color($secondary-color, $lightness: 70%);
+// $code-border-size: 1px;
+// $code-border-style: solid;
+// $code-border-color: scale-color($code-background-color, $lightness: -10%);
+// $code-padding: rem-calc(2) rem-calc(5) rem-calc(1);
+
+// We use these to style anchors
+// $anchor-text-decoration: none;
+ $anchor-text-decoration-hover: underline;
+ $anchor-font-color: $blue;
+ $anchor-font-color-hover: $green;
+
+// We use these to style the <hr> element
+// $hr-border-width: 1px;
+// $hr-border-style: solid;
+// $hr-border-color: $gainsboro;
+// $hr-margin: rem-calc(20);
+
+// We use these to style lists
+// $list-font-family: $paragraph-font-family;
+// $list-font-size: $paragraph-font-size;
+// $list-line-height: $paragraph-line-height;
+// $list-margin-bottom: $paragraph-margin-bottom;
+// $list-style-position: outside;
+// $list-side-margin: 1.1rem;
+// $list-ordered-side-margin: 1.4rem;
+// $list-side-margin-no-bullet: 0;
+// $list-nested-margin: rem-calc(20);
+// $definition-list-header-weight: $font-weight-bold;
+// $definition-list-header-margin-bottom: .3rem;
+// $definition-list-margin-bottom: rem-calc(12);
+
+// We use these to style blockquotes
+// $blockquote-font-color: scale-color($header-font-color, $lightness: 35%);
+// $blockquote-padding: rem-calc(9 20 0 19);
+// $blockquote-border: 1px solid $gainsboro;
+// $blockquote-cite-font-size: rem-calc(13);
+// $blockquote-cite-font-color: scale-color($header-font-color, $lightness: 23%);
+// $blockquote-cite-link-color: $blockquote-cite-font-color;
+
+// Acronym styles
+// $acronym-underline: 1px dotted $gainsboro;
+
+// We use these to control padding and margin
+// $microformat-padding: rem-calc(10 12);
+// $microformat-margin: rem-calc(0 0 20 0);
+
+// We use these to control the border styles
+// $microformat-border-width: 1px;
+// $microformat-border-style: solid;
+// $microformat-border-color: $gainsboro;
+
+// We use these to control full name font styles
+// $microformat-fullname-font-weight: $font-weight-bold;
+// $microformat-fullname-font-size: rem-calc(15);
+
+// We use this to control the summary font styles
+// $microformat-summary-font-weight: $font-weight-bold;
+
+// We use this to control abbr padding
+// $microformat-abbr-padding: rem-calc(0 1);
+
+// We use this to control abbr font styles
+// $microformat-abbr-font-weight: $font-weight-bold;
+// $microformat-abbr-font-decoration: none;
+
+// 01. Accordion
+// - - - - - - - - - - - - - - - - - - - - - - - - -
+
+// $include-html-accordion-classes: $include-html-classes;
+
+// $accordion-navigation-padding: rem-calc(16);
+// $accordion-navigation-bg-color: $silver;
+// $accordion-navigation-hover-bg-color: scale-color($accordion-navigation-bg-color, $lightness: -5%);
+// $accordion-navigation-active-bg-color: scale-color($accordion-navigation-bg-color, $lightness: -3%);
+// $accordion-navigation-font-color: $jet;
+// $accordion-navigation-font-size: rem-calc(16);
+// $accordion-navigation-font-family: $body-font-family;
+
+// $accordion-content-padding: ($column-gutter/2);
+// $accordion-content-active-bg-color: $white;
+
+// 02. Alert Boxes
+// - - - - - - - - - - - - - - - - - - - - - - - - -
+
+// $include-html-alert-classes: $include-html-classes;
+
+// We use this to control alert padding.
+// $alert-padding-top: rem-calc(14);
+// $alert-padding-default-float: $alert-padding-top;
+// $alert-padding-opposite-direction: $alert-padding-top + rem-calc(10);
+// $alert-padding-bottom: $alert-padding-top;
+
+// We use these to control text style.
+// $alert-font-weight: $font-weight-normal;
+// $alert-font-size: rem-calc(13);
+// $alert-font-color: $white;
+// $alert-font-color-alt: scale-color($secondary-color, $lightness: -66%);
+
+// We use this for close hover effect.
+// $alert-function-factor: -14%;
+
+// We use these to control border styles.
+// $alert-border-style: solid;
+// $alert-border-width: 1px;
+// $alert-border-color: scale-color($primary-color, $lightness: $alert-function-factor);
+// $alert-bottom-margin: rem-calc(20);
+
+// We use these to style the close buttons
+// $alert-close-color: $oil;
+// $alert-close-top: 50%;
+// $alert-close-position: rem-calc(4);
+// $alert-close-font-size: rem-calc(22);
+// $alert-close-opacity: 0.3;
+// $alert-close-opacity-hover: 0.5;
+// $alert-close-padding: 9px 6px 4px;
+// $alert-close-background: inherit;
+
+// We use this to control border radius
+// $alert-radius: $global-radius;
+
+// $alert-transition-speed: 300ms;
+// $alert-transition-ease: ease-out;
+
+// 03. Block Grid
+// - - - - - - - - - - - - - - - - - - - - - - - - -
+
+// $include-html-block-grid-classes: $include-html-classes;
+// $include-xl-html-block-grid-classes: false;
+
+// We use this to control the maximum number of block grid elements per row
+// $block-grid-elements: 12;
+// $block-grid-default-spacing: rem-calc(20);
+
+// $align-block-grid-to-grid: false;
+// @if $align-block-grid-to-grid {$block-grid-default-spacing: $column-gutter;}
+
+// Enables media queries for block-grid classes. Set to false if writing semantic HTML.
+// $block-grid-media-queries: true;
+
+// 04. Breadcrumbs
+// - - - - - - - - - - - - - - - - - - - - - - - - -
+
+// $include-html-nav-classes: $include-html-classes;
+
+// We use this to set the background color for the breadcrumb container.
+ $crumb-bg: $white;
+
+// We use these to set the padding around the breadcrumbs.
+// $crumb-padding: rem-calc(9 14 9);
+// $crumb-side-padding: rem-calc(12);
+
+// We use these to control border styles.
+// $crumb-function-factor: -10%;
+ $crumb-border-size: 0px;
+// $crumb-border-style: solid;
+// $crumb-border-color: scale-color($crumb-bg, $lightness: $crumb-function-factor);
+// $crumb-radius: $global-radius;
+
+// We use these to set various text styles for breadcrumbs.
+ $crumb-font-size: rem-calc(16);
+ $crumb-font-color: $black;
+ $crumb-font-color-current: $teal;
+// $crumb-font-color-unavailable: $aluminum;
+ $crumb-font-transform: none;
+ $crumb-link-decor: none;
+
+// We use these to control the slash between breadcrumbs
+ $crumb-slash-color: $black;
+ $crumb-slash: ">";
+
+// 05. Buttons
+// - - - - - - - - - - - - - - - - - - - - - - - - -
+
+// $include-html-button-classes: $include-html-classes;
+
+// We use these to build padding for buttons.
+// $button-tny: rem-calc(10);
+// $button-sml: rem-calc(14);
+// $button-med: rem-calc(16);
+// $button-lrg: rem-calc(18);
+
+// We use this to control the display property.
+// $button-display: inline-block;
+// $button-margin-bottom: rem-calc(20);
+
+// We use these to control button text styles.
+// $button-font-family: $body-font-family;
+// $button-font-color: $white;
+// $button-font-color-alt: $oil;
+// $button-font-tny: rem-calc(11);
+// $button-font-sml: rem-calc(13);
+// $button-font-med: rem-calc(16);
+// $button-font-lrg: rem-calc(20);
+// $button-font-weight: $font-weight-normal;
+// $button-font-align: center;
+
+// We use these to control various hover effects.
+// $button-function-factor: -20%;
+
+// We use these to control button border styles.
+ $button-border-width: 3px;
+// $button-border-style: solid;
+ $button-bg-color: $green;
+// $button-bg-hover: scale-color($button-bg-color, $lightness: $button-function-factor);
+ $button-border-color: $white;
+// $secondary-button-bg-hover: scale-color($secondary-color, $lightness: $button-function-factor);
+// $secondary-button-border-color: $secondary-button-bg-hover;
+// $success-button-bg-hover: scale-color($success-color, $lightness: $button-function-factor);
+// $success-button-border-color: $success-button-bg-hover;
+// $alert-button-bg-hover: scale-color($alert-color, $lightness: $button-function-factor);
+// $alert-button-border-color: $alert-button-bg-hover;
+// $warning-button-bg-hover: scale-color($warning-color, $lightness: $button-function-factor);
+// $warning-button-border-color: $warning-button-bg-hover;
+// $info-button-bg-hover: scale-color($info-color, $lightness: $button-function-factor);
+// $info-button-border-color: $info-button-bg-hover;
+
+// We use this to set the default radius used throughout the core.
+// $button-radius: $global-radius;
+// $button-round: $global-rounded;
+
+// We use this to set default opacity and cursor for disabled buttons.
+// $button-disabled-opacity: 0.7;
+// $button-disabled-cursor: $cursor-default-value;
+
+// 06. Button Groups
+// - - - - - - - - - - - - - - - - - - - - - - - - -
+
+// $include-html-button-classes: $include-html-classes;
+
+// Sets the margin for the right side by default, and the left margin if right-to-left direction is used
+// $button-bar-margin-opposite: rem-calc(10);
+// $button-group-border-width: 1px;
+
+// 07. Clearing
+// - - - - - - - - - - - - - - - - - - - - - - - - -
+
+// $include-html-clearing-classes: $include-html-classes;
+
+// We use these to set the background colors for parts of Clearing.
+// $clearing-bg: $oil;
+// $clearing-caption-bg: $clearing-bg;
+// $clearing-carousel-bg: rgba(51,51,51,0.8);
+// $clearing-img-bg: $clearing-bg;
+
+// We use these to style the close button
+// $clearing-close-color: $iron;
+// $clearing-close-size: 30px;
+
+// We use these to style the arrows
+// $clearing-arrow-size: 12px;
+// $clearing-arrow-color: $clearing-close-color;
+
+// We use these to style captions
+// $clearing-caption-font-color: $iron;
+// $clearing-caption-font-size: 0.875em;
+// $clearing-caption-padding: 10px 30px 20px;
+
+// We use these to make the image and carousel height and style
+// $clearing-active-img-height: 85%;
+// $clearing-carousel-height: 120px;
+// $clearing-carousel-thumb-width: 120px;
+// $clearing-carousel-thumb-active-border: 1px solid rgb(255,255,255);
+
+// 08. Dropdown
+// - - - - - - - - - - - - - - - - - - - - - - - - -
+
+// $include-html-dropdown-classes: $include-html-classes;
+
+// We use these to controls height and width styles.
+// $f-dropdown-max-width: 200px;
+// $f-dropdown-height: auto;
+// $f-dropdown-max-height: none;
+
+// Used for bottom position
+// $f-dropdown-margin-top: 2px;
+
+// Used for right position
+// $f-dropdown-margin-left: $f-dropdown-margin-top;
+
+// Used for left position
+// $f-dropdown-margin-right: $f-dropdown-margin-top;
+
+// Used for top position
+// $f-dropdown-margin-bottom: $f-dropdown-margin-top;
+
+// We use this to control the background color
+ $f-dropdown-bg: $white;
+
+// We use this to set the border styles for dropdowns.
+// $f-dropdown-border-style: solid;
+// $f-dropdown-border-width: 1px;
+// $f-dropdown-border-color: scale-color($white, $lightness: -20%);
+
+// We use these to style the triangle pip.
+// $f-dropdown-triangle-size: 6px;
+// $f-dropdown-triangle-color: $white;
+// $f-dropdown-triangle-side-offset: 10px;
+
+// We use these to control styles for the list elements.
+// $f-dropdown-list-style: none;
+// $f-dropdown-font-color: $charcoal;
+// $f-dropdown-font-size: rem-calc(13);
+// $f-dropdown-list-padding: rem-calc(5, 10);
+// $f-dropdown-line-height: rem-calc(18);
+// $f-dropdown-list-hover-bg: $smoke;
+// $dropdown-mobile-default-float: 0;
+
+// We use this to control the styles for when the dropdown has custom content.
+ $f-dropdown-content-padding: rem-calc(16);
+
+// Default radius for dropdown.
+// $f-dropdown-radius: $global-radius;
+
+
+// 09. Dropdown Buttons
+// - - - - - - - - - - - - - - - - - - - - - - - - -
+
+// $include-html-button-classes: $include-html-classes;
+
+// We use these to set the color of the pip in dropdown buttons
+// $dropdown-button-pip-color: $white;
+// $dropdown-button-pip-color-alt: $oil;
+
+// We use these to set the size of the pip in dropdown buttons
+// $button-pip-tny: rem-calc(6);
+// $button-pip-sml: rem-calc(7);
+// $button-pip-med: rem-calc(9);
+// $button-pip-lrg: rem-calc(11);
+
+// We use these to style tiny dropdown buttons
+// $dropdown-button-padding-tny: $button-pip-tny * 7;
+// $dropdown-button-pip-size-tny: $button-pip-tny;
+// $dropdown-button-pip-opposite-tny: $button-pip-tny * 3;
+// $dropdown-button-pip-top-tny: (-$button-pip-tny / 2) + rem-calc(1);
+
+// We use these to style small dropdown buttons
+// $dropdown-button-padding-sml: $button-pip-sml * 7;
+// $dropdown-button-pip-size-sml: $button-pip-sml;
+// $dropdown-button-pip-opposite-sml: $button-pip-sml * 3;
+// $dropdown-button-pip-top-sml: (-$button-pip-sml / 2) + rem-calc(1);
+
+// We use these to style medium dropdown buttons
+// $dropdown-button-padding-med: $button-pip-med * 6 + rem-calc(3);
+// $dropdown-button-pip-size-med: $button-pip-med - rem-calc(3);
+// $dropdown-button-pip-opposite-med: $button-pip-med * 2.5;
+// $dropdown-button-pip-top-med: (-$button-pip-med / 2) + rem-calc(2);
+
+// We use these to style large dropdown buttons
+// $dropdown-button-padding-lrg: $button-pip-lrg * 5 + rem-calc(3);
+// $dropdown-button-pip-size-lrg: $button-pip-lrg - rem-calc(6);
+// $dropdown-button-pip-opposite-lrg: $button-pip-lrg * 2.5;
+// $dropdown-button-pip-top-lrg: (-$button-pip-lrg / 2) + rem-calc(3);
+
+// 10. Flex Video
+// - - - - - - - - - - - - - - - - - - - - - - - - -
+
+// $include-html-media-classes: $include-html-classes;
+
+// We use these to control video container padding and margins
+// $flex-video-padding-top: rem-calc(25);
+// $flex-video-padding-bottom: 67.5%;
+// $flex-video-margin-bottom: rem-calc(16);
+
+// We use this to control widescreen bottom padding
+// $flex-video-widescreen-padding-bottom: 56.34%;
+
+// 11. Forms
+// - - - - - - - - - - - - - - - - - - - - - - - - -
+
+// $include-html-form-classes: $include-html-classes;
+
+// We use this to set the base for lots of form spacing and positioning styles
+// $form-spacing: rem-calc(16);
+
+// We use these to style the labels in different ways
+// $form-label-pointer: pointer;
+// $form-label-font-size: rem-calc(14);
+// $form-label-font-weight: $font-weight-normal;
+// $form-label-line-height: 1.5;
+// $form-label-font-color: scale-color($black, $lightness: 30%);
+// $form-label-small-transform: capitalize;
+// $form-label-bottom-margin: 0;
+// $input-font-family: inherit;
+// $input-font-color: rgba(0,0,0,0.75);
+// $input-font-size: rem-calc(14);
+// $input-bg-color: $white;
+// $input-focus-bg-color: scale-color($white, $lightness: -2%);
+// $input-border-color: scale-color($white, $lightness: -20%);
+// $input-focus-border-color: scale-color($white, $lightness: -40%);
+// $input-border-style: solid;
+// $input-border-width: 1px;
+// $input-border-radius: $global-radius;
+// $input-disabled-bg: $gainsboro;
+// $input-disabled-cursor: $cursor-default-value;
+// $input-box-shadow: inset 0 1px 2px rgba(0,0,0,0.1);
+// $input-include-glowing-effect: true;
+
+// We use these to style the fieldset border and spacing.
+// $fieldset-border-style: solid;
+// $fieldset-border-width: 1px;
+// $fieldset-border-color: $gainsboro;
+// $fieldset-padding: rem-calc(20);
+// $fieldset-margin: rem-calc(18 0);
+
+// We use these to style the legends when you use them
+// $legend-bg: $white;
+// $legend-font-weight: $font-weight-bold;
+// $legend-padding: rem-calc(0 3);
+
+// We use these to style the prefix and postfix input elements
+// $input-prefix-bg: scale-color($white, $lightness: -5%);
+// $input-prefix-border-color: scale-color($white, $lightness: -20%);
+// $input-prefix-border-size: 1px;
+// $input-prefix-border-type: solid;
+// $input-prefix-overflow: hidden;
+// $input-prefix-font-color: $oil;
+// $input-prefix-font-color-alt: $white;
+
+// We use this setting to turn on/off HTML5 number spinners (the up/down arrows)
+// $input-number-spinners: true;
+
+// We use these to style the error states for inputs and labels
+// $input-error-message-padding: rem-calc(6 9 9);
+// $input-error-message-top: -1px;
+// $input-error-message-font-size: rem-calc(12);
+// $input-error-message-font-weight: $font-weight-normal;
+// $input-error-message-font-style: italic;
+// $input-error-message-font-color: $white;
+// $input-error-message-bg-color: $alert-color;
+// $input-error-message-font-color-alt: $oil;
+
+// We use this to style the glowing effect of inputs when focused
+// $glowing-effect-fade-time: 0.45s;
+// $glowing-effect-color: $input-focus-border-color;
+
+// Select variables
+// $select-bg-color: $ghost;
+// $select-hover-bg-color: scale-color($select-bg-color, $lightness: -3%);
+
+
+// 12. Icon Bar
+// - - - - - - - - - - - - - - - - - - - - - - - - -
+
+// We use these to style the icon-bar and items
+// $icon-bar-bg: $oil;
+// $icon-bar-font-color: $white;
+// $icon-bar-font-color-hover: $icon-bar-font-color;
+// $icon-bar-font-size: 1rem;
+// $icon-bar-hover-color: $primary-color;
+// $icon-bar-icon-color: $white;
+// $icon-bar-icon-color-hover: $icon-bar-icon-color;
+// $icon-bar-icon-size: 1.875rem;
+// $icon-bar-image-width: 1.875rem;
+// $icon-bar-image-height: 1.875rem;
+// $icon-bar-active-color: $primary-color;
+// $icon-bar-item-padding: 1.25rem;
+
+// We use this to set default opacity and cursor for disabled icons.
+// $icon-bar-disabled-opacity: 0.7;
+
+// 13. Inline Lists
+// - - - - - - - - - - - - - - - - - - - - - - - - -
+
+// $include-html-inline-list-classes: $include-html-classes;
+
+// We use this to control the margins and padding of the inline list.
+// $inline-list-top-margin: 0;
+// $inline-list-opposite-margin: 0;
+// $inline-list-bottom-margin: rem-calc(17);
+// $inline-list-default-float-margin: rem-calc(-22);
+// $inline-list-default-float-list-margin: rem-calc(22);
+
+// $inline-list-padding: 0;
+
+// We use this to control the overflow of the inline list.
+// $inline-list-overflow: hidden;
+
+// We use this to control the list items
+// $inline-list-display: block;
+
+// We use this to control any elements within list items
+// $inline-list-children-display: block;
+
+// 14. Joyride
+// - - - - - - - - - - - - - - - - - - - - - - - - -
+
+// $include-html-joyride-classes: $include-html-classes;
+
+// Controlling default Joyride styles
+// $joyride-tip-bg: $oil;
+// $joyride-tip-default-width: 300px;
+// $joyride-tip-padding: rem-calc(18 20 24);
+// $joyride-tip-border: solid 1px $charcoal;
+// $joyride-tip-radius: 4px;
+// $joyride-tip-position-offset: 22px;
+
+// Here, we're setting the tip font styles
+// $joyride-tip-font-color: $white;
+// $joyride-tip-font-size: rem-calc(14);
+// $joyride-tip-header-weight: $font-weight-bold;
+
+// This changes the nub size
+// $joyride-tip-nub-size: 10px;
+
+// This adjusts the styles for the timer when its enabled
+// $joyride-tip-timer-width: 50px;
+// $joyride-tip-timer-height: 3px;
+// $joyride-tip-timer-color: $steel;
+
+// This changes up the styles for the close button
+// $joyride-tip-close-color: $monsoon;
+// $joyride-tip-close-size: 24px;
+// $joyride-tip-close-weight: $font-weight-normal;
+
+// When Joyride is filling the screen, we use this style for the bg
+// $joyride-screenfill: rgba(0,0,0,0.5);
+
+// 15. Keystrokes
+// - - - - - - - - - - - - - - - - - - - - - - - - -
+
+// $include-html-keystroke-classes: $include-html-classes;
+
+// We use these to control text styles.
+// $keystroke-font: "Consolas", "Menlo", "Courier", monospace;
+// $keystroke-font-size: inherit;
+// $keystroke-font-color: $jet;
+// $keystroke-font-color-alt: $white;
+// $keystroke-function-factor: -7%;
+
+// We use this to control keystroke padding.
+// $keystroke-padding: rem-calc(2 4 0);
+
+// We use these to control background and border styles.
+// $keystroke-bg: scale-color($white, $lightness: $keystroke-function-factor);
+// $keystroke-border-style: solid;
+// $keystroke-border-width: 1px;
+// $keystroke-border-color: scale-color($keystroke-bg, $lightness: $keystroke-function-factor);
+// $keystroke-radius: $global-radius;
+
+// 16. Labels
+// - - - - - - - - - - - - - - - - - - - - - - - - -
+
+// $include-html-label-classes: $include-html-classes;
+
+// We use these to style the labels
+// $label-padding: rem-calc(4 8 4);
+// $label-radius: $global-radius;
+
+// We use these to style the label text
+// $label-font-sizing: rem-calc(11);
+// $label-font-weight: $font-weight-normal;
+// $label-font-color: $oil;
+// $label-font-color-alt: $white;
+// $label-font-family: $body-font-family;
+
+// 17. Magellan
+// - - - - - - - - - - - - - - - - - - - - - - - - -
+
+// $include-html-magellan-classes: $include-html-classes;
+
+// $magellan-bg: $white;
+// $magellan-padding: 10px;
+
+// 18. Off-canvas
+// - - - - - - - - - - - - - - - - - - - - - - - - -
+
+// Off Canvas Tab Bar Variables
+// $include-html-off-canvas-classes: $include-html-classes;
+
+ $tabbar-bg: $blue;
+// $tabbar-height: rem-calc(45);
+// $tabbar-icon-width: $tabbar-height;
+// $tabbar-line-height: $tabbar-height;
+// $tabbar-color: $white;
+// $tabbar-middle-padding: 0 rem-calc(10);
+
+// Off Canvas Divider Styles
+// $tabbar-left-section-border: solid 1px scale-color($tabbar-bg, $lightness: -50%);
+// $tabbar-right-section-border: $tabbar-left-section-border;
+
+
+// Off Canvas Tab Bar Headers
+// $tabbar-header-color: $white;
+// $tabbar-header-weight: $font-weight-bold;
+// $tabbar-header-line-height: $tabbar-height;
+// $tabbar-header-margin: 0;
+
+// Off Canvas Menu Variables
+// $off-canvas-width: rem-calc(250);
+ $off-canvas-bg: $blue;
+
+// Off Canvas Menu List Variables
+// $off-canvas-label-padding: 0.3rem rem-calc(15);
+// $off-canvas-label-color: $aluminum;
+// $off-canvas-label-text-transform: uppercase;
+// $off-canvas-label-font-size: rem-calc(12);
+// $off-canvas-label-font-weight: $font-weight-bold;
+// $off-canvas-label-bg: $tuatara;
+// $off-canvas-label-border-top: 1px solid scale-color($off-canvas-label-bg, $lightness: 14%);
+// $off-canvas-label-border-bottom: none;
+// $off-canvas-label-margin:0;
+// $off-canvas-link-padding: rem-calc(10, 15);
+ $off-canvas-link-color: $white;
+ $off-canvas-link-border-bottom: 1px solid $white;
+// $off-canvas-back-bg: #444;
+// $off-canvas-back-border-top: $off-canvas-label-border-top;
+// $off-canvas-back-border-bottom: $off-canvas-label-border-bottom;
+// $off-canvas-back-hover-bg: scale-color($off-canvas-back-bg, $lightness: -30%);
+// $off-canvas-back-hover-border-top: 1px solid scale-color($off-canvas-label-bg, $lightness: 14%);
+// $off-canvas-back-hover-border-bottom: none;
+
+// Off Canvas Menu Icon Variables
+ $tabbar-menu-icon-color: $white;
+// $tabbar-menu-icon-hover: scale-color($tabbar-menu-icon-color, $lightness: -30%);
+
+ $tabbar-menu-icon-text-indent: rem-calc(50);
+// $tabbar-menu-icon-width: $tabbar-icon-width;
+// $tabbar-menu-icon-height: $tabbar-height;
+// $tabbar-menu-icon-padding: 0;
+
+// $tabbar-hamburger-icon-width: rem-calc(16);
+// $tabbar-hamburger-icon-left: false;
+// $tabbar-hamburger-icon-top: false;
+// $tabbar-hamburger-icon-thickness: 1px;
+// $tabbar-hamburger-icon-gap: 6px;
+
+// Off Canvas Back-Link Overlay
+// $off-canvas-overlay-transition: background 300ms ease;
+// $off-canvas-overlay-cursor: pointer;
+// $off-canvas-overlay-box-shadow: -4px 0 4px rgba($black, 0.5), 4px 0 4px rgba($black, 0.5);
+// $off-canvas-overlay-background: rgba($white, 0.2);
+// $off-canvas-overlay-background-hover: rgba($white, 0.05);
+
+// Transition Variables
+// $menu-slide: "transform 500ms ease";
+
+// 19. Orbit
+// - - - - - - - - - - - - - - - - - - - - - - - - -
+
+// $include-html-orbit-classes: $include-html-classes;
+
+// We use these to control the caption styles
+// $orbit-container-bg: none;
+// $orbit-caption-bg: rgba(51,51,51, 0.8);
+// $orbit-caption-font-color: $white;
+// $orbit-caption-font-size: rem-calc(14);
+// $orbit-caption-position: "bottom"; // Supported values: "bottom", "under"
+// $orbit-caption-padding: rem-calc(10 14);
+// $orbit-caption-height: auto;
+
+// We use these to control the left/right nav styles
+// $orbit-nav-bg: transparent;
+// $orbit-nav-bg-hover: rgba(0,0,0,0.3);
+// $orbit-nav-arrow-color: $white;
+// $orbit-nav-arrow-color-hover: $white;
+
+// We use these to control the timer styles
+// $orbit-timer-bg: rgba(255,255,255,0.3);
+// $orbit-timer-show-progress-bar: true;
+
+// We use these to control the bullet nav styles
+// $orbit-bullet-nav-color: $iron;
+// $orbit-bullet-nav-color-active: $aluminum;
+// $orbit-bullet-radius: rem-calc(9);
+
+// We use these to controls the style of slide numbers
+// $orbit-slide-number-bg: rgba(0,0,0,0);
+// $orbit-slide-number-font-color: $white;
+// $orbit-slide-number-padding: rem-calc(5);
+
+// Graceful Loading Wrapper and preloader
+// $wrapper-class: "slideshow-wrapper";
+// $preloader-class: "preloader";
+
+// Hide controls on small
+// $orbit-nav-hide-for-small: true;
+// $orbit-bullet-hide-for-small: true;
+// $orbit-timer-hide-for-small: true;
+
+// 20. Pagination
+// - - - - - - - - - - - - - - - - - - - - - - - - -
+
+// $include-pagination-classes: $include-html-classes;
+
+// We use these to control the pagination container
+// $pagination-height: rem-calc(24);
+// $pagination-margin: rem-calc(-5);
+
+// We use these to set the list-item properties
+// $pagination-li-float: $default-float;
+// $pagination-li-height: rem-calc(24);
+// $pagination-li-font-color: $jet;
+// $pagination-li-font-size: rem-calc(14);
+// $pagination-li-margin: rem-calc(5);
+
+// We use these for the pagination anchor links
+// $pagination-link-pad: rem-calc(1 10 1);
+// $pagination-link-font-color: $aluminum;
+// $pagination-link-active-bg: scale-color($white, $lightness: -10%);
+
+// We use these for disabled anchor links
+// $pagination-link-unavailable-cursor: default;
+// $pagination-link-unavailable-font-color: $aluminum;
+// $pagination-link-unavailable-bg-active: transparent;
+
+// We use these for currently selected anchor links
+// $pagination-link-current-background: $primary-color;
+// $pagination-link-current-font-color: $white;
+// $pagination-link-current-font-weight: $font-weight-bold;
+// $pagination-link-current-cursor: default;
+// $pagination-link-current-active-bg: $primary-color;
+
+// 21. Panels
+// - - - - - - - - - - - - - - - - - - - - - - - - -
+
+// $include-html-panel-classes: $include-html-classes;
+
+// We use these to control the background and border styles
+// $panel-bg: scale-color($white, $lightness: -5%);
+// $panel-border-style: solid;
+// $panel-border-size: 1px;
+
+// We use this % to control how much we darken things on hover
+// $panel-function-factor: -11%;
+// $panel-border-color: scale-color($panel-bg, $lightness: $panel-function-factor);
+
+// We use these to set default inner padding and bottom margin
+// $panel-margin-bottom: rem-calc(20);
+// $panel-padding: rem-calc(20);
+
+// We use these to set default font colors
+// $panel-font-color: $oil;
+// $panel-font-color-alt: $white;
+
+// $panel-header-adjust: true;
+// $callout-panel-link-color: $primary-color;
+// $callout-panel-link-color-hover: scale-color($callout-panel-link-color, $lightness: -14%);
+
+// 22. Pricing Tables
+// - - - - - - - - - - - - - - - - - - - - - - - - -
+
+// $include-html-pricing-classes: $include-html-classes;
+
+// We use this to control the border color
+// $price-table-border: solid 1px $gainsboro;
+
+// We use this to control the bottom margin of the pricing table
+// $price-table-margin-bottom: rem-calc(20);
+
+// We use these to control the title styles
+// $price-title-bg: $oil;
+// $price-title-padding: rem-calc(15 20);
+// $price-title-align: center;
+// $price-title-color: $smoke;
+// $price-title-weight: $font-weight-normal;
+// $price-title-size: rem-calc(16);
+// $price-title-font-family: $body-font-family;
+
+// We use these to control the price styles
+// $price-money-bg: $vapor;
+// $price-money-padding: rem-calc(15 20);
+// $price-money-align: center;
+// $price-money-color: $oil;
+// $price-money-weight: $font-weight-normal;
+// $price-money-size: rem-calc(32);
+// $price-money-font-family: $body-font-family;
+
+
+// We use these to control the description styles
+// $price-bg: $white;
+// $price-desc-color: $monsoon;
+// $price-desc-padding: rem-calc(15);
+// $price-desc-align: center;
+// $price-desc-font-size: rem-calc(12);
+// $price-desc-weight: $font-weight-normal;
+// $price-desc-line-height: 1.4;
+// $price-desc-bottom-border: dotted 1px $gainsboro;
+
+// We use these to control the list item styles
+// $price-item-color: $oil;
+// $price-item-padding: rem-calc(15);
+// $price-item-align: center;
+// $price-item-font-size: rem-calc(14);
+// $price-item-weight: $font-weight-normal;
+// $price-item-bottom-border: dotted 1px $gainsboro;
+
+// We use these to control the CTA area styles
+// $price-cta-bg: $white;
+// $price-cta-align: center;
+// $price-cta-padding: rem-calc(20 20 0);
+
+// 23. Progress Bar
+// - - - - - - - - - - - - - - - - - - - - - - - - -
+
+// $include-html-media-classes: $include-html-classes;
+
+// We use this to set the progress bar height
+// $progress-bar-height: rem-calc(25);
+// $progress-bar-color: $vapor;
+
+// We use these to control the border styles
+// $progress-bar-border-color: scale-color($white, $lightness: 20%);
+// $progress-bar-border-size: 1px;
+// $progress-bar-border-style: solid;
+// $progress-bar-border-radius: $global-radius;
+
+// We use these to control the margin & padding
+// $progress-bar-margin-bottom: rem-calc(10);
+
+// We use these to set the meter colors
+// $progress-meter-color: $primary-color;
+// $progress-meter-secondary-color: $secondary-color;
+// $progress-meter-success-color: $success-color;
+// $progress-meter-alert-color: $alert-color;
+
+// 24. Range Slider
+// - - - - - - - - - - - - - - - - - - - - - - - - -
+
+// $include-html-range-slider-classes: $include-html-classes;
+
+// These variabels define the slider bar styles
+// $range-slider-bar-width: 100%;
+// $range-slider-bar-height: rem-calc(16);
+
+// $range-slider-bar-border-width: 1px;
+// $range-slider-bar-border-style: solid;
+// $range-slider-bar-border-color: $gainsboro;
+// $range-slider-radius: $global-radius;
+// $range-slider-round: $global-rounded;
+// $range-slider-bar-bg-color: $ghost;
+// $range-slider-active-segment-bg-color: scale-color($secondary-color, $lightness: -1%);
+
+// Vertical bar styles
+// $range-slider-vertical-bar-width: rem-calc(16);
+// $range-slider-vertical-bar-height: rem-calc(200);
+
+// These variabels define the slider handle styles
+// $range-slider-handle-width: rem-calc(32);
+// $range-slider-handle-height: rem-calc(22);
+// $range-slider-handle-position-top: rem-calc(-5);
+// $range-slider-handle-bg-color: $primary-color;
+// $range-slider-handle-border-width: 1px;
+// $range-slider-handle-border-style: solid;
+// $range-slider-handle-border-color: none;
+// $range-slider-handle-radius: $global-radius;
+// $range-slider-handle-round: $global-rounded;
+// $range-slider-handle-bg-hover-color: scale-color($primary-color, $lightness: -12%);
+// $range-slider-handle-cursor: pointer;
+
+// $range-slider-disabled-opacity: 0.7;
+// $range-slider-disabled-cursor: $cursor-disabled-value;
+
+// 25. Reveal
+// - - - - - - - - - - - - - - - - - - - - - - - - -
+
+// $include-html-reveal-classes: $include-html-classes;
+
+// We use these to control the style of the reveal overlay.
+// $reveal-overlay-bg: rgba($black, .45);
+// $reveal-overlay-bg-old: $black;
+
+// We use these to control the style of the modal itself.
+// $reveal-modal-bg: $white;
+// $reveal-position-top: rem-calc(100);
+// $reveal-default-width: 80%;
+// $reveal-max-width: $row-width;
+// $reveal-modal-padding: rem-calc(20);
+// $reveal-box-shadow: 0 0 10px rgba($black,.4);
+
+// We use these to style the reveal close button
+// $reveal-close-font-size: rem-calc(40);
+// $reveal-close-top: rem-calc(10);
+// $reveal-close-side: rem-calc(22);
+// $reveal-close-color: $base;
+// $reveal-close-weight: $font-weight-bold;
+
+// We use this to set the default radius used throughout the core.
+// $reveal-radius: $global-radius;
+// $reveal-round: $global-rounded;
+
+// We use these to control the modal border
+// $reveal-border-style: solid;
+// $reveal-border-width: 1px;
+// $reveal-border-color: $steel;
+
+// $reveal-modal-class: "reveal-modal";
+// $close-reveal-modal-class: "close-reveal-modal";
+
+// 26. Side Nav
+// - - - - - - - - - - - - - - - - - - - - - - - - -
+
+// $include-html-nav-classes: $include-html-classes;
+
+// We use this to control padding.
+// $side-nav-padding: rem-calc(14 0);
+
+// We use these to control list styles.
+// $side-nav-list-type: none;
+// $side-nav-list-position: outside;
+// $side-nav-list-margin: rem-calc(0 0 7 0);
+
+// We use these to control link styles.
+// $side-nav-link-color: $primary-color;
+// $side-nav-link-color-active: scale-color($side-nav-link-color, $lightness: 30%);
+// $side-nav-link-color-hover: scale-color($side-nav-link-color, $lightness: 30%);
+// $side-nav-link-bg-hover: hsla(0, 0, 0, 0.025);
+// $side-nav-link-margin: 0;
+// $side-nav-link-padding: rem-calc(7 14);
+// $side-nav-font-size: rem-calc(14);
+// $side-nav-font-weight: $font-weight-normal;
+// $side-nav-font-weight-active: $side-nav-font-weight;
+// $side-nav-font-family: $body-font-family;
+// $side-nav-font-family-active: $side-nav-font-family;
+
+// We use these to control heading styles.
+// $side-nav-heading-color: $side-nav-link-color;
+// $side-nav-heading-font-size: $side-nav-font-size;
+// $side-nav-heading-font-weight: bold;
+// $side-nav-heading-text-transform: uppercase;
+
+// We use these to control border styles
+// $side-nav-divider-size: 1px;
+// $side-nav-divider-style: solid;
+// $side-nav-divider-color: scale-color($white, $lightness: 10%);
+
+// 27. Split Buttons
+// - - - - - - - - - - - - - - - - - - - - - - - - -
+
+// $include-html-button-classes: $include-html-classes;
+
+// We use these to control different shared styles for Split Buttons
+// $split-button-function-factor: 10%;
+// $split-button-pip-color: $white;
+// $split-button-pip-color-alt: $oil;
+// $split-button-active-bg-tint: rgba(0,0,0,0.1);
+
+// We use these to control tiny split buttons
+// $split-button-padding-tny: $button-pip-tny * 10;
+// $split-button-span-width-tny: $button-pip-tny * 6;
+// $split-button-pip-size-tny: $button-pip-tny;
+// $split-button-pip-top-tny: $button-pip-tny * 2;
+// $split-button-pip-default-float-tny: rem-calc(-6);
+
+// We use these to control small split buttons
+// $split-button-padding-sml: $button-pip-sml * 10;
+// $split-button-span-width-sml: $button-pip-sml * 6;
+// $split-button-pip-size-sml: $button-pip-sml;
+// $split-button-pip-top-sml: $button-pip-sml * 1.5;
+// $split-button-pip-default-float-sml: rem-calc(-6);
+
+// We use these to control medium split buttons
+// $split-button-padding-med: $button-pip-med * 9;
+// $split-button-span-width-med: $button-pip-med * 5.5;
+// $split-button-pip-size-med: $button-pip-med - rem-calc(3);
+// $split-button-pip-top-med: $button-pip-med * 1.5;
+// $split-button-pip-default-float-med: rem-calc(-6);
+
+// We use these to control large split buttons
+// $split-button-padding-lrg: $button-pip-lrg * 8;
+// $split-button-span-width-lrg: $button-pip-lrg * 5;
+// $split-button-pip-size-lrg: $button-pip-lrg - rem-calc(6);
+// $split-button-pip-top-lrg: $button-pip-lrg + rem-calc(5);
+// $split-button-pip-default-float-lrg: rem-calc(-6);
+
+// 28. Sub Nav
+// - - - - - - - - - - - - - - - - - - - - - - - - -
+
+// $include-html-nav-classes: $include-html-classes;
+
+// We use these to control margin and padding
+// $sub-nav-list-margin: rem-calc(-4 0 18);
+// $sub-nav-list-padding-top: rem-calc(4);
+
+// We use this to control the definition
+// $sub-nav-font-family: $body-font-family;
+// $sub-nav-font-size: rem-calc(14);
+// $sub-nav-font-color: $aluminum;
+// $sub-nav-font-weight: $font-weight-normal;
+// $sub-nav-text-decoration: none;
+// $sub-nav-padding: rem-calc(3 16);
+// $sub-nav-border-radius: 3px;
+// $sub-nav-font-color-hover: scale-color($sub-nav-font-color, $lightness: -25%);
+
+
+// We use these to control the active item styles
+
+// $sub-nav-active-font-weight: $font-weight-normal;
+// $sub-nav-active-bg: $primary-color;
+// $sub-nav-active-bg-hover: scale-color($sub-nav-active-bg, $lightness: -14%);
+// $sub-nav-active-color: $white;
+// $sub-nav-active-padding: $sub-nav-padding;
+// $sub-nav-active-cursor: default;
+
+// $sub-nav-item-divider: "";
+// $sub-nav-item-divider-margin: rem-calc(12);
+
+// 29. Switch
+// - - - - - - - - - - - - - - - - - - - - - - - - -
+
+// $include-html-form-classes: $include-html-classes;
+
+// Controlling background color for the switch container
+// $switch-bg: $gainsboro;
+
+// We use these to control the switch heights for our default classes
+// $switch-height-tny: 1.5rem;
+// $switch-height-sml: 1.75rem;
+// $switch-height-med: 2rem;
+// $switch-height-lrg: 2.5rem;
+// $switch-bottom-margin: 1.5rem;
+
+// We use these to style the switch-paddle
+// $switch-paddle-bg: $white;
+// $switch-paddle-transition-speed: .15s;
+// $switch-paddle-transition-ease: ease-out;
+// $switch-active-color: $primary-color;
+
+// 30. Tables
+// - - - - - - - - - - - - - - - - - - - - - - - - -
+
+// $include-html-table-classes: $include-html-classes;
+
+// These control the background color for the table and even rows
+// $table-bg: $white;
+// $table-even-row-bg: $snow;
+
+// These control the table cell border style
+// $table-border-style: solid;
+// $table-border-size: 1px;
+// $table-border-color: $gainsboro;
+
+// These control the table head styles
+// $table-head-bg: $white-smoke;
+// $table-head-font-size: rem-calc(14);
+// $table-head-font-color: $jet;
+// $table-head-font-weight: $font-weight-bold;
+// $table-head-padding: rem-calc(8 10 10);
+
+// These control the table foot styles
+// $table-foot-bg: $table-head-bg;
+// $table-foot-font-size: $table-head-font-size;
+// $table-foot-font-color: $table-head-font-color;
+// $table-foot-font-weight: $table-head-font-weight;
+// $table-foot-padding: $table-head-padding;
+
+// These control the caption
+// table-caption-bg: transparent;
+// $table-caption-font-color: $table-head-font-color;
+// $table-caption-font-size: rem-calc(16);
+// $table-caption-font-weight: bold;
+
+// These control the row padding and font styles
+// $table-row-padding: rem-calc(9 10);
+// $table-row-font-size: rem-calc(14);
+// $table-row-font-color: $jet;
+// $table-line-height: rem-calc(18);
+
+// These are for controlling the layout, display and margin of tables
+// $table-layout: auto;
+// $table-display: table-cell;
+// $table-margin-bottom: rem-calc(20);
+
+
+// 31. Tabs
+// - - - - - - - - - - - - - - - - - - - - - - - - -
+
+// $include-html-tabs-classes: $include-html-classes;
+
+// $tabs-navigation-padding: rem-calc(16);
+// $tabs-navigation-bg-color: $silver;
+// $tabs-navigation-active-bg-color: $white;
+// $tabs-navigation-hover-bg-color: scale-color($tabs-navigation-bg-color, $lightness: -6%);
+// $tabs-navigation-font-color: $jet;
+// $tabs-navigation-active-font-color: $tabs-navigation-font-color;
+// $tabs-navigation-font-size: rem-calc(16);
+// $tabs-navigation-font-family: $body-font-family;
+
+// $tabs-content-margin-bottom: rem-calc(24);
+// $tabs-content-padding: ($column-gutter/2);
+
+// $tabs-vertical-navigation-margin-bottom: 1.25rem;
+
+// 32. Thumbnails
+// - - - - - - - - - - - - - - - - - - - - - - - - -
+
+// $include-html-media-classes: $include-html-classes;
+
+// We use these to control border styles
+// $thumb-border-style: solid;
+// $thumb-border-width: 4px;
+// $thumb-border-color: $white;
+// $thumb-box-shadow: 0 0 0 1px rgba($black,.2);
+// $thumb-box-shadow-hover: 0 0 6px 1px rgba($primary-color,0.5);
+
+// Radius and transition speed for thumbs
+// $thumb-radius: $global-radius;
+// $thumb-transition-speed: 200ms;
+
+// 33. Tooltips
+// - - - - - - - - - - - - - - - - - - - - - - - - -
+
+// $include-html-tooltip-classes: $include-html-classes;
+
+// $has-tip-border-bottom: dotted 1px $iron;
+// $has-tip-font-weight: $font-weight-bold;
+// $has-tip-font-color: $oil;
+// $has-tip-border-bottom-hover: dotted 1px scale-color($primary-color, $lightness: -55%);
+// $has-tip-font-color-hover: $primary-color;
+// $has-tip-cursor-type: help;
+
+// $tooltip-padding: rem-calc(12);
+// $tooltip-bg: $oil;
+// $tooltip-font-size: rem-calc(14);
+// $tooltip-font-weight: $font-weight-normal;
+// $tooltip-font-color: $white;
+// $tooltip-line-height: 1.3;
+// $tooltip-close-font-size: rem-calc(10);
+// $tooltip-close-font-weight: $font-weight-normal;
+// $tooltip-close-font-color: $monsoon;
+// $tooltip-font-size-sml: rem-calc(14);
+// $tooltip-radius: $global-radius;
+// $tooltip-rounded: $global-rounded;
+// $tooltip-pip-size: 5px;
+// $tooltip-max-width: 300px;
+
+// 34. Top Bar
+// - - - - - - - - - - - - - - - - - - - - - - - - -
+
+// $include-html-top-bar-classes: $include-html-classes;
+
+// Background color for the top bar
+ $topbar-bg-color: $white;
+// $topbar-bg: $topbar-bg-color;
+
+// Height and margin
+ $topbar-height: rem-calc(50);
+// $topbar-margin-bottom: 0;
+
+// Controlling the styles for the title in the top bar
+// $topbar-title-weight: $font-weight-normal;
+// $topbar-title-font-size: rem-calc(17);
+
+// Set the link colors and styles for top-level nav
+ $topbar-link-color: $blue;
+ $topbar-link-color-hover: $blue;
+ $topbar-link-color-active: $blue;
+ $topbar-link-color-active-hover: $blue;
+ $topbar-link-weight: 600;
+ $topbar-link-font-size: rem-calc(18);
+// $topbar-link-hover-lightness: 0%; // Darken by 10%
+ $topbar-link-bg: rgba($white, 0);
+ $topbar-link-bg-hover: rgba($white, 0);
+// $topbar-link-bg-color-hover: $topbar-bg;
+ $topbar-link-bg-active: rgba($white, 0);
+ $topbar-link-bg-active-hover: rgba($white, 0);
+// $topbar-link-font-family: $body-font-family;
+ $topbar-link-text-transform: uppercase;
+// $topbar-link-padding: ($topbar-height / 3);
+// $topbar-back-link-size: rem-calc(18);
+ $topbar-link-dropdown-padding: rem-calc(16);
+// $topbar-button-font-size: 0.75rem;
+// $topbar-button-top: 7px;
+
+// Style the top bar dropdown elements
+ $topbar-dropdown-bg: $white;
+ $topbar-dropdown-link-color: $blue;
+ $topbar-dropdown-link-color-hover: $green;
+ $topbar-dropdown-link-bg: $white;
+ $topbar-dropdown-link-bg-hover: $white;
+// $topbar-dropdown-link-weight: $font-weight-normal;
+// $topbar-dropdown-toggle-size: 5px;
+// $topbar-dropdown-toggle-color: $white;
+// $topbar-dropdown-toggle-alpha: 0.4;
+
+// $topbar-dropdown-label-color: $monsoon;
+// $topbar-dropdown-label-text-transform: uppercase;
+// $topbar-dropdown-label-font-weight: $font-weight-bold;
+// $topbar-dropdown-label-font-size: rem-calc(10);
+// $topbar-dropdown-label-bg: $oil;
+
+// Top menu icon styles
+// $topbar-menu-link-transform: uppercase;
+// $topbar-menu-link-font-size: rem-calc(13);
+// $topbar-menu-link-weight: $font-weight-bold;
+// $topbar-menu-link-color: $white;
+// $topbar-menu-icon-color: $white;
+// $topbar-menu-link-color-toggled: $jumbo;
+// $topbar-menu-icon-color-toggled: $jumbo;
+// $topbar-menu-icon-position: $opposite-direction; // Change to $default-float for a left menu icon
+
+// Transitions and breakpoint styles
+// $topbar-transition-speed: 300ms;
+// Using rem-calc for the below breakpoint causes issues with top bar
+// $topbar-breakpoint: #{lower-bound($medium-range)}; // Change to 9999px for always mobile layout
+// $topbar-media-query: $medium-up;
+
+// Top-bar input styles
+// $topbar-input-height: rem-calc(28);
+
+// Divider Styles
+// $topbar-divider-border-bottom: solid 1px scale-color($topbar-bg-color, $lightness: 13%);
+// $topbar-divider-border-top: solid 1px scale-color($topbar-bg-color, $lightness: -50%);
+
+// Sticky Class
+// $topbar-sticky-class: ".sticky";
+ $topbar-arrows: false; //Set false to remove the triangle icon from the menu item
+// $topbar-dropdown-arrows: true; //Set false to remove the \00bb >> text from dropdown subnavigation li//
+
+// 36. Visibility Classes
+// - - - - - - - - - - - - - - - - - - - - - - - - -
+
+// $include-html-visibility-classes: $include-html-classes;
+// $include-accessibility-classes: true;
+// $include-table-visibility-classes: true;
+// $include-legacy-visibility-classes: true;
--- /dev/null
+#sidebar {
+ padding-top: 25px;
+ background: #f2f9fc;
+ .row.collapse {
+ margin-left: 14px;
+ }
+ li {
+ list-style: none;
+ #calendar_wrap {
+ table#wp-calendar {
+ margin: 0 auto;
+ }
+ }
+ }
+ a {
+ font-size: 12px;
+ }
+ form {
+ margin: 0 12px 0 14px;
+ select {
+ padding: 0 rem-calc(8);
+ border-radius: 5px;
+ height: 25px;
+ margin: 0;
+ option {
+ font-size: 10px;
+ }
+ }
+ }
+ .small-block-grid-2 {
+ margin-top: 10px;
+ li {
+ padding: 0 rem-calc(10) rem-calc(10);
+ img {
+ border: 2px solid lightblue;
+ }
+ }
+ & > li:nth-of-type(2), & > li:nth-of-type(4) {
+ padding-left: 0;
+ }
+ & > li:nth-of-type(3), & > li:nth-of-type(4) {
+ padding-bottom: 20px;
+ }
+ }
+ h3 {
+ margin: 20px 0 0;
+ }
+ h1 {
+ margin: 0;
+ font-size: rem-calc(25);
+ text-transform: none;
+ }
+ input {
+ padding: 5px 0 5px 8px;
+ height: auto;
+ margin: 10px 0;
+ }
+ button {
+ border-radius: 2px;
+ padding: 0 10px;
+ }
+}
+#side-nav {
+ padding-top: 10px;
+ background: #f2f9fc;
+ h1 {
+ font-size: rem-calc(22);
+/* margin: 5px 0 25px;*/
+ }
+ h4 {
+ font-weight: bold;
+ margin-left: 10px;
+ }
+ li {
+ list-style: none;
+ }
+ ul {
+ list-style: none;
+ margin: 0 0 20px;
+ li {
+ margin: 0 -15px;
+ padding: 5px 10px 5px 25px;
+ &:hover {
+ background: #81adc1;
+ }
+ a {
+ color: darkblue;
+ &:hover {
+ color: $white;
+ }
+ }
+ }
+ }
+ h3 {
+ text-transform: none;
+ margin: 0;
+ }
+ input {
+ padding: 5px 0 5px 8px;
+ height: auto;
+ margin-bottom: 10px;
+ }
+ button {
+ border-radius: 2px;
+ padding: 0 10px;
+ }
+}
+#extra {
+ margin-top: 15px;
+ p {
+ line-height: 1.3;
+ &.title {
+ margin: 0;
+ &#last {
+ padding-top: 10px;
+ }
+ }
+ &#message {
+ text-transform: uppercase;
+ color: lightblue;
+ font-size: rem-calc(15);
+ margin: 40px 0;
+ }
+ }
+}
+.county-news {
+ font-weight: bold;
+}
+.current_page_item a {
+ font-weight: bold;
+}
+#ads_sidebar_container li {
+ list-style: outside none none;
+ text-align: center;
+}
\ No newline at end of file
--- /dev/null
+#slideshow {
+ position: relative;
+// top: 0;
+ min-height: 350px;
+ max-height: 640px;
+ overflow-y: hidden;
+ width: 100%;
+ z-index: -1;
+ list-style: none;
+ @media #{$small-only}{
+ position: relative;
+// z-index: 0;
+ min-height: 200px;
+ }
+ #caption {
+ background: rgba(0, 0, 0, 0.75);
+ color: $white;
+ margin-top: -51px;
+ p {
+ padding: 10px 5px;
+ font-size: 12px;
+ margin: 0;
+ text-align: right;
+ }
+ }
+}
--- /dev/null
+//1. Body
+//2. Header
+//3. Fonts
+//4. Top Bar
+//5. Off-Canvas
+.off-canvas-wrap {
+ min-height: 100%;
+ .inner-wrap {
+ min-height: 100vh;
+ height: 100%;
+ }
+}
+//6. Main
+h1 {
+// font-weight: bold;
+ letter-spacing: 0.05em;
+ color: $green;
+}
+h2 {
+ font-family: Times;
+ font-style: italic;
+ color: $base;
+ letter-spacing: 0.025em;
+}
+h3 {
+ font-family: Times;
+ font-style: italic;
+ color: $green;
+}
+h4 {
+ font-weight: 600;
+ text-transform: uppercase;
+ color: $white;
+ letter-spacing: 0.05em;
+}
+h5 {
+ text-transform: uppercase;
+ color: $base;
+}
+h6 {
+ font-family: Times;
+ font-style: italic;
+ color: $green;
+}
+//7. Slideshow
+//8. Blog
+//9. Sidebar
+//10. Links
+//11. Footer
+//12. Copyright
+
+#example.element {
+ background-color: transparent;
+}
\ No newline at end of file
--- /dev/null
+.contain-to-grid {
+ box-shadow: 0 5px 10px -1px $aluminum;
+ .top-bar {
+ height: 73px;
+ box-shadow: 0 3px 3px 0 rgba(0, 0, 0, 0.5);
+ margin-bottom: 10px;
+ }
+}
+.tab-bar {
+ .tab-bar-section.middle {
+// left: 0;
+// right: 2.8125rem;
+ text-align: right;
+ }
+ a.menu-icon {
+ span {
+ color: $white;
+ }
+ }
+}
+.top-bar {
+// margin-top: -30px;
+ float: none;
+ margin: 0 auto;
+ width: 1000px;
+}
+.top-bar-section {
+ background: transparent;
+ display: inline-block;
+ height: auto;
+ line-height: 1;
+ ul{
+ li {
+ position: relative;
+ background: rgba($white, 0);
+ a {
+ position: relative;
+ &:hover {
+ text-decoration: none;
+// border-bottom: 10px solid $teal;
+// border-left: 5px solid transparent;
+// border-right: 5px solid transparent;
+ }
+ }
+// &:last-child:not(.has-form) {
+// a:not(.button) {
+// padding-right: 0;
+// }
+// }
+ ul.dropdown {
+ z-index: 1;
+ position: relative;
+// top: 0;
+// left: 0 !important;
+// right: auto !important;
+ display: block;
+ float: left;
+ padding: 10px 5px;
+ width: 100%;
+ margin-left: 15px;
+ min-width: 400px;
+ background: $white;
+ border-bottom-left-radius: 5px;
+ border-bottom-right-radius: 5px;
+ border-color: $l-blue;
+ border-left-width: 1px;
+ border-bottom-width: 1px;
+ border-right-width: 1px;
+ border-top-width: 0;
+ border-style: solid;
+ li {
+ position: relative;
+ display: inline-block;
+ float: left;
+ width: 50%;
+ padding: 0 15px;
+ height: auto;
+ &:first-child {
+ display: none;
+ }
+ &:nth-child(odd) {
+ float: left;
+ }
+ &:nth-child(even) {
+ float: right;
+ }
+ &.active:not(.has-form) {
+ background: $white;
+ & > a:not(.button) {
+ color: $blue;
+ background: $white;
+ }
+ }
+ a {
+ padding: 10px 0 5px !important;
+ font-size: rem-calc(16) !important;
+ white-space: pre-wrap;
+ border-bottom: 1px solid #dcddde;
+ }
+ }
+ }
+ &.drop-left > .dropdown {
+ right: 0 !important; // may have to be 134px
+ left: auto !important;
+ float: right !important;
+ }
+// ul.dropdown {
+// z-index: 1;
+// position: relative;
+// left: 0 !important;
+// right: auto !important;
+// display: block;
+// background: $white;
+// width: 100%;
+// min-width: 950px;
+// border: 5px solid $teal;
+// padding-bottom: 25px;
+// li:hover {
+// a {
+// color: $tan;
+// }
+// }
+// li {
+// width: 25%;
+// text-align: center;
+// padding-top: 15px;
+// a {
+// font-size: rem-calc(16);
+// white-space: normal !important;
+// line-height: 10px;
+// float: none;
+// left: 0;
+// padding: 120px 0 0 0 !important;
+// position: absolute;
+// top: 0;
+// width: 85%;
+// margin: 0 7.5%;
+// background-color: transparent !important;
+// }
+// &:not(.has-form) a:not(.button){
+// line-height: 1.5;
+// }
+// &:last-child:not(.has-form) {
+// a:not(.button) {
+// padding: 0 rem-calc(20);
+// }
+// }
+// }
+// @media #{$medium-only}{
+// min-width: 600px;
+// li {
+// width: 50%;
+// a {
+// width: 96%;
+// margin: 0 2%;
+// }
+// }
+// }
+// }
+// &.drop-left > .dropdown {
+// right: 0 !important; // may have to be 134px
+// left: auto !important;
+// float: right !important;
+// }
+// &.drop-left.drop-centered > .dropdown {
+// right: -213px !important; // may have to be 134px
+// left: auto !important;
+// float: right !important;
+// }
+// &.drop-right {
+// ul.dropdown {
+// padding-left: 250px;
+// padding-right: 21px;
+// right: -1%;
+// left: auto;
+// top: 74px;
+// background: $white;
+// border-bottom-left-radius: 10px;
+// border-bottom-right-radius: 10px;
+// min-width: 500px;
+// box-shadow: 0 8px 10px -5px rgba(0, 0, 0, 0.5);
+// -ms-box-shadow: 0 8px 10px -5px rgba(0, 0, 0, 0.5);
+// -moz-box-shadow: 0 8px 10px -5px rgba(0, 0, 0, 0.5);
+// -webkit-box-shadow: 0 8px 10px -5px rgba(0, 0, 0, 0.5);
+// li {
+// white-space: nowrap;
+// background: $white;
+// text-align: right;
+// border-bottom: 1px solid #e7e7e8;
+// padding: 5px 0;
+// &.nav-img-container {
+// img {
+// position: absolute;
+// left: 20px;
+// top: 23px;
+// border: 6px solid #fdefd4;
+// }
+// border: none;
+// }
+// a {
+// padding-left: 0;
+// text-align: left;
+// font-size: 18px;
+// &:hover {
+// color: $d-blue;
+// text-shadow: 0 0 1px $green;
+// text-shadow: 1 0 1px $green;
+// text-shadow: 0 1 1px $green;
+// text-shadow: -1 0 1px $green;
+// text-shadow: 0 -1 1px $green;
+// }
+// }
+// }
+// }
+// }
+ }
+ }
+ & > ul > li {
+ position: relative;
+ &:before {
+ color: $blue;
+ content: " | ";
+ position: absolute;
+ bottom: 15px;
+// left: 50%;
+// @include off-canvas-arrow(up, $green, 10px);
+ font-weight: bold;
+ display:block;
+ padding: 0;
+ }
+ &:first-child {
+ &:before {
+ display: none;
+ }
+ }
+ }
+}
+.menu-item-object-product_tag > a {
+word-wrap: break-word !important;
+
+}
--- /dev/null
+// Wordpress styles
+// Table of Contents
+// 01. Images
+
+
+// 01. Images
+// 02 Search and Post
+
+img.aligncenter {
+ display: block;
+ clear: both;
+ float:none;
+ padding:0;
+ margin-left: auto;
+ margin-right: auto;
+ }
+
+img.alignright {
+ padding: 0;
+ margin: 0 0 6px 11px;
+ display: inline;
+ }
+
+blockquote.alignleft,
+img.alignleft,
+.wp-caption.alignleft {
+ margin: rem-calc(7) rem-calc(35) rem-calc(7) 0;
+}
+
+blockquote.alignright,
+img.alignright,
+.wp-caption.alignright {
+ margin: rem-calc(7) 0 rem-calc(7) rem-calc(35);
+}
+img.alignleft {
+ padding: 0;
+ display: inline;
+ }
+img.alignleft, img.alignright, img.aligncenter, img.alignnone, div.wp-caption img {
+// border: 1px solid $charcoal;
+}
+
+.alignright {
+ float: right;
+}
+.alignnone {
+ float: none;
+}
+.alignleft {
+ float: left;
+}
+.wp-caption {
+// background: $charcoal;
+ width: auto;
+}
+.wp-caption-text {
+ font-family: Open Sans, sans-serif;
+ font-size: 9px;
+ color: $white;
+ font-style: italic;
+ margin: 0;
+ padding: 0 5px;
+}
+.gallery-one-title {
+ height: 45px;
+ font-size: 0.8em;
+ text-align: center;
+ font-family: sans-serif;
+ padding: 5px;
+}
+.gallery-holder {
+ margin: 10px 0 20px 0;
+}
+@media #{$small-range} {
+ img.alignright, img.alignleft, img.aligncenter {
+ width: 70% !important;
+ display: block;
+ margin-left: auto;
+ margin-right: auto;
+ float: none;
+ text-align: center;
+ }
+ div.wp-caption.alignright, div.wp-caption.alignleft {
+ width: 44% !important;
+ margin-left: auto;
+ margin-right: auto;
+ float: none;
+ text-align: center;
+ }
+ div.wp-caption.aligncenter {
+ width: 85% !important;
+ margin-left: auto;
+ margin-right: auto;
+ float: none;
+ text-align: center;
+ }
+ div.wp-caption.alignnone {
+ width: 85% !important;
+ float: none;
+ }
+ div.wp-caption.alignright, div.wp-caption.alignleft, div.wp-caption.aligncenter {
+ width: 100%;
+ }
+}
+@media #{$medium-range} {
+ img.aligncenter, img.alignnone {
+ width: 70% !important;
+ display: block;
+ margin-left: auto;
+ margin-right: auto;
+ float: none;
+ text-align: center;
+ }
+ div.wp-caption.aligncenter {
+ width: 74% !important;
+ margin-left: auto;
+ margin-right: auto;
+ float: none;
+ text-align: center;
+ }
+ div.wp-caption.aligncenter {
+ width: 100%;
+ }
+ div.wp-caption.alignnone {
+ width: 73% !important;
+ float: none;
+ }
+}
+
+.wp-caption {
+ max-width: 100%;
+ margin: 10px 20px;
+ padding: 5px;
+// background-color: #f3f3f3;
+// border: 1px solid #ddd;
+ text-align: center;
+ img {
+ width: 100%;
+ }
+ p.wp-caption-text {
+ padding: 5px;
+ width: 100%;
+ margin: 0;
+ color: black;
+ font-size: 14px;
+ font-style: italic;
+ }
+ &.aligncenter {
+ margin: 10px auto;
+ }
+}
+// end Images
+// 02 Search and Post
+@media #{$small-only} {
+ #blog-posts-over {
+// padding: 0 !important;
+ margin: 0 !important;
+ }
+}
+.blog-posts-container {
+ margin: 30px 0 30px;
+ embed, iframe, object, video {
+ max-width: 100%;
+ }
+ a {
+ text-decoration: none;
+ }
+ header.entry-header {
+ h2.entry-title {
+ a {
+ color: #222;
+ margin-left: 0;
+ }
+ }
+ }
+ .wp-caption .wp-caption-text, .gallery-caption, .entry-caption {
+ overflow: hidden;
+ color: #757575;
+ font-size: 0.857143rem;
+ font-style: italic;
+ line-height: 2;
+ }
+ .date {
+ font-size: 12px;
+ }
+ footer.entry-meta {
+ color: #757575;
+ font-size: 0.928571rem;
+ line-height: 1.84615;
+ margin-top: 1.71429rem;
+ clear: both;
+ float: none;
+ margin-right: auto;
+ }
+ footer {
+ background: none;
+ clear: both;
+ padding: 15px 0 0;
+ position: relative;
+ text-align: center;
+ }
+}
+#content-wrapper {
+ h1, h2, h3, h4, h5, h6 {
+ clear: both;
+ }
+}
+.content {
+ background: #fff;
+/* -webkit-box-shadow: 5px 5px 10px 0px rgba(0,0,0,0.75);
+ -moz-box-shadow: 5px 5px 10px 0px rgba(0,0,0,0.75);
+ box-shadow: 5px 5px 10px 0px rgba(0,0,0,0.75);*/
+// box-shadow: 3px 3px 8px -1px darkgrey;
+}
+#searchform_container {
+ margin-top: 20px;
+}
+#searchform {
+ max-width: 100%;
+ text-align: center;
+ div {
+ input.blogbutton {
+ @include gradient(#1999ce, #107098);
+ }
+ }
+}
+#blog-side-info {
+ border-left: 1px solid grey;
+ margin-top: 30px;
+ padding-left: 20px;
+ @media #{$small-only} {
+ text-align: center;
+ }
+}
+
+// End Search and Posts
--- /dev/null
+/*
+GaslightMedia, all rights reserved.
+*/
+/*
+ Created on : May 22, 2015, 11:19:44 AM
+ Author : laury
+*/
+ /*
+ * To make the TINYMCE editor in wordpress reflect some of the default styles
+ * we have active on all our themes, thus leading to a more true WYSIWYG
+ * experience.
+ */
+#tinymce h1 {
+ clear: both;
+}
+
+#tinymce h2 {
+ clear: both;
+}
+
+#tinymce h3 {
+ clear: both;
+}
+
+#tinymce h4 {
+ clear: both;
+}
+
+#tinymce h5 {
+ clear: both;
+}
+
+#tinymce h6 {
+ clear: both;
+}
\ No newline at end of file
--- /dev/null
+@import "settings";
+@import "foundation";
+@import "mixins";
+@import "wordpress";
+@import "defaults";
+@import "body";
+@import "page.header";
+@import "topbar";
+@import "main";
+@import "slideshow";
+@import "plugins";
+@import "blog";
+@import "sidebar";
+@import "search";
+@import "page.footer";
+@import "copyright";
+@import "structure";
+@import "left-off-canvas";
+//@import "right-off-canvas";
+
--- /dev/null
+/*
+ Created on : Mar 5, 2015, 2:57:35 PM
+ Author : laury
+*/
+
+@mixin gradient($from, $to) {
+ background: -webkit-linear-gradient(top, $from 80%, $to 100%);
+ background: -moz-linear-gradient(center top, $from 80%, $to 100%);
+ background: -ms-linear-gradient(top, $from 80%, $to 100%);
+// @media screen and (min-width: 1290px) and (max-width: 1365px){
+// background: -webkit-linear-gradient(top, $from 45%, $to 85%);
+// background: -moz-linear-gradient(center top, $from 45%, $to 85%);
+// background: -ms-linear-gradient(top, $from 45%, $to 85%);
+// }
+// @media screen and (min-width: 1250px) and (max-width: 1289px){
+// background: -webkit-linear-gradient(top, $from 35%, $to 80%);
+// background: -moz-linear-gradient(center top, $from 35%, $to 80%);
+// background: -ms-linear-gradient(top, $from 35%, $to 80%);
+// }
+// @media screen and (min-width: 1080px) and (max-width: 1249px){
+// background: -webkit-linear-gradient(top, $from 30%, $to 75%);
+// background: -moz-linear-gradient(center top, $from 30%, $to 75%);
+// background: -ms-linear-gradient(top, $from 30%, $to 75%);
+// }
+// @media screen and (min-width: 1025px) and (max-width: 1079px){
+// background: -webkit-linear-gradient(top, $from 30%, $to 75%);
+// background: -moz-linear-gradient(center top, $from 30%, $to 75%);
+// background: -ms-linear-gradient(top, $from 30%, $to 75%);
+// }
+// @media #{$medium-only}{
+// background: -webkit-linear-gradient(top, $from 5%, $to 35%);
+// background: -moz-linear-gradient(center top, $from 5%, $to 35%);
+// background: -ms-linear-gradient(top, $from 5%, $to 35%);
+// }
+// @media #{$small-only}{
+// background: -webkit-linear-gradient(top, $from 0%, $to 30%);
+// background: -moz-linear-gradient(center top, $from 0%, $to 30%);
+// background: -ms-linear-gradient(top, $from 0%, $to 30%);
+// }
+}
--- /dev/null
+@mixin off-canvas-arrow($direction: down, $color: white, $size: 20px) {
+ border-left: $size + 1 solid transparent;
+ border-right: $size + 1 solid transparent;
+ @if $direction == 'up' {
+ border-bottom: $size solid $color;
+ border-top: 0;
+ // if width is not passed, or empty do this
+ } @else {
+ border-top: $size solid $color;
+ border-bottom: 0;
+ }
+}
+@mixin off-canvas-point($direction: right, $color: red, $size: 1rem) {
+ @if $direction == 'down' {
+ content: '>';
+ transform: rotate(90deg);
+ color: $color;
+ height: $size;
+ width: $size;
+ font-size: $size;
+ font-weight: bold;
+ display: block;
+ } @if $direction == 'up' {
+ content: '>';
+ transform: rotate(-90deg);
+ color: $color;
+ height: $size;
+ width: $size;
+ font-size: $size;
+ font-weight: bold;
+ display: block;
+ } @else if $direction == 'right' {
+ content: '>';
+ transform: rotate(0deg);
+ color: $color;
+ height: $size;
+ width: $size;
+ font-size: $size;
+ font-weight: bold;
+ display: block;
+ }
+}
\ No newline at end of file
--- /dev/null
+.gform_wrapper .top_label li.gfield.gf_left_third, .gform_wrapper .top_label li.gfield.gf_middle_third, .gform_wrapper .top_label li.gfield.gf_right_third{
+// vertical-align: inherit !important;
+}
+
+#input_1_14{
+
+ min-width: 290px !important;
+}
+#tab-product_inquiry_tab .gform_title {
+ display: none;
+}
\ No newline at end of file
--- /dev/null
+/* NextGen Gallery */
+.ngg-gallery-thumbnail,
+.ngg-gallery-thumbnail-box {
+ float: none !important;
+}
+.gallery li a img { // without this images will overlap each other at certain widths
+ display: block;
+ width: 100%;
+}
+.ngg-gallery-thumbnail, .ngg-gallery-thumbnail-box {
+ float: none !important;
+}
+.ngg-album-compact h4 .ngg-album-desc {
+ height: auto !important;
+ font-family: $font-family-serif;
+ font-weight: 400;
+}
+.ngg-album-compact .album-meta-wrapper h4 a {
+ font-style: normal;
+}
+.album-meta-wrapper {
+ display: block;
+ height: 54px;
+ margin-bottom: 20px;
+}
+.ngg-glmalbums {
+ margin: 10px 0;
+}
+/* Ninja Forms */
+.ninja-forms-form-wrap {
+ max-width: 600px;
+ margin: 0 auto;
+ input[type=submit] {
+ @include button();
+ display: block;
+ margin: 0 auto;
+ }
+}
+
+/* End NextGen Gallery */
--- /dev/null
+$blue : #006A71;
+$orange : #572700;
+/* WooCommerce */
+.woocommerce-wrapper #container {
+ max-width: 1000px;
+ margin: 0 auto;
+ float: left;
+}
+main.woocommerce,
+div.woocommerce {
+ font-family: Arial;
+ ul, ol, li {
+/* list-style: none;*/
+ }
+ #woo-quick-display {
+ background-color: white;
+ border-radius: 3px;
+ border: 1px solid lightgrey;
+ padding: 5px;
+ font-size: 16px;
+ margin-bottom: 25px;
+ > div {
+ text-align: center;
+ }
+ .button {
+ border-radius: 3px;
+ display: inline;
+ margin-left: 15px;
+ margin-top: 12px;
+ padding: 2px 8px;
+ float: right;
+ margin: 12px 0 0 18px;
+ background-color: #476e70;
+ color: white;
+ &:hover {
+ background-color: $blue;
+ }
+ }
+ h3 {
+ padding-top: 0;
+ text-align: center;
+ }
+ p {
+ margin-bottom: 0;
+ }
+ }
+ ul.products, .products ol, .products dl {
+ list-style-type: none;
+ }
+ .woocommerce-error,
+ .woocommerce-info,
+ .woocommerce-message,
+ .woocommerce-noreviews,
+ p.no-comments {
+ border-left: 0.618em solid rgba(0, 0, 0, 0);
+ clear:both;
+ margin-bottom: 20px;
+ margin-left: 0px;
+ font-family: arial, sans-serif;
+ font-weight: bold;
+ min-height: 55px;
+ padding-top: 7px;
+ line-height: 1.2;
+ .button {
+ margin: 5px;
+ float: left;
+ padding: 5px;
+ border-radius: 3px;
+ }
+ }
+ #respond input#submit.alt, a.button.alt, button.button.alt, input.button.alt {
+ background-color: #476e70;
+ color: white;
+ &:hover {
+ background-color: $blue;
+ }
+ }
+ .cart-collaterals .cart_totals, .woocommerce-page .cart-collaterals .cart_totals {
+ float: right;
+ margin-bottom: 40px;
+ width: 100%;
+ }
+ h1.product_title {
+ color: $green;
+ line-height: 1.2;
+ font-size: 40px;
+ margin-bottom: 10px;
+ }
+ .onsale {
+ display: none;
+ }
+ .page-numbers {
+ list-style-type: none;
+ display: flex;
+ li {
+ margin: 0 10px;
+ }
+ }
+ #text [class*="column"] + [class*="column"]:last-child {
+ float: left;
+ }
+ #text > .product {
+ margin-bottom: 20px;
+ }
+ .product.type-product {
+ color: black;
+ display: block;
+ a.button {
+ padding: 5px;
+ border-radius: 3px;
+ }
+ a.button:hover {
+ color: $black;
+ }
+ > div {
+ padding: 5px;
+ border-radius: 5px;
+ }
+ .tab-description {
+ display: inline-block;
+ & p {
+ padding-top: 15px;
+ }
+ }
+
+ .woocommerce-tabs ul.tabs {
+ padding: 0px;
+ }
+ .woocommerce-tabs ul.tabs li{
+ border-radius: 0px;
+ }
+ .woocommerce-tabs ul.tabs li.active{
+ border-color: lightgrey;
+ }
+ .woocommerce-tabs ul.tabs li.active::before {
+ border: none;
+ }
+ .woocommerce-tabs ul.tabs li.active::after{
+ border: none;
+ }
+ .woocommerce-tabs ul.tabs li::before {
+// box-shadow: 2px 2px 0 $blue;
+// border-width: 0 1px 1px 0;
+ border: none;
+ }
+ .woocommerce-tabs ul.tabs li::after, .woocommerce-tabs ul.tabs li::before {
+// border-color: $blue;
+ border: none;
+ }
+ .woocommerce-tabs ul.tabs li::after {
+// box-shadow: -2px 2px 0 $blue;
+ border: none;
+ }
+ .woocommerce-tabs ul.tabs li::after, .woocommerce-tabs ul.tabs li::before {
+// border-color: $blue;
+ border:none;
+ }
+ .woocommerce-tabs {
+ width: 100%;
+ clear:both;
+ /* display: table;*/
+ .wc-tab {
+ padding: 10px;
+ border: 1px solid lightgrey;
+ }
+ ul.wc-tabs {
+ &:before {
+ border-bottom-color: lightgrey;
+ }
+ &:after {
+
+ }
+ li {
+ margin-right: 8px;
+ background-color: #D2D3D5;
+ color: $orange;
+ border: 1px solid #D3D3D3;
+ border-bottom: 0;
+ display: inline-block;
+ color: $blue;
+ &:before {
+ border-bottom-color: $blue;
+ box-shadow: none;
+ }
+ &:after {
+ border-bottom-color: $blue;
+ }
+ &:hover {
+ background: rgba(0, 0, 0, 0) url("../assets/repeating-pattern.jpg") repeat scroll 0 0;
+ a {
+ color: grey;
+ }
+ }
+ a {
+ display: block;
+ }
+ @media #{$large-up} {
+ /* margin-left: -35px;*/
+ }
+ @media #{$medium-only} {
+ /* margin-left: -23px;*/
+ }
+
+ @media #{$small-only} {
+ width: 50%;
+ margin: 0;
+ font-size: 14px;
+ text-align: center;
+ a {
+ font-size: 14px;
+ }
+ &:nth-child(2n) {
+ float: right;
+ }
+ }
+ }
+
+ li.active {
+// border-bottom-color: $blue;
+ background-color: $white;
+ border-width: 2px;
+ color: #383838;
+ &:before {
+ box-shadow: 0;
+ box-shadow: none;
+ }
+ &:after {
+ box-shadow: -2px 2px 0 $blue;
+ }
+ &:hover {
+ background: $white;
+ }
+ a:hover {
+ color: #383838;
+
+ }
+ @media #{$small-only} {
+ border-width: 1px;
+ }
+ }
+ @media #{$small-only} {
+ padding-left: 0;
+ }
+ }
+ .tabs .reviews_tab,
+ .tabs .additional_information_tab {
+ display: none;
+ }
+ > div.panel {
+ background-color: white;
+ }
+ p.stars {
+ a {
+ font-size: 20px;
+ padding: 0 10px;
+ }
+ a.active {
+ background-color: $black;
+ border-radius: 2px;
+ }
+ }
+
+ }
+ .sku_wrapper {
+ display: none;
+ }
+ }
+ #address_form {
+ small {
+ display: inline-block;
+ font-size: 100%;
+ padding: 9px;
+ }
+ }
+ #tiptip_content {
+ font-family: Arial;
+ font-size: 12px;
+ }
+ .single_variation_wrap .quantity {
+ float: right;
+ margin-bottom: 10px;
+ input {
+ display: inline-block;
+ background-color: white;
+ height:40px;
+ width: 50px;
+ padding: 0;
+ margin: 0 5px;
+ }
+ }
+ #payment .payment_methods {
+ .form-row.place-order {
+ text-align: center;
+ }
+ ul.payment_methods {
+ list-style-type: none;
+ }
+ .payment_box > p {
+ margin: 0;
+ }
+ .payment_box fieldset {
+ margin: 0;
+ padding: 10px 10px 0;
+ }
+ .payment_box fieldset .form-row {
+ width: 100%;
+ }
+ @media #{$large-up} {
+ .payment_box fieldset .form-row {
+ width: 31%;
+ float: left;
+ }
+ .payment_box fieldset .clear {
+ clear: none;
+ }
+ }
+ .payment_box fieldset .form-row label {
+ padding: 0;
+ }
+ select[name="wc-intuit-qbms-test-condition"] {
+ margin: 0;
+ }
+ #wc-intuit-qbms-account-number{
+ max-width: 200px;
+ }
+ }
+ .pf-content {
+ margin-top: 20px;
+ }
+ table.shop_table {
+ width: 100%;
+ .coupon {
+ display: none;
+ }
+ .product-thumbnail {
+ display: none;
+ @media #{$large-up} {
+ display: default;
+ }
+
+ }
+ .quantity {
+ display:table;
+ .input-text {
+ margin: 0;
+ }
+ .minus,
+ .plus {
+ background-color: transparent;
+ box-shadow: none;
+ color: #a46497;
+ font-weight: 700;
+ width: 50px;
+ height: 40px;
+ }
+ }
+ }
+ .quantity .minus:hover, .quantity .plus:hover {
+ background-color: transparent;
+ color: inherit !important;
+ }
+ .checkout {
+ #customer_details {
+ display: inline-block;
+ width: 100%;
+ max-width: 600px;
+ }
+ .woocommerce-billing-fields,
+ .woocommerce-shipping-fields {
+ margin: 0 auto 40px;
+ max-width: 600px;
+ padding: 20px;
+ border: 1px solid $secondary-color;
+ p {
+ margin-bottom: 15px;
+ input {
+ margin-bottom: 15px;
+ }
+ }
+ }
+ }
+ #content-wrapper.woocommerce-wrapper {
+ .content {
+ padding: 20px 5px;
+ }
+ @media #{$small-only} {
+ .main {
+ padding: 0 10px;
+ }
+ }
+ }
+ #content {
+ margin-top: 25px;
+ }
+ .woocommerce-ordering select.orderby {
+ max-width: 200px;
+ }
+ main.page-inside #content-wrapper #main-content #main-text.shop-cat-list {
+ padding: 0 6px;
+ }
+ main.page-inside #content-wrapper #main-content #main-text.shop-cat-list .shop-cat-list-content > div {
+ padding: 0;
+ }
+ main.page-inside #content-wrapper .content {
+ border-bottom: 3px solid #c5aa6d;
+ box-shadow: 0 5px 5px 0 rgba(0, 0, 0, 0.8);
+ }
+ #content-wrapper.woocommerce-wrapper .main.woo-single-product {
+ padding: 20px 3%;
+ }
+ nav.top-bar .top-bar-section > ul > li.drop > ul.dropdown .woocommerce {
+ .products {
+ position: inherit;
+ border: 0 !important;
+ }
+ .product-category {
+ margin-bottom: 0;
+ height: 25px;
+ }
+ .product-category h3 {
+ font-size: 12px;
+ font-weight: normal;
+ padding: 0.5em 20px;
+ }
+ .product-category:hover h3 {
+ color: #25c2e6 !important;
+ }
+ img {
+ display: none;
+ }
+ }
+ .left-off-canvas-menu > ul > li.has-dropdown > ul.dropdown .woocommerce {
+ .products {
+ position: inherit;
+ border: 0 !important;
+ }
+ .product-category {
+ margin-bottom: 0;
+ height: 28px;
+ }
+ .product-category h3 {
+ color: white;
+ font-size: 12px;
+ font-weight: normal;
+ padding: 0.5em 20px;
+ }
+ img {
+ display: none;
+ }
+ a {
+ margin-left: 40px;
+ padding: 0;
+ }
+ }
+ #payment .payment_methods label {
+ padding: 0 0 20px;
+ margin: 0;
+ width: 80%;
+ }
+ #shipping_method input[type="checkbox"]+label, input[type="radio"]+label {
+ margin-left: 25px;
+ }
+ .cart_item .product-name {
+ min-width: 160px;
+ font-size: 15px;
+ font-weight: bold;
+ }
+ .woocommerce-checkout-review-order-table .product-quantity {
+ float: right;
+ }
+ #content .cart_item td.product-name dl.variation dd, dd p, dt {
+ font-size: 12px;
+ font-weight: normal;
+ margin-bottom: 0;
+ line-height: 1;
+ }
+ #content td.product-name dl.variation {
+ dd, dt {
+ margin-bottom: 0;
+ }
+
+ }
+ #content .product.type-product .variations_form .variations {
+ margin: 0 auto;
+ width: auto;
+ min-width: 190px;
+ max-width: 220px;
+ }
+ .variations tbody,
+ .variations tbody tr {
+ display: block;
+ }
+ .page-numbers li {
+ float: left;
+ }
+ .related.products {
+ margin-top: 30px;
+ }
+ h3#ship-to-different-address {
+ font-weight: bold;
+ }
+ .woocommerce-breadcrumb {
+ display: none;
+ }
+
+ /* General CSS */
+ #content .product.type-product {
+ .product_meta {
+ clear: both;
+ padding-top: 25px;
+ }
+ .product_meta a {
+ display: initial;
+ }
+ .product_meta .posted_in {
+ display: none;
+ }
+ .variations_form a.reset_variations {
+ display: none !important;
+ }
+ .variations_form {
+ clear: both;
+ display: table;
+ width: 100%;
+ margin-bottom: 20px;
+ .variations {
+ display: block;
+ margin: 0 auto;
+ width: auto;
+ min-width: 190px;
+ max-width: 220px;
+ border: 0;
+ margin-top: 30px;
+ ul {
+ border: 1px solid darkgrey;
+ margin-left: 0;
+ text-align: left;
+ }
+ display: block;
+/* @media #{$large-up} {
+ display: inline-block;
+ width: 50%;
+ }*/
+ .label {
+ display: block;
+ }
+ .label label {
+ color: white;
+ }
+ .value {
+ padding-right: 0;
+ display: block;
+ fieldset {
+ border: none;
+ padding-top: 0;
+ padding-bottom: 0;
+ margin-top: 0;
+ margin-bottom: 0;
+ p {
+ margin-bottom: 5px;
+ }
+ }
+ }
+ input[type="file"], input[type="checkbox"], input[type="radio"], select {
+ margin-bottom: 0;
+ margin-right: 0;
+ }
+ select {
+ background-color: $blue;
+ border-radius: 5px;
+ color: white;
+ border: none;
+ }
+ select * {
+ background-color: lightblue;
+ color: black;
+ }
+ }
+ .single_variation_wrap {
+ margin: 0 auto;
+ float: right;
+ clear: both;
+ .single_variation {
+ padding: 10px;
+ float: right;
+ @media #{$small-only} {
+ float:none;
+ text-align: center;
+ }
+ }
+ }
+ .variations_button button {
+ border-radius: 3px;
+ font-size: 16px;
+ margin: 12px 0 0;
+ padding: 8px 28px;
+ }
+ @media #{$medium-down} {
+
+ .variations,
+ .single_variation_wrap,
+ .single_variation_wrap .variations_button,
+ .single_variation_wrap .variations_button .quantity {
+ text-align:center;
+ float: none;
+ margin-left: auto;
+ margin-right: auto;
+ clear: both;
+ }
+ .single_variation_wrap .variations_button .quantity {
+ clear: none;
+ }
+ }
+ @media #{$small-only} {
+ .single_variation_wrap {
+ width: 100%;
+ }
+ }
+ }
+ h1.product_title {
+ color: $teal;
+ font-size: 27px;
+ font-family: open sans;
+ font-weight: bold;
+ line-height: 1;
+ margin: 0 auto;
+ width: 90%;
+ padding-bottom: 10px;
+ }
+ .single_add_to_cart_button {
+ border-radius: 3px;
+ clear: both;
+ float: right;
+ @media #{$medium-down} {
+ float:none;
+ }
+ background: rgba(0, 0, 0, 0) url("../assets/repeating-pattern.jpg") repeat scroll 0 0;
+ font-size: 16px;
+ margin: 12px 0 0;
+ padding: 8px 28px;
+ border:1px solid transparent;
+ &:hover, &:focus {
+ background-color: white;
+ border:1px solid $blue;
+ }
+ }
+ > div {
+ float: left;
+ }
+ .related.products {
+ width: 100%;
+ }
+ .quantity, .qty {
+ float: right;
+ @media #{$small-only} {
+ float:none;
+ margin: 0 auto;
+ }
+ display:table;
+ height: 25px;
+ padding: 2px 0 2px 5px;
+ .input-text {
+ margin: 0;
+ }
+ .minus,
+ .plus {
+ background-color: transparent;
+ box-shadow: none;
+ color: #a46497;
+ font-weight: 700;
+ width: 50px;
+ height: 40px;
+ }
+ .minus:hover,
+ .plus:hover {
+ background-color: transparent;
+ color: inherit !important;
+ }
+ }
+ .cart-qty-label {
+ float: none;
+ text-align: center;
+ clear: both;
+ margin-left: 5px;
+ }
+ .price {
+ color: transparent;
+ margin-bottom: 0;
+ font-size: 32px;
+ margin: 0;
+ float: right;
+ text-align: right;
+ @media #{$small-only} {
+ float:none;
+ text-align: center;
+ }
+ display: block;
+ line-height: 1.0;
+ > * {
+ height: 40px;
+ }
+ span {
+ color: $orange;
+ font-size: 40px;
+ margin-top: -2px;
+ }
+ span:nth-child(2) {
+ display: none;
+ }
+ del {
+ color: $blue;
+ }
+ }
+ .price.price-single {
+ clear: both;
+ float: none;
+ text-align: left;
+ padding-bottom: 5px;
+ span {
+ color: black;
+ font-size: 22px;
+ }
+ @media #{$medium-down} {
+ text-align: center;
+ }
+ }
+ .stock {
+ color: black;
+ float: right;
+ @media #{$small-only} {
+ float:none;
+ text-align: center;
+ }
+ clear: both;
+ font-size: 14px;
+ }
+ @media #{$small-only} {
+ margin-top: 20px;
+ .images {
+ width: auto;
+ max-width: 260px;
+ margin: 0 auto;
+ float: none;
+ }
+ .summary.entry-summary {
+ width: 100%;
+ }
+ .summary.entry-summary h1 {
+ font-size: 32px;
+ }
+ }
+ .related .products .product.type-product h3 {
+ font-size: 13px;
+ font-weight: normal;
+ }
+ .summary.entry-summary > div[itemprop="description"] {
+ margin: 0 auto;
+ text-align: left;
+ width: 100%;
+ }
+ }
+ .shop_table.shop_table_responsive.cart {
+ margin-top: 20px;
+ }
+ .wc-proceed-to-checkout {
+ text-align: center;
+ }
+ /* End General CSS */
+
+
+ /* Product Detail page */
+ .main.woo-single-product{
+ float: left;
+ }
+ .main.woo-single-product #content {
+ .type-product {
+ .images {
+ border: 0 none;
+ float: none;
+ width: 100%;
+ max-width: 100%;
+ margin-bottom: 10px;
+ .woocommerce-main-image.zoom {
+ display: block;
+// max-height: 440px;
+// height: 220px;
+// overflow: hidden;
+// border: 1px solid lightgrey;
+// border-radius: 2px;
+ }
+ .woocommerce-main-image.zoom .wp-post-image {
+// max-height: 440px;
+ height: auto;
+ margin: 0 auto;
+ width: 100%;
+ border-radius: 10px;
+ border: 1px solid grey;
+ }
+ width: 100%;
+ @media #{$small-only} {
+ width: 100%;
+ }
+ #wpb_wiz_img_id {
+// height: 220px;
+ }
+
+ }
+ .summary.entry-summary {
+ width: 100%;
+ margin-bottom: 10px;
+ @media #{$small-only} {
+ width: 100%;
+ }
+ }
+ .cart,
+ .price,
+ .quantity,
+ .qty,
+ .stock,
+ .single_variation_wrap,
+ .single_variation_wrap .single_variation {
+ float:none;
+ text-align: center;
+ margin: 0 auto;
+ }
+
+ .single_add_to_cart_button,
+ .single_add_to_cart_button button {
+ text-align: center;
+ margin-top: 12px;
+ float: none;
+ }
+ .woo-qty-wrapper {
+ margin: 0 auto;
+ width: 100px;
+ }
+ .cart-qty-label {
+ float:left;
+ clear: none;
+ text-align: center;
+ }
+ }
+ .thumbnails > a {
+ display: none;
+ padding: 0px;
+ height: 35px;
+ overflow: hidden;
+ border: 1px solid lightgrey;
+ border-radius: 2px;
+ img {
+ min-height: 35px;
+ min-width: 100%;
+ }
+ }
+ .product.has-default-attributes.has-children {
+ > .images {
+ opacity: 1;
+ }
+ }
+ .entry-summary .product_title {
+ margin-bottom: 10px;
+ }
+ /* Related products */
+ .related ul.products li.product:last-child,
+ .related ul.products li.product {
+ width: 33.33%;
+ height: 300px;
+ @media #{$small-only} {
+ width: 50%;
+ height: 260px;
+ }
+ float: left;
+ clear: none;
+ padding: 10px;
+ margin: 0;
+ img {
+ padding-right: 0;
+ max-height: 172px;
+ max-width: 207px;
+ padding-right: 15px;
+ width: 100%;
+ }
+ [itemprop="description"] {
+ display: none;
+ }
+ .price span.amount {
+ font-size: 22px;
+ }
+ .price > * {
+ height: 20px;
+ }
+ form.cart {
+ display: none;
+ }
+ }
+ /* End Related products */
+ }
+ /* End product detail page */
+
+ /* Products page */
+ #content ul.products {
+ display: table;
+ margin: 0 auto;
+ position: relative;
+ width: 100%;
+ @media #{$small-only} {
+ max-width: 470px;
+ padding: 0;
+ }
+ mark {
+ background-color: transparent;
+ }
+ li.product.type-product {
+ border: medium none;
+ height: auto;
+ padding: 10px;
+ clear: both;
+ width: 100%;
+ border: none;
+ margin: 0 auto 10px;
+ .variations_form {
+ clear: both;
+ display: table;
+ width: 100%;
+ margin-bottom: 20px;
+ .variations {
+ float: right;
+ @media #{$medium-down} {
+ float: none;
+ }
+ }
+ }
+ h3 {
+ font-size: 18px;
+ text-align: left;
+ padding: 10px 0 0;
+ font-style: normal;
+ font-family: "josefin sans";
+ }
+ @media #{$medium-down} {
+ margin-bottom: 25px;
+ h3 {
+ text-align: center;
+ }
+ }
+ .product-list-link {
+ display: block;
+ height:220px;
+ float: none;
+ margin: 0 auto;
+ max-width: 266px;
+ overflow: hidden;
+ border: 1px solid lightgrey;
+ border-radius: 2px;
+ .wp-post-image {
+ min-height: 220px;
+ width: 100%;
+ }
+ }
+ .product-list-link-wrapper {
+ padding-right: 15px;
+ }
+ .wp-post-image {
+ margin-bottom: 0;
+ border: none;
+ padding-right: 15px;
+ }
+ > div {
+ margin: 0 auto;
+ padding: 5px;
+ border-radius: 5px;
+ width: 100%;
+ img {
+ /* border: 2px solid $black;*/
+ border-radius: 3px;
+ }
+ }
+ h3 {
+ font-weight: normal;
+ }
+ .count {
+ background-color: transparent;
+ }
+ & > div {
+ background-color: white;
+ h3 {
+ color: $orange;
+ font-size: 24px;
+ margin-top: -2px;
+ }
+ }
+ p.products-short-desc {
+ line-height: 1.3;
+ margin-bottom: 0;
+ }
+ .woocommerce-variation-availability {
+ float: right;
+ @media #{$small-only} {
+ float:none;
+ text-align: center;
+ }
+ }
+ .woocommerce-variation-availability .stock {
+ margin-bottom: 0;
+ }
+ .more {
+ display: inline;
+ float: right;
+
+ @media #{$medium-down} {
+ float: none;
+ }
+ margin-left: 5px;
+ color: $blue;
+ }
+ .products-qty-contain {
+ span {
+ margin-left: 5px;
+ }
+ }
+ .cart {
+ float: right;
+ text-align: right;
+ clear: both;
+ @media #{$small-only} {
+ float:none;
+ text-align: center;
+ }
+ }
+ .products-add-to-cart {
+ button {
+ width: 100%;
+ }
+ clear: both;
+ float: right;
+ }
+ }
+ .added_to_cart {
+ border: 1px solid lightgrey;
+ border-radius: 4px;
+ }
+ a {
+ text-decoration: none;
+ &:hover {
+ text-shadow: none;
+ }
+ }
+ }
+ /* End Products page */
+ header.title {
+ box-shadow: none;
+
+ }
+}/* End WooCommerce */
+
+.pp_content .pp_gallery {
+ height: 0;
+ overflow: hidden;
+ width: 0;
+}
+#woo-quick-cart-image {
+ img {
+ width: 24px;
+ }
+ > div {
+ float: left;
+ }
+ clear: none;
+ display: block;
+ float: left;
+ height: 26px;
+ padding: 2px;
+ width: 25px;
+}
+.woo-quick-cart-totals {
+ width:105px;
+ @media #{$medium-up} {
+ margin-left:30px;
+ margin-top: 10px;
+ }
+}
+#woo-quick-checkout {
+ button {
+ float: right;
+ }
+}
+#cart-login {
+ > div {
+ float: left;
+ display: block;
+ text-align: center;
+ padding: 0 5px;
+ }
+ a {
+ color: black;
+ }
+ a:hover {
+ color: $blue;
+ }
+}
+/* Product categories */
+#main-content ul.products li.product-category.product,
+#content ul.products li.product-category.product {
+ width: 33.33%;
+ @media #{$small-only} {
+ width: 50%;
+ }
+ float: left;
+ padding: 20px;
+ margin: 0;
+ .products-image-container {
+ height: 200px;
+ }
+}
+
+/*#content ul.products li.product-category.product,
+#content .woocommerce-page ul.products li.product-category.product {
+ @media #{$small-only} {
+ float: none;
+ margin: 0 auto 30px;
+ }
+}*/
+/* End product categories */
+
+/* Button styles */
+main .woocommerce #respond input#submit.alt:hover, main .woocommerce a.button.alt:hover, main .woocommerce button.button.alt:hover, main .woocommerce input.button.alt:hover {
+ background: rgba(0, 0, 0, 0) url("../assets/repeating-pattern.jpg") repeat scroll 0 0;
+ border:1px solid $blue;
+}
+main .woocommerce #respond input#submit.alt, main .woocommerce a.button.alt, main .woocommerce button.button.alt, main .woocommerce input.button.alt {
+ background: rgba(0, 0, 0, 0) url("../assets/repeating-pattern.jpg") repeat scroll 0 0;
+ border:1px solid white;
+}
+/* End Button styles */
+
+main.woocommerce ul.products li.product,main.woocommerce-page ul.products li.product,main.woocommerce-page[class*="columns-"] ul.products li.product,main.woocommerce[class*="columns-"] ul.products li.product {
+ clear: none;
+}
+
+
+ /* Sidebar */
+.woocommerce {
+ .shop-sidebar {
+ margin-bottom: 20px;
+ }
+ .shop-sidebar ul.products > li.product {
+ width: 100%;
+ margin-bottom: 0px;
+ background-color: white;
+ }
+ .shop-sidebar ul.products {
+ margin-top: 0;
+ }
+ .shop-sidebar ul.products > li.product > a > h3 {
+ padding: 5px 0;
+ text-align: left;
+ font-weight: bold;
+ color: white;
+ line-height: 1.1;
+ }
+ .shop-sidebar {
+ list-style: outside none none;
+ margin-left: 0;
+ }
+ .shop-sidebar .products {
+ margin: 20px 0 0;
+ }
+ .shop-sidebar > li {
+ background: none repeat scroll 0 0 #2F4D4F;
+ // border-bottom: 1px solid #ffffff;
+ padding: 2px 0 2px 15px;
+ &:first-child {
+ border-top-left-radius: 5px;
+ border-top-right-radius: 5px;
+ }
+ &:last-child {
+ border-bottom-left-radius: 5px;
+ border-bottom-right-radius: 5px;
+ }
+ a {
+ color: white;
+ text-transform: uppercase;
+ }
+ }
+ #sidebar-category .shop-sidebar ul.products li.current {
+ h3 {
+ color: $blue;
+ }
+
+ &:hover h3 {
+ color: white;
+ }
+ }
+
+ .shop-sidebar ul.products > li.product > a > div > img {
+ display: none;
+ }
+ #content-wrapper{
+ top: 0px;
+ }
+}
+ /* End sidebar */
+main.woocommerce .product.type-product .woocommerce-tabs ul.wc-tabs li, div.woocommerce .product.type-product .woocommerce-tabs ul.wc-tabs li{
+ margin-right: 5px;
+}
+main.woocommerce .product.type-product .woocommerce-tabs ul.wc-tabs li.active::after, div.woocommerce .product.type-product .woocommerce-tabs ul.wc-tabs li.active::after{
+ border: none;
+ box-shadow: none;
+}
+main.woocommerce .product.type-product .woocommerce-tabs ul.wc-tabs li.active::after, div.woocommerce .product.type-product .woocommerce-tabs ul.wc-tabs li.active::before{
+ border: none;
+ box-shadow: none;
+}
+#tab-photos_tab{
+ overflow: hidden;
+}
+
+@media(max-width: 480px){
+ #tab-photos_tab{
+ text-align: center;
+ }
+ .product_gallery_images{
+
+ }
+}
+//@media(max-width: 730px) and (min-width: 498px){
+// #tab-photos_tab{
+//
+// }
+// .product_gallery_images{
+// display: inline-block;
+// width: 250px;
+// height: 225px;
+// margin: 2px 9px 5px 40px;
+// }
+//}
+@media#{$small-only}{
+ main.woocommerce .product.type-product .woocommerce-tabs ul.wc-tabs li, div.woocommerce .product.type-product .woocommerce-tabs ul.wc-tabs li{
+ margin-right: 0px;
+ }
+}
+.side_bar{
+ float:right;
+ margin-top: 100px;
+}
+.cat-item, .product_term{
+ list-style: none;
+ padding-bottom: 15px;
+ line-height: 15px;
+}
+#tags_sidebar_container{
+ & h5 {
+ color: #006a71;
+ }
+ & #tags_sidebar .cat-item a {
+
+ font-family: "josefin sans";
+ color: black;
+ }
+}
+#categories_sidebar_container{
+ margin-bottom: 30px;
+ list-style: none;
+ & h5{
+ color: #006a71;
+ } & ul li a {
+
+ font-family: "josefin sans";
+ color: black;
+ }
+}
+#regions_sidebar li{
+ list-style: none;
+ line-height: 16px;
+ padding-bottom: 11px;
+ & h5 {
+ color: black;
+ }
+}
+#enquire_button{
+ border: 1px solid transparent;
+ border-radius: 7px;
+ padding: 10px 10px 10px 10px;
+ width: 100%;
+
+ -moz-box-shadow: 3px 3px 5px 3px #A6A5A3;
+ -webkit-box-shadow: 3px 3px 5px 3px #A6A5A3;
+ box-shadow: 3px 3px 5px 3px #A6A5A3;
+}
+
+main.woocommerce #content ul.products li.product img , div.woocommerce #content ul.products li.product img {
+ color: transparent;
+ &:hover{
+ color: transparent;
+ }
+}
+#container #content ul.products li.product{
+ width: 33.33%;
+ clear: none;
+ float: left;
+}
+#container #content ul.products li.product{
+ width: 33.33%;
+ clear: none;
+ float: left;
+}
+@media#{$small-only}{
+ #container #content ul.products li.product{
+ width: 75%;
+ margin-left: 35px;
+ float: left;
+ }
+}
+.orderby, .woocommerce-result-count{
+ display: none;
+}
+ul.products{
+ & li a h3{
+ color: #006a71;
+ display: inline-block;
+ padding-bottom: 10px !important;
+ }
+ & div[itemprop="description"] p{
+ line-height: 1.1;
+ color: black
+ }
+}
+div[itemprop="description"] p{
+ font-family: "josefin sans";
+}
+.woocommerce-tabs .tabs .product_inquiry_tab_tab{
+ background-color: #006a71 !important;
+ & a{
+ color: white !important;
+ }
+
+}
+.product_featured_image{
+ margin: 0 auto;
+ max-height: 370px;
+ max-width: 1920px;
+ overflow-y: hidden;
+ position: relative;
+ top: 0;
+ width: 100%;
+ z-index: -1;
+ min-height: 0px;
+
+}
+woocommerce #content div.product .woocommerce-tabs ul.tabs li, .woocommerce div.product .woocommerce-tabs ul.tabs li, .woocommerce-page #content div.product .woocommerce-tabs ul.tabs li, .woocommerce-page div.product .woocommerce-tabs ul.tabs li{
+ left: 10px;
+}
+ul.products li .button.product_type_simple.ajax_add_to_cart{
+ display: none;
+}
+.st_sharethis {
+ float: right;
+ margin: 10px;
+ width: 58px;
+}
+#content-wrapper .stButton .sharethis {
+ background-image: url("../assets/share-icon.png") !important;
+ width: 52px;
+ height: 22px;
+}
+
+.products_image{
+ list-style: none;
+}
+li.products_image_container, a.product_image_link{
+ display: inline-block;
+ height: 200px;
+ width: 200px;
+ margin: 5px;
+}
+.sidebar-headline{
+ margin-bottom: 1px;
+}
+ul#tags_sidebar div.sidebar-region{
+ line-height: 1.1;
+ margin-bottom: 5px;
+}
+.form-confirmation{
+ color: white;
+ background: #5E300B;
+ width: 550px;
+ height: 50px;
+ font-family: "josefin sans";
+ font-size: 20px;
+ -moz-box-shadow: 3px 3px 5px 3px #A6A5A3;
+ -webkit-box-shadow: 3px 3px 5px 3px #A6A5A3;
+ box-shadow: 3px 3px 5px 3px #A6A5A3;
+ border-radius: 5px;
+ & .confirmation-text{
+ padding-top: 15px;
+ text-align: center;
+ }
+}
+#tab-description p {
+ padding-top: 15px;
+}
\ No newline at end of file
--- /dev/null
+<?php get_header(); ?>
+<main class="search-results">
+ <div id="header-image">
+ <?php echo glm_get_header();?>
+ </div>
+
+ <div class="row">
+ <?php if (get_search_query() == "") { ?>
+ <br><h2 class="search-result-header small-12 columns">Please enter a query in the search box. </h2>
+ <?php } else { ?>
+ <br><h2 class="search-result-header small-12 columns">Search Results for "<?php echo get_search_query(); ?>"</h2>
+ </div>
+
+ <div class="row">
+ <div id="blog-posts-over" class="small-12 columns">
+ <?php if(have_posts()) : while(have_posts()): the_post();?>
+ <?php if (is_search() && (isset($_GET['searchType']) && $_GET['searchType'] == 'blog') && ($post->post_type=='page')) continue; ?>
+ <div class="row content search-result-container">
+ <div class="small-11 small-centered columns">
+ <article id="<?php the_ID()?>" <?php post_class()?>>
+ <header class="entry-header">
+ <h1 class="entry-title"><a href="<?php the_permalink(); ?>"><?php the_title();?></a></h1>
+ <span class="meta date">Posted on <?php the_time('F jS, Y') ?></span>
+ </header>
+
+
+ <!-- Start of the Contextual/Highlight Search -->
+ <?php
+ // Configuration
+ $max_length = 400; // Max length in characters
+ $min_padding = 30; // Min length in characters of the context to place around found search terms
+
+ // Load content as plain text
+ global $wp_query, $post;
+ $content = (!post_password_required($post) ? strip_tags(preg_replace(array("/\r?\n/", '@<\s*(p|br\s*/?)\s*>@'), array(' ', "\n"), apply_filters('the_content', $post->post_content))) : '');
+
+ // Search content for terms
+ $terms = $wp_query->query_vars['search_terms'];
+ if ( preg_match_all('/'.str_replace('/', '\/', join('|', $terms)).'/i', $content, $matches, PREG_OFFSET_CAPTURE) ) {
+ $padding = max($min_padding, $max_length / (2*count($matches[0])));
+
+ // Construct extract containing context for each term
+ $output = '';
+ $last_offset = 0;
+ foreach ( $matches[0] as $match ) {
+ list($string, $offset) = $match;
+ $start = $offset-$padding;
+ $end = $offset+strlen($string)+$padding;
+ // Preserve whole words
+ while ( $start > 1 && preg_match('/[A-Za-z0-9\'"-]/', $content{$start-1}) ) $start--;
+ while ( $end < strlen($content)-1 && preg_match('/[A-Za-z0-9\'"-]/', $content{$end}) ) $end++;
+ $start = max($start, $last_offset);
+ $context = substr($content, $start, $end-$start);
+ if ( $start > $last_offset ) $context = '...'.$context;
+ $output .= $context;
+ $last_offset = $end;
+ }
+
+ if ( $last_offset != strlen($content)-1 ) $output .= '...';
+ } else {
+ $output = $content;
+ }
+
+ if ( strlen($output) > $max_length ) {
+ $end = $max_length-3;
+ while ( $end > 1 && preg_match('/[A-Za-z0-9\'"-]/', $output{$end-1}) ) $end--;
+ $output = substr($output, 0, $end) . '...';
+ }
+
+ // Highlight matches
+ $context = nl2br(preg_replace('/'.str_replace('/', '\/', join('|', $terms)).'/i', '<strong>$0</strong>', $output));
+ ?>
+
+ <p class="search_result_context">
+ <?php echo $context ?>
+ </p>
+ <p>
+ <a href="<?php the_permalink() ?>" rel="bookmark">Read this entry</a>
+ </p>
+ <!-- End of the Contextual/Highlight Search -->
+
+ <?php //echo (function_exists('the_advanced_excerpt')) ? the_advanced_excerpt(): the_excerpt(); ?>
+ <footer class="entry-meta small-12 medium-6 medium-push-3 center">
+ <?php
+ if (has_category()) {
+ $post_categories = wp_get_post_categories( get_the_ID() );
+ $cats = array();
+ echo 'This entry was posted ';
+ echo 'in';
+ foreach($post_categories as $c){
+ $cat = get_category( $c );
+ $cats[] = array( 'name' => $cat->name, 'slug' => $cat->slug );
+ echo ', <a rel="category" title="View all posts in '. $cat->name . ' " href="'. $cat->slug .'">'. $cat->name .'</a>';
+ }
+ echo '.';
+ }
+ ?>
+ </footer>
+ </article>
+ </div>
+ </div>
+ <?php endwhile; ?>
+ <div class="navigation">
+ <span class="newer"><?php previous_posts_link(__('« Newer','example')) ?></span> <span class="older"><?php next_posts_link(__('Older »','example')) ?></span>
+ </div><!-- /.navigation -->
+ <?php else: ?>
+ <div id="post-404" class="noposts">
+ <p><?php _e('Sorry, no results were found.');?></p>
+ </div><!-- /#post-404 -->
+ <?php endif;?>
+ </div>
+
+ <?php } ?> <!-- end empty query check -->
+ </div>
+
+ <?php get_footer(); ?>
--- /dev/null
+<?php
+global $post, $product;
+$id = $post->ID;
+$product_meta = new WC_Product($id);
+$title = $product_meta->get_title();
+$region = $product_meta->get_categories();
+
+?>
+<div id="sidebar-category">
+ <?php get_template_part('parts/shop-sidebar');?>
+</div>
+<?php if ( ! is_shop() ){ ?>
+ <div id="enquire_button_container">
+ <a href="<?php echo get_permalink(163); ?>?sku=<?php echo $sku; ?>&title=<?php echo $title; ?>"><button id="enquire_button"> Inquire about this tour </button></a>
+</div>
+<?php } ?>
+
+
+<?php
+ $taxonomy = 'product_cat';
+ $orderby = 'name';
+ $show_count = 0; // 1 for yes, 0 for no
+ $pad_counts = 0; // 1 for yes, 0 for no
+ $hierarchical = 1; // 1 for yes, 0 for no
+ $title = '';
+ $empty = 0;
+
+ $args = array(
+ 'taxonomy' => $taxonomy,
+ 'orderby' => $orderby,
+ 'show_count' => $show_count,
+ 'pad_counts' => $pad_counts,
+ 'hierarchical' => $hierarchical,
+ 'title_li' => $title,
+ 'hide_empty' => $empty,
+ );
+
+$all_categories = get_categories( $args );
+
+?>
+<div id="tags_sidebar_container">
+ <h5 class="sidebar-headline"> Other Tours In: </h5>
+
+ <!-- get the product category slugs -->
+ <?php
+ $terms = get_the_terms( $id, 'product_cat' );
+ foreach ($terms as $term) {
+ $region_slug = $term->slug;
+ }
+ ?>
+ <ul id="tags_sidebar">
+ <!-- show related tours by category if on the single product page -->
+ <?php if( is_product() ) { ?>
+ <?php echo'<div class="sidebar-region">'. $region . '</div>'; ?>
+ <?php $args = array( 'post_type' => 'product', 'posts_per_page' => -1, 'product_cat' => $region_slug , 'orderby' => 'ASC' ); ?>
+
+ <?php $loop = new WP_Query( $args ); ?>
+ <?php while ( $loop->have_posts() ) : $loop->the_post(); global $product; ?>
+
+ <li class="related_tours"> <a href="<?php echo get_permalink($loop->post->ID); ?>"><?php echo esc_attr($loop->post->post_title); ?> </a> </li>
+
+ <?php endwhile; ?>
+ <?php wp_reset_query(); ?>
+ <?php } else { ?>
+
+ <?php wp_list_categories( 'taxonomy=product_tag&pad_counts=1&title_li=' ); ?>
+
+ <?php } ?>
+
+ </ul>
+</div>
+<!--<div id="categories_sidebar_container">
+ <h5><?php // _e( 'Regions of France', 'woothemes' ) ?></h5>
+ <ul id="regions_sidebar">
+ <?php
+// foreach($all_categories as $category){
+// echo '<li><a href="'.get_term_link($category->term_id) . '">'.$category->name . '</li>';
+// }
+ ?>
+ </ul>-->
+<div id="ads_sidebar_container">
+ <?php if ( is_active_sidebar( 'shopsidead' ) ) : ?>
+ <?php dynamic_sidebar( 'shopsidead' ); ?>
+ <?php endif; ?>
+</div>
--- /dev/null
+<?php get_header(); ?>
+<main class="blog-single">
+ <div id="header-image" class="page-header">
+ <?php echo glm_get_header();?>
+ </div>
+
+ <div class="row">
+ <div id="blog-posts-over" class="small-12 medium-9 columns">
+ <?php if(have_posts()) : while(have_posts()): the_post();?>
+ <div class="row blog-post-container">
+ <div class="small-11 small-centered columns">
+ <div class="row">
+ <div class="small-12 columns">
+ <article id="<?php the_ID()?>" <?php post_class()?>>
+ <header class="entry-header">
+ <h2 class="entry-title single-title"><a href="<?php the_permalink(); ?>"><?php the_title();?></a></h2>
+ <?php if ( has_post_thumbnail() ):?>
+ <?php if (get_post_type( $post ) != "ai1ec_event") { ?>
+ <div class="featured-image-wrap"><?php the_post_thumbnail("large"); ?></div>
+ <?php } ?>
+ <?php endif; ?>
+ <span class="meta date">Posted on <?php the_time('F jS, Y') ?></span>
+ <div id="addthis_wrapper">
+ <!-- AddThis Button BEGIN -->
+ <div class="addthis_toolbox addthis_default_style ">
+ <a class="addthis_counter addthis_pill_style"></a>
+ </div>
+ <script type="text/javascript">var addthis_config = {"data_track_addressbar":false};</script>
+ <script type="text/javascript" src="//s7.addthis.com/js/300/addthis_widget.js#pubid=ra-5135fe4558d287a9"></script>
+ <!-- <script type="text/javascript" src="http://s7.addthis.com/js/250/addthis_widget.js"></script>-->
+ <!-- AddThis Button END -->
+ </div><!--/#addthis_wrapper-->
+ </header>
+ <?php echo the_content(); ?>
+ <?php if (!is_post_type("ai1ec_event")) { ?>
+
+ <?php } ?>
+ </article>
+ <?php if ( comments_open() || get_comments_number() ) :
+ comments_template();
+ endif; ?>
+ </div>
+ </div>
+ </div>
+ </div>
+ <?php endwhile; ?>
+ <?php else: ?>
+ <div id="post-404" class="noposts">
+ <p><?php _e('Sorry, no results were found.');?></p>
+ </div><!-- /#post-404 -->
+ <?php endif;?>
+ </div>
+ <?php get_template_part('parts/blog-sidebar-r'); ?>
+ </div>
+ <?php get_footer(); ?>
\ No newline at end of file
--- /dev/null
+/*
+Theme Name: GenericFrance
+Author: Gaslight Media
+Author URI: http://www.gaslightmedia.com
+Description: A theme based off of FranceJourneys.
+Version: 1.0
+*/