diff --git a/.gitignore b/.gitignore
deleted file mode 100644
index 1e63710..0000000
--- a/.gitignore
+++ /dev/null
@@ -1,2 +0,0 @@
-old/
-unused-pictures/
diff --git a/Makefile b/Makefile
index 66f389b..e1133c2 100644
--- a/Makefile
+++ b/Makefile
@@ -1,9 +1,7 @@
.PHONY: deploy
deploy:
- rsync --archive --verbose --delete --delete-excluded --no-i-r --info=progress2 \
- --exclude-from=.gitignore \
+ rsync --archive --verbose --delete --no-i-r --info=progress2 \
+ --exclude=unused-pictures/ \
--exclude=.git/ \
- --exclude=.gitignore \
--exclude=Makefile \
- --exclude=README.md \
./ bert:/srv/www/katherineandchandler.com/2024/ireland/
diff --git a/data.json b/data.json
index cc9beb4..5d8cb47 100644
--- a/data.json
+++ b/data.json
@@ -62,7 +62,7 @@
{
"text": {
"headline": "Knowth Tomb",
- "text": "
Almost immediately after arriving, we went off to visit the passage tombs at Knowth and Newgrange. Thought to be built around 3200BC (before Stonehenge or the Pyramids at Giza!), the mounds at Knowth were thought to have been used for housing, defense, and burial, as well as having some astronomical significance. Particularly, the passage at Newgrange is aligned so that the sun only shines into the tomb on the winter solstice.
More information on the UNESCO World Heritage Site page
"
+ "text": "Almost immediately after arriving, we went off to visit the passage tombs at Knowth and Newgrange. Thought to be built around 3200BC (before Stonehenge or the Pyramids at Giza!), the mounds at Knowth were thought to have been used for housing, defense, and burial.
More information on the UNESCO World Heritage Site page
"
},
"location": {
"lat": 53.7012,
@@ -77,7 +77,7 @@
{
"text": {
"headline": "Newgrange Tomb",
- "text": "Almost immediately after arriving, we went off to visit the passage tombs at Knowth and Newgrange. Thought to be built around 3200BC (before Stonehenge or the Pyramids at Giza!), the mounds at Knowth were thought to have been used for housing, defense, and burial, as well as having some astronomical significance. Particularly, the passage at Newgrange is aligned so that the sun only shines into the tomb on the winter solstice.
More information on the UNESCO World Heritage Site page
"
+ "text": "Almost immediately after arriving, we went off to visit the passage tombs at Knowth and Newgrange. Thought to be built around 3200BC (before Stonehenge or the Pyramids at Giza!), the mounds at Knowth were thought to have been used for housing, defense, and burial.
More information on the UNESCO World Heritage Site page
"
},
"location": {
"lat": 53.6946,
@@ -121,7 +121,7 @@
{
"text": {
"headline": "Clonmacnoise",
- "text": "Heading west! We stopped to see Clonmacnoise (pronounced phonetically), a ninth-century monastery founded by Saint Ciarán (definitely not phonetic! Pronounced, as far as I can tell, roughly as KEE-ran), with notably well-preserved carved stone High Crosses . Clonmacnoise enjoyed a brief period of prosperity before being repeatedly sacked and declining in the 12th century. (more at Wikipedia )
"
+ "text": "Heading west! We stopped to see Clonmacnoise (pronounced phonetically), a ninth-century monastery founded by Saint Ciarán (definitely not phonetic! Pronounced, as far as I can tell, roughly as KEE-ran), with notably well-preserved carved stone High Crosses . (more at Wikipedia )
"
},
"location": {
"lat": 53.3259,
@@ -151,7 +151,7 @@
{
"text": {
"headline": "Daly's House",
- "text": "Nights four and five were spent at Daly's House in Doolin, County Clare, at a B&B hosted by Susan Daly (and Lab/Retriever mix Bob and furry mop-creature Ted, a name which caused confusion to no end). Susan is a lifelong Doolin resident; her father owned and operated O'Connor's pub in town.
"
+ "text": "Nights four and five were spent at Daly's House in Doolin, County Clare, at a B&B hosted by Susan Daly (and Lab/Retriever mix Bob and furry mop-creature Ted, a name which caused confusion to no end).
"
},
"location": {
"lat": 53.0142,
@@ -306,7 +306,7 @@
"media": {
"url": "pictures/skellig-michael-sm.jpg",
"link": "pictures/skellig-michael.jpg",
- "caption": "Don, Chandler, Käthe, Ted, and Sharon on the ~11 mile, hour-long boat ride out to Skellig Michael"
+ "caption": "On the ~11 mile, hour-long boat ride out to Skellig Michael"
}
},
{
@@ -381,7 +381,7 @@
"media": {
"url": "pictures/from-bray-tower-2-sm.jpg",
"link": "pictures/from-bray-tower-2.jpg",
- "caption": "A picture by Ted of Sharon taking the previous picture of Skellig Michael"
+ "caption": "A picture by Ted of Sharon taking the previous picture"
}
},
{
@@ -396,7 +396,7 @@
"media": {
"url": "pictures/from-bray-tower-3-sm.jpg",
"link": "pictures/from-bray-tower-3.jpg",
- "caption": "A picture by Käthe of Ted taking the previous picture of Sharon taking a picture of Skellig Michael"
+ "caption": "A picture by Käthe of Ted taking the previous picture"
}
},
{
@@ -411,7 +411,7 @@
"media": {
"url": "pictures/from-bray-tower-4-sm.jpg",
"link": "pictures/from-bray-tower-4.jpg",
- "caption": "A picture by Chandler of Käthe taking the previous picture of Ted taking a picture of Sharon a picture of Skellig Michael"
+ "caption": "A picture by Chandler of Käthe taking the previous picture"
}
},
{
diff --git a/dist/css/storymap.css b/dist/css/storymap.css
index eeb4453..f70f523 100644
--- a/dist/css/storymap.css
+++ b/dist/css/storymap.css
@@ -1225,26 +1225,22 @@
/* NAVIGATION
================================================== */
.vco-slidenav-previous,
-.vco-slidenav-next,
-.vco-slidenav-back {
+.vco-slidenav-next {
position: absolute;
top: 45%;
z-index: 10;
cursor: pointer;
}
.vco-slidenav-previous .vco-slidenav-content-container,
-.vco-slidenav-next .vco-slidenav-content-container,
-.vco-slidenav-back .vco-slidenav-content-container {
+.vco-slidenav-next .vco-slidenav-content-container {
height: 200px;
width: 00px;
position: absolute;
}
.vco-slidenav-previous .vco-slidenav-title,
.vco-slidenav-next .vco-slidenav-title,
-.vco-slidenav-back .vco-slidenav-title,
.vco-slidenav-previous .vco-slidenav-description,
-.vco-slidenav-next .vco-slidenav-description,
-.vco-slidenav-back .vco-slidenav-description {
+.vco-slidenav-next .vco-slidenav-description {
width: 100%;
-ms-word-break: break-all;
word-break: break-all;
@@ -1260,8 +1256,7 @@
opacity: 0.15;
}
.vco-slidenav-previous .vco-slidenav-title,
-.vco-slidenav-next .vco-slidenav-title,
-.vco-slidenav-back .vco-slidenav-title {
+.vco-slidenav-next .vco-slidenav-title {
margin-top: 10px;
font-size: 15px;
line-height: 15px;
@@ -1269,39 +1264,31 @@
line-height: 11px;
}
.vco-slidenav-previous .vco-slidenav-description,
-.vco-slidenav-next .vco-slidenav-description,
-.vco-slidenav-back .vco-slidenav-description {
+.vco-slidenav-next .vco-slidenav-description {
font-size: 11px;
}
/* ICONS AND NAVIGATION HOVER AND COLOR
================================================== */
.vco-slidenav-next .vco-slidenav-content-container .vco-slidenav-icon,
.vco-slidenav-previous .vco-slidenav-content-container .vco-slidenav-icon,
-.vco-slidenav-back .vco-slidenav-content-container .vco-slidenav-icon,
.vco-slidenav-next .vco-slidenav-content-container .vco-slidenav-title,
.vco-slidenav-previous .vco-slidenav-content-container .vco-slidenav-title,
-.vco-slidenav-back .vco-slidenav-content-container .vco-slidenav-title,
.vco-slidenav-next .vco-slidenav-content-container .vco-slidenav-description,
-.vco-slidenav-previous .vco-slidenav-content-container .vco-slidenav-description,
-.vco-slidenav-back .vco-slidenav-content-container .vco-slidenav-description {
+.vco-slidenav-previous .vco-slidenav-content-container .vco-slidenav-description {
text-shadow: 1px 1px 1px #FFF;
color: #FFF;
}
.vco-slidenav-next .vco-slidenav-content-container.vco-slidenav-inverted .vco-slidenav-icon,
.vco-slidenav-previous .vco-slidenav-content-container.vco-slidenav-inverted .vco-slidenav-icon,
-.vco-slidenav-back .vco-slidenav-content-container.vco-slidenav-inverted .vco-slidenav-icon,
.vco-slidenav-next .vco-slidenav-content-container.vco-slidenav-inverted .vco-slidenav-title,
.vco-slidenav-previous .vco-slidenav-content-container.vco-slidenav-inverted .vco-slidenav-title,
-.vco-slidenav-back .vco-slidenav-content-container.vco-slidenav-inverted .vco-slidenav-title,
.vco-slidenav-next .vco-slidenav-content-container.vco-slidenav-inverted .vco-slidenav-description,
-.vco-slidenav-previous .vco-slidenav-content-container.vco-slidenav-inverted .vco-slidenav-description,
-.vco-slidenav-back .vco-slidenav-content-container.vco-slidenav-inverted .vco-slidenav-description {
+.vco-slidenav-previous .vco-slidenav-content-container.vco-slidenav-inverted .vco-slidenav-description {
color: #333;
text-shadow: 1px 1px 1px #333;
}
.vco-slidenav-next .vco-slidenav-icon,
-.vco-slidenav-previous .vco-slidenav-icon,
-.vco-slidenav-back .vco-slidenav-icon {
+.vco-slidenav-previous .vco-slidenav-icon {
font-family: 'vco-icons';
speak: none;
font-style: normal;
@@ -1316,10 +1303,8 @@
}
.vco-slidenav-next:hover .vco-slidenav-title,
.vco-slidenav-previous:hover .vco-slidenav-title,
-.vco-slidenav-back:hover .vco-slidenav-title,
.vco-slidenav-next:hover .vco-slidenav-description,
-.vco-slidenav-previous:hover .vco-slidenav-description,
-.vco-slidenav-back:hover .vco-slidenav-description {
+.vco-slidenav-previous:hover .vco-slidenav-description {
filter: alpha(opacity=100);
-khtml-opacity: 1;
-moz-opacity: 1;
@@ -1339,20 +1324,6 @@
.vco-slidenav-next:hover .vco-slidenav-icon {
margin-left: 80px;
}
-.vco-slidenav-back {
- text-align: right;
- margin-right: 10px;
- right: 100px;
-}
-.vco-slidenav-back .vco-slidenav-icon {
- margin-left: 76px;
-}
-.vco-slidenav-back .vco-slidenav-icon:before {
- content: "\e63e";
-}
-.vco-slidenav-back:hover .vco-slidenav-icon {
- margin-left: 80px;
-}
.vco-slidenav-previous {
text-align: left;
margin-left: 10px;
@@ -1368,16 +1339,13 @@
}
/* Skinny
================================================== */
-.vco-skinny .vco-slidenav-next,
-.vco-skinny .vco-slidenav-back {
+.vco-skinny .vco-slidenav-next {
right: 32px;
}
-.vco-skinny .vco-slidenav-next .vco-slidenav-icon,
-.vco-skinny .vco-slidenav-back .vco-slidenav-icon {
+.vco-skinny .vco-slidenav-next .vco-slidenav-icon {
margin-left: 8px;
}
-.vco-skinny .vco-slidenav-next:hover .vco-slidenav-icon,
-.vco-skinny .vco-slidenav-back:hover .vco-slidenav-icon {
+.vco-skinny .vco-slidenav-next:hover .vco-slidenav-icon {
margin-left: 12px;
filter: alpha(opacity=100);
-khtml-opacity: 1;
@@ -1392,44 +1360,34 @@
opacity: 1;
}
.vco-skinny .vco-slidenav-previous .vco-slidenav-content-container,
-.vco-skinny .vco-slidenav-next .vco-slidenav-content-container,
-.vco-skinny .vco-slidenav-back .vco-slidenav-content-container {
+.vco-skinny .vco-slidenav-next .vco-slidenav-content-container {
width: 32px;
height: 32px;
}
.vco-skinny .vco-slidenav-previous .vco-slidenav-content-container .vco-slidenav-icon,
.vco-skinny .vco-slidenav-next .vco-slidenav-content-container .vco-slidenav-icon,
-.vco-skinny .vco-slidenav-back .vco-slidenav-content-container .vco-slidenav-icon,
.vco-skinny .vco-slidenav-previous .vco-slidenav-content-container .vco-slidenav-title,
.vco-skinny .vco-slidenav-next .vco-slidenav-content-container .vco-slidenav-title,
-.vco-skinny .vco-slidenav-back .vco-slidenav-content-container .vco-slidenav-title,
.vco-skinny .vco-slidenav-previous .vco-slidenav-content-container .vco-slidenav-description,
-.vco-skinny .vco-slidenav-next .vco-slidenav-content-container .vco-slidenav-description,
-.vco-skinny .vco-slidenav-back .vco-slidenav-content-container .vco-slidenav-description {
+.vco-skinny .vco-slidenav-next .vco-slidenav-content-container .vco-slidenav-description {
color: #333;
}
.vco-skinny .vco-slidenav-previous .vco-slidenav-content-container.vco-slidenav-inverted .vco-slidenav-icon,
.vco-skinny .vco-slidenav-next .vco-slidenav-content-container.vco-slidenav-inverted .vco-slidenav-icon,
-.vco-skinny .vco-slidenav-back .vco-slidenav-content-container.vco-slidenav-inverted .vco-slidenav-icon,
.vco-skinny .vco-slidenav-previous .vco-slidenav-content-container.vco-slidenav-inverted .vco-slidenav-title,
.vco-skinny .vco-slidenav-next .vco-slidenav-content-container.vco-slidenav-inverted .vco-slidenav-title,
-.vco-skinny .vco-slidenav-back .vco-slidenav-content-container.vco-slidenav-inverted .vco-slidenav-title,
.vco-skinny .vco-slidenav-previous .vco-slidenav-content-container.vco-slidenav-inverted .vco-slidenav-description,
-.vco-skinny .vco-slidenav-next .vco-slidenav-content-container.vco-slidenav-inverted .vco-slidenav-description,
-.vco-skinny .vco-slidenav-back .vco-slidenav-content-container.vco-slidenav-inverted .vco-slidenav-description {
+.vco-skinny .vco-slidenav-next .vco-slidenav-content-container.vco-slidenav-inverted .vco-slidenav-description {
color: #FFF;
}
.vco-skinny .vco-slidenav-previous .vco-slidenav-title,
.vco-skinny .vco-slidenav-next .vco-slidenav-title,
-.vco-skinny .vco-slidenav-back .vco-slidenav-title,
.vco-skinny .vco-slidenav-previous .vco-slidenav-description,
-.vco-skinny .vco-slidenav-next .vco-slidenav-description,
-.vco-skinny .vco-slidenav-back .vco-slidenav-description {
+.vco-skinny .vco-slidenav-next .vco-slidenav-description {
display: none;
}
.vco-skinny .vco-slidenav-previous .vco-slidenav-icon,
-.vco-skinny .vco-slidenav-next .vco-slidenav-icon,
-.vco-skinny .vco-slidenav-back .vco-slidenav-icon {
+.vco-skinny .vco-slidenav-next .vco-slidenav-icon {
filter: alpha(opacity=33);
-khtml-opacity: 0.33;
-moz-opacity: 0.33;
@@ -1437,20 +1395,17 @@
}
/* Mobile and Landscape
================================================== */
-.vco-layout-landscape.vco-mobile .vco-slidenav-next:hover,
-.vco-layout-landscape.vco-mobile .vco-slidenav-back:hover {
+.vco-layout-landscape.vco-mobile .vco-slidenav-next:hover {
right: 70px;
}
-.vco-layout-landscape.vco-mobile .vco-slidenav-next:hover .vco-slidenav-icon,
-.vco-layout-landscape.vco-mobile .vco-slidenav-back:hover .vco-slidenav-icon {
+.vco-layout-landscape.vco-mobile .vco-slidenav-next:hover .vco-slidenav-icon {
margin-left: 8px;
filter: alpha(opacity=100);
-khtml-opacity: 1;
-moz-opacity: 1;
opacity: 1;
}
-.vco-layout-landscape.vco-mobile .vco-slidenav-next:active .vco-slidenav-icon,
-.vco-layout-landscape.vco-mobile .vco-slidenav-back:active .vco-slidenav-icon {
+.vco-layout-landscape.vco-mobile .vco-slidenav-next:active .vco-slidenav-icon {
margin-left: 0px;
filter: alpha(opacity=100);
-khtml-opacity: 1;
@@ -1474,16 +1429,14 @@
/* Mobile and Portrait
================================================== */
.vco-layout-portrait.vco-mobile .vco-slidenav-next:hover .vco-slidenav-icon,
-.vco-layout-portrait.vco-mobile .vco-slidenav-previous:hover .vco-slidenav-icon,
-.vco-layout-portrait.vco-mobile .vco-slidenav-back:hover .vco-slidenav-icon {
+.vco-layout-portrait.vco-mobile .vco-slidenav-previous:hover .vco-slidenav-icon {
filter: alpha(opacity=33);
-khtml-opacity: 0.33;
-moz-opacity: 0.33;
opacity: 0.33;
}
.vco-layout-portrait.vco-mobile .vco-slidenav-next:active .vco-slidenav-icon,
-.vco-layout-portrait.vco-mobile .vco-slidenav-previous:active .vco-slidenav-icon,
-.vco-layout-portrait.vco-mobile .vco-slidenav-back:active .vco-slidenav-icon {
+.vco-layout-portrait.vco-mobile .vco-slidenav-previous:active .vco-slidenav-icon {
filter: alpha(opacity=100);
-khtml-opacity: 1;
-moz-opacity: 1;
@@ -1498,39 +1451,29 @@
.vco-mobile .vco-slidenav-next,
.vco-skinny.vco-mobile .vco-slidenav-next,
.vco-skinny.vco-layout-landscape.vco-mobile .vco-slidenav-next,
-.vco-skinny.vco-layout-portrait.vco-mobile .vco-slidenav-next,
-.vco-mobile .vco-slidenav-back,
-.vco-skinny.vco-mobile .vco-slidenav-back,
-.vco-skinny.vco-layout-landscape.vco-mobile .vco-slidenav-back,
-.vco-skinny.vco-layout-portrait.vco-mobile .vco-slidenav-back {
+.vco-skinny.vco-layout-portrait.vco-mobile .vco-slidenav-next {
display: none;
}
/* Landscape
================================================== */
.vco-layout-landscape .vco-storyslider .vco-slidenav-next .vco-slidenav-icon:before,
-.vco-layout-landscape .vco-storyslider .vco-slidenav-previous .vco-slidenav-icon:before,
-.vco-layout-landscape .vco-storyslider .vco-slidenav-back .vco-slidenav-icon:before {
+.vco-layout-landscape .vco-storyslider .vco-slidenav-previous .vco-slidenav-icon:before {
background-color: #333;
padding: 20px;
border: 1px solid #b3b3b3;
}
.vco-layout-landscape .vco-storyslider .vco-slidenav-next .vco-slidenav-icon,
.vco-layout-landscape .vco-storyslider .vco-slidenav-previous .vco-slidenav-icon,
-.vco-layout-landscape .vco-storyslider .vco-slidenav-back .vco-slidenav-icon,
.vco-layout-landscape .vco-storyslider .vco-slidenav-next .vco-slidenav-title,
.vco-layout-landscape .vco-storyslider .vco-slidenav-previous .vco-slidenav-title,
-.vco-layout-landscape .vco-storyslider .vco-slidenav-back .vco-slidenav-title,
.vco-layout-landscape .vco-storyslider .vco-slidenav-next .vco-slidenav-description,
-.vco-layout-landscape .vco-storyslider .vco-slidenav-previous .vco-slidenav-description,
-.vco-layout-landscape .vco-storyslider .vco-slidenav-back .vco-slidenav-description {
+.vco-layout-landscape .vco-storyslider .vco-slidenav-previous .vco-slidenav-description {
text-shadow: none;
}
.vco-layout-landscape .vco-storyslider .vco-slidenav-next .vco-slidenav-title,
.vco-layout-landscape .vco-storyslider .vco-slidenav-previous .vco-slidenav-title,
-.vco-layout-landscape .vco-storyslider .vco-slidenav-back .vco-slidenav-title,
.vco-layout-landscape .vco-storyslider .vco-slidenav-next .vco-slidenav-description,
-.vco-layout-landscape .vco-storyslider .vco-slidenav-previous .vco-slidenav-description,
-.vco-layout-landscape .vco-storyslider .vco-slidenav-back .vco-slidenav-description {
+.vco-layout-landscape .vco-storyslider .vco-slidenav-previous .vco-slidenav-description {
display: none;
}
.vco-layout-landscape .vco-storyslider .vco-slidenav-previous {
@@ -1544,12 +1487,10 @@
.vco-layout-landscape .vco-storyslider .vco-slidenav-previous:hover .vco-slidenav-icon {
margin-left: -4px;
}
-.vco-layout-landscape .vco-storyslider .vco-slidenav-next,
-.vco-layout-landscape .vco-storyslider .vco-slidenav-back {
+.vco-layout-landscape .vco-storyslider .vco-slidenav-next {
right: 130px;
}
-.vco-layout-landscape .vco-storyslider .vco-slidenav-next .vco-slidenav-icon:before,
-.vco-layout-landscape .vco-storyslider .vco-slidenav-back .vco-slidenav-icon:before {
+.vco-layout-landscape .vco-storyslider .vco-slidenav-next .vco-slidenav-icon:before {
border-bottom-left-radius: 7px;
border-top-left-radius: 7px;
}
diff --git a/dist/css/storymap.css.map b/dist/css/storymap.css.map
index f29d696..ec08f40 100644
--- a/dist/css/storymap.css.map
+++ b/dist/css/storymap.css.map
@@ -1 +1 @@
-{"version":3,"file":"../css/storymap.css","mappings":"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IxbA;EACC;AJ0bD;AIxbA;EACC;AJ0bD;AIxbA;EACC;AJ0bD;AIxbA;EACC;AJ0bD;AIxbA;EACC;AJ0bD;AIxbA;EACC;AJ0bD;AIxbA;EACC;AJ0bD;AIxbA;EACC;AJ0bD;AIxbA;EACC;AJ0bD;AIxbA;EACC;AJ0bD;AIxbA;EACC;AJ0bD;AIxbA;EACC;AJ0bD;AIxbA;EACC;AJ0bD;AIxbA;EACC;AJ0bD;AIxbA;EACC;AJ0bD;AIxbA;EACC;AJ0bD;AIxbA;EACC;AJ0bD;AIxbA;EACC;AJ0bD;AIxbA;EACC;AJ0bD;AIxbA;EACC;AJ0bD;AIxbA;EACC;AJ0bD;AIxbA;EACC;AJ0bD;AIxbA;EACC;AJ0bD;AIxbA;EACC;AJ0bD;AIxbA;EACC;AJ0bD;AIxbA;EACC;AJ0bD;AIxbA;EACC;AJ0bD;AIxbA;EACC;AJ0bD;AIxbA;EACC;AJ0bD;AIxbA;EACC;AJ0bD;AIxbA;EACC;AJ0bD;AIxbA;EACC;AJ0bD;AIxbA;EACC;AJ0bD;AACA;oDACoD;AK9nBpD;EACC;EFyGA;EACG;EACC;EACC;EACG;AHwhBT;AACA;oDACoD;AMvoBpD;EACC;EAGA;EACA;EAKA;EAEA;EACA;EACA;EACA;ANkoBD;AMjpBA;EAmBE;ANioBF;AACA;oDACoD;AACpD;oDACoD;AACpD;;;;;;;;;;;;;;;;;;;;;;CAsBC;AMhnBD;EACC;IACC;ENknBA;EMhnBD;IACC;ENknBA;AACF;AMhnBA;EACC;IAAM;ENmnBL;EMlnBD;IAAI;ENqnBH;AACF;AMpnBA;EACC;IAAM;ENunBL;EMtnBD;IAAI;ENynBH;AACF;AMxnBA;EACC;IAAM;EN2nBL;EM1nBD;IAAI;EN6nBH;AACF;AACA;oDACoD;AOjtBpD;EACC;EACA;EACA;EAGA;EACA;EACA;EACA;EACA;APitBD;AO3tBA;;EAYE;EACA;EACA;EACA;EACA;EACA;APmtBF;AOhtBC;EACC;EACA;APktBF;AO1sBE;EACC;EACA;AP4sBH;AO1sBE;EACC;EACA;AP4sBH;AOrsBA;EACC;IACC;EPusBA;EOrsBD;IACC;EPusBA;AACF;AOrsBA;EACC;IAAM;EPwsBL;EOvsBD;IAAI;EP0sBH;AACF;AOzsBA;EACC;IAAM;EP4sBL;EO3sBD;IAAI;EP8sBH;AACF;AO7sBA;EACC;IAAM;EPgtBL;EO/sBD;IAAI;EPktBH;AACF;AACA;oDACoD;AQnxBpD;;EACC;EAEA;EACA;EAGA;EACA;EACA;EACA;EACA;EACA;EACA;ARmxBD;AQhyBA;;EAeE;EACA;EACA;EACA;EACA;ARqxBF;AQxyBA;;EAsBG;EACA;EACA;EACA;EACA;EACA;EACA;EACA;ARsxBH;AQnzBA;;EAgCG;EACA;EACA;EACA;ELyCF;EACG;EACK;EKzCN;EACA;EACA;EAEA;EACA;ARwxBH;AQrxBE;EACC;IAAK;ERwxBN;EQvxBC;IAAM;ER0xBP;EQzxBC;IAAO;ER4xBR;AACF;AQ1xBE;EACC;IAAK;ER6xBN;EQ5xBC;IAAM;ER+xBP;EQ9xBC;IAAO;ERiyBR;AACF;AQ9xBA;ELmEC;AH8tBD;AQjyBA;;EAKE;EACA;ARgyBF;AQtyBA;EAUG;EACA;EACA;EACA;EACA;EACA;AR+xBH;AQ9yBA;EAiBI;EACA;EACA;EACA;EACA;EACA;EL7BF;EACG;EACK;AH8zBV;ASr3BA;EACC;EACA;EACA;ATu3BD;ASp3BA;ENSC;EACG;EACE;EACG;EAXR;EACG;EACE;EACG;AH03BT;ASz3BA;ENIC;EACG;EACE;EACG;EAXR;EACG;EACE;EACG;AHo4BT;AACA;oDACoD;AU94BpD;EACC;EAEA;EACA;EACA;EACA;EAGA;EACA;AV64BD;AUv5BA;EAiBE;EACA;EACA;EACA;EACA;AVy4BF;AU95BA;EAuBG;EACA;EACA;EAEA;EACA;AVy4BH;AUv4BE;EAEE;EACA;AVw4BJ;AUz6BA;EAsCE;EAEA;EACA;EACA;EACA;EACA;EACA;EAEA;EACA;EP3BA;EACA;EACE;EACK;EO0BP;EACA;EACG;EACE;EACA;AVu4BP;AU77BA;EAyDE;EACA;EACA;EACA;AVu4BF;AUn8BA;EA+DE;EACA;EACA;EACA;EACA;EAEA;AVs4BF;AU38BA;EAyEG;EACA;EACA;EACA;EACA;AVq4BH;AUl9BA;EAiFI;EACA;EACA;EAEA;EACA;EACA;AVm4BJ;AU19BA;EA8FI;EACA;EACA;EAGA;EACA;EACA;EACA;AV63BJ;AUn+BA;EAyGK;AV63BL;AACA;oDACoD;AUr3BpD;EAIG;AVo3BH;AUx3BA;EAQI;EACA;EACA;EACA;EACA;EAEA;EACA;EACA;AVk3BJ;AUl4BA;EAuBI;EACA;EACA;EACA;EACA;AV82BJ;AUz4BA;EA6BK;EACA;AV+2BL;AACA;oDACoD;AUv2BpD;EAIG;AVs2BH;AU12BA;EAMI;EACA;EACA;EACA;EACA;AVu2BJ;AACA;oDACoD;AU/1BpD;;EPnIC;EACA;AHs+BD;AUp2BA;;;;;;;;;;;;;;EPnIC;EACA;AHu/BD;AUr3BA;;;;;;;;;;;;EPnIC;EACA;EO0IC;AV63BF;AUr4BA;;;;EPnIC;EACA;AH8gCD;AU54BA;;;;EPnIC;EACA;AHqhCD;AUn5BA;;;;EPnIC;EACA;AH4hCD;AU15BA;;;;EPnIC;EACA;AHmiCD;AACA;oDACoD;AACpD;oDACoD;AUv3BpD;EACC;EACA;EACG;EACE;EACA;EAGL;EACA;AVu3BD;AUh4BA;;;;;;;EAcE;AV23BF;AUz4BA;;EAiBE;AV43BF;AU74BA;;EAsBG;AV23BH;AUj5BA;;EAwBI;AV63BJ;AACA;oDACoD;AACpD;oDACoD;AUp3BpD;EAGG;EVo3BD,wDAAwD;EGplCzD;EHslCC,0BAA0B;EGplC3B;EAYC;EACG;EACK;AH2kCV;AU93BA;EAOI;AV03BJ;AACA;oDACoD;AUp3BpD;EAKK;EAEA;EACA;EACA;EACA;AVi3BL;AU33BA;EAaK;EACA;EACA;EAEA;EACA;EACA;EACA;EACA;AVg3BL;AUn2BA;EAEE;AVo2BF;AUt2BA;EAKG;EACA;EACA;EACA;AVo2BH;AU52BA;EAUI;EACA;EACA;EACA;AVq2BJ;AUl3BA;EAeK;EACA;EACA;EACA;EACA;AVs2BL;AUz3BA;EAuBK;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;AVq2BL;AUp4BA;EAiCM;EACA;EACA;AVs2BN;AU31BA;;;;;EAKK;AV61BL;AACA;oDACoD;AACpD;oDACoD;AWpsCpD;;;EACC;EACA;EACA;EACA;AXwsCD;AW5sCA;;;EAOE;EACA;EACA;AX0sCF;AWntCA;;;;;;EAYE;EAIG;EACI;EX4sCP,4BAA4B;EWzsCrB;EAEL;EACG;EACC;EACI;ERPV;EACA;EACE;EACK;AHktCT;AWvuCA;;;EAoCE;EACA;EACA;EACA;EACA;AXwsCF;AWhvCA;;;EA4CE;AXysCF;AACA;oDACoD;AWpsCpD;;;;;;;;;EAGG;EAEA;AX2sCH;AWzsCE;;;;;;;;;EAGE;EACA;AXitCJ;AW5tCA;;;EAgBE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;AXitCF;AW/sCC;;;;;;ER7DC;EACA;EACE;EACK;AHoxCT;AWntCA;EACC;EACA;EACG;AXqtCJ;AWxtCA;EAKE;AXstCF;AWrtCE;EACC;AXutCH;AWptCC;EAEQ;AXqtCT;AWhtCA;EACC;EACA;EACG;AXktCJ;AWrtCA;EAKE;AXmtCF;AWltCE;EACC;AXotCH;AWjtCC;EAEQ;AXktCT;AW7sCA;EACC;EACA;AX+sCD;AWjtCA;EAIE;AXgtCF;AW/sCE;EACC;AXitCH;AW9sCC;EAEE;AX+sCH;AACA;oDACoD;AWzsCpD;;EAEK;AX2sCL;AW7sCA;;EAIG;AX6sCH;AW3sCE;;EAEO;ERjIP;EACA;EACE;EACK;AH+0CT;AW1sCE;EAEE;ER1IF;EACA;EACE;EACK;AHs1CT;AWhuCA;;;EAyBG;EACA;AX4sCH;AWtuCA;;;;;;;;;EA4BI;AXqtCJ;AWltCG;;;;;;;;;EAEE;AX2tCL;AW5vCA;;;;;;EAuCG;AX6tCH;AWpwCA;;;ERzHE;EACA;EACE;EACK;AHk4CT;AACA;oDACoD;AW1tClD;;EACC;AX6tCH;AW9tCE;;EAGO;ERhLP;EACA;EACE;EACK;AHg5CT;AW/tCE;;EAEE;ERtLF;EACA;EACE;EACK;AHw5CT;AW9tCE;EAGE;ERhMF;EACA;EACE;EACK;AH+5CT;AW9tCE;ERpMA;EACA;EACE;EACK;EQoMH;AXkuCN;AACA;oDACoD;AWztClD;;;ERlNA;EACA;EACE;EACK;AHg7CT;AW5tCE;;;ERvNA;EACA;EACE;EACK;AHw7CT;AACA;oDACoD;AW5tCpD;;;;;;;;;;;;EAEE;AXwuCF;AACA;oDACoD;AWhuChD;;;EAEC;EAGA;EACA;AXiuCL;AW3uCA;;;;;;;;;EAcI;AXwuCJ;AWtvCA;;;;;;EAiBI;AX6uCJ;AW9vCA;EAsBG;EACA;AX2uCH;AWxuCI;ER1NF;EACG;AHq8CL;AWxuCG;EAEE;AXyuCL;AWzwCA;;EAsCI;AXuuCJ;AWruCK;;ERhOH;EACG;AHy8CL;AACA;oDACoD;AACpD;oDACoD;AYjhDpD;EACC;EACA;EACA;EToGA;EACG;EACC;EACC;EACG;EStGR;AZuhDD;AY5hDA;;;;;EAOE;EACA;AZ4hDF;AYpiDA;EAWE;EACA;EACA;EACA;EACA;EACA;EACA;AZ4hDF;AY7iDA;EAoBE;EACA;EACA;EAEA;EACA;EACA;AZ2hDF;AYrjDA;EA6BE;EACA;EACA;EAEA;EACA;AZ0hDF;AY5jDA;EAoCG;EACA;EACA;EACA;EACA;EACA;AZ2hDH;AYpkDA;EA4CI;EACA;EACA;EACA;AZ2hDJ;AACA;oDACoD;Aa/kDpD;EAGC;EACA;EACA;EAEA;EACA;EACA;Ab8kDD;AavlDA;EAYE;Ab8kDF;Aa1lDA;EAgBG;GVkGF;AH4+CD;AG3+CC;;EAEC;EACA;AH6+CF;AG3+CC;EACC;AH6+CF;AatmDA;EAoBK;EAIA;AbklDL;Aa1mDA;EAsBM;AbulDN;Aa7mDA;;EA8BK;EACA;EACA;AbmlDL;AannDA;;;;EAqCI;EACA;AbolDJ;AACA;oDACoD;Aa7kDpD;EACC;EACA;EV2BA;EACG;EACK;AHqjDT;AACA;;;;;;;;;;;;;;;;;;;CAmBC;AACD;oDACoD;Aa7kDpD;GVsCC;EUlCA;EACA;Ab6kDD;AG3iDC;;EAEC;EACA;AH6iDF;AG3iDC;EACC;AH6iDF;Aa1lDA;EAOE;EACA;AbslDF;Aa9lDA;EAWE;AbslDF;AajmDA;EAeE;EACA;AbqlDF;AarmDA;EAmBE;AbqlDF;AaxmDA;;EAqBG;AbulDH;Aa5mDA;;EA2BE;AbqlDF;AahnDA;EA8BE;EACA;AbqlDF;AapnDA;EAmCE;EACA;EACA;AbolDF;AaznDA;EAyCE;EACA;EACA;EACA;AbmlDF;Aa/nDA;EA8CG;EACA;EACA;AbolDH;AahlDA;;;;EVpFC;EACA;EUsFC;AbqlDF;AACA;oDACoD;AallDpD;EACC;EACA;EACA;EACA;EACA;EACA;EACA;AbolDD;AACA;oDACoD;AajlDpD;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;AbmlDD;AACA;oDACoD;AahlDpD;;;;EAGE;EVzFD;EACG;EACK;AH6qDT;AACA;oDACoD;AazkDpD;EACC;IACC;IACA;IACA;IACA;Eb2kDA;AACF;Aa5jDA;EAEE;EACA;EACA;EACA;Ab6jDF;AalkDA;;EAYI;EACA;EACA;EACA;Ab0jDJ;AazkDA;EAkBI;Ab0jDJ;AACA;oDACoD;ActxDpD;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EAEA;EACA;AduxDD;AclyDA;EAaE;AdwxDF;AcryDA;;EAqBE;EACA;AdoxDF;Ac1yDA;;EAyBE;EACA;EACA;EACA;EACA;EACA;AdqxDF;AcnzDA;;EAgCG;EACA;EACA;EACA;AduxDH;Ac1zDA;EAuCE;EACA;EACA;EACA;EACA;EACA;AdsxDF;Ac3wDA;;;;EAEE;EACA;Ad+wDF;AclxDA;;;;;;;;EAKG;AduxDH;Ac5xDA;;;;;;;;EAOI;Ad+xDJ;AACA;oDACoD;AcvxDpD;EAEE;EACA;EACA;EACA;EACA;AdwxDF;AACA;oDACoD;AACpD;oDACoD;Ae72DpD;EAEE;Af82DF;Aez2DA;EAGG;Afy2DH;AgBn3DA;EAEE;EAIA;AhBi3DF;AgBv3DA;EAQG;EACA;EACA;EACA;EACA;AhBk3DH;AgB93DA;EAcI;EACA;EACA;AhBm3DJ;AgBn4DA;EAuBG;AhB+2DH;AgBt4DA;EA0BG;AhB+2DH;AgBz4DA;EA8BG;AhB82DH;AgB54DA;;EAkCI;EACA;AhB82DJ;AgBj5DA;;;;EAqCK;AhBk3DL;AgBx2DA;EAGG;EACA;EACA;AhBw2DH;AgBp2DA;EAMK;EACA;AhBi2DL;AgB11DA;EAIG;EACA;AhBy1DH;AgB91DA;EAQK;EACA;AhBy1DL;AiBx6DA;EAEE;EACA;AjBy6DF;AiB56DA;EAKG;EACA;EACA;AjB06DH;AiBj7DA;EASI;EACA;AjB26DJ;AiBr7DA;EAcI;EACA;EACA;EACA;AjB06DJ;AiB37DA;EAuBG;EACA;EAKA;AjBm6DH;AiBh8DA;EAiCG;EACA;EAIA;AjB+5DH;AiBx5DA;EAGG;EACA;EACA;AjBw5DH;AiBn5DA;EACC;IAII;IACA;EjBk5DH;AACF;AiB34DA;EACC;IAII;IACA;EjB04DH;AACF;AkB98DA;EAGG;AlB88DH;AmBz9DA;EAEE;AnB09DF;AoB59DA;EAEE;EACA;ApB69DF;AoBh+DA;EAKG;EACA;ApB89DH;AqBp+DA;EAIE;EACA;EACA;EAEA;ArBk+DF;AqB1+DA;EAWG;EACA;EACA;ArBk+DH;AqB/+DA;EAgBG;EAEA;ArBi+DH;AqBn/DA;EAqBG;EACA;ArBi+DH;AqBv/DA;EAyBG;ArBi+DH;AqB1/DA;EA6BG;EACA;ArBg+DH;AqB19DA;;EAGG;ErB29DD,wDAAwD;EG39DzD;EH69DC,0BAA0B;EG39D3B;EAYC;EACG;EACK;AHk9DV;AqBr+DA;;ElBUC;EACA;AH+9DD;AqB79DA;EAGG;EACA;ArB69DH;AACA,oBAAoB;AsBjhEpB;;;;;;;;;;;;;;EAcC;EACA;EACA;AtBmhED;AsBjhEA;EACC;EACA;AtBmhED;AsBjhEA;;;EAGC;EACG;EACK;EACR;AtBmhED;AsBjhEA;;EAEC;AtBmhED;AACA,6DAA6D;AsBjhE7D;EACC;AtBmhED;AACA,mEAAmE;AsBjhEnE;EACC;AtBmhED;AsBjhEA;EACC;EACA;AtBmhED;AsBjhEA;EACC;AtBmhED;AsBjhEA;EACC;EACA;AtBmhED;AACA,uEAAuE;AsBjhEvE;EACC;AtBmhED;AsBhhEA;EAAwB;AtBmhExB;AsBlhEA;EAAwB;AtBqhExB;AsBphEA;EAAwB;AtBuhExB;AsBthEA;EAAwB;AtByhExB;AsBxhEA;EAAwB;AtB2hExB;AsB1hEA;EAAwB;AtB6hExB;AsB3hEA;EACC;EACA;AtB6hED;AsB3hEA;EACC;EACA;EACA;AtB6hED;AACA,wBAAwB;AsBxhExB;EACC;EACA;EACA;AtB0hED;AsBxhEA;;EAEC;EACA;EACA;AtB0hED;AsBxhEA;EACC;AtB0hED;AsBxhEA;EACC;AtB0hED;AsBxhEA;EACC;AtB0hED;AsBxhEA;EACC;AtB0hED;AsBxhEA;EACC;EACA;AtB0hED;AsBxhEA;EACC;AtB0hED;AsBxhEA;EACC;AtB0hED;AsBxhEA;EACC;AtB0hED;AsBxhEA;EACC;AtB0hED;AsBxhEA;EACC;AtB0hED;AACA,6BAA6B;AsBrhE7B;;EAEC;EACA;EACG;EACE;EACG;AtBuhET;AsBrhEA;;EAEC;AtBuhED;AsBphEA;EACC;EACG;EACE;EACG;AtBshET;AsBphEA;;;EAGC;EACG;EACE;EACG;AtBshET;AsBnhEA;EACC;AtBqhED;AACA,YAAY;AsBhhEZ;EACC;AtBkhED;AsBhhEA;EACC;EACA;AtBkhED;AsBhhEA;;EAEC;AtBkhED;AsBhhEA;;EAEC;EACA;EACA;AtBkhED;AACA,kBAAkB;AsB7gElB;EACC;EACA;AtB+gED;AsB7gEA;EACC;AtB+gED;AsB7gEA;EACC;AtB+gED;AsB7gEA;EACC;EACA;AtB+gED;AACA,uBAAuB;AsB3gEvB;EACC;AtB6gED;AACA,2BAA2B;AsBxgE3B;EACC;EACA;AtB0gED;AsBxgEA;;EAEC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;AtB0gED;AsBxgEA;;EAEC;EACA;EACA;AtB0gED;AsBxgEA;EACC;AtB0gED;AsBxgEA;EACC;EACA;AtB0gED;AsBxgEA;EACC;EACA;EACA;AtB0gED;AsBxgEA;EACC;EACA;EACA;AtB0gED;AsBvgEA;EACC;EACA;EACA;AtBygED;AACA,iBAAiB;AsBpgEjB;;EAEC;EACA;AtBsgED;AsBpgEA;EACC;AtBsgED;AsBngEA;EACC;AtBqgED;AsBngEA;EACC;AtBqgED;AACA,mBAAmB;AsBhgEnB;EACC;EACA;EACA;AtBkgED;AsBhgEA;EACC;EACA;EACA;AtBkgED;AsBhgEA;EACC;EACA;AtBkgED;AsBhgEA;EACC;EACA;AtBkgED;AsBhgEA;;EAEC;AtBkgED;AsBhgEA;EACC;EACA;AtBkgED;AsBhgEA;EACC;EACA;EACA;AtBkgED;AsBhgEA;EACC;EACA;EACA;AtBkgED;AsBhgEA;EACC;AtBkgED;AsBhgEA;EACC;EACA;EACA;AtBkgED;AACA,mCAAmC;AsB7/DnC;EACC;EACA;EACA;AtB+/DD;AsB7/DA;;EAEC;EACA;AtB+/DD;AsB7/DA;EACC;AtB+/DD;AsB7/DA;EACC;AtB+/DD;AsB7/DA;;EAEC;AtB+/DD;AsB7/DA;EACC;AtB+/DD;AsB7/DA;EACC;AtB+/DD;AsB7/DA;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACK;EAEL;EACA;AtB8/DD;AsB5/DA;EACC;EACA;EACA;AtB8/DD;AsB5/DA;EACC;AtB8/DD;AsB3/DA;;;EAGC;AtB6/DD;AsB3/DA;;EAEC;EACA;AtB6/DD;AACA,UAAU;AsBx/DV;EACC;EACA;AtB0/DD;AsBx/DA;EACC;EACA;EACA;AtB0/DD;AsBx/DA;EACC;EACA;AtB0/DD;AsBx/DA;EACC;AtB0/DD;AsBx/DA;EACC;EACA;EACA;EACA;EACA;AtB0/DD;AsBx/DA;EACC;EACA;EACA;EAEA;EAEA;EACG;EACC;EACC;EACG;AtBw/DT;AsBt/DA;;EAEC;EAEA;AtBu/DD;AsBr/DA;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;AtBu/DD;AsBr/DA;EACC;AtBu/DD;AsBr/DA;EACC;EACA;EACA;AtBu/DD;AsBp/DA;EACC;AtBs/DD;AsBp/DA;EACC;EACA;EAEA;EACA;AtBq/DD;AsBn/DA;EACC;AtBq/DD;AsBl/DA;;;;EAIC;AtBo/DD;AACA,aAAa;AsB/+Db;EACC;EACA;AtBi/DD;AuB78EA;EACC;EACA;AvB+8ED;AuB78EA;EACC;EACA;EACA;AvB+8ED;AuB58EA;EACC;AvB88ED;AuB38EA;EACC;GACA;EACA;GACA;EAEA;EACA;AvB48ED;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","sources":["webpack://KLStoryMap/./src/less/VCO.StoryMap.less","webpack://KLStoryMap/./src/less/core/Reset.less","webpack://KLStoryMap/./src/less/Typography.less","webpack://KLStoryMap/./src/less/core/Mixins.less","webpack://KLStoryMap/./src/less/icons/Icons.less","webpack://KLStoryMap/./src/less/core/VCO.less","webpack://KLStoryMap/./src/less/ui/VCO.MenuBar.less","webpack://KLStoryMap/./src/less/ui/VCO.MenuBar.Button.less","webpack://KLStoryMap/./src/less/ui/VCO.Message.less","webpack://KLStoryMap/./src/less/animation/VCO.Animate.less","webpack://KLStoryMap/./src/less/slider/VCO.Slide.less","webpack://KLStoryMap/./src/less/slider/VCO.SlideNav.less","webpack://KLStoryMap/./src/less/slider/VCO.StorySlider.less","webpack://KLStoryMap/./src/less/media/VCO.Media.less","webpack://KLStoryMap/./src/less/media/types/VCO.Media.Text.less","webpack://KLStoryMap/./src/less/media/types/VCO.Media.Image.less","webpack://KLStoryMap/./src/less/media/types/VCO.Media.Twitter.less","webpack://KLStoryMap/./src/less/media/types/VCO.Media.Blockquote.less","webpack://KLStoryMap/./src/less/media/types/VCO.Media.Instagram.less","webpack://KLStoryMap/./src/less/media/types/VCO.Media.Profile.less","webpack://KLStoryMap/./src/less/media/types/VCO.Media.IFrame.less","webpack://KLStoryMap/./src/less/media/types/VCO.Media.Wikipedia.less","webpack://KLStoryMap/./src/less/map/leaflet/VCO.Leaflet.less","webpack://KLStoryMap/./src/less/map/leaflet/VCO.Leaflet.IE.less","webpack://KLStoryMap/./src/less/map/leaflet/VCO.Map.Leaflet.less","webpack://KLStoryMap/./src/less/map/leaflet/VCO.Leaflet.MiniMap.less","webpack://KLStoryMap/./src/less/map/leaflet/VCO.Leaflet.Mapbox.less","webpack://KLStoryMap/./src/less/map/VCO.MapMarker.less","webpack://KLStoryMap/./src/less/map/VCO.ImageMarker.less","webpack://KLStoryMap/./src/less/map/VCO.Map.less","webpack://KLStoryMap/./src/less/snapmap/VCO.SnapMap.less","webpack://KLStoryMap/./src/less/Lightbox.less"],"sourcesContent":["/*!\n\tStoryMap\n\n\tDesigned and built by Zach Wise for the Northwestern University Knight Lab\n\n\tThis Source Code Form is subject to the terms of the Mozilla Public\n\tLicense, v. 2.0. If a copy of the MPL was not distributed with this\n\tfile, You can obtain one at http://mozilla.org/MPL/2.0/.\n\n*/\n\n/* Includes\n================================================== */\n@import \"Variables.less\"; \t\t\t// Variables (easy way to make style changes)\n\n@import \"core/Mixins.less\"; \t\t// Less shortcuts and functions\n@import \"core/Reset.less\"; \t\t\t// CSS Reset\n@import \"Typography.less\";\n\n// Icons\n@import \"icons/Icons.less\";\n\n//\tComponents\n@import \"core/VCO.less\";\n\n//\tComponents\n@import \"ui/VCO.MenuBar.less\";\n@import \"ui/VCO.MenuBar.Button.less\";\n@import \"ui/VCO.Message.less\";\n\n@import \"animation/VCO.Animate.less\";\n\n@import \"slider/VCO.Slide.less\";\n@import \"slider/VCO.SlideNav.less\";\n@import \"slider/VCO.StorySlider.less\";\n\n@import \"media/VCO.Media.less\";\n@import \"media/types/VCO.Media.Text.less\";\n@import \"media/types/VCO.Media.Image.less\";\n@import \"media/types/VCO.Media.Twitter.less\";\n@import \"media/types/VCO.Media.Blockquote.less\";\n@import \"media/types/VCO.Media.Flickr.less\";\n@import \"media/types/VCO.Media.Instagram.less\";\n@import \"media/types/VCO.Media.Profile.less\";\n@import \"media/types/VCO.Media.YouTube.less\";\n@import \"media/types/VCO.Media.IFrame.less\";\n@import \"media/types/VCO.Media.Wikipedia.less\";\n\n@import \"map/leaflet/VCO.Leaflet.less\";\n@import \"map/leaflet/VCO.Leaflet.IE.less\";\n@import \"map/leaflet/VCO.Map.Leaflet.less\";\n@import \"map/leaflet/VCO.Leaflet.MiniMap.less\";\n@import \"map/leaflet/VCO.Leaflet.Mapbox.less\";\n\n@import \"map/VCO.MapMarker.less\";\n@import \"map/VCO.ImageMarker.less\";\n@import \"map/VCO.Map.less\";\n\n@import \"snapmap/VCO.SnapMap.less\";\n\n@import \"Lightbox.less\";\n\n/* StoryMap\n================================================== */\n.vco-storymap {\n\twidth:100%;\n\theight:100%;\n\tfont-size: 16px;\n\tline-height: normal;\n\toverflow:hidden;\n\tposition: relative;\n\t.user-select(none);\n *, *::before, *::after {\n box-sizing: content-box;\n }\n}\n\n/* Portrait\n================================================== */\n.vco-layout-portrait {\n\t.vco-storyslider {\n\t\tpadding-top:10px;\n\t\t.box-shadow(0px -3px 6px rgba(0,0,0,.20));\n\t}\n}\n/* Landscape\n================================================== */\n.vco-layout-landscape {\n\t.vco-storyslider {\n\t\tpadding-top:0px;\n\t\t//this._el.slider_container_mask.style.width = this.options.width + \"px\";\n\t\t//this._el.slider_container_mask.style.left = this.options.width + \"px\";\n\t\tposition:absolute;\n\t\twidth: 50%;\n\t\tleft: 50%;\n\t\toverflow:visible;\n\t\t//padding-left:10%;\n\t\t.vco-slider-background {\n\t\t\tmargin-left:-20%;\n\t\t\twidth:120%;\n\t\t\toverflow:hidden;\n\t\t\t#gradient > .horizontal(@start-color: rgba(256,256,256,.0001); @end-color: rgba(256,256,256,0.85); @start-percent: 0%; @end-percent: 15%);\n\t\t\t//#gradient > .horizontal-three-colors(@start-color: rgba(256,256,256,.0001); @mid-color: rgba(256,256,256,0.85); @color-stop: 10%; @end-color: rgba(256,256,256,.50));\n\t\t}\n\t\t.vco-slider-container-mask {\n\t\t\toverflow: visible;\n\n\t\t\t//.translucent-background(#FFF, 0.70);\n\t\t\t//#gradient > .horizontal(@start-color: rgba(256,256,256,.0001); @end-color: rgba(256,256,256,0.85); @start-percent: 0%; @end-percent: 25%);\n\t\t\t//#gradient > .horizontal-three-colors(@start-color: rgba(256,256,256,.0001); @mid-color: rgba(256,256,256,0.85); @color-stop: 10%; @end-color: rgba(256,256,256,.50));\n\t\t\t//#gradient > .radial(@inner-color: rgba(256,256,256,0.85); @outer-color: rgba(256,256,256,.0001));\n\t\t}\n\t}\n}\n/* Default Fonts\n================================================== */\n/*\n.vco-storymap {\n\tfont-family:'Pontano Sans',sans-serif !important;\n}\n.vco-storymap {\n\th1, h2, h3, h4, h5, h6 {\n\t\tfont-family:'Bevan',serif !important;\n\t\tfont-weight: normal;\n\t}\n}\n.vco-secondary-font {\n\n}\n*/\n\n\n/* Right to Left\n================================================== */\n.vco-rtl {\n\t.vco-text-content, .vco-text, .vco-caption, .vco-media-wikipedia, .vco-headline, .vco-media-blockquote{\n\t\ttext-align: right;\n\t}\n}\n","/*\tReset\n------------------------------------------------------------------------------------------- */\n\n.vco-storyjs {\n\n\t/*\tReset tags and common classes\n\t\tDisplay in IE6-9 and FF3\n\t\tBased on: http://github.com/necolas/normalize.css\n\t------------------------------------------------------------------------------------------- */\n\t\n\tdiv * {\n\t\t-webkit-box-sizing:content-box;\n\t\t -moz-box-sizing:content-box;\n\t\t box-sizing:content-box;\n\t}\n\t\n\th1, h2, h3, h4, h5, h6, p, blockquote, pre, a, abbr, acronym, address, cite, code, del, dfn, em, img, q, s, samp, small, strike, strong, \n\tsub, sup, tt, var, dd, dl, dt, li, ol, ul, fieldset, form, label, legend, button, table, caption, tbody, tfoot, thead, tr, th, td, \n\t.vco-container, .content-container, .media, .text, .vco-slider, .slider, .date, .title, .message, .map, .credit, .caption, .vco-feedback, .vco-feature, .toolbar, \n\t.marker, .dot, .line, .flag, .time, .era, .major, .minor, .vco-navigation, .start, .active {\n\t\tmargin: 0;\n\t\tpadding: 0;\n\t\tborder: 0;\n\t\tfont-weight: normal;\n\t\tfont-style: normal;\n\t\tfont-size: 100%;\n\t\tline-height: 1;\n\t\tfont-family: inherit;\n\t\twidth: auto;\n\t\tfloat:none;\n\t}\n\th1, h2, h3, h4, h5, h6 {\n\t\tclear:none;\n\t}\n\ttable { border-collapse: collapse; border-spacing: 0;}\n\tol, ul { list-style: none;}\n\tq:before, q:after, blockquote:before, blockquote:after { content: \"\"; }\n\ta:focus { outline: thin dotted; }\n\ta:hover, a:active { outline: 0;}\n\tarticle, aside, details, figcaption, figure, footer, header, hgroup, nav, section {\n\t\tdisplay: block;\n\t}\n\taudio, canvas, video {\n\t\tdisplay: inline-block;\n\t\t*display: inline;\n\t\t*zoom: 1;\n\t}\n\n\t/*\tPrevents modern browsers from displaying 'audio' without controls\n\t\tBased on: http://github.com/necolas/normalize.css\n\t------------------------------------------------------------------------------------------- */\n\taudio:not([controls]) {\n\t\tdisplay: none;\n\t}\n\tdiv {\n\t\tmax-width:none;\n\t}\n\t\n\t/*\tPrevents sub and sup affecting line-height in all browsers\n\t\tBased on: http://github.com/necolas/normalize.css\n\t------------------------------------------------------------------------------------------- */\n\tsub, sup {\n\t\tfont-size: 75%;\n\t\tline-height: 0;\n\t\tposition: relative;\n\t\tvertical-align: baseline;\n\t}\n\tsup {\n\t\ttop: -0.5em;\n\t}\n\tsub {\n\t\tbottom: -0.25em;\n\t}\n\n\t/*\tImg border in a's and image quality\n\t\tBased on: http://github.com/necolas/normalize.css\n\t------------------------------------------------------------------------------------------- */\n\timg {\n\t\tborder: 0;\n\t\t-ms-interpolation-mode: bicubic;\n\t}\n\n\t/*\tForms\n\t\tBased on: http://github.com/necolas/normalize.css\n\t------------------------------------------------------------------------------------------- */\n\tbutton, input, select, textarea {\n\t font-size: 100%;\n\t margin: 0;\n\t vertical-align: baseline;\n\t *vertical-align: middle;\n\t}\n\tbutton, input {\n\t line-height: normal; // FF3/4 have !important on line-height in UA stylesheet\n\t *overflow: visible; // Inner spacing ie IE6/7\n\t}\n\tbutton::-moz-focus-inner, input::-moz-focus-inner { // Inner padding and border oddities in FF3/4\n\t border: 0;\n\t padding: 0;\n\t}\n\tbutton, input[type=\"button\"], input[type=\"reset\"], input[type=\"submit\"] {\n\t cursor: pointer; // Cursors on all buttons applied consistently\n\t -webkit-appearance: button; // Style clicable inputs in iOS\n\t}\n\tinput[type=\"search\"] { // Appearance in Safari/Chrome\n\t -webkit-appearance: textfield;\n\t -webkit-box-sizing: content-box;\n\t -moz-box-sizing: content-box;\n\t box-sizing: content-box;\n\t}\n\tinput[type=\"search\"]::-webkit-search-decoration {\n\t -webkit-appearance: none; // Inner-padding issues in Chrome OSX, Safari 5\n\t}\n\ttextarea {\n\t overflow: auto; // Remove vertical scrollbar in IE6-9\n\t vertical-align: top; // Readability and alignment cross-browser\n\t}\n}",".vco-storymap {\n\tfont-family: @font-main;\n\t\n\th1, h2, h3 {\n\t\tfont-size: @base-font-size-xlarge;\n\t\tline-height:@base-font-size-xlarge;\n\t\tsmall {\n\t\t\tfont-size: \t\t@base-font-size-large;\n\t\t\tline-height:\t@base-font-size-large;\n\t\t}\n\t}\n\th4, h5, h6 {\n\t\tfont-size: @base-font-size-large;\n\t\tline-height:@base-font-size-large;\n\t\tmargin-bottom:0px;\n\t\tsmall {\n\t\t\tfont-size: @base-font-size;\n\t\t\tline-height:@base-font-size;\n\t\t}\n\t}\n\th2.vco-headline-title {\n\t\tfont-size: @base-font-size-xlarge + 10;\n\t\tline-height: @base-font-size-xlarge + 10;\n\t\tsmall {\n\t\t\tdisplay:block;\n\t\t\tmargin-top:5px;\n\t\t\tfont-size: @base-font-size-large;\n\t\t\tline-height:@base-font-size-large;\n\t\t}\n\t}\n\t\n\th2 {\n\t\tmargin-top:20px;\n\t\tmargin-bottom:5px;\n\t}\n\t\n\tp {\n\t\tmargin-top:5px;\n\t\tmargin-bottom:10px;\n\t\tfont-size: @base-font-size;\n\t\t//font-family: @font-secondary;\n\t\tcolor: lighten(@color-dark, 40%);\n\t\ta {\n\n\t\t\tcolor: lighten(@color-dark, 40%);\n\t\t\ttext-decoration: none;\n\t\t\tbackground-image: -moz-linear-gradient(top, fade(lighten(@color-dark, 40%), 0%) 50%, fade(lighten(@color-dark, 40%), 60%) 50%);\n\t\t\tbackground-image: -webkit-linear-gradient(top, fade(lighten(@color-dark, 40%), 0%) 50%, fade(lighten(@color-dark, 40%), 60%) 50%);\n\t\t\tbackground-image: -o-linear-gradient(top, fade(lighten(@color-dark, 40%), 0%) 50%, fade(lighten(@color-dark, 40%), 60%) 50%);\n\t\t\tbackground-image: linear-gradient(to bottom, fade(lighten(@color-dark, 40%), 0%) 50%, fade(lighten(@color-dark, 40%), 60%) 50%);\n\t\t\tbackground-repeat: repeat-x;\n\t\t\tbackground-size: 2px 2px;\n\t\t\tbackground-position: 0 @base-font-size+2;\n\t\t\ttext-shadow: -2px -1px 0 white, 2px -1px 0 white, -2px 1px 0 white, 2px 1px 0 white;\n\t\t\t&:hover,\n\t\t\t&:focus {\n\t\t\t\tcolor:@color-theme;\n\t\t\t\ttext-decoration: none;\n\t\t\t}\n\t\t}\n\t\t\n\t\t\n\t\t@media (-webkit-min-device-pixel-ratio: 1.5), (min-resolution: 144dpi) {\n\t\t\ta {\n\t\t\t\ttext-decoration: underline;\n\t\t\t\tbackground-image:none;\n\t\t\t\ttext-shadow: none;\n\t\t\t\t&:hover,\n\t\t\t\t&:focus {\n\t\t\t\t\tcolor:@color-theme;\n\t\t\t\t\ttext-decoration: underline;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t\n\t\t\n\t}\n\tb, strong {\n\t\tfont-weight: bold;\n\t\t//color: @color-dark;\n\t}\n\ti, em {\n\t\tfont-style: italic;\n\t}\n\ta {\n\t\ttext-decoration:none;\n\t\tcolor:@color-theme;\n\t}\n\ta:hover {\n\t\ttext-decoration:underline;\n\t\tcolor: darken(@color-theme, 20%);\n\t}\n\t.vco-caption, .vco-credit, .vco-slidenav-next, .vco-slidenav-previous {\n\t\t//font-family: @font-sanserif;\n\t\tfont-size:@base-font-size-small;\n\t\tline-height:@base-font-size-small;\n\t\ta {\n\t\t\tcolor: @color-dark;\n\t\t}\n\t}\n\t\n\tblockquote, blockquote p {\n\t\tfont-family: @font-serif;\n\t\tcolor: lighten(@color-dark, 60%);\n\t\tfont-size: @base-font-size-large;\n\t\tline-height:@base-font-size-large;\n\t\ttext-align:left;\n\t\tbackground:transparent;\n\t\tborder:0px;\n\t\tpadding:0px;\n\t\tcite {\n\t\t\tfont-family: @font-sanserif;\n\t\t\tfont-size: @base-font-size-small;\n\t\t\tcolor: lighten(@color-dark, 40%);\n\t\t\tdisplay:block;\n\t\t\ttext-align:right;\n\t\t\tfont-style: normal;\n\t\t\t\n\t\t}\n\t\tcite:before {\n\t\t\tcontent: \"\\2014\";\n\t\t}\n\t}\n\tblockquote p:before {\n\t\tcontent: open-quote;\n\t\tdisplay:inline-block;\n\t\tfont-size: @base-font-size-xlarge;\n\t\tposition: relative; \n\t\ttop: 8px;\n\t\tmargin-right:5px;\n\t\t\n\t}\n\tblockquote p:after {\n\t\tcontent: close-quote;\n\t\tdisplay:inline-block;\n\t\tfont-size: @base-font-size-xlarge;\n\t\tposition: relative; \n\t\ttop: 8px;\n\t\tmargin-left:3px;\n\t\t\n\t}\n\tblockquote {\n\t\tmargin:10px;\n\t\tp {\n\t\t\tmargin:0;\n\t\t}\n\t\t//margin-left:18px;\n\t}\n\t\n\t.vcard {\n\t\tfont-family: @font-main;\n\t\tfont-size: @base-font-size;\n\t\tline-height:@base-font-size;\n\t}\n\t\n\t.vco-text {\n\t\tul {\n\t\t\tpadding:0px;\n\t\t\tpadding-left:30px;\n\t\t\tmargin:0;\n\t\t\tli {\n\t\t\t\tmargin-bottom:5px;\n\t\t\t}\n\t\t}\n\t\t\n\t}\n\n\n\t.vco-note {\n\t\tdisplay:block;\n\t\tfont-family: @font-main;\n\t\tfont-style: italic;\n\t\tbackground-color:lighten(@color-dark, 90%);\n\t\tfont-size:@base-font-size;\n\t\tline-height:@base-font-size+2;\n\t\tpadding:10px;\n\t\t.border-radius(7px); \n\t\tcolor: #8a6d3b;\n\t\tbackground-color: #fcf8e3;\n\t\tborder: 1px solid #faebcc;\n\t}\n}\n\n\n// Skinnier\n@media only screen and (max-width: 800px), only screen and (max-device-width: 800px) {\n\t.vco-storymap {\n\t\th1, h2, h3 {\n\t\t\tfont-size: @base-font-size-xlarge;\n\t\t\tline-height: @base-font-size-xlarge;\n\t\t}\n\t\th2.vco-headline-title {\n\t\t}\n\t}\n\t\n}\n// Mobile, iPhone and skinny\n@media only screen and (max-width: 500px), only screen and (max-device-width: 500px) {\n\t.vco-storymap {\n\t\th1, h2, h3 {\n\t\t\tfont-size: @base-font-size-xlarge - 4;\n\t\t\tline-height: @base-font-size-xlarge - 4;\n\t\t}\n\t\th2.vco-headline-title {\n\n\t\t}\n\t}\n}\n.vco-skinny {\n\th2 {\n\t\tmargin-top:0px;\n\t\tpadding-top:20px;\n\t}\n}","/*\tMixins.less\n\tSnippets of reusable CSS to develop faster and keep code readable\n * ----------------------------------------------------------------- */\n\n// Cubic Bezier \n.animation-timing-cubic-bezier() {\n\t\n\t-webkit-transition-timing-function: cubic-bezier(0.770, 0.000, 0.175, 1.000); \n\t -moz-transition-timing-function: cubic-bezier(0.770, 0.000, 0.175, 1.000); \n\t -o-transition-timing-function: cubic-bezier(0.770, 0.000, 0.175, 1.000); \n\t transition-timing-function: cubic-bezier(0.770, 0.000, 0.175, 1.000);\n}\n\n// Property Animation\n.property-animation(@prop:height, @time:1000ms, @ease:cubic-bezier(0.770, 0.000, 0.175, 1.000)) {\n\t-webkit-transition+: @prop @time cubic-bezier(0.770, 0.000, 0.175, 1.000); \n\t -moz-transition+: @prop @time cubic-bezier(0.770, 0.000, 0.175, 1.000); \n\t -o-transition+: @prop @time cubic-bezier(0.770, 0.000, 0.175, 1.000); \n\t transition+: @prop @time cubic-bezier(0.770, 0.000, 0.175, 1.000);\n}\n\n// Opacity\n.opacity(@opacity: 100) {\n \tfilter: e(%(\"alpha(opacity=%d)\", @opacity));\n \t-khtml-opacity: @opacity / 100;\n \t -moz-opacity: @opacity / 100;\n \t opacity: @opacity / 100;\n}\n// Background Opacity\n.background-opacity(@opacity: 100) {\n\t/* Fallback for web browsers that doesn't support RGBa */\n\tbackground: rgb(0, 0, 0) transparent;\n\t/* RGBa with 0.6 opacity */\n\tbackground: rgba(0, 0, 0, @opacity / 100);\n}\n\n// Background Color Opacity\n.background-color-opacity(@cr:0, @cg:0, @cb:0, @opacity: 100) {\n\t/* Fallback for web browsers that doesn't support RGBa */\n\tbackground: rgb(@cr, @cg, @cb) transparent;\n\t/* RGBa with 0.6 opacity */\n\tbackground: rgba(@cr, @cg, @cb, @opacity / 100);\n}\n\n// Slide Text Shadow\n.slide-text-shadow(@shadow: 1px 1px 1px #000) {\n\tcolor: #FFF !important;\n\ttext-shadow: @shadow !important;\n\n}\n\n// Border Radius\n.border-radius(@radius: 5px) {\n \t-webkit-border-radius: @radius;\n \t -moz-border-radius: @radius;\n \t border-radius: @radius;\n}\n\n// Single side border-radius\n.border-top-radius(@radius) {\n border-top-right-radius: @radius;\n border-top-left-radius: @radius;\n}\n.border-right-radius(@radius) {\n border-bottom-right-radius: @radius;\n border-top-right-radius: @radius;\n}\n.border-bottom-radius(@radius) {\n border-bottom-right-radius: @radius;\n border-bottom-left-radius: @radius;\n}\n.border-left-radius(@radius) {\n border-bottom-left-radius: @radius;\n border-top-left-radius: @radius;\n}\n\n// Box Shadow\n.box-shadow(@shadow: 1px 1px 7px rgba(0,0,0,.30)) {\n\t-webkit-box-shadow: @shadow;\n\t -moz-box-shadow: @shadow;\n\t box-shadow: @shadow;\n}\n// Transform\n.transform(@transform) {\n \t-webkit-transform: @transform;\n \t -moz-transform: @transform;\n \t -ms-transform: @transform;\n \t -o-transform: @transform;\n \t transform: @transform;\n}\n// Transitions\n.transition(@transition) {\n \t-webkit-transition: @transition;\n \t -moz-transition: @transition;\n \t -ms-transition: @transition;\n \t -o-transition: @transition;\n \t transition: @transition;\n}\n// Hyphens\n.hyphens(@hyphens: auto) {\n \t-webkit-hyphens:@hyphens;\n \t -moz-hyphens:@hyphens;\n \t -ms-hyphens:@hyphens;\n \t hyphens:@hyphens;\n}\n// User select\n// For selecting text on the page\n.user-select(@select) {\n\t-webkit-user-select: @select;\n\t -moz-user-select: @select;\n\t -ms-user-select: @select; // IE10+\n\t -o-user-select: @select;\n\t user-select: @select;\n}\n// Clear Fix\n.clearfix() {\n\t*zoom: 1;\n\t&:before,\n\t&:after {\n\t\tdisplay: table;\n\t\tcontent: \"\";\n\t}\n\t&:after {\n\t\tclear: both;\n\t}\n}\n.translucent-background(@color: @white, @alpha: 1) {\n\tbackground-color: hsla(hue(@color), saturation(@color), lightness(@color), @alpha);\n}\n// Add an alphatransparency value to any background or border color (via Elyse Holladay)\n#translucent {\n .background(@color: @white, @alpha: 1) {\n background-color: hsla(hue(@color), saturation(@color), lightness(@color), @alpha);\n }\n .border(@color: @white, @alpha: 1) {\n border-color: hsla(hue(@color), saturation(@color), lightness(@color), @alpha);\n background-clip: padding-box;\n }\n}\n// Reset filters for IE\n.reset-filter() {\n\tfilter: e(%(\"progid:DXImageTransform.Microsoft.gradient(enabled = false)\"));\n}\n// Center-align a block level element\n.center-block() {\n\tdisplay: block;\n\tmargin-left: auto;\n\tmargin-right: auto;\n}\n// Create Vertical Gradient\n.gradient-vertical (@startColor: #555, @endColor: #333) {\n //background-color: @endColor;\n background-repeat: repeat-x;\n background-image: -khtml-gradient(linear, left top, left bottom, from(@startColor), to(@endColor)); // Konqueror\n background-image: -moz-linear-gradient(top, @startColor, @endColor); // FF 3.6+\n background-image: -ms-linear-gradient(top, @startColor, @endColor); // IE10\n background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, @startColor), color-stop(100%, @endColor)); // Safari 4+, Chrome 2+\n background-image: -webkit-linear-gradient(top, @startColor, @endColor); // Safari 5.1+, Chrome 10+\n background-image: -o-linear-gradient(top, @startColor, @endColor); // Opera 11.10\n background-image: linear-gradient(top, @startColor, @endColor); // The standard\n filter: e(%(\"progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=0)\",@startColor,@endColor)); // IE9 and down\n}\n\n// GRADIENTS\n// --------------------------------------------------\n\n#gradient {\n\n // Horizontal gradient, from left to right\n //\n // Creates two color stops, start and end, by specifying a color and position for each color stop.\n // Color stops are not available in IE9 and below.\n .horizontal(@start-color: #555; @end-color: #333; @start-percent: 0%; @end-percent: 100%) {\n background-image: -webkit-linear-gradient(left, color-stop(@start-color @start-percent), color-stop(@end-color @end-percent)); // Safari 5.1-6, Chrome 10+\n background-image: linear-gradient(to right, @start-color @start-percent, @end-color @end-percent); // Standard, IE10, Firefox 16+, Opera 12.10+, Safari 7+, Chrome 26+\n background-repeat: repeat-x;\n filter: e(%(\"progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=1)\",argb(@start-color),argb(@end-color))); // IE9 and down\n }\n\n // Vertical gradient, from top to bottom\n //\n // Creates two color stops, start and end, by specifying a color and position for each color stop.\n // Color stops are not available in IE9 and below.\n .vertical(@start-color: #555; @end-color: #333; @start-percent: 0%; @end-percent: 100%) {\n background-image: -webkit-linear-gradient(top, @start-color @start-percent, @end-color @end-percent); // Safari 5.1-6, Chrome 10+\n background-image: linear-gradient(to bottom, @start-color @start-percent, @end-color @end-percent); // Standard, IE10, Firefox 16+, Opera 12.10+, Safari 7+, Chrome 26+\n background-repeat: repeat-x;\n filter: e(%(\"progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=0)\",argb(@start-color),argb(@end-color))); // IE9 and down\n }\n\n .directional(@start-color: #555; @end-color: #333; @deg: 45deg) {\n background-repeat: repeat-x;\n background-image: -webkit-linear-gradient(@deg, @start-color, @end-color); // Safari 5.1-6, Chrome 10+\n background-image: linear-gradient(@deg, @start-color, @end-color); // Standard, IE10, Firefox 16+, Opera 12.10+, Safari 7+, Chrome 26+\n }\n .horizontal-three-colors(@start-color: #00b3ee; @mid-color: #7a43b6; @color-stop: 50%; @end-color: #c3325f) {\n background-image: -webkit-linear-gradient(left, @start-color, @mid-color @color-stop, @end-color);\n background-image: linear-gradient(to right, @start-color, @mid-color @color-stop, @end-color);\n background-repeat: no-repeat;\n filter: e(%(\"progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=1)\",argb(@start-color),argb(@end-color))); // IE9 and down, gets no color-stop at all for proper fallback\n }\n .vertical-three-colors(@start-color: #00b3ee; @mid-color: #7a43b6; @color-stop: 50%; @end-color: #c3325f) {\n background-image: -webkit-linear-gradient(@start-color, @mid-color @color-stop, @end-color);\n background-image: linear-gradient(@start-color, @mid-color @color-stop, @end-color);\n background-repeat: no-repeat;\n filter: e(%(\"progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=0)\",argb(@start-color),argb(@end-color))); // IE9 and down, gets no color-stop at all for proper fallback\n }\n .radial(@inner-color: #555; @outer-color: #333) {\n background-image: -webkit-radial-gradient(circle, @inner-color, @outer-color);\n background-image: radial-gradient(circle, @inner-color, @outer-color);\n background-repeat: no-repeat;\n }\n .striped(@color: rgba(255,255,255,.15); @angle: 45deg) {\n background-image: -webkit-linear-gradient(@angle, @color 25%, transparent 25%, transparent 50%, @color 50%, @color 75%, transparent 75%, transparent);\n background-image: linear-gradient(@angle, @color 25%, transparent 25%, transparent 50%, @color 50%, @color 75%, transparent 75%, transparent);\n }\n}","/* Icons\n================================================== */\n\n@font-face {\n\tfont-family: 'vco-icons';\n\tsrc:url('icons/vco-icons.eot');\n\tsrc:url('icons/vco-icons.eot?#iefix') format('embedded-opentype'),\n\t\turl('icons/vco-icons.ttf') format('truetype'),\n\t\turl('icons/vco-icons.woff2') format('woff2'),\n\t\turl('icons/vco-icons.woff') format('woff'),\n\t\turl('icons/vco-icons.svg#vco-icons') format('svg');\n\tfont-weight: normal;\n\tfont-style: normal;\n}\n\n[class^=\"vco-icon-\"], [class*=\" vco-icon-\"] {\n\tfont-family: 'vco-icons';\n\tspeak: none;\n\tfont-style: normal;\n\tfont-weight: normal;\n\tfont-variant: normal;\n\ttext-transform: none;\n\tline-height: 1;\n\n\t/* Better Font Rendering =========== */\n\t-webkit-font-smoothing: antialiased;\n\t-moz-osx-font-smoothing: grayscale;\n}\n\n\n.vco-icon-vine:after {\n\tcontent: \"\\e64d\";\n}\n.vco-icon-wikipedia:after {\n\tcontent: \"\\e64e\";\n}\n.vco-icon-chevron-right:after {\n\tcontent: \"\\e64f\";\n}\n.vco-icon-chevron-left:after {\n\tcontent: \"\\e650\";\n}\n.vco-icon-youtube-logo:after {\n\tcontent: \"\\e651\";\n}\n.vco-icon-foursquare:after {\n\tcontent: \"\\e652\";\n}\n.vco-icon-camera-retro:after {\n\tcontent: \"\\e653\";\n}\n.vco-icon-doc:after {\n\tcontent: \"\\e654\";\n}\n.vco-icon-weibo:after {\n\tcontent: \"\\e655\";\n}\n.vco-icon-resize-horizontal:after {\n\tcontent: \"\\e656\";\n}\n.vco-icon-resize-vertical:after {\n\tcontent: \"\\e657\";\n}\n.vco-icon-resize-full:after {\n\tcontent: \"\\e658\";\n}\n.vco-icon-resize-small:after {\n\tcontent: \"\\e659\";\n}\n.vco-icon-twitter:after {\n\tcontent: \"\\e62b\";\n}\n.vco-icon-google-plus:after {\n\tcontent: \"\\e62c\";\n}\n.vco-icon-video:after {\n\tcontent: \"\\e62d\";\n}\n.vco-icon-youtube:after {\n\tcontent: \"\\e62d\";\n}\n.vco-icon-plaintext:after {\n\tcontent: \"\\e62e\";\n}\n.vco-icon-storify:after {\n\tcontent: \"\\e62e\";\n}\n.vco-icon-image-v2:after {\n\tcontent: \"\\e62f\";\n}\n.vco-icon-quote-v2:after {\n\tcontent: \"\\e630\";\n}\n.vco-icon-zoom-in:after {\n\tcontent: \"\\e631\";\n}\n.vco-icon-zoom-out:after {\n\tcontent: \"\\e632\";\n}\n.vco-icon-list:after {\n\tcontent: \"\\e633\";\n}\n.vco-icon-music:after {\n\tcontent: \"\\e634\";\n}\n.vco-icon-location:after {\n\tcontent: \"\\e635\";\n}\n.vco-icon-web:after {\n\tcontent: \"\\e636\";\n}\n.vco-icon-share-v2:after {\n\tcontent: \"\\e637\";\n}\n.vco-icon-soundcloud:after {\n\tcontent: \"\\e639\";\n}\n.vco-icon-video-v2:after {\n\tcontent: \"\\e63a\";\n}\n.vco-icon-dailymotion:after {\n\tcontent: \"\\e63a\";\n}\n.vco-icon-tumblr:after {\n\tcontent: \"\\e63b\";\n}\n.vco-icon-lastfm:after {\n\tcontent: \"\\e63c\";\n}\n.vco-icon-github:after {\n\tcontent: \"\\e63d\";\n}\n.vco-icon-goback:after {\n\tcontent: \"\\e63e\";\n}\n.vco-icon-doc-v2:after {\n\tcontent: \"\\e63f\";\n}\n.vco-icon-googledrive:after {\n\tcontent: \"\\e640\";\n}\n.vco-icon-facebook:after {\n\tcontent: \"\\e641\";\n}\n.vco-icon-flickr:after {\n\tcontent: \"\\e642\";\n}\n.vco-icon-dribbble:after {\n\tcontent: \"\\e643\";\n}\n.vco-icon-image:after {\n\tcontent: \"\\e605\";\n}\n.vco-icon-vimeo:after {\n\tcontent: \"\\e606\";\n}\n.vco-icon-instagram:after {\n\tcontent: \"\\e644\";\n}\n.vco-icon-pinterest:after {\n\tcontent: \"\\e645\";\n}\n.vco-icon-arrow-left:after {\n\tcontent: \"\\e646\";\n}\n.vco-icon-arrow-down:after {\n\tcontent: \"\\e647\";\n}\n.vco-icon-arrow-up:after {\n\tcontent: \"\\e648\";\n}\n.vco-icon-arrow-right:after {\n\tcontent: \"\\e649\";\n}\n.vco-icon-share:after {\n\tcontent: \"\\e64a\";\n}\n.vco-icon-blockquote:after {\n\tcontent: \"\\e64b\";\n}\n.vco-icon-evernote:after {\n\tcontent: \"\\e64c\";\n}\n.vco-icon-mappin:after {\n\tcontent: \"\\e600\";\n}\n.vco-icon-swipe-right:after {\n\tcontent: \"\\e601\";\n}\n.vco-icon-swipe-left:after {\n\tcontent: \"\\e602\";\n}\n.vco-icon-touch-spread:after {\n\tcontent: \"\\e603\";\n}\n.vco-icon-touch-pinch:after {\n\tcontent: \"\\e604\";\n}\n","/* Disable Text selection when dragging\n================================================== */\n.vco-dragging {\n\t-webkit-touch-callout: none;\n\t\n\t.user-select(none);\n}","/* MenuBar \n================================================== */\n\n.vco-menubar {\n\tposition:absolute;\n\t//width:100%;\n\t//height:\t1px;\n\tz-index:11;\n\ttext-align:left;\n\t//color:#333;\n\t//height:26px;\n\t//background-color:#FFF;\n\t//.box-shadow(0px -3px 6px rgba(0,0,0,.20));\n\toverflow:hidden;\n\t//margin-top:-25px;\n\tborder-bottom: 1px solid darken(@color-background,10);\n\tborder-right: 1px solid darken(@color-background,10);\n\tborder-bottom-right-radius: 7px;\n\tleft:0px;\n\t//.border-radius(7px);\n\t//border-bottom-left-radius: 7px;\n\t.vco-menubar-button:first-child {\n\t\tborder-left:0;\n\t}\n}\n.vco-mobile {\n\n}\n/* Landscape\n================================================== */\n.vco-layout-landscape {\n\t.vco-menubar {\n\t\t//border-bottom: 1px solid darken(@color-background,10);\n\t\t\n\t\t//.box-shadow(1px 1px 3px rgba(0,0,0,.30));\n\t}\n}\n\n/* Color\n================================================== */\n\n// Inverted\n/*\n.vco-sizebar.vco-sizebar-inverted {\n\tborder-bottom: 1px solid #FFF;\n\t//background-color:#000;\n\tcolor:#a5a5a5;\n\t.vco-sizebar-button {\n\t\tborder-left: 1px solid darken(@color-background, 70);\n\t\t//color:#a5a5a5;\n\t}\n\t.vco-sizebar-button:hover {\n\t\t//background:@color-theme;\n\t\tcolor:@color-background;\n\t}\n}\n.vco-sizebar.vco-sizebar-inverted:before {\n\tbackground-color:#000;\n\t//.gradient-vertical (rgba(0,0,0,0.25), rgba(0,0,0,1));\n\t//.translucent-background(rgb(0,0,0), .5);\n\tborder-top: 2px solid #000;\n\tanimation: invertToBlack 1s;\n\t-webkit-animation:invertToBlack 1s; \n}\n*/\n\n@keyframes invertToBlack {\n\tfrom {\n\t\tbackground-color:#FFF;\n\t}\n\tto {\n\t\tbackground-color:#000;\n\t}\n}\n@-webkit-keyframes invertToBlack {\n\tfrom {background:#FFF;}\n\tto {background:#000;}\n}\n@keyframes invertToWhite {\n\tfrom {background-color:#000;}\n\tto {background-color:#FFF;}\n}\n@-webkit-keyframes invertToWhite{\n\tfrom {background:#000;}\n\tto {background:#FFF;}\n}\n\n\n","/* MenuBar Button\n================================================== */\n\n.vco-menubar-button {\n\tborder-left: 1px solid darken(@color-background,10);\n\tfont-size: 14px;\n\tpadding: 6px 12px 6px 12px;\n\t//position:relative;\n\t//top:-24px;\n\tbackground-color:fadeout(@ui-background-color, 10%);\n\tbackground-color:@color-background;\n\tcursor:pointer;\n\tfont-weight: bold;\n\tcolor:@color-text;\n\t.vco-icon-arrow-up, .vco-icon-arrow-down {\n\t\tdisplay:inline-block;\n\t\theight:14px;\n\t\toverflow:hidden;\n\t\tfont-size: 20px;\n\t\tposition:relative;\n\t\ttop:-2px;\n\t}\n\t\n\t&:hover {\n\t\tbackground:@color-theme;\n\t\tcolor:@color-background;\n\t}\n\t\n}\n\n\n.vco-mobile {\n\t.vco-menubar-button {\n\t\t&:hover {\n\t\t\tbackground-color:fadeout(@ui-background-color, 33%);\n\t\t\tcolor:@color-text;\n\t\t}\n\t\t&:active {\n\t\t\tbackground:@color-theme;\n\t\t\tcolor:@color-background;\n\t\t}\n\t}\n}\n\n\n\n@keyframes invertToBlack {\n\tfrom {\n\t\tbackground-color:#FFF;\n\t}\n\tto {\n\t\tbackground-color:#000;\n\t}\n}\n@-webkit-keyframes invertToBlack {\n\tfrom {background:#FFF;}\n\tto {background:#000;}\n}\n@keyframes invertToWhite {\n\tfrom {background-color:#000;}\n\tto {background-color:#FFF;}\n}\n@-webkit-keyframes invertToWhite{\n\tfrom {background:#000;}\n\tto {background:#FFF;}\n}\n\n\n","/* MESSAGE \n================================================== */\n.vco-message, .vco-message-full {\n\twidth:\t\t\t\t100%;\n\t//max-width: \t\t\t200px;\n\theight:\t\t\t\t100%;\n\tposition: \t\t\tabsolute;\n\t//position: \t\t\trelative;\n\t\n\tdisplay: \t\t\ttable;\n\toverflow: \t\t\thidden;\n\ttop: \t\t\t\t0px;\n\tleft: \t\t\t\t0px;\n\tz-index:\t\t\t99;\n\tmargin:\t\t\t\tauto;\n\ttext-align:\t\t\tcenter;\n\t.vco-message-container {\n\t\tpadding: \t\t\t20px;\n\t\tmargin:20px;\n\t\ttext-align:\t\t\tcenter;\n\t\tvertical-align: \tmiddle;\n\t\tdisplay:table-cell;\n\n\t\t.vco-message-content {\n\t\t\tcolor:#666;\n\t\t\ttext-align: center;\n\t\t\tfont-size: 11px;\n\t\t\tline-height: 13px;\n\t\t\ttext-transform: uppercase;\n\t\t\tmargin-top: 7.5px;\n\t\t\tmargin-bottom: 7.5px;\n\t\t\ttext-shadow: 1px 1px 1px #FFF;\n\t\t}\n\t\t.vco-loading-icon {\n\t\t\twidth: 30px;\n\t\t\theight: 30px;\n\t\t\tbackground-color: #666;\n\t\t\tvertical-align: middle;\n\t\t\t.box-shadow(inset 0 1px 2px rgba(255,255,255,.1));\n\t\t\tmargin-left: auto;\n\t\t\tmargin-right: auto;\n\t\t\ttext-align: center;\n\t\t //margin: 100px auto;\n\t\t\t-webkit-animation: rotateplane 1.2s infinite ease-in-out;\n\t\t\tanimation: rotateplane 1.2s infinite ease-in-out;\n\t\t}\n\n\t\t@-webkit-keyframes rotateplane {\n\t\t\t0% { -webkit-transform: perspective(120px) }\n\t\t\t50% { -webkit-transform: perspective(120px) rotateY(180deg) }\n\t\t\t100% { -webkit-transform: perspective(120px) rotateY(180deg) rotateX(180deg) }\n\t\t}\n\n\t\t@keyframes rotateplane {\n\t\t\t0% { transform: perspective(120px) rotateX(0deg) rotateY(0deg) }\n\t\t\t50% { transform: perspective(120px) rotateX(-180.1deg) rotateY(0deg) }\n\t\t\t100% { transform: perspective(120px) rotateX(-180deg) rotateY(-179.9deg) }\n\t\t}\n\t}\n}\n.vco-message-full {\n\t.translucent-background(#333, 0.80);\n\t[class^=\"vco-icon-\"], [class*=\" vco-icon-\"] {\n\t\t//width: 48px;\n\t\t//height: 48px;\n\t\tcolor:#FFF;\n\t\tfont-size:72px;\n\t}\n\t.vco-message-container {\n\t\t.vco-message-content {\n\t\t\tfont-size: 22px;\n\t\t\tline-height: 22px;\n\t\t\ttext-shadow: none;\n\t\t\tcolor:#FFF;\n\t\t\ttext-transform: none;\n\t\t\tfont-weight: bold;\n\t\t\t.vco-button {\n\t\t\t\tdisplay:inline-block;\n\t\t\t\tcursor:pointer;\n\t\t\t\tbackground-color:#FFF;\n\t\t\t\tcolor:#333;\n\t\t\t\tpadding:10px;\n\t\t\t\tmargin-top:10px;\n\t\t\t\t.border-radius(7px)\n\t\t\t}\n\t\t}\n\t}\n\n}\n.vco-message {\n\t\n}",".vcoanimate {\n\t-webkit-transform: translateZ(0);\n\t-webkit-perspective: 1000;\n\t-webkit-backface-visibility: hidden;\n}\n\n.vco-animate {\n\t.property-animation(all, @animation-duration, @animation-ease);\n\t.animation-timing-cubic-bezier();\n}\n\n.vco-animate-opacity {\n\t.property-animation(opacity, @animation-duration, @animation-ease);\n\t.animation-timing-cubic-bezier();\n}","/* SLIDE \n================================================== */\n.vco-slide {\n\tposition:absolute;\n\n\twidth:100%;\n\theight:100%;\n\tpadding:0px;\n\tmargin:0px;\n\t//display:table;\n\t//table-layout: fixed;\n\toverflow-x:hidden;\n\toverflow-y:auto;\n//\toverflow-y:auto;\n\t//z-index:26;\n\t\n\t.vco-slide-calltoaction {\n\t\t\n\t\t\n\t\tcursor:pointer;\n\t\tfont-weight: bold;\n\t\tpadding-top:10px;\n\t\tmargin-bottom:10px;\n\t\tpadding-bottom:10px;\n\t\t.vco-slide-calltoaction-button-text {\n\t\t\tdisplay:inline-block;\n\t\t\tbackground-color:@color-theme;\n\t\t\tcolor:@color-background;\n\t\t\t//padding:10px;\n\t\t\tpadding: 10px 15px 10px 15px;\n\t\t\tborder-radius:7px;\n\t\t}\n\t\t&:hover {\n\t\t\t.vco-slide-calltoaction-button-text {\n\t\t\t\tbackground-color:@color-theme-dark;\n\t\t\t\tcolor:@color-background;\n\t\t\t}\n\t\t}\n\t}\n\t.vco-slide-background {\n\t\tbackground-color:@color-background;\n\t\t\n\t\tposition:absolute;\n\t\tleft:0;\n\t\ttop:0;\n\t\twidth:100%;\n\t\theight:100%;\n\t\tz-index:-1;\n\t\t//background-color:#333;\n\t\toverflow:hidden;\n\t\tdisplay:none;\n\t\t.opacity(50);\n\t\tbackground: no-repeat center center; \n\t\t-webkit-background-size: cover;\n\t\t -moz-background-size: cover;\n\t\t -o-background-size: cover;\n\t\t\t background-size: cover;\n\t}\n\t.vco-slide-scrollable-container {\n\t\tdisplay:table;\n\t\ttable-layout: fixed;\n\t\theight:100%;\n\t\tz-index:1;\n\t}\n\t.vco-slide-content-container {\n\t\tdisplay:table-cell;\n\t\tvertical-align:middle;\n\t\tposition:relative;\n\t\twidth:100%;\n\t\theight:100%;\n\t\t\n\t\tz-index:3;\n\t\t.vco-slide-content {\n\t\t\t//width:100%;\n\t\t\t//display:table;\n\t\t\tvertical-align:middle;\n\t\t\tpadding-left:100px;\n\t\t\tpadding-right:100px;\n\t\t\tposition:relative;\n\t\t\tmax-width:100%;\n\t\t\t.vco-media {\n\t\t\t\t//display:table-cell;\n\t\t\t\t//vertical-align:middle;\n\t\t\t\tposition:relative;\n\t\t\t\twidth:100%;\n\t\t\t\tmin-width:50%;\n\t\t\t\t//height:100%;\n\t\t\t\tfloat: left;\n\t\t\t\tmargin-top:auto;\n\t\t\t\tmargin-bottom:auto;\n\t\t\t\t//margin-right:auto;\n\t\t\t\timg, embed, object, video, iframe {\n\t\t\t\t\t//width:100%;\n\t\t\t\t}\n\t\t\t}\n\t\t\t.vco-text {\n\t\t\t\twidth:50%;\n\t\t\t\tmax-width:50%;\n\t\t\t\tmin-width:120px;\n\t\t\t\t//height:100%;\n\t\t\t\t//overflow-y:auto;\n\t\t\t\tpadding: 0 20px 0 20px;\n\t\t\t\tdisplay:table-cell;\n\t\t\t\tvertical-align:middle;\n\t\t\t\ttext-align: left;\n\t\t\t\t//float:left;\n\t\t\t\t.vco-slide-calltoaction {\n\t\t\t\t\twidth:100%;\n\t\t\t\t}\n\t\t\t}\n\t\t\t\n\t\t}\n\t}\n}\n\n/* Only Media (no text)\n================================================== */\n.vco-slide-media-only {\n\t.vco-slide-content-container {\n\t\t.vco-slide-content {\n\t\t\t//width:100%;\n\t\t\ttext-align:center;\n\t\t\t.vco-media {\n\t\t\t\t//display:table-cell;\n\t\t\t\t//vertical-align:middle;\n\t\t\t\ttext-align:center;\n\t\t\t\tposition:relative;\n\t\t\t\twidth:100%;\n\t\t\t\tmin-width:50%;\n\t\t\t\tmax-width:100%;\n\t\t\t\t//height:100%;\n\t\t\t\tfloat: none;\n\t\t\t\tmargin-top:auto;\n\t\t\t\tmargin-bottom:auto;\n\t\t\t\t//margin-right:auto;\n\t\t\t\timg, embed, object, video, iframe {\n\t\t\t\t\t//width:100%;\n\t\t\t\t}\n\t\t\t}\n\t\t\t.vco-text {\n\t\t\t\twidth:\t\t\t\t100%;\n\t\t\t\tdisplay:\t\t\tblock;\n\t\t\t\tmargin-left:\t\tauto;\n\t\t\t\tmargin-right:\t\tauto;\n\t\t\t\ttext-align: \t\tcenter;\n\t\t\t\th2 {\n\t\t\t\t\tmargin-top: \t20px;\n\t\t\t\t\tmargin-bottom: \t20px;\n\t\t\t\t}\n\t\t\t\t//float:left;\n\t\t\t}\n\t\t}\n\t}\n}\n\n/* Only Text (no media)\n================================================== */\n.vco-slide-text-only {\n\t.vco-slide-content-container {\n\t\t.vco-slide-content {\n\t\t\t//width:100%;\n\t\t\ttext-align:center;\n\t\t\t.vco-text {\n\t\t\t\tmax-width:80%;\n\t\t\t\twidth:80%;\n\t\t\t\tdisplay:block;\n\t\t\t\tmargin-left:auto;\n\t\t\t\tmargin-right:auto;\n\t\t\t\t//float:left;\n\t\t\t}\n\t\t}\n\t}\n}\n/* Background \n================================================== */\n\n\n.vco-slide.vco-full-image-background, .vco-slide.vco-full-color-background {\n\t.slide-text-shadow();\n\t\n\tp, h1, h2, h3, h4, h5, h6 {\n\t\t.slide-text-shadow();\n\t}\n\ta, a:hover, b, i, blockquote, blockquote p {\n\t\t.slide-text-shadow();\n\t\tcolor: lighten(@color-theme, 90%);\n\t}\n\t.vco-caption, .vco-credit {\n\t\t.slide-text-shadow();\n\t}\n\t.vco-media-twitter, .vco-media-blockquote {\n\t\tblockquote {\n\t\t\t.slide-text-shadow();\n\t\t\tp {\n\t\t\t\t.slide-text-shadow();\n\t\t\t}\n\t\t}\n\t}\n\t.vcard {\n\t\ta, .nickname {\n\t\t\t.slide-text-shadow();\n\t\t}\n\t}\n\n}\n\n/* Landscape\n================================================== */\n.vco-layout-landscape {\n\t.vco-slide {\n\t\t//.translucent-background(#FFF, 0.85);\n\t\t.vco-slide-content-container {\n\t\t\t.vco-slide-content {\n\t\t\t\t//.translucent-background(#FFF, 0.85);\n\t\t\t}\n\t\t\t\n\t\t}\n\t\t\n\t}\n}\n\n/* Full Image Background \n================================================== */\n.vco-slide.vco-full-image-background {\n\tbackground: no-repeat center center; \n\t-webkit-background-size: cover;\n\t -moz-background-size: cover;\n\t -o-background-size: cover;\n\t\t background-size: cover;\n\t//filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='.myBackground.jpg', sizingMethod='scale');\n\t//-ms-filter: \"progid:DXImageTransform.Microsoft.AlphaImageLoader(src='myBackground.jpg', sizingMethod='scale')\";\n\tbackground-position:center 25%;\n\ttext-shadow: 1px 1px 2px #000;\n\t.vco-slide-content-container {\n\t\t//.translucent-background(#000, 0.50);\n\t}\n\tp, h1, h2, h3, h4, h5, h6 {\n\t\ttext-shadow: 1px 1px 2px #000;\n\t}\n\t.vco-caption, .vco-credit {\n\t\ttext-shadow: 1px 1px 2px #000;\n\t}\n\t\n\t.vco-media-twitter, .vco-media-blockquote {\n\t\tblockquote {\n\t\t\ttext-shadow: 1px 1px 2px #000 !important;\n\t\t\tp {\n\t\t\t\ttext-shadow: 1px 1px 2px #000 !important;\n\t\t\t}\n\t\t}\n\t}\n\t\n}\n/* Color Background \n================================================== */\n.vco-slide.vco-full-color-background {\n\t\n}\n/* Text Background \n================================================== */\n.vco-slide.vco-text-background {\n\t.vco-text {\n\t\t.vco-text-content-container {\n\t\t\tpadding:20px;\n\t\t\t.background-color-opacity(0,0,0, 60);\n\t\t\t.border-radius(7px);\n\t\t\th2 {\n\t\t\t\tmargin-top:5px;\n\t\t\t}\n\t\t}\n\t}\n}\n\n/* Landscape\n================================================== */\n.vco-layout-landscape {\n\t.vco-slide {\n\t\t.vco-slide-content-container {\n\t\t\t.vco-slide-content {\n\t\t\t\t.vco-media {\n\t\t\t\t\tdisplay:block;\n\t\t\t\t\t//position:static;\n\t\t\t\t\tvertical-align:baseline;\n\t\t\t\t\theight:auto;\n\t\t\t\t\tmargin-bottom:20px;\n\t\t\t\t\tmax-height:50%;\n\t\t\t\t}\n\t\t\t\t.vco-text {\n\t\t\t\t\tdisplay:block;\n\t\t\t\t\theight:auto;\n\t\t\t\t\tvertical-align:baseline;\n\t\t\t\t\t//position:static;\n\t\t\t\t\twidth:100%;\n\t\t\t\t\tmax-width:100%;\n\t\t\t\t\tmin-width:0;\n\t\t\t\t\tfloat:none;\n\t\t\t\t\tpadding: 0;\n\t\t\t\t\t.vco-text-content-container {\n\t\t\t\t\t\t//padding-left:10px;\n\t\t\t\t\t\t//padding-right:10px;\n\t\t\t\t\t\t//padding-bottom:100px;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n// Skinny 500px or less\n.vco-skinny {\n\t.vco-slide {\n\t\tdisplay:block;\n\t\t\n\t\t.vco-slide-content-container {\n\t\t\tdisplay:block;\n\t\t\tposition:static;\n\t\t\theight:auto;\n\t\t\tvertical-align:baseline;\n\t\t\t.vco-slide-content {\n\t\t\t\tdisplay:block;\n\t\t\t\tposition:static;\n\t\t\t\tvertical-align:baseline;\n\t\t\t\theight:auto;\n\t\t\t\t.vco-media {\n\t\t\t\t\tposition:static;\n\t\t\t\t\twidth:100%;\n\t\t\t\t\theight:auto;\n\t\t\t\t\tfloat: none;\n\t\t\t\t\tdisplay:block;\n\n\t\t\t\t}\n\t\t\t\t.vco-text {\n\t\t\t\t\tdisplay:block;\n\t\t\t\t\theight:auto;\n\t\t\t\t\tvertical-align:baseline;\n\t\t\t\t\tposition:static;\n\t\t\t\t\twidth:100%;\n\t\t\t\t\tmax-width:100%;\n\t\t\t\t\tmin-width:0;\n\t\t\t\t\tfloat:none;\n\t\t\t\t\tpadding: 0;\n\t\t\t\t\t.vco-text-content-container {\n\t\t\t\t\t\tpadding-left:10px;\n\t\t\t\t\t\tpadding-right:10px;\n\t\t\t\t\t\tpadding-bottom:10px;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n// Mobile, iPhone\n@media only screen and (max-width: 500px), only screen and (max-device-width: 500px) {\n\n}\n.vco-mobile.vco-skinny {\n\t.vco-slide-content-container {\n\t\t.vco-slide-content {\n\t\t\t.vco-media {\n\t\t\t\timg, embed, object, video, iframe {\n\t\t\t\t\tmax-height:175px;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}","/* SlideNav\n================================================== */\n\n/* NAVIGATION\n================================================== */\n.vco-slidenav-previous, .vco-slidenav-next, .vco-slidenav-back {\n\tposition:absolute;\n\ttop: 45%;\n\tz-index:10;\n\tcursor:pointer;\n\t\n\t.vco-slidenav-content-container {\n\t\theight:200px;\n\t\twidth:00px;\n\t\tposition:absolute;\n\t}\n\t.vco-slidenav-title, .vco-slidenav-description {\n\t\twidth:100%;\n\t\t//word-break:break-all;\n\n\t\t\t\t\n\t -ms-word-break: break-all;\n\t word-break: break-all;\n\n\t /* Non standard for webkit */\n\t word-break: break-word;\n\n\t -webkit-hyphens: auto;\n\t -moz-hyphens: auto;\n\t -ms-hyphens: auto;\n\t hyphens: auto;\n\t\t\t \n\t\t.opacity(15);\n\t\ta {\n\t\t\t\n\t\t}\n\t\tsmall {\n\t\t\t\n\t\t}\n\t}\n\t.vco-slidenav-title {\n\t\tmargin-top:10px;\n\t\tfont-size: @base-font-size;\n\t\tline-height: @base-font-size;\n\t\tfont-size: @base-font-size-small;\n\t\tline-height: @base-font-size-small;\n\t\t//font-weight: bold;\n\t}\n\t.vco-slidenav-description {\n\t\tfont-size: @base-font-size-small;\n\t}\n\t\n}\n\n/* ICONS AND NAVIGATION HOVER AND COLOR\n================================================== */\n.vco-slidenav-next, .vco-slidenav-previous, .vco-slidenav-back {\n\t.vco-slidenav-content-container {\n\t\t.vco-slidenav-icon, .vco-slidenav-title, .vco-slidenav-description {\n\t\t\ttext-shadow: 1px 1px 1px @color-background;\n\t\t\t//color: @color-foreground;\n\t\t\tcolor:@color-background;\n\t\t}\n\t\t&.vco-slidenav-inverted {\n\t\t\t.vco-slidenav-icon, .vco-slidenav-title, .vco-slidenav-description {\n\t\t\t\t//color:@color-background;\n\t\t\t\tcolor: @color-foreground;\n\t\t\t\ttext-shadow: 1px 1px 1px @color-foreground;\n\t\t\t}\n\t\t}\n\t}\n\t.vco-slidenav-icon {\n\t\tfont-family: 'vco-icons';\n\t\tspeak: none;\n\t\tfont-style: normal;\n\t\tfont-weight: normal;\n\t\tfont-variant: normal;\n\t\ttext-transform: none;\n\t\tline-height: 1;\n\t\t-webkit-font-smoothing: antialiased;\n\t\t-moz-osx-font-smoothing: grayscale;\n\t\tfont-size:32px;\n\t\tmargin-bottom: 5px;\n\t}\n\t&:hover {\n\t\t.vco-slidenav-title, .vco-slidenav-description {\n\t\t\t.opacity(100);\n\t\t}\n\t}\n}\n\n.vco-slidenav-next {\n\ttext-align: right;\n\tmargin-right:10px;\n right: 100px;\n\t.vco-slidenav-icon {\n\t\tmargin-left: 100 - 24px;\n\t\t&:before {\n\t\t\tcontent: \"\\e64f\";\n\t\t}\n\t}\n\t&:hover {\n\t\t.vco-slidenav-icon {\n\t margin-left: 100 - 20px;\n\t\t}\n\t}\n}\n\n.vco-slidenav-back {\n\ttext-align: right;\n\tmargin-right:10px;\n right: 100px;\n\t.vco-slidenav-icon {\n\t\tmargin-left: 100 - 24px;\n\t\t&:before {\n\t\t\tcontent: \"\\e63e\";\n\t\t}\n\t}\n\t&:hover {\n\t\t.vco-slidenav-icon {\n\t margin-left: 100 - 20px;\n\t\t}\n\t}\n}\n\n.vco-slidenav-previous {\n\ttext-align: left;\n\tmargin-left:10px;\n\t.vco-slidenav-icon {\n\t\tmargin-left: 0px;\n\t\t&:before {\n\t\t\tcontent: \"\\e650\";\n\t\t}\n\t}\n\t&:hover {\n\t\t.vco-slidenav-icon {\n\t\t\tmargin-left: -4px;\n\t\t}\n\t}\n}\n\n\n/* Skinny\n================================================== */\n.vco-skinny {\n\t.vco-slidenav-next, .vco-slidenav-back {\n\t right: 32px;\n\t\t.vco-slidenav-icon {\n\t\t\tmargin-left:32 - 24px;\n\t\t}\n\t\t&:hover {\n\t\t\t.vco-slidenav-icon {\n\t\t margin-left:32 - 20px;\n\t\t\t .opacity(100);\n\t\t\t}\n\t\t}\n\t}\n\t\n\t.vco-slidenav-previous {\n\t\t&:hover {\n\t\t\t.vco-slidenav-icon {\n\t\t\t\tmargin-left: -4px;\n\t\t\t\t.opacity(100);\n\t\t\t}\n\t\t}\n\t}\n\t\n\t.vco-slidenav-previous, .vco-slidenav-next, .vco-slidenav-back {\n\t\t.vco-slidenav-content-container {\n\t\t\twidth:32px;\n\t\t\theight:32px;\n\t\t\t.vco-slidenav-icon, .vco-slidenav-title, .vco-slidenav-description {\n\t\t\t\tcolor: @color-foreground;\n\t\t\t\t//color:@color-background;\n\t\t\t}\n\t\t\t&.vco-slidenav-inverted {\n\t\t\t\t.vco-slidenav-icon, .vco-slidenav-title, .vco-slidenav-description {\n\t\t\t\t\tcolor:@color-background;\n\t\t\t\t\t//color: @color-foreground;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\t.vco-slidenav-title, .vco-slidenav-description {\n\t\t\tdisplay:none;\n\t\t}\n\t\t.vco-slidenav-icon {\n\t\t\t.opacity(33);\n\t\t}\n\t}\n\n}\n\n/* Mobile and Landscape\n================================================== */\n.vco-layout-landscape.vco-mobile {\n\t.vco-slidenav-next, .vco-slidenav-back {\n\t\t&:hover {\n\t\t\tright: 70px;\n\t\t\t.vco-slidenav-icon {\n\t\t margin-left:32 - 24px;\n\t\t\t .opacity(100);\n\t\t\t}\n\t\t}\n\t\t&:active {\n\t\t\t.vco-slidenav-icon {\n\t\t\t\tmargin-left: 0px;\n\t\t\t .opacity(100);\n\t\t\t}\n\t\t}\n\t}\n\n\t.vco-slidenav-previous {\n\t\t&:hover {\n\t\t\t.vco-slidenav-icon {\n\t\t\t\t//margin-left: 0px;\n\t\t\t\tmargin-left: 100 - 20px;\n\t\t\t\t.opacity(100);\n\t\t\t}\n\t\t}\n\t\t&:active {\n\t\t\t.vco-slidenav-icon {\n\t\t\t .opacity(100);\n\t\t\t margin-left: -4px;\n\t\t\t}\n\t\t}\n\t}\n\n}\n\n/* Mobile and Portrait\n================================================== */\n.vco-layout-portrait.vco-mobile {\n\t.vco-slidenav-next, .vco-slidenav-previous, .vco-slidenav-back {\n\t\t&:hover {\n\t\t\t.vco-slidenav-icon {\n\t\t\t .opacity(33);\n\t\t\t}\n\t\t}\n\t\t&:active {\n\t\t\t.vco-slidenav-icon {\n\t\t\t .opacity(100);\n\t\t\t}\n\t\t}\n\t}\n}\n\n/* Mobile\n================================================== */\n.vco-mobile, .vco-skinny.vco-mobile, .vco-skinny.vco-layout-landscape.vco-mobile, .vco-skinny.vco-layout-portrait.vco-mobile {\n\t.vco-slidenav-previous, .vco-slidenav-next, .vco-slidenav-back {\n\t\tdisplay:none;\n\t}\n}\n\n/* Landscape\n================================================== */\n.vco-layout-landscape {\n\t.vco-storyslider {\n\t\t.vco-slidenav-next, .vco-slidenav-previous, .vco-slidenav-back {\n\t\t\t.vco-slidenav-icon {\n\t\t\t\t&:before {\n\t\t\t\t\t//background-color:@color-background;\n\t\t\t\t\tbackground-color: @color-foreground;\n\t\t\t\t\t//.translucent-background(@color-background, .85);\n\t\t\t\t\t//.box-shadow(1px 1px 7px rgba(0,0,0,.30));\n\t\t\t\t\tpadding:20px;\n\t\t\t\t\tborder: 1px solid darken(@color-background,30);\n\t\t\t\t}\n\t\t\t}\n\t\t\t.vco-slidenav-icon, .vco-slidenav-title, .vco-slidenav-description {\n\t\t\t\ttext-shadow: none;\n\t\t\t}\n\t\t\t.vco-slidenav-title, .vco-slidenav-description {\n\t\t\t\tdisplay:none;\n\t\t\t}\n\t\t}\n\t\n\t\t.vco-slidenav-previous {\n\t\t\tleft:-100%;\n\t\t\tmargin-left:0px;\n\t\t\t//z-index:26;\n\t\t\t.vco-slidenav-icon {\n\t\t\t\t&:before {\n\t\t\t\t\t.border-right-radius(7px);\n\t\t\t\t}\n\t\t\t}\n\t\t\t&:hover {\n\t\t\t\t.vco-slidenav-icon {\n\t\t\t\t\tmargin-left: -4px;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\t.vco-slidenav-next, .vco-slidenav-back {\n\t\t\t//margin-left:0px;\n\t\t\t right: 130px;\n\t\t\t .vco-slidenav-icon {\n\t\t\t\t &:before {\n\t\t\t\t \t.border-left-radius(7px);\n\t\t\t\t }\n\t\t\t }\n\t\t}\n\t}\n}\n","/* StorySlider\n================================================== */\n\n/* SLIDER CONTAINERS \n================================================== */\n.vco-storyslider {\n\twidth:100%;\n\theight:100%;\n\toverflow:hidden;\n\t.user-select(none);\n\tposition:relative;\n\timg, embed, object, video, iframe {\n\t\tmax-width: 100%;\n\t\tposition:relative;\n\t}\n\t.vco-slider-background {\n\t\tposition:absolute;\n\t\ttop:0;\n\t\tleft:0;\n\t\twidth:100%;\n\t\theight:100%;\n\t\tz-index:1;\n\t\tpointer-events: none;\n\t}\n\t.vco-slider-touch-mask {\n\t\twidth:100%;\n\t\theight:100%;\n\t\tz-index:25;\n\t\t\n\t\ttop:0px;\n\t\tleft:0px;\n\t\tposition: absolute;\n\t}\n\t.vco-slider-container-mask {\n\t\ttext-align: center;\n\t\twidth: 100%;\n\t\theight: 100%;\n\t\t//overflow: scroll;\n\t\tposition: relative;\n\t\tz-index:5;\n\t\t.vco-slider-container {\n\t\t\tposition: absolute;\n\t\t\ttop: 0px;\n\t\t\tleft: 0px;\n\t\t\twidth: 100%;\n\t\t\theight: 100%;\n\t\t\ttext-align: center;\n\t\t\t\n\t\t\t.vco-slider-item-container {\n\t\t\t\twidth: 100%;\n\t\t\t\theight: 100%;\n\t\t\t\tdisplay:table-cell;\n\t\t\t\tvertical-align:middle;\n\n\t\t\t}\n\t\t}\n\t}\n\t\n}\n","/* Requires Variables.less\n================================================== */\n.vco-media {\n\t//display:table-cell;\n\t//vertical-align:middle;\n\twidth:100%;\n\tmin-width:50%;\n\theight:100%;\n\t//float: left;\n\tmargin-top:auto;\n\tmargin-bottom:auto;\n\tposition:relative;\n\t//margin-right:auto;\n\t.vco-message {\n\t\tposition:relative;\n\t}\n\t.vco-media-content-container {\n\t\t.vco-media-content{\n\t\t\tposition: relative;\n\t\t\t.clearfix();\n\t\t\t.vco-media-loaderror {\n\t\t\t\tp {\n\t\t\t\t\tcolor:@ui-background-color;\n\t\t\t\t\tspan {\n\t\t\t\t\t\tcolor:@ui-background-color;\n\t\t\t\t\t}\n\t\t\t\t\ttext-align:center;\n\t\t\t\t\tem {\n\t\t\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\t[class^=\"vco-icon-\"], [class*=\" vco-icon-\"] {\n\t\t\t\t\tfont-size:@base-font-size-xlarge;\n\t\t\t\t\tcolor:@ui-background-color;\n\t\t\t\t\ttext-align:center;\n\t\t\t\t}\n\t\t\t}\n\t\t\t\n\t\t\timg, embed, object, video {\n\t\t\t\tmax-width: 100%;\n\t\t\t\tmax-height:100%;\n\t\t\t}\n\t\t\t\n\t\t}\n\t}\n}\n\n/* Media Shodow \n================================================== */\n.vco-media-shadow {\n\tposition: relative;\n\tz-index: 1;\n\t//background:@color-background;\n\t.box-shadow(1px 1px 7px rgba(0,0,0,.50));\n\t\n}\n/*\n.vco-media-shadow:before, .vco-media-shadow:after {\n\tz-index: -1;\n\tposition: absolute;\n\tcontent: \"\";\n\tbottom: 15px;\n\tleft: 10px;\n\twidth: 50%;\n\ttop: 80%;\n\tmax-width:300px;\n\tbackground: #333;\n\t.box-shadow(0 15px 10px #666);\n\t.transform(rotate(-2deg));\n}\n.vco-media-shadow::after {\n\t.transform(rotate(2deg));\n\tright: 10px;\n\tleft: auto;\n}\n*/\n/* VCard\n================================================== */\n.vcard {\n\t//float:right;\n\t\n\t.clearfix();\n\tmargin-bottom:@base-spacing;\n\tmargin-top:10px;\n\t.twitter-date {\n\t\ttext-align:left;\n\t\tfont-size:@base-font-size-small;\n\t}\n\t.author {\n\t\tfloat:right;\n\t\t//text-align:right;\n\t}\n\ta {\n\t\tcolor: lighten(@color-dark, 20%);\n\t\ttext-decoration:none;\n\t}\n\ta:hover {\n\t\ttext-decoration: none;\n\t\t.fn, .nickname {\n\t\t\tcolor:@color-theme;\n\t\t\t//text-decoration: underline;\n\t\t}\n\t}\n\t.fn, .nickname {\n\t\t\t\n\t\tpadding-left: 42px;\n\t}\n\t.fn {\n\t\tdisplay:block;\n\t\tfont-weight: bold;\n\n\t}\n\t.nickname {\n\t\tmargin-top:1px;\n\t\tdisplay:block;\n\t\tcolor: lighten(@color-dark, 40%);\n\t}\n\t\t\n\t.avatar {\n\t\tfloat:left;\n\t\tdisplay: block;\n\t\twidth: 32px;\n\t\theight: 32px;\n\t\timg {\n\t\t\t-moz-border-radius: 5px;\n\t\t\t-webkit-border-radius: 5px;\n\t\t\tborder-radius: 5px;\n\t\t}\n\t}\n}\n.vco-slide.vco-full-image-background, .vco-slide.vco-full-color-background {\n\ta, .vcard a {\n\t\t.slide-text-shadow();\n\t\tcolor: lighten(@color-theme, 90%);\n\t}\n}\n/* Credit\n================================================== */\n.vco-credit {\n\tcolor: #999999;\n\ttext-align: right;\n\tdisplay: block;\n\tmargin: 0 auto;\n\tmargin-top: 6px;\n\tfont-size: @base-font-size-small - 1;\n\tline-height: 13px;\n}\n\n/* Caption\n================================================== */\n.vco-caption {\n\ttext-align: left;\n\tmargin-right: auto;\n\tmargin-left: auto;\n\tmargin-top: 10px;\n\tcolor: #666666;\n\tfont-size: @base-font-size-small;\n\tline-height: 14px;\n\ttext-rendering: optimizeLegibility;\n\tword-wrap: break-word;\n}\n\n/* Full Image Background\n================================================== */\n.vco-full-image-background, .vco-full-color-background {\n\t\n\t.vco-media-shadow:before, .vco-media-shadow:after {\n\t\tbackground: none;\n\t\t.box-shadow(0 0px 0px #000);\n\t}\n\t\n}\n.vco-full-image-background {\n\n}\n\n.vco-full-color-background {\n\t\n}\n\n/* Mobile, iPhone and skinny\n================================================== */\n@media only screen and (max-width: 500px), only screen and (max-device-width: 500px) {\n\t.vco-media {\n\t\twidth:100%;\n\t\theight:auto;\n\t\tfloat: none;\n\t\tdisplay:block;\n\t\t\n\t\t.vco-media-content-container {\n\t\t\t.vco-media-content{\n\t\t\t\t\n\t\t\t}\n\t\t\t.vco-credit {\n\t\t\n\t\t\t}\n\t\t\t.vco-caption {\n\t\t\n\t\t\t}\n\t\t\t\n\t\t}\n\t}\n}\n.vco-skinny {\n\t.vco-media {\n\t\twidth:100%;\n\t\theight:auto;\n\t\tfloat: none;\n\t\tdisplay:block;\n\t\t.vco-media-content-container {\n\t\t\t.vco-media-content{\n\t\t\n\t\t\t}\n\t\t\t\n\t\t\t.vco-credit, .vco-caption {\n\t\t\t\tmargin-top: 2px;\n\t\t\t\tpadding-left:10px;\n\t\t\t\tpadding-right:10px;\n\t\t\t\tfont-size:8px;\n\t\t\t}\n\t\t\t.vco-credit {\n\t\t\t\tmargin-top: 0px;\n\t\t\t}\n\t\t}\n\t}\n}\n\n","/* Requires Variables.less\n================================================== */\n\n.vco-text {\n\twidth:50%;\n\tmax-width:50%;\n\tmin-width:120px;\n\tpadding: 0 20px 0 20px;\n\tdisplay:table-cell;\n\tdisplay:block;\n\tvertical-align:middle;\n\ttext-align: left;\n\t//float:left;\n\ttext-shadow: none;\n\tcolor:@color-text;\n\tp {\n\t\tcolor:@color-text;\n\t}\n\t.vco-text-content-container {\n\t\t.vco-text-content{\n\t\t\n\t\t}\n\t}\n\th2.vco-headline-title, h2.vco-headline {\n\t\tmargin-top:0;\n\t\tcolor:@color-header-text;\n\t}\n\t.vco-headline-date, h3.vco-headline-date {\n\t\tfont-family:@font-main;\n\t\tfont-size:@base-font-size;\n\t\tline-height: @base-font-size;\n\t\tfont-weight: normal;\n\t\tmargin:0 0 2px 0;\n\t\tcolor: lighten(@color-text,25);\n\t\tsmall {\n\t\t\tfont-size:@base-font-size;\n\t\t\tline-height: @base-font-size;\n\t\t\tfont-weight: normal;\n\t\t\tcolor: lighten(@color-text,25);\n\t\t}\n\t}\n\t.vco-text-date {\n\t\tdisplay:inline-block;\n\t\tfont-family:@font-main;\n\t\tfont-weight:normal;\n\t\tmargin-top:10px;\n\t\tfont-size:12px;\n\t\tcolor: lighten(@color-text,25);\n\t\t&:after {\n\t\t\t//margin-left:3px;\n\t\t\t//color:#999;\n\t\t\t//font-weight:normal;\n\t\t}\n\t}\n\n}\n\n// When the background is an image\n.vco-full-image-background, .vco-full-color-background {\n\t.vco-text, .vco-text p {\n\t\tcolor: @color-text-inverted !important;\n\t\ttext-shadow: 1px 1px 2px #000;\n\t\t.vco-headline-date, h3.vco-headline-date {\n\t\t\tcolor: @color-text-inverted !important;\n\t\t\tsmall {\n\t\t\t\tcolor: @color-text-inverted !important;\n\t\t\t}\n\t\t}\n\n\t}\n}\n\n\n/* Skinny\n================================================== */\n.vco-skinny {\n\t.vco-text {\n\t\twidth:100%;\n\t\tmax-width:100%;\n\t\tmin-width:auto;\n\t\tfloat:none;\n\t\tmargin-top:20px;\n\t\t.vco-text-content-container {\n\t\t\t.vco-text-content{\n\t\t\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n\n/* Mobile, iPhone\n================================================== */\n.vco-mobile {\n\t\n}\n\n/* Mobile, iPhone and skinny\n================================================== */\n.vco-mobile.vco-skinny {\n\n}\n",".vco-media {\n\t.vco-media-image {\n\t\twidth: auto !important;\n\t}\n\n}\n\n.vco-mobile.vco-skinny {\n\t.vco-media {\n\t\t.vco-media-image {\n\t\t\tmax-height:250px !important;\n\t\t}\n\n\t}\n}",".vco-media {\n\t.vco-media-twitter {\n\t\ttext-align:left;\n\t\t//margin-left: auto;\n\t\t//margin-right: auto;\n\t\t//margin-bottom:@base-space;\n\t\tclear:both;\n\t\tblockquote {\n\t\t\tmargin:0;\n\t\t\tmargin-right: \t@base-spacing;\n\t\t\tfont-size: \t\t@base-font-size;\n\t\t\tline-height:\tfloor(@base-font-size * @base-line-height);\n\t\t\tcolor:\t\t\t@color-foreground;\n\t\t\tp {\n\t\t\t\tfont-size: \t\t@base-font-size-xlarge;\n\t\t\t\tline-height: \tfloor(@base-font-size-xlarge * 1.1);\n\t\t\t\tcolor:\t\t\t@color-dark;\n\t\t\t}\n\t\t\t.quote-mark {\n\t\t\t\t\n\t\t\t}\n\t\t}\n\t\tblockquote p:before {\n\t\t\tdisplay:none;\n\t\t}\n\t\tblockquote p:after {\n\t\t\tdisplay:none;\n\t\t}\n\t\t\n\t\t.vco-icon-twitter {\n\t\t\tcolor:#55ACEE;\n\t\t}\n\t\t.vcard {\n\t\t\ta:hover, a.vco-date:hover {\n\t\t\t\ttext-decoration: none;\n\t\t\t\tcolor:#55ACEE;\n\t\t\t\t.fn, .nickname {\n\t\t\t\t\tcolor:#55ACEE;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\t\n\t\t\n\n\t}\n\n}\n.vco-slide-media-only {\n\t.vco-media {\n\t\t.vco-media-twitter {\n\t\t\twidth:80%;\n\t\t\tmargin-left:auto;\n\t\t\tmargin-right:auto;\n\t\t}\n\t}\n}\n.vco-mobile.vco-skinny {\n\t.vco-media {\n\t\t.vco-media-twitter {\n\t\t\t\n\t\t\tblockquote {\n\t\t\t\tp {\n\t\t\t\t\tfont-size: \t\t@base-font-size;\n\t\t\t\t\tline-height:\tfloor(@base-font-size * @base-line-height);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t}\n}\n.vco-skinny {\n\t\n\t.vco-media {\n\t\t.vco-media-twitter {\n\t\t\tmargin-left:10px;\n\t\t\tmargin-right:10px;\n\t\t\tblockquote {\n\t\t\t\tp {\n\t\t\t\t\tfont-size: \t\t@base-font-size-large;\n\t\t\t\t\tline-height:\tfloor(@base-font-size-large * 1.1);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t}\n}\n",".vco-media {\n\t.vco-media-blockquote {\n\t\ttext-align:left;\n\t\tclear:both;\n\t\tblockquote {\n\t\t\tmargin:0;\n\t\t\tmargin-right: \t@base-spacing;\n\t\t\ttext-align: \tleft;\n\t\t\tp {\n\t\t\t\tfont-size: \t\t@base-font-size-xlarge;\n\t\t\t\tline-height: \tfloor(@base-font-size-xlarge * 1.1);\n\t\t\t\t//color:\t\t\t@color-dark;\n\t\t\t}\n\t\t\tcite {\n\t\t\t\tfont-size: \t\t@base-font-size;\n\t\t\t\tline-height:\tfloor(@base-font-size * @base-line-height);\n\t\t\t\tcolor:\t\t\t@color-foreground;\n\t\t\t\ttext-align: \tright;\n\t\t\t}\n\t\t\t\n\t\t}\n\n\t\tblockquote p:before {\n\t\t\tcontent: open-quote;\n\t\t\tdisplay:inline-block;\n\t\t\t//font-size: (@base-font-size-xlarge * 3);\n\t\t\t//font-style: normal;\n\t\t\t//position: relative; \n\t\t\t//top: (@base-font-size-xlarge);\n\t\t\tmargin-right:5px;\n\t\t\n\t\t}\n\t\tblockquote p:after {\n\t\t\tcontent: close-quote;\n\t\t\tdisplay:inline-block;\n\t\t\t//font-size: (@base-font-size-xlarge * 2);\n\t\t\t//position: relative; \n\t\t\t//top: (@base-font-size-xlarge/2);\n\t\t\tmargin-left:3px;\n\t\t\n\t\t}\n\n\t}\n\n}\n.vco-slide-media-only {\n\t.vco-media {\n\t\t.vco-media-blockquote {\n\t\t\twidth:80%;\n\t\t\tmargin-left:auto;\n\t\t\tmargin-right:auto;\n\t\t}\n\t}\n}\n// Skinnier\n@media only screen and (max-width: 800px), only screen and (max-device-width: 800px) {\n\t.vco-media {\n\t\t.vco-media-blockquote {\n\t\t\tblockquote {\n\t\t\t\tp {\n\t\t\t\t\tfont-size: \t\t@base-font-size-large;\n\t\t\t\t\tline-height:\tfloor(@base-font-size-large * 1.1);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t}\n}\n// Mobile, iPhone and skinny\n@media only screen and (max-width: 500px), only screen and (max-device-width: 500px) {\n\t.vco-media {\n\t\t.vco-media-blockquote {\n\t\t\tblockquote {\n\t\t\t\tp {\n\t\t\t\t\tfont-size: \t\t@base-font-size;\n\t\t\t\t\tline-height:\tfloor(@base-font-size * @base-line-height);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t}\n}",".vco-media {\n\t.vco-media-instagram {\n\t\t\n\t}\n\n}\n\n\n.vco-mobile.vco-skinny {\n\t.vco-media {\n\t\t.vco-media-instagram {\n\t\t\tmax-height:250px !important;\n\t\t}\n\n\t}\n}",".vco-media {\n\t.vco-media-profile {\n\t\tborder-radius: 50%;\n\t}\n\n}\n\n// Mobile, iPhone and skinny\n@media only screen and (max-width: 500px), only screen and (max-device-width: 500px) {\n\t.vco-media {\n\t\t.vco-media-profile {\n\t\t\n\t\t}\n\n\t}\n}",".vco-media {\n\t.vco-media-iframe {\n\t\twidth: 100%;\n\t\theight: 100%;\n\t\tiframe {\n\t\t\twidth: 100%;\n\t\t\theight: 100%;\n\t\t}\n\t}\n\n}\n\n// Mobile, iPhone and skinny\n@media only screen and (max-width: 500px), only screen and (max-device-width: 500px) {\n\t.vco-media {\n\t\t.vco-media-iframe {\n\t\t\n\t\t}\n\n\t}\n}",".vco-media {\n\t.vco-media-wikipedia {\n\t\t//font-size: @base-font;\n\t\t//line-height: @base-line;\n\t\ttext-align:left;\n\t\tmargin-left: auto;\n\t\tmargin-right: auto;\n\t\t//margin-bottom:@base-space;\n\t\tclear:both;\n\t\t.wiki-source { \n\t\t\t//margin-bottom:@base-space;\n\t\t\tfont-size: 13px;\n\t\t\tline-height: 19px;\n\t\t\tfont-style: italic;\n\t\t}\n\t\th4 {\n\t\t\tmargin-top:0px;\n\t\t\t//border-bottom: 1px solid @color-line;\n\t\t\tmargin-bottom:0px;\n\t\t}\n\t\th4 a {\n\t\t\tcolor:@color-dark; //@color-theme;\n\t\t\ttext-decoration: none;\n\t\t}\n\t\th4 a:hover {\n\t\t\ttext-decoration: underline;\n\t\t}\n\t\t\n\t\tp {\n\t\t\tfont-size: 13px;\n\t\t\tline-height: 19px;\n\t\t}\n\t\t\n\t}\n\n}\n.vco-slide.vco-full-image-background, .vco-slide.vco-full-color-background {\n\t.vco-media {\n\t\t.vco-media-wikipedia {\n\t\t\tpadding:20px;\n\t\t\t.background-color-opacity(0,0,0, 60);\n\t\t\t.border-radius(7px);\n\t\t\th4 a {\n\t\t\t\t.slide-text-shadow();\n\t\t\t}\n\t\t}\n\t}\n}\n// Mobile, iPhone and skinny\n.vco-mobile.vco-skinny {\n\t.vco-media {\n\t\t.vco-media-wikipedia {\n\t\t\tmargin-left: 10px;\n\t\t\tmargin-right: 10px;\n\t\t}\n\t\t\n\t}\n}","/* required styles */\n\n.leaflet-map-pane,\n.leaflet-tile,\n.leaflet-marker-icon,\n.leaflet-marker-shadow,\n.leaflet-tile-pane,\n.leaflet-tile-container,\n.leaflet-overlay-pane,\n.leaflet-shadow-pane,\n.leaflet-marker-pane,\n.leaflet-popup-pane,\n.leaflet-overlay-pane svg,\n.leaflet-zoom-box,\n.leaflet-image-layer,\n.leaflet-layer {\n\tposition: absolute;\n\tleft: 0;\n\ttop: 0;\n\t}\n.leaflet-container {\n\toverflow: hidden;\n\t-ms-touch-action: none;\n\t}\n.leaflet-tile,\n.leaflet-marker-icon,\n.leaflet-marker-shadow {\n\t-webkit-user-select: none;\n\t -moz-user-select: none;\n\t user-select: none;\n\t-webkit-user-drag: none;\n\t}\n.leaflet-marker-icon,\n.leaflet-marker-shadow {\n\tdisplay: block;\n\t}\n/* map is broken in FF if you have max-width: 100% on tiles */\n.leaflet-container img {\n\tmax-width: none !important;\n\t}\n/* stupid Android 2 doesn't understand \"max-width: none\" properly */\n.leaflet-container img.leaflet-image-layer {\n\tmax-width: 15000px !important;\n\t}\n.leaflet-tile {\n\tfilter: inherit;\n\tvisibility: hidden;\n\t}\n.leaflet-tile-loaded {\n\tvisibility: inherit;\n\t}\n.leaflet-zoom-box {\n\twidth: 0;\n\theight: 0;\n\t}\n/* workaround for https://bugzilla.mozilla.org/show_bug.cgi?id=888319 */\n.leaflet-overlay-pane svg {\n\t-moz-user-select: none;\n\t}\n\n.leaflet-tile-pane { z-index: 2; }\n.leaflet-objects-pane { z-index: 3; }\n.leaflet-overlay-pane { z-index: 4; }\n.leaflet-shadow-pane { z-index: 5; }\n.leaflet-marker-pane { z-index: 6; }\n.leaflet-popup-pane { z-index: 7; }\n\n.leaflet-vml-shape {\n\twidth: 1px;\n\theight: 1px;\n\t}\n.lvml {\n\tbehavior: url(#default#VML);\n\tdisplay: inline-block;\n\tposition: absolute;\n\t}\n\n\n/* control positioning */\n\n.leaflet-control {\n\tposition: relative;\n\tz-index: 7;\n\tpointer-events: auto;\n\t}\n.leaflet-top,\n.leaflet-bottom {\n\tposition: absolute;\n\tz-index: 1000;\n\tpointer-events: none;\n\t}\n.leaflet-top {\n\ttop: 0;\n\t}\n.leaflet-right {\n\tright: 0;\n\t}\n.leaflet-bottom {\n\tbottom: 0;\n\t}\n.leaflet-left {\n\tleft: 0;\n\t}\n.leaflet-control {\n\tfloat: left;\n\tclear: both;\n\t}\n.leaflet-right .leaflet-control {\n\tfloat: right;\n\t}\n.leaflet-top .leaflet-control {\n\tmargin-top: 10px;\n\t}\n.leaflet-bottom .leaflet-control {\n\tmargin-bottom: 10px;\n\t}\n.leaflet-left .leaflet-control {\n\tmargin-left: 10px;\n\t}\n.leaflet-right .leaflet-control {\n\tmargin-right: 10px;\n\t}\n\n\n/* zoom and fade animations */\n\n.leaflet-fade-anim .leaflet-tile,\n.leaflet-fade-anim .leaflet-popup {\n\topacity: 0;\n\t-webkit-transition: opacity 0.2s linear;\n\t -moz-transition: opacity 0.2s linear;\n\t -o-transition: opacity 0.2s linear;\n\t transition: opacity 0.2s linear;\n\t}\n.leaflet-fade-anim .leaflet-tile-loaded,\n.leaflet-fade-anim .leaflet-map-pane .leaflet-popup {\n\topacity: 1;\n\t}\n\n.leaflet-zoom-anim .leaflet-zoom-animated {\n\t-webkit-transition: -webkit-transform 0.25s cubic-bezier(0,0,0.25,1);\n\t -moz-transition: -moz-transform 0.25s cubic-bezier(0,0,0.25,1);\n\t -o-transition: -o-transform 0.25s cubic-bezier(0,0,0.25,1);\n\t transition: transform 0.25s cubic-bezier(0,0,0.25,1);\n\t}\n.leaflet-zoom-anim .leaflet-tile,\n.leaflet-pan-anim .leaflet-tile,\n.leaflet-touching .leaflet-zoom-animated {\n\t-webkit-transition: none;\n\t -moz-transition: none;\n\t -o-transition: none;\n\t transition: none;\n\t}\n\n.leaflet-zoom-anim .leaflet-zoom-hide {\n\tvisibility: hidden;\n\t}\n\n\n/* cursors */\n\n.leaflet-clickable {\n\tcursor: pointer;\n\t}\n.leaflet-container {\n\tcursor: -webkit-grab;\n\tcursor: -moz-grab;\n\t}\n.leaflet-popup-pane,\n.leaflet-control {\n\tcursor: auto;\n\t}\n.leaflet-dragging .leaflet-container,\n.leaflet-dragging .leaflet-clickable {\n\tcursor: move;\n\tcursor: -webkit-grabbing;\n\tcursor: -moz-grabbing;\n\t}\n\n\n/* visual tweaks */\n\n.leaflet-container {\n\tbackground: #ddd;\n\toutline: 0;\n\t}\n.leaflet-container a {\n\tcolor: #0078A8;\n\t}\n.leaflet-container a.leaflet-active {\n\toutline: 2px solid orange;\n\t}\n.leaflet-zoom-box {\n\tborder: 2px dotted #38f;\n\tbackground: rgba(255,255,255,0.5);\n\t}\n\n\n/* general typography */\n.leaflet-container {\n\tfont: 12px/1.5 \"Helvetica Neue\", Arial, Helvetica, sans-serif;\n\t}\n\n\n/* general toolbar styles */\n\n.leaflet-bar {\n\tbox-shadow: 0 1px 5px rgba(0,0,0,0.65);\n\tborder-radius: 4px;\n\t}\n.leaflet-bar a,\n.leaflet-bar a:hover {\n\tbackground-color: #fff;\n\tborder-bottom: 1px solid #ccc;\n\twidth: 26px;\n\theight: 26px;\n\tline-height: 26px;\n\tdisplay: block;\n\ttext-align: center;\n\ttext-decoration: none;\n\tcolor: black;\n\t}\n.leaflet-bar a,\n.leaflet-control-layers-toggle {\n\tbackground-position: 50% 50%;\n\tbackground-repeat: no-repeat;\n\tdisplay: block;\n\t}\n.leaflet-bar a:hover {\n\tbackground-color: #f4f4f4;\n\t}\n.leaflet-bar a:first-child {\n\tborder-top-left-radius: 4px;\n\tborder-top-right-radius: 4px;\n\t}\n.leaflet-bar a:last-child {\n\tborder-bottom-left-radius: 4px;\n\tborder-bottom-right-radius: 4px;\n\tborder-bottom: none;\n\t}\n.leaflet-bar a.leaflet-disabled {\n\tcursor: default;\n\tbackground-color: #f4f4f4;\n\tcolor: #bbb;\n\t}\n\n.leaflet-touch .leaflet-bar a {\n\twidth: 30px;\n\theight: 30px;\n\tline-height: 30px;\n\t}\n\n\n/* zoom control */\n\n.leaflet-control-zoom-in,\n.leaflet-control-zoom-out {\n\tfont: bold 18px 'Lucida Console', Monaco, monospace;\n\ttext-indent: 1px;\n\t}\n.leaflet-control-zoom-out {\n\tfont-size: 20px;\n\t}\n\n.leaflet-touch .leaflet-control-zoom-in {\n\tfont-size: 22px;\n\t}\n.leaflet-touch .leaflet-control-zoom-out {\n\tfont-size: 24px;\n\t}\n\n\n/* layers control */\n\n.leaflet-control-layers {\n\tbox-shadow: 0 1px 5px rgba(0,0,0,0.4);\n\tbackground: #fff;\n\tborder-radius: 5px;\n\t}\n.leaflet-control-layers-toggle {\n\tbackground-image: url(images/layers.png);\n\twidth: 36px;\n\theight: 36px;\n\t}\n.leaflet-retina .leaflet-control-layers-toggle {\n\tbackground-image: url(images/layers-2x.png);\n\tbackground-size: 26px 26px;\n\t}\n.leaflet-touch .leaflet-control-layers-toggle {\n\twidth: 44px;\n\theight: 44px;\n\t}\n.leaflet-control-layers .leaflet-control-layers-list,\n.leaflet-control-layers-expanded .leaflet-control-layers-toggle {\n\tdisplay: none;\n\t}\n.leaflet-control-layers-expanded .leaflet-control-layers-list {\n\tdisplay: block;\n\tposition: relative;\n\t}\n.leaflet-control-layers-expanded {\n\tpadding: 6px 10px 6px 6px;\n\tcolor: #333;\n\tbackground: #fff;\n\t}\n.leaflet-control-layers-selector {\n\tmargin-top: 2px;\n\tposition: relative;\n\ttop: 1px;\n\t}\n.leaflet-control-layers label {\n\tdisplay: block;\n\t}\n.leaflet-control-layers-separator {\n\theight: 0;\n\tborder-top: 1px solid #ddd;\n\tmargin: 5px -10px 5px -6px;\n\t}\n\n\n/* attribution and scale controls */\n\n.leaflet-container .leaflet-control-attribution {\n\tbackground: #fff;\n\tbackground: rgba(255, 255, 255, 0.7);\n\tmargin: 0;\n\t}\n.leaflet-control-attribution,\n.leaflet-control-scale-line {\n\tpadding: 0 5px;\n\tcolor: #333;\n\t}\n.leaflet-control-attribution a {\n\ttext-decoration: none;\n\t}\n.leaflet-control-attribution a:hover {\n\ttext-decoration: underline;\n\t}\n.leaflet-container .leaflet-control-attribution,\n.leaflet-container .leaflet-control-scale {\n\tfont-size: 11px;\n\t}\n.leaflet-left .leaflet-control-scale {\n\tmargin-left: 5px;\n\t}\n.leaflet-bottom .leaflet-control-scale {\n\tmargin-bottom: 5px;\n\t}\n.leaflet-control-scale-line {\n\tborder: 2px solid #777;\n\tborder-top: none;\n\tline-height: 1.1;\n\tpadding: 2px 5px 1px;\n\tfont-size: 11px;\n\twhite-space: nowrap;\n\toverflow: hidden;\n\t-moz-box-sizing: content-box;\n\t box-sizing: content-box;\n\n\tbackground: #fff;\n\tbackground: rgba(255, 255, 255, 0.5);\n\t}\n.leaflet-control-scale-line:not(:first-child) {\n\tborder-top: 2px solid #777;\n\tborder-bottom: none;\n\tmargin-top: -2px;\n\t}\n.leaflet-control-scale-line:not(:first-child):not(:last-child) {\n\tborder-bottom: 2px solid #777;\n\t}\n\n.leaflet-touch .leaflet-control-attribution,\n.leaflet-touch .leaflet-control-layers,\n.leaflet-touch .leaflet-bar {\n\tbox-shadow: none;\n\t}\n.leaflet-touch .leaflet-control-layers,\n.leaflet-touch .leaflet-bar {\n\tborder: 2px solid rgba(0,0,0,0.2);\n\tbackground-clip: padding-box;\n\t}\n\n\n/* popup */\n\n.leaflet-popup {\n\tposition: absolute;\n\ttext-align: center;\n\t}\n.leaflet-popup-content-wrapper {\n\tpadding: 1px;\n\ttext-align: left;\n\tborder-radius: 12px;\n\t}\n.leaflet-popup-content {\n\tmargin: 13px 19px;\n\tline-height: 1.4;\n\t}\n.leaflet-popup-content p {\n\tmargin: 18px 0;\n\t}\n.leaflet-popup-tip-container {\n\tmargin: 0 auto;\n\twidth: 40px;\n\theight: 20px;\n\tposition: relative;\n\toverflow: hidden;\n\t}\n.leaflet-popup-tip {\n\twidth: 17px;\n\theight: 17px;\n\tpadding: 1px;\n\n\tmargin: -10px auto 0;\n\n\t-webkit-transform: rotate(45deg);\n\t -moz-transform: rotate(45deg);\n\t -ms-transform: rotate(45deg);\n\t -o-transform: rotate(45deg);\n\t transform: rotate(45deg);\n\t}\n.leaflet-popup-content-wrapper,\n.leaflet-popup-tip {\n\tbackground: white;\n\n\tbox-shadow: 0 3px 14px rgba(0,0,0,0.4);\n\t}\n.leaflet-container a.leaflet-popup-close-button {\n\tposition: absolute;\n\ttop: 0;\n\tright: 0;\n\tpadding: 4px 4px 0 0;\n\ttext-align: center;\n\twidth: 18px;\n\theight: 14px;\n\tfont: 16px/14px Tahoma, Verdana, sans-serif;\n\tcolor: #c3c3c3;\n\ttext-decoration: none;\n\tfont-weight: bold;\n\tbackground: transparent;\n\t}\n.leaflet-container a.leaflet-popup-close-button:hover {\n\tcolor: #999;\n\t}\n.leaflet-popup-scrolled {\n\toverflow: auto;\n\tborder-bottom: 1px solid #ddd;\n\tborder-top: 1px solid #ddd;\n\t}\n\n.leaflet-oldie .leaflet-popup-content-wrapper {\n\tzoom: 1;\n\t}\n.leaflet-oldie .leaflet-popup-tip {\n\twidth: 24px;\n\tmargin: 0 auto;\n\n\t-ms-filter: \"progid:DXImageTransform.Microsoft.Matrix(M11=0.70710678, M12=0.70710678, M21=-0.70710678, M22=0.70710678)\";\n\tfilter: progid:DXImageTransform.Microsoft.Matrix(M11=0.70710678, M12=0.70710678, M21=-0.70710678, M22=0.70710678);\n\t}\n.leaflet-oldie .leaflet-popup-tip-container {\n\tmargin-top: -1px;\n\t}\n\n.leaflet-oldie .leaflet-control-zoom,\n.leaflet-oldie .leaflet-control-layers,\n.leaflet-oldie .leaflet-popup-content-wrapper,\n.leaflet-oldie .leaflet-popup-tip {\n\tborder: 1px solid #999;\n\t}\n\n\n/* div icon */\n\n.leaflet-div-icon {\n\tbackground: #fff;\n\tborder: 1px solid #666;\n\t}\n",".leaflet-vml-shape {\n\twidth: 1px;\n\theight: 1px;\n\t}\n.lvml {\n\tbehavior: url(#default#VML);\n\tdisplay: inline-block;\n\tposition: absolute;\n\t}\n\n.leaflet-control {\n\tdisplay: inline;\n\t}\n\n.leaflet-popup-tip {\n\twidth: 21px;\n\t_width: 27px;\n\tmargin: 0 auto;\n\t_margin-top: -3px;\n\n\tfilter: progid:DXImageTransform.Microsoft.Matrix(M11=0.70710678, M12=0.70710678, M21=-0.70710678, M22=0.70710678);\n\t-ms-filter: \"progid:DXImageTransform.Microsoft.Matrix(M11=0.70710678, M12=0.70710678, M21=-0.70710678, M22=0.70710678)\";\n\t}\n.leaflet-popup-tip-container {\n\tmargin-top: -1px;\n\t}\n.leaflet-popup-content-wrapper, .leaflet-popup-tip {\n\tborder: 1px solid #999;\n\t}\n.leaflet-popup-content-wrapper {\n\tzoom: 1;\n\t}\n\n.leaflet-control-zoom,\n.leaflet-control-layers {\n\tborder: 3px solid #999;\n\t}\n.leaflet-control-layers-toggle {\n\t}\n.leaflet-control-attribution,\n.leaflet-control-layers,\n.leaflet-control-scale-line {\n\tbackground: white;\n\t}\n.leaflet-zoom-box {\n\tfilter: alpha(opacity=50);\n\t}\n.leaflet-control-attribution {\n\tborder-top: 1px solid #bbb;\n\tborder-left: 1px solid #bbb;\n\t}\n","/* Requires Variables.less\n================================================== */\n.vco-map {\n\t/*\n\t.leaflet-zoom-anim .leaflet-zoom-animated {\n\t\t-webkit-transition: -webkit-transform 0.8s cubic-bezier(0.25,0.1,0.25,0.75);\n\t\t -moz-transition: -moz-transform 0.8s cubic-bezier(0.25,0.1,0.25,0.75);\n\t\t -o-transition: -o-transform 0.8s cubic-bezier(0.25,0.1,0.25,0.75);\n\t\t transition: transform 0.8s cubic-bezier(0.25,0.1,0.25,0.75);\n\t}\n\t*/\n\t/*\n\t.leaflet-zoom-anim .leaflet-zoom-animated {\n\t\t-webkit-transition: -webkit-transform 1s cubic-bezier(1, 0, 0, 1);\n\t\t -moz-transition: -moz-transform 1s cubic-bezier(1, 0, 0, 1);\n\t\t -o-transition: -o-transform 1s cubic-bezier(1, 0, 0, 1);\n\t\t transition: transform 1s cubic-bezier(1, 0, 0, 1); \n\t}\n\t*/\n\t\n\t.leaflet-container {\n\t\t.leaflet-control-attribution {\n\t\t\tcolor:#999;\n\t\t\tmargin-bottom:3px !important;\n\t\t\ta {\n\t\t\t\tcolor: #666;\n\t\t\t}\n\t\t\t.vco-knightlab-brand, a.vco-knightlab-brand {\n\t\t\t\tmargin-left:5px;\n\t\t\t\t//color:@color-theme;\n\t\t\t\ttext-shadow: 0px 0px 1px #FFF, 0px 0px 1px #FFF, 0px 0px 5px #FFF;\n\t\t\t\tfont-size: 14px;\n\t\t\t\tfont-weight:bold;\n\t\t\t\tspan {\n\t\t\t\t\tcolor:@color-theme;\n\t\t\t\t\tdisplay:inline-block;\n\t\t\t\t\ttransform:rotate(45deg);\n\t\t\t\t\t-ms-transform:rotate(45deg); /* IE 9 */\n\t\t\t\t\t-webkit-transform:rotate(45deg); /* Opera, Chrome, and Safari */\n\t\t\t\t}\n\t\t\t\t&:hover {\n\t\t\t\t\ttext-decoration:none;\n\t\t\t\t\tcolor:lighten(@color-theme, 15);\n\t\t\t\t\t//text-shadow: 0px 0px 0px #000;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\timg.leaflet-image-layer {\n\t\t max-width: none !important;\n\t\t}\n\n\t\t\n\t}\n\t.leaflet-overlay-pane {\n\t\tz-index:auto;\n\t\t.leaflet-image-layer {\n\t\t\tz-index:-1;\n\t\t}\n\t\tsvg {\n\t\t\tz-index:4;\n\t\t}\n\t}\n\t.leaflet-fade-anim .leaflet-tile,\n\t.leaflet-fade-anim .leaflet-popup {\n\t\topacity: 0;\n\t\t-webkit-transition: opacity 0.5s linear;\n\t\t -moz-transition: opacity 0.5s linear;\n\t\t -o-transition: opacity 0.5s linear;\n\t\t transition: opacity 0.5s linear;\n\t}\n\t.leaflet-fade-anim .leaflet-tile-loaded,\n\t.leaflet-fade-anim .leaflet-map-pane .leaflet-popup {\n\t\topacity: 1;\n\t}\n\t.leaflet-zoom-anim .leaflet-zoom-animated {\n\t\t-webkit-transition: -webkit-transform 1s cubic-bezier(0.75, 0.1, 0.2, 1);\n\t\t -moz-transition: -moz-transform 1s cubic-bezier(0.75, 0.1, 0.2, 1);\n\t\t -o-transition: -o-transform 1s cubic-bezier(0.75, 0.1, 0.2, 1);\n\t\t transition: transform 1s cubic-bezier(0.75, 0.1, 0.2, 1); \n\t\t-webkit-transform: translateZ(0);\n\t\t-webkit-perspective: 1000;\n\t\t-webkit-backface-visibility: hidden;\n\t}\n\t&.vco-map-touch-zoom {\n\t\t.leaflet-zoom-anim .leaflet-zoom-animated {\n\t\t\t-webkit-transition: -webkit-transform 0.25s cubic-bezier(0,0,0.25,1);\n\t\t\t -moz-transition: -moz-transform 0.25s cubic-bezier(0,0,0.25,1);\n\t\t\t -o-transition: -o-transform 0.25s cubic-bezier(0,0,0.25,1);\n\t\t\t transition: transform 0.25s cubic-bezier(0,0,0.25,1);\n\t\t\t-webkit-transform: translateZ(0);\n\t\t\t-webkit-perspective: 1000;\n\t\t\t-webkit-backface-visibility: hidden;\n\t\t}\n\t}\n\t/*\n\t.leaflet-zoom-anim .leaflet-zoom-animated {\n\t\t-webkit-transition: none;\n\t\t -moz-transition: none;\n\t\t -o-transition: none;\n\t\t transition: none; \n\t}\n\t*/\n\t.leaflet-bottom {\n\t\tbottom: 0;\n\t}\n\t.leaflet-right {\n\t\tleft: 0;\n\t\tright:auto;\n\t}\n\t.leaflet-container .leaflet-control-attribution{\n\t\tbackground-color:transparent;\n\t\tbox-shadow:none;\n\t\tmargin:0;\n\t\tborder:none;\n\t\tfont-size: 10px;\n\t}\n\t\n\t.leaflet-container {\n\t\t//background-color: @color-foreground;\n\t\tbackground-color: transparent;\n\t\t//background: @color-foreground url(\"cartographer.jpg\") repeat;\n\t\t\n\t}\n\t\n\t.leaflet-popup-content-wrapper {\n\t\tdisplay:none;\n\t\t.border-radius(5px);\n\t\tborder: 1px solid darken(@ui-background-color, 15);\n\t\t.box-shadow();\n\t\t.box-shadow(1px 1px 2px rgba(0,0,0,.30));\n\t\t//background: @color-foreground;\n\t\t//.translucent-background(@color-foreground, 0.75);\n\t\t.leaflet-popup-content {\n\t\t\tmargin:7px;\n\t\t\th4 {\n\t\t\t\tmargin:0;\n\t\t\t\tfont-weight:normal;\n\t\t\t\t//color:@color-background;\n\t\t\t}\n\t\t}\n\t}\n\t.leaflet-popup-tip-container {\n\t\tmargin: 0 auto;\n\t\twidth: 40px;\n\t\theight: 20px;\n\t\tposition: relative;\n\t\toverflow: hidden;\n\t\tdisplay:none;\n\t}\n\t\n\t.leaflet-bar {\n\t\t.box-shadow(none);\n\t}\n\t\n\t\n\n}\n\n/* Landscape\n================================================== */\n.vco-layout-landscape {\n\t.vco-map {\n\t\t.leaflet-bottom {\n\t\t\tbottom: 0;\n\t\t\t//top: auto;\n\t\t}\n\t\t.leaflet-right {\n\t\t\tleft: 0;\n\t\t\tright:auto;\n\t\t}\n\t\t.leaflet-top {\n\t\t\tbottom: 0;\n\t\t\ttop: 28px;\n\t\t}\n\t\t.leaflet-left {\n\t\t\t//left: 0;\n\t\t\t//right:auto;\n\t\t}\n\t}\n\t\n}\n.vco-layout-portrait {\n\t.leaflet-control-container {\n\t\t\n\t}\n\t.leaflet-bottom {\n\t\t//position:relative;\n\t\tbottom: 0;\n\t\ttop: auto;\n\t}\n}\n/* Mobile, iPhone and skinny\n================================================== */\n@media only screen and (max-width: 500px), only screen and (max-device-width: 500px) {\n\t\n}\n.vco-mobile.vco-skinny {\n\t.leaflet-control-zoom, .leaflet-control-layers {\n\t\tdisplay:none;\n\t}\n\t.leaflet-container {\n\t\t.leaflet-control-attribution {\n\t\t\tfont-size:8px;\n\t\t\t.vco-knightlab-brand, a.vco-knightlab-brand {\n\t\t\t\tfont-size:8px;\n\t\t\t}\n\t\t}\n\t}\n}\n.vco-skinny {\n\t\n\t.leaflet-container .leaflet-control-attribution{\n\t\tbackground-color:transparent;\n\t\tbox-shadow:none;\n\t\tmargin:0;\n\t\tborder:none;\n\t\tfont-size:8px;\n\t\t.vco-knightlab-brand, a.vco-knightlab-brand {\n\t\t\tfont-size:12px;\n\t\t}\n\t\t//font-size: 6px !important;\n\t}\n}\n\n",".vco-map {\n\t.leaflet-container {\n\t\t.leaflet-bottom {\n\t\t\t.leaflet-control-minimap {\n\t\t\t\tmargin-left:10px;\n\t\t\t\tmargin-bottom:25px;\n\t\t\t}\n\t\t}\n\t\t.leaflet-top {\n\t\t\t.leaflet-control-minimap {\n\t\t\t\tmargin-left:10px;\n\t\t\t\tmargin-top:10px;\n\t\t\t}\n\t\t}\n\t\t.leaflet-control-minimap {\n\t\t border:solid #FFF 2px;\n\t\t .box-shadow(1px 1px 7px rgba(0,0,0,.30));\n\t\t .border-radius(3px);\n\t\t //background: #f8f8f9;\n\t\t\tbackground-color: darken(@color-background,30);\n\t\t transition: all .2s;\n\t\t\tborder: 2px solid darken(@color-background,30);\n\t\t}\n\n\t\t.leaflet-control-minimap a {\n\t\t background-color: darken(@color-background,30);\n\t\t //background-repeat: no-repeat;\n\t\t z-index: 99999;\n\t\t transition: all .2s;\n\t\t border-radius: 3px 0px 0px 0px;\n\t\t}\n\n\t\t.leaflet-control-minimap a.minimized {\n\t\t -webkit-transform: rotate(180deg);\n\t\t transform: rotate(180deg);\n\t\t // border-radius: 0px;\n\t\t}\n\n\t\t.leaflet-control-minimap-toggle-display {\n\t\t //background-image: url(\"images/toggle.png\");\n\t\t height: 19px;\n\t\t width: 19px;\n\t\t position: absolute;\n\t\t bottom: 0;\n\t\t right: 0; \n\t\t\tborder: 1px solid darken(@color-background,30);\n\t\t\tbackground-color:darken(@color-background,50);\n\t\t}\n\t\t.leaflet-control-minimap-toggle-display:after {\n\t\t\tfont-family: 'vco-icons';\n\t\t\tspeak: none;\n\t\t\tfont-style: normal;\n\t\t\tfont-weight: normal;\n\t\t\tfont-variant: normal;\n\t\t\ttext-transform: none;\n\t\t\tline-height: 1;\n\t\t\n\t\t\t/* Better Font Rendering =========== */\n\t\t\t-webkit-font-smoothing: antialiased;\n\t\t\t-moz-osx-font-smoothing: grayscale;\n\t\t\n\t\t\t//color: darken(@color-background,50);\n\t\t\tcolor:#FFF;\n\t\t\tfont-size: 20px;\n\t\t\tcontent: \"\\e647\";\n\t\t}\n\t}\n}\n\n\n",".vco-map {\n\t.leaflet-container {\n\t\t.mapbox-maplogo {\n\t\t\tposition:relative;\n\t\t\tdisplay:inline-block;\n\t\t\theight: 20px;\n\t\t\twidth: 65px;\n\t\t\t//left:10px;\n\t\t\t//bottom:10px;\n\t\t\tmargin: 0 3px -5px 3px;\n\t\t\ttext-indent: -9999px;\n\t\t\tz-index:99999;\n\t\t\toverflow:hidden;\n\t\t\tbackground-image: url(\"data:image/svg+xml;charset=utf-8,%3C?xml version='1.0' encoding='utf-8'?%3E%3Csvg version='1.1' id='Layer_1' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' x='0px' y='0px' viewBox='0 0 84.49 21' style='enable-background:new 0 0 84.49 21;' xml:space='preserve'%3E%3Cg%3E %3Cpath class='st0' style='opacity:0.9; fill: %23FFFFFF; enable-background: new;' d='M83.25,14.26c0,0.12-0.09,0.21-0.21,0.21h-1.61c-0.13,0-0.24-0.06-0.3-0.17l-1.44-2.39l-1.44,2.39 c-0.06,0.11-0.18,0.17-0.3,0.17h-1.61c-0.04,0-0.08-0.01-0.12-0.03c-0.09-0.06-0.13-0.19-0.06-0.28l0,0l2.43-3.68L76.2,6.84 c-0.02-0.03-0.03-0.07-0.03-0.12c0-0.12,0.09-0.21,0.21-0.21h1.61c0.13,0,0.24,0.06,0.3,0.17l1.41,2.36l1.4-2.35 c0.06-0.11,0.18-0.17,0.3-0.17H83c0.04,0,0.08,0.01,0.12,0.03c0.09,0.06,0.13,0.19,0.06,0.28l0,0l-2.37,3.63l2.43,3.67 C83.24,14.18,83.25,14.22,83.25,14.26z'/%3E %3Cpath class='st0' style='opacity:0.9; fill: %23FFFFFF; enable-background: new;' d='M66.24,9.59c-0.39-1.88-1.96-3.28-3.84-3.28c-1.03,0-2.03,0.42-2.73,1.18V3.51c0-0.13-0.1-0.23-0.23-0.23h-1.4 c-0.13,0-0.23,0.11-0.23,0.23v10.72c0,0.13,0.1,0.23,0.23,0.23h1.4c0.13,0,0.23-0.11,0.23-0.23V13.5c0.71,0.75,1.7,1.18,2.73,1.18 c1.88,0,3.45-1.41,3.84-3.29C66.37,10.79,66.37,10.18,66.24,9.59L66.24,9.59z M62.08,13c-1.32,0-2.39-1.11-2.41-2.48v-0.06 c0.02-1.38,1.09-2.48,2.41-2.48s2.42,1.12,2.42,2.51S63.41,13,62.08,13z'/%3E %3Cpath class='st0' style='opacity:0.9; fill: %23FFFFFF; enable-background: new;' d='M71.67,6.32c-1.98-0.01-3.72,1.35-4.16,3.29c-0.13,0.59-0.13,1.19,0,1.77c0.44,1.94,2.17,3.32,4.17,3.3 c2.35,0,4.26-1.87,4.26-4.19S74.04,6.32,71.67,6.32z M71.65,13.01c-1.33,0-2.42-1.12-2.42-2.51s1.08-2.52,2.42-2.52 c1.33,0,2.42,1.12,2.42,2.51S72.99,13,71.65,13.01L71.65,13.01z'/%3E %3Cpath class='st1' style='opacity:0.35; enable-background:new;' d='M62.08,7.98c-1.32,0-2.39,1.11-2.41,2.48v0.06C59.68,11.9,60.75,13,62.08,13s2.42-1.12,2.42-2.51 S63.41,7.98,62.08,7.98z M62.08,11.76c-0.63,0-1.14-0.56-1.17-1.25v-0.04c0.01-0.69,0.54-1.25,1.17-1.25 c0.63,0,1.17,0.57,1.17,1.27C63.24,11.2,62.73,11.76,62.08,11.76z'/%3E %3Cpath class='st1' style='opacity:0.35; enable-background:new;' d='M71.65,7.98c-1.33,0-2.42,1.12-2.42,2.51S70.32,13,71.65,13s2.42-1.12,2.42-2.51S72.99,7.98,71.65,7.98z M71.65,11.76c-0.64,0-1.17-0.57-1.17-1.27c0-0.7,0.53-1.26,1.17-1.26s1.17,0.57,1.17,1.27C72.82,11.21,72.29,11.76,71.65,11.76z'/%3E %3Cpath class='st0' style='opacity:0.9; fill: %23FFFFFF; enable-background: new;' d='M45.74,6.53h-1.4c-0.13,0-0.23,0.11-0.23,0.23v0.73c-0.71-0.75-1.7-1.18-2.73-1.18 c-2.17,0-3.94,1.87-3.94,4.19s1.77,4.19,3.94,4.19c1.04,0,2.03-0.43,2.73-1.19v0.73c0,0.13,0.1,0.23,0.23,0.23h1.4 c0.13,0,0.23-0.11,0.23-0.23V6.74c0-0.12-0.09-0.22-0.22-0.22C45.75,6.53,45.75,6.53,45.74,6.53z M44.12,10.53 C44.11,11.9,43.03,13,41.71,13s-2.42-1.12-2.42-2.51s1.08-2.52,2.4-2.52c1.33,0,2.39,1.11,2.41,2.48L44.12,10.53z'/%3E %3Cpath class='st1' style='opacity:0.35; enable-background:new;' d='M41.71,7.98c-1.33,0-2.42,1.12-2.42,2.51S40.37,13,41.71,13s2.39-1.11,2.41-2.48v-0.06 C44.1,9.09,43.03,7.98,41.71,7.98z M40.55,10.49c0-0.7,0.52-1.27,1.17-1.27c0.64,0,1.14,0.56,1.17,1.25v0.04 c-0.01,0.68-0.53,1.24-1.17,1.24C41.08,11.75,40.55,11.19,40.55,10.49z'/%3E %3Cpath class='st0' style='opacity:0.9; fill: %23FFFFFF; enable-background: new;' d='M52.41,6.32c-1.03,0-2.03,0.42-2.73,1.18V6.75c0-0.13-0.1-0.23-0.23-0.23h-1.4c-0.13,0-0.23,0.11-0.23,0.23 v10.72c0,0.13,0.1,0.23,0.23,0.23h1.4c0.13,0,0.23-0.1,0.23-0.23V13.5c0.71,0.75,1.7,1.18,2.74,1.18c2.17,0,3.94-1.87,3.94-4.19 S54.58,6.32,52.41,6.32z M52.08,13.01c-1.32,0-2.39-1.11-2.42-2.48v-0.07c0.02-1.38,1.09-2.49,2.4-2.49c1.32,0,2.41,1.12,2.41,2.51 S53.4,13,52.08,13.01L52.08,13.01z'/%3E %3Cpath class='st1' style='opacity:0.35; enable-background:new;' d='M52.08,7.98c-1.32,0-2.39,1.11-2.42,2.48v0.06c0.03,1.38,1.1,2.48,2.42,2.48s2.41-1.12,2.41-2.51 S53.4,7.98,52.08,7.98z M52.08,11.76c-0.63,0-1.14-0.56-1.17-1.25v-0.04c0.01-0.69,0.54-1.25,1.17-1.25c0.63,0,1.17,0.58,1.17,1.27 S52.72,11.76,52.08,11.76z'/%3E %3Cpath class='st0' style='opacity:0.9; fill: %23FFFFFF; enable-background: new;' d='M36.08,14.24c0,0.13-0.1,0.23-0.23,0.23h-1.41c-0.13,0-0.23-0.11-0.23-0.23V9.68c0-0.98-0.74-1.71-1.62-1.71 c-0.8,0-1.46,0.7-1.59,1.62l0.01,4.66c0,0.13-0.11,0.23-0.23,0.23h-1.41c-0.13,0-0.23-0.11-0.23-0.23V9.68 c0-0.98-0.74-1.71-1.62-1.71c-0.85,0-1.54,0.79-1.6,1.8v4.48c0,0.13-0.1,0.23-0.23,0.23h-1.4c-0.13,0-0.23-0.11-0.23-0.23V6.74 c0.01-0.13,0.1-0.22,0.23-0.22h1.4c0.13,0,0.22,0.11,0.23,0.22V7.4c0.5-0.68,1.3-1.09,2.16-1.1h0.03c1.09,0,2.09,0.6,2.6,1.55 c0.45-0.95,1.4-1.55,2.44-1.56c1.62,0,2.93,1.25,2.9,2.78L36.08,14.24z'/%3E %3Cpath class='st1' style='opacity:0.35; enable-background:new;' d='M84.34,13.59l-0.07-0.13l-1.96-2.99l1.94-2.95c0.44-0.67,0.26-1.56-0.41-2.02c-0.02,0-0.03,0-0.04-0.01 c-0.23-0.15-0.5-0.22-0.78-0.22h-1.61c-0.56,0-1.08,0.29-1.37,0.78L79.72,6.6l-0.34-0.56C79.09,5.56,78.57,5.27,78,5.27h-1.6 c-0.6,0-1.13,0.37-1.35,0.92c-2.19-1.66-5.28-1.47-7.26,0.45c-0.35,0.34-0.65,0.72-0.89,1.14c-0.9-1.62-2.58-2.72-4.5-2.72 c-0.5,0-1.01,0.07-1.48,0.23V3.51c0-0.82-0.66-1.48-1.47-1.48h-1.4c-0.81,0-1.47,0.66-1.47,1.47v3.75 c-0.95-1.36-2.5-2.18-4.17-2.19c-0.74,0-1.46,0.16-2.12,0.47c-0.24-0.17-0.54-0.26-0.84-0.26h-1.4c-0.45,0-0.87,0.21-1.15,0.56 c-0.02-0.03-0.04-0.05-0.07-0.08c-0.28-0.3-0.68-0.47-1.09-0.47h-1.39c-0.3,0-0.6,0.09-0.84,0.26c-0.67-0.3-1.39-0.46-2.12-0.46 c-1.83,0-3.43,1-4.37,2.5c-0.2-0.46-0.48-0.89-0.83-1.25c-0.8-0.81-1.89-1.25-3.02-1.25h-0.01c-0.89,0.01-1.75,0.33-2.46,0.88 c-0.74-0.57-1.64-0.88-2.57-0.88H28.1c-0.29,0-0.58,0.03-0.86,0.11c-0.28,0.06-0.56,0.16-0.82,0.28c-0.21-0.12-0.45-0.18-0.7-0.18 h-1.4c-0.82,0-1.47,0.66-1.47,1.47v7.5c0,0.82,0.66,1.47,1.47,1.47h1.4c0.82,0,1.48-0.66,1.48-1.48l0,0V9.79 c0.03-0.36,0.23-0.59,0.36-0.59c0.18,0,0.38,0.18,0.38,0.47v4.57c0,0.82,0.66,1.47,1.47,1.47h1.41c0.82,0,1.47-0.66,1.47-1.47 l-0.01-4.57c0.06-0.32,0.25-0.47,0.35-0.47c0.18,0,0.38,0.18,0.38,0.47v4.57c0,0.82,0.66,1.47,1.47,1.47h1.41 c0.82,0,1.47-0.66,1.47-1.47v-0.38c0.96,1.29,2.46,2.06,4.06,2.06c0.74,0,1.46-0.16,2.12-0.47c0.24,0.17,0.54,0.26,0.84,0.26h1.39 c0.3,0,0.6-0.09,0.84-0.26v2.01c0,0.82,0.66,1.47,1.47,1.47h1.4c0.82,0,1.47-0.66,1.47-1.47v-1.77c0.48,0.15,0.99,0.23,1.49,0.22 c1.7,0,3.22-0.87,4.17-2.2v0.52c0,0.82,0.66,1.47,1.47,1.47h1.4c0.3,0,0.6-0.09,0.84-0.26c0.66,0.31,1.39,0.47,2.12,0.47 c1.92,0,3.6-1.1,4.49-2.73c1.54,2.65,4.95,3.53,7.58,1.98c0.18-0.11,0.36-0.22,0.53-0.36c0.22,0.55,0.76,0.91,1.35,0.9H78 c0.56,0,1.08-0.29,1.37-0.78l0.37-0.61l0.37,0.61c0.29,0.48,0.81,0.78,1.38,0.78h1.6c0.81,0,1.46-0.66,1.45-1.46 C84.49,14.02,84.44,13.8,84.34,13.59L84.34,13.59z M35.86,14.47h-1.41c-0.13,0-0.23-0.11-0.23-0.23V9.68 c0-0.98-0.74-1.71-1.62-1.71c-0.8,0-1.46,0.7-1.59,1.62l0.01,4.66c0,0.13-0.1,0.23-0.23,0.23h-1.41c-0.13,0-0.23-0.11-0.23-0.23 V9.68c0-0.98-0.74-1.71-1.62-1.71c-0.85,0-1.54,0.79-1.6,1.8v4.48c0,0.13-0.1,0.23-0.23,0.23h-1.4c-0.13,0-0.23-0.11-0.23-0.23 V6.74c0.01-0.13,0.11-0.22,0.23-0.22h1.4c0.13,0,0.22,0.11,0.23,0.22V7.4c0.5-0.68,1.3-1.09,2.16-1.1h0.03 c1.09,0,2.09,0.6,2.6,1.55c0.45-0.95,1.4-1.55,2.44-1.56c1.62,0,2.93,1.25,2.9,2.78l0.01,5.16C36.09,14.36,35.98,14.46,35.86,14.47 L35.86,14.47z M45.97,14.24c0,0.13-0.1,0.23-0.23,0.23h-1.4c-0.13,0-0.23-0.11-0.23-0.23V13.5c-0.7,0.76-1.69,1.18-2.72,1.18 c-2.17,0-3.94-1.87-3.94-4.19s1.77-4.19,3.94-4.19c1.03,0,2.02,0.43,2.73,1.18V6.74c0-0.13,0.1-0.23,0.23-0.23h1.4 c0.12-0.01,0.22,0.08,0.23,0.21c0,0.01,0,0.01,0,0.02v7.51h-0.01V14.24z M52.41,14.67c-1.03,0-2.02-0.43-2.73-1.18v3.97 c0,0.13-0.1,0.23-0.23,0.23h-1.4c-0.13,0-0.23-0.1-0.23-0.23V6.75c0-0.13,0.1-0.22,0.23-0.22h1.4c0.13,0,0.23,0.11,0.23,0.23v0.73 c0.71-0.76,1.7-1.18,2.73-1.18c2.17,0,3.94,1.86,3.94,4.18S54.58,14.67,52.41,14.67z M66.24,11.39c-0.39,1.87-1.96,3.29-3.84,3.29 c-1.03,0-2.02-0.43-2.73-1.18v0.73c0,0.13-0.1,0.23-0.23,0.23h-1.4c-0.13,0-0.23-0.11-0.23-0.23V3.51c0-0.13,0.1-0.23,0.23-0.23 h1.4c0.13,0,0.23,0.11,0.23,0.23v3.97c0.71-0.75,1.7-1.18,2.73-1.17c1.88,0,3.45,1.4,3.84,3.28C66.37,10.19,66.37,10.8,66.24,11.39 L66.24,11.39L66.24,11.39z M71.67,14.68c-2,0.01-3.73-1.35-4.17-3.3c-0.13-0.59-0.13-1.19,0-1.77c0.44-1.94,2.17-3.31,4.17-3.3 c2.36,0,4.26,1.87,4.26,4.19S74.03,14.68,71.67,14.68L71.67,14.68z M83.04,14.47h-1.61c-0.13,0-0.24-0.06-0.3-0.17l-1.44-2.39 l-1.44,2.39c-0.06,0.11-0.18,0.17-0.3,0.17h-1.61c-0.04,0-0.08-0.01-0.12-0.03c-0.09-0.06-0.13-0.19-0.06-0.28l0,0l2.43-3.68 L76.2,6.84c-0.02-0.03-0.03-0.07-0.03-0.12c0-0.12,0.09-0.21,0.21-0.21h1.61c0.13,0,0.24,0.06,0.3,0.17l1.41,2.36l1.41-2.36 c0.06-0.11,0.18-0.17,0.3-0.17h1.61c0.04,0,0.08,0.01,0.12,0.03c0.09,0.06,0.13,0.19,0.06,0.28l0,0l-2.38,3.64l2.43,3.67 c0.02,0.03,0.03,0.07,0.03,0.12C83.25,14.38,83.16,14.47,83.04,14.47L83.04,14.47L83.04,14.47z'/%3E %3Cpath class='st0' style='opacity:0.9; fill: %23FFFFFF; enable-background: new;' d='M10.5,1.24c-5.11,0-9.25,4.15-9.25,9.25s4.15,9.25,9.25,9.25s9.25-4.15,9.25-9.25 C19.75,5.38,15.61,1.24,10.5,1.24z M14.89,12.77c-1.93,1.93-4.78,2.31-6.7,2.31c-0.7,0-1.41-0.05-2.1-0.16c0,0-1.02-5.64,2.14-8.81 c0.83-0.83,1.95-1.28,3.13-1.28c1.27,0,2.49,0.51,3.39,1.42C16.59,8.09,16.64,11,14.89,12.77z'/%3E %3Cpath class='st1' style='opacity:0.35; enable-background:new;' d='M10.5-0.01C4.7-0.01,0,4.7,0,10.49s4.7,10.5,10.5,10.5S21,16.29,21,10.49C20.99,4.7,16.3-0.01,10.5-0.01z M10.5,19.74c-5.11,0-9.25-4.15-9.25-9.25s4.14-9.26,9.25-9.26s9.25,4.15,9.25,9.25C19.75,15.61,15.61,19.74,10.5,19.74z'/%3E %3Cpath class='st1' style='opacity:0.35; enable-background:new;' d='M14.74,6.25C12.9,4.41,9.98,4.35,8.23,6.1c-3.16,3.17-2.14,8.81-2.14,8.81s5.64,1.02,8.81-2.14 C16.64,11,16.59,8.09,14.74,6.25z M12.47,10.34l-0.91,1.87l-0.9-1.87L8.8,9.43l1.86-0.9l0.9-1.87l0.91,1.87l1.86,0.9L12.47,10.34z'/%3E %3Cpolygon class='st0' style='opacity:0.9; fill: %23FFFFFF; enable-background: new;' points='14.33,9.43 12.47,10.34 11.56,12.21 10.66,10.34 8.8,9.43 10.66,8.53 11.56,6.66 12.47,8.53 '/%3E%3C/g%3E%3C/svg%3E\");\n\t\t\tbackground-repeat:no-repeat;\n\t\t\tbackground-position: 0 0 ;\n\t\t\tbackground-size: 65px 20px;\n\t\t}\n\t}\n}\n\n\n","/* Requires Variables.less\n================================================== */\n@leaflet-offset: 6px;\n@map-icon-size: 44px; //52\n@map-icon-width: 32px; //38\n@map-icon-size: 52px;\n@map-icon-width: 38px;\n.vco-map {\n\t.vco-mapmarker, .vco-mapmarker-active {\n\t\tfont-family: 'vco-icons';\n\t\tspeak: none;\n\t\tfont-style: normal;\n\t\tfont-weight: normal;\n\t\tfont-variant: normal;\n\t\ttext-transform: none;\n\t\tline-height: 1;\n\n\t\t/* Better Font Rendering =========== */\n\t\t-webkit-font-smoothing: antialiased;\n\t\t-moz-osx-font-smoothing: grayscale;\n\t\t\n\t\t\n\t\twidth: @map-icon-width !important;\n\t\theight: @map-icon-size !important;\n\t\t//overflow:hidden;\n\t\ttop:-(@map-icon-size - @leaflet-offset);\n\t\tleft: -((@map-icon-width/2) - @leaflet-offset);\n\t\t\n\t} \n\t// Map Pin\n\t.vco-mapmarker:before, .vco-mapmarker-active:before {\n\t\tcontent: \"\\e600\";\n\t\tfont-size:@map-icon-size;\n\t\ttext-shadow: rgba(0,0,0, 0.66) 0px 2px 5px;\n\t\t\n\t}\n\t\n\t.vco-mapmarker {\n\t\tcolor:#a5a5a5;\n\t}\n\t.vco-mapmarker-active {\n\t\tcolor:@color-theme;\n\t}\n\t\n\t.vco-mapmarker-image-icon, .vco-mapmarker-image-icon-active {\n\t\tborder: 2px solid #a5a5a5;\n\t\tbox-shadow: 2px 2px 2px #000;\n\t\topacity:1;\n\t\t\n\t}\n\t.vco-mapmarker-image-icon {\n\t\t-webkit-filter: grayscale(100%);\n\t\t-moz-filter: grayscale(100%);\n\t\tfilter: grayscale(100%);\n\t}\n\t.vco-mapmarker-image-icon-active {\n\t\topacity:1;\n\t\tborder: 4px solid @color-theme;\n\t\t-webkit-filter: grayscale(0);\n\t\t-moz-filter: grayscale(0);\n\t\tfilter: grayscale(0);\n\t}\n\t\n\t/* Marker Media Icons\n\t================================================== */\n\t.vco-mapmarker-icon:after {\n\t\t\t//font-size:20px;\n\t\t\tfont-size:24px;\n\t\t\tcolor:#FFF; \n\t\t\ttext-align:center;\n\t\t\twidth:@map-icon-width;\n\t\t\theight: 24px;\n\t\t\toverflow:hidden;\n\t\t\t//content:'';\n\t\t\tdisplay:block;\n\t\t\tposition:absolute;\n\t\t\t//top:4px;\n\t\t\ttop:8px;\n\t\t\tleft:0px;\n\t\t\t\n\t\t\t.opacity(75);\n\t}\n\t\n\t.vco-mapmarker-active.vco-mapmarker-icon:after {\n\t\t.opacity(100);\n\t}\n\t.vco-mapmarker-icon.vco-icon-youtube:after {\n\t\t//content: \"\\e63a\";\n\t\t//font-size:22px;\n\t}\n\t.vco-icon-wikipedia:after {\n\t\t//font-size:14px;\n\t\tfont-size:16px;\n\t\t//top:10px;\n\t\ttop:12px;\n\t}\n\t.vco-icon-image:after {\n\t\ttop:6px;\n\t}\n\t.vco-icon-vine:after, .vco-icon-vimeo:after, .vco-icon-twitter:after {\n\t\t//top: 6px;\n\t\ttop: 8px;\n\t}\n\t\n\n\t\n}\n\n\n\n\n/* Mobile, iPhone and skinny\n================================================== */\n@media only screen and (max-width: 500px), only screen and (max-device-width: 500px) {\n\t.vco-map {\n\t\t.vco-mapmarker {\n\t\n\t\t}\n\t}\n}\n\n","/* Requires Variables.less\n================================================== */\n@leaflet-offset: 6px;\n@map-icon-size: 44px; //52\n@map-icon-width: 32px; //38\n@map-icon-size: 52px;\n@map-icon-width: 38px;\n.vco-map {\n\t.vco-mapimage-display:hover {\n\t\t.vco-mapmarker, .vco-mapmarker-active {\n\t\t\tdisplay:block;\n\t\t\n\t\t} \n\t}\n\t.vco-mapimage-display {\n\t\t.vco-mapmarker, .vco-mapmarker-active {\n\t\t\tdisplay:none;\n\t\t\n\t\t} \n\t\t\n\t}\n\n}\n\n.vco-map:hover {\n\t.vco-mapimage-display {\n\t\t\n\t}\n}\n\n\n/* Mobile, iPhone and skinny\n================================================== */\n@media only screen and (max-width: 500px), only screen and (max-device-width: 500px) {\n\t.vco-map {\n\t\t.vco-mapmarker {\n\t\n\t\t}\n\t}\n}\n\n","/* Requires Variables.less\n================================================== */\n.vco-map {\n\theight: 100%;\n\toverflow: hidden;\n\ttop:0px;\n\tbackground-color: @color-foreground;\n\t.vco-map-mask {\n\t\twidth: 100%;\n\t\theight:\t100%;\n\t\toverflow: hidden;\n\t\t.vco-map-display {\n\t\t\twidth: 100%;\n\t\t\theight:\t100%;\n\t\t}\n\t\t\n\t}\n\t\n}\n\n\n\n/* Mobile, iPhone and skinny\n================================================== */\n@media only screen and (max-width: 500px), only screen and (max-device-width: 500px) {\n\t.vco-map {\n\n\t}\n}\n\n",".vco-storymap {\n\n\t\n\th1, h2, h3 {\n\t\t.vco-snapmap-instagram {\n\t\t\n\t\t}\n\n\t}\n\th4, h5, h6 {\n\t\t.vco-snapmap-instagram {\n\t\t\n\t\t}\n\n\t}\n\th2.vco-headline-title {\n\t\t.vco-snapmap-instagram, .vco-snapmap-flickr {\n\t\t\ttext-align:center;\n\t\t\tdisplay:block;\n\t\t\ttext-transform: none !important;\n\t\t\ta {\n\t\t\t\tcolor:lighten(@color-dark, 40%);\n\t\t\t}\n\t\t}\n\n\t}\n\t.vco-media-instagram-likes {\n\t\tdisplay:inline-block;\n\t\tfont-family:@font-main;\n\t\tfont-weight:bold;\n\t\tmargin-top:10px;\n\t\tfont-size:12px;\n\t\tcolor: lighten(@color-dark, 40%);\n\t\t/*\n\t\t&:before {\n\t\t\tcontent:'\\2665';\n\t\t\tmargin-right:3px;\n\t\t\tfont-weight:normal;\n\t\t\tfont-size:14px;\n\t\t}\n\t\t*/\n\t\t&:after {\n\t\t\tcontent:'Likes';\n\t\t\tmargin-left:3px;\n\t\t\tcolor:#999;\n\t\t\tfont-weight:normal;\n\t\t\tmargin-right:10px;\n\t\t}\n\t}\n\t.vco-snapmap-user-description, .vco-snapmap-user-location {\n\t\tfont-family:@font-main;\n\t\t//font-size:12px;\n\t\t//width:50%;\n\t\tdisplay:block;\n\t\t\n\t}\n\t\n\t.vco-snapmap-instagram-text {\n\t\ttext-align:center;\n\t\tdisplay:none;\n\t\ta {\n\t\t\tcolor:#000;\n\t\t}\n\t\t.vco-snapmap-instagram-posts,\n\t\t.vco-snapmap-instagram-followed_by,\n\t\t.vco-snapmap-instagram-follows,\n\t\t.vco-snapmap-instagram-website,\n\t\t.vco-snapmap-instagram-website a {\n\t\t\tdisplay:inline-block;\n\t\t\tfont-family:@font-main;\n\t\t\tfont-weight:bold;\n\t\t\tmargin-top:10px;\n\t\t\tfont-size:12px;\n\t\t\tmargin-left:20px;\n\t\t\t&:after {\n\t\t\t\tmargin-left:3px;\n\t\t\t\tcolor:#999;\n\t\t\t\tfont-weight:normal;\n\t\t\t}\n\t\t}\n\t\t.vco-snapmap-instagram-posts:after {\n\t\t\tcontent:'Posts';\n\t\t}\n\t\t\n\t\t.vco-snapmap-instagram-followed_by:after {\n\t\t\tcontent:'Followers';\n\t\t}\n\t\t\n\t\t.vco-snapmap-instagram-follows:after {\n\t\t\tcontent:'Following';\n\t\t}\n\t\t\n\t\t.vco-snapmap-instagram-website,\n\t\t.vco-snapmap-instagram-website a {\n\t\t\tfont-weight:normal;\n\t\t\tdisplay:block;\n\t\t\tmargin:0;\n\t\t\tcolor:#999;\n\t\t\t&:after {\n\t\t\t\tmargin-left:0;\n\t\t\t\tcolor:#999;\n\t\t\t\tfont-weight:normal;\n\t\t\t}\n\t\t}\n\t\t\n\t\t.vco-snapmap-instagram-bio {\n\t\t}\n\t}\n\t\n\t.vco-snapmap-user-location {\n\t\tfont-weight:bold;\n\t\tfont-size:12px;\n\t\ttext-align:center;\n\t}\n\t.vco-snapmap-flickr-views {\n\t\tdisplay:block;\n\t\tfont-family:@font-main;\n\t\tfont-weight:bold;\n\t\tmargin-top:10px;\n\t\tfont-size:12px;\n\t\t&:before {\n\t\t\t\n\t\t}\n\t\t&:after {\n\t\t\tcontent:'Views';\n\t\t\tmargin-left:3px;\n\t\t\tcolor:#999;\n\t\t\tfont-weight:normal;\n\t\t}\n\t}\n}\n","\n/* simplified from https://jekyllcodex.org/without-plugin/lightbox/ */\n#lightbox {\n width: 100%;\n height: 100%;\n position: fixed;\n top: 0;\n left: 0;\n background: rgba(0,0,0,0.85);\n z-index: 9999999;\n line-height: 0;\n cursor: pointer;\n display: none;\n}\n#lightbox .img {\n position: relative;\n top: 50%;\n left: 50%;\n transform: translate(-50%,-50%);\n max-width: 100%;\n max-height: 100%;\n}\n#lightbox .img img {\n opacity: 0;\n pointer-events: none;\n width: auto;\n}\n@media screen and (min-width: 1200px) {\n #lightbox .img {\n max-width: 1200px;\n }\n}\n@media screen and (min-height: 1200px) {\n #lightbox .img {\n max-height: 1200px;\n }\n}\n#lightbox #close {\n height: 50px;\n width: 50px;\n position: fixed;\n cursor: pointer;\n text-decoration: none;\n z-index: 99;\n right: 0;\n top: 0;\n}\n#lightbox #close:after, #lightbox #close:before {\n position: absolute;\n margin-top: 22px;\n margin-left: 14px;\n content: \"\";\n height: 3px;\n background: white;\n width: 23px;\n transform-origin: 50% 50%;\n transform: rotate(-45deg);\n}\n#lightbox #close:after {\n transform: rotate(45deg);\n}\n#lightbox, #lightbox * {\n user-select: none;\n}\n"],"names":[],"sourceRoot":""}
\ No newline at end of file
+{"version":3,"file":"../css/storymap.css","mappings":"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IxbA;EACC;AJ0bD;AIxbA;EACC;AJ0bD;AIxbA;EACC;AJ0bD;AIxbA;EACC;AJ0bD;AIxbA;EACC;AJ0bD;AIxbA;EACC;AJ0bD;AIxbA;EACC;AJ0bD;AIxbA;EACC;AJ0bD;AIxbA;EACC;AJ0bD;AIxbA;EACC;AJ0bD;AIxbA;EACC;AJ0bD;AIxbA;EACC;AJ0bD;AIxbA;EACC;AJ0bD;AIxbA;EACC;AJ0bD;AIxbA;EACC;AJ0bD;AIxbA;EACC;AJ0bD;AIxbA;EACC;AJ0bD;AIxbA;EACC;AJ0bD;AIxbA;EACC;AJ0bD;AIxbA;EACC;AJ0bD;AIxbA;EACC;AJ0bD;AIxbA;EACC;AJ0bD;AIxbA;EACC;AJ0bD;AIxbA;EACC;AJ0bD;AIxbA;EACC;AJ0bD;AIxbA;EACC;AJ0bD;AIxbA;EACC;AJ0bD;AIxbA;EACC;AJ0bD;AIxbA;EACC;AJ0bD;AIxbA;EACC;AJ0bD;AIxbA;EACC;AJ0bD;AIxbA;EACC;AJ0bD;AIxbA;EACC;AJ0bD;AACA;oDACoD;AK9nBpD;EACC;EFyGA;EACG;EACC;EACC;EACG;AHwhBT;AACA;oDACoD;AMvoBpD;EACC;EAGA;EACA;EAKA;EAEA;EACA;EACA;EACA;ANkoBD;AMjpBA;EAmBE;ANioBF;AACA;oDACoD;AACpD;oDACoD;AACpD;;;;;;;;;;;;;;;;;;;;;;CAsBC;AMhnBD;EACC;IACC;ENknBA;EMhnBD;IACC;ENknBA;AACF;AMhnBA;EACC;IAAM;ENmnBL;EMlnBD;IAAI;ENqnBH;AACF;AMpnBA;EACC;IAAM;ENunBL;EMtnBD;IAAI;ENynBH;AACF;AMxnBA;EACC;IAAM;EN2nBL;EM1nBD;IAAI;EN6nBH;AACF;AACA;oDACoD;AOjtBpD;EACC;EACA;EACA;EAGA;EACA;EACA;EACA;EACA;APitBD;AO3tBA;;EAYE;EACA;EACA;EACA;EACA;EACA;APmtBF;AOhtBC;EACC;EACA;APktBF;AO1sBE;EACC;EACA;AP4sBH;AO1sBE;EACC;EACA;AP4sBH;AOrsBA;EACC;IACC;EPusBA;EOrsBD;IACC;EPusBA;AACF;AOrsBA;EACC;I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DD;AsB79DA;EACC;AtB+9DD;AsB79DA;EACC;AtB+9DD;AsB79DA;EACC;AtB+9DD;AsB79DA;EACC;EACA;AtB+9DD;AsB79DA;EACC;AtB+9DD;AsB79DA;EACC;AtB+9DD;AsB79DA;EACC;AtB+9DD;AsB79DA;EACC;AtB+9DD;AsB79DA;EACC;AtB+9DD;AACA,6BAA6B;AsB19D7B;;EAEC;EACA;EACG;EACE;EACG;AtB49DT;AsB19DA;;EAEC;AtB49DD;AsBz9DA;EACC;EACG;EACE;EACG;AtB29DT;AsBz9DA;;;EAGC;EACG;EACE;EACG;AtB29DT;AsBx9DA;EACC;AtB09DD;AACA,YAAY;AsBr9DZ;EACC;AtBu9DD;AsBr9DA;EACC;EACA;AtBu9DD;AsBr9DA;;EAEC;AtBu9DD;AsBr9DA;;EAEC;EACA;EACA;AtBu9DD;AACA,kBAAkB;AsBl9DlB;EACC;EACA;AtBo9DD;AsBl9DA;EACC;AtBo9DD;AsBl9DA;EACC;AtBo9DD;AsBl9DA;EACC;EACA;AtBo9DD;AACA,uBAAuB;AsBh9DvB;EACC;AtBk9DD;AACA,2BAA2B;AsB78D3B;EACC;EACA;AtB+8DD;AsB78DA;;EAEC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;AtB+8DD;AsB78DA;;EAEC;EACA;EACA;AtB+8DD;AsB78DA;EACC;AtB+8DD;AsB78DA;EACC;EACA;AtB+8DD;AsB78DA;EACC;EACA;EACA;AtB+8DD;AsB78DA;EACC;EACA;EACA;AtB+8DD;AsB58DA;EACC;EACA;EACA;AtB88DD;AACA,iBAAiB;AsBz8DjB;;EAEC;EACA;AtB28DD;AsBz8DA;EACC;AtB28DD;AsBx8DA;EACC;AtB08DD;AsBx8DA;EACC;AtB08DD;AACA,mBAAmB;AsBr8DnB;EACC;EACA;EACA;AtBu8DD;AsBr8DA;EACC;EACA;EACA;AtBu8DD;AsBr8DA;EACC;EACA;AtBu8DD;AsBr8DA;EACC;EACA;AtBu8DD;AsBr8DA;;EAEC;AtBu8DD;AsBr8DA;EACC;EACA;AtBu8DD;AsBr8DA;EACC;EACA;EACA;AtBu8DD;AsBr8DA;EACC;EACA;EACA;AtBu8DD;AsBr8DA;EACC;AtBu8DD;AsBr8DA;EACC;EACA;EACA;AtBu8DD;AACA,mCAAmC;AsBl8DnC;EACC;EACA;EACA;AtBo8DD;AsBl8DA;;EAEC;EACA;AtBo8DD;AsBl8DA;EACC;AtBo8DD;AsBl8DA;EACC;AtBo8DD;AsBl8DA;;EAEC;AtBo8DD;AsBl8DA;EACC;AtBo8DD;AsBl8DA;EACC;AtBo8DD;AsBl8DA;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACK;EAEL;EACA;AtBm8DD;AsBj8DA;EACC;EACA;EACA;AtBm8DD;AsBj8DA;EACC;AtBm8DD;AsBh8DA;;;EAGC;AtBk8DD;AsBh8DA;;EAEC;EACA;AtBk8DD;AACA,UAAU;AsB77DV;EACC;EACA;AtB+7DD;AsB77DA;EACC;EACA;EACA;AtB+7DD;AsB77DA;EACC;EACA;AtB+7DD;AsB77DA;EACC;AtB+7DD;AsB77DA;EACC;EACA;EACA;EACA;EACA;AtB+7DD;AsB77DA;EACC;EACA;EACA;EAEA;EAEA;EACG;EACC;EACC;EACG;AtB67DT;AsB37DA;;EAEC;EAEA;AtB47DD;AsB17DA;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;AtB47DD;AsB17DA;EACC;AtB47DD;AsB17DA;EACC;EACA;EACA;AtB47DD;AsBz7DA;EACC;AtB27DD;AsBz7DA;EACC;EACA;EAEA;EACA;AtB07DD;AsBx7DA;EACC;AtB07DD;AsBv7DA;;;;EAIC;AtBy7DD;AACA,aAAa;AsBp7Db;EACC;EACA;AtBs7DD;AuBl5EA;EACC;EACA;AvBo5ED;AuBl5EA;EACC;EACA;EACA;AvBo5ED;AuBj5EA;EACC;AvBm5ED;AuBh5EA;EACC;GACA;EACA;GACA;EAEA;EACA;AvBi5ED;AuB/4EA;EACC;AvBi5ED;AuB/4EA;;EACC;AvBk5ED;AuBh5EA;EACC;AvBk5ED;AuB/4EA;;EAEC;AvBi5ED;AuB74EA;;;EAGC;AvB+4ED;AuB74EA;EACC;AvB+4ED;A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","sources":["webpack://KLStoryMap/./src/less/VCO.StoryMap.less","webpack://KLStoryMap/./src/less/core/Reset.less","webpack://KLStoryMap/./src/less/Typography.less","webpack://KLStoryMap/./src/less/core/Mixins.less","webpack://KLStoryMap/./src/less/icons/Icons.less","webpack://KLStoryMap/./src/less/core/VCO.less","webpack://KLStoryMap/./src/less/ui/VCO.MenuBar.less","webpack://KLStoryMap/./src/less/ui/VCO.MenuBar.Button.less","webpack://KLStoryMap/./src/less/ui/VCO.Message.less","webpack://KLStoryMap/./src/less/animation/VCO.Animate.less","webpack://KLStoryMap/./src/less/slider/VCO.Slide.less","webpack://KLStoryMap/./src/less/slider/VCO.SlideNav.less","webpack://KLStoryMap/./src/less/slider/VCO.StorySlider.less","webpack://KLStoryMap/./src/less/media/VCO.Media.less","webpack://KLStoryMap/./src/less/media/types/VCO.Media.Text.less","webpack://KLStoryMap/./src/less/media/types/VCO.Media.Image.less","webpack://KLStoryMap/./src/less/media/types/VCO.Media.Twitter.less","webpack://KLStoryMap/./src/less/media/types/VCO.Media.Blockquote.less","webpack://KLStoryMap/./src/less/media/types/VCO.Media.Instagram.less","webpack://KLStoryMap/./src/less/media/types/VCO.Media.Profile.less","webpack://KLStoryMap/./src/less/media/types/VCO.Media.IFrame.less","webpack://KLStoryMap/./src/less/media/types/VCO.Media.Wikipedia.less","webpack://KLStoryMap/./src/less/map/leaflet/VCO.Leaflet.less","webpack://KLStoryMap/./src/less/map/leaflet/VCO.Leaflet.IE.less","webpack://KLStoryMap/./src/less/map/leaflet/VCO.Map.Leaflet.less","webpack://KLStoryMap/./src/less/map/leaflet/VCO.Leaflet.MiniMap.less","webpack://KLStoryMap/./src/less/map/leaflet/VCO.Leaflet.Mapbox.less","webpack://KLStoryMap/./src/less/map/VCO.MapMarker.less","webpack://KLStoryMap/./src/less/map/VCO.ImageMarker.less","webpack://KLStoryMap/./src/less/map/VCO.Map.less","webpack://KLStoryMap/./src/less/snapmap/VCO.SnapMap.less","webpack://KLStoryMap/./src/less/Lightbox.less"],"sourcesContent":["/*!\n\tStoryMap\n\n\tDesigned and built by Zach Wise for the Northwestern University Knight Lab\n\n\tThis Source Code Form is subject to the terms of the Mozilla Public\n\tLicense, v. 2.0. If a copy of the MPL was not distributed with this\n\tfile, You can obtain one at http://mozilla.org/MPL/2.0/.\n\n*/\n\n/* Includes\n================================================== */\n@import \"Variables.less\"; \t\t\t// Variables (easy way to make style changes)\n\n@import \"core/Mixins.less\"; \t\t// Less shortcuts and functions\n@import \"core/Reset.less\"; \t\t\t// CSS Reset\n@import \"Typography.less\";\n\n// Icons\n@import \"icons/Icons.less\";\n\n//\tComponents\n@import \"core/VCO.less\";\n\n//\tComponents\n@import \"ui/VCO.MenuBar.less\";\n@import \"ui/VCO.MenuBar.Button.less\";\n@import \"ui/VCO.Message.less\";\n\n@import \"animation/VCO.Animate.less\";\n\n@import \"slider/VCO.Slide.less\";\n@import \"slider/VCO.SlideNav.less\";\n@import \"slider/VCO.StorySlider.less\";\n\n@import \"media/VCO.Media.less\";\n@import \"media/types/VCO.Media.Text.less\";\n@import \"media/types/VCO.Media.Image.less\";\n@import \"media/types/VCO.Media.Twitter.less\";\n@import \"media/types/VCO.Media.Blockquote.less\";\n@import \"media/types/VCO.Media.Flickr.less\";\n@import \"media/types/VCO.Media.Instagram.less\";\n@import \"media/types/VCO.Media.Profile.less\";\n@import \"media/types/VCO.Media.YouTube.less\";\n@import \"media/types/VCO.Media.IFrame.less\";\n@import \"media/types/VCO.Media.Wikipedia.less\";\n\n@import \"map/leaflet/VCO.Leaflet.less\";\n@import \"map/leaflet/VCO.Leaflet.IE.less\";\n@import \"map/leaflet/VCO.Map.Leaflet.less\";\n@import \"map/leaflet/VCO.Leaflet.MiniMap.less\";\n@import \"map/leaflet/VCO.Leaflet.Mapbox.less\";\n\n@import \"map/VCO.MapMarker.less\";\n@import \"map/VCO.ImageMarker.less\";\n@import \"map/VCO.Map.less\";\n\n@import \"snapmap/VCO.SnapMap.less\";\n\n@import \"Lightbox.less\";\n\n/* StoryMap\n================================================== */\n.vco-storymap {\n\twidth:100%;\n\theight:100%;\n\tfont-size: 16px;\n\tline-height: normal;\n\toverflow:hidden;\n\tposition: relative;\n\t.user-select(none);\n *, *::before, *::after {\n box-sizing: content-box;\n }\n}\n\n/* Portrait\n================================================== */\n.vco-layout-portrait {\n\t.vco-storyslider {\n\t\tpadding-top:10px;\n\t\t.box-shadow(0px -3px 6px rgba(0,0,0,.20));\n\t}\n}\n/* Landscape\n================================================== */\n.vco-layout-landscape {\n\t.vco-storyslider {\n\t\tpadding-top:0px;\n\t\t//this._el.slider_container_mask.style.width = this.options.width + \"px\";\n\t\t//this._el.slider_container_mask.style.left = this.options.width + \"px\";\n\t\tposition:absolute;\n\t\twidth: 50%;\n\t\tleft: 50%;\n\t\toverflow:visible;\n\t\t//padding-left:10%;\n\t\t.vco-slider-background {\n\t\t\tmargin-left:-20%;\n\t\t\twidth:120%;\n\t\t\toverflow:hidden;\n\t\t\t#gradient > .horizontal(@start-color: rgba(256,256,256,.0001); @end-color: rgba(256,256,256,0.85); @start-percent: 0%; @end-percent: 15%);\n\t\t\t//#gradient > .horizontal-three-colors(@start-color: rgba(256,256,256,.0001); @mid-color: rgba(256,256,256,0.85); @color-stop: 10%; @end-color: rgba(256,256,256,.50));\n\t\t}\n\t\t.vco-slider-container-mask {\n\t\t\toverflow: visible;\n\n\t\t\t//.translucent-background(#FFF, 0.70);\n\t\t\t//#gradient > .horizontal(@start-color: rgba(256,256,256,.0001); @end-color: rgba(256,256,256,0.85); @start-percent: 0%; @end-percent: 25%);\n\t\t\t//#gradient > .horizontal-three-colors(@start-color: rgba(256,256,256,.0001); @mid-color: rgba(256,256,256,0.85); @color-stop: 10%; @end-color: rgba(256,256,256,.50));\n\t\t\t//#gradient > .radial(@inner-color: rgba(256,256,256,0.85); @outer-color: rgba(256,256,256,.0001));\n\t\t}\n\t}\n}\n/* Default Fonts\n================================================== */\n/*\n.vco-storymap {\n\tfont-family:'Pontano Sans',sans-serif !important;\n}\n.vco-storymap {\n\th1, h2, h3, h4, h5, h6 {\n\t\tfont-family:'Bevan',serif !important;\n\t\tfont-weight: normal;\n\t}\n}\n.vco-secondary-font {\n\n}\n*/\n\n\n/* Right to Left\n================================================== */\n.vco-rtl {\n\t.vco-text-content, .vco-text, .vco-caption, .vco-media-wikipedia, .vco-headline, .vco-media-blockquote{\n\t\ttext-align: right;\n\t}\n}\n","/*\tReset\n------------------------------------------------------------------------------------------- */\n\n.vco-storyjs {\n\n\t/*\tReset tags and common classes\n\t\tDisplay in IE6-9 and FF3\n\t\tBased on: http://github.com/necolas/normalize.css\n\t------------------------------------------------------------------------------------------- */\n\t\n\tdiv * {\n\t\t-webkit-box-sizing:content-box;\n\t\t -moz-box-sizing:content-box;\n\t\t box-sizing:content-box;\n\t}\n\t\n\th1, h2, h3, h4, h5, h6, p, blockquote, pre, a, abbr, acronym, address, cite, code, del, dfn, em, img, q, s, samp, small, strike, strong, \n\tsub, sup, tt, var, dd, dl, dt, li, ol, ul, fieldset, form, label, legend, button, table, caption, tbody, tfoot, thead, tr, th, td, \n\t.vco-container, .content-container, .media, .text, .vco-slider, .slider, .date, .title, .message, .map, .credit, .caption, .vco-feedback, .vco-feature, .toolbar, \n\t.marker, .dot, .line, .flag, .time, .era, .major, .minor, .vco-navigation, .start, .active {\n\t\tmargin: 0;\n\t\tpadding: 0;\n\t\tborder: 0;\n\t\tfont-weight: normal;\n\t\tfont-style: normal;\n\t\tfont-size: 100%;\n\t\tline-height: 1;\n\t\tfont-family: inherit;\n\t\twidth: auto;\n\t\tfloat:none;\n\t}\n\th1, h2, h3, h4, h5, h6 {\n\t\tclear:none;\n\t}\n\ttable { border-collapse: collapse; border-spacing: 0;}\n\tol, ul { list-style: none;}\n\tq:before, q:after, blockquote:before, blockquote:after { content: \"\"; }\n\ta:focus { outline: thin dotted; }\n\ta:hover, a:active { outline: 0;}\n\tarticle, aside, details, figcaption, figure, footer, header, hgroup, nav, section {\n\t\tdisplay: block;\n\t}\n\taudio, canvas, video {\n\t\tdisplay: inline-block;\n\t\t*display: inline;\n\t\t*zoom: 1;\n\t}\n\n\t/*\tPrevents modern browsers from displaying 'audio' without controls\n\t\tBased on: http://github.com/necolas/normalize.css\n\t------------------------------------------------------------------------------------------- */\n\taudio:not([controls]) {\n\t\tdisplay: none;\n\t}\n\tdiv {\n\t\tmax-width:none;\n\t}\n\t\n\t/*\tPrevents sub and sup affecting line-height in all browsers\n\t\tBased on: http://github.com/necolas/normalize.css\n\t------------------------------------------------------------------------------------------- */\n\tsub, sup {\n\t\tfont-size: 75%;\n\t\tline-height: 0;\n\t\tposition: relative;\n\t\tvertical-align: baseline;\n\t}\n\tsup {\n\t\ttop: -0.5em;\n\t}\n\tsub {\n\t\tbottom: -0.25em;\n\t}\n\n\t/*\tImg border in a's and image quality\n\t\tBased on: http://github.com/necolas/normalize.css\n\t------------------------------------------------------------------------------------------- */\n\timg {\n\t\tborder: 0;\n\t\t-ms-interpolation-mode: bicubic;\n\t}\n\n\t/*\tForms\n\t\tBased on: http://github.com/necolas/normalize.css\n\t------------------------------------------------------------------------------------------- */\n\tbutton, input, select, textarea {\n\t font-size: 100%;\n\t margin: 0;\n\t vertical-align: baseline;\n\t *vertical-align: middle;\n\t}\n\tbutton, input {\n\t line-height: normal; // FF3/4 have !important on line-height in UA stylesheet\n\t *overflow: visible; // Inner spacing ie IE6/7\n\t}\n\tbutton::-moz-focus-inner, input::-moz-focus-inner { // Inner padding and border oddities in FF3/4\n\t border: 0;\n\t padding: 0;\n\t}\n\tbutton, input[type=\"button\"], input[type=\"reset\"], input[type=\"submit\"] {\n\t cursor: pointer; // Cursors on all buttons applied consistently\n\t -webkit-appearance: button; // Style clicable inputs in iOS\n\t}\n\tinput[type=\"search\"] { // Appearance in Safari/Chrome\n\t -webkit-appearance: textfield;\n\t -webkit-box-sizing: content-box;\n\t -moz-box-sizing: content-box;\n\t box-sizing: content-box;\n\t}\n\tinput[type=\"search\"]::-webkit-search-decoration {\n\t -webkit-appearance: none; // Inner-padding issues in Chrome OSX, Safari 5\n\t}\n\ttextarea {\n\t overflow: auto; // Remove vertical scrollbar in IE6-9\n\t vertical-align: top; // Readability and alignment cross-browser\n\t}\n}",".vco-storymap {\n\tfont-family: @font-main;\n\t\n\th1, h2, h3 {\n\t\tfont-size: @base-font-size-xlarge;\n\t\tline-height:@base-font-size-xlarge;\n\t\tsmall {\n\t\t\tfont-size: \t\t@base-font-size-large;\n\t\t\tline-height:\t@base-font-size-large;\n\t\t}\n\t}\n\th4, h5, h6 {\n\t\tfont-size: @base-font-size-large;\n\t\tline-height:@base-font-size-large;\n\t\tmargin-bottom:0px;\n\t\tsmall {\n\t\t\tfont-size: @base-font-size;\n\t\t\tline-height:@base-font-size;\n\t\t}\n\t}\n\th2.vco-headline-title {\n\t\tfont-size: @base-font-size-xlarge + 10;\n\t\tline-height: @base-font-size-xlarge + 10;\n\t\tsmall {\n\t\t\tdisplay:block;\n\t\t\tmargin-top:5px;\n\t\t\tfont-size: @base-font-size-large;\n\t\t\tline-height:@base-font-size-large;\n\t\t}\n\t}\n\t\n\th2 {\n\t\tmargin-top:20px;\n\t\tmargin-bottom:5px;\n\t}\n\t\n\tp {\n\t\tmargin-top:5px;\n\t\tmargin-bottom:10px;\n\t\tfont-size: @base-font-size;\n\t\t//font-family: @font-secondary;\n\t\tcolor: lighten(@color-dark, 40%);\n\t\ta {\n\n\t\t\tcolor: lighten(@color-dark, 40%);\n\t\t\ttext-decoration: none;\n\t\t\tbackground-image: -moz-linear-gradient(top, fade(lighten(@color-dark, 40%), 0%) 50%, fade(lighten(@color-dark, 40%), 60%) 50%);\n\t\t\tbackground-image: -webkit-linear-gradient(top, fade(lighten(@color-dark, 40%), 0%) 50%, fade(lighten(@color-dark, 40%), 60%) 50%);\n\t\t\tbackground-image: -o-linear-gradient(top, fade(lighten(@color-dark, 40%), 0%) 50%, fade(lighten(@color-dark, 40%), 60%) 50%);\n\t\t\tbackground-image: linear-gradient(to bottom, fade(lighten(@color-dark, 40%), 0%) 50%, fade(lighten(@color-dark, 40%), 60%) 50%);\n\t\t\tbackground-repeat: repeat-x;\n\t\t\tbackground-size: 2px 2px;\n\t\t\tbackground-position: 0 @base-font-size+2;\n\t\t\ttext-shadow: -2px -1px 0 white, 2px -1px 0 white, -2px 1px 0 white, 2px 1px 0 white;\n\t\t\t&:hover,\n\t\t\t&:focus {\n\t\t\t\tcolor:@color-theme;\n\t\t\t\ttext-decoration: none;\n\t\t\t}\n\t\t}\n\t\t\n\t\t\n\t\t@media (-webkit-min-device-pixel-ratio: 1.5), (min-resolution: 144dpi) {\n\t\t\ta {\n\t\t\t\ttext-decoration: underline;\n\t\t\t\tbackground-image:none;\n\t\t\t\ttext-shadow: none;\n\t\t\t\t&:hover,\n\t\t\t\t&:focus {\n\t\t\t\t\tcolor:@color-theme;\n\t\t\t\t\ttext-decoration: underline;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t\n\t\t\n\t}\n\tb, strong {\n\t\tfont-weight: bold;\n\t\t//color: @color-dark;\n\t}\n\ti, em {\n\t\tfont-style: italic;\n\t}\n\ta {\n\t\ttext-decoration:none;\n\t\tcolor:@color-theme;\n\t}\n\ta:hover {\n\t\ttext-decoration:underline;\n\t\tcolor: darken(@color-theme, 20%);\n\t}\n\t.vco-caption, .vco-credit, .vco-slidenav-next, .vco-slidenav-previous {\n\t\t//font-family: @font-sanserif;\n\t\tfont-size:@base-font-size-small;\n\t\tline-height:@base-font-size-small;\n\t\ta {\n\t\t\tcolor: @color-dark;\n\t\t}\n\t}\n\t\n\tblockquote, blockquote p {\n\t\tfont-family: @font-serif;\n\t\tcolor: lighten(@color-dark, 60%);\n\t\tfont-size: @base-font-size-large;\n\t\tline-height:@base-font-size-large;\n\t\ttext-align:left;\n\t\tbackground:transparent;\n\t\tborder:0px;\n\t\tpadding:0px;\n\t\tcite {\n\t\t\tfont-family: @font-sanserif;\n\t\t\tfont-size: @base-font-size-small;\n\t\t\tcolor: lighten(@color-dark, 40%);\n\t\t\tdisplay:block;\n\t\t\ttext-align:right;\n\t\t\tfont-style: normal;\n\t\t\t\n\t\t}\n\t\tcite:before {\n\t\t\tcontent: \"\\2014\";\n\t\t}\n\t}\n\tblockquote p:before {\n\t\tcontent: open-quote;\n\t\tdisplay:inline-block;\n\t\tfont-size: @base-font-size-xlarge;\n\t\tposition: relative; \n\t\ttop: 8px;\n\t\tmargin-right:5px;\n\t\t\n\t}\n\tblockquote p:after {\n\t\tcontent: close-quote;\n\t\tdisplay:inline-block;\n\t\tfont-size: @base-font-size-xlarge;\n\t\tposition: relative; \n\t\ttop: 8px;\n\t\tmargin-left:3px;\n\t\t\n\t}\n\tblockquote {\n\t\tmargin:10px;\n\t\tp {\n\t\t\tmargin:0;\n\t\t}\n\t\t//margin-left:18px;\n\t}\n\t\n\t.vcard {\n\t\tfont-family: @font-main;\n\t\tfont-size: @base-font-size;\n\t\tline-height:@base-font-size;\n\t}\n\t\n\t.vco-text {\n\t\tul {\n\t\t\tpadding:0px;\n\t\t\tpadding-left:30px;\n\t\t\tmargin:0;\n\t\t\tli {\n\t\t\t\tmargin-bottom:5px;\n\t\t\t}\n\t\t}\n\t\t\n\t}\n\n\n\t.vco-note {\n\t\tdisplay:block;\n\t\tfont-family: @font-main;\n\t\tfont-style: italic;\n\t\tbackground-color:lighten(@color-dark, 90%);\n\t\tfont-size:@base-font-size;\n\t\tline-height:@base-font-size+2;\n\t\tpadding:10px;\n\t\t.border-radius(7px); \n\t\tcolor: #8a6d3b;\n\t\tbackground-color: #fcf8e3;\n\t\tborder: 1px solid #faebcc;\n\t}\n}\n\n\n// Skinnier\n@media only screen and (max-width: 800px), only screen and (max-device-width: 800px) {\n\t.vco-storymap {\n\t\th1, h2, h3 {\n\t\t\tfont-size: @base-font-size-xlarge;\n\t\t\tline-height: @base-font-size-xlarge;\n\t\t}\n\t\th2.vco-headline-title {\n\t\t}\n\t}\n\t\n}\n// Mobile, iPhone and skinny\n@media only screen and (max-width: 500px), only screen and (max-device-width: 500px) {\n\t.vco-storymap {\n\t\th1, h2, h3 {\n\t\t\tfont-size: @base-font-size-xlarge - 4;\n\t\t\tline-height: @base-font-size-xlarge - 4;\n\t\t}\n\t\th2.vco-headline-title {\n\n\t\t}\n\t}\n}\n.vco-skinny {\n\th2 {\n\t\tmargin-top:0px;\n\t\tpadding-top:20px;\n\t}\n}","/*\tMixins.less\n\tSnippets of reusable CSS to develop faster and keep code readable\n * ----------------------------------------------------------------- */\n\n// Cubic Bezier \n.animation-timing-cubic-bezier() {\n\t\n\t-webkit-transition-timing-function: cubic-bezier(0.770, 0.000, 0.175, 1.000); \n\t -moz-transition-timing-function: cubic-bezier(0.770, 0.000, 0.175, 1.000); \n\t -o-transition-timing-function: cubic-bezier(0.770, 0.000, 0.175, 1.000); \n\t transition-timing-function: cubic-bezier(0.770, 0.000, 0.175, 1.000);\n}\n\n// Property Animation\n.property-animation(@prop:height, @time:1000ms, @ease:cubic-bezier(0.770, 0.000, 0.175, 1.000)) {\n\t-webkit-transition+: @prop @time cubic-bezier(0.770, 0.000, 0.175, 1.000); \n\t -moz-transition+: @prop @time cubic-bezier(0.770, 0.000, 0.175, 1.000); \n\t -o-transition+: @prop @time cubic-bezier(0.770, 0.000, 0.175, 1.000); \n\t transition+: @prop @time cubic-bezier(0.770, 0.000, 0.175, 1.000);\n}\n\n// Opacity\n.opacity(@opacity: 100) {\n \tfilter: e(%(\"alpha(opacity=%d)\", @opacity));\n \t-khtml-opacity: @opacity / 100;\n \t -moz-opacity: @opacity / 100;\n \t opacity: @opacity / 100;\n}\n// Background Opacity\n.background-opacity(@opacity: 100) {\n\t/* Fallback for web browsers that doesn't support RGBa */\n\tbackground: rgb(0, 0, 0) transparent;\n\t/* RGBa with 0.6 opacity */\n\tbackground: rgba(0, 0, 0, @opacity / 100);\n}\n\n// Background Color Opacity\n.background-color-opacity(@cr:0, @cg:0, @cb:0, @opacity: 100) {\n\t/* Fallback for web browsers that doesn't support RGBa */\n\tbackground: rgb(@cr, @cg, @cb) transparent;\n\t/* RGBa with 0.6 opacity */\n\tbackground: rgba(@cr, @cg, @cb, @opacity / 100);\n}\n\n// Slide Text Shadow\n.slide-text-shadow(@shadow: 1px 1px 1px #000) {\n\tcolor: #FFF !important;\n\ttext-shadow: @shadow !important;\n\n}\n\n// Border Radius\n.border-radius(@radius: 5px) {\n \t-webkit-border-radius: @radius;\n \t -moz-border-radius: @radius;\n \t border-radius: @radius;\n}\n\n// Single side border-radius\n.border-top-radius(@radius) {\n border-top-right-radius: @radius;\n border-top-left-radius: @radius;\n}\n.border-right-radius(@radius) {\n border-bottom-right-radius: @radius;\n border-top-right-radius: @radius;\n}\n.border-bottom-radius(@radius) {\n border-bottom-right-radius: @radius;\n border-bottom-left-radius: @radius;\n}\n.border-left-radius(@radius) {\n border-bottom-left-radius: @radius;\n border-top-left-radius: @radius;\n}\n\n// Box Shadow\n.box-shadow(@shadow: 1px 1px 7px rgba(0,0,0,.30)) {\n\t-webkit-box-shadow: @shadow;\n\t -moz-box-shadow: @shadow;\n\t box-shadow: @shadow;\n}\n// Transform\n.transform(@transform) {\n \t-webkit-transform: @transform;\n \t -moz-transform: @transform;\n \t -ms-transform: @transform;\n \t -o-transform: @transform;\n \t transform: @transform;\n}\n// Transitions\n.transition(@transition) {\n \t-webkit-transition: @transition;\n \t -moz-transition: @transition;\n \t -ms-transition: @transition;\n \t -o-transition: @transition;\n \t transition: @transition;\n}\n// Hyphens\n.hyphens(@hyphens: auto) {\n \t-webkit-hyphens:@hyphens;\n \t -moz-hyphens:@hyphens;\n \t -ms-hyphens:@hyphens;\n \t hyphens:@hyphens;\n}\n// User select\n// For selecting text on the page\n.user-select(@select) {\n\t-webkit-user-select: @select;\n\t -moz-user-select: @select;\n\t -ms-user-select: @select; // IE10+\n\t -o-user-select: @select;\n\t user-select: @select;\n}\n// Clear Fix\n.clearfix() {\n\t*zoom: 1;\n\t&:before,\n\t&:after {\n\t\tdisplay: table;\n\t\tcontent: \"\";\n\t}\n\t&:after {\n\t\tclear: both;\n\t}\n}\n.translucent-background(@color: @white, @alpha: 1) {\n\tbackground-color: hsla(hue(@color), saturation(@color), lightness(@color), @alpha);\n}\n// Add an alphatransparency value to any background or border color (via Elyse Holladay)\n#translucent {\n .background(@color: @white, @alpha: 1) {\n background-color: hsla(hue(@color), saturation(@color), lightness(@color), @alpha);\n }\n .border(@color: @white, @alpha: 1) {\n border-color: hsla(hue(@color), saturation(@color), lightness(@color), @alpha);\n background-clip: padding-box;\n }\n}\n// Reset filters for IE\n.reset-filter() {\n\tfilter: e(%(\"progid:DXImageTransform.Microsoft.gradient(enabled = false)\"));\n}\n// Center-align a block level element\n.center-block() {\n\tdisplay: block;\n\tmargin-left: auto;\n\tmargin-right: auto;\n}\n// Create Vertical Gradient\n.gradient-vertical (@startColor: #555, @endColor: #333) {\n //background-color: @endColor;\n background-repeat: repeat-x;\n background-image: -khtml-gradient(linear, left top, left bottom, from(@startColor), to(@endColor)); // Konqueror\n background-image: -moz-linear-gradient(top, @startColor, @endColor); // FF 3.6+\n background-image: -ms-linear-gradient(top, @startColor, @endColor); // IE10\n background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, @startColor), color-stop(100%, @endColor)); // Safari 4+, Chrome 2+\n background-image: -webkit-linear-gradient(top, @startColor, @endColor); // Safari 5.1+, Chrome 10+\n background-image: -o-linear-gradient(top, @startColor, @endColor); // Opera 11.10\n background-image: linear-gradient(top, @startColor, @endColor); // The standard\n filter: e(%(\"progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=0)\",@startColor,@endColor)); // IE9 and down\n}\n\n// GRADIENTS\n// --------------------------------------------------\n\n#gradient {\n\n // Horizontal gradient, from left to right\n //\n // Creates two color stops, start and end, by specifying a color and position for each color stop.\n // Color stops are not available in IE9 and below.\n .horizontal(@start-color: #555; @end-color: #333; @start-percent: 0%; @end-percent: 100%) {\n background-image: -webkit-linear-gradient(left, color-stop(@start-color @start-percent), color-stop(@end-color @end-percent)); // Safari 5.1-6, Chrome 10+\n background-image: linear-gradient(to right, @start-color @start-percent, @end-color @end-percent); // Standard, IE10, Firefox 16+, Opera 12.10+, Safari 7+, Chrome 26+\n background-repeat: repeat-x;\n filter: e(%(\"progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=1)\",argb(@start-color),argb(@end-color))); // IE9 and down\n }\n\n // Vertical gradient, from top to bottom\n //\n // Creates two color stops, start and end, by specifying a color and position for each color stop.\n // Color stops are not available in IE9 and below.\n .vertical(@start-color: #555; @end-color: #333; @start-percent: 0%; @end-percent: 100%) {\n background-image: -webkit-linear-gradient(top, @start-color @start-percent, @end-color @end-percent); // Safari 5.1-6, Chrome 10+\n background-image: linear-gradient(to bottom, @start-color @start-percent, @end-color @end-percent); // Standard, IE10, Firefox 16+, Opera 12.10+, Safari 7+, Chrome 26+\n background-repeat: repeat-x;\n filter: e(%(\"progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=0)\",argb(@start-color),argb(@end-color))); // IE9 and down\n }\n\n .directional(@start-color: #555; @end-color: #333; @deg: 45deg) {\n background-repeat: repeat-x;\n background-image: -webkit-linear-gradient(@deg, @start-color, @end-color); // Safari 5.1-6, Chrome 10+\n background-image: linear-gradient(@deg, @start-color, @end-color); // Standard, IE10, Firefox 16+, Opera 12.10+, Safari 7+, Chrome 26+\n }\n .horizontal-three-colors(@start-color: #00b3ee; @mid-color: #7a43b6; @color-stop: 50%; @end-color: #c3325f) {\n background-image: -webkit-linear-gradient(left, @start-color, @mid-color @color-stop, @end-color);\n background-image: linear-gradient(to right, @start-color, @mid-color @color-stop, @end-color);\n background-repeat: no-repeat;\n filter: e(%(\"progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=1)\",argb(@start-color),argb(@end-color))); // IE9 and down, gets no color-stop at all for proper fallback\n }\n .vertical-three-colors(@start-color: #00b3ee; @mid-color: #7a43b6; @color-stop: 50%; @end-color: #c3325f) {\n background-image: -webkit-linear-gradient(@start-color, @mid-color @color-stop, @end-color);\n background-image: linear-gradient(@start-color, @mid-color @color-stop, @end-color);\n background-repeat: no-repeat;\n filter: e(%(\"progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=0)\",argb(@start-color),argb(@end-color))); // IE9 and down, gets no color-stop at all for proper fallback\n }\n .radial(@inner-color: #555; @outer-color: #333) {\n background-image: -webkit-radial-gradient(circle, @inner-color, @outer-color);\n background-image: radial-gradient(circle, @inner-color, @outer-color);\n background-repeat: no-repeat;\n }\n .striped(@color: rgba(255,255,255,.15); @angle: 45deg) {\n background-image: -webkit-linear-gradient(@angle, @color 25%, transparent 25%, transparent 50%, @color 50%, @color 75%, transparent 75%, transparent);\n background-image: linear-gradient(@angle, @color 25%, transparent 25%, transparent 50%, @color 50%, @color 75%, transparent 75%, transparent);\n }\n}","/* Icons\n================================================== */\n\n@font-face {\n\tfont-family: 'vco-icons';\n\tsrc:url('icons/vco-icons.eot');\n\tsrc:url('icons/vco-icons.eot?#iefix') format('embedded-opentype'),\n\t\turl('icons/vco-icons.ttf') format('truetype'),\n\t\turl('icons/vco-icons.woff2') format('woff2'),\n\t\turl('icons/vco-icons.woff') format('woff'),\n\t\turl('icons/vco-icons.svg#vco-icons') format('svg');\n\tfont-weight: normal;\n\tfont-style: normal;\n}\n\n[class^=\"vco-icon-\"], [class*=\" vco-icon-\"] {\n\tfont-family: 'vco-icons';\n\tspeak: none;\n\tfont-style: normal;\n\tfont-weight: normal;\n\tfont-variant: normal;\n\ttext-transform: none;\n\tline-height: 1;\n\n\t/* Better Font Rendering =========== */\n\t-webkit-font-smoothing: antialiased;\n\t-moz-osx-font-smoothing: grayscale;\n}\n\n\n.vco-icon-vine:after {\n\tcontent: \"\\e64d\";\n}\n.vco-icon-wikipedia:after {\n\tcontent: \"\\e64e\";\n}\n.vco-icon-chevron-right:after {\n\tcontent: \"\\e64f\";\n}\n.vco-icon-chevron-left:after {\n\tcontent: \"\\e650\";\n}\n.vco-icon-youtube-logo:after {\n\tcontent: \"\\e651\";\n}\n.vco-icon-foursquare:after {\n\tcontent: \"\\e652\";\n}\n.vco-icon-camera-retro:after {\n\tcontent: \"\\e653\";\n}\n.vco-icon-doc:after {\n\tcontent: \"\\e654\";\n}\n.vco-icon-weibo:after {\n\tcontent: \"\\e655\";\n}\n.vco-icon-resize-horizontal:after {\n\tcontent: \"\\e656\";\n}\n.vco-icon-resize-vertical:after {\n\tcontent: \"\\e657\";\n}\n.vco-icon-resize-full:after {\n\tcontent: \"\\e658\";\n}\n.vco-icon-resize-small:after {\n\tcontent: \"\\e659\";\n}\n.vco-icon-twitter:after {\n\tcontent: \"\\e62b\";\n}\n.vco-icon-google-plus:after {\n\tcontent: \"\\e62c\";\n}\n.vco-icon-video:after {\n\tcontent: \"\\e62d\";\n}\n.vco-icon-youtube:after {\n\tcontent: \"\\e62d\";\n}\n.vco-icon-plaintext:after {\n\tcontent: \"\\e62e\";\n}\n.vco-icon-storify:after {\n\tcontent: \"\\e62e\";\n}\n.vco-icon-image-v2:after {\n\tcontent: \"\\e62f\";\n}\n.vco-icon-quote-v2:after {\n\tcontent: \"\\e630\";\n}\n.vco-icon-zoom-in:after {\n\tcontent: \"\\e631\";\n}\n.vco-icon-zoom-out:after {\n\tcontent: \"\\e632\";\n}\n.vco-icon-list:after {\n\tcontent: \"\\e633\";\n}\n.vco-icon-music:after {\n\tcontent: \"\\e634\";\n}\n.vco-icon-location:after {\n\tcontent: \"\\e635\";\n}\n.vco-icon-web:after {\n\tcontent: \"\\e636\";\n}\n.vco-icon-share-v2:after {\n\tcontent: \"\\e637\";\n}\n.vco-icon-soundcloud:after {\n\tcontent: \"\\e639\";\n}\n.vco-icon-video-v2:after {\n\tcontent: \"\\e63a\";\n}\n.vco-icon-dailymotion:after {\n\tcontent: \"\\e63a\";\n}\n.vco-icon-tumblr:after {\n\tcontent: \"\\e63b\";\n}\n.vco-icon-lastfm:after {\n\tcontent: \"\\e63c\";\n}\n.vco-icon-github:after {\n\tcontent: \"\\e63d\";\n}\n.vco-icon-goback:after {\n\tcontent: \"\\e63e\";\n}\n.vco-icon-doc-v2:after {\n\tcontent: \"\\e63f\";\n}\n.vco-icon-googledrive:after {\n\tcontent: \"\\e640\";\n}\n.vco-icon-facebook:after {\n\tcontent: \"\\e641\";\n}\n.vco-icon-flickr:after {\n\tcontent: \"\\e642\";\n}\n.vco-icon-dribbble:after {\n\tcontent: \"\\e643\";\n}\n.vco-icon-image:after {\n\tcontent: \"\\e605\";\n}\n.vco-icon-vimeo:after {\n\tcontent: \"\\e606\";\n}\n.vco-icon-instagram:after {\n\tcontent: \"\\e644\";\n}\n.vco-icon-pinterest:after {\n\tcontent: \"\\e645\";\n}\n.vco-icon-arrow-left:after {\n\tcontent: \"\\e646\";\n}\n.vco-icon-arrow-down:after {\n\tcontent: \"\\e647\";\n}\n.vco-icon-arrow-up:after {\n\tcontent: \"\\e648\";\n}\n.vco-icon-arrow-right:after {\n\tcontent: \"\\e649\";\n}\n.vco-icon-share:after {\n\tcontent: \"\\e64a\";\n}\n.vco-icon-blockquote:after {\n\tcontent: \"\\e64b\";\n}\n.vco-icon-evernote:after {\n\tcontent: \"\\e64c\";\n}\n.vco-icon-mappin:after {\n\tcontent: \"\\e600\";\n}\n.vco-icon-swipe-right:after {\n\tcontent: \"\\e601\";\n}\n.vco-icon-swipe-left:after {\n\tcontent: \"\\e602\";\n}\n.vco-icon-touch-spread:after {\n\tcontent: \"\\e603\";\n}\n.vco-icon-touch-pinch:after {\n\tcontent: \"\\e604\";\n}\n","/* Disable Text selection when dragging\n================================================== */\n.vco-dragging {\n\t-webkit-touch-callout: none;\n\t\n\t.user-select(none);\n}","/* MenuBar \n================================================== */\n\n.vco-menubar {\n\tposition:absolute;\n\t//width:100%;\n\t//height:\t1px;\n\tz-index:11;\n\ttext-align:left;\n\t//color:#333;\n\t//height:26px;\n\t//background-color:#FFF;\n\t//.box-shadow(0px -3px 6px rgba(0,0,0,.20));\n\toverflow:hidden;\n\t//margin-top:-25px;\n\tborder-bottom: 1px solid darken(@color-background,10);\n\tborder-right: 1px solid darken(@color-background,10);\n\tborder-bottom-right-radius: 7px;\n\tleft:0px;\n\t//.border-radius(7px);\n\t//border-bottom-left-radius: 7px;\n\t.vco-menubar-button:first-child {\n\t\tborder-left:0;\n\t}\n}\n.vco-mobile {\n\n}\n/* Landscape\n================================================== */\n.vco-layout-landscape {\n\t.vco-menubar {\n\t\t//border-bottom: 1px solid darken(@color-background,10);\n\t\t\n\t\t//.box-shadow(1px 1px 3px rgba(0,0,0,.30));\n\t}\n}\n\n/* Color\n================================================== */\n\n// Inverted\n/*\n.vco-sizebar.vco-sizebar-inverted {\n\tborder-bottom: 1px solid #FFF;\n\t//background-color:#000;\n\tcolor:#a5a5a5;\n\t.vco-sizebar-button {\n\t\tborder-left: 1px solid darken(@color-background, 70);\n\t\t//color:#a5a5a5;\n\t}\n\t.vco-sizebar-button:hover {\n\t\t//background:@color-theme;\n\t\tcolor:@color-background;\n\t}\n}\n.vco-sizebar.vco-sizebar-inverted:before {\n\tbackground-color:#000;\n\t//.gradient-vertical (rgba(0,0,0,0.25), rgba(0,0,0,1));\n\t//.translucent-background(rgb(0,0,0), .5);\n\tborder-top: 2px solid #000;\n\tanimation: invertToBlack 1s;\n\t-webkit-animation:invertToBlack 1s; \n}\n*/\n\n@keyframes invertToBlack {\n\tfrom {\n\t\tbackground-color:#FFF;\n\t}\n\tto {\n\t\tbackground-color:#000;\n\t}\n}\n@-webkit-keyframes invertToBlack {\n\tfrom {background:#FFF;}\n\tto {background:#000;}\n}\n@keyframes invertToWhite {\n\tfrom {background-color:#000;}\n\tto {background-color:#FFF;}\n}\n@-webkit-keyframes invertToWhite{\n\tfrom {background:#000;}\n\tto {background:#FFF;}\n}\n\n\n","/* MenuBar Button\n================================================== */\n\n.vco-menubar-button {\n\tborder-left: 1px solid darken(@color-background,10);\n\tfont-size: 14px;\n\tpadding: 6px 12px 6px 12px;\n\t//position:relative;\n\t//top:-24px;\n\tbackground-color:fadeout(@ui-background-color, 10%);\n\tbackground-color:@color-background;\n\tcursor:pointer;\n\tfont-weight: bold;\n\tcolor:@color-text;\n\t.vco-icon-arrow-up, .vco-icon-arrow-down {\n\t\tdisplay:inline-block;\n\t\theight:14px;\n\t\toverflow:hidden;\n\t\tfont-size: 20px;\n\t\tposition:relative;\n\t\ttop:-2px;\n\t}\n\t\n\t&:hover {\n\t\tbackground:@color-theme;\n\t\tcolor:@color-background;\n\t}\n\t\n}\n\n\n.vco-mobile {\n\t.vco-menubar-button {\n\t\t&:hover {\n\t\t\tbackground-color:fadeout(@ui-background-color, 33%);\n\t\t\tcolor:@color-text;\n\t\t}\n\t\t&:active {\n\t\t\tbackground:@color-theme;\n\t\t\tcolor:@color-background;\n\t\t}\n\t}\n}\n\n\n\n@keyframes invertToBlack {\n\tfrom {\n\t\tbackground-color:#FFF;\n\t}\n\tto {\n\t\tbackground-color:#000;\n\t}\n}\n@-webkit-keyframes invertToBlack {\n\tfrom {background:#FFF;}\n\tto {background:#000;}\n}\n@keyframes invertToWhite {\n\tfrom {background-color:#000;}\n\tto {background-color:#FFF;}\n}\n@-webkit-keyframes invertToWhite{\n\tfrom {background:#000;}\n\tto {background:#FFF;}\n}\n\n\n","/* MESSAGE \n================================================== */\n.vco-message, .vco-message-full {\n\twidth:\t\t\t\t100%;\n\t//max-width: \t\t\t200px;\n\theight:\t\t\t\t100%;\n\tposition: \t\t\tabsolute;\n\t//position: \t\t\trelative;\n\t\n\tdisplay: \t\t\ttable;\n\toverflow: \t\t\thidden;\n\ttop: \t\t\t\t0px;\n\tleft: \t\t\t\t0px;\n\tz-index:\t\t\t99;\n\tmargin:\t\t\t\tauto;\n\ttext-align:\t\t\tcenter;\n\t.vco-message-container {\n\t\tpadding: \t\t\t20px;\n\t\tmargin:20px;\n\t\ttext-align:\t\t\tcenter;\n\t\tvertical-align: \tmiddle;\n\t\tdisplay:table-cell;\n\n\t\t.vco-message-content {\n\t\t\tcolor:#666;\n\t\t\ttext-align: center;\n\t\t\tfont-size: 11px;\n\t\t\tline-height: 13px;\n\t\t\ttext-transform: uppercase;\n\t\t\tmargin-top: 7.5px;\n\t\t\tmargin-bottom: 7.5px;\n\t\t\ttext-shadow: 1px 1px 1px #FFF;\n\t\t}\n\t\t.vco-loading-icon {\n\t\t\twidth: 30px;\n\t\t\theight: 30px;\n\t\t\tbackground-color: #666;\n\t\t\tvertical-align: middle;\n\t\t\t.box-shadow(inset 0 1px 2px rgba(255,255,255,.1));\n\t\t\tmargin-left: auto;\n\t\t\tmargin-right: auto;\n\t\t\ttext-align: center;\n\t\t //margin: 100px auto;\n\t\t\t-webkit-animation: rotateplane 1.2s infinite ease-in-out;\n\t\t\tanimation: rotateplane 1.2s infinite ease-in-out;\n\t\t}\n\n\t\t@-webkit-keyframes rotateplane {\n\t\t\t0% { -webkit-transform: perspective(120px) }\n\t\t\t50% { -webkit-transform: perspective(120px) rotateY(180deg) }\n\t\t\t100% { -webkit-transform: perspective(120px) rotateY(180deg) rotateX(180deg) }\n\t\t}\n\n\t\t@keyframes rotateplane {\n\t\t\t0% { transform: perspective(120px) rotateX(0deg) rotateY(0deg) }\n\t\t\t50% { transform: perspective(120px) rotateX(-180.1deg) rotateY(0deg) }\n\t\t\t100% { transform: perspective(120px) rotateX(-180deg) rotateY(-179.9deg) }\n\t\t}\n\t}\n}\n.vco-message-full {\n\t.translucent-background(#333, 0.80);\n\t[class^=\"vco-icon-\"], [class*=\" vco-icon-\"] {\n\t\t//width: 48px;\n\t\t//height: 48px;\n\t\tcolor:#FFF;\n\t\tfont-size:72px;\n\t}\n\t.vco-message-container {\n\t\t.vco-message-content {\n\t\t\tfont-size: 22px;\n\t\t\tline-height: 22px;\n\t\t\ttext-shadow: none;\n\t\t\tcolor:#FFF;\n\t\t\ttext-transform: none;\n\t\t\tfont-weight: bold;\n\t\t\t.vco-button {\n\t\t\t\tdisplay:inline-block;\n\t\t\t\tcursor:pointer;\n\t\t\t\tbackground-color:#FFF;\n\t\t\t\tcolor:#333;\n\t\t\t\tpadding:10px;\n\t\t\t\tmargin-top:10px;\n\t\t\t\t.border-radius(7px)\n\t\t\t}\n\t\t}\n\t}\n\n}\n.vco-message {\n\t\n}",".vcoanimate {\n\t-webkit-transform: translateZ(0);\n\t-webkit-perspective: 1000;\n\t-webkit-backface-visibility: hidden;\n}\n\n.vco-animate {\n\t.property-animation(all, @animation-duration, @animation-ease);\n\t.animation-timing-cubic-bezier();\n}\n\n.vco-animate-opacity {\n\t.property-animation(opacity, @animation-duration, @animation-ease);\n\t.animation-timing-cubic-bezier();\n}","/* SLIDE \n================================================== */\n.vco-slide {\n\tposition:absolute;\n\n\twidth:100%;\n\theight:100%;\n\tpadding:0px;\n\tmargin:0px;\n\t//display:table;\n\t//table-layout: fixed;\n\toverflow-x:hidden;\n\toverflow-y:auto;\n//\toverflow-y:auto;\n\t//z-index:26;\n\t\n\t.vco-slide-calltoaction {\n\t\t\n\t\t\n\t\tcursor:pointer;\n\t\tfont-weight: bold;\n\t\tpadding-top:10px;\n\t\tmargin-bottom:10px;\n\t\tpadding-bottom:10px;\n\t\t.vco-slide-calltoaction-button-text {\n\t\t\tdisplay:inline-block;\n\t\t\tbackground-color:@color-theme;\n\t\t\tcolor:@color-background;\n\t\t\t//padding:10px;\n\t\t\tpadding: 10px 15px 10px 15px;\n\t\t\tborder-radius:7px;\n\t\t}\n\t\t&:hover {\n\t\t\t.vco-slide-calltoaction-button-text {\n\t\t\t\tbackground-color:@color-theme-dark;\n\t\t\t\tcolor:@color-background;\n\t\t\t}\n\t\t}\n\t}\n\t.vco-slide-background {\n\t\tbackground-color:@color-background;\n\t\t\n\t\tposition:absolute;\n\t\tleft:0;\n\t\ttop:0;\n\t\twidth:100%;\n\t\theight:100%;\n\t\tz-index:-1;\n\t\t//background-color:#333;\n\t\toverflow:hidden;\n\t\tdisplay:none;\n\t\t.opacity(50);\n\t\tbackground: no-repeat center center; \n\t\t-webkit-background-size: cover;\n\t\t -moz-background-size: cover;\n\t\t -o-background-size: cover;\n\t\t\t background-size: cover;\n\t}\n\t.vco-slide-scrollable-container {\n\t\tdisplay:table;\n\t\ttable-layout: fixed;\n\t\theight:100%;\n\t\tz-index:1;\n\t}\n\t.vco-slide-content-container {\n\t\tdisplay:table-cell;\n\t\tvertical-align:middle;\n\t\tposition:relative;\n\t\twidth:100%;\n\t\theight:100%;\n\t\t\n\t\tz-index:3;\n\t\t.vco-slide-content {\n\t\t\t//width:100%;\n\t\t\t//display:table;\n\t\t\tvertical-align:middle;\n\t\t\tpadding-left:100px;\n\t\t\tpadding-right:100px;\n\t\t\tposition:relative;\n\t\t\tmax-width:100%;\n\t\t\t.vco-media {\n\t\t\t\t//display:table-cell;\n\t\t\t\t//vertical-align:middle;\n\t\t\t\tposition:relative;\n\t\t\t\twidth:100%;\n\t\t\t\tmin-width:50%;\n\t\t\t\t//height:100%;\n\t\t\t\tfloat: left;\n\t\t\t\tmargin-top:auto;\n\t\t\t\tmargin-bottom:auto;\n\t\t\t\t//margin-right:auto;\n\t\t\t\timg, embed, object, video, iframe {\n\t\t\t\t\t//width:100%;\n\t\t\t\t}\n\t\t\t}\n\t\t\t.vco-text {\n\t\t\t\twidth:50%;\n\t\t\t\tmax-width:50%;\n\t\t\t\tmin-width:120px;\n\t\t\t\t//height:100%;\n\t\t\t\t//overflow-y:auto;\n\t\t\t\tpadding: 0 20px 0 20px;\n\t\t\t\tdisplay:table-cell;\n\t\t\t\tvertical-align:middle;\n\t\t\t\ttext-align: left;\n\t\t\t\t//float:left;\n\t\t\t\t.vco-slide-calltoaction {\n\t\t\t\t\twidth:100%;\n\t\t\t\t}\n\t\t\t}\n\t\t\t\n\t\t}\n\t}\n}\n\n/* Only Media (no text)\n================================================== */\n.vco-slide-media-only {\n\t.vco-slide-content-container {\n\t\t.vco-slide-content {\n\t\t\t//width:100%;\n\t\t\ttext-align:center;\n\t\t\t.vco-media {\n\t\t\t\t//display:table-cell;\n\t\t\t\t//vertical-align:middle;\n\t\t\t\ttext-align:center;\n\t\t\t\tposition:relative;\n\t\t\t\twidth:100%;\n\t\t\t\tmin-width:50%;\n\t\t\t\tmax-width:100%;\n\t\t\t\t//height:100%;\n\t\t\t\tfloat: none;\n\t\t\t\tmargin-top:auto;\n\t\t\t\tmargin-bottom:auto;\n\t\t\t\t//margin-right:auto;\n\t\t\t\timg, embed, object, video, iframe {\n\t\t\t\t\t//width:100%;\n\t\t\t\t}\n\t\t\t}\n\t\t\t.vco-text {\n\t\t\t\twidth:\t\t\t\t100%;\n\t\t\t\tdisplay:\t\t\tblock;\n\t\t\t\tmargin-left:\t\tauto;\n\t\t\t\tmargin-right:\t\tauto;\n\t\t\t\ttext-align: \t\tcenter;\n\t\t\t\th2 {\n\t\t\t\t\tmargin-top: \t20px;\n\t\t\t\t\tmargin-bottom: \t20px;\n\t\t\t\t}\n\t\t\t\t//float:left;\n\t\t\t}\n\t\t}\n\t}\n}\n\n/* Only Text (no media)\n================================================== */\n.vco-slide-text-only {\n\t.vco-slide-content-container {\n\t\t.vco-slide-content {\n\t\t\t//width:100%;\n\t\t\ttext-align:center;\n\t\t\t.vco-text {\n\t\t\t\tmax-width:80%;\n\t\t\t\twidth:80%;\n\t\t\t\tdisplay:block;\n\t\t\t\tmargin-left:auto;\n\t\t\t\tmargin-right:auto;\n\t\t\t\t//float:left;\n\t\t\t}\n\t\t}\n\t}\n}\n/* Background \n================================================== */\n\n\n.vco-slide.vco-full-image-background, .vco-slide.vco-full-color-background {\n\t.slide-text-shadow();\n\t\n\tp, h1, h2, h3, h4, h5, h6 {\n\t\t.slide-text-shadow();\n\t}\n\ta, a:hover, b, i, blockquote, blockquote p {\n\t\t.slide-text-shadow();\n\t\tcolor: lighten(@color-theme, 90%);\n\t}\n\t.vco-caption, .vco-credit {\n\t\t.slide-text-shadow();\n\t}\n\t.vco-media-twitter, .vco-media-blockquote {\n\t\tblockquote {\n\t\t\t.slide-text-shadow();\n\t\t\tp {\n\t\t\t\t.slide-text-shadow();\n\t\t\t}\n\t\t}\n\t}\n\t.vcard {\n\t\ta, .nickname {\n\t\t\t.slide-text-shadow();\n\t\t}\n\t}\n\n}\n\n/* Landscape\n================================================== */\n.vco-layout-landscape {\n\t.vco-slide {\n\t\t//.translucent-background(#FFF, 0.85);\n\t\t.vco-slide-content-container {\n\t\t\t.vco-slide-content {\n\t\t\t\t//.translucent-background(#FFF, 0.85);\n\t\t\t}\n\t\t\t\n\t\t}\n\t\t\n\t}\n}\n\n/* Full Image Background \n================================================== */\n.vco-slide.vco-full-image-background {\n\tbackground: no-repeat center center; \n\t-webkit-background-size: cover;\n\t -moz-background-size: cover;\n\t -o-background-size: cover;\n\t\t background-size: cover;\n\t//filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='.myBackground.jpg', sizingMethod='scale');\n\t//-ms-filter: \"progid:DXImageTransform.Microsoft.AlphaImageLoader(src='myBackground.jpg', sizingMethod='scale')\";\n\tbackground-position:center 25%;\n\ttext-shadow: 1px 1px 2px #000;\n\t.vco-slide-content-container {\n\t\t//.translucent-background(#000, 0.50);\n\t}\n\tp, h1, h2, h3, h4, h5, h6 {\n\t\ttext-shadow: 1px 1px 2px #000;\n\t}\n\t.vco-caption, .vco-credit {\n\t\ttext-shadow: 1px 1px 2px #000;\n\t}\n\t\n\t.vco-media-twitter, .vco-media-blockquote {\n\t\tblockquote {\n\t\t\ttext-shadow: 1px 1px 2px #000 !important;\n\t\t\tp {\n\t\t\t\ttext-shadow: 1px 1px 2px #000 !important;\n\t\t\t}\n\t\t}\n\t}\n\t\n}\n/* Color Background \n================================================== */\n.vco-slide.vco-full-color-background {\n\t\n}\n/* Text Background \n================================================== */\n.vco-slide.vco-text-background {\n\t.vco-text {\n\t\t.vco-text-content-container {\n\t\t\tpadding:20px;\n\t\t\t.background-color-opacity(0,0,0, 60);\n\t\t\t.border-radius(7px);\n\t\t\th2 {\n\t\t\t\tmargin-top:5px;\n\t\t\t}\n\t\t}\n\t}\n}\n\n/* Landscape\n================================================== */\n.vco-layout-landscape {\n\t.vco-slide {\n\t\t.vco-slide-content-container {\n\t\t\t.vco-slide-content {\n\t\t\t\t.vco-media {\n\t\t\t\t\tdisplay:block;\n\t\t\t\t\t//position:static;\n\t\t\t\t\tvertical-align:baseline;\n\t\t\t\t\theight:auto;\n\t\t\t\t\tmargin-bottom:20px;\n\t\t\t\t\tmax-height:50%;\n\t\t\t\t}\n\t\t\t\t.vco-text {\n\t\t\t\t\tdisplay:block;\n\t\t\t\t\theight:auto;\n\t\t\t\t\tvertical-align:baseline;\n\t\t\t\t\t//position:static;\n\t\t\t\t\twidth:100%;\n\t\t\t\t\tmax-width:100%;\n\t\t\t\t\tmin-width:0;\n\t\t\t\t\tfloat:none;\n\t\t\t\t\tpadding: 0;\n\t\t\t\t\t.vco-text-content-container {\n\t\t\t\t\t\t//padding-left:10px;\n\t\t\t\t\t\t//padding-right:10px;\n\t\t\t\t\t\t//padding-bottom:100px;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n// Skinny 500px or less\n.vco-skinny {\n\t.vco-slide {\n\t\tdisplay:block;\n\t\t\n\t\t.vco-slide-content-container {\n\t\t\tdisplay:block;\n\t\t\tposition:static;\n\t\t\theight:auto;\n\t\t\tvertical-align:baseline;\n\t\t\t.vco-slide-content {\n\t\t\t\tdisplay:block;\n\t\t\t\tposition:static;\n\t\t\t\tvertical-align:baseline;\n\t\t\t\theight:auto;\n\t\t\t\t.vco-media {\n\t\t\t\t\tposition:static;\n\t\t\t\t\twidth:100%;\n\t\t\t\t\theight:auto;\n\t\t\t\t\tfloat: none;\n\t\t\t\t\tdisplay:block;\n\n\t\t\t\t}\n\t\t\t\t.vco-text {\n\t\t\t\t\tdisplay:block;\n\t\t\t\t\theight:auto;\n\t\t\t\t\tvertical-align:baseline;\n\t\t\t\t\tposition:static;\n\t\t\t\t\twidth:100%;\n\t\t\t\t\tmax-width:100%;\n\t\t\t\t\tmin-width:0;\n\t\t\t\t\tfloat:none;\n\t\t\t\t\tpadding: 0;\n\t\t\t\t\t.vco-text-content-container {\n\t\t\t\t\t\tpadding-left:10px;\n\t\t\t\t\t\tpadding-right:10px;\n\t\t\t\t\t\tpadding-bottom:10px;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n// Mobile, iPhone\n@media only screen and (max-width: 500px), only screen and (max-device-width: 500px) {\n\n}\n.vco-mobile.vco-skinny {\n\t.vco-slide-content-container {\n\t\t.vco-slide-content {\n\t\t\t.vco-media {\n\t\t\t\timg, embed, object, video, iframe {\n\t\t\t\t\tmax-height:175px;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}","/* SlideNav\n================================================== */\n\n/* NAVIGATION\n================================================== */\n.vco-slidenav-previous, .vco-slidenav-next {\n\tposition:absolute;\n\ttop: 45%;\n\tz-index:10;\n\tcursor:pointer;\n\t\n\t.vco-slidenav-content-container {\n\t\theight:200px;\n\t\twidth:00px;\n\t\tposition:absolute;\n\t}\n\t.vco-slidenav-title, .vco-slidenav-description {\n\t\twidth:100%;\n\t\t//word-break:break-all;\n\n\t\t\t\t\n\t -ms-word-break: break-all;\n\t word-break: break-all;\n\n\t /* Non standard for webkit */\n\t word-break: break-word;\n\n\t -webkit-hyphens: auto;\n\t -moz-hyphens: auto;\n\t -ms-hyphens: auto;\n\t hyphens: auto;\n\t\t\t \n\t\t.opacity(15);\n\t\ta {\n\t\t\t\n\t\t}\n\t\tsmall {\n\t\t\t\n\t\t}\n\t}\n\t.vco-slidenav-title {\n\t\tmargin-top:10px;\n\t\tfont-size: @base-font-size;\n\t\tline-height: @base-font-size;\n\t\tfont-size: @base-font-size-small;\n\t\tline-height: @base-font-size-small;\n\t\t//font-weight: bold;\n\t}\n\t.vco-slidenav-description {\n\t\tfont-size: @base-font-size-small;\n\t}\n\t\n}\n\n/* ICONS AND NAVIGATION HOVER AND COLOR\n================================================== */\n.vco-slidenav-next, .vco-slidenav-previous {\n\t.vco-slidenav-content-container {\n\t\t.vco-slidenav-icon, .vco-slidenav-title, .vco-slidenav-description {\n\t\t\ttext-shadow: 1px 1px 1px @color-background;\n\t\t\t//color: @color-foreground;\n\t\t\tcolor:@color-background;\n\t\t}\n\t\t&.vco-slidenav-inverted {\n\t\t\t.vco-slidenav-icon, .vco-slidenav-title, .vco-slidenav-description {\n\t\t\t\t//color:@color-background;\n\t\t\t\tcolor: @color-foreground;\n\t\t\t\ttext-shadow: 1px 1px 1px @color-foreground;\n\t\t\t}\n\t\t}\n\t}\n\t.vco-slidenav-icon {\n\t\tfont-family: 'vco-icons';\n\t\tspeak: none;\n\t\tfont-style: normal;\n\t\tfont-weight: normal;\n\t\tfont-variant: normal;\n\t\ttext-transform: none;\n\t\tline-height: 1;\n\t\t-webkit-font-smoothing: antialiased;\n\t\t-moz-osx-font-smoothing: grayscale;\n\t\tfont-size:32px;\n\t\tmargin-bottom: 5px;\n\t}\n\t&:hover {\n\t\t.vco-slidenav-title, .vco-slidenav-description {\n\t\t\t.opacity(100);\n\t\t}\n\t}\n}\n\n.vco-slidenav-next {\n\ttext-align: right;\n\tmargin-right:10px;\n right: 100px;\n\t.vco-slidenav-icon {\n\t\tmargin-left: 100 - 24px;\n\t\t&:before {\n\t\t\tcontent: \"\\e64f\";\n\t\t}\n\t}\n\t&:hover {\n\t\t.vco-slidenav-icon {\n\t margin-left: 100 - 20px;\n\t\t}\n\t}\n}\n\n.vco-slidenav-previous {\n\ttext-align: left;\n\tmargin-left:10px;\n\t.vco-slidenav-icon {\n\t\tmargin-left: 0px;\n\t\t&:before {\n\t\t\tcontent: \"\\e650\";\n\t\t}\n\t}\n\t&:hover {\n\t\t.vco-slidenav-icon {\n\t\t\tmargin-left: -4px;\n\t\t}\n\t}\n}\n\n\n/* Skinny\n================================================== */\n.vco-skinny {\n\t.vco-slidenav-next {\n\t right: 32px;\n\t\t.vco-slidenav-icon {\n\t\t\tmargin-left:32 - 24px;\n\t\t}\n\t\t&:hover {\n\t\t\t.vco-slidenav-icon {\n\t\t margin-left:32 - 20px;\n\t\t\t .opacity(100);\n\t\t\t}\n\t\t}\n\t}\n\t\n\t.vco-slidenav-previous {\n\t\t&:hover {\n\t\t\t.vco-slidenav-icon {\n\t\t\t\tmargin-left: -4px;\n\t\t\t\t.opacity(100);\n\t\t\t}\n\t\t}\n\t}\n\t\n\t.vco-slidenav-previous, .vco-slidenav-next {\n\t\t.vco-slidenav-content-container {\n\t\t\twidth:32px;\n\t\t\theight:32px;\n\t\t\t.vco-slidenav-icon, .vco-slidenav-title, .vco-slidenav-description {\n\t\t\t\tcolor: @color-foreground;\n\t\t\t\t//color:@color-background;\n\t\t\t}\n\t\t\t&.vco-slidenav-inverted {\n\t\t\t\t.vco-slidenav-icon, .vco-slidenav-title, .vco-slidenav-description {\n\t\t\t\t\tcolor:@color-background;\n\t\t\t\t\t//color: @color-foreground;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\t.vco-slidenav-title, .vco-slidenav-description {\n\t\t\tdisplay:none;\n\t\t}\n\t\t.vco-slidenav-icon {\n\t\t\t.opacity(33);\n\t\t}\n\t}\n\n}\n\n/* Mobile and Landscape\n================================================== */\n.vco-layout-landscape.vco-mobile {\n\t.vco-slidenav-next {\n\t\t&:hover {\n\t\t\tright: 70px;\n\t\t\t.vco-slidenav-icon {\n\t\t margin-left:32 - 24px;\n\t\t\t .opacity(100);\n\t\t\t}\n\t\t}\n\t\t&:active {\n\t\t\t.vco-slidenav-icon {\n\t\t\t\tmargin-left: 0px;\n\t\t\t .opacity(100);\n\t\t\t}\n\t\t}\n\t}\n\n\t.vco-slidenav-previous {\n\t\t&:hover {\n\t\t\t.vco-slidenav-icon {\n\t\t\t\t//margin-left: 0px;\n\t\t\t\tmargin-left: 100 - 20px;\n\t\t\t\t.opacity(100);\n\t\t\t}\n\t\t}\n\t\t&:active {\n\t\t\t.vco-slidenav-icon {\n\t\t\t .opacity(100);\n\t\t\t margin-left: -4px;\n\t\t\t}\n\t\t}\n\t}\n\n}\n\n/* Mobile and Portrait\n================================================== */\n.vco-layout-portrait.vco-mobile {\n\t.vco-slidenav-next, .vco-slidenav-previous {\n\t\t&:hover {\n\t\t\t.vco-slidenav-icon {\n\t\t\t .opacity(33);\n\t\t\t}\n\t\t}\n\t\t&:active {\n\t\t\t.vco-slidenav-icon {\n\t\t\t .opacity(100);\n\t\t\t}\n\t\t}\n\t}\n}\n\n/* Mobile\n================================================== */\n.vco-mobile, .vco-skinny.vco-mobile, .vco-skinny.vco-layout-landscape.vco-mobile, .vco-skinny.vco-layout-portrait.vco-mobile {\n\t.vco-slidenav-previous, .vco-slidenav-next {\n\t\tdisplay:none;\n\t}\n}\n\n/* Landscape\n================================================== */\n.vco-layout-landscape {\n\t.vco-storyslider {\n\t\t.vco-slidenav-next, .vco-slidenav-previous {\n\t\t\t.vco-slidenav-icon {\n\t\t\t\t&:before {\n\t\t\t\t\t//background-color:@color-background;\n\t\t\t\t\tbackground-color: @color-foreground;\n\t\t\t\t\t//.translucent-background(@color-background, .85);\n\t\t\t\t\t//.box-shadow(1px 1px 7px rgba(0,0,0,.30));\n\t\t\t\t\tpadding:20px;\n\t\t\t\t\tborder: 1px solid darken(@color-background,30);\n\t\t\t\t}\n\t\t\t}\n\t\t\t.vco-slidenav-icon, .vco-slidenav-title, .vco-slidenav-description {\n\t\t\t\ttext-shadow: none;\n\t\t\t}\n\t\t\t.vco-slidenav-title, .vco-slidenav-description {\n\t\t\t\tdisplay:none;\n\t\t\t}\n\t\t}\n\t\n\t\t.vco-slidenav-previous {\n\t\t\tleft:-100%;\n\t\t\tmargin-left:0px;\n\t\t\t//z-index:26;\n\t\t\t.vco-slidenav-icon {\n\t\t\t\t&:before {\n\t\t\t\t\t.border-right-radius(7px);\n\t\t\t\t}\n\t\t\t}\n\t\t\t&:hover {\n\t\t\t\t.vco-slidenav-icon {\n\t\t\t\t\tmargin-left: -4px;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\t.vco-slidenav-next {\n\t\t\t//margin-left:0px;\n\t\t\t right: 130px;\n\t\t\t .vco-slidenav-icon {\n\t\t\t\t &:before {\n\t\t\t\t \t.border-left-radius(7px);\n\t\t\t\t }\n\t\t\t }\n\t\t}\n\t}\n}","/* StorySlider\n================================================== */\n\n/* SLIDER CONTAINERS \n================================================== */\n.vco-storyslider {\n\twidth:100%;\n\theight:100%;\n\toverflow:hidden;\n\t.user-select(none);\n\tposition:relative;\n\timg, embed, object, video, iframe {\n\t\tmax-width: 100%;\n\t\tposition:relative;\n\t}\n\t.vco-slider-background {\n\t\tposition:absolute;\n\t\ttop:0;\n\t\tleft:0;\n\t\twidth:100%;\n\t\theight:100%;\n\t\tz-index:1;\n\t\tpointer-events: none;\n\t}\n\t.vco-slider-touch-mask {\n\t\twidth:100%;\n\t\theight:100%;\n\t\tz-index:25;\n\t\t\n\t\ttop:0px;\n\t\tleft:0px;\n\t\tposition: absolute;\n\t}\n\t.vco-slider-container-mask {\n\t\ttext-align: center;\n\t\twidth: 100%;\n\t\theight: 100%;\n\t\t//overflow: scroll;\n\t\tposition: relative;\n\t\tz-index:5;\n\t\t.vco-slider-container {\n\t\t\tposition: absolute;\n\t\t\ttop: 0px;\n\t\t\tleft: 0px;\n\t\t\twidth: 100%;\n\t\t\theight: 100%;\n\t\t\ttext-align: center;\n\t\t\t\n\t\t\t.vco-slider-item-container {\n\t\t\t\twidth: 100%;\n\t\t\t\theight: 100%;\n\t\t\t\tdisplay:table-cell;\n\t\t\t\tvertical-align:middle;\n\n\t\t\t}\n\t\t}\n\t}\n\t\n}\n","/* Requires Variables.less\n================================================== */\n.vco-media {\n\t//display:table-cell;\n\t//vertical-align:middle;\n\twidth:100%;\n\tmin-width:50%;\n\theight:100%;\n\t//float: left;\n\tmargin-top:auto;\n\tmargin-bottom:auto;\n\tposition:relative;\n\t//margin-right:auto;\n\t.vco-message {\n\t\tposition:relative;\n\t}\n\t.vco-media-content-container {\n\t\t.vco-media-content{\n\t\t\tposition: relative;\n\t\t\t.clearfix();\n\t\t\t.vco-media-loaderror {\n\t\t\t\tp {\n\t\t\t\t\tcolor:@ui-background-color;\n\t\t\t\t\tspan {\n\t\t\t\t\t\tcolor:@ui-background-color;\n\t\t\t\t\t}\n\t\t\t\t\ttext-align:center;\n\t\t\t\t\tem {\n\t\t\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\t[class^=\"vco-icon-\"], [class*=\" vco-icon-\"] {\n\t\t\t\t\tfont-size:@base-font-size-xlarge;\n\t\t\t\t\tcolor:@ui-background-color;\n\t\t\t\t\ttext-align:center;\n\t\t\t\t}\n\t\t\t}\n\t\t\t\n\t\t\timg, embed, object, video {\n\t\t\t\tmax-width: 100%;\n\t\t\t\tmax-height:100%;\n\t\t\t}\n\t\t\t\n\t\t}\n\t}\n}\n\n/* Media Shodow \n================================================== */\n.vco-media-shadow {\n\tposition: relative;\n\tz-index: 1;\n\t//background:@color-background;\n\t.box-shadow(1px 1px 7px rgba(0,0,0,.50));\n\t\n}\n/*\n.vco-media-shadow:before, .vco-media-shadow:after {\n\tz-index: -1;\n\tposition: absolute;\n\tcontent: \"\";\n\tbottom: 15px;\n\tleft: 10px;\n\twidth: 50%;\n\ttop: 80%;\n\tmax-width:300px;\n\tbackground: #333;\n\t.box-shadow(0 15px 10px #666);\n\t.transform(rotate(-2deg));\n}\n.vco-media-shadow::after {\n\t.transform(rotate(2deg));\n\tright: 10px;\n\tleft: auto;\n}\n*/\n/* VCard\n================================================== */\n.vcard {\n\t//float:right;\n\t\n\t.clearfix();\n\tmargin-bottom:@base-spacing;\n\tmargin-top:10px;\n\t.twitter-date {\n\t\ttext-align:left;\n\t\tfont-size:@base-font-size-small;\n\t}\n\t.author {\n\t\tfloat:right;\n\t\t//text-align:right;\n\t}\n\ta {\n\t\tcolor: lighten(@color-dark, 20%);\n\t\ttext-decoration:none;\n\t}\n\ta:hover {\n\t\ttext-decoration: none;\n\t\t.fn, .nickname {\n\t\t\tcolor:@color-theme;\n\t\t\t//text-decoration: underline;\n\t\t}\n\t}\n\t.fn, .nickname {\n\t\t\t\n\t\tpadding-left: 42px;\n\t}\n\t.fn {\n\t\tdisplay:block;\n\t\tfont-weight: bold;\n\n\t}\n\t.nickname {\n\t\tmargin-top:1px;\n\t\tdisplay:block;\n\t\tcolor: lighten(@color-dark, 40%);\n\t}\n\t\t\n\t.avatar {\n\t\tfloat:left;\n\t\tdisplay: block;\n\t\twidth: 32px;\n\t\theight: 32px;\n\t\timg {\n\t\t\t-moz-border-radius: 5px;\n\t\t\t-webkit-border-radius: 5px;\n\t\t\tborder-radius: 5px;\n\t\t}\n\t}\n}\n.vco-slide.vco-full-image-background, .vco-slide.vco-full-color-background {\n\ta, .vcard a {\n\t\t.slide-text-shadow();\n\t\tcolor: lighten(@color-theme, 90%);\n\t}\n}\n/* Credit\n================================================== */\n.vco-credit {\n\tcolor: #999999;\n\ttext-align: right;\n\tdisplay: block;\n\tmargin: 0 auto;\n\tmargin-top: 6px;\n\tfont-size: @base-font-size-small - 1;\n\tline-height: 13px;\n}\n\n/* Caption\n================================================== */\n.vco-caption {\n\ttext-align: left;\n\tmargin-right: auto;\n\tmargin-left: auto;\n\tmargin-top: 10px;\n\tcolor: #666666;\n\tfont-size: @base-font-size-small;\n\tline-height: 14px;\n\ttext-rendering: optimizeLegibility;\n\tword-wrap: break-word;\n}\n\n/* Full Image Background\n================================================== */\n.vco-full-image-background, .vco-full-color-background {\n\t\n\t.vco-media-shadow:before, .vco-media-shadow:after {\n\t\tbackground: none;\n\t\t.box-shadow(0 0px 0px #000);\n\t}\n\t\n}\n.vco-full-image-background {\n\n}\n\n.vco-full-color-background {\n\t\n}\n\n/* Mobile, iPhone and skinny\n================================================== */\n@media only screen and (max-width: 500px), only screen and (max-device-width: 500px) {\n\t.vco-media {\n\t\twidth:100%;\n\t\theight:auto;\n\t\tfloat: none;\n\t\tdisplay:block;\n\t\t\n\t\t.vco-media-content-container {\n\t\t\t.vco-media-content{\n\t\t\t\t\n\t\t\t}\n\t\t\t.vco-credit {\n\t\t\n\t\t\t}\n\t\t\t.vco-caption {\n\t\t\n\t\t\t}\n\t\t\t\n\t\t}\n\t}\n}\n.vco-skinny {\n\t.vco-media {\n\t\twidth:100%;\n\t\theight:auto;\n\t\tfloat: none;\n\t\tdisplay:block;\n\t\t.vco-media-content-container {\n\t\t\t.vco-media-content{\n\t\t\n\t\t\t}\n\t\t\t\n\t\t\t.vco-credit, .vco-caption {\n\t\t\t\tmargin-top: 2px;\n\t\t\t\tpadding-left:10px;\n\t\t\t\tpadding-right:10px;\n\t\t\t\tfont-size:8px;\n\t\t\t}\n\t\t\t.vco-credit {\n\t\t\t\tmargin-top: 0px;\n\t\t\t}\n\t\t}\n\t}\n}\n\n","/* Requires Variables.less\n================================================== */\n\n.vco-text {\n\twidth:50%;\n\tmax-width:50%;\n\tmin-width:120px;\n\tpadding: 0 20px 0 20px;\n\tdisplay:table-cell;\n\tdisplay:block;\n\tvertical-align:middle;\n\ttext-align: left;\n\t//float:left;\n\ttext-shadow: none;\n\tcolor:@color-text;\n\tp {\n\t\tcolor:@color-text;\n\t}\n\t.vco-text-content-container {\n\t\t.vco-text-content{\n\t\t\n\t\t}\n\t}\n\th2.vco-headline-title, h2.vco-headline {\n\t\tmargin-top:0;\n\t\tcolor:@color-header-text;\n\t}\n\t.vco-headline-date, h3.vco-headline-date {\n\t\tfont-family:@font-main;\n\t\tfont-size:@base-font-size;\n\t\tline-height: @base-font-size;\n\t\tfont-weight: normal;\n\t\tmargin:0 0 2px 0;\n\t\tcolor: lighten(@color-text,25);\n\t\tsmall {\n\t\t\tfont-size:@base-font-size;\n\t\t\tline-height: @base-font-size;\n\t\t\tfont-weight: normal;\n\t\t\tcolor: lighten(@color-text,25);\n\t\t}\n\t}\n\t.vco-text-date {\n\t\tdisplay:inline-block;\n\t\tfont-family:@font-main;\n\t\tfont-weight:normal;\n\t\tmargin-top:10px;\n\t\tfont-size:12px;\n\t\tcolor: lighten(@color-text,25);\n\t\t&:after {\n\t\t\t//margin-left:3px;\n\t\t\t//color:#999;\n\t\t\t//font-weight:normal;\n\t\t}\n\t}\n\n}\n\n// When the background is an image\n.vco-full-image-background, .vco-full-color-background {\n\t.vco-text, .vco-text p {\n\t\tcolor: @color-text-inverted !important;\n\t\ttext-shadow: 1px 1px 2px #000;\n\t\t.vco-headline-date, h3.vco-headline-date {\n\t\t\tcolor: @color-text-inverted !important;\n\t\t\tsmall {\n\t\t\t\tcolor: @color-text-inverted !important;\n\t\t\t}\n\t\t}\n\n\t}\n}\n\n\n/* Skinny\n================================================== */\n.vco-skinny {\n\t.vco-text {\n\t\twidth:100%;\n\t\tmax-width:100%;\n\t\tmin-width:auto;\n\t\tfloat:none;\n\t\tmargin-top:20px;\n\t\t.vco-text-content-container {\n\t\t\t.vco-text-content{\n\t\t\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n\n/* Mobile, iPhone\n================================================== */\n.vco-mobile {\n\t\n}\n\n/* Mobile, iPhone and skinny\n================================================== */\n.vco-mobile.vco-skinny {\n\n}\n",".vco-media {\n\t.vco-media-image {\n\t\twidth: auto !important;\n\t}\n\n}\n\n.vco-mobile.vco-skinny {\n\t.vco-media {\n\t\t.vco-media-image {\n\t\t\tmax-height:250px !important;\n\t\t}\n\n\t}\n}",".vco-media {\n\t.vco-media-twitter {\n\t\ttext-align:left;\n\t\t//margin-left: auto;\n\t\t//margin-right: auto;\n\t\t//margin-bottom:@base-space;\n\t\tclear:both;\n\t\tblockquote {\n\t\t\tmargin:0;\n\t\t\tmargin-right: \t@base-spacing;\n\t\t\tfont-size: \t\t@base-font-size;\n\t\t\tline-height:\tfloor(@base-font-size * @base-line-height);\n\t\t\tcolor:\t\t\t@color-foreground;\n\t\t\tp {\n\t\t\t\tfont-size: \t\t@base-font-size-xlarge;\n\t\t\t\tline-height: \tfloor(@base-font-size-xlarge * 1.1);\n\t\t\t\tcolor:\t\t\t@color-dark;\n\t\t\t}\n\t\t\t.quote-mark {\n\t\t\t\t\n\t\t\t}\n\t\t}\n\t\tblockquote p:before {\n\t\t\tdisplay:none;\n\t\t}\n\t\tblockquote p:after {\n\t\t\tdisplay:none;\n\t\t}\n\t\t\n\t\t.vco-icon-twitter {\n\t\t\tcolor:#55ACEE;\n\t\t}\n\t\t.vcard {\n\t\t\ta:hover, a.vco-date:hover {\n\t\t\t\ttext-decoration: none;\n\t\t\t\tcolor:#55ACEE;\n\t\t\t\t.fn, .nickname {\n\t\t\t\t\tcolor:#55ACEE;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\t\n\t\t\n\n\t}\n\n}\n.vco-slide-media-only {\n\t.vco-media {\n\t\t.vco-media-twitter {\n\t\t\twidth:80%;\n\t\t\tmargin-left:auto;\n\t\t\tmargin-right:auto;\n\t\t}\n\t}\n}\n.vco-mobile.vco-skinny {\n\t.vco-media {\n\t\t.vco-media-twitter {\n\t\t\t\n\t\t\tblockquote {\n\t\t\t\tp {\n\t\t\t\t\tfont-size: \t\t@base-font-size;\n\t\t\t\t\tline-height:\tfloor(@base-font-size * @base-line-height);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t}\n}\n.vco-skinny {\n\t\n\t.vco-media {\n\t\t.vco-media-twitter {\n\t\t\tmargin-left:10px;\n\t\t\tmargin-right:10px;\n\t\t\tblockquote {\n\t\t\t\tp {\n\t\t\t\t\tfont-size: \t\t@base-font-size-large;\n\t\t\t\t\tline-height:\tfloor(@base-font-size-large * 1.1);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t}\n}\n",".vco-media {\n\t.vco-media-blockquote {\n\t\ttext-align:left;\n\t\tclear:both;\n\t\tblockquote {\n\t\t\tmargin:0;\n\t\t\tmargin-right: \t@base-spacing;\n\t\t\ttext-align: \tleft;\n\t\t\tp {\n\t\t\t\tfont-size: \t\t@base-font-size-xlarge;\n\t\t\t\tline-height: \tfloor(@base-font-size-xlarge * 1.1);\n\t\t\t\t//color:\t\t\t@color-dark;\n\t\t\t}\n\t\t\tcite {\n\t\t\t\tfont-size: \t\t@base-font-size;\n\t\t\t\tline-height:\tfloor(@base-font-size * @base-line-height);\n\t\t\t\tcolor:\t\t\t@color-foreground;\n\t\t\t\ttext-align: \tright;\n\t\t\t}\n\t\t\t\n\t\t}\n\n\t\tblockquote p:before {\n\t\t\tcontent: open-quote;\n\t\t\tdisplay:inline-block;\n\t\t\t//font-size: (@base-font-size-xlarge * 3);\n\t\t\t//font-style: normal;\n\t\t\t//position: relative; \n\t\t\t//top: (@base-font-size-xlarge);\n\t\t\tmargin-right:5px;\n\t\t\n\t\t}\n\t\tblockquote p:after {\n\t\t\tcontent: close-quote;\n\t\t\tdisplay:inline-block;\n\t\t\t//font-size: (@base-font-size-xlarge * 2);\n\t\t\t//position: relative; \n\t\t\t//top: (@base-font-size-xlarge/2);\n\t\t\tmargin-left:3px;\n\t\t\n\t\t}\n\n\t}\n\n}\n.vco-slide-media-only {\n\t.vco-media {\n\t\t.vco-media-blockquote {\n\t\t\twidth:80%;\n\t\t\tmargin-left:auto;\n\t\t\tmargin-right:auto;\n\t\t}\n\t}\n}\n// Skinnier\n@media only screen and (max-width: 800px), only screen and (max-device-width: 800px) {\n\t.vco-media {\n\t\t.vco-media-blockquote {\n\t\t\tblockquote {\n\t\t\t\tp {\n\t\t\t\t\tfont-size: \t\t@base-font-size-large;\n\t\t\t\t\tline-height:\tfloor(@base-font-size-large * 1.1);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t}\n}\n// Mobile, iPhone and skinny\n@media only screen and (max-width: 500px), only screen and (max-device-width: 500px) {\n\t.vco-media {\n\t\t.vco-media-blockquote {\n\t\t\tblockquote {\n\t\t\t\tp {\n\t\t\t\t\tfont-size: \t\t@base-font-size;\n\t\t\t\t\tline-height:\tfloor(@base-font-size * @base-line-height);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t}\n}",".vco-media {\n\t.vco-media-instagram {\n\t\t\n\t}\n\n}\n\n\n.vco-mobile.vco-skinny {\n\t.vco-media {\n\t\t.vco-media-instagram {\n\t\t\tmax-height:250px !important;\n\t\t}\n\n\t}\n}",".vco-media {\n\t.vco-media-profile {\n\t\tborder-radius: 50%;\n\t}\n\n}\n\n// Mobile, iPhone and skinny\n@media only screen and (max-width: 500px), only screen and (max-device-width: 500px) {\n\t.vco-media {\n\t\t.vco-media-profile {\n\t\t\n\t\t}\n\n\t}\n}",".vco-media {\n\t.vco-media-iframe {\n\t\twidth: 100%;\n\t\theight: 100%;\n\t\tiframe {\n\t\t\twidth: 100%;\n\t\t\theight: 100%;\n\t\t}\n\t}\n\n}\n\n// Mobile, iPhone and skinny\n@media only screen and (max-width: 500px), only screen and (max-device-width: 500px) {\n\t.vco-media {\n\t\t.vco-media-iframe {\n\t\t\n\t\t}\n\n\t}\n}",".vco-media {\n\t.vco-media-wikipedia {\n\t\t//font-size: @base-font;\n\t\t//line-height: @base-line;\n\t\ttext-align:left;\n\t\tmargin-left: auto;\n\t\tmargin-right: auto;\n\t\t//margin-bottom:@base-space;\n\t\tclear:both;\n\t\t.wiki-source { \n\t\t\t//margin-bottom:@base-space;\n\t\t\tfont-size: 13px;\n\t\t\tline-height: 19px;\n\t\t\tfont-style: italic;\n\t\t}\n\t\th4 {\n\t\t\tmargin-top:0px;\n\t\t\t//border-bottom: 1px solid @color-line;\n\t\t\tmargin-bottom:0px;\n\t\t}\n\t\th4 a {\n\t\t\tcolor:@color-dark; //@color-theme;\n\t\t\ttext-decoration: none;\n\t\t}\n\t\th4 a:hover {\n\t\t\ttext-decoration: underline;\n\t\t}\n\t\t\n\t\tp {\n\t\t\tfont-size: 13px;\n\t\t\tline-height: 19px;\n\t\t}\n\t\t\n\t}\n\n}\n.vco-slide.vco-full-image-background, .vco-slide.vco-full-color-background {\n\t.vco-media {\n\t\t.vco-media-wikipedia {\n\t\t\tpadding:20px;\n\t\t\t.background-color-opacity(0,0,0, 60);\n\t\t\t.border-radius(7px);\n\t\t\th4 a {\n\t\t\t\t.slide-text-shadow();\n\t\t\t}\n\t\t}\n\t}\n}\n// Mobile, iPhone and skinny\n.vco-mobile.vco-skinny {\n\t.vco-media {\n\t\t.vco-media-wikipedia {\n\t\t\tmargin-left: 10px;\n\t\t\tmargin-right: 10px;\n\t\t}\n\t\t\n\t}\n}","/* required styles */\n\n.leaflet-map-pane,\n.leaflet-tile,\n.leaflet-marker-icon,\n.leaflet-marker-shadow,\n.leaflet-tile-pane,\n.leaflet-tile-container,\n.leaflet-overlay-pane,\n.leaflet-shadow-pane,\n.leaflet-marker-pane,\n.leaflet-popup-pane,\n.leaflet-overlay-pane svg,\n.leaflet-zoom-box,\n.leaflet-image-layer,\n.leaflet-layer {\n\tposition: absolute;\n\tleft: 0;\n\ttop: 0;\n\t}\n.leaflet-container {\n\toverflow: hidden;\n\t-ms-touch-action: none;\n\t}\n.leaflet-tile,\n.leaflet-marker-icon,\n.leaflet-marker-shadow {\n\t-webkit-user-select: none;\n\t -moz-user-select: none;\n\t user-select: none;\n\t-webkit-user-drag: none;\n\t}\n.leaflet-marker-icon,\n.leaflet-marker-shadow {\n\tdisplay: block;\n\t}\n/* map is broken in FF if you have max-width: 100% on tiles */\n.leaflet-container img {\n\tmax-width: none !important;\n\t}\n/* stupid Android 2 doesn't understand \"max-width: none\" properly */\n.leaflet-container img.leaflet-image-layer {\n\tmax-width: 15000px !important;\n\t}\n.leaflet-tile {\n\tfilter: inherit;\n\tvisibility: hidden;\n\t}\n.leaflet-tile-loaded {\n\tvisibility: inherit;\n\t}\n.leaflet-zoom-box {\n\twidth: 0;\n\theight: 0;\n\t}\n/* workaround for https://bugzilla.mozilla.org/show_bug.cgi?id=888319 */\n.leaflet-overlay-pane svg {\n\t-moz-user-select: none;\n\t}\n\n.leaflet-tile-pane { z-index: 2; }\n.leaflet-objects-pane { z-index: 3; }\n.leaflet-overlay-pane { z-index: 4; }\n.leaflet-shadow-pane { z-index: 5; }\n.leaflet-marker-pane { z-index: 6; }\n.leaflet-popup-pane { z-index: 7; }\n\n.leaflet-vml-shape {\n\twidth: 1px;\n\theight: 1px;\n\t}\n.lvml {\n\tbehavior: url(#default#VML);\n\tdisplay: inline-block;\n\tposition: absolute;\n\t}\n\n\n/* control positioning */\n\n.leaflet-control {\n\tposition: relative;\n\tz-index: 7;\n\tpointer-events: auto;\n\t}\n.leaflet-top,\n.leaflet-bottom {\n\tposition: absolute;\n\tz-index: 1000;\n\tpointer-events: none;\n\t}\n.leaflet-top {\n\ttop: 0;\n\t}\n.leaflet-right {\n\tright: 0;\n\t}\n.leaflet-bottom {\n\tbottom: 0;\n\t}\n.leaflet-left {\n\tleft: 0;\n\t}\n.leaflet-control {\n\tfloat: left;\n\tclear: both;\n\t}\n.leaflet-right .leaflet-control {\n\tfloat: right;\n\t}\n.leaflet-top .leaflet-control {\n\tmargin-top: 10px;\n\t}\n.leaflet-bottom .leaflet-control {\n\tmargin-bottom: 10px;\n\t}\n.leaflet-left .leaflet-control {\n\tmargin-left: 10px;\n\t}\n.leaflet-right .leaflet-control {\n\tmargin-right: 10px;\n\t}\n\n\n/* zoom and fade animations */\n\n.leaflet-fade-anim .leaflet-tile,\n.leaflet-fade-anim .leaflet-popup {\n\topacity: 0;\n\t-webkit-transition: opacity 0.2s linear;\n\t -moz-transition: opacity 0.2s linear;\n\t -o-transition: opacity 0.2s linear;\n\t transition: opacity 0.2s linear;\n\t}\n.leaflet-fade-anim .leaflet-tile-loaded,\n.leaflet-fade-anim .leaflet-map-pane .leaflet-popup {\n\topacity: 1;\n\t}\n\n.leaflet-zoom-anim .leaflet-zoom-animated {\n\t-webkit-transition: -webkit-transform 0.25s cubic-bezier(0,0,0.25,1);\n\t -moz-transition: -moz-transform 0.25s cubic-bezier(0,0,0.25,1);\n\t -o-transition: -o-transform 0.25s cubic-bezier(0,0,0.25,1);\n\t transition: transform 0.25s cubic-bezier(0,0,0.25,1);\n\t}\n.leaflet-zoom-anim .leaflet-tile,\n.leaflet-pan-anim .leaflet-tile,\n.leaflet-touching .leaflet-zoom-animated {\n\t-webkit-transition: none;\n\t -moz-transition: none;\n\t -o-transition: none;\n\t transition: none;\n\t}\n\n.leaflet-zoom-anim .leaflet-zoom-hide {\n\tvisibility: hidden;\n\t}\n\n\n/* cursors */\n\n.leaflet-clickable {\n\tcursor: pointer;\n\t}\n.leaflet-container {\n\tcursor: -webkit-grab;\n\tcursor: -moz-grab;\n\t}\n.leaflet-popup-pane,\n.leaflet-control {\n\tcursor: auto;\n\t}\n.leaflet-dragging .leaflet-container,\n.leaflet-dragging .leaflet-clickable {\n\tcursor: move;\n\tcursor: -webkit-grabbing;\n\tcursor: -moz-grabbing;\n\t}\n\n\n/* visual tweaks */\n\n.leaflet-container {\n\tbackground: #ddd;\n\toutline: 0;\n\t}\n.leaflet-container a {\n\tcolor: #0078A8;\n\t}\n.leaflet-container a.leaflet-active {\n\toutline: 2px solid orange;\n\t}\n.leaflet-zoom-box {\n\tborder: 2px dotted #38f;\n\tbackground: rgba(255,255,255,0.5);\n\t}\n\n\n/* general typography */\n.leaflet-container {\n\tfont: 12px/1.5 \"Helvetica Neue\", Arial, Helvetica, sans-serif;\n\t}\n\n\n/* general toolbar styles */\n\n.leaflet-bar {\n\tbox-shadow: 0 1px 5px rgba(0,0,0,0.65);\n\tborder-radius: 4px;\n\t}\n.leaflet-bar a,\n.leaflet-bar a:hover {\n\tbackground-color: #fff;\n\tborder-bottom: 1px solid #ccc;\n\twidth: 26px;\n\theight: 26px;\n\tline-height: 26px;\n\tdisplay: block;\n\ttext-align: center;\n\ttext-decoration: none;\n\tcolor: black;\n\t}\n.leaflet-bar a,\n.leaflet-control-layers-toggle {\n\tbackground-position: 50% 50%;\n\tbackground-repeat: no-repeat;\n\tdisplay: block;\n\t}\n.leaflet-bar a:hover {\n\tbackground-color: #f4f4f4;\n\t}\n.leaflet-bar a:first-child {\n\tborder-top-left-radius: 4px;\n\tborder-top-right-radius: 4px;\n\t}\n.leaflet-bar a:last-child {\n\tborder-bottom-left-radius: 4px;\n\tborder-bottom-right-radius: 4px;\n\tborder-bottom: none;\n\t}\n.leaflet-bar a.leaflet-disabled {\n\tcursor: default;\n\tbackground-color: #f4f4f4;\n\tcolor: #bbb;\n\t}\n\n.leaflet-touch .leaflet-bar a {\n\twidth: 30px;\n\theight: 30px;\n\tline-height: 30px;\n\t}\n\n\n/* zoom control */\n\n.leaflet-control-zoom-in,\n.leaflet-control-zoom-out {\n\tfont: bold 18px 'Lucida Console', Monaco, monospace;\n\ttext-indent: 1px;\n\t}\n.leaflet-control-zoom-out {\n\tfont-size: 20px;\n\t}\n\n.leaflet-touch .leaflet-control-zoom-in {\n\tfont-size: 22px;\n\t}\n.leaflet-touch .leaflet-control-zoom-out {\n\tfont-size: 24px;\n\t}\n\n\n/* layers control */\n\n.leaflet-control-layers {\n\tbox-shadow: 0 1px 5px rgba(0,0,0,0.4);\n\tbackground: #fff;\n\tborder-radius: 5px;\n\t}\n.leaflet-control-layers-toggle {\n\tbackground-image: url(images/layers.png);\n\twidth: 36px;\n\theight: 36px;\n\t}\n.leaflet-retina .leaflet-control-layers-toggle {\n\tbackground-image: url(images/layers-2x.png);\n\tbackground-size: 26px 26px;\n\t}\n.leaflet-touch .leaflet-control-layers-toggle {\n\twidth: 44px;\n\theight: 44px;\n\t}\n.leaflet-control-layers .leaflet-control-layers-list,\n.leaflet-control-layers-expanded .leaflet-control-layers-toggle {\n\tdisplay: none;\n\t}\n.leaflet-control-layers-expanded .leaflet-control-layers-list {\n\tdisplay: block;\n\tposition: relative;\n\t}\n.leaflet-control-layers-expanded {\n\tpadding: 6px 10px 6px 6px;\n\tcolor: #333;\n\tbackground: #fff;\n\t}\n.leaflet-control-layers-selector {\n\tmargin-top: 2px;\n\tposition: relative;\n\ttop: 1px;\n\t}\n.leaflet-control-layers label {\n\tdisplay: block;\n\t}\n.leaflet-control-layers-separator {\n\theight: 0;\n\tborder-top: 1px solid #ddd;\n\tmargin: 5px -10px 5px -6px;\n\t}\n\n\n/* attribution and scale controls */\n\n.leaflet-container .leaflet-control-attribution {\n\tbackground: #fff;\n\tbackground: rgba(255, 255, 255, 0.7);\n\tmargin: 0;\n\t}\n.leaflet-control-attribution,\n.leaflet-control-scale-line {\n\tpadding: 0 5px;\n\tcolor: #333;\n\t}\n.leaflet-control-attribution a {\n\ttext-decoration: none;\n\t}\n.leaflet-control-attribution a:hover {\n\ttext-decoration: underline;\n\t}\n.leaflet-container .leaflet-control-attribution,\n.leaflet-container .leaflet-control-scale {\n\tfont-size: 11px;\n\t}\n.leaflet-left .leaflet-control-scale {\n\tmargin-left: 5px;\n\t}\n.leaflet-bottom .leaflet-control-scale {\n\tmargin-bottom: 5px;\n\t}\n.leaflet-control-scale-line {\n\tborder: 2px solid #777;\n\tborder-top: none;\n\tline-height: 1.1;\n\tpadding: 2px 5px 1px;\n\tfont-size: 11px;\n\twhite-space: nowrap;\n\toverflow: hidden;\n\t-moz-box-sizing: content-box;\n\t box-sizing: content-box;\n\n\tbackground: #fff;\n\tbackground: rgba(255, 255, 255, 0.5);\n\t}\n.leaflet-control-scale-line:not(:first-child) {\n\tborder-top: 2px solid #777;\n\tborder-bottom: none;\n\tmargin-top: -2px;\n\t}\n.leaflet-control-scale-line:not(:first-child):not(:last-child) {\n\tborder-bottom: 2px solid #777;\n\t}\n\n.leaflet-touch .leaflet-control-attribution,\n.leaflet-touch .leaflet-control-layers,\n.leaflet-touch .leaflet-bar {\n\tbox-shadow: none;\n\t}\n.leaflet-touch .leaflet-control-layers,\n.leaflet-touch .leaflet-bar {\n\tborder: 2px solid rgba(0,0,0,0.2);\n\tbackground-clip: padding-box;\n\t}\n\n\n/* popup */\n\n.leaflet-popup {\n\tposition: absolute;\n\ttext-align: center;\n\t}\n.leaflet-popup-content-wrapper {\n\tpadding: 1px;\n\ttext-align: left;\n\tborder-radius: 12px;\n\t}\n.leaflet-popup-content {\n\tmargin: 13px 19px;\n\tline-height: 1.4;\n\t}\n.leaflet-popup-content p {\n\tmargin: 18px 0;\n\t}\n.leaflet-popup-tip-container {\n\tmargin: 0 auto;\n\twidth: 40px;\n\theight: 20px;\n\tposition: relative;\n\toverflow: hidden;\n\t}\n.leaflet-popup-tip {\n\twidth: 17px;\n\theight: 17px;\n\tpadding: 1px;\n\n\tmargin: -10px auto 0;\n\n\t-webkit-transform: rotate(45deg);\n\t -moz-transform: rotate(45deg);\n\t -ms-transform: rotate(45deg);\n\t -o-transform: rotate(45deg);\n\t transform: rotate(45deg);\n\t}\n.leaflet-popup-content-wrapper,\n.leaflet-popup-tip {\n\tbackground: white;\n\n\tbox-shadow: 0 3px 14px rgba(0,0,0,0.4);\n\t}\n.leaflet-container a.leaflet-popup-close-button {\n\tposition: absolute;\n\ttop: 0;\n\tright: 0;\n\tpadding: 4px 4px 0 0;\n\ttext-align: center;\n\twidth: 18px;\n\theight: 14px;\n\tfont: 16px/14px Tahoma, Verdana, sans-serif;\n\tcolor: #c3c3c3;\n\ttext-decoration: none;\n\tfont-weight: bold;\n\tbackground: transparent;\n\t}\n.leaflet-container a.leaflet-popup-close-button:hover {\n\tcolor: #999;\n\t}\n.leaflet-popup-scrolled {\n\toverflow: auto;\n\tborder-bottom: 1px solid #ddd;\n\tborder-top: 1px solid #ddd;\n\t}\n\n.leaflet-oldie .leaflet-popup-content-wrapper {\n\tzoom: 1;\n\t}\n.leaflet-oldie .leaflet-popup-tip {\n\twidth: 24px;\n\tmargin: 0 auto;\n\n\t-ms-filter: \"progid:DXImageTransform.Microsoft.Matrix(M11=0.70710678, M12=0.70710678, M21=-0.70710678, M22=0.70710678)\";\n\tfilter: progid:DXImageTransform.Microsoft.Matrix(M11=0.70710678, M12=0.70710678, M21=-0.70710678, M22=0.70710678);\n\t}\n.leaflet-oldie .leaflet-popup-tip-container {\n\tmargin-top: -1px;\n\t}\n\n.leaflet-oldie .leaflet-control-zoom,\n.leaflet-oldie .leaflet-control-layers,\n.leaflet-oldie .leaflet-popup-content-wrapper,\n.leaflet-oldie .leaflet-popup-tip {\n\tborder: 1px solid #999;\n\t}\n\n\n/* div icon */\n\n.leaflet-div-icon {\n\tbackground: #fff;\n\tborder: 1px solid #666;\n\t}\n",".leaflet-vml-shape {\n\twidth: 1px;\n\theight: 1px;\n\t}\n.lvml {\n\tbehavior: url(#default#VML);\n\tdisplay: inline-block;\n\tposition: absolute;\n\t}\n\n.leaflet-control {\n\tdisplay: inline;\n\t}\n\n.leaflet-popup-tip {\n\twidth: 21px;\n\t_width: 27px;\n\tmargin: 0 auto;\n\t_margin-top: -3px;\n\n\tfilter: progid:DXImageTransform.Microsoft.Matrix(M11=0.70710678, M12=0.70710678, M21=-0.70710678, M22=0.70710678);\n\t-ms-filter: \"progid:DXImageTransform.Microsoft.Matrix(M11=0.70710678, M12=0.70710678, M21=-0.70710678, M22=0.70710678)\";\n\t}\n.leaflet-popup-tip-container {\n\tmargin-top: -1px;\n\t}\n.leaflet-popup-content-wrapper, .leaflet-popup-tip {\n\tborder: 1px solid #999;\n\t}\n.leaflet-popup-content-wrapper {\n\tzoom: 1;\n\t}\n\n.leaflet-control-zoom,\n.leaflet-control-layers {\n\tborder: 3px solid #999;\n\t}\n.leaflet-control-layers-toggle {\n\t}\n.leaflet-control-attribution,\n.leaflet-control-layers,\n.leaflet-control-scale-line {\n\tbackground: white;\n\t}\n.leaflet-zoom-box {\n\tfilter: alpha(opacity=50);\n\t}\n.leaflet-control-attribution {\n\tborder-top: 1px solid #bbb;\n\tborder-left: 1px solid #bbb;\n\t}\n","/* Requires Variables.less\n================================================== */\n.vco-map {\n\t/*\n\t.leaflet-zoom-anim .leaflet-zoom-animated {\n\t\t-webkit-transition: -webkit-transform 0.8s cubic-bezier(0.25,0.1,0.25,0.75);\n\t\t -moz-transition: -moz-transform 0.8s cubic-bezier(0.25,0.1,0.25,0.75);\n\t\t -o-transition: -o-transform 0.8s cubic-bezier(0.25,0.1,0.25,0.75);\n\t\t transition: transform 0.8s cubic-bezier(0.25,0.1,0.25,0.75);\n\t}\n\t*/\n\t/*\n\t.leaflet-zoom-anim .leaflet-zoom-animated {\n\t\t-webkit-transition: -webkit-transform 1s cubic-bezier(1, 0, 0, 1);\n\t\t -moz-transition: -moz-transform 1s cubic-bezier(1, 0, 0, 1);\n\t\t -o-transition: -o-transform 1s cubic-bezier(1, 0, 0, 1);\n\t\t transition: transform 1s cubic-bezier(1, 0, 0, 1); \n\t}\n\t*/\n\t\n\t.leaflet-container {\n\t\t.leaflet-control-attribution {\n\t\t\tcolor:#999;\n\t\t\tmargin-bottom:3px !important;\n\t\t\ta {\n\t\t\t\tcolor: #666;\n\t\t\t}\n\t\t\t.vco-knightlab-brand, a.vco-knightlab-brand {\n\t\t\t\tmargin-left:5px;\n\t\t\t\t//color:@color-theme;\n\t\t\t\ttext-shadow: 0px 0px 1px #FFF, 0px 0px 1px #FFF, 0px 0px 5px #FFF;\n\t\t\t\tfont-size: 14px;\n\t\t\t\tfont-weight:bold;\n\t\t\t\tspan {\n\t\t\t\t\tcolor:@color-theme;\n\t\t\t\t\tdisplay:inline-block;\n\t\t\t\t\ttransform:rotate(45deg);\n\t\t\t\t\t-ms-transform:rotate(45deg); /* IE 9 */\n\t\t\t\t\t-webkit-transform:rotate(45deg); /* Opera, Chrome, and Safari */\n\t\t\t\t}\n\t\t\t\t&:hover {\n\t\t\t\t\ttext-decoration:none;\n\t\t\t\t\tcolor:lighten(@color-theme, 15);\n\t\t\t\t\t//text-shadow: 0px 0px 0px #000;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\timg.leaflet-image-layer {\n\t\t max-width: none !important;\n\t\t}\n\n\t\t\n\t}\n\t.leaflet-overlay-pane {\n\t\tz-index:auto;\n\t\t.leaflet-image-layer {\n\t\t\tz-index:-1;\n\t\t}\n\t\tsvg {\n\t\t\tz-index:4;\n\t\t}\n\t}\n\t.leaflet-fade-anim .leaflet-tile,\n\t.leaflet-fade-anim .leaflet-popup {\n\t\topacity: 0;\n\t\t-webkit-transition: opacity 0.5s linear;\n\t\t -moz-transition: opacity 0.5s linear;\n\t\t -o-transition: opacity 0.5s linear;\n\t\t transition: opacity 0.5s linear;\n\t}\n\t.leaflet-fade-anim .leaflet-tile-loaded,\n\t.leaflet-fade-anim .leaflet-map-pane .leaflet-popup {\n\t\topacity: 1;\n\t}\n\t.leaflet-zoom-anim .leaflet-zoom-animated {\n\t\t-webkit-transition: -webkit-transform 1s cubic-bezier(0.75, 0.1, 0.2, 1);\n\t\t -moz-transition: -moz-transform 1s cubic-bezier(0.75, 0.1, 0.2, 1);\n\t\t -o-transition: -o-transform 1s cubic-bezier(0.75, 0.1, 0.2, 1);\n\t\t transition: transform 1s cubic-bezier(0.75, 0.1, 0.2, 1); \n\t\t-webkit-transform: translateZ(0);\n\t\t-webkit-perspective: 1000;\n\t\t-webkit-backface-visibility: hidden;\n\t}\n\t&.vco-map-touch-zoom {\n\t\t.leaflet-zoom-anim .leaflet-zoom-animated {\n\t\t\t-webkit-transition: -webkit-transform 0.25s cubic-bezier(0,0,0.25,1);\n\t\t\t -moz-transition: -moz-transform 0.25s cubic-bezier(0,0,0.25,1);\n\t\t\t -o-transition: -o-transform 0.25s cubic-bezier(0,0,0.25,1);\n\t\t\t transition: transform 0.25s cubic-bezier(0,0,0.25,1);\n\t\t\t-webkit-transform: translateZ(0);\n\t\t\t-webkit-perspective: 1000;\n\t\t\t-webkit-backface-visibility: hidden;\n\t\t}\n\t}\n\t/*\n\t.leaflet-zoom-anim .leaflet-zoom-animated {\n\t\t-webkit-transition: none;\n\t\t -moz-transition: none;\n\t\t -o-transition: none;\n\t\t transition: none; \n\t}\n\t*/\n\t.leaflet-bottom {\n\t\tbottom: 0;\n\t}\n\t.leaflet-right {\n\t\tleft: 0;\n\t\tright:auto;\n\t}\n\t.leaflet-container .leaflet-control-attribution{\n\t\tbackground-color:transparent;\n\t\tbox-shadow:none;\n\t\tmargin:0;\n\t\tborder:none;\n\t\tfont-size: 10px;\n\t}\n\t\n\t.leaflet-container {\n\t\t//background-color: @color-foreground;\n\t\tbackground-color: transparent;\n\t\t//background: @color-foreground url(\"cartographer.jpg\") repeat;\n\t\t\n\t}\n\t\n\t.leaflet-popup-content-wrapper {\n\t\tdisplay:none;\n\t\t.border-radius(5px);\n\t\tborder: 1px solid darken(@ui-background-color, 15);\n\t\t.box-shadow();\n\t\t.box-shadow(1px 1px 2px rgba(0,0,0,.30));\n\t\t//background: @color-foreground;\n\t\t//.translucent-background(@color-foreground, 0.75);\n\t\t.leaflet-popup-content {\n\t\t\tmargin:7px;\n\t\t\th4 {\n\t\t\t\tmargin:0;\n\t\t\t\tfont-weight:normal;\n\t\t\t\t//color:@color-background;\n\t\t\t}\n\t\t}\n\t}\n\t.leaflet-popup-tip-container {\n\t\tmargin: 0 auto;\n\t\twidth: 40px;\n\t\theight: 20px;\n\t\tposition: relative;\n\t\toverflow: hidden;\n\t\tdisplay:none;\n\t}\n\t\n\t.leaflet-bar {\n\t\t.box-shadow(none);\n\t}\n\t\n\t\n\n}\n\n/* Landscape\n================================================== */\n.vco-layout-landscape {\n\t.vco-map {\n\t\t.leaflet-bottom {\n\t\t\tbottom: 0;\n\t\t\t//top: auto;\n\t\t}\n\t\t.leaflet-right {\n\t\t\tleft: 0;\n\t\t\tright:auto;\n\t\t}\n\t\t.leaflet-top {\n\t\t\tbottom: 0;\n\t\t\ttop: 28px;\n\t\t}\n\t\t.leaflet-left {\n\t\t\t//left: 0;\n\t\t\t//right:auto;\n\t\t}\n\t}\n\t\n}\n.vco-layout-portrait {\n\t.leaflet-control-container {\n\t\t\n\t}\n\t.leaflet-bottom {\n\t\t//position:relative;\n\t\tbottom: 0;\n\t\ttop: auto;\n\t}\n}\n/* Mobile, iPhone and skinny\n================================================== */\n@media only screen and (max-width: 500px), only screen and (max-device-width: 500px) {\n\t\n}\n.vco-mobile.vco-skinny {\n\t.leaflet-control-zoom, .leaflet-control-layers {\n\t\tdisplay:none;\n\t}\n\t.leaflet-container {\n\t\t.leaflet-control-attribution {\n\t\t\tfont-size:8px;\n\t\t\t.vco-knightlab-brand, a.vco-knightlab-brand {\n\t\t\t\tfont-size:8px;\n\t\t\t}\n\t\t}\n\t}\n}\n.vco-skinny {\n\t\n\t.leaflet-container .leaflet-control-attribution{\n\t\tbackground-color:transparent;\n\t\tbox-shadow:none;\n\t\tmargin:0;\n\t\tborder:none;\n\t\tfont-size:8px;\n\t\t.vco-knightlab-brand, a.vco-knightlab-brand {\n\t\t\tfont-size:12px;\n\t\t}\n\t\t//font-size: 6px !important;\n\t}\n}\n\n",".vco-map {\n\t.leaflet-container {\n\t\t.leaflet-bottom {\n\t\t\t.leaflet-control-minimap {\n\t\t\t\tmargin-left:10px;\n\t\t\t\tmargin-bottom:25px;\n\t\t\t}\n\t\t}\n\t\t.leaflet-top {\n\t\t\t.leaflet-control-minimap {\n\t\t\t\tmargin-left:10px;\n\t\t\t\tmargin-top:10px;\n\t\t\t}\n\t\t}\n\t\t.leaflet-control-minimap {\n\t\t border:solid #FFF 2px;\n\t\t .box-shadow(1px 1px 7px rgba(0,0,0,.30));\n\t\t .border-radius(3px);\n\t\t //background: #f8f8f9;\n\t\t\tbackground-color: darken(@color-background,30);\n\t\t transition: all .2s;\n\t\t\tborder: 2px solid darken(@color-background,30);\n\t\t}\n\n\t\t.leaflet-control-minimap a {\n\t\t background-color: darken(@color-background,30);\n\t\t //background-repeat: no-repeat;\n\t\t z-index: 99999;\n\t\t transition: all .2s;\n\t\t border-radius: 3px 0px 0px 0px;\n\t\t}\n\n\t\t.leaflet-control-minimap a.minimized {\n\t\t -webkit-transform: rotate(180deg);\n\t\t transform: rotate(180deg);\n\t\t // border-radius: 0px;\n\t\t}\n\n\t\t.leaflet-control-minimap-toggle-display {\n\t\t //background-image: url(\"images/toggle.png\");\n\t\t height: 19px;\n\t\t width: 19px;\n\t\t position: absolute;\n\t\t bottom: 0;\n\t\t right: 0; \n\t\t\tborder: 1px solid darken(@color-background,30);\n\t\t\tbackground-color:darken(@color-background,50);\n\t\t}\n\t\t.leaflet-control-minimap-toggle-display:after {\n\t\t\tfont-family: 'vco-icons';\n\t\t\tspeak: none;\n\t\t\tfont-style: normal;\n\t\t\tfont-weight: normal;\n\t\t\tfont-variant: normal;\n\t\t\ttext-transform: none;\n\t\t\tline-height: 1;\n\t\t\n\t\t\t/* Better Font Rendering =========== */\n\t\t\t-webkit-font-smoothing: antialiased;\n\t\t\t-moz-osx-font-smoothing: grayscale;\n\t\t\n\t\t\t//color: darken(@color-background,50);\n\t\t\tcolor:#FFF;\n\t\t\tfont-size: 20px;\n\t\t\tcontent: \"\\e647\";\n\t\t}\n\t}\n}\n\n\n",".vco-map {\n\t.leaflet-container {\n\t\t.mapbox-maplogo {\n\t\t\tposition:relative;\n\t\t\tdisplay:inline-block;\n\t\t\theight: 20px;\n\t\t\twidth: 65px;\n\t\t\t//left:10px;\n\t\t\t//bottom:10px;\n\t\t\tmargin: 0 3px -5px 3px;\n\t\t\ttext-indent: -9999px;\n\t\t\tz-index:99999;\n\t\t\toverflow:hidden;\n\t\t\tbackground-image: url(\"data:image/svg+xml;charset=utf-8,%3C?xml version='1.0' encoding='utf-8'?%3E%3Csvg version='1.1' id='Layer_1' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' x='0px' y='0px' viewBox='0 0 84.49 21' style='enable-background:new 0 0 84.49 21;' xml:space='preserve'%3E%3Cg%3E %3Cpath class='st0' style='opacity:0.9; fill: %23FFFFFF; enable-background: new;' d='M83.25,14.26c0,0.12-0.09,0.21-0.21,0.21h-1.61c-0.13,0-0.24-0.06-0.3-0.17l-1.44-2.39l-1.44,2.39 c-0.06,0.11-0.18,0.17-0.3,0.17h-1.61c-0.04,0-0.08-0.01-0.12-0.03c-0.09-0.06-0.13-0.19-0.06-0.28l0,0l2.43-3.68L76.2,6.84 c-0.02-0.03-0.03-0.07-0.03-0.12c0-0.12,0.09-0.21,0.21-0.21h1.61c0.13,0,0.24,0.06,0.3,0.17l1.41,2.36l1.4-2.35 c0.06-0.11,0.18-0.17,0.3-0.17H83c0.04,0,0.08,0.01,0.12,0.03c0.09,0.06,0.13,0.19,0.06,0.28l0,0l-2.37,3.63l2.43,3.67 C83.24,14.18,83.25,14.22,83.25,14.26z'/%3E %3Cpath class='st0' style='opacity:0.9; fill: %23FFFFFF; enable-background: new;' d='M66.24,9.59c-0.39-1.88-1.96-3.28-3.84-3.28c-1.03,0-2.03,0.42-2.73,1.18V3.51c0-0.13-0.1-0.23-0.23-0.23h-1.4 c-0.13,0-0.23,0.11-0.23,0.23v10.72c0,0.13,0.1,0.23,0.23,0.23h1.4c0.13,0,0.23-0.11,0.23-0.23V13.5c0.71,0.75,1.7,1.18,2.73,1.18 c1.88,0,3.45-1.41,3.84-3.29C66.37,10.79,66.37,10.18,66.24,9.59L66.24,9.59z M62.08,13c-1.32,0-2.39-1.11-2.41-2.48v-0.06 c0.02-1.38,1.09-2.48,2.41-2.48s2.42,1.12,2.42,2.51S63.41,13,62.08,13z'/%3E %3Cpath class='st0' style='opacity:0.9; fill: %23FFFFFF; enable-background: new;' d='M71.67,6.32c-1.98-0.01-3.72,1.35-4.16,3.29c-0.13,0.59-0.13,1.19,0,1.77c0.44,1.94,2.17,3.32,4.17,3.3 c2.35,0,4.26-1.87,4.26-4.19S74.04,6.32,71.67,6.32z M71.65,13.01c-1.33,0-2.42-1.12-2.42-2.51s1.08-2.52,2.42-2.52 c1.33,0,2.42,1.12,2.42,2.51S72.99,13,71.65,13.01L71.65,13.01z'/%3E %3Cpath class='st1' style='opacity:0.35; enable-background:new;' d='M62.08,7.98c-1.32,0-2.39,1.11-2.41,2.48v0.06C59.68,11.9,60.75,13,62.08,13s2.42-1.12,2.42-2.51 S63.41,7.98,62.08,7.98z M62.08,11.76c-0.63,0-1.14-0.56-1.17-1.25v-0.04c0.01-0.69,0.54-1.25,1.17-1.25 c0.63,0,1.17,0.57,1.17,1.27C63.24,11.2,62.73,11.76,62.08,11.76z'/%3E %3Cpath class='st1' style='opacity:0.35; enable-background:new;' d='M71.65,7.98c-1.33,0-2.42,1.12-2.42,2.51S70.32,13,71.65,13s2.42-1.12,2.42-2.51S72.99,7.98,71.65,7.98z M71.65,11.76c-0.64,0-1.17-0.57-1.17-1.27c0-0.7,0.53-1.26,1.17-1.26s1.17,0.57,1.17,1.27C72.82,11.21,72.29,11.76,71.65,11.76z'/%3E %3Cpath class='st0' style='opacity:0.9; fill: %23FFFFFF; enable-background: new;' d='M45.74,6.53h-1.4c-0.13,0-0.23,0.11-0.23,0.23v0.73c-0.71-0.75-1.7-1.18-2.73-1.18 c-2.17,0-3.94,1.87-3.94,4.19s1.77,4.19,3.94,4.19c1.04,0,2.03-0.43,2.73-1.19v0.73c0,0.13,0.1,0.23,0.23,0.23h1.4 c0.13,0,0.23-0.11,0.23-0.23V6.74c0-0.12-0.09-0.22-0.22-0.22C45.75,6.53,45.75,6.53,45.74,6.53z M44.12,10.53 C44.11,11.9,43.03,13,41.71,13s-2.42-1.12-2.42-2.51s1.08-2.52,2.4-2.52c1.33,0,2.39,1.11,2.41,2.48L44.12,10.53z'/%3E %3Cpath class='st1' style='opacity:0.35; enable-background:new;' d='M41.71,7.98c-1.33,0-2.42,1.12-2.42,2.51S40.37,13,41.71,13s2.39-1.11,2.41-2.48v-0.06 C44.1,9.09,43.03,7.98,41.71,7.98z M40.55,10.49c0-0.7,0.52-1.27,1.17-1.27c0.64,0,1.14,0.56,1.17,1.25v0.04 c-0.01,0.68-0.53,1.24-1.17,1.24C41.08,11.75,40.55,11.19,40.55,10.49z'/%3E %3Cpath class='st0' style='opacity:0.9; fill: %23FFFFFF; enable-background: new;' d='M52.41,6.32c-1.03,0-2.03,0.42-2.73,1.18V6.75c0-0.13-0.1-0.23-0.23-0.23h-1.4c-0.13,0-0.23,0.11-0.23,0.23 v10.72c0,0.13,0.1,0.23,0.23,0.23h1.4c0.13,0,0.23-0.1,0.23-0.23V13.5c0.71,0.75,1.7,1.18,2.74,1.18c2.17,0,3.94-1.87,3.94-4.19 S54.58,6.32,52.41,6.32z M52.08,13.01c-1.32,0-2.39-1.11-2.42-2.48v-0.07c0.02-1.38,1.09-2.49,2.4-2.49c1.32,0,2.41,1.12,2.41,2.51 S53.4,13,52.08,13.01L52.08,13.01z'/%3E %3Cpath class='st1' style='opacity:0.35; enable-background:new;' d='M52.08,7.98c-1.32,0-2.39,1.11-2.42,2.48v0.06c0.03,1.38,1.1,2.48,2.42,2.48s2.41-1.12,2.41-2.51 S53.4,7.98,52.08,7.98z M52.08,11.76c-0.63,0-1.14-0.56-1.17-1.25v-0.04c0.01-0.69,0.54-1.25,1.17-1.25c0.63,0,1.17,0.58,1.17,1.27 S52.72,11.76,52.08,11.76z'/%3E %3Cpath class='st0' style='opacity:0.9; fill: %23FFFFFF; enable-background: new;' d='M36.08,14.24c0,0.13-0.1,0.23-0.23,0.23h-1.41c-0.13,0-0.23-0.11-0.23-0.23V9.68c0-0.98-0.74-1.71-1.62-1.71 c-0.8,0-1.46,0.7-1.59,1.62l0.01,4.66c0,0.13-0.11,0.23-0.23,0.23h-1.41c-0.13,0-0.23-0.11-0.23-0.23V9.68 c0-0.98-0.74-1.71-1.62-1.71c-0.85,0-1.54,0.79-1.6,1.8v4.48c0,0.13-0.1,0.23-0.23,0.23h-1.4c-0.13,0-0.23-0.11-0.23-0.23V6.74 c0.01-0.13,0.1-0.22,0.23-0.22h1.4c0.13,0,0.22,0.11,0.23,0.22V7.4c0.5-0.68,1.3-1.09,2.16-1.1h0.03c1.09,0,2.09,0.6,2.6,1.55 c0.45-0.95,1.4-1.55,2.44-1.56c1.62,0,2.93,1.25,2.9,2.78L36.08,14.24z'/%3E %3Cpath class='st1' style='opacity:0.35; enable-background:new;' d='M84.34,13.59l-0.07-0.13l-1.96-2.99l1.94-2.95c0.44-0.67,0.26-1.56-0.41-2.02c-0.02,0-0.03,0-0.04-0.01 c-0.23-0.15-0.5-0.22-0.78-0.22h-1.61c-0.56,0-1.08,0.29-1.37,0.78L79.72,6.6l-0.34-0.56C79.09,5.56,78.57,5.27,78,5.27h-1.6 c-0.6,0-1.13,0.37-1.35,0.92c-2.19-1.66-5.28-1.47-7.26,0.45c-0.35,0.34-0.65,0.72-0.89,1.14c-0.9-1.62-2.58-2.72-4.5-2.72 c-0.5,0-1.01,0.07-1.48,0.23V3.51c0-0.82-0.66-1.48-1.47-1.48h-1.4c-0.81,0-1.47,0.66-1.47,1.47v3.75 c-0.95-1.36-2.5-2.18-4.17-2.19c-0.74,0-1.46,0.16-2.12,0.47c-0.24-0.17-0.54-0.26-0.84-0.26h-1.4c-0.45,0-0.87,0.21-1.15,0.56 c-0.02-0.03-0.04-0.05-0.07-0.08c-0.28-0.3-0.68-0.47-1.09-0.47h-1.39c-0.3,0-0.6,0.09-0.84,0.26c-0.67-0.3-1.39-0.46-2.12-0.46 c-1.83,0-3.43,1-4.37,2.5c-0.2-0.46-0.48-0.89-0.83-1.25c-0.8-0.81-1.89-1.25-3.02-1.25h-0.01c-0.89,0.01-1.75,0.33-2.46,0.88 c-0.74-0.57-1.64-0.88-2.57-0.88H28.1c-0.29,0-0.58,0.03-0.86,0.11c-0.28,0.06-0.56,0.16-0.82,0.28c-0.21-0.12-0.45-0.18-0.7-0.18 h-1.4c-0.82,0-1.47,0.66-1.47,1.47v7.5c0,0.82,0.66,1.47,1.47,1.47h1.4c0.82,0,1.48-0.66,1.48-1.48l0,0V9.79 c0.03-0.36,0.23-0.59,0.36-0.59c0.18,0,0.38,0.18,0.38,0.47v4.57c0,0.82,0.66,1.47,1.47,1.47h1.41c0.82,0,1.47-0.66,1.47-1.47 l-0.01-4.57c0.06-0.32,0.25-0.47,0.35-0.47c0.18,0,0.38,0.18,0.38,0.47v4.57c0,0.82,0.66,1.47,1.47,1.47h1.41 c0.82,0,1.47-0.66,1.47-1.47v-0.38c0.96,1.29,2.46,2.06,4.06,2.06c0.74,0,1.46-0.16,2.12-0.47c0.24,0.17,0.54,0.26,0.84,0.26h1.39 c0.3,0,0.6-0.09,0.84-0.26v2.01c0,0.82,0.66,1.47,1.47,1.47h1.4c0.82,0,1.47-0.66,1.47-1.47v-1.77c0.48,0.15,0.99,0.23,1.49,0.22 c1.7,0,3.22-0.87,4.17-2.2v0.52c0,0.82,0.66,1.47,1.47,1.47h1.4c0.3,0,0.6-0.09,0.84-0.26c0.66,0.31,1.39,0.47,2.12,0.47 c1.92,0,3.6-1.1,4.49-2.73c1.54,2.65,4.95,3.53,7.58,1.98c0.18-0.11,0.36-0.22,0.53-0.36c0.22,0.55,0.76,0.91,1.35,0.9H78 c0.56,0,1.08-0.29,1.37-0.78l0.37-0.61l0.37,0.61c0.29,0.48,0.81,0.78,1.38,0.78h1.6c0.81,0,1.46-0.66,1.45-1.46 C84.49,14.02,84.44,13.8,84.34,13.59L84.34,13.59z M35.86,14.47h-1.41c-0.13,0-0.23-0.11-0.23-0.23V9.68 c0-0.98-0.74-1.71-1.62-1.71c-0.8,0-1.46,0.7-1.59,1.62l0.01,4.66c0,0.13-0.1,0.23-0.23,0.23h-1.41c-0.13,0-0.23-0.11-0.23-0.23 V9.68c0-0.98-0.74-1.71-1.62-1.71c-0.85,0-1.54,0.79-1.6,1.8v4.48c0,0.13-0.1,0.23-0.23,0.23h-1.4c-0.13,0-0.23-0.11-0.23-0.23 V6.74c0.01-0.13,0.11-0.22,0.23-0.22h1.4c0.13,0,0.22,0.11,0.23,0.22V7.4c0.5-0.68,1.3-1.09,2.16-1.1h0.03 c1.09,0,2.09,0.6,2.6,1.55c0.45-0.95,1.4-1.55,2.44-1.56c1.62,0,2.93,1.25,2.9,2.78l0.01,5.16C36.09,14.36,35.98,14.46,35.86,14.47 L35.86,14.47z M45.97,14.24c0,0.13-0.1,0.23-0.23,0.23h-1.4c-0.13,0-0.23-0.11-0.23-0.23V13.5c-0.7,0.76-1.69,1.18-2.72,1.18 c-2.17,0-3.94-1.87-3.94-4.19s1.77-4.19,3.94-4.19c1.03,0,2.02,0.43,2.73,1.18V6.74c0-0.13,0.1-0.23,0.23-0.23h1.4 c0.12-0.01,0.22,0.08,0.23,0.21c0,0.01,0,0.01,0,0.02v7.51h-0.01V14.24z M52.41,14.67c-1.03,0-2.02-0.43-2.73-1.18v3.97 c0,0.13-0.1,0.23-0.23,0.23h-1.4c-0.13,0-0.23-0.1-0.23-0.23V6.75c0-0.13,0.1-0.22,0.23-0.22h1.4c0.13,0,0.23,0.11,0.23,0.23v0.73 c0.71-0.76,1.7-1.18,2.73-1.18c2.17,0,3.94,1.86,3.94,4.18S54.58,14.67,52.41,14.67z M66.24,11.39c-0.39,1.87-1.96,3.29-3.84,3.29 c-1.03,0-2.02-0.43-2.73-1.18v0.73c0,0.13-0.1,0.23-0.23,0.23h-1.4c-0.13,0-0.23-0.11-0.23-0.23V3.51c0-0.13,0.1-0.23,0.23-0.23 h1.4c0.13,0,0.23,0.11,0.23,0.23v3.97c0.71-0.75,1.7-1.18,2.73-1.17c1.88,0,3.45,1.4,3.84,3.28C66.37,10.19,66.37,10.8,66.24,11.39 L66.24,11.39L66.24,11.39z M71.67,14.68c-2,0.01-3.73-1.35-4.17-3.3c-0.13-0.59-0.13-1.19,0-1.77c0.44-1.94,2.17-3.31,4.17-3.3 c2.36,0,4.26,1.87,4.26,4.19S74.03,14.68,71.67,14.68L71.67,14.68z M83.04,14.47h-1.61c-0.13,0-0.24-0.06-0.3-0.17l-1.44-2.39 l-1.44,2.39c-0.06,0.11-0.18,0.17-0.3,0.17h-1.61c-0.04,0-0.08-0.01-0.12-0.03c-0.09-0.06-0.13-0.19-0.06-0.28l0,0l2.43-3.68 L76.2,6.84c-0.02-0.03-0.03-0.07-0.03-0.12c0-0.12,0.09-0.21,0.21-0.21h1.61c0.13,0,0.24,0.06,0.3,0.17l1.41,2.36l1.41-2.36 c0.06-0.11,0.18-0.17,0.3-0.17h1.61c0.04,0,0.08,0.01,0.12,0.03c0.09,0.06,0.13,0.19,0.06,0.28l0,0l-2.38,3.64l2.43,3.67 c0.02,0.03,0.03,0.07,0.03,0.12C83.25,14.38,83.16,14.47,83.04,14.47L83.04,14.47L83.04,14.47z'/%3E %3Cpath class='st0' style='opacity:0.9; fill: %23FFFFFF; enable-background: new;' d='M10.5,1.24c-5.11,0-9.25,4.15-9.25,9.25s4.15,9.25,9.25,9.25s9.25-4.15,9.25-9.25 C19.75,5.38,15.61,1.24,10.5,1.24z M14.89,12.77c-1.93,1.93-4.78,2.31-6.7,2.31c-0.7,0-1.41-0.05-2.1-0.16c0,0-1.02-5.64,2.14-8.81 c0.83-0.83,1.95-1.28,3.13-1.28c1.27,0,2.49,0.51,3.39,1.42C16.59,8.09,16.64,11,14.89,12.77z'/%3E %3Cpath class='st1' style='opacity:0.35; enable-background:new;' d='M10.5-0.01C4.7-0.01,0,4.7,0,10.49s4.7,10.5,10.5,10.5S21,16.29,21,10.49C20.99,4.7,16.3-0.01,10.5-0.01z M10.5,19.74c-5.11,0-9.25-4.15-9.25-9.25s4.14-9.26,9.25-9.26s9.25,4.15,9.25,9.25C19.75,15.61,15.61,19.74,10.5,19.74z'/%3E %3Cpath class='st1' style='opacity:0.35; enable-background:new;' d='M14.74,6.25C12.9,4.41,9.98,4.35,8.23,6.1c-3.16,3.17-2.14,8.81-2.14,8.81s5.64,1.02,8.81-2.14 C16.64,11,16.59,8.09,14.74,6.25z M12.47,10.34l-0.91,1.87l-0.9-1.87L8.8,9.43l1.86-0.9l0.9-1.87l0.91,1.87l1.86,0.9L12.47,10.34z'/%3E %3Cpolygon class='st0' style='opacity:0.9; fill: %23FFFFFF; enable-background: new;' points='14.33,9.43 12.47,10.34 11.56,12.21 10.66,10.34 8.8,9.43 10.66,8.53 11.56,6.66 12.47,8.53 '/%3E%3C/g%3E%3C/svg%3E\");\n\t\t\tbackground-repeat:no-repeat;\n\t\t\tbackground-position: 0 0 ;\n\t\t\tbackground-size: 65px 20px;\n\t\t}\n\t}\n}\n\n\n","/* Requires Variables.less\n================================================== */\n@leaflet-offset: 6px;\n@map-icon-size: 44px; //52\n@map-icon-width: 32px; //38\n@map-icon-size: 52px;\n@map-icon-width: 38px;\n.vco-map {\n\t.vco-mapmarker, .vco-mapmarker-active {\n\t\tfont-family: 'vco-icons';\n\t\tspeak: none;\n\t\tfont-style: normal;\n\t\tfont-weight: normal;\n\t\tfont-variant: normal;\n\t\ttext-transform: none;\n\t\tline-height: 1;\n\n\t\t/* Better Font Rendering =========== */\n\t\t-webkit-font-smoothing: antialiased;\n\t\t-moz-osx-font-smoothing: grayscale;\n\t\t\n\t\t\n\t\twidth: @map-icon-width !important;\n\t\theight: @map-icon-size !important;\n\t\t//overflow:hidden;\n\t\ttop:-(@map-icon-size - @leaflet-offset);\n\t\tleft: -((@map-icon-width/2) - @leaflet-offset);\n\t\t\n\t} \n\t// Map Pin\n\t.vco-mapmarker:before, .vco-mapmarker-active:before {\n\t\tcontent: \"\\e600\";\n\t\tfont-size:@map-icon-size;\n\t\ttext-shadow: rgba(0,0,0, 0.66) 0px 2px 5px;\n\t\t\n\t}\n\t\n\t.vco-mapmarker {\n\t\tcolor:#a5a5a5;\n\t}\n\t.vco-mapmarker-active {\n\t\tcolor:@color-theme;\n\t}\n\t\n\t.vco-mapmarker-image-icon, .vco-mapmarker-image-icon-active {\n\t\tborder: 2px solid #a5a5a5;\n\t\tbox-shadow: 2px 2px 2px #000;\n\t\topacity:1;\n\t\t\n\t}\n\t.vco-mapmarker-image-icon {\n\t\t-webkit-filter: grayscale(100%);\n\t\t-moz-filter: grayscale(100%);\n\t\tfilter: grayscale(100%);\n\t}\n\t.vco-mapmarker-image-icon-active {\n\t\topacity:1;\n\t\tborder: 4px solid @color-theme;\n\t\t-webkit-filter: grayscale(0);\n\t\t-moz-filter: grayscale(0);\n\t\tfilter: grayscale(0);\n\t}\n\t\n\t/* Marker Media Icons\n\t================================================== */\n\t.vco-mapmarker-icon:after {\n\t\t\t//font-size:20px;\n\t\t\tfont-size:24px;\n\t\t\tcolor:#FFF; \n\t\t\ttext-align:center;\n\t\t\twidth:@map-icon-width;\n\t\t\theight: 24px;\n\t\t\toverflow:hidden;\n\t\t\t//content:'';\n\t\t\tdisplay:block;\n\t\t\tposition:absolute;\n\t\t\t//top:4px;\n\t\t\ttop:8px;\n\t\t\tleft:0px;\n\t\t\t\n\t\t\t.opacity(75);\n\t}\n\t\n\t.vco-mapmarker-active.vco-mapmarker-icon:after {\n\t\t.opacity(100);\n\t}\n\t.vco-mapmarker-icon.vco-icon-youtube:after {\n\t\t//content: \"\\e63a\";\n\t\t//font-size:22px;\n\t}\n\t.vco-icon-wikipedia:after {\n\t\t//font-size:14px;\n\t\tfont-size:16px;\n\t\t//top:10px;\n\t\ttop:12px;\n\t}\n\t.vco-icon-image:after {\n\t\ttop:6px;\n\t}\n\t.vco-icon-vine:after, .vco-icon-vimeo:after, .vco-icon-twitter:after {\n\t\t//top: 6px;\n\t\ttop: 8px;\n\t}\n\t\n\n\t\n}\n\n\n\n\n/* Mobile, iPhone and skinny\n================================================== */\n@media only screen and (max-width: 500px), only screen and (max-device-width: 500px) {\n\t.vco-map {\n\t\t.vco-mapmarker {\n\t\n\t\t}\n\t}\n}\n\n","/* Requires Variables.less\n================================================== */\n@leaflet-offset: 6px;\n@map-icon-size: 44px; //52\n@map-icon-width: 32px; //38\n@map-icon-size: 52px;\n@map-icon-width: 38px;\n.vco-map {\n\t.vco-mapimage-display:hover {\n\t\t.vco-mapmarker, .vco-mapmarker-active {\n\t\t\tdisplay:block;\n\t\t\n\t\t} \n\t}\n\t.vco-mapimage-display {\n\t\t.vco-mapmarker, .vco-mapmarker-active {\n\t\t\tdisplay:none;\n\t\t\n\t\t} \n\t\t\n\t}\n\n}\n\n.vco-map:hover {\n\t.vco-mapimage-display {\n\t\t\n\t}\n}\n\n\n/* Mobile, iPhone and skinny\n================================================== */\n@media only screen and (max-width: 500px), only screen and (max-device-width: 500px) {\n\t.vco-map {\n\t\t.vco-mapmarker {\n\t\n\t\t}\n\t}\n}\n\n","/* Requires Variables.less\n================================================== */\n.vco-map {\n\theight: 100%;\n\toverflow: hidden;\n\ttop:0px;\n\tbackground-color: @color-foreground;\n\t.vco-map-mask {\n\t\twidth: 100%;\n\t\theight:\t100%;\n\t\toverflow: hidden;\n\t\t.vco-map-display {\n\t\t\twidth: 100%;\n\t\t\theight:\t100%;\n\t\t}\n\t\t\n\t}\n\t\n}\n\n\n\n/* Mobile, iPhone and skinny\n================================================== */\n@media only screen and (max-width: 500px), only screen and (max-device-width: 500px) {\n\t.vco-map {\n\n\t}\n}\n\n",".vco-storymap {\n\n\t\n\th1, h2, h3 {\n\t\t.vco-snapmap-instagram {\n\t\t\n\t\t}\n\n\t}\n\th4, h5, h6 {\n\t\t.vco-snapmap-instagram {\n\t\t\n\t\t}\n\n\t}\n\th2.vco-headline-title {\n\t\t.vco-snapmap-instagram, .vco-snapmap-flickr {\n\t\t\ttext-align:center;\n\t\t\tdisplay:block;\n\t\t\ttext-transform: none !important;\n\t\t\ta {\n\t\t\t\tcolor:lighten(@color-dark, 40%);\n\t\t\t}\n\t\t}\n\n\t}\n\t.vco-media-instagram-likes {\n\t\tdisplay:inline-block;\n\t\tfont-family:@font-main;\n\t\tfont-weight:bold;\n\t\tmargin-top:10px;\n\t\tfont-size:12px;\n\t\tcolor: lighten(@color-dark, 40%);\n\t\t/*\n\t\t&:before {\n\t\t\tcontent:'\\2665';\n\t\t\tmargin-right:3px;\n\t\t\tfont-weight:normal;\n\t\t\tfont-size:14px;\n\t\t}\n\t\t*/\n\t\t&:after {\n\t\t\tcontent:'Likes';\n\t\t\tmargin-left:3px;\n\t\t\tcolor:#999;\n\t\t\tfont-weight:normal;\n\t\t\tmargin-right:10px;\n\t\t}\n\t}\n\t.vco-snapmap-user-description, .vco-snapmap-user-location {\n\t\tfont-family:@font-main;\n\t\t//font-size:12px;\n\t\t//width:50%;\n\t\tdisplay:block;\n\t\t\n\t}\n\t\n\t.vco-snapmap-instagram-text {\n\t\ttext-align:center;\n\t\tdisplay:none;\n\t\ta {\n\t\t\tcolor:#000;\n\t\t}\n\t\t.vco-snapmap-instagram-posts,\n\t\t.vco-snapmap-instagram-followed_by,\n\t\t.vco-snapmap-instagram-follows,\n\t\t.vco-snapmap-instagram-website,\n\t\t.vco-snapmap-instagram-website a {\n\t\t\tdisplay:inline-block;\n\t\t\tfont-family:@font-main;\n\t\t\tfont-weight:bold;\n\t\t\tmargin-top:10px;\n\t\t\tfont-size:12px;\n\t\t\tmargin-left:20px;\n\t\t\t&:after {\n\t\t\t\tmargin-left:3px;\n\t\t\t\tcolor:#999;\n\t\t\t\tfont-weight:normal;\n\t\t\t}\n\t\t}\n\t\t.vco-snapmap-instagram-posts:after {\n\t\t\tcontent:'Posts';\n\t\t}\n\t\t\n\t\t.vco-snapmap-instagram-followed_by:after {\n\t\t\tcontent:'Followers';\n\t\t}\n\t\t\n\t\t.vco-snapmap-instagram-follows:after {\n\t\t\tcontent:'Following';\n\t\t}\n\t\t\n\t\t.vco-snapmap-instagram-website,\n\t\t.vco-snapmap-instagram-website a {\n\t\t\tfont-weight:normal;\n\t\t\tdisplay:block;\n\t\t\tmargin:0;\n\t\t\tcolor:#999;\n\t\t\t&:after {\n\t\t\t\tmargin-left:0;\n\t\t\t\tcolor:#999;\n\t\t\t\tfont-weight:normal;\n\t\t\t}\n\t\t}\n\t\t\n\t\t.vco-snapmap-instagram-bio {\n\t\t}\n\t}\n\t\n\t.vco-snapmap-user-location {\n\t\tfont-weight:bold;\n\t\tfont-size:12px;\n\t\ttext-align:center;\n\t}\n\t.vco-snapmap-flickr-views {\n\t\tdisplay:block;\n\t\tfont-family:@font-main;\n\t\tfont-weight:bold;\n\t\tmargin-top:10px;\n\t\tfont-size:12px;\n\t\t&:before {\n\t\t\t\n\t\t}\n\t\t&:after {\n\t\t\tcontent:'Views';\n\t\t\tmargin-left:3px;\n\t\t\tcolor:#999;\n\t\t\tfont-weight:normal;\n\t\t}\n\t}\n}\n","\n/* simplified from https://jekyllcodex.org/without-plugin/lightbox/ */\n#lightbox {\n width: 100%;\n height: 100%;\n position: fixed;\n top: 0;\n left: 0;\n background: rgba(0,0,0,0.85);\n z-index: 9999999;\n line-height: 0;\n cursor: pointer;\n display: none;\n}\n#lightbox .img {\n position: relative;\n top: 50%;\n left: 50%;\n transform: translate(-50%,-50%);\n max-width: 100%;\n max-height: 100%;\n}\n#lightbox .img img {\n opacity: 0;\n pointer-events: none;\n width: auto;\n}\n@media screen and (min-width: 1200px) {\n #lightbox .img {\n max-width: 1200px;\n }\n}\n@media screen and (min-height: 1200px) {\n #lightbox .img {\n max-height: 1200px;\n }\n}\n#lightbox #close {\n height: 50px;\n width: 50px;\n position: fixed;\n cursor: pointer;\n text-decoration: none;\n z-index: 99;\n right: 0;\n top: 0;\n}\n#lightbox #close:after, #lightbox #close:before {\n position: absolute;\n margin-top: 22px;\n margin-left: 14px;\n content: \"\";\n height: 3px;\n background: white;\n width: 23px;\n transform-origin: 50% 50%;\n transform: rotate(-45deg);\n}\n#lightbox #close:after {\n transform: rotate(45deg);\n}\n#lightbox, #lightbox * {\n user-select: none;\n}\n"],"names":[],"sourceRoot":""}
\ No newline at end of file
diff --git a/dist/js/storymap.js b/dist/js/storymap.js
index eca6e46..414a90e 100644
--- a/dist/js/storymap.js
+++ b/dist/js/storymap.js
@@ -1,3 +1,2 @@
-/*! For license information please see storymap.js.LICENSE.txt */
-var KLStoryMap;(()=>{var t={481:function(t,e){!function(t){"use strict";var e="1.9.4";function i(t){var e,i,o,n;for(i=1,o=arguments.length;i0?Math.floor(t):Math.ceil(t)};function A(t,e,i){return t instanceof Z?t:f(t)?new Z(t[0],t[1]):null==t?t:"object"==typeof t&&"x"in t&&"y"in t?new Z(t.x,t.y):new Z(t,e,i)}function D(t,e){if(t)for(var i=e?[t,e]:t,o=0,n=i.length;o=this.min.x&&i.x<=this.max.x&&e.y>=this.min.y&&i.y<=this.max.y},intersects:function(t){t=I(t);var e=this.min,i=this.max,o=t.min,n=t.max,s=n.x>=e.x&&o.x<=i.x,a=n.y>=e.y&&o.y<=i.y;return s&&a},overlaps:function(t){t=I(t);var e=this.min,i=this.max,o=t.min,n=t.max,s=n.x>e.x&&o.xe.y&&o.y=o.lat&&i.lat<=n.lat&&e.lng>=o.lng&&i.lng<=n.lng},intersects:function(t){t=j(t);var e=this._southWest,i=this._northEast,o=t.getSouthWest(),n=t.getNorthEast(),s=n.lat>=e.lat&&o.lat<=i.lat,a=n.lng>=e.lng&&o.lng<=i.lng;return s&&a},overlaps:function(t){t=j(t);var e=this._southWest,i=this._northEast,o=t.getSouthWest(),n=t.getNorthEast(),s=n.lat>e.lat&&o.late.lng&&o.lng1,Ct=function(){var t=!1;try{var e=Object.defineProperty({},"passive",{get:function(){t=!0}});window.addEventListener("testPassiveEventSupport",l,e),window.removeEventListener("testPassiveEventSupport",l,e)}catch(t){}return t}(),Ot=!!document.createElement("canvas").getContext,Et=!(!document.createElementNS||!X("svg").createSVGRect),Zt=!!Et&&((Q=document.createElement("div")).innerHTML=" ","http://www.w3.org/2000/svg"===(Q.firstChild&&Q.firstChild.namespaceURI)),Bt=!Et&&function(){try{var t=document.createElement("div");t.innerHTML=' ';var e=t.firstChild;return e.style.behavior="url(#default#VML)",e&&"object"==typeof e.adj}catch(t){return!1}}(),At=0===navigator.platform.indexOf("Mac"),Dt=0===navigator.platform.indexOf("Linux");function It(t){return navigator.userAgent.toLowerCase().indexOf(t)>=0}var Nt={ie:et,ielt9:it,edge:ot,webkit:nt,android:st,android23:at,androidStock:ht,opera:lt,chrome:ct,gecko:dt,safari:_t,phantom:ut,opera12:pt,win:mt,ie3d:gt,webkit3d:ft,gecko3d:vt,any3d:yt,mobile:wt,mobileWebkit:bt,mobileWebkit3d:xt,msPointer:kt,pointer:Mt,touch:Tt,touchNative:Lt,mobileOpera:Pt,mobileGecko:zt,retina:St,passiveEvents:Ct,canvas:Ot,svg:Et,vml:Bt,inlineSvg:Zt,mac:At,linux:Dt},jt=Nt.msPointer?"MSPointerDown":"pointerdown",Rt=Nt.msPointer?"MSPointerMove":"pointermove",Ht=Nt.msPointer?"MSPointerUp":"pointerup",Ft=Nt.msPointer?"MSPointerCancel":"pointercancel",Wt={touchstart:jt,touchmove:Rt,touchend:Ht,touchcancel:Ft},Vt={touchstart:te,touchmove:Qt,touchend:Qt,touchcancel:Qt},qt={},Ut=!1;function Kt(t,e,i){return"touchstart"===e&&$t(),Vt[e]?(i=Vt[e].bind(this,i),t.addEventListener(Wt[e],i,!1),i):(console.warn("wrong event specified:",e),l)}function Gt(t,e,i){Wt[e]?t.removeEventListener(Wt[e],i,!1):console.warn("wrong event specified:",e)}function Yt(t){qt[t.pointerId]=t}function Jt(t){qt[t.pointerId]&&(qt[t.pointerId]=t)}function Xt(t){delete qt[t.pointerId]}function $t(){Ut||(document.addEventListener(jt,Yt,!0),document.addEventListener(Rt,Jt,!0),document.addEventListener(Ht,Xt,!0),document.addEventListener(Ft,Xt,!0),Ut=!0)}function Qt(t,e){if(e.pointerType!==(e.MSPOINTER_TYPE_MOUSE||"mouse")){for(var i in e.touches=[],qt)e.touches.push(qt[i]);e.changedTouches=[e],t(e)}}function te(t,e){e.MSPOINTER_TYPE_TOUCH&&e.pointerType===e.MSPOINTER_TYPE_TOUCH&&Ye(e),Qt(t,e)}function ee(t){var e,i,o={};for(i in t)e=t[i],o[i]=e&&e.bind?e.bind(t):e;return t=o,o.type="dblclick",o.detail=2,o.isTrusted=!1,o._simulated=!0,o}var ie=200;function oe(t,e){t.addEventListener("dblclick",e);var i,o=0;function n(t){if(1===t.detail){if("mouse"!==t.pointerType&&(!t.sourceCapabilities||t.sourceCapabilities.firesTouchEvents)){var n=Xe(t);if(!n.some((function(t){return t instanceof HTMLLabelElement&&t.attributes.for}))||n.some((function(t){return t instanceof HTMLInputElement||t instanceof HTMLSelectElement}))){var s=Date.now();s-o<=ie?2==++i&&e(ee(t)):i=1,o=s}}}else i=t.detail}return t.addEventListener("click",n),{dblclick:e,simDblclick:n}}function ne(t,e){t.removeEventListener("dblclick",e.dblclick),t.removeEventListener("click",e.simDblclick)}var se,ae,re,he,le,ce=Pe(["transform","webkitTransform","OTransform","MozTransform","msTransform"]),de=Pe(["webkitTransition","transition","OTransition","MozTransition","msTransition"]),_e="webkitTransition"===de||"OTransition"===de?de+"End":"transitionend";function ue(t){return"string"==typeof t?document.getElementById(t):t}function pe(t,e){var i=t.style[e]||t.currentStyle&&t.currentStyle[e];if((!i||"auto"===i)&&document.defaultView){var o=document.defaultView.getComputedStyle(t,null);i=o?o[e]:null}return"auto"===i?null:i}function me(t,e,i){var o=document.createElement(t);return o.className=e||"",i&&i.appendChild(o),o}function ge(t){var e=t.parentNode;e&&e.removeChild(t)}function fe(t){for(;t.firstChild;)t.removeChild(t.firstChild)}function ve(t){var e=t.parentNode;e&&e.lastChild!==t&&e.appendChild(t)}function ye(t){var e=t.parentNode;e&&e.firstChild!==t&&e.insertBefore(t,e.firstChild)}function we(t,e){if(void 0!==t.classList)return t.classList.contains(e);var i=Me(t);return i.length>0&&new RegExp("(^|\\s)"+e+"(\\s|$)").test(i)}function be(t,e){if(void 0!==t.classList)for(var i=_(e),o=0,n=i.length;o0?2*window.devicePixelRatio:1;function ti(t){return Nt.edge?t.wheelDeltaY/2:t.deltaY&&0===t.deltaMode?-t.deltaY/Qe:t.deltaY&&1===t.deltaMode?20*-t.deltaY:t.deltaY&&2===t.deltaMode?60*-t.deltaY:t.deltaX||t.deltaZ?0:t.wheelDelta?(t.wheelDeltaY||t.wheelDelta)/2:t.detail&&Math.abs(t.detail)<32765?20*-t.detail:t.detail?t.detail/-32765*60:0}function ei(t,e){var i=e.relatedTarget;if(!i)return!0;try{for(;i&&i!==t;)i=i.parentNode}catch(t){return!1}return i!==t}var ii={__proto__:null,on:je,off:He,stopPropagation:Ue,disableScrollPropagation:Ke,disableClickPropagation:Ge,preventDefault:Ye,stop:Je,getPropagationPath:Xe,getMousePosition:$e,getWheelDelta:ti,isExternalTarget:ei,addListener:je,removeListener:He},oi=E.extend({run:function(t,e,i,o){this.stop(),this._el=t,this._inProgress=!0,this._duration=i||.25,this._easeOutPower=1/Math.max(o||.5,.2),this._startPos=Ce(t),this._offset=e.subtract(this._startPos),this._startTime=+new Date,this.fire("start"),this._animate()},stop:function(){this._inProgress&&(this._step(!0),this._complete())},_animate:function(){this._animId=T(this._animate,this),this._step()},_step:function(t){var e=+new Date-this._startTime,i=1e3*this._duration;ethis.options.maxZoom)?this.setZoom(t):this},panInsideBounds:function(t,e){this._enforcingBounds=!0;var i=this.getCenter(),o=this._limitCenter(i,this._zoom,j(t));return i.equals(o)||this.panTo(o,e),this._enforcingBounds=!1,this},panInside:function(t,e){var i=A((e=e||{}).paddingTopLeft||e.padding||[0,0]),o=A(e.paddingBottomRight||e.padding||[0,0]),n=this.project(this.getCenter()),s=this.project(t),a=this.getPixelBounds(),r=I([a.min.add(i),a.max.subtract(o)]),h=r.getSize();if(!r.contains(s)){this._enforcingBounds=!0;var l=s.subtract(r.getCenter()),c=r.extend(s).getSize().subtract(h);n.x+=l.x<0?-c.x:c.x,n.y+=l.y<0?-c.y:c.y,this.panTo(this.unproject(n),e),this._enforcingBounds=!1}return this},invalidateSize:function(t){if(!this._loaded)return this;t=i({animate:!1,pan:!0},!0===t?{animate:!0}:t);var e=this.getSize();this._sizeChanged=!0,this._lastCenter=null;var o=this.getSize(),s=e.divideBy(2).round(),a=o.divideBy(2).round(),r=s.subtract(a);return r.x||r.y?(t.animate&&t.pan?this.panBy(r):(t.pan&&this._rawPanBy(r),this.fire("move"),t.debounceMoveend?(clearTimeout(this._sizeTimer),this._sizeTimer=setTimeout(n(this.fire,this,"moveend"),200)):this.fire("moveend")),this.fire("resize",{oldSize:e,newSize:o})):this},stop:function(){return this.setZoom(this._limitZoom(this._zoom)),this.options.zoomSnap||this.fire("viewreset"),this._stop()},locate:function(t){if(t=this._locateOptions=i({timeout:1e4,watch:!1},t),!("geolocation"in navigator))return this._handleGeolocationError({code:0,message:"Geolocation not supported."}),this;var e=n(this._handleGeolocationResponse,this),o=n(this._handleGeolocationError,this);return t.watch?this._locationWatchId=navigator.geolocation.watchPosition(e,o,t):navigator.geolocation.getCurrentPosition(e,o,t),this},stopLocate:function(){return navigator.geolocation&&navigator.geolocation.clearWatch&&navigator.geolocation.clearWatch(this._locationWatchId),this._locateOptions&&(this._locateOptions.setView=!1),this},_handleGeolocationError:function(t){if(this._container._leaflet_id){var e=t.code,i=t.message||(1===e?"permission denied":2===e?"position unavailable":"timeout");this._locateOptions.setView&&!this._loaded&&this.fitWorld(),this.fire("locationerror",{code:e,message:"Geolocation error: "+i+"."})}},_handleGeolocationResponse:function(t){if(this._container._leaflet_id){var e=new R(t.coords.latitude,t.coords.longitude),i=e.toBounds(2*t.coords.accuracy),o=this._locateOptions;if(o.setView){var n=this.getBoundsZoom(i);this.setView(e,o.maxZoom?Math.min(n,o.maxZoom):n)}var s={latlng:e,bounds:i,timestamp:t.timestamp};for(var a in t.coords)"number"==typeof t.coords[a]&&(s[a]=t.coords[a]);this.fire("locationfound",s)}},addHandler:function(t,e){if(!e)return this;var i=this[t]=new e(this);return this._handlers.push(i),this.options[t]&&i.enable(),this},remove:function(){if(this._initEvents(!0),this.options.maxBounds&&this.off("moveend",this._panInsideMaxBounds),this._containerId!==this._container._leaflet_id)throw new Error("Map container is being reused by another instance");try{delete this._container._leaflet_id,delete this._containerId}catch(t){this._container._leaflet_id=void 0,this._containerId=void 0}var t;for(t in void 0!==this._locationWatchId&&this.stopLocate(),this._stop(),ge(this._mapPane),this._clearControlPos&&this._clearControlPos(),this._resizeRequest&&(P(this._resizeRequest),this._resizeRequest=null),this._clearHandlers(),this._loaded&&this.fire("unload"),this._layers)this._layers[t].remove();for(t in this._panes)ge(this._panes[t]);return this._layers=[],this._panes=[],delete this._mapPane,delete this._renderer,this},createPane:function(t,e){var i=me("div","leaflet-pane"+(t?" leaflet-"+t.replace("Pane","")+"-pane":""),e||this._mapPane);return t&&(this._panes[t]=i),i},getCenter:function(){return this._checkIfLoaded(),this._lastCenter&&!this._moved()?this._lastCenter.clone():this.layerPointToLatLng(this._getCenterLayerPoint())},getZoom:function(){return this._zoom},getBounds:function(){var t=this.getPixelBounds();return new N(this.unproject(t.getBottomLeft()),this.unproject(t.getTopRight()))},getMinZoom:function(){return void 0===this.options.minZoom?this._layersMinZoom||0:this.options.minZoom},getMaxZoom:function(){return void 0===this.options.maxZoom?void 0===this._layersMaxZoom?1/0:this._layersMaxZoom:this.options.maxZoom},getBoundsZoom:function(t,e,i){t=j(t),i=A(i||[0,0]);var o=this.getZoom()||0,n=this.getMinZoom(),s=this.getMaxZoom(),a=t.getNorthWest(),r=t.getSouthEast(),h=this.getSize().subtract(i),l=I(this.project(r,o),this.project(a,o)).getSize(),c=Nt.any3d?this.options.zoomSnap:1,d=h.x/l.x,_=h.y/l.y,u=e?Math.max(d,_):Math.min(d,_);return o=this.getScaleZoom(u,o),c&&(o=Math.round(o/(c/100))*(c/100),o=e?Math.ceil(o/c)*c:Math.floor(o/c)*c),Math.max(n,Math.min(s,o))},getSize:function(){return this._size&&!this._sizeChanged||(this._size=new Z(this._container.clientWidth||0,this._container.clientHeight||0),this._sizeChanged=!1),this._size.clone()},getPixelBounds:function(t,e){var i=this._getTopLeftPoint(t,e);return new D(i,i.add(this.getSize()))},getPixelOrigin:function(){return this._checkIfLoaded(),this._pixelOrigin},getPixelWorldBounds:function(t){return this.options.crs.getProjectedBounds(void 0===t?this.getZoom():t)},getPane:function(t){return"string"==typeof t?this._panes[t]:t},getPanes:function(){return this._panes},getContainer:function(){return this._container},getZoomScale:function(t,e){var i=this.options.crs;return e=void 0===e?this._zoom:e,i.scale(t)/i.scale(e)},getScaleZoom:function(t,e){var i=this.options.crs;e=void 0===e?this._zoom:e;var o=i.zoom(t*i.scale(e));return isNaN(o)?1/0:o},project:function(t,e){return e=void 0===e?this._zoom:e,this.options.crs.latLngToPoint(H(t),e)},unproject:function(t,e){return e=void 0===e?this._zoom:e,this.options.crs.pointToLatLng(A(t),e)},layerPointToLatLng:function(t){var e=A(t).add(this.getPixelOrigin());return this.unproject(e)},latLngToLayerPoint:function(t){return this.project(H(t))._round()._subtract(this.getPixelOrigin())},wrapLatLng:function(t){return this.options.crs.wrapLatLng(H(t))},wrapLatLngBounds:function(t){return this.options.crs.wrapLatLngBounds(j(t))},distance:function(t,e){return this.options.crs.distance(H(t),H(e))},containerPointToLayerPoint:function(t){return A(t).subtract(this._getMapPanePos())},layerPointToContainerPoint:function(t){return A(t).add(this._getMapPanePos())},containerPointToLatLng:function(t){var e=this.containerPointToLayerPoint(A(t));return this.layerPointToLatLng(e)},latLngToContainerPoint:function(t){return this.layerPointToContainerPoint(this.latLngToLayerPoint(H(t)))},mouseEventToContainerPoint:function(t){return $e(t,this._container)},mouseEventToLayerPoint:function(t){return this.containerPointToLayerPoint(this.mouseEventToContainerPoint(t))},mouseEventToLatLng:function(t){return this.layerPointToLatLng(this.mouseEventToLayerPoint(t))},_initContainer:function(t){var e=this._container=ue(t);if(!e)throw new Error("Map container not found.");if(e._leaflet_id)throw new Error("Map container is already initialized.");je(e,"scroll",this._onScroll,this),this._containerId=a(e)},_initLayout:function(){var t=this._container;this._fadeAnimated=this.options.fadeAnimation&&Nt.any3d,be(t,"leaflet-container"+(Nt.touch?" leaflet-touch":"")+(Nt.retina?" leaflet-retina":"")+(Nt.ielt9?" leaflet-oldie":"")+(Nt.safari?" leaflet-safari":"")+(this._fadeAnimated?" leaflet-fade-anim":""));var e=pe(t,"position");"absolute"!==e&&"relative"!==e&&"fixed"!==e&&"sticky"!==e&&(t.style.position="relative"),this._initPanes(),this._initControlPos&&this._initControlPos()},_initPanes:function(){var t=this._panes={};this._paneRenderers={},this._mapPane=this.createPane("mapPane",this._container),Se(this._mapPane,new Z(0,0)),this.createPane("tilePane"),this.createPane("overlayPane"),this.createPane("shadowPane"),this.createPane("markerPane"),this.createPane("tooltipPane"),this.createPane("popupPane"),this.options.markerZoomAnimation||(be(t.markerPane,"leaflet-zoom-hide"),be(t.shadowPane,"leaflet-zoom-hide"))},_resetView:function(t,e,i){Se(this._mapPane,new Z(0,0));var o=!this._loaded;this._loaded=!0,e=this._limitZoom(e),this.fire("viewprereset");var n=this._zoom!==e;this._moveStart(n,i)._move(t,e)._moveEnd(n),this.fire("viewreset"),o&&this.fire("load")},_moveStart:function(t,e){return t&&this.fire("zoomstart"),e||this.fire("movestart"),this},_move:function(t,e,i,o){void 0===e&&(e=this._zoom);var n=this._zoom!==e;return this._zoom=e,this._lastCenter=t,this._pixelOrigin=this._getNewPixelOrigin(t),o?i&&i.pinch&&this.fire("zoom",i):((n||i&&i.pinch)&&this.fire("zoom",i),this.fire("move",i)),this},_moveEnd:function(t){return t&&this.fire("zoomend"),this.fire("moveend")},_stop:function(){return P(this._flyToFrame),this._panAnim&&this._panAnim.stop(),this},_rawPanBy:function(t){Se(this._mapPane,this._getMapPanePos().subtract(t))},_getZoomSpan:function(){return this.getMaxZoom()-this.getMinZoom()},_panInsideMaxBounds:function(){this._enforcingBounds||this.panInsideBounds(this.options.maxBounds)},_checkIfLoaded:function(){if(!this._loaded)throw new Error("Set map center and zoom first.")},_initEvents:function(t){this._targets={},this._targets[a(this._container)]=this;var e=t?He:je;e(this._container,"click dblclick mousedown mouseup mouseover mouseout mousemove contextmenu keypress keydown keyup",this._handleDOMEvent,this),this.options.trackResize&&e(window,"resize",this._onResize,this),Nt.any3d&&this.options.transform3DLimit&&(t?this.off:this.on).call(this,"moveend",this._onMoveEnd)},_onResize:function(){P(this._resizeRequest),this._resizeRequest=T((function(){this.invalidateSize({debounceMoveend:!0})}),this)},_onScroll:function(){this._container.scrollTop=0,this._container.scrollLeft=0},_onMoveEnd:function(){var t=this._getMapPanePos();Math.max(Math.abs(t.x),Math.abs(t.y))>=this.options.transform3DLimit&&this._resetView(this.getCenter(),this.getZoom())},_findEventTargets:function(t,e){for(var i,o=[],n="mouseout"===e||"mouseover"===e,s=t.target||t.srcElement,r=!1;s;){if((i=this._targets[a(s)])&&("click"===e||"preclick"===e)&&this._draggableMoved(i)){r=!0;break}if(i&&i.listens(e,!0)){if(n&&!ei(s,t))break;if(o.push(i),n)break}if(s===this._container)break;s=s.parentNode}return o.length||r||n||!this.listens(e,!0)||(o=[this]),o},_isClickDisabled:function(t){for(;t&&t!==this._container;){if(t._leaflet_disable_click)return!0;t=t.parentNode}},_handleDOMEvent:function(t){var e=t.target||t.srcElement;if(!(!this._loaded||e._leaflet_disable_events||"click"===t.type&&this._isClickDisabled(e))){var i=t.type;"mousedown"===i&&Be(e),this._fireDOMEvent(t,i)}},_mouseEvents:["click","dblclick","mouseover","mouseout","contextmenu"],_fireDOMEvent:function(t,e,o){if("click"===t.type){var n=i({},t);n.type="preclick",this._fireDOMEvent(n,n.type,o)}var s=this._findEventTargets(t,e);if(o){for(var a=[],r=0;r0?Math.round(t-e)/2:Math.max(0,Math.ceil(t))-Math.max(0,Math.floor(e))},_limitZoom:function(t){var e=this.getMinZoom(),i=this.getMaxZoom(),o=Nt.any3d?this.options.zoomSnap:1;return o&&(t=Math.round(t/o)*o),Math.max(e,Math.min(i,t))},_onPanTransitionStep:function(){this.fire("move")},_onPanTransitionEnd:function(){xe(this._mapPane,"leaflet-pan-anim"),this.fire("moveend")},_tryAnimatedPan:function(t,e){var i=this._getCenterOffset(t)._trunc();return!(!0!==(e&&e.animate)&&!this.getSize().contains(i)||(this.panBy(i,e),0))},_createAnimProxy:function(){var t=this._proxy=me("div","leaflet-proxy leaflet-zoom-animated");this._panes.mapPane.appendChild(t),this.on("zoomanim",(function(t){var e=ce,i=this._proxy.style[e];ze(this._proxy,this.project(t.center,t.zoom),this.getZoomScale(t.zoom,1)),i===this._proxy.style[e]&&this._animatingZoom&&this._onZoomTransitionEnd()}),this),this.on("load moveend",this._animMoveEnd,this),this._on("unload",this._destroyAnimProxy,this)},_destroyAnimProxy:function(){ge(this._proxy),this.off("load moveend",this._animMoveEnd,this),delete this._proxy},_animMoveEnd:function(){var t=this.getCenter(),e=this.getZoom();ze(this._proxy,this.project(t,e),this.getZoomScale(e,1))},_catchTransitionEnd:function(t){this._animatingZoom&&t.propertyName.indexOf("transform")>=0&&this._onZoomTransitionEnd()},_nothingToAnimate:function(){return!this._container.getElementsByClassName("leaflet-zoom-animated").length},_tryAnimatedZoom:function(t,e,i){if(this._animatingZoom)return!0;if(i=i||{},!this._zoomAnimated||!1===i.animate||this._nothingToAnimate()||Math.abs(e-this._zoom)>this.options.zoomAnimationThreshold)return!1;var o=this.getZoomScale(e),n=this._getCenterOffset(t)._divideBy(1-1/o);return!(!0!==i.animate&&!this.getSize().contains(n)||(T((function(){this._moveStart(!0,i.noMoveStart||!1)._animateZoom(t,e,!0)}),this),0))},_animateZoom:function(t,e,i,o){this._mapPane&&(i&&(this._animatingZoom=!0,this._animateToCenter=t,this._animateToZoom=e,be(this._mapPane,"leaflet-zoom-anim")),this.fire("zoomanim",{center:t,zoom:e,noUpdate:o}),this._tempFireZoomEvent||(this._tempFireZoomEvent=this._zoom!==this._animateToZoom),this._move(this._animateToCenter,this._animateToZoom,void 0,!0),setTimeout(n(this._onZoomTransitionEnd,this),250))},_onZoomTransitionEnd:function(){this._animatingZoom&&(this._mapPane&&xe(this._mapPane,"leaflet-zoom-anim"),this._animatingZoom=!1,this._move(this._animateToCenter,this._animateToZoom,void 0,!0),this._tempFireZoomEvent&&this.fire("zoom"),delete this._tempFireZoomEvent,this.fire("move"),this._moveEnd(!0))}});function si(t,e){return new ni(t,e)}var ai=S.extend({options:{position:"topright"},initialize:function(t){u(this,t)},getPosition:function(){return this.options.position},setPosition:function(t){var e=this._map;return e&&e.removeControl(this),this.options.position=t,e&&e.addControl(this),this},getContainer:function(){return this._container},addTo:function(t){this.remove(),this._map=t;var e=this._container=this.onAdd(t),i=this.getPosition(),o=t._controlCorners[i];return be(e,"leaflet-control"),-1!==i.indexOf("bottom")?o.insertBefore(e,o.firstChild):o.appendChild(e),this._map.on("unload",this.remove,this),this},remove:function(){return this._map?(ge(this._container),this.onRemove&&this.onRemove(this._map),this._map.off("unload",this.remove,this),this._map=null,this):this},_refocusOnMap:function(t){this._map&&t&&t.screenX>0&&t.screenY>0&&this._map.getContainer().focus()}}),ri=function(t){return new ai(t)};ni.include({addControl:function(t){return t.addTo(this),this},removeControl:function(t){return t.remove(),this},_initControlPos:function(){var t=this._controlCorners={},e="leaflet-",i=this._controlContainer=me("div",e+"control-container",this._container);function o(o,n){var s=e+o+" "+e+n;t[o+n]=me("div",s,i)}o("top","left"),o("top","right"),o("bottom","left"),o("bottom","right")},_clearControlPos:function(){for(var t in this._controlCorners)ge(this._controlCorners[t]);ge(this._controlContainer),delete this._controlCorners,delete this._controlContainer}});var hi=ai.extend({options:{collapsed:!0,position:"topright",autoZIndex:!0,hideSingleBase:!1,sortLayers:!1,sortFunction:function(t,e,i,o){return i1,this._baseLayersList.style.display=t?"":"none"),this._separator.style.display=e&&t?"":"none",this},_onLayerChange:function(t){this._handlingClick||this._update();var e=this._getLayer(a(t.target)),i=e.overlay?"add"===t.type?"overlayadd":"overlayremove":"add"===t.type?"baselayerchange":null;i&&this._map.fire(i,e)},_createRadioElement:function(t,e){var i=' ",o=document.createElement("div");return o.innerHTML=i,o.firstChild},_addItem:function(t){var e,i=document.createElement("label"),o=this._map.hasLayer(t.layer);t.overlay?((e=document.createElement("input")).type="checkbox",e.className="leaflet-control-layers-selector",e.defaultChecked=o):e=this._createRadioElement("leaflet-base-layers_"+a(this),o),this._layerControlInputs.push(e),e.layerId=a(t.layer),je(e,"click",this._onInputClick,this);var n=document.createElement("span");n.innerHTML=" "+t.name;var s=document.createElement("span");return i.appendChild(s),s.appendChild(e),s.appendChild(n),(t.overlay?this._overlaysList:this._baseLayersList).appendChild(i),this._checkDisabledLayers(),i},_onInputClick:function(){if(!this._preventClick){var t,e,i=this._layerControlInputs,o=[],n=[];this._handlingClick=!0;for(var s=i.length-1;s>=0;s--)t=i[s],e=this._getLayer(t.layerId).layer,t.checked?o.push(e):t.checked||n.push(e);for(s=0;s=0;n--)t=i[n],e=this._getLayer(t.layerId).layer,t.disabled=void 0!==e.options.minZoom&&oe.options.maxZoom},_expandIfNotCollapsed:function(){return this._map&&!this.options.collapsed&&this.expand(),this},_expandSafely:function(){var t=this._section;this._preventClick=!0,je(t,"click",Ye),this.expand();var e=this;setTimeout((function(){He(t,"click",Ye),e._preventClick=!1}))}}),li=function(t,e,i){return new hi(t,e,i)},ci=ai.extend({options:{position:"topleft",zoomInText:'+ ',zoomInTitle:"Zoom in",zoomOutText:'− ',zoomOutTitle:"Zoom out"},onAdd:function(t){var e="leaflet-control-zoom",i=me("div",e+" leaflet-bar"),o=this.options;return this._zoomInButton=this._createButton(o.zoomInText,o.zoomInTitle,e+"-in",i,this._zoomIn),this._zoomOutButton=this._createButton(o.zoomOutText,o.zoomOutTitle,e+"-out",i,this._zoomOut),this._updateDisabled(),t.on("zoomend zoomlevelschange",this._updateDisabled,this),i},onRemove:function(t){t.off("zoomend zoomlevelschange",this._updateDisabled,this)},disable:function(){return this._disabled=!0,this._updateDisabled(),this},enable:function(){return this._disabled=!1,this._updateDisabled(),this},_zoomIn:function(t){!this._disabled&&this._map._zoomthis._map.getMinZoom()&&this._map.zoomOut(this._map.options.zoomDelta*(t.shiftKey?3:1))},_createButton:function(t,e,i,o,n){var s=me("a",i,o);return s.innerHTML=t,s.href="#",s.title=e,s.setAttribute("role","button"),s.setAttribute("aria-label",e),Ge(s),je(s,"click",Je),je(s,"click",n,this),je(s,"click",this._refocusOnMap,this),s},_updateDisabled:function(){var t=this._map,e="leaflet-disabled";xe(this._zoomInButton,e),xe(this._zoomOutButton,e),this._zoomInButton.setAttribute("aria-disabled","false"),this._zoomOutButton.setAttribute("aria-disabled","false"),(this._disabled||t._zoom===t.getMinZoom())&&(be(this._zoomOutButton,e),this._zoomOutButton.setAttribute("aria-disabled","true")),(this._disabled||t._zoom===t.getMaxZoom())&&(be(this._zoomInButton,e),this._zoomInButton.setAttribute("aria-disabled","true"))}});ni.mergeOptions({zoomControl:!0}),ni.addInitHook((function(){this.options.zoomControl&&(this.zoomControl=new ci,this.addControl(this.zoomControl))}));var di=function(t){return new ci(t)},_i=ai.extend({options:{position:"bottomleft",maxWidth:100,metric:!0,imperial:!0},onAdd:function(t){var e="leaflet-control-scale",i=me("div",e),o=this.options;return this._addScales(o,e+"-line",i),t.on(o.updateWhenIdle?"moveend":"move",this._update,this),t.whenReady(this._update,this),i},onRemove:function(t){t.off(this.options.updateWhenIdle?"moveend":"move",this._update,this)},_addScales:function(t,e,i){t.metric&&(this._mScale=me("div",e,i)),t.imperial&&(this._iScale=me("div",e,i))},_update:function(){var t=this._map,e=t.getSize().y/2,i=t.distance(t.containerPointToLatLng([0,e]),t.containerPointToLatLng([this.options.maxWidth,e]));this._updateScales(i)},_updateScales:function(t){this.options.metric&&t&&this._updateMetric(t),this.options.imperial&&t&&this._updateImperial(t)},_updateMetric:function(t){var e=this._getRoundNum(t),i=e<1e3?e+" m":e/1e3+" km";this._updateScale(this._mScale,i,e/t)},_updateImperial:function(t){var e,i,o,n=3.2808399*t;n>5280?(e=n/5280,i=this._getRoundNum(e),this._updateScale(this._iScale,i+" mi",i/e)):(o=this._getRoundNum(n),this._updateScale(this._iScale,o+" ft",o/n))},_updateScale:function(t,e,i){t.style.width=Math.round(this.options.maxWidth*i)+"px",t.innerHTML=e},_getRoundNum:function(t){var e=Math.pow(10,(Math.floor(t)+"").length-1),i=t/e;return e*(i=i>=10?10:i>=5?5:i>=3?3:i>=2?2:1)}}),ui=function(t){return new _i(t)},pi=' ',mi=ai.extend({options:{position:"bottomright",prefix:''+(Nt.inlineSvg?pi+" ":"")+"Leaflet "},initialize:function(t){u(this,t),this._attributions={}},onAdd:function(t){for(var e in t.attributionControl=this,this._container=me("div","leaflet-control-attribution"),Ge(this._container),t._layers)t._layers[e].getAttribution&&this.addAttribution(t._layers[e].getAttribution());return this._update(),t.on("layeradd",this._addAttribution,this),this._container},onRemove:function(t){t.off("layeradd",this._addAttribution,this)},_addAttribution:function(t){t.layer.getAttribution&&(this.addAttribution(t.layer.getAttribution()),t.layer.once("remove",(function(){this.removeAttribution(t.layer.getAttribution())}),this))},setPrefix:function(t){return this.options.prefix=t,this._update(),this},addAttribution:function(t){return t?(this._attributions[t]||(this._attributions[t]=0),this._attributions[t]++,this._update(),this):this},removeAttribution:function(t){return t?(this._attributions[t]&&(this._attributions[t]--,this._update()),this):this},_update:function(){if(this._map){var t=[];for(var e in this._attributions)this._attributions[e]&&t.push(e);var i=[];this.options.prefix&&i.push(this.options.prefix),t.length&&i.push(t.join(", ")),this._container.innerHTML=i.join(' | ')}}});ni.mergeOptions({attributionControl:!0}),ni.addInitHook((function(){this.options.attributionControl&&(new mi).addTo(this)}));var gi=function(t){return new mi(t)};ai.Layers=hi,ai.Zoom=ci,ai.Scale=_i,ai.Attribution=mi,ri.layers=li,ri.zoom=di,ri.scale=ui,ri.attribution=gi;var fi=S.extend({initialize:function(t){this._map=t},enable:function(){return this._enabled||(this._enabled=!0,this.addHooks()),this},disable:function(){return this._enabled?(this._enabled=!1,this.removeHooks(),this):this},enabled:function(){return!!this._enabled}});fi.addTo=function(t,e){return t.addHandler(e,this),this};var vi={Events:O},yi=Nt.touch?"touchstart mousedown":"mousedown",wi=E.extend({options:{clickTolerance:3},initialize:function(t,e,i,o){u(this,o),this._element=t,this._dragStartTarget=e||t,this._preventOutline=i},enable:function(){this._enabled||(je(this._dragStartTarget,yi,this._onDown,this),this._enabled=!0)},disable:function(){this._enabled&&(wi._dragging===this&&this.finishDrag(!0),He(this._dragStartTarget,yi,this._onDown,this),this._enabled=!1,this._moved=!1)},_onDown:function(t){if(this._enabled&&(this._moved=!1,!we(this._element,"leaflet-zoom-anim")))if(t.touches&&1!==t.touches.length)wi._dragging===this&&this.finishDrag();else if(!(wi._dragging||t.shiftKey||1!==t.which&&1!==t.button&&!t.touches||(wi._dragging=this,this._preventOutline&&Be(this._element),Ee(),se(),this._moving))){this.fire("down");var e=t.touches?t.touches[0]:t,i=De(this._element);this._startPoint=new Z(e.clientX,e.clientY),this._startPos=Ce(this._element),this._parentScale=Ie(i);var o="mousedown"===t.type;je(document,o?"mousemove":"touchmove",this._onMove,this),je(document,o?"mouseup":"touchend touchcancel",this._onUp,this)}},_onMove:function(t){if(this._enabled)if(t.touches&&t.touches.length>1)this._moved=!0;else{var e=t.touches&&1===t.touches.length?t.touches[0]:t,i=new Z(e.clientX,e.clientY)._subtract(this._startPoint);(i.x||i.y)&&(Math.abs(i.x)+Math.abs(i.y)h&&(s=a,h=r);h>i&&(e[s]=1,Ci(t,e,i,o,s),Ci(t,e,i,s,n))}function Oi(t,e){for(var i=[t[0]],o=1,n=0,s=t.length;oe&&(i.push(t[o]),n=o);return ne.max.x&&(i|=2),t.ye.max.y&&(i|=8),i}function Ai(t,e){var i=e.x-t.x,o=e.y-t.y;return i*i+o*o}function Di(t,e,i,o){var n,s=e.x,a=e.y,r=i.x-s,h=i.y-a,l=r*r+h*h;return l>0&&((n=((t.x-s)*r+(t.y-a)*h)/l)>1?(s=i.x,a=i.y):n>0&&(s+=r*n,a+=h*n)),r=t.x-s,h=t.y-a,o?r*r+h*h:new Z(s,a)}function Ii(t){return!f(t[0])||"object"!=typeof t[0][0]&&void 0!==t[0][0]}function Ni(t){return console.warn("Deprecated use of _flat, please use L.LineUtil.isFlat instead."),Ii(t)}function ji(t,e){var i,o,n,s,a,r,h,l;if(!t||0===t.length)throw new Error("latlngs not passed");Ii(t)||(console.warn("latlngs are not flat! Only the first ring will be used"),t=t[0]);var c=H([0,0]),d=j(t);d.getNorthWest().distanceTo(d.getSouthWest())*d.getNorthEast().distanceTo(d.getNorthWest())<1700&&(c=ki(t));var _=t.length,u=[];for(i=0;i<_;i++){var p=H(t[i]);u.push(e.project(H([p.lat-c.lat,p.lng-c.lng])))}for(i=0,o=0;i<_-1;i++)o+=u[i].distanceTo(u[i+1])/2;if(0===o)l=u[0];else for(i=0,s=0;i<_-1;i++)if(a=u[i],r=u[i+1],(s+=n=a.distanceTo(r))>o){h=(s-o)/n,l=[r.x-h*(r.x-a.x),r.y-h*(r.y-a.y)];break}var m=e.unproject(A(l));return H([m.lat+c.lat,m.lng+c.lng])}var Ri={__proto__:null,simplify:Ti,pointToSegmentDistance:Pi,closestPointOnSegment:zi,clipSegment:Ei,_getEdgeIntersection:Zi,_getBitCode:Bi,_sqClosestPointOnSegment:Di,isFlat:Ii,_flat:Ni,polylineCenter:ji},Hi={project:function(t){return new Z(t.lng,t.lat)},unproject:function(t){return new R(t.y,t.x)},bounds:new D([-180,-90],[180,90])},Fi={R:6378137,R_MINOR:6356752.314245179,bounds:new D([-20037508.34279,-15496570.73972],[20037508.34279,18764656.23138]),project:function(t){var e=Math.PI/180,i=this.R,o=t.lat*e,n=this.R_MINOR/i,s=Math.sqrt(1-n*n),a=s*Math.sin(o),r=Math.tan(Math.PI/4-o/2)/Math.pow((1-a)/(1+a),s/2);return o=-i*Math.log(Math.max(r,1e-10)),new Z(t.lng*e*i,o)},unproject:function(t){for(var e,i=180/Math.PI,o=this.R,n=this.R_MINOR/o,s=Math.sqrt(1-n*n),a=Math.exp(-t.y/o),r=Math.PI/2-2*Math.atan(a),h=0,l=.1;h<15&&Math.abs(l)>1e-7;h++)e=s*Math.sin(r),e=Math.pow((1-e)/(1+e),s/2),r+=l=Math.PI/2-2*Math.atan(a*e)-r;return new R(r*i,t.x*i/o)}},Wi={__proto__:null,LonLat:Hi,Mercator:Fi,SphericalMercator:U},Vi=i({},V,{code:"EPSG:3395",projection:Fi,transformation:function(){var t=.5/(Math.PI*Fi.R);return G(t,.5,-t,.5)}()}),qi=i({},V,{code:"EPSG:4326",projection:Hi,transformation:G(1/180,1,-1/180,.5)}),Ui=i({},W,{projection:Hi,transformation:G(1,0,-1,0),scale:function(t){return Math.pow(2,t)},zoom:function(t){return Math.log(t)/Math.LN2},distance:function(t,e){var i=e.lng-t.lng,o=e.lat-t.lat;return Math.sqrt(i*i+o*o)},infinite:!0});W.Earth=V,W.EPSG3395=Vi,W.EPSG3857=Y,W.EPSG900913=J,W.EPSG4326=qi,W.Simple=Ui;var Ki=E.extend({options:{pane:"overlayPane",attribution:null,bubblingMouseEvents:!0},addTo:function(t){return t.addLayer(this),this},remove:function(){return this.removeFrom(this._map||this._mapToAdd)},removeFrom:function(t){return t&&t.removeLayer(this),this},getPane:function(t){return this._map.getPane(t?this.options[t]||t:this.options.pane)},addInteractiveTarget:function(t){return this._map._targets[a(t)]=this,this},removeInteractiveTarget:function(t){return delete this._map._targets[a(t)],this},getAttribution:function(){return this.options.attribution},_layerAdd:function(t){var e=t.target;if(e.hasLayer(this)){if(this._map=e,this._zoomAnimated=e._zoomAnimated,this.getEvents){var i=this.getEvents();e.on(i,this),this.once("remove",(function(){e.off(i,this)}),this)}this.onAdd(e),this.fire("add"),e.fire("layeradd",{layer:this})}}});ni.include({addLayer:function(t){if(!t._layerAdd)throw new Error("The provided object is not a Layer.");var e=a(t);return this._layers[e]||(this._layers[e]=t,t._mapToAdd=this,t.beforeAdd&&t.beforeAdd(this),this.whenReady(t._layerAdd,t)),this},removeLayer:function(t){var e=a(t);return this._layers[e]?(this._loaded&&t.onRemove(this),delete this._layers[e],this._loaded&&(this.fire("layerremove",{layer:t}),t.fire("remove")),t._map=t._mapToAdd=null,this):this},hasLayer:function(t){return a(t)in this._layers},eachLayer:function(t,e){for(var i in this._layers)t.call(e,this._layers[i]);return this},_addLayers:function(t){for(var e=0,i=(t=t?f(t)?t:[t]:[]).length;ethis._layersMaxZoom&&this.setZoom(this._layersMaxZoom),void 0===this.options.minZoom&&this._layersMinZoom&&this.getZoom()=2&&e[0]instanceof R&&e[0].equals(e[i-1])&&e.pop(),e},_setLatLngs:function(t){lo.prototype._setLatLngs.call(this,t),Ii(this._latlngs)&&(this._latlngs=[this._latlngs])},_defaultShape:function(){return Ii(this._latlngs[0])?this._latlngs[0]:this._latlngs[0][0]},_clipPoints:function(){var t=this._renderer._bounds,e=this.options.weight,i=new Z(e,e);if(t=new D(t.min.subtract(i),t.max.add(i)),this._parts=[],this._pxBounds&&this._pxBounds.intersects(t))if(this.options.noClip)this._parts=this._rings;else for(var o,n=0,s=this._rings.length;nt.y!=o.y>t.y&&t.x<(o.x-i.x)*(t.y-i.y)/(o.y-i.y)+i.x&&(l=!l);return l||lo.prototype._containsPoint.call(this,t,!0)}});function uo(t,e){return new _o(t,e)}var po=Ji.extend({initialize:function(t,e){u(this,e),this._layers={},t&&this.addData(t)},addData:function(t){var e,i,o,n=f(t)?t:t.features;if(n){for(e=0,i=n.length;e0&&n.push(n[0].slice()),n}function bo(t,e){return t.feature?i({},t.feature,{geometry:e}):xo(e)}function xo(t){return"Feature"===t.type||"FeatureCollection"===t.type?t:{type:"Feature",properties:{},geometry:t}}var ko={toGeoJSON:function(t){return bo(this,{type:"Point",coordinates:yo(this.getLatLng(),t)})}};function Mo(t,e){return new po(t,e)}io.include(ko),ro.include(ko),so.include(ko),lo.include({toGeoJSON:function(t){var e=!Ii(this._latlngs);return bo(this,{type:(e?"Multi":"")+"LineString",coordinates:wo(this._latlngs,e?1:0,!1,t)})}}),_o.include({toGeoJSON:function(t){var e=!Ii(this._latlngs),i=e&&!Ii(this._latlngs[0]),o=wo(this._latlngs,i?2:e?1:0,!0,t);return e||(o=[o]),bo(this,{type:(i?"Multi":"")+"Polygon",coordinates:o})}}),Gi.include({toMultiPoint:function(t){var e=[];return this.eachLayer((function(i){e.push(i.toGeoJSON(t).geometry.coordinates)})),bo(this,{type:"MultiPoint",coordinates:e})},toGeoJSON:function(t){var e=this.feature&&this.feature.geometry&&this.feature.geometry.type;if("MultiPoint"===e)return this.toMultiPoint(t);var i="GeometryCollection"===e,o=[];return this.eachLayer((function(e){if(e.toGeoJSON){var n=e.toGeoJSON(t);if(i)o.push(n.geometry);else{var s=xo(n);"FeatureCollection"===s.type?o.push.apply(o,s.features):o.push(s)}}})),i?bo(this,{geometries:o,type:"GeometryCollection"}):{type:"FeatureCollection",features:o}}});var Lo=Mo,To=Ki.extend({options:{opacity:1,alt:"",interactive:!1,crossOrigin:!1,errorOverlayUrl:"",zIndex:1,className:""},initialize:function(t,e,i){this._url=t,this._bounds=j(e),u(this,i)},onAdd:function(){this._image||(this._initImage(),this.options.opacity<1&&this._updateOpacity()),this.options.interactive&&(be(this._image,"leaflet-interactive"),this.addInteractiveTarget(this._image)),this.getPane().appendChild(this._image),this._reset()},onRemove:function(){ge(this._image),this.options.interactive&&this.removeInteractiveTarget(this._image)},setOpacity:function(t){return this.options.opacity=t,this._image&&this._updateOpacity(),this},setStyle:function(t){return t.opacity&&this.setOpacity(t.opacity),this},bringToFront:function(){return this._map&&ve(this._image),this},bringToBack:function(){return this._map&&ye(this._image),this},setUrl:function(t){return this._url=t,this._image&&(this._image.src=t),this},setBounds:function(t){return this._bounds=j(t),this._map&&this._reset(),this},getEvents:function(){var t={zoom:this._reset,viewreset:this._reset};return this._zoomAnimated&&(t.zoomanim=this._animateZoom),t},setZIndex:function(t){return this.options.zIndex=t,this._updateZIndex(),this},getBounds:function(){return this._bounds},getElement:function(){return this._image},_initImage:function(){var t="IMG"===this._url.tagName,e=this._image=t?this._url:me("img");be(e,"leaflet-image-layer"),this._zoomAnimated&&be(e,"leaflet-zoom-animated"),this.options.className&&be(e,this.options.className),e.onselectstart=l,e.onmousemove=l,e.onload=n(this.fire,this,"load"),e.onerror=n(this._overlayOnError,this,"error"),(this.options.crossOrigin||""===this.options.crossOrigin)&&(e.crossOrigin=!0===this.options.crossOrigin?"":this.options.crossOrigin),this.options.zIndex&&this._updateZIndex(),t?this._url=e.src:(e.src=this._url,e.alt=this.options.alt)},_animateZoom:function(t){var e=this._map.getZoomScale(t.zoom),i=this._map._latLngBoundsToNewLayerBounds(this._bounds,t.zoom,t.center).min;ze(this._image,i,e)},_reset:function(){var t=this._image,e=new D(this._map.latLngToLayerPoint(this._bounds.getNorthWest()),this._map.latLngToLayerPoint(this._bounds.getSouthEast())),i=e.getSize();Se(t,e.min),t.style.width=i.x+"px",t.style.height=i.y+"px"},_updateOpacity:function(){Le(this._image,this.options.opacity)},_updateZIndex:function(){this._image&&void 0!==this.options.zIndex&&null!==this.options.zIndex&&(this._image.style.zIndex=this.options.zIndex)},_overlayOnError:function(){this.fire("error");var t=this.options.errorOverlayUrl;t&&this._url!==t&&(this._url=t,this._image.src=t)},getCenter:function(){return this._bounds.getCenter()}}),Po=function(t,e,i){return new To(t,e,i)},zo=To.extend({options:{autoplay:!0,loop:!0,keepAspectRatio:!0,muted:!1,playsInline:!0},_initImage:function(){var t="VIDEO"===this._url.tagName,e=this._image=t?this._url:me("video");if(be(e,"leaflet-image-layer"),this._zoomAnimated&&be(e,"leaflet-zoom-animated"),this.options.className&&be(e,this.options.className),e.onselectstart=l,e.onmousemove=l,e.onloadeddata=n(this.fire,this,"load"),t){for(var i=e.getElementsByTagName("source"),o=[],s=0;s0?o:[e.src]}else{f(this._url)||(this._url=[this._url]),!this.options.keepAspectRatio&&Object.prototype.hasOwnProperty.call(e.style,"objectFit")&&(e.style.objectFit="fill"),e.autoplay=!!this.options.autoplay,e.loop=!!this.options.loop,e.muted=!!this.options.muted,e.playsInline=!!this.options.playsInline;for(var a=0;a×',je(o,"click",(function(t){Ye(t),this.close()}),this)}},_updateLayout:function(){var t=this._contentNode,e=t.style;e.width="",e.whiteSpace="nowrap";var i=t.offsetWidth;i=Math.min(i,this.options.maxWidth),i=Math.max(i,this.options.minWidth),e.width=i+1+"px",e.whiteSpace="",e.height="";var o=t.offsetHeight,n=this.options.maxHeight,s="leaflet-popup-scrolled";n&&o>n?(e.height=n+"px",be(t,s)):xe(t,s),this._containerWidth=this._container.offsetWidth},_animateZoom:function(t){var e=this._map._latLngToNewLayerPoint(this._latlng,t.zoom,t.center),i=this._getAnchor();Se(this._container,e.add(i))},_adjustPan:function(){if(this.options.autoPan)if(this._map._panAnim&&this._map._panAnim.stop(),this._autopanning)this._autopanning=!1;else{var t=this._map,e=parseInt(pe(this._container,"marginBottom"),10)||0,i=this._container.offsetHeight+e,o=this._containerWidth,n=new Z(this._containerLeft,-i-this._containerBottom);n._add(Ce(this._container));var s=t.layerPointToContainerPoint(n),a=A(this.options.autoPanPadding),r=A(this.options.autoPanPaddingTopLeft||a),h=A(this.options.autoPanPaddingBottomRight||a),l=t.getSize(),c=0,d=0;s.x+o+h.x>l.x&&(c=s.x+o-l.x+h.x),s.x-c-r.x<0&&(c=s.x-r.x),s.y+i+h.y>l.y&&(d=s.y+i-l.y+h.y),s.y-d-r.y<0&&(d=s.y-r.y),(c||d)&&(this.options.keepInView&&(this._autopanning=!0),t.fire("autopanstart").panBy([c,d]))}},_getAnchor:function(){return A(this._source&&this._source._getPopupAnchor?this._source._getPopupAnchor():[0,0])}}),Bo=function(t,e){return new Zo(t,e)};ni.mergeOptions({closePopupOnClick:!0}),ni.include({openPopup:function(t,e,i){return this._initOverlay(Zo,t,e,i).openOn(this),this},closePopup:function(t){return(t=arguments.length?t:this._popup)&&t.close(),this}}),Ki.include({bindPopup:function(t,e){return this._popup=this._initOverlay(Zo,this._popup,t,e),this._popupHandlersAdded||(this.on({click:this._openPopup,keypress:this._onKeyPress,remove:this.closePopup,move:this._movePopup}),this._popupHandlersAdded=!0),this},unbindPopup:function(){return this._popup&&(this.off({click:this._openPopup,keypress:this._onKeyPress,remove:this.closePopup,move:this._movePopup}),this._popupHandlersAdded=!1,this._popup=null),this},openPopup:function(t){return this._popup&&(this instanceof Ji||(this._popup._source=this),this._popup._prepareOpen(t||this._latlng)&&this._popup.openOn(this._map)),this},closePopup:function(){return this._popup&&this._popup.close(),this},togglePopup:function(){return this._popup&&this._popup.toggle(this),this},isPopupOpen:function(){return!!this._popup&&this._popup.isOpen()},setPopupContent:function(t){return this._popup&&this._popup.setContent(t),this},getPopup:function(){return this._popup},_openPopup:function(t){if(this._popup&&this._map){Je(t);var e=t.layer||t.target;this._popup._source!==e||e instanceof no?(this._popup._source=e,this.openPopup(t.latlng)):this._map.hasLayer(this._popup)?this.closePopup():this.openPopup(t.latlng)}},_movePopup:function(t){this._popup.setLatLng(t.latlng)},_onKeyPress:function(t){13===t.originalEvent.keyCode&&this._openPopup(t)}});var Ao=Eo.extend({options:{pane:"tooltipPane",offset:[0,0],direction:"auto",permanent:!1,sticky:!1,opacity:.9},onAdd:function(t){Eo.prototype.onAdd.call(this,t),this.setOpacity(this.options.opacity),t.fire("tooltipopen",{tooltip:this}),this._source&&(this.addEventParent(this._source),this._source.fire("tooltipopen",{tooltip:this},!0))},onRemove:function(t){Eo.prototype.onRemove.call(this,t),t.fire("tooltipclose",{tooltip:this}),this._source&&(this.removeEventParent(this._source),this._source.fire("tooltipclose",{tooltip:this},!0))},getEvents:function(){var t=Eo.prototype.getEvents.call(this);return this.options.permanent||(t.preclick=this.close),t},_initLayout:function(){var t="leaflet-tooltip "+(this.options.className||"")+" leaflet-zoom-"+(this._zoomAnimated?"animated":"hide");this._contentNode=this._container=me("div",t),this._container.setAttribute("role","tooltip"),this._container.setAttribute("id","leaflet-tooltip-"+a(this))},_updateLayout:function(){},_adjustPan:function(){},_setPosition:function(t){var e,i,o=this._map,n=this._container,s=o.latLngToContainerPoint(o.getCenter()),a=o.layerPointToContainerPoint(t),r=this.options.direction,h=n.offsetWidth,l=n.offsetHeight,c=A(this.options.offset),d=this._getAnchor();"top"===r?(e=h/2,i=l):"bottom"===r?(e=h/2,i=0):"center"===r?(e=h/2,i=l/2):"right"===r?(e=0,i=l/2):"left"===r?(e=h,i=l/2):a.xthis.options.maxZoom||io&&this._retainParent(n,s,a,o))},_retainChildren:function(t,e,i,o){for(var n=2*t;n<2*t+2;n++)for(var s=2*e;s<2*e+2;s++){var a=new Z(n,s);a.z=i+1;var r=this._tileCoordsToKey(a),h=this._tiles[r];h&&h.active?h.retain=!0:(h&&h.loaded&&(h.retain=!0),i+1this.options.maxZoom||void 0!==this.options.minZoom&&n1)this._setView(t,i);else{for(var d=n.min.y;d<=n.max.y;d++)for(var _=n.min.x;_<=n.max.x;_++){var u=new Z(_,d);if(u.z=this._tileZoom,this._isValidTile(u)){var p=this._tiles[this._tileCoordsToKey(u)];p?p.current=!0:a.push(u)}}if(a.sort((function(t,e){return t.distanceTo(s)-e.distanceTo(s)})),0!==a.length){this._loading||(this._loading=!0,this.fire("loading"));var m=document.createDocumentFragment();for(_=0;_i.max.x)||!e.wrapLat&&(t.yi.max.y))return!1}if(!this.options.bounds)return!0;var o=this._tileCoordsToBounds(t);return j(this.options.bounds).overlaps(o)},_keyToBounds:function(t){return this._tileCoordsToBounds(this._keyToTileCoords(t))},_tileCoordsToNwSe:function(t){var e=this._map,i=this.getTileSize(),o=t.scaleBy(i),n=o.add(i);return[e.unproject(o,t.z),e.unproject(n,t.z)]},_tileCoordsToBounds:function(t){var e=this._tileCoordsToNwSe(t),i=new N(e[0],e[1]);return this.options.noWrap||(i=this._map.wrapLatLngBounds(i)),i},_tileCoordsToKey:function(t){return t.x+":"+t.y+":"+t.z},_keyToTileCoords:function(t){var e=t.split(":"),i=new Z(+e[0],+e[1]);return i.z=+e[2],i},_removeTile:function(t){var e=this._tiles[t];e&&(ge(e.el),delete this._tiles[t],this.fire("tileunload",{tile:e.el,coords:this._keyToTileCoords(t)}))},_initTile:function(t){be(t,"leaflet-tile");var e=this.getTileSize();t.style.width=e.x+"px",t.style.height=e.y+"px",t.onselectstart=l,t.onmousemove=l,Nt.ielt9&&this.options.opacity<1&&Le(t,this.options.opacity)},_addTile:function(t,e){var i=this._getTilePos(t),o=this._tileCoordsToKey(t),s=this.createTile(this._wrapCoords(t),n(this._tileReady,this,t));this._initTile(s),this.createTile.length<2&&T(n(this._tileReady,this,t,null,s)),Se(s,i),this._tiles[o]={el:s,coords:t,current:!0},e.appendChild(s),this.fire("tileloadstart",{tile:s,coords:t})},_tileReady:function(t,e,i){e&&this.fire("tileerror",{error:e,tile:i,coords:t});var o=this._tileCoordsToKey(t);(i=this._tiles[o])&&(i.loaded=+new Date,this._map._fadeAnimated?(Le(i.el,0),P(this._fadeFrame),this._fadeFrame=T(this._updateOpacity,this)):(i.active=!0,this._pruneTiles()),e||(be(i.el,"leaflet-tile-loaded"),this.fire("tileload",{tile:i.el,coords:t})),this._noTilesToLoad()&&(this._loading=!1,this.fire("load"),Nt.ielt9||!this._map._fadeAnimated?T(this._pruneTiles,this):setTimeout(n(this._pruneTiles,this),250)))},_getTilePos:function(t){return t.scaleBy(this.getTileSize()).subtract(this._level.origin)},_wrapCoords:function(t){var e=new Z(this._wrapX?h(t.x,this._wrapX):t.x,this._wrapY?h(t.y,this._wrapY):t.y);return e.z=t.z,e},_pxBoundsToTileRange:function(t){var e=this.getTileSize();return new D(t.min.unscaleBy(e).floor(),t.max.unscaleBy(e).ceil().subtract([1,1]))},_noTilesToLoad:function(){for(var t in this._tiles)if(!this._tiles[t].loaded)return!1;return!0}});function Ro(t){return new jo(t)}var Ho=jo.extend({options:{minZoom:0,maxZoom:18,subdomains:"abc",errorTileUrl:"",zoomOffset:0,tms:!1,zoomReverse:!1,detectRetina:!1,crossOrigin:!1,referrerPolicy:!1},initialize:function(t,e){this._url=t,(e=u(this,e)).detectRetina&&Nt.retina&&e.maxZoom>0?(e.tileSize=Math.floor(e.tileSize/2),e.zoomReverse?(e.zoomOffset--,e.minZoom=Math.min(e.maxZoom,e.minZoom+1)):(e.zoomOffset++,e.maxZoom=Math.max(e.minZoom,e.maxZoom-1)),e.minZoom=Math.max(0,e.minZoom)):e.zoomReverse?e.minZoom=Math.min(e.maxZoom,e.minZoom):e.maxZoom=Math.max(e.minZoom,e.maxZoom),"string"==typeof e.subdomains&&(e.subdomains=e.subdomains.split("")),this.on("tileunload",this._onTileRemove)},setUrl:function(t,e){return this._url===t&&void 0===e&&(e=!0),this._url=t,e||this.redraw(),this},createTile:function(t,e){var i=document.createElement("img");return je(i,"load",n(this._tileOnLoad,this,e,i)),je(i,"error",n(this._tileOnError,this,e,i)),(this.options.crossOrigin||""===this.options.crossOrigin)&&(i.crossOrigin=!0===this.options.crossOrigin?"":this.options.crossOrigin),"string"==typeof this.options.referrerPolicy&&(i.referrerPolicy=this.options.referrerPolicy),i.alt="",i.src=this.getTileUrl(t),i},getTileUrl:function(t){var e={r:Nt.retina?"@2x":"",s:this._getSubdomain(t),x:t.x,y:t.y,z:this._getZoomForUrl()};if(this._map&&!this._map.options.crs.infinite){var o=this._globalTileRange.max.y-t.y;this.options.tms&&(e.y=o),e["-y"]=o}return g(this._url,i(e,this.options))},_tileOnLoad:function(t,e){Nt.ielt9?setTimeout(n(t,this,null,e),0):t(null,e)},_tileOnError:function(t,e,i){var o=this.options.errorTileUrl;o&&e.getAttribute("src")!==o&&(e.src=o),t(i,e)},_onTileRemove:function(t){t.tile.onload=null},_getZoomForUrl:function(){var t=this._tileZoom,e=this.options.maxZoom;return this.options.zoomReverse&&(t=e-t),t+this.options.zoomOffset},_getSubdomain:function(t){var e=Math.abs(t.x+t.y)%this.options.subdomains.length;return this.options.subdomains[e]},_abortLoading:function(){var t,e;for(t in this._tiles)if(this._tiles[t].coords.z!==this._tileZoom&&((e=this._tiles[t].el).onload=l,e.onerror=l,!e.complete)){e.src=y;var i=this._tiles[t].coords;ge(e),delete this._tiles[t],this.fire("tileabort",{tile:e,coords:i})}},_removeTile:function(t){var e=this._tiles[t];if(e)return e.el.setAttribute("src",y),jo.prototype._removeTile.call(this,t)},_tileReady:function(t,e,i){if(this._map&&(!i||i.getAttribute("src")!==y))return jo.prototype._tileReady.call(this,t,e,i)}});function Fo(t,e){return new Ho(t,e)}var Wo=Ho.extend({defaultWmsParams:{service:"WMS",request:"GetMap",layers:"",styles:"",format:"image/jpeg",transparent:!1,version:"1.1.1"},options:{crs:null,uppercase:!1},initialize:function(t,e){this._url=t;var o=i({},this.defaultWmsParams);for(var n in e)n in this.options||(o[n]=e[n]);var s=(e=u(this,e)).detectRetina&&Nt.retina?2:1,a=this.getTileSize();o.width=a.x*s,o.height=a.y*s,this.wmsParams=o},onAdd:function(t){this._crs=this.options.crs||t.options.crs,this._wmsVersion=parseFloat(this.wmsParams.version);var e=this._wmsVersion>=1.3?"crs":"srs";this.wmsParams[e]=this._crs.code,Ho.prototype.onAdd.call(this,t)},getTileUrl:function(t){var e=this._tileCoordsToNwSe(t),i=this._crs,o=I(i.project(e[0]),i.project(e[1])),n=o.min,s=o.max,a=(this._wmsVersion>=1.3&&this._crs===qi?[n.y,n.x,s.y,s.x]:[n.x,n.y,s.x,s.y]).join(","),r=Ho.prototype.getTileUrl.call(this,t);return r+p(this.wmsParams,r,this.options.uppercase)+(this.options.uppercase?"&BBOX=":"&bbox=")+a},setParams:function(t,e){return i(this.wmsParams,t),e||this.redraw(),this}});function Vo(t,e){return new Wo(t,e)}Ho.WMS=Wo,Fo.wms=Vo;var qo=Ki.extend({options:{padding:.1},initialize:function(t){u(this,t),a(this),this._layers=this._layers||{}},onAdd:function(){this._container||(this._initContainer(),be(this._container,"leaflet-zoom-animated")),this.getPane().appendChild(this._container),this._update(),this.on("update",this._updatePaths,this)},onRemove:function(){this.off("update",this._updatePaths,this),this._destroyContainer()},getEvents:function(){var t={viewreset:this._reset,zoom:this._onZoom,moveend:this._update,zoomend:this._onZoomEnd};return this._zoomAnimated&&(t.zoomanim=this._onAnimZoom),t},_onAnimZoom:function(t){this._updateTransform(t.center,t.zoom)},_onZoom:function(){this._updateTransform(this._map.getCenter(),this._map.getZoom())},_updateTransform:function(t,e){var i=this._map.getZoomScale(e,this._zoom),o=this._map.getSize().multiplyBy(.5+this.options.padding),n=this._map.project(this._center,e),s=o.multiplyBy(-i).add(n).subtract(this._map._getNewPixelOrigin(t,e));Nt.any3d?ze(this._container,s,i):Se(this._container,s)},_reset:function(){for(var t in this._update(),this._updateTransform(this._center,this._zoom),this._layers)this._layers[t]._reset()},_onZoomEnd:function(){for(var t in this._layers)this._layers[t]._project()},_updatePaths:function(){for(var t in this._layers)this._layers[t]._update()},_update:function(){var t=this.options.padding,e=this._map.getSize(),i=this._map.containerPointToLayerPoint(e.multiplyBy(-t)).round();this._bounds=new D(i,i.add(e.multiplyBy(1+2*t)).round()),this._center=this._map.getCenter(),this._zoom=this._map.getZoom()}}),Uo=qo.extend({options:{tolerance:0},getEvents:function(){var t=qo.prototype.getEvents.call(this);return t.viewprereset=this._onViewPreReset,t},_onViewPreReset:function(){this._postponeUpdatePaths=!0},onAdd:function(){qo.prototype.onAdd.call(this),this._draw()},_initContainer:function(){var t=this._container=document.createElement("canvas");je(t,"mousemove",this._onMouseMove,this),je(t,"click dblclick mousedown mouseup contextmenu",this._onClick,this),je(t,"mouseout",this._handleMouseOut,this),t._leaflet_disable_events=!0,this._ctx=t.getContext("2d")},_destroyContainer:function(){P(this._redrawRequest),delete this._ctx,ge(this._container),He(this._container),delete this._container},_updatePaths:function(){if(!this._postponeUpdatePaths){for(var t in this._redrawBounds=null,this._layers)this._layers[t]._update();this._redraw()}},_update:function(){if(!this._map._animatingZoom||!this._bounds){qo.prototype._update.call(this);var t=this._bounds,e=this._container,i=t.getSize(),o=Nt.retina?2:1;Se(e,t.min),e.width=o*i.x,e.height=o*i.y,e.style.width=i.x+"px",e.style.height=i.y+"px",Nt.retina&&this._ctx.scale(2,2),this._ctx.translate(-t.min.x,-t.min.y),this.fire("update")}},_reset:function(){qo.prototype._reset.call(this),this._postponeUpdatePaths&&(this._postponeUpdatePaths=!1,this._updatePaths())},_initPath:function(t){this._updateDashArray(t),this._layers[a(t)]=t;var e=t._order={layer:t,prev:this._drawLast,next:null};this._drawLast&&(this._drawLast.next=e),this._drawLast=e,this._drawFirst=this._drawFirst||this._drawLast},_addPath:function(t){this._requestRedraw(t)},_removePath:function(t){var e=t._order,i=e.next,o=e.prev;i?i.prev=o:this._drawLast=o,o?o.next=i:this._drawFirst=i,delete t._order,delete this._layers[a(t)],this._requestRedraw(t)},_updatePath:function(t){this._extendRedrawBounds(t),t._project(),t._update(),this._requestRedraw(t)},_updateStyle:function(t){this._updateDashArray(t),this._requestRedraw(t)},_updateDashArray:function(t){if("string"==typeof t.options.dashArray){var e,i,o=t.options.dashArray.split(/[, ]+/),n=[];for(i=0;i')}}catch(t){}return function(t){return document.createElement("<"+t+' xmlns="urn:schemas-microsoft.com:vml" class="lvml">')}}(),Yo={_initContainer:function(){this._container=me("div","leaflet-vml-container")},_update:function(){this._map._animatingZoom||(qo.prototype._update.call(this),this.fire("update"))},_initPath:function(t){var e=t._container=Go("shape");be(e,"leaflet-vml-shape "+(this.options.className||"")),e.coordsize="1 1",t._path=Go("path"),e.appendChild(t._path),this._updateStyle(t),this._layers[a(t)]=t},_addPath:function(t){var e=t._container;this._container.appendChild(e),t.options.interactive&&t.addInteractiveTarget(e)},_removePath:function(t){var e=t._container;ge(e),t.removeInteractiveTarget(e),delete this._layers[a(t)]},_updateStyle:function(t){var e=t._stroke,i=t._fill,o=t.options,n=t._container;n.stroked=!!o.stroke,n.filled=!!o.fill,o.stroke?(e||(e=t._stroke=Go("stroke")),n.appendChild(e),e.weight=o.weight+"px",e.color=o.color,e.opacity=o.opacity,o.dashArray?e.dashStyle=f(o.dashArray)?o.dashArray.join(" "):o.dashArray.replace(/( *, *)/g," "):e.dashStyle="",e.endcap=o.lineCap.replace("butt","flat"),e.joinstyle=o.lineJoin):e&&(n.removeChild(e),t._stroke=null),o.fill?(i||(i=t._fill=Go("fill")),n.appendChild(i),i.color=o.fillColor||o.color,i.opacity=o.fillOpacity):i&&(n.removeChild(i),t._fill=null)},_updateCircle:function(t){var e=t._point.round(),i=Math.round(t._radius),o=Math.round(t._radiusY||i);this._setPath(t,t._empty()?"M0 0":"AL "+e.x+","+e.y+" "+i+","+o+" 0,23592600")},_setPath:function(t,e){t._path.v=e},_bringToFront:function(t){ve(t._container)},_bringToBack:function(t){ye(t._container)}},Jo=Nt.vml?Go:X,Xo=qo.extend({_initContainer:function(){this._container=Jo("svg"),this._container.setAttribute("pointer-events","none"),this._rootGroup=Jo("g"),this._container.appendChild(this._rootGroup)},_destroyContainer:function(){ge(this._container),He(this._container),delete this._container,delete this._rootGroup,delete this._svgSize},_update:function(){if(!this._map._animatingZoom||!this._bounds){qo.prototype._update.call(this);var t=this._bounds,e=t.getSize(),i=this._container;this._svgSize&&this._svgSize.equals(e)||(this._svgSize=e,i.setAttribute("width",e.x),i.setAttribute("height",e.y)),Se(i,t.min),i.setAttribute("viewBox",[t.min.x,t.min.y,e.x,e.y].join(" ")),this.fire("update")}},_initPath:function(t){var e=t._path=Jo("path");t.options.className&&be(e,t.options.className),t.options.interactive&&be(e,"leaflet-interactive"),this._updateStyle(t),this._layers[a(t)]=t},_addPath:function(t){this._rootGroup||this._initContainer(),this._rootGroup.appendChild(t._path),t.addInteractiveTarget(t._path)},_removePath:function(t){ge(t._path),t.removeInteractiveTarget(t._path),delete this._layers[a(t)]},_updatePath:function(t){t._project(),t._update()},_updateStyle:function(t){var e=t._path,i=t.options;e&&(i.stroke?(e.setAttribute("stroke",i.color),e.setAttribute("stroke-opacity",i.opacity),e.setAttribute("stroke-width",i.weight),e.setAttribute("stroke-linecap",i.lineCap),e.setAttribute("stroke-linejoin",i.lineJoin),i.dashArray?e.setAttribute("stroke-dasharray",i.dashArray):e.removeAttribute("stroke-dasharray"),i.dashOffset?e.setAttribute("stroke-dashoffset",i.dashOffset):e.removeAttribute("stroke-dashoffset")):e.setAttribute("stroke","none"),i.fill?(e.setAttribute("fill",i.fillColor||i.color),e.setAttribute("fill-opacity",i.fillOpacity),e.setAttribute("fill-rule",i.fillRule||"evenodd")):e.setAttribute("fill","none"))},_updatePoly:function(t,e){this._setPath(t,$(t._parts,e))},_updateCircle:function(t){var e=t._point,i=Math.max(Math.round(t._radius),1),o="a"+i+","+(Math.max(Math.round(t._radiusY),1)||i)+" 0 1,0 ",n=t._empty()?"M0 0":"M"+(e.x-i)+","+e.y+o+2*i+",0 "+o+2*-i+",0 ";this._setPath(t,n)},_setPath:function(t,e){t._path.setAttribute("d",e)},_bringToFront:function(t){ve(t._path)},_bringToBack:function(t){ye(t._path)}});function $o(t){return Nt.svg||Nt.vml?new Xo(t):null}Nt.vml&&Xo.include(Yo),ni.include({getRenderer:function(t){var e=t.options.renderer||this._getPaneRenderer(t.options.pane)||this.options.renderer||this._renderer;return e||(e=this._renderer=this._createRenderer()),this.hasLayer(e)||this.addLayer(e),e},_getPaneRenderer:function(t){if("overlayPane"===t||void 0===t)return!1;var e=this._paneRenderers[t];return void 0===e&&(e=this._createRenderer({pane:t}),this._paneRenderers[t]=e),e},_createRenderer:function(t){return this.options.preferCanvas&&Ko(t)||$o(t)}});var Qo=_o.extend({initialize:function(t,e){_o.prototype.initialize.call(this,this._boundsToLatLngs(t),e)},setBounds:function(t){return this.setLatLngs(this._boundsToLatLngs(t))},_boundsToLatLngs:function(t){return[(t=j(t)).getSouthWest(),t.getNorthWest(),t.getNorthEast(),t.getSouthEast()]}});function tn(t,e){return new Qo(t,e)}Xo.create=Jo,Xo.pointsToPath=$,po.geometryToLayer=mo,po.coordsToLatLng=fo,po.coordsToLatLngs=vo,po.latLngToCoords=yo,po.latLngsToCoords=wo,po.getFeature=bo,po.asFeature=xo,ni.mergeOptions({boxZoom:!0});var en=fi.extend({initialize:function(t){this._map=t,this._container=t._container,this._pane=t._panes.overlayPane,this._resetStateTimeout=0,t.on("unload",this._destroy,this)},addHooks:function(){je(this._container,"mousedown",this._onMouseDown,this)},removeHooks:function(){He(this._container,"mousedown",this._onMouseDown,this)},moved:function(){return this._moved},_destroy:function(){ge(this._pane),delete this._pane},_resetState:function(){this._resetStateTimeout=0,this._moved=!1},_clearDeferredResetState:function(){0!==this._resetStateTimeout&&(clearTimeout(this._resetStateTimeout),this._resetStateTimeout=0)},_onMouseDown:function(t){if(!t.shiftKey||1!==t.which&&1!==t.button)return!1;this._clearDeferredResetState(),this._resetState(),se(),Ee(),this._startPoint=this._map.mouseEventToContainerPoint(t),je(document,{contextmenu:Je,mousemove:this._onMouseMove,mouseup:this._onMouseUp,keydown:this._onKeyDown},this)},_onMouseMove:function(t){this._moved||(this._moved=!0,this._box=me("div","leaflet-zoom-box",this._container),be(this._container,"leaflet-crosshair"),this._map.fire("boxzoomstart")),this._point=this._map.mouseEventToContainerPoint(t);var e=new D(this._point,this._startPoint),i=e.getSize();Se(this._box,e.min),this._box.style.width=i.x+"px",this._box.style.height=i.y+"px"},_finish:function(){this._moved&&(ge(this._box),xe(this._container,"leaflet-crosshair")),ae(),Ze(),He(document,{contextmenu:Je,mousemove:this._onMouseMove,mouseup:this._onMouseUp,keydown:this._onKeyDown},this)},_onMouseUp:function(t){if((1===t.which||1===t.button)&&(this._finish(),this._moved)){this._clearDeferredResetState(),this._resetStateTimeout=setTimeout(n(this._resetState,this),0);var e=new N(this._map.containerPointToLatLng(this._startPoint),this._map.containerPointToLatLng(this._point));this._map.fitBounds(e).fire("boxzoomend",{boxZoomBounds:e})}},_onKeyDown:function(t){27===t.keyCode&&(this._finish(),this._clearDeferredResetState(),this._resetState())}});ni.addInitHook("addHandler","boxZoom",en),ni.mergeOptions({doubleClickZoom:!0});var on=fi.extend({addHooks:function(){this._map.on("dblclick",this._onDoubleClick,this)},removeHooks:function(){this._map.off("dblclick",this._onDoubleClick,this)},_onDoubleClick:function(t){var e=this._map,i=e.getZoom(),o=e.options.zoomDelta,n=t.originalEvent.shiftKey?i-o:i+o;"center"===e.options.doubleClickZoom?e.setZoom(n):e.setZoomAround(t.containerPoint,n)}});ni.addInitHook("addHandler","doubleClickZoom",on),ni.mergeOptions({dragging:!0,inertia:!0,inertiaDeceleration:3400,inertiaMaxSpeed:1/0,easeLinearity:.2,worldCopyJump:!1,maxBoundsViscosity:0});var nn=fi.extend({addHooks:function(){if(!this._draggable){var t=this._map;this._draggable=new wi(t._mapPane,t._container),this._draggable.on({dragstart:this._onDragStart,drag:this._onDrag,dragend:this._onDragEnd},this),this._draggable.on("predrag",this._onPreDragLimit,this),t.options.worldCopyJump&&(this._draggable.on("predrag",this._onPreDragWrap,this),t.on("zoomend",this._onZoomEnd,this),t.whenReady(this._onZoomEnd,this))}be(this._map._container,"leaflet-grab leaflet-touch-drag"),this._draggable.enable(),this._positions=[],this._times=[]},removeHooks:function(){xe(this._map._container,"leaflet-grab"),xe(this._map._container,"leaflet-touch-drag"),this._draggable.disable()},moved:function(){return this._draggable&&this._draggable._moved},moving:function(){return this._draggable&&this._draggable._moving},_onDragStart:function(){var t=this._map;if(t._stop(),this._map.options.maxBounds&&this._map.options.maxBoundsViscosity){var e=j(this._map.options.maxBounds);this._offsetLimit=I(this._map.latLngToContainerPoint(e.getNorthWest()).multiplyBy(-1),this._map.latLngToContainerPoint(e.getSouthEast()).multiplyBy(-1).add(this._map.getSize())),this._viscosity=Math.min(1,Math.max(0,this._map.options.maxBoundsViscosity))}else this._offsetLimit=null;t.fire("movestart").fire("dragstart"),t.options.inertia&&(this._positions=[],this._times=[])},_onDrag:function(t){if(this._map.options.inertia){var e=this._lastTime=+new Date,i=this._lastPos=this._draggable._absPos||this._draggable._newPos;this._positions.push(i),this._times.push(e),this._prunePositions(e)}this._map.fire("move",t).fire("drag",t)},_prunePositions:function(t){for(;this._positions.length>1&&t-this._times[0]>50;)this._positions.shift(),this._times.shift()},_onZoomEnd:function(){var t=this._map.getSize().divideBy(2),e=this._map.latLngToLayerPoint([0,0]);this._initialWorldOffset=e.subtract(t).x,this._worldWidth=this._map.getPixelWorldBounds().getSize().x},_viscousLimit:function(t,e){return t-(t-e)*this._viscosity},_onPreDragLimit:function(){if(this._viscosity&&this._offsetLimit){var t=this._draggable._newPos.subtract(this._draggable._startPos),e=this._offsetLimit;t.xe.max.x&&(t.x=this._viscousLimit(t.x,e.max.x)),t.y>e.max.y&&(t.y=this._viscousLimit(t.y,e.max.y)),this._draggable._newPos=this._draggable._startPos.add(t)}},_onPreDragWrap:function(){var t=this._worldWidth,e=Math.round(t/2),i=this._initialWorldOffset,o=this._draggable._newPos.x,n=(o-e+i)%t+e-i,s=(o+e+i)%t-e-i,a=Math.abs(n+i)0?s:-s))-e;this._delta=0,this._startTime=null,a&&("center"===t.options.scrollWheelZoom?t.setZoom(e+a):t.setZoomAround(this._lastMousePos,e+a))}});ni.addInitHook("addHandler","scrollWheelZoom",an);var rn=600;ni.mergeOptions({tapHold:Nt.touchNative&&Nt.safari&&Nt.mobile,tapTolerance:15});var hn=fi.extend({addHooks:function(){je(this._map._container,"touchstart",this._onDown,this)},removeHooks:function(){He(this._map._container,"touchstart",this._onDown,this)},_onDown:function(t){if(clearTimeout(this._holdTimeout),1===t.touches.length){var e=t.touches[0];this._startPos=this._newPos=new Z(e.clientX,e.clientY),this._holdTimeout=setTimeout(n((function(){this._cancel(),this._isTapValid()&&(je(document,"touchend",Ye),je(document,"touchend touchcancel",this._cancelClickPrevent),this._simulateEvent("contextmenu",e))}),this),rn),je(document,"touchend touchcancel contextmenu",this._cancel,this),je(document,"touchmove",this._onMove,this)}},_cancelClickPrevent:function t(){He(document,"touchend",Ye),He(document,"touchend touchcancel",t)},_cancel:function(){clearTimeout(this._holdTimeout),He(document,"touchend touchcancel contextmenu",this._cancel,this),He(document,"touchmove",this._onMove,this)},_onMove:function(t){var e=t.touches[0];this._newPos=new Z(e.clientX,e.clientY)},_isTapValid:function(){return this._newPos.distanceTo(this._startPos)<=this._map.options.tapTolerance},_simulateEvent:function(t,e){var i=new MouseEvent(t,{bubbles:!0,cancelable:!0,view:window,screenX:e.screenX,screenY:e.screenY,clientX:e.clientX,clientY:e.clientY});i._simulated=!0,e.target.dispatchEvent(i)}});ni.addInitHook("addHandler","tapHold",hn),ni.mergeOptions({touchZoom:Nt.touch,bounceAtZoomLimits:!0});var ln=fi.extend({addHooks:function(){be(this._map._container,"leaflet-touch-zoom"),je(this._map._container,"touchstart",this._onTouchStart,this)},removeHooks:function(){xe(this._map._container,"leaflet-touch-zoom"),He(this._map._container,"touchstart",this._onTouchStart,this)},_onTouchStart:function(t){var e=this._map;if(t.touches&&2===t.touches.length&&!e._animatingZoom&&!this._zooming){var i=e.mouseEventToContainerPoint(t.touches[0]),o=e.mouseEventToContainerPoint(t.touches[1]);this._centerPoint=e.getSize()._divideBy(2),this._startLatLng=e.containerPointToLatLng(this._centerPoint),"center"!==e.options.touchZoom&&(this._pinchStartLatLng=e.containerPointToLatLng(i.add(o)._divideBy(2))),this._startDist=i.distanceTo(o),this._startZoom=e.getZoom(),this._moved=!1,this._zooming=!0,e._stop(),je(document,"touchmove",this._onTouchMove,this),je(document,"touchend touchcancel",this._onTouchEnd,this),Ye(t)}},_onTouchMove:function(t){if(t.touches&&2===t.touches.length&&this._zooming){var e=this._map,i=e.mouseEventToContainerPoint(t.touches[0]),o=e.mouseEventToContainerPoint(t.touches[1]),s=i.distanceTo(o)/this._startDist;if(this._zoom=e.getScaleZoom(s,this._startZoom),!e.options.bounceAtZoomLimits&&(this._zoome.getMaxZoom()&&s>1)&&(this._zoom=e._limitZoom(this._zoom)),"center"===e.options.touchZoom){if(this._center=this._startLatLng,1===s)return}else{var a=i._add(o)._divideBy(2)._subtract(this._centerPoint);if(1===s&&0===a.x&&0===a.y)return;this._center=e.unproject(e.project(this._pinchStartLatLng,this._zoom).subtract(a),this._zoom)}this._moved||(e._moveStart(!0,!1),this._moved=!0),P(this._animRequest);var r=n(e._move,e,this._center,this._zoom,{pinch:!0,round:!1},void 0);this._animRequest=T(r,this,!0),Ye(t)}},_onTouchEnd:function(){this._moved&&this._zooming?(this._zooming=!1,P(this._animRequest),He(document,"touchmove",this._onTouchMove,this),He(document,"touchend touchcancel",this._onTouchEnd,this),this._map.options.zoomAnimation?this._map._animateZoom(this._center,this._map._limitZoom(this._zoom),!0,this._map.options.zoomSnap):this._map._resetView(this._center,this._map._limitZoom(this._zoom))):this._zooming=!1}});ni.addInitHook("addHandler","touchZoom",ln),ni.BoxZoom=en,ni.DoubleClickZoom=on,ni.Drag=nn,ni.Keyboard=sn,ni.ScrollWheelZoom=an,ni.TapHold=hn,ni.TouchZoom=ln,t.Bounds=D,t.Browser=Nt,t.CRS=W,t.Canvas=Uo,t.Circle=ro,t.CircleMarker=so,t.Class=S,t.Control=ai,t.DivIcon=Io,t.DivOverlay=Eo,t.DomEvent=ii,t.DomUtil=Ne,t.Draggable=wi,t.Evented=E,t.FeatureGroup=Ji,t.GeoJSON=po,t.GridLayer=jo,t.Handler=fi,t.Icon=$i,t.ImageOverlay=To,t.LatLng=R,t.LatLngBounds=N,t.Layer=Ki,t.LayerGroup=Gi,t.LineUtil=Ri,t.Map=ni,t.Marker=io,t.Mixin=vi,t.Path=no,t.Point=Z,t.PolyUtil=Li,t.Polygon=_o,t.Polyline=lo,t.Popup=Zo,t.PosAnimation=oi,t.Projection=Wi,t.Rectangle=Qo,t.Renderer=qo,t.SVG=Xo,t.SVGOverlay=Co,t.TileLayer=Ho,t.Tooltip=Ao,t.Transformation=K,t.Util=z,t.VideoOverlay=zo,t.bind=n,t.bounds=I,t.canvas=Ko,t.circle=ho,t.circleMarker=ao,t.control=ri,t.divIcon=No,t.extend=i,t.featureGroup=Xi,t.geoJSON=Mo,t.geoJson=Lo,t.gridLayer=Ro,t.icon=Qi,t.imageOverlay=Po,t.latLng=H,t.latLngBounds=j,t.layerGroup=Yi,t.map=si,t.marker=oo,t.point=A,t.polygon=uo,t.polyline=co,t.popup=Bo,t.rectangle=tn,t.setOptions=u,t.stamp=a,t.svg=$o,t.svgOverlay=Oo,t.tileLayer=Fo,t.tooltip=Do,t.transformation=G,t.version=e,t.videoOverlay=So;var cn=window.L;t.noConflict=function(){return window.L=cn,this},window.L=t}(e)},454:(t,e,i)=>{"use strict";i.r(e)},434:(t,e,i)=>{var o={"./be.json":656,"./bg.json":242,"./cs.json":435,"./de.json":758,"./el.json":388,"./en.json":38,"./es.json":589,"./et.json":516,"./fr.json":469,"./he.json":146,"./hu.json":450,"./is.json":297,"./it.json":536,"./jp.json":543,"./ko.json":287,"./nl.json":807,"./nn.json":537,"./no.json":950,"./pl.json":893,"./pt.json":253,"./ru.json":112,"./sk.json":211,"./sr.json":424,"./sv.json":116,"./tr.json":619,"./uk.json":613,"./ur.json":810,"./zh-cn.json":867,"./zh-tw.json":803};function n(t){var e=s(t);return i(e)}function s(t){if(!i.o(o,t)){var e=new Error("Cannot find module '"+t+"'");throw e.code="MODULE_NOT_FOUND",e}return o[t]}n.keys=function(){return Object.keys(o)},n.resolve=s,t.exports=n,n.id=434},656:t=>{"use strict";t.exports=JSON.parse('{"name":"Беларуская","lang":"be","messages":{"loading":"Загрузка","wikipedia":"Вікіпедыя","start":"Start Exploring"},"buttons":{"map_overview":"Прагляд мапы","overview":"Прагляд","backtostart":"Вярнуцца ў пачатак","collapse_toggle":"Схаваць мапу","uncollapse_toggle":"Паказаць мапу","swipe_to_navigate":"Swipe to NavigateOK "}}')},242:t=>{"use strict";t.exports=JSON.parse('{"name":"Български","lang":"bg","messages":{"loading":"Зареждане","wikipedia":"От Уикипедия, свободната енциклопедия","start":"Започнете да разглеждате"},"buttons":{"map_overview":"Преглед на картата","overview":"Преглед","backtostart":"Към началото","collapse_toggle":"Скриване на картата","uncollapse_toggle":"Показване на картата","swipe_to_navigate":"Swipe to NavigateOK "}}')},435:t=>{"use strict";t.exports=JSON.parse('{"name":"Čeština","lang":"cs","messages":{"loading":"Nahrávání","wikipedia":"Z Wikipedie, svobodné encyklopedie","start":"Prozkoumat"},"buttons":{"map_overview":"Přehledová mapa","overview":"Přehled","backtostart":"Zpět na začátek","collapse_toggle":"Skrýt mapu","uncollapse_toggle":"Zobrazit mapu","swipe_to_navigate":"Swipe to NavigateOK "}}')},758:t=>{"use strict";t.exports=JSON.parse('{"name":"Deutsch","lang":"de","messages":{"loading":"Daten werden geladen","wikipedia":"von Wikipedia, der freien Enzyklopädie","start":"Explore"},"buttons":{"map_overview":"Kartenübersicht","overview":"Kartenübersicht","backtostart":"Zurück zum Anfang","collapse_toggle":"Karte ausblenden","uncollapse_toggle":"Karte anzeigen","swipe_to_navigate":"Swipe to NavigateOK "}}')},388:t=>{"use strict";t.exports=JSON.parse('{"name":"Ελληνικά","lang":"el","messages":{"loading":"Φόρτωση","wikipedia":"Από την Wikipedia, την ελεύθερη εγκυκλοπαίδεια","start":"Έναρξη περιήγησης"},"buttons":{"map_overview":"Επισκόπηση χάρτη","overview":"Επισκόπηση","backtostart":"Επιστροφή στην αρχή","collapse_toggle":"Απόκρυψη χάρτη","uncollapse_toggle":"Εμφάνιση χάρτη","swipe_to_navigate":"Κτυπήστε ελαφρά για περιήγησηOK "}}')},38:t=>{"use strict";t.exports=JSON.parse('{"name":"English","lang":"en","messages":{"loading":"Loading","wikipedia":"From Wikipedia, the free encyclopedia","start":"Start Exploring"},"buttons":{"map_overview":"Map Overview","overview":"Overview","backtostart":"Back To Beginning","collapse_toggle":"Hide Map","uncollapse_toggle":"Show Map","swipe_to_navigate":"Swipe to NavigateOK "}}')},589:t=>{"use strict";t.exports=JSON.parse('{"name":"Español","lang":"es","messages":{"loading":"cargando","wikipedia":"de Wikipedia, la enciclopedia libre","start":"Explore"},"buttons":{"map_overview":"vista general del mapa","overview":"vista general","backtostart":"volver al comienzo","collapse_toggle":"ocultar mapa","uncollapse_toggle":"mostrar mapa","swipe_to_navigate":"Deslizar para navegarEntendido "}}')},516:t=>{"use strict";t.exports=JSON.parse('{"name":"eesti","lang":"et","messages":{"loading":"Laadib","wikipedia":"Vikipeedia, vaba entsüklopeedia","start":"Uuri"},"buttons":{"map_overview":"Kaardi ülevaade","overview":"Ülevaade","backtostart":"Tagasi algusesse","collapse_toggle":"Peida kaart","uncollapse_toggle":"Näita kaarti","swipe_to_navigate":"Swipe to NavigateOK "}}')},469:t=>{"use strict";t.exports=JSON.parse('{"name":"Français","lang":"fr","messages":{"loading":"Chargement","wikipedia":"Extrait de Wikipédia, l\'encyclopédie libre","start":"Explore"},"buttons":{"map_overview":"Vue d\'ensemble de la carte","overview":"Vue d\'ensemble","backtostart":"Retourner au point de départ","collapse_toggle":"Masquer la carte","uncollapse_toggle":"Afficher la carte","swipe_to_navigate":"Faites glisser pour naviguerOK "}}')},146:t=>{"use strict";t.exports=JSON.parse('{"name":"עברית","lang":"he","direction":"rtl","messages":{"loading":"טוען","wikipedia":"מתוך ויקיפדיה, האנציקלופדיה החופשית","start":"התחל במסע"},"buttons":{"map_overview":"המפה במלואה","overview":"תצוגה מקדימה","backtostart":"חזור להתחלה","collapse_toggle":"הסתר מפה","uncollapse_toggle":"הצג מפה","swipe_to_navigate":"Swipe to NavigateOK "}}')},450:t=>{"use strict";t.exports=JSON.parse('{"name":"Magyar","lang":"hu","messages":{"loading":"töltés","wikipedia":"Wikipedia","start":"Indítsd"},"buttons":{"map_overview":"teljes térkép","overview":"teljes sztori","backtostart":"vissza az elejére","collapse_toggle":"összecsuk","uncollapse_toggle":"kinyit","swipe_to_navigate":"Húzd el a navigációhozOK "}}')},297:t=>{"use strict";t.exports=JSON.parse('{"name":"Icelandic","lang":"is","messages":{"loading":"Hleðsla","wikipedia":"Frá Wikipedia","start":"Hefja"},"buttons":{"map_overview":"Kortayfirlit","overview":"Yfirlit","backtostart":"Hefja aftur","collapse_toggle":"Fela kortið","uncollapse_toggle":"Sýna kortið","swipe_to_navigate":"Strjúktu fyrir valmyndAllt í lagi "}}')},536:t=>{"use strict";t.exports=JSON.parse('{"name":"Italiano","lang":"it","messages":{"loading":"caricare","wikipedia":"da Wikipedia, la enciclopedia libera","start":"Explore"},"buttons":{"map_overview":"vista generale della mappa","overview":"vista generale","backtostart":"tornare all\' inizio","collapse_toggle":"nascondere mappa","uncollapse_toggle":"mostrare mappa","swipe_to_navigate":"Swipe to NavigateOK "}}')},543:t=>{"use strict";t.exports=JSON.parse('{"name":"日本語","lang":"jp","messages":{"loading":"ローディング","wikipedia":"フリー百科事典ウィキペディア(Wikipedia)から","start":"Explore"},"buttons":{"map_overview":"概観地図","overview":"概観","backtostart":"初めに戻る","collapse_toggle":"地図を隠す","uncollapse_toggle":"地図を表示","swipe_to_navigate":"Swipe to NavigateOK "}}')},287:t=>{"use strict";t.exports=JSON.parse('{"name":"한국어","lang":"ko","messages":{"loading":"불러오는중","wikipedia":"위키피디아","start":"시작하기"},"buttons":{"map_overview":"지도 전체보기","overview":"전체보기","backtostart":"되돌아가기","collapse_toggle":"숨기기","uncollapse_toggle":"보이기","swipe_to_navigate":"Swipe to NavigateOK "}}')},807:t=>{"use strict";t.exports=JSON.parse('{"name":"Nederlands","lang":"nl","messages":{"loading":"Laden","wikipedia":"Van Wikipedia, de gratis encyclopedie","start":"Start Exploring"},"buttons":{"map_overview":"Kaart overzicht","overview":"Overzicht","backtostart":"Terug naar begin","collapse_toggle":"Verberg kaart","uncollapse_toggle":"Toon kaart","swipe_to_navigate":"Swipe to NavigateOK "}}')},537:t=>{"use strict";t.exports=JSON.parse('{"name":"Norsk nynorsk","lang":"nn","messages":{"loading":"Lastar inn","wikipedia":"Frå Wikipedia, det frie oppslagsverket","start":"Utforsk"},"buttons":{"map_overview":"Sjå oversiktskart","overview":"Oversikt","backtostart":"Til starten","collapse_toggle":"Gøym kartet","uncollapse_toggle":"Vis kartet","swipe_to_navigate":"Swipe to NavigateOK "}}')},950:t=>{"use strict";t.exports=JSON.parse('{"name":"Norsk","lang":"no","messages":{"loading":"Laster inn","wikipedia":"fra Wikipedia, den frie encyklopedi","start":"Explore"},"buttons":{"map_overview":"Se oversiktskart","overview":"Se oversiktskart","backtostart":"Til begynnelsen","collapse_toggle":"Skjul kartet","uncollapse_toggle":"Vis kartet","swipe_to_navigate":"Swipe to NavigateOK "}}')},893:t=>{"use strict";t.exports=JSON.parse('{"name":"Polski","lang":"pl","messages":{"loading":"Wczytuję","wikipedia":"z Wikipedii, wolnej encyklopedii","start":"Explore"},"buttons":{"map_overview":"Przeglądaj mapę","overview":"Przeglądaj","backtostart":"Powrót","collapse_toggle":"Ukryj mapę","uncollapse_toggle":"Pokaż mapę","swipe_to_navigate":"Swipe to NavigateOK "}}')},253:t=>{"use strict";t.exports=JSON.parse('{"name":"Português","lang":"pt","messages":{"loading":"carregando","wikipedia":"de Wikipedia, a enciclopédia livre","start":"início"},"buttons":{"map_overview":"vista geral do mapa","overview":"vista geral","backtostart":"voltar ao início","collapse_toggle":"ocultar mapa","uncollapse_toggle":"mostrar mapa","swipe_to_navigate":"Deslize para navegarOK "}}')},112:t=>{"use strict";t.exports=JSON.parse('{"name":"Русский","lang":"ru","messages":{"loading":"Загрузка","wikipedia":"Из Википедии, свободной энциклопедии","start":"Начать просмотр"},"buttons":{"map_overview":"Просмотр карты","overview":"Обзор","backtostart":"К началу","collapse_toggle":"Скрыть карту","uncollapse_toggle":"Показать карту","swipe_to_navigate":"Swipe to NavigateOK "}}')},211:t=>{"use strict";t.exports=JSON.parse('{"name":"Slovenčina","lang":"sk","messages":{"loading":"Nahrávanie","wikipedia":"Z Wikipédie, slobodnej encyklopédie","start":"Preskúmať"},"buttons":{"map_overview":"Prehľadová mapa","overview":"Prehľad","backtostart":"Späť na začiatok","collapse_toggle":"Skryť mapu","uncollapse_toggle":"Zobraziť mapu","swipe_to_navigate":"Navigujte potiahnutím prstaOK "}}')},424:t=>{"use strict";t.exports=JSON.parse('{"name":"Srpski","lang":"sr","messages":{"loading":"Učitavanje","wikipedia":"Wikipedia","start":"Explore"},"buttons":{"map_overview":"Pregled mapę","backtostart":"Nazad na početak","collapse_toggle":"Sakrij mapu","uncollapse_toggle":"Prikaži mapu","swipe_to_navigate":"Swipe to NavigateOK "}}')},116:t=>{"use strict";t.exports=JSON.parse('{"name":"Svenska","lang":"sv","messages":{"loading":"Laddar","wikipedia":"Från Wikipedia, den fria encyklopedin","start":"Explore"},"buttons":{"map_overview":"Översiktskarta","overview":"Översikt","backtostart":"Tillbaka till början","collapse_toggle":"Göm kartan","uncollapse_toggle":"Visa kartan","swipe_to_navigate":"Swipe to NavigateOK "}}')},619:t=>{"use strict";t.exports=JSON.parse('{"name":"Türkçe","lang":"tr","messages":{"loading":"Yükleniyor","wikipedia":"Vikipedi, Özgür Ansiklopedi","start":"Keşfet"},"buttons":{"map_overview":"Genel harita","overview":"Genel harita","backtostart":"Başlangıç menüsüne dön","collapse_toggle":"Menüyü gizle","uncollapse_toggle":"Menüyü göster","swipe_to_navigate":"Dokun ve kaydırOK "}}')},613:t=>{"use strict";t.exports=JSON.parse('{"name":"Українська","lang":"uk","messages":{"loading":"Завантаження","wikipedia":"З Вікіпедії, вільної енциклопедії","start":"Почати перегляд"},"buttons":{"map_overview":"Перегляд карти","overview":"Огляд","backtostart":"Повернутися до початку","collapse_toggle":"Приховати карту","uncollapse_toggle":"Показати карту","swipe_to_navigate":"Swipe to NavigateOK "}}')},810:t=>{"use strict";t.exports=JSON.parse('{"name":"Urdu","lang":"ur","direction":"rtl","messages":{"loading":"لوڈ ہو رہا ہے","wikipedia":"ویکیپیڈیا, مفت دستیاب انسائیکلوپیڈیا سے ","start":"دریافت شروع کی جایے "},"buttons":{"map_overview":"نقشے کا جائزہ","overview":"جائزہ","backtostart":"واپس شروع سے","collapse_toggle":"نقشہ غائب","uncollapse_toggle":"نقشہ حاضر","swipe_to_navigate":"Swipe to NavigateOK "}}')},867:t=>{"use strict";t.exports=JSON.parse('{"name":"中文","lang":"zh-cn","messages":{"loading":"加载中","wikipedia":"来自维基百科,自由的百科全书","start":"Explore"},"buttons":{"map_overview":"地图总览","overview":"总览","backtostart":"回到首页","collapse_toggle":"隐藏地图","uncollapse_toggle":"显示地图","swipe_to_navigate":"Swipe to NavigateOK "}}')},803:t=>{"use strict";t.exports=JSON.parse('{"name":"正體中文","lang":"zh-tw","messages":{"loading":"載入中","wikipedia":"來自維基百科,自由的百科全書","start":"探索"},"buttons":{"map_overview":"地圖總覽","overview":"總覽","backtostart":"回到首頁","collapse_toggle":"隱藏地圖","uncollapse_toggle":"顯示地圖","swipe_to_navigate":"左右滑動以瀏覽我知道了 "}}')}},e={};function i(o){var n=e[o];if(void 0!==n)return n.exports;var s=e[o]={exports:{}};return t[o].call(s.exports,s,s.exports,i),s.exports}i.d=(t,e)=>{for(var o in e)i.o(e,o)&&!i.o(t,o)&&Object.defineProperty(t,o,{enumerable:!0,get:e[o]})},i.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),i.r=t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})};var o={};(()=>{"use strict";i.r(o),i.d(o,{MediaType:()=>Pt,StamenTileLayer:()=>it,StoryMap:()=>Et,ZoomifyTileLayer:()=>K,loadCSS:()=>A,setLanguage:()=>F});const t=navigator.userAgent.toLowerCase(),e=document.documentElement,s=-1!==t.indexOf("webkit"),a="ActiveXObject"in window,r=-1!==t.indexOf("phantom"),h=-1!==t.search("android [23]"),l="undefined"!=typeof orientation,c=navigator.msPointerEnabled&&navigator.msMaxTouchPoints&&!window.PointerEvent,d=window.PointerEvent&&navigator.pointerEnabled&&navigator.maxTouchPoints||c,_=a&&"transition"in e.style,u="WebKitCSSMatrix"in window&&"m11"in new window.WebKitCSSMatrix&&!h,p="MozPerspective"in e.style,m="OTransition"in e.style,g=(window.opera,!window.L_NO_TOUCH&&!r&&(d||"ontouchstart"in window||window.DocumentTouch&&document instanceof window.DocumentTouch));let f="devicePixelRatio"in window&&window.devicePixelRatio>1;if(!f&&"matchMedia"in window){var v=window.matchMedia("(min-resolution:144dpi)");f=v&&v.matches}a&&document.addEventListener;const y=-1!==t.indexOf("chrome"),w=-1!==t.indexOf("gecko")&&!s&&!window.opera&&!a,b=(t.indexOf("android"),window.L_DISABLE_3D,l),x=(l&&window.opera,!!g),k=!!f,M=function(){var t="portrait";return window.innerWidth>window.innerHeight&&(t="landscape"),Math.abs(window.orientation),trace(t),t};function T(t){for(var e,i=Array.prototype.slice.call(arguments,1),o=0,n=i.length;o'}))}(t)),t.match(/[\s\S]*?<\/p>/)?t:"
"+t+"
"}const E=function(t){var e={w:0,h:0};return t.w>t.h&&t.h>0?(e.h=t.h,e.w=t.h):(e.w=t.w,e.h=t.w),e},Z=function(t){return null!==t.w&&""!==t.w?Math.round(t.w/16*9):null!==t.h&&""!==t.h?Math.round(t.h/9*16):0};function B(t,e,i,o){D.js(t,e,i,o)}function A(t,e,i,o){D.css(t,e,i,o)}let D=new class{constructor(t){this.doc=t,this.pending={},this.queue={css:[],js:[]},this.styleSheets=t.styleSheets,this.env=this.getEnv(),this.head=this.doc.head||this.doc.getElementsByTagName("head")[0],this.pollCount=0}createNode(t,e){var i,o=this.doc.createElement(t);for(i in e)e.hasOwnProperty(i)&&o.setAttribute(i,e[i]);return o}finish(t){var e,i,o=this.pending[t];o&&(e=o.callback,(i=o.urls).shift(),this.pollCount=0,i.length||(e&&e.call(o.context,o.obj),this.pending[t]=null,this.queue[t].length&&this.load(t)))}getEnv(){var t=navigator.userAgent,e={async:!0===this.doc.createElement("script").async};return(e.webkit=/AppleWebKit\//.test(t))||(e.ie=/MSIE/.test(t))||(e.opera=/Opera/.test(t))||(e.gecko=/Gecko\//.test(t))||(e.unknown=!0),e}load(t,e,i,o,n){var s,a,r,h,l,c,d=function(){this.finish(t)}.bind(this),_="css"===t,u=[];if(e)if(e="string"==typeof e?[e]:e.concat(),_||this.env.async||this.env.gecko||this.env.opera)this.queue[t].push({urls:e,callback:i,obj:o,context:n});else for(s=0,a=e.length;s=0;)if(this.styleSheets[t].href===e.urls[0]){this.finish("css");break}this.pollCount+=1,e&&(this.pollCount<200?setTimeout(this.pollWebKit.bind(this),50):this.finish("css"))}}css(t,e,i,o){this.load("css",t,e,i,o)}js(t,e,i,o){this.load("js",t,e,i,o)}}(document);class I{static get(t){return"string"==typeof t?document.getElementById(t):t}static getByClass(t){if(t)return document.getElementsByClassName(t)}static create(t,e,i){var o=document.createElement(t);return o.className=e,i&&i.appendChild(o),o}static createText(t,e){var i=document.createTextNode(t);return e&&e.appendChild(i),i}static getTranslateString(t){return I.TRANSLATE_OPEN+t.x+"px,"+t.y+"px"+I.TRANSLATE_CLOSE}static setPosition(t,e){t._vco_pos=e,Browser.webkit3d?(t.style[I.TRANSFORM]=I.getTranslateString(e),Browser.android&&(t.style["-webkit-perspective"]="1000",t.style["-webkit-backface-visibility"]="hidden")):(t.style.left=e.x+"px",t.style.top=e.y+"px")}static getPosition(t){for(var e={x:0,y:0};t&&!isNaN(t.offsetLeft)&&!isNaN(t.offsetTop);)e.x+=t.offsetLeft,e.y+=t.offsetTop,t=t.offsetParent;return e}static testProp(t){for(var e=document.documentElement.style,i=0;i1?1:t)}mirror(t){return t<.5?easings.sinusoidal(2*t):easings.sinusoidal(1-2*(t-.5))}easeInQuad(t){return t*t}easeOutQuad(t){return t*(2-t)}easeInOutQuad(t){return t<.5?2*t*t:(4-2*t)*t-1}easeInCubic(t){return t*t*t}easeOutCubic(t){return--t*t*t+1}easeInOutCubic(t){return t<.5?4*t*t*t:(t-1)*(2*t-2)*(2*t-2)+1}easeInQuart(t){return t*t*t*t}easeOutQuart(t){return 1- --t*t*t*t}easeInOutQuart(t){return t<.5?8*t*t*t*t:1-8*--t*t*t*t}easeInQuint(t){return t*t*t*t*t}easeOutQuint(t){return 1+--t*t*t*t*t}easeInOutQuint(t){return t<.5?16*t*t*t*t*t:1+16*--t*t*t*t*t}}let R=i(38);var H={};function F(t){return H=function(t){var e=i(434)(`./${t}.json`);for(let t in R)e[t]?"object"==typeof R[t]&&(e[t]=Object.assign(R[t],e[t])):e[t]=R[t];return e}(t),H}class W{on(t,e,i){var o=this._vco_events=this._vco_events||{};return o[t]=o[t]||[],o[t].push({action:e,context:i||this}),this}hasEventListeners(t){var e="_vco_events";return e in this&&t in this[e]&&this[e][t].length>0}off(t,e,i){if(!this.hasEventListeners(t))return this;for(var o=0,n=this._vco_events,s=n[t].length;o=0){var i=0,o=this.current_marker;this.current_marker=t;var n=this._markers[this.current_marker];if(this.animator&&this.animator.stop(),this._resetMarkersActive(),n.data.type&&"overview"==n.data.type)this._markerOverview(),e||this._onMarkerChange();else if(n.active(!0),e)n.data.location&&this._viewTo(n.data.location);else{if(n.data.location&&n.data.location.lat)if(i=this._calculateZoomChange(this._getMapCenter(!0),n.location()),this._viewTo(n.data.location,{calculate_zoom:this.options.calculate_zoom,zoom:i}),this.options.line_follows_path){if(this.options.show_history_line&&n.data.real_marker&&this._markers[o].data.real_marker){var s,a=[],r=o;if(rthis.current_marker)for(;r>this.current_marker;)this._markers[r].data.location&&this._markers[r].data.location.lat&&(s={lat:this._markers[r].data.location.lat,lon:this._markers[r].data.location.lon},a.push(s)),r--;a.push({lat:n.data.location.lat,lon:n.data.location.lon}),this._replaceLines(this._line_active,a)}}else this.options.show_history_line&&n.data.real_marker&&this._markers[o].data.real_marker&&this._replaceLines(this._line_active,[{lat:n.data.location.lat,lon:n.data.location.lon},{lat:this._markers[o].data.location.lat,lon:this._markers[o].data.location.lon}]);else this._markerOverview(),e||this._onMarkerChange();this._onMarkerChange()}}}panTo(t,e){this._panTo(t,e)}zoomTo(t,e){this._zoomTo(t,e)}viewTo(t,e){this._viewTo(t,e)}getBoundsZoom(t,e,i,o){this.__getBoundsZoom(t,e,i,o)}markerOverview(){this._markerOverview()}calculateMarkerZooms(){this._calculateMarkerZooms()}createMiniMap(){this._createMiniMap()}setMapOffset(t,e){this.options.map_center_offset.left=t,this.options.map_center_offset.top=e}calculateMinMaxZoom(){for(var t=0;tt&&(this.zoom_min_max.min=t)}initialMapLocation(){this._loaded.data&&this._loaded.map&&(this.goTo(this.options.start_at_slide,!0),this._initialMapLocation())}show(){}hide(){}addTo(t){t.appendChild(this._el.container),this.onAdd()}removeFrom(t){t.removeChild(this._el.container),this.onRemove()}createMarkers(t){this._createMarkers(t)}createMarker(t){this._createMarker(t)}_destroyMarker(t){this._removeMarker(t);for(var e=0;eo||i.y>o;)i=i.divideBy(2).floor(),this._imageSize.push(i),this._gridSize.push(this._getGridSize(i));this._imageSize.reverse(),this._gridSize.reverse(),this.options.maxZoom=this._gridSize.length-1}onAdd(t){L.TileLayer.prototype.onAdd.call(this,t);var e=t.getSize(),i=this._getBestFitZoom(e),o=this._imageSize[i],n=o.x?o.x:0,s=o.y?o.y:0;t.options.crs.pointToLatLng(L.point(n/2,s/2),i)}getZoomifyBounds(t){var e=this._imageSize[0],i=t.options.crs.pointToLatLng(L.point(0,0),0),o=t.options.crs.pointToLatLng(L.point(e.x,e.y),0);return L.latLngBounds(i,o)}getCenterZoom(t){var e=t.getSize(),i=this._getBestFitZoom(e),o=this._imageSize[i],n=o.x?o.x:0,s=o.y?o.y:0,a=t.options.crs.pointToLatLng(L.point(n/2,s/2),i);return{center:a,lat:a.lat,lon:a.lng,zoom:i}}_getGridSize(t){var e=this.options.tileSize,i=t.x?t.x:0,o=t.y?t.y:0;return L.point(Math.ceil(i/e),Math.ceil(o/e))}_getBestFitZoom(t){for(var e,i=this.options.tolerance,o=this._imageSize.length-1;o;){if((e=this._imageSize[o]).x*i=0&&t.x=0&&t.ythis.options.zoomLevelOffset&&this._mainMap.getZoom()this._lastMiniMapZoom?(e=this._mainMap.getZoom()+1,this._miniMap.setZoom(this._miniMap.getZoom()-1)):e=this._mainMap.getZoom():e=o,this._lastMiniMapZoom=this._miniMap.getZoom(),e}_decideMinimized(){return this._userToggledDisplay?this._minimized:this.options.autoToggleDisplay?!!this._mainMap.getBounds().contains(this._miniMap.getBounds()):this._minimized}}L.Map.mergeOptions({miniMapControl:!1}),L.Map.addInitHook((function(){this.options.miniMapControl&&(this.miniMapControl=(new L.Control.MiniMap).addTo(this))})),L.control.minimap=function(t){return new L.Control.MiniMap(t)};class J{constructor(t,e){this._el={container:{},content_container:{},content:{}},this._marker={},this._icon={},this._custom_icon=!1,this._custom_icon_url="",this._custom_image_icon=!1,this.marker_number=0,this.media_icon_class="",this.timer={},this.data={},this.options={duration:1e3,ease:j.easeInSpline,width:600,height:600,map_popup:!1},this.animator=null,z(this.options,e),z(this.data,t),this._initLayout()}show(){}hide(){}addTo(t){this._addTo(t)}removeFrom(t){this._removeFrom(t)}updateDisplay(t,e,i){this._updateDisplay(t,e,i)}createMarker(t,e){this._createMarker(t,e)}createPopup(t,e){this._createPopup(t,e)}active(t){this._active(t)}location(){return this._location()}_createMarker(t,e){}_addTo(t){}_removeFrom(t){}_createPopup(t,e){}_active(t){}_location(){return{lat:0,lng:0}}_onMarkerClick(t){this.fire("markerclick",{marker_number:this.marker_number})}_initLayout(){this._createMarker(this.data,this.options)}_updateDisplay(t,e,i){}}P(J,W);class X extends J{_createMarker(t,e){if(t.location&&"number"==typeof t.location.lat&&"number"==typeof t.location.lon){this.data.real_marker=!0;var i=e.use_custom_markers||t.location.use_custom_marker;i&&t.location.icon?(this._custom_icon={url:t.location.icon,size:t.location.iconSize||[48,48],anchor:this._customIconAnchor(t.location.iconSize)},this._icon=this._createIcon()):i&&t.location.image?(this._custom_image_icon=t.location.image,this._icon=this._createImage()):this._icon=this._createDefaultIcon(!1),this._marker=new L.marker([t.location.lat,t.location.lon],{title:t.text.headline,icon:this._icon}),this._marker.on("click",this._onMarkerClick,this),e.map_popup&&this._createPopup(t,e)}}_addTo(t){this.data.real_marker&&this._marker.addTo(t)}_createPopup(t,e){}_active(t){this.data.media&&this.data.media.mediatype?this.media_icon_class="vco-mapmarker-icon vco-icon-"+this.data.media.mediatype.type:this.media_icon_class="vco-mapmarker-icon vco-icon-plaintext",this.data.real_marker&&(t?this._marker.setZIndexOffset(100):(clearTimeout(this.timer),this._marker.setZIndexOffset(0)),this._custom_icon?this._icon=this._createIcon():this._custom_image_icon?this._icon=this._createImage(t):this._icon=this._createDefaultIcon(t),this._setIcon())}_createIcon(){return new L.icon({iconUrl:this._custom_icon.url,iconSize:this._custom_icon.size,iconAnchor:this._custom_icon.anchor})}_createImage(t){var e=t?"vco-mapmarker-image-icon-active":"vco-mapmarker-image-icon";return new L.icon({iconUrl:url,iconSize:[48],iconAnchor:[24,48],shadowSize:[68,95],shadowAnchor:[22,94],className:e})}_createDefaultIcon(t){var e=t?"vco-mapmarker-active":"vco-mapmarker";return L.divIcon({className:e+" "+this.media_icon_class,iconAnchor:[10,10]})}_customIconAnchor(t){return t?[.5*t[0],t[1]]:[24,48]}_openPopup(){this._marker.openPopup()}_setIcon(){this._marker.setIcon(this._icon)}_location(){return this.data.real_marker?this._marker.getLatLng():{}}}function $(t,e,i,o){return{url:["https://tiles.stadiamaps.com/tiles/",t=t.replace("-","_"),"/{Z}/{X}/{Y}.",e].join(""),type:e,subdomains:"",minZoom:i,maxZoom:o,attribution:["Leaflet | ",'Map tiles by Stamen Design , served by ','Stadia ','under CC BY 3.0 . ','Data by OpenStreetMap , ','under CC BY SA .'].join("")}}let Q={toner:$("stamen_toner","png",0,20),terrain:$("stamen_terrain","jpg",4,18),watercolor:$("stamen_watercolor","jpg",0,16),ch_watercolor:{url:"https://watercolormaps.collection.cooperhewitt.org/tile/watercolor//{z}/{x}/{y}.png",type:"png",subdomains:"",minZoom:0,maxZoom:16,attribution:["Leaflet | ",'Map tiles by Stamen Design , served by ','Cooper Hewitt, Smithsonian Design Museum ','under CC BY 3.0 . ','Data by OpenStreetMap , ','under CC BY SA .'].join("")}};function tt(t,e,i){for(var o=et(t),n=0;n■ StoryMapJS "),this._tile_layer=this._createTileLayer(this.options.map_type),this._tile_layer.on("load",this._onTilesLoaded,this),this._map.addLayer(this._tile_layer),this._image_layer&&this._map.addLayer(this._image_layer),this._line=this._createLine(this._line),this._line.setStyle({color:this.options.line_color_inactive}),this._addLineToMap(this._line),this._line_active=this._createLine(this._line_active),this._line_active.setStyle({opacity:1}),this._addLineToMap(this._line_active),this.options.map_as_image&&(this._line_active.setStyle({opacity:0}),this._line.setStyle({opacity:0}))}_createMiniMap(){this.options.map_as_image&&(this.zoom_min_max.min=0),this.bounds_array||(this.bounds_array=this._getAllMarkersBounds(this._markers)),this._tile_layer_mini=this._createTileLayer(this.options.map_type),this._mini_map=new Y(this._tile_layer_mini,{width:150,height:100,position:"topleft",bounds_array:this.bounds_array,zoomLevelFixed:this.zoom_min_max.min,zoomAnimation:!0,aimingRectOptions:{fillColor:"#FFFFFF",color:"#FFFFFF",opacity:.4,weight:1,stroke:!0}}).addTo(this._map),this._mini_map.getContainer().style.backgroundColor=this.options.map_background_color}_createBackgroundMap(t){if(this._image_layer?this._image_layer.clearLayers():(this._image_layer=new L.layerGroup,this._map.addLayer(this._image_layer)),t)for(let s in t){var e,i=t[s],o={x:0,y:0,url:i.src,height:parseInt(i.style.height.split("px")[0]),width:parseInt(i.style.width.split("px")[0]),pos:{start:0,end:0}};if(i.style.left||i.style.top)i.style.left&&(o.x=parseInt(i.style.left.split("px")[0])),i.style.top&&(o.y=parseInt(i.style.top.split("px")[0]));else if(i.style["-webkit-transform"]||i.style.transform||i.style["-ms-transform"]){var n;i.style["-webkit-transform"]?n=i.style["-webkit-transform"].split("3d(")[1].split(", 0)")[0].split(", "):i.style.transform?n=i.style.transform.split("3d(")[1].split(", 0)")[0].split(", "):i.style["-ms-transform"]&&(n=i.style["-ms-transform"].split("3d(")[1].split(", 0)")[0].split(", ")),o.x=parseInt(n[0].split("px")[0]),o.y=parseInt(n[1].split("px")[0])}o.url.match("toner")&&(o.url=o.url.replace("/toner-hybrid/","/toner-lines/"),o.url=o.url.replace("/toner/","/toner-background/")),o.pos.start=this._map.containerPointToLatLng([o.x,o.y]),o.pos.end=this._map.containerPointToLatLng([o.x+o.width,o.y+o.height]),e=new L.imageOverlay(o.url,[o.pos.start,o.pos.end]),this._image_layer.addLayer(e)}}_createTileLayer(t,e){var i=null,o=(e={r:""},"Leaflet | ");t||(t="osm:standard"),"stamen:trees-cabs-crime"==t&&(console.log("stamen:trees-cabs-crime layer no longer available. Using OSM instead"),t="osm"),k&&(e.r="@2x");let n=t.split(":");switch(n[0]){case"mapbox":var s;if(e.attribution=o+"
© Mapbox © OpenStreetMap ",n.length>2)s="https://api.mapbox.com/styles/v1/"+n[2].substr(9)+"/tiles/256/{z}/{x}/{y}@2x?access_token="+this.options.map_access_token;else s="https://api.tiles.mapbox.com/v4/"+n[1]+"/{z}/{x}/{y}.png?access_token="+this.options.map_access_token;i=new L.TileLayer(s,e);break;case"stadia":var a;n.length>1&&(a=n.slice(1).join(":"),this.options.map_access_token&&(a=`${a}?api_key=${this.options.map_access_token}`)),i=new L.TileLayer(a,e);break;case"stamen":i=new it(n[1]||"toner-lite",e),this._map.getContainer().style.backgroundColor="#FFFFFF";break;case"zoomify":e.width=this.options.zoomify.width,e.height=this.options.zoomify.height,e.tolerance=this.options.zoomify.tolerance||.9,e.attribution=o+this.options.zoomify.attribution,i=new K(this.options.zoomify.path,e);break;case"http":case"https":e.subdomains=this.options.map_subdomains,e.attribution=o+this.options.attribution,i=new L.TileLayer(this.options.map_type,e);break;case"ch-watercolor":e.attribution=o+'Map tiles by Stamen Design , served by Cooper Hewitt, Smithsonian Design Museum under CC BY 3.0 . Data by OpenStreetMap , under CC BY SA .',e.type="jpg",e.minZoom=0,e.maxZoom=16,i=new L.TileLayer("https://watercolormaps.collection.cooperhewitt.org/tile/watercolor/{z}/{x}/{y}.jpg",e);break;default:e.subdomains="ab",e.attribution=o+"© OpenStreetMap and contributors, under an open license ",i=new L.TileLayer("https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png",e)}return i}_onMapMoveEnd(t){}_onTilesLoaded(t){this._createBackgroundMap(t.target._tiles),this._tile_layer.off("load",this._onTilesLoaded,this)}_onMapZoomed(t){this._map.off("zoomend",this._onMapZoomed,this)}_onMapZoom(t){}_createMarker(t){var e=new X(t,this.options);e.on("markerclick",this._onMarkerClick,this),this._addMarker(e),this._markers.push(e),e.marker_number=this._markers.length-1,this.fire("markerAdded",e)}_addMarker(t){t.addTo(this._map)}_removeMarker(t){}_markerOverview(){var t,e;if(this._line_active.setStyle({opacity:0}),"zoomify"==this.options.map_type&&this.options.map_as_image){var i=this._tile_layer.getCenterZoom(this._map);t=i.center,(this.options.map_center_offset&&0!=this.options.map_center_offset.left||0!=this.options.map_center_offset.top)&&(i.zoom=i.zoom-1,t=this._getMapCenterOffset(t,i.zoom)),this._map.setView(t,i.zoom,{pan:{animate:!0,duration:this.options.duration/1e3,easeLinearity:.1},zoom:{animate:!0,duration:this.options.duration/1e3,easeLinearity:.1}})}else if(this.bounds_array=this._getAllMarkersBounds(this._markers),this.options.map_center_offset&&0!=this.options.map_center_offset.left||0!=this.options.map_center_offset.top){var o=new L.latLngBounds(this.bounds_array);t=o.getCenter(),e=this._map.getBoundsZoom(o),t=this._getMapCenterOffset(t,e-1),this._map.setView(t,e-1,{pan:{animate:!0,duration:this.options.duration/1e3,easeLinearity:.1},zoom:{animate:!0,duration:this.options.duration/1e3,easeLinearity:.1}})}else this._map.fitBounds(this.bounds_array,{padding:[15,15]});this._mini_map&&this._mini_map.minimize()}_getAllMarkersBounds(t){for(var e=[],i=0;i0?this._markers[t-1].location():this._getMapCenter(!0),n=this._calculateZoomChange(e,o),i=tthis.options.skinny_size&&(n-1<=this.zoom_min_max.min?this._mini_map.minimize():this._mini_map.restore())}_getMapLocation(t){return this._map.latLngToContainerPoint(t)}_getMapZoom(){return this._map.getZoom()}_getMapCenter(t){return this._map.getCenter()}_getMapCenterOffset(t,e){var i;return i=this._map.project(t,e).subtract([this.options.map_center_offset.left,this.options.map_center_offset.top]),this._map.unproject(i,e)}_getBoundsZoom(t,e,i){var o=t,n=[3*Math.abs(this.options.map_center_offset.left),3*Math.abs(this.options.map_center_offset.top)];if(i){var s=o.lat+(o.lat-e.lat)/2,a=o.lng+(o.lng-e.lng)/2;o=new L.LatLng(s,a)}var r=new L.LatLngBounds([o,e]);return this.options.less_bounce?this._map.getBoundsZoom(r,!1,n):this._map.getBoundsZoom(r,!0,n)}_getZoomifyZoom(){}_initialMapLocation(){this._map.on("zoomend",this._onMapZoomed,this)}_updateMapDisplay(t,e){if(t){var i=this.options.duration,o=this;e&&(i=e),this.timer&&clearTimeout(this.timer),this.timer=setTimeout((function(){o._refreshMap()}),i)}else this.timer||this._refreshMap();this._mini_map&&this._el.container.offsetWidth1e4&&(this.data.direction="left",e.x>0&&(this.data.direction="right")),Math.abs(e.y)>1e4&&(this.data.direction="up",e.y>0&&(this.data.direction="down")),this._animateMomentum(),i&&this.fire("swipe_"+this.data.direction,this.data)}_animateMomentum(){var t={x:this.data.new_pos.x,y:this.data.new_pos.y},e={duration:this.options.duration,easing:VCO.Ease.easeOutStrong};this.options.enable.y&&((this.options.constraint.top||this.options.constraint.bottom)&&(t.y>this.options.constraint.bottom?t.y=this.options.constraint.bottom:t.ythis.options.constraint.left?t.x=this.options.constraint.left:t.x":H.buttons.collapse_toggle+" "):(this.collapsed=!0,this.hide(25),this._el.button_overview.style.display="none",this.fire("collapse",{y:1}),this._el.button_collapse_toggle.innerHTML=b?" ":H.buttons.uncollapse_toggle+" ")}_initLayout(){this._el.button_overview=I.create("span","vco-menubar-button",this._el.container),st.addListener(this._el.button_overview,"click",this._onButtonOverview,this),this._el.button_backtostart=I.create("span","vco-menubar-button",this._el.container),st.addListener(this._el.button_backtostart,"click",this._onButtonBackToStart,this),this._el.button_collapse_toggle=I.create("span","vco-menubar-button",this._el.container),st.addListener(this._el.button_collapse_toggle,"click",this._onButtonCollapseMap,this),this.options.map_as_image?this._el.button_overview.innerHTML=H.buttons.overview:this._el.button_overview.innerHTML=H.buttons.map_overview,b?(this._el.button_backtostart.innerHTML=" ",this._el.button_collapse_toggle.innerHTML=" ",this._el.container.setAttribute("ontouchstart"," ")):(this._el.button_backtostart.innerHTML=H.buttons.backtostart+" ",this._el.button_collapse_toggle.innerHTML=H.buttons.collapse_toggle+" "),"landscape"==this.options.layout&&(this._el.button_collapse_toggle.style.display="none")}_initEvents(){}_updateDisplay(t,e,i){t&&(this.options.width=t),e&&(this.options.height=e)}}function rt(t,e){return ht(t,e)}P(at,W,V);const ht=function(){var t=document,e=window,i=e.performance,o=i&&(i.now||i.webkitNow||i.msNow||i.mozNow),n=o?function(){return o.call(i)}:function(){return+new Date},s=t.documentElement,a=!1,r=1e3,h=/^rgb\(|#/,l=/^([+\-])=([\d\.]+)/,c=/^(?:[\+\-]=?)?\d+(?:\.\d+)?(%|in|cm|mm|em|ex|pt|pc|px)$/,d=/rotate\(((?:[+\-]=)?([\-\d\.]+))deg\)/,_=/scale\(((?:[+\-]=)?([\d\.]+))\)/,u=/skew\(((?:[+\-]=)?([\-\d\.]+))deg, ?((?:[+\-]=)?([\-\d\.]+))deg\)/,p=/translate\(((?:[+\-]=)?([\-\d\.]+))px, ?((?:[+\-]=)?([\-\d\.]+))px\)/,m={lineHeight:1,zoom:1,zIndex:1,opacity:1,transform:1},g=function(){var e,i=t.createElement("a").style,o=["webkitTransform","MozTransform","OTransform","msTransform","Transform"];for(e=0;e1e12&&(t=n()),a&&(t=n()),e=i;e--;)w[e](t);w.length&&y(b)}function x(t){var e,i=function(t,e,i){if(Array.prototype.indexOf)return t.indexOf(e);for(i=0;i=0&&(e=w.slice(i+1),w.length=i,w=w.concat(e))}function k(t,e){var i,o={};return(i=t.match(d))&&(o.rotate=E(i[1],e?e.rotate:null)),(i=t.match(_))&&(o.scale=E(i[1],e?e.scale:null)),(i=t.match(u))&&(o.skewx=E(i[1],e?e.skewx:null),o.skewy=E(i[3],e?e.skewy:null)),(i=t.match(p))&&(o.translatex=E(i[1],e?e.translatex:null),o.translatey=E(i[3],e?e.translatey:null)),o}function M(t){var e="";return"rotate"in t&&(e+="rotate("+t.rotate+"deg) "),"scale"in t&&(e+="scale("+t.scale+") "),"translatex"in t&&(e+="translate("+t.translatex+"px,"+t.translatey+"px) "),"skewx"in t&&(e+="skew("+t.skewx+"deg,"+t.skewy+"deg)"),e}function L(t){var e,i,o,n=t.match(/rgba?\((\d+),\s*(\d+),\s*(\d+)/);return(n?(e=n[1],i=n[2],o=n[3],"#"+(1<<24|e<<16|i<<8|o).toString(16).slice(1)):t).replace(/#(\w)(\w)(\w)$/,"#$1$1$2$2$3$3")}function T(t){return t.replace(/-(.)/g,(function(t,e){return e.toUpperCase()}))}function P(t){return"function"==typeof t}function z(t){return Math.sin(t*Math.PI/2)}function S(t,e,i,o,s,a){o=P(o)?o:Z.easings[o]||z;var h,l=t||r,c=this,d=a-s,_=n(),u=0,p=0;return h=function t(n){var r=n-_;if(r>l||u)return a=isFinite(a)?a:1,u?p&&e(a):e(a),x(t),i&&i.apply(c);isFinite(a)?e(d*o(r/l)+s):e(o(r/l))},1===w.push(h)&&y(b),{stop:function(t){u=1,p=t,t||(i=null)}}}function C(t,e){var i,o,n=t.length,s=[];for(i=0;i15?15:n<0?0:n,r[o]=n.toString(16);return"#"+r.join("")}(t,i[s][n],o[s][n]):(a=Math.round(((o[s][n]-i[s][n])*t+i[s][n])*r)/r,n in m||(a+=e[s][n]||"px"),a)}function E(t,e,i,o,n){return(i=l.exec(t))?(n=parseFloat(i[2]))&&e+("+"==i[1]?1:-1)*n:parseFloat(t)}function Z(t,e){var i,o,n,s=t?s=isFinite(t.length)?t:[t]:[],a=e.complete,r=e.duration,l=e.easing,d=e.bezier,_=[],u=[],p=[],m=[];for(d&&(o=e.left,n=e.top,delete e.right,delete e.bottom,delete e.left,delete e.top),i=s.length;i--;){if(_[i]={},u[i]={},p[i]={},d){var y=v(s[i],"left"),w=v(s[i],"top"),b=[E(P(o)?o(s[i]):o||0,parseFloat(y)),E(P(n)?n(s[i]):n||0,parseFloat(w))];m[i]=P(d)?d(s[i],b):d,m[i].push(b),m[i].unshift([parseInt(y,10),parseInt(w,10)])}for(var x in e){switch(x){case"complete":case"duration":case"easing":case"bezier":continue}var z,Z=v(s[i],x),B=P(e[x])?e[x](s[i]):e[x];"string"!=typeof B||!h.test(B)||h.test(Z)?(_[i][x]="transform"==x?k(Z):"string"==typeof B&&h.test(B)?L(Z).slice(1):parseFloat(Z),u[i][x]="transform"==x?k(B,_[i][x]):"string"==typeof B&&"#"==B.charAt(0)?L(B).slice(1):E(B,parseFloat(Z)),"string"==typeof B&&(z=B.match(c))&&(p[i][x]=z[1])):delete e[x]}}return S.apply(s,[r,function(t,o,n){for(i=s.length;i--;)for(var a in d&&(n=C(m[i],t),s[i].style.left=n[0]+"px",s[i].style.top=n[1]+"px"),e)o=O(t,p,_,u,a,i),"transform"==a?s[i].style[g]=M(o):"opacity"!=a||f?s[i].style[T(a)]=o:s[i].style.filter="alpha(opacity="+100*o+")"},a,l])}return y((function(t){a=t>1e12!=n()>1e12})),Z.tween=S,Z.getStyle=v,Z.bezier=C,Z.transform=g,Z.parseTransform=k,Z.formatTransform=M,Z.easings={},Z}();class lt{constructor(t,e,i){this._el={container:{},content_container:{},icon:{},title:{},description:{}},this.mediatype={},this.data={title:"Navigation",description:"Description"},this.options={direction:"previous"},this.animator=null,this.animator_position=null,z(this.options,e),z(this.data,t),this._el.container=I.create("div","vco-slidenav-"+this.options.direction),b&&this._el.container.setAttribute("ontouchstart"," "),this._initLayout(),this._initEvents(),i&&i.appendChild(this._el.container)}update(t){this._update(t)}setColor(t){this._el.content_container.className=t?"vco-slidenav-content-container vco-slidenav-inverted":"vco-slidenav-content-container"}updatePosition(t,e,i,o,n,s){var a,r=this,h={duration:i,easing:o,complete:function(){r._onUpdatePositionComplete(s)}},l=n;for(var c in t)t.hasOwnProperty(c)&&(h[c]=e?t[c]+"%":t[c]+"px");this.animator_position&&this.animator_position.stop(),a=h.right?"right":"left",this._el.container.style[a]=e?l+"%":l+"px",this.animator_position=rt(this._el.container,h)}_onUpdatePositionComplete(t){t&&(this._el.container.style.left="",this._el.container.style.right="")}_onMouseClick(){this.fire("clicked",this.options)}_update(t){this.data=z(this.data,t),""!=this.data.title&&(this._el.title.innerHTML=this.data.title),""!=this.data.date&&(this._el.description.innerHTML=this.data.description)}_initLayout(){this._el.content_container=I.create("div","vco-slidenav-content-container",this._el.container),this._el.icon=I.create("div","vco-slidenav-icon",this._el.content_container),this._el.title=I.create("div","vco-slidenav-title",this._el.content_container),this._el.description=I.create("div","vco-slidenav-description",this._el.content_container),this._el.icon.innerHTML=" ",this._update()}_initEvents(){st.addListener(this._el.container,"click",this._onMouseClick,this)}}P(lt,W,V);class ct{constructor(t,e,i){this._el={parent:{},container:{},message_container:{},loading_icon:{},message:{}},this.options={width:600,height:600,message_class:"vco-message",message_icon_class:"vco-loading-icon"},z(this.data,t),z(this.options,e),this._el.container=I.create("div",this.options.message_class),i&&(i.appendChild(this._el.container),this._el.parent=i),this.animator={},this._initLayout(),this._initEvents()}updateMessage(t){this._updateMessage(t)}updateDisplay(t,e){this._updateDisplay(t,e)}_updateMessage(t){this._el.message.innerHTML=t||(H?H.messages.loading:"Loading")}_onMouseClick(){this.fire("clicked",this.options)}_initLayout(){this._el.message_container=I.create("div","vco-message-container",this._el.container),this._el.loading_icon=I.create("div",this.options.message_icon_class,this._el.message_container),this._el.message=I.create("div","vco-message-content",this._el.message_container),this._updateMessage()}_initEvents(){st.addListener(this._el.container,"click",this._onMouseClick,this)}_updateDisplay(t,e,i){}}P(ct,W,V);class dt{constructor(t,e,i){this._el={container:{},content_container:{},content:{},content_item:{},content_link:{},caption:null,credit:null,parent:{},link:null},this.player=null,this.timer=null,this.load_timer=null,this.message=null,this.media_id=null,this._state={loaded:!1,show_meta:!1,media_loaded:!1},this.data={uniqueid:null,url:null,credit:null,caption:null,link:null,link_target:null},this.options={api_key_flickr:"8f2d5becf7b6ba46570741620054b507",credit_height:0,caption_height:0},this.animator={},z(this.options,e),z(this.data,t),this._el.container=I.create("div","vco-media"),this.data.uniqueid&&(this._el.container.id=this.data.uniqueid),this._initLayout(),i&&(i.appendChild(this._el.container),this._el.parent=i)}loadMedia(){var t=this;if(!this._state.loaded)try{this.load_timer=setTimeout((function(){t._loadMedia(),t._state.loaded=!0,t._updateDisplay()}),1200)}catch(t){console.log("Error loading media for ",this._media),console.log(t)}}loadingMessage(){this.message.updateMessage(this._("loading")+" "+this.options.media_name)}updateMediaDisplay(t){this._state.loaded&&(this._updateMediaDisplay(t),b||"portrait"==t||(this._el.content_item.style.maxHeight=this.options.height/2+"px"),this._state.media_loaded&&(this._el.credit&&(this._el.credit.style.width="auto"),this._el.caption&&(this._el.caption.style.width="auto")),w&&(this._el.content_item.offsetWidth>this._el.content_item.offsetHeight&&(this._el.content_item.style.width="100%",this._el.content_item.style.maxWidth="100%"),"portrait"==t&&(this._el.content_item.style.maxHeight="none")),this._state.media_loaded&&(this._el.credit&&(this._el.credit.style.width=this._el.content_item.offsetWidth+"px"),this._el.caption&&(this._el.caption.style.width=this._el.content_item.offsetWidth+"px")))}_loadMedia(){}_updateMediaDisplay(t){}show(){}hide(){}addTo(t){t.appendChild(this._el.container),this.onAdd()}removeFrom(t){t.removeChild(this._el.container),this.onRemove()}updateDisplay(t,e,i){this._updateDisplay(t,e,i)}stopMedia(){this._stopMedia()}loadErrorDisplay(t){this._el.content.removeChild(this._el.content_item),this._el.content_item=I.create("div","vco-media-item vco-media-loaderror",this._el.content),this._el.content_item.innerHTML="
"+t+"
",this.onLoaded(!0)}onLoaded(t){this._state.loaded=!0,this.fire("loaded",this.data),this.message&&this.message.hide(),t||this.showMeta(),this.updateDisplay()}onMediaLoaded(t){this._state.media_loaded=!0,this.fire("media_loaded",this.data),this._el.credit&&(this._el.credit.style.width=this._el.content_item.offsetWidth+"px"),this._el.caption&&(this._el.caption.style.width=this._el.content_item.offsetWidth+"px")}showMeta(t,e){this._state.show_meta=!0,this.data.credit&&""!=this.data.credit&&!this._el.credit&&(this._el.credit=I.create("div","vco-credit",this._el.content_container),this._el.credit.innerHTML=this.data.credit,this.options.credit_height=this._el.credit.offsetHeight),this.data.caption&&""!=this.data.caption&&!this._el.caption&&(this._el.caption=I.create("div","vco-caption",this._el.content_container),this._el.caption.innerHTML=this.data.caption,this.options.caption_height=this._el.caption.offsetHeight)}onAdd(){this.fire("added",this.data)}onRemove(){this.fire("removed",this.data)}_initLayout(){this.message=new ct({},this.options),this.message.addTo(this._el.container),this._el.content_container=I.create("div","vco-media-content-container",this._el.container),this.data.link&&""!=this.data.link?(this._el.link=I.create("a","vco-media-link",this._el.content_container),this._el.link.href=this.data.link,this.data.link_target&&""!=this.data.link_target?this._el.link.target=this.data.link_target:this._el.link.target="_blank",this._el.content=I.create("div","vco-media-content",this._el.link)):this._el.content=I.create("div","vco-media-content",this._el.content_container)}_updateDisplay(t,e,i){t&&(this.options.width=t),e&&(this.options.height=e),i&&(this.options.layout=i),this._el.credit&&(this.options.credit_height=this._el.credit.offsetHeight),this._el.caption&&(this.options.caption_height=this._el.caption.offsetHeight+5),this.updateMediaDisplay(this.options.layout)}_stopMedia(){}}P(dt,W);class _t extends dt{_loadMedia(){var t=this;this.message.updateMessage(H.messages.loading+" "+this.options.media_name),this.data.link?(this._el.content_link=I.create("a","",this._el.content),this._el.content_link.href=this.data.link,this._el.content_link.target="_blank",this._el.content_item=I.create("img","vco-media-item vco-media-image vco-media-shadow",this._el.content_link),this.data.link.match(/\.(jpg|jpeg|png|gif)$/i)&&this._el.content_link.addEventListener("click",(function(t){t.preventDefault(),document.getElementById("lightbox").innerHTML=`\n\t\t\t\t\t\t \n\t\t\t\t\t\t\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t
`,document.getElementById("lightbox").style.display="block"}))):this._el.content_item=I.create("img","vco-media-item vco-media-image vco-media-shadow",this._el.content),this._el.content_item.addEventListener("load",(function(e){t.onMediaLoaded()})),this._el.content_item.src=this.data.url,this.onLoaded()}_updateMediaDisplay(t){w&&(this._el.content_item.style.width="auto")}}class ut extends dt{_loadMedia(){var t,e=this;this.message.updateMessage(H.messages.loading+" "+this.options.media_name),this.youtube_loaded=!1,this._el.content_item=I.create("div","vco-media-item vco-media-youtube vco-media-shadow",this._el.content),this._el.content_item.id=C(7),t=function(t){var e,i,o,n=[];(e=t.toString()).match("&")?e=e.replace("&","&"):e.match("&")?e=e.replace("&","&"):e.match("&")&&(e=e.replace("&","&")),o=e.slice(e.indexOf("?")+1).split("&");for(var s=0;s")?e.text_array=e.extract.split(""):e.text_array.push(e.extract);for(var o=0;o"+e.text_array[o+1]);i="",i+=""+H.messages.wikipedia+" ",i+=e.text,e.extract.match("REDIRECT")||(this._el.content_item.innerHTML=i,this.onLoaded())}}updateMediaDisplay(){}_updateMediaDisplay(){}}class gt extends dt{_loadMedia(){var t,e=this;this.message.updateMessage(H.messages.loading+" "+this.options.media_name),this._el.content_item=I.create("div","vco-media-item vco-media-iframe vco-media-soundcloud vco-media-shadow",this._el.content),this.media_id=this.data.url,t="https://soundcloud.com/oembed?url="+this.media_id+"&format=json",fetch(t).then((t=>t.json().then((t=>{B("https://w.soundcloud.com/player/api.js",(function(){e.createMedia(t)}))}))))}createMedia(t){this._el.content_item.innerHTML=t.html,this.soundCloudCreated=!0,self.widget=SC.Widget(this._el.content_item.querySelector("iframe")),this.onLoaded()}_stopMedia(){this.soundCloudCreated&&self.widget.pause()}}class ft extends dt{_loadMedia(){var t;this.message.updateMessage(H.messages.loading+" "+this.options.media_name),this._el.content_item=I.create("div","vco-media-item vco-media-iframe vco-media-vimeo vco-media-shadow",this._el.content),this.media_id=this.data.url.split(/video\/|\/\/vimeo\.com\//)[1].split(/[?&]/)[0],t="https://player.vimeo.com/video/"+this.media_id+"?api=1&title=0&byline=0&portrait=0&color=ffffff",this.player=I.create("iframe","",this._el.content_item),this.player.width="100%",this.player.height="100%",this.player.frameBorder="0",this.player.src=t,this.onLoaded()}_updateMediaDisplay(){this._el.content_item.style.height=Z({w:this._el.content_item.offsetWidth})+"px"}_stopMedia(){try{this.player.contentWindow.postMessage(JSON.stringify({method:"pause"}),"https://player.vimeo.com")}catch(t){console.log(t)}}}class vt extends dt{_loadMedia(){var t;this.message.updateMessage(H.messages.loading+" "+this.options.media_name),this._el.content_item=I.create("div","vco-media-item vco-media-iframe vco-media-dailymotion",this._el.content),this.data.url.match("video")?this.media_id=this.data.url.split("video/")[1].split(/[?&]/)[0]:this.media_id=this.data.url.split("embed/")[1].split(/[?&]/)[0],t="https://www.dailymotion.com/embed/video/"+this.media_id+"?api=postMessage",this._el.content_item.innerHTML="",this.onLoaded()}_updateMediaDisplay(){this._el.content_item.style.height=Z({w:this._el.content_item.offsetWidth})+"px"}_stopMedia(){this._el.content_item.querySelector("iframe").contentWindow.postMessage('{"command":"pause","parameters":[]}',"*")}}class yt extends dt{_loadMedia(){var t;this.message.updateMessage(H.messages.loading+" "+this.options.media_name),this._el.content_item=I.create("div","vco-media-item vco-media-iframe vco-media-vine vco-media-shadow",this._el.content),this.media_id=this.data.url.split("vine.co/v/")[1],t="https://vine.co/v/"+this.media_id+"/embed/simple",this._el.content_item.innerHTML="\"\n\n\t\t// After Loaded\n\t\tthis.onLoaded();\n\t}\n\n\t// Update Media Display\n\t_updateMediaDisplay() {\n\t\tvar size = ratio.square({w:this._el.content_item.offsetWidth , h:this.options.height});\n\t\tthis._el.content_item.style.height = size.h + \"px\";\n\t}\n\n\t \t_stopMedia() {\n\t \t\tthis._el.content_item.querySelector(\"iframe\").contentWindow.postMessage('pause', '*');\n\t}\n\n}\n","import { Media } from \"../Media\"\nimport Dom from \"../../dom/Dom\"\nimport { Language } from \"../../language/Language\"\n\n/*\tMedia.Twitter\n\tProduces Twitter Display\n================================================== */\n\nexport default class Twitter extends Media {\n\t\n\t/*\tLoad the media\n\t================================================== */\n\t_loadMedia() {\n\t\tvar api_url,\n\t\t\tself = this;\n\t\t\t\n\t\t// Loading Message\n\t\tthis.message.updateMessage(Language.messages.loading + \" \" + this.options.media_name);\n\t\t\n\t\t// Create Dom element\n\t\tthis._el.content_item = Dom.create(\"div\", \"vco-media-twitter\", this._el.content);\n\t\t\n\t\t// Get Media ID\n\n let r = /twitter.com\\/(.+?)\\/status\\/(\\d+)/\n let match = r.exec(this.data.url);\n if (match) { \n this.user_id = match[1];\n this.media_id = match[2];\n }\n let callbackName = `twitterCallback_${this.media_id}`;\n api_url = `https://api.twitter.com/1/statuses/oembed.json?id=${this.media_id}&include_entities=true&callback=${callbackName}`;\n let callbackScript = document.createElement('script');\n window[callbackName] = function(data) {\n self.createMedia(data);\n };\n callbackScript.src = api_url;\n document.body.appendChild(callbackScript);\n\t}\n\n\tcreateMedia(d) {\t\n\t\tvar tweet\t\t\t\t= \"\",\n\t\t\ttweet_text\t\t\t= \"\",\n\t\t\ttweetuser\t\t\t= \"\",\n\t\t\ttweet_status_temp \t= \"\",\n\t\t\ttweet_status_url \t= \"\",\n\t\t\ttweet_status_date \t= \"\";\n\t\t\t\n\t\t//\tTWEET CONTENT\n\t\ttweet_text \t\t\t= d.html.split(\"<\\/p>\\—\")[0] + \"
\";\n\t\ttweetuser\t\t\t= d.author_url.split(\"twitter.com\\/\")[1];\n\t\ttweet_status_temp \t= d.html.split(\"<\\/p>\\—\")[1].split(\"\")[0];\n\t\ttweet_status_date \t= tweet_status_temp.split(\"\\\"\\>\")[1].split(\"<\\/a>\")[0];\n\t\t\n\t\t// Open links in new window\n\t\ttweet_text = tweet_text.replace(/ \";\n\t\ttweet += \" \";\n\t\ttweet += \"\";\n\t\ttweet += \"\";\n\t\t\n\t\t\n\t\t// Add to DOM\n\t\tthis._el.content_item.innerHTML\t= tweet;\n\t\t\n\t\t// After Loaded\n\t\tthis.onLoaded();\n\t\t\t\n\t}\n\t\n\tupdateMediaDisplay() {\n\t\t\n\t}\n\t\n\t_updateMediaDisplay() {\n\t\t\n\t}\n\t\n}\n","import { Media } from \"../Media\"\nimport Dom from \"../../dom/Dom\"\nimport { Language } from \"../../language/Language\" \n\n/*\tMedia.Flickr\n\n================================================== */\n\nexport default class Flickr extends Media {\n\t\n\t/*\tLoad the media\n\t================================================== */\n\t_loadMedia() {\n\t\tvar api_url,\n\t\t\tself = this;\n\t\t\n\t\t// Loading Message\n\t\tthis.message.updateMessage(Language.messages.loading + \" \" + this.options.media_name);\n\t\t\n\t\t// Create Dom element\n\t\tthis._el.content_item\t= Dom.create(\"img\", \"vco-media-item vco-media-image vco-media-flickr vco-media-shadow\", this._el.content);\n\t\t\n\t\t// Media Loaded Event\n\t\tthis._el.content_item.addEventListener('load', function(e) {\n\t\t\tself.onMediaLoaded();\n\t\t});\n\t\t\n\t\t// Get Media ID\n\t\tthis.establishMediaID();\n\t\t\n\t\tapi_url = \"https://api.flickr.com/services/rest/?method=flickr.photos.getSizes&api_key=\" + this.options.api_key_flickr + \"&photo_id=\" + this.media_id + \"&format=json&nojsoncallback=1\";\n\t\t\n fetch(api_url).then(r => r.json().then(d => {\n if (d.stat == \"ok\") {\n self.createMedia(d);\n } else {\n\t\t\t\tself.loadErrorDisplay(\"Photo not found or private.\");\n }\n }));\n\t\t\n\t}\n\n\testablishMediaID() {\n\t\tvar marker = 'flickr.com/photos/';\n\t\tvar idx = this.data.url.indexOf(marker);\n\t\tif (idx == -1) { throw \"Invalid Flickr URL\"; }\n\t\tvar pos = idx + marker.length;\n\t\tthis.media_id = this.data.url.substr(pos).split(\"/\")[1];\n\t}\n\t\n\tcreateMedia(d) {\n\t\tvar best_size \t= this.sizes(this.options.height),\n\t\t\tsize \t\t= d.sizes.size[d.sizes.size.length - 2].source;\n\t\t\n\t\tfor(var i = 0; i < d.sizes.size.length; i++) {\n\t\t\tif (d.sizes.size[i].label == best_size) {\n\t\t\t\tsize = d.sizes.size[i].source;\n\t\t\t}\n\t\t}\n\t\t\n\t\t// Set Image Source\n\t\tthis._el.content_item.src\t\t\t= size;\n\t\t\n\t\t// After Loaded\n\t\tthis.onLoaded();\n\t}\n\t\n\tsizes(s) {\n\t\tvar _size = \"\";\n\t\t\n\t\tif (s <= 75) {\n\t\t\tif (s <= 0) {\n\t\t\t\t_size = \"Large\";\n\t\t\t} else {\n\t\t\t\t_size = \"Thumbnail\";\n\t\t\t}\n\t\t} else if (s <= 180) {\n\t\t\t_size = \"Small\";\n\t\t} else if (s <= 240) {\n\t\t\t_size = \"Small 320\";\n\t\t} else if (s <= 375) {\n\t\t\t_size = \"Medium\";\n\t\t} else if (s <= 480) {\n\t\t\t_size = \"Medium 640\";\n\t\t} else if (s <= 600) {\n\t\t\t_size = \"Large\";\n\t\t} else {\n\t\t\t_size = \"Large\";\n\t\t}\n\t\t\n\t\treturn _size;\n\t}\n\t\n}\n","import { Media } from \"../Media\"\nimport Dom from \"../../dom/Dom\"\nimport { Language } from \"../../language/Language\" \n\n/*\tMedia.GoogleDoc\n\n================================================== */\n\nexport default class GoogleDoc extends Media {\n\t\n\t/*\tLoad the media\n\t================================================== */\n\t_loadMedia() {\n\t\tvar api_url,\n\t\t\tself = this;\n\t\t\n\t\t// Loading Message\n\t\tthis.message.updateMessage(Language.messages.loading + \" \" + this.options.media_name);\n\t\t\n\t\t// Create Dom element\n\t\tthis._el.content_item\t= Dom.create(\"div\", \"vco-media-item vco-media-iframe\", this._el.content);\n\t\t\n\t\t// Get Media ID\n\t\tthis.media_id = this.data.url;\n\t\t\n\t\t// API URL\n\t\tapi_url = this.media_id;\n\t\t\n\t\t// API Call\n\t\tif (this.media_id.match(/docs.google.com/i)) {\n\t\t\tthis._el.content_item.innerHTML\t=\t\"\";\n\t\t} else {\n\t\t\tthis._el.content_item.innerHTML\t=\t\"\";\n\t\t}\n\t\t\n\t\t// After Loaded\n\t\tthis.onLoaded();\n\t}\n\t\n\t// Update Media Display\n\t_updateMediaDisplay() {\n\t\tthis._el.content_item.style.height = this.options.height + \"px\";\n\t}\n}\n","import { Media } from \"../Media\"\nimport Dom from \"../../dom/Dom\"\n\n/*\tMedia.SLider\n\tProduces a Slider\n\tTakes a data object and populates a dom object\n\tTODO\n\tPlaceholder\n================================================== */\n\nexport default class Slider extends Media {\n\t\n\t/*\tLoad the media\n\t================================================== */\n\t_loadMedia() {\n\t\t\n\t\tthis._el.content_item\t\t\t\t= Dom.create(\"img\", \"vco-media-item vco-media-image\", this._el.content);\n\t\tthis._el.content_item.src\t\t\t= this.data.url;\n\t\t\n\t\tthis.onLoaded();\n\t}\n\t\n}\n","import { Media } from \"../Media\"\nimport Dom from \"../../dom/Dom\"\nimport { Language } from \"../../language/Language\" \n\n/*\tMedia.IFrame\n================================================== */\n\nexport default class IFrame extends Media {\n\t\n\t/*\tLoad the media\n\t================================================== */\n\t_loadMedia() {\n\t\tself = this;\n\t\t\n\t\t// Loading Message\n\t\tthis.message.updateMessage(Language.messages.loading + \" \" + this.options.media_name);\n\t\t\n\t\t// Create Dom element\n\t\tthis._el.content_item\t= Dom.create(\"div\", \"vco-media-item vco-media-iframe\", this._el.content);\n\t\t\n\t\t// Get Media ID\n\t\tthis.media_id = this.data.url;\n\t\t\n\t\t// API URL\n\t\tlet iframe = this.media_id;\n\n\t\t// API Call\n\t\tthis._el.content_item.innerHTML = iframe;\n\t\t\n\t\t// After Loaded\n\t\tthis.onLoaded();\n\t}\n\t\n\t// Update Media Display\n\t_updateMediaDisplay() {\n\t\tthis._el.content_item.style.height = this.options.height + \"px\";\n\t}\n\t\n}\n","import { Media } from \"../Media\"\nimport Dom from \"../../dom/Dom\"\nimport { Language } from \"../../language/Language\"\n\n/*\tMedia.Website\n================================================== */\n\nexport default class Website extends Media {\n\t\n\t_loadMedia() {\n\t\tthis.message.updateMessage(Language.messages.loading + \" \" + this.options.media_name);\n\t\tthis._el.content_item\t= Dom.create(\"div\", \"vco-media-item vco-media-iframe\", this._el.content);\n\t\tthis.media_id = this.data.url;\n\t\tlet iframe = ``;\n\t\tthis._el.content_item.innerHTML = iframe;\n\t\tthis.onLoaded();\n\t}\n\t\n\t_updateMediaDisplay() {\n\t\tthis._el.content_item.style.height = this.options.height + \"px\";\n\t}\n\t\n}\n","import { Media } from \"../Media\"\nimport Dom from \"../../dom/Dom\"\n\nexport default class Video extends Media {\n\t_loadMedia() {\n\t\tvar self = this;\n\n\t\tthis._el.content_item\t\t\t\t= Dom.create(\"video\", \"vco-media-item vco-media-shadow\", this._el.content);\n\n\t\t// Media Loaded Event\n\t\tthis._el.content_item.addEventListener('load', function(e) {\n\t\t\tself.onMediaLoaded();\n\t\t});\n\n\t\tthis._el.content_item.src\t\t\t= this.data.url;\n\n\t\tthis._el.content_item.setAttribute('controls', '');\n\n\t\tthis.onLoaded();\n\t}\n}\n","import Image from \"./types/Image\"\nimport YouTube from \"./types/YouTube\"\nimport Blockquote from \"./types/Blockquote\"\nimport Wikipedia from \"./types/Wikipedia\"\nimport SoundCloud from \"./types/SoundCloud\"\nimport Vimeo from \"./types/Vimeo\"\nimport DailyMotion from \"./types/DailyMotion\"\nimport Vine from \"./types/Vine\"\nimport Twitter from \"./types/Twitter\"\nimport Flickr from \"./types/Flickr\"\nimport GoogleDoc from \"./types/GoogleDoc\"\nimport Slider from \"./types/Slider\"\nimport IFrame from \"./types/IFrame\"\nimport Website from \"./types/Website\"\nimport { Media } from \"./Media\"\nimport Video from \"./types/Video\"\n\n\n/*\tMediaType\n\tDetermines the type of media the url string is.\n\treturns an object with .type and .id\n\tYou can add new media types by adding a regex \n\tto match and the media class name to use to \n\trender the media \n\n\tTODO\n\tAllow array so a slideshow can be a mediatype\n================================================== */\nexport default function MediaType(m) {\n\tvar media = {}, \n\t\tmedia_types = \t[\n\t\t\t{\n\t\t\t\ttype: \t\t\"youtube\",\n\t\t\t\tname: \t\t\"YouTube\", \n\t\t\t\tmatch_str: \t\"(www.)?youtube|youtu\\.be\",\n\t\t\t\tcls: \t\tYouTube\n\t\t\t},\n\t\t\t{\n\t\t\t\ttype: \t\t\"vimeo\",\n\t\t\t\tname: \t\t\"Vimeo\", \n\t\t\t\tmatch_str: \t\"(player.)?vimeo\\.com\",\n\t\t\t\tcls: \t\tVimeo\n\t\t\t},\n\t\t\t{\n\t\t\t\ttype: \t\t\"dailymotion\",\n\t\t\t\tname: \t\t\"DailyMotion\", \n\t\t\t\tmatch_str: \t\"(www.)?dailymotion\\.com\",\n\t\t\t\tcls: \t\tDailyMotion\n\t\t\t},\n\t\t\t{\n\t\t\t\ttype: \t\t\"vine\",\n\t\t\t\tname: \t\t\"Vine\", \n\t\t\t\tmatch_str: \t\"(www.)?vine\\.co\",\n\t\t\t\tcls: \t\tVine\n\t\t\t},\n\t\t\t{\n\t\t\t\ttype: \t\t\"soundcloud\",\n\t\t\t\tname: \t\t\"SoundCloud\", \n\t\t\t\tmatch_str: \t\"(player.)?soundcloud\\.com\",\n\t\t\t\tcls: \t\tSoundCloud\n\t\t\t},\n\t\t\t{\n\t\t\t\ttype: \t\t\"twitter\",\n\t\t\t\tname: \t\t\"Twitter\", \n\t\t\t\tmatch_str: \t\"(www.)?twitter\\.com\",\n\t\t\t\tcls: \t\tTwitter\n\t\t\t},\n\t\t\t//{\n\t\t //\t\ttype: \t\t\"googlemaps\",\n\t\t //\t\tname: \t\t\"Google Map\", \n\t\t //\t\tmatch_str: \t\"maps.google\",\n\t\t\t//\tcls: \t\tVCO.Media.Map\n\t\t\t//},\n\t\t\t{\n\t\t\t\ttype: \t\t\"flickr\",\n\t\t\t\tname: \t\t\"Flickr\", \n\t\t\t\tmatch_str: \t\"flickr.com/photos\",\n\t\t\t\tcls: \t\tFlickr\n\t\t\t},\n\t\t\t{\n\t\t\t\ttype: \t\t\"image\",\n\t\t\t\tname: \t\t\"Image\",\n\t\t\t\tmatch_str: \t/jpg|jpeg|png|gif/i,\n\t\t\t\tcls: \t\tImage\n\t\t\t},\n\t\t\t{\n\t\t\t\ttype: \t\t\"video\",\n\t\t\t\tname: \t\t\"Video\",\n\t\t\t\tmatch_str: \t/mp4/i,\n\t\t\t\tcls: \t\tVideo\n\t\t\t},\n\t\t\t{\n\t\t\t\ttype: \t\t\"googledocs\",\n\t\t\t\tname: \t\t\"Google Doc\",\n match_str: \"^(https?:)?\\/*[^.]*.google.com\\/[^\\/]*\\/d\\/[^\\/]*\\/[^\\/]*\\?usp=sharing|^(https?:)?\\/*drive.google.com\\/open\\?id=[^\\&]*\\&authuser=0|^(https?:)?\\/\\/*drive.google.com\\/open\\\\?id=[^\\&]*|^(https?:)?\\/*[^.]*.googledrive.com\\/host\\/[^\\/]*\\/\",\n\t\t\t\tcls: \t\tGoogleDoc\n\t\t\t},\n\t\t\t{\n\t\t\t\ttype: \t\t\"wikipedia\",\n\t\t\t\tname: \t\t\"Wikipedia\",\n\t\t\t\tmatch_str: \t\"(www.)?wikipedia\\.org\",\n\t\t\t\tcls: \t\tWikipedia\n\t\t\t},\n\t\t\t{\n\t\t\t\ttype: \t\t\"iframe\",\n\t\t\t\tname: \t\t\"iFrame\",\n\t\t\t\tmatch_str: \t\"iframe\",\n\t\t\t\tcls: \t\tIFrame\n\t\t\t},\n\t\t\t{\n\t\t\t\ttype: \t\t\"blockquote\",\n\t\t\t\tname: \t\t\"Quote\",\n\t\t\t\tmatch_str: \t\"blockquote\",\n\t\t\t\tcls: \t\tBlockquote\n\t\t\t},\n\t\t\t{\n\t\t\t\ttype: \t\t\"website\",\n\t\t\t\tname: \t\t\"Website\",\n\t\t\t\tmatch_str: \t\"https?://\",\n\t\t\t\tcls: \t\tWebsite\n\t\t\t},\n\t\t\t{\n\t\t\t\ttype: \t\t\"\",\n\t\t\t\tname: \t\t\"\",\n\t\t\t\tmatch_str: \t\"\",\n\t\t\t\tcls: \t\tMedia\n\t\t\t}\n\t\t];\n\t\n\tfor (var i = 0; i < media_types.length; i++) {\n\t\tif (m instanceof Array) {\n\t\t\treturn media = {\n\t\t\t\ttype: \t\t\"slider\",\n\t\t\t\tcls: \t\tSlider\n\t\t\t};\n\t\t} else if (m.url.match(media_types[i].match_str)) {\n\t\t\tmedia \t\t= media_types[i];\n\t\t\tmedia.url \t= m.url;\n\t\t\treturn media;\n\t\t\tbreak;\n\t\t}\n\t};\n\t\n\treturn false;\n\t\n}\n","import { classMixin, mergeData, setData, htmlify, convertUnixTime } from \"../../core/Util\"\nimport Events from \"../../core/Events\"\nimport Dom from \"../../dom/Dom\"\n\nexport default class Text {\n\t\n\t/*\tConstructor\n\t================================================== */\n\tconstructor(data, options, add_to_container) {\n\t// DOM ELEMENTS\n\tthis._el = {\n\t\tcontainer: {},\n\t\tcontent_container: {},\n\t\tcontent: {},\n\t\theadline: {},\n\t\tdate: {},\n\t\tstart_btn: {}\n\t}\n\t\n\t// Data\n\tthis.data = {\n\t\tuniqueid: \t\t\t\"\",\n\t\theadline: \t\t\t\"headline\",\n\t\ttext: \t\t\t\t\"text\"\n\t}\n\t\n\t// Options\n\tthis.options = {\n\t\ttitle: \t\t\tfalse\n\t}\n\t\n\t\t\n\t\tsetData(this, data);\n\t\t\n\t\t// Merge Options\n\t\tmergeData(this.options, options);\n\t\t\n\t\tthis._el.container = Dom.create(\"div\", \"vco-text\");\n\t\tthis._el.container.id = this.data.uniqueid;\n\t\t\n\t\tthis._initLayout();\n\t\t\n\t\tif (add_to_container) {\n\t\t\tadd_to_container.appendChild(this._el.container);\n\t\t};\n\t\t\n\t}\n\t\n\t/*\tAdding, Hiding, Showing etc\n\t================================================== */\n\tshow() {\n\t\t\n\t}\n\t\n\thide() {\n\t\t\n\t}\n\t\n\taddTo(container) {\n\t\tcontainer.appendChild(this._el.container);\n\t\t//this.onAdd();\n\t}\n\t\n\tremoveFrom(container) {\n\t\tcontainer.removeChild(this._el.container);\n\t}\n\t\n\theadlineHeight() {\n\t\treturn this._el.headline.offsetHeight + 40;\n\t}\n\t\n\taddDateText(str) {\n\t\tthis._el.date.innerHTML = str;\n\t}\n\t\n\t/*\tEvents\n\t================================================== */\n\tonLoaded() {\n\t\tthis.fire(\"loaded\", this.data);\n\t}\n\n\tonAdd() {\n\t\tthis.fire(\"added\", this.data);\n\t}\n\n\tonRemove() {\n\t\tthis.fire(\"removed\", this.data);\n\t}\n\t\n\t/*\tPrivate Methods\n\t================================================== */\n\t_initLayout() {\n\t\t\n\t\t// Create Layout\n\t\tthis._el.content_container\t\t\t= Dom.create(\"div\", \"vco-text-content-container\", this._el.container);\n\t\t\n\t\t// Date\n\t\tthis._el.date \t\t\t\t= Dom.create(\"h3\", \"vco-headline-date\", this._el.content_container);\n\t\t\n\t\t// Headline\n\t\tif (this.data.headline != \"\") {\n\t\t\tvar headline_class = \"vco-headline\";\n\t\t\tif (this.options.title) {\n\t\t\t\theadline_class = \"vco-headline vco-headline-title\";\n\t\t\t}\n\t\t\tthis._el.headline\t\t\t\t= Dom.create(\"h2\", headline_class, this._el.content_container);\n\t\t\tthis._el.headline.innerHTML\t\t= this.data.headline;\n\t\t}\n\t\t\n\t\t// Text\n\t\tif (this.data.text != \"\") {\n\t\t\tvar text_content = \"\";\n\t\t\t\n\t\t\ttext_content \t\t\t\t\t+= htmlify(this.data.text);\n\t\t\t\n\t\t\t// Date\n\t\t\tif (this.data.date && this.data.date.created_time && this.data.date.created_time != \"\") {\n\t\t\t\tif (this.data.date.created_time.length > 10) {\n\t\t\t\t\tif (typeof(moment) !== 'undefined') {\n\t\t\t\t\t\ttext_content \t+= \"\" + moment(this.data.date.created_time, 'YYYY-MM-DD h:mm:ss').fromNow() + \"
\";\n\t\t\t\t\t\n\t\t\t\t\t} else {\n\t\t\t\t\t\ttext_content \t+= \"\" + convertUnixTime(this.data.date.created_time) + \"
\";\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\t\n\t\t\t\n\t\t\tthis._el.content\t\t\t\t= Dom.create(\"div\", \"vco-text-content\", this._el.content_container);\n\t\t\tthis._el.content.innerHTML\t\t= text_content;\n\t\t\t\n\t\t}\n\t\t\n\t\t\n\t\t// Fire event that the slide is loaded\n\t\tthis.onLoaded();\n\t\t\n\t\t\n\t\t\n\t}\n\t\n}\n\nclassMixin(Text, Events)\n","import { classMixin, mergeData } from \"../core/Util\"\nimport { DomEvent } from \"../dom/DomEvent\"\nimport Events from \"../core/Events\"\nimport Dom from \"../dom/Dom\"\nimport DomMixins from \"../dom/DomMixins\"\nimport Ease from \"../animation/Ease\"\nimport Animate from \"../animation/Animate\"\nimport Media from \"../media/Media\"\nimport MediaType from \"../media/MediaType\"\nimport Text from \"../media/types/Text\"\nimport { Browser } from \"../core/Browser\"\n/*\tVCO.Slide\n\tCreates a slide. Takes a data object and\n\tpopulates the slide with content.\n================================================== */\n\nexport default class Slide {\n\t\n\t//includes: [VCO.Events, VCO.DomMixins],\n\t\n\t//_el: {},\n\t\n\t/*\tConstructor\n\t================================================== */\n\tconstructor(data, options, title_slide) {\n\t\t\n\t\t// DOM Elements\n\t\tthis._el = {\n\t\t\tcontainer: {},\n\t\t\tscroll_container: {},\n\t\t\tbackground: {},\n\t\t\tcontent_container: {},\n\t\t\tcontent: {},\n\t\t\tcall_to_action: null\n\t\t};\n\t\n\t\t// Components\n\t\tthis._media \t\t= null;\n\t\tthis._mediaclass\t= {};\n\t\tthis._text\t\t\t= {};\n\t\n\t\t// State\n\t\tthis._state = {\n\t\t\tloaded: \t\tfalse\n\t\t};\n\t\t\n\t\tthis.has = {\n\t\t\theadline: \tfalse,\n\t\t\ttext: \t\tfalse,\n\t\t\tmedia: \t\tfalse,\n\t\t\ttitle: \t\tfalse,\n\t\t\tbackground: {\n\t\t\t\timage: false,\n\t\t\t\tcolor: false,\n\t\t\t\tcolor_value :\"\"\n\t\t\t}\n\t\t}\n\t\t\n\t\tthis.has.title = title_slide;\n\t\t\n\t\tthis.title = \"\";\n\t\t\n\t\t// Data\n\t\tthis.data = {\n\t\t\tuniqueid: \t\t\t\tnull,\n\t\t\tbackground: \t\t\tnull,\n\t\t\tdate: \t\t\t\t\tnull,\n\t\t\tlocation: \t\t\t\tnull,\n\t\t\ttext: \t\t\t\t\tnull,\n\t\t\tmedia: \t\t\t\t\tnull\n\t\t};\n\t\n\t\t// Options\n\t\tthis.options = {\n\t\t\t// animation\n\t\t\tduration: \t\t\t1000,\n\t\t\tslide_padding_lr: \t40,\n\t\t\tease: \t\t\t\tEase.easeInSpline,\n\t\t\twidth: \t\t\t\t600,\n\t\t\theight: \t\t\t600,\n\t\t\tskinny_size: \t\t650,\n\t\t\tmedia_name: \t\t\"\"\n\t\t};\n\t\t\n\t\t// Actively Displaying\n\t\tthis.active = false;\n\t\t\n\t\t// Animation Object\n\t\tthis.animator = {};\n\t\t\n\t\t// Merge Data and Options\n\t\tmergeData(this.options, options);\n\t\tmergeData(this.data, data);\n\t\t\n\t\tthis._initLayout();\n\t\tthis._initEvents();\n\t\t\n\t}\n\t\n\t/*\tAdding, Hiding, Showing etc\n\t================================================== */\n\tshow() {\n\t\tthis.animator = Animate(this._el.slider_container, {\n\t\t\tleft: \t\t-(this._el.container.offsetWidth * n) + \"px\",\n\t\t\tduration: \tthis.options.duration,\n\t\t\teasing: \tthis.options.ease\n\t\t});\n\t}\n\t\n\thide() {\n\t\t\n\t}\n\t\n\tsetActive(is_active) {\n\t\tthis.active = is_active;\n\t\t\n\t\tif (this.active) {\n\t\t\tif (this.data.background) {\n\t\t\t\tthis.fire(\"background_change\", this.has.background);\n\t\t\t}\n\t\t\tthis.loadMedia();\n\t\t} else {\n\t\t\tthis.stopMedia();\n\t\t}\n\t}\n\t\n\taddTo(container) {\n\t\tcontainer.appendChild(this._el.container);\n\t\t//this.onAdd();\n\t}\n\t\n\tremoveFrom(container) {\n\t\tcontainer.removeChild(this._el.container);\n\t}\n\t\n\tupdateDisplay(w, h, l) {\n\t\tthis._updateDisplay(w, h, l);\n\t}\n\t\n\tloadMedia() {\n\t\t\n\t\tif (this._media && !this._state.loaded) {\n\t\t\tthis._media.loadMedia();\n\t\t\tthis._state.loaded = true;\n\t\t}\n\t}\n\t\n\tstopMedia() {\n\t\tif (this._media && this._state.loaded) {\n try {\n\t\t\t this._media.stopMedia();\n } catch(e) {\n // Some sort of race condition or other ordering condition can cause\n // an error when the preview tab is selected in the editor due to\n // the stopped media not being properly formed.\n if (e.message == 'this._el.content_item.querySelector is not a function') {\n console.log('Ignoring error in editor context: ' + e.message);\n } else {\n throw e;\n } \n }\n\t\t}\n\t}\n\t\n\tgetBackground() {\n\t\treturn this.has.background;\n\t}\n\t\n\tscrollToTop() {\n\t\tthis._el.container.scrollTop = 0;\n\t}\n\t\n\taddCallToAction(str) {\n\t\tthis._el.call_to_action = Dom.create(\"div\", \"vco-slide-calltoaction\", this._el.content_container);\n\t\tthis._el.call_to_action.innerHTML = \"\" + str + \" \";\n\t\tDomEvent.addListener(this._el.call_to_action, 'click', this._onCallToAction, this);\n\t}\n\t\n\t/*\tEvents\n\t================================================== */\n\t_onCallToAction(e) {\n\t\tthis.fire(\"call_to_action\", e);\n\t}\n\t\n\t/*\tPrivate Methods\n\t================================================== */\n\t_initLayout() {\n\t\t\n\t\t// Create Layout\n\t\tthis._el.container \t\t\t\t= Dom.create(\"div\", \"vco-slide\");\n\t\tif (this.data.uniqueid) {\n\t\t\tthis._el.container.id \t\t= this.data.uniqueid;\n\t\t}\n\t\tthis._el.scroll_container \t\t= Dom.create(\"div\", \"vco-slide-scrollable-container\", this._el.container);\n\t\tthis._el.content_container\t\t= Dom.create(\"div\", \"vco-slide-content-container\", this._el.scroll_container);\n\t\tthis._el.content\t\t\t\t= Dom.create(\"div\", \"vco-slide-content\", this._el.content_container);\n\t\tthis._el.background\t\t\t\t= Dom.create(\"div\", \"vco-slide-background\", this._el.container);\n\t\t// Style Slide Background\n\t\tif (this.data.background) {\n\t\t\tif (this.data.background.url) {\n\t\t\t\tthis.has.background.image \t\t\t\t\t= true;\n\t\t\t\tthis._el.container.className \t\t\t\t+= ' vco-full-image-background';\n\t\t\t\t//this._el.container.style.backgroundImage=\"url('\" + this.data.background.url + \"')\";\n\t\t\t\tthis.has.background.color_value \t\t\t= \"#000\";\n\t\t\t\tthis._el.background.style.backgroundImage \t= \"url('\" + this.data.background.url + \"')\";\n\t\t\t\tthis._el.background.style.display \t\t\t= \"block\";\n\t\t\t}\n\t\t\tif (this.data.background.color) {\n\t\t\t\tthis.has.background.color \t\t\t\t\t= true;\n\t\t\t\tthis._el.container.className \t\t\t\t+= ' vco-full-color-background';\n\t\t\t\tthis.has.background.color_value \t\t\t= this.data.background.color;\n\t\t\t\t//this._el.container.style.backgroundColor = this.data.background.color;\n\t\t\t\t//this._el.background.style.backgroundColor \t= this.data.background.color;\n\t\t\t\t//this._el.background.style.display \t\t\t= \"block\";\n\t\t\t}\n\t\t\tif (this.data.background.text_background) {\n\t\t\t\tthis._el.container.className \t\t\t\t+= ' vco-text-background';\n\t\t\t}\n\t\t\t\n\t\t} \n\t\t\n\t\t// Determine Assets for layout and loading\n\t\tif (this.data.media && this.data.media.url && this.data.media.url != \"\") {\n\t\t\tthis.has.media = true;\n\t\t}\n\t\tif (this.data.text && this.data.text.text) {\n\t\t\tthis.has.text = true;\n\t\t}\n\t\tif (this.data.text && this.data.text.headline) {\n\t\t\tthis.has.headline = true;\n\t\t\tthis.title = this.data.text.headline;\n\t\t}\n\t\t\n\t\t// Create Media\n\t\tif (this.has.media) {\n\t\t\t\n\t\t\t// Determine the media type\n\t\t\tthis.data.media.mediatype \t= MediaType(this.data.media);\n\t\t\tthis.options.media_name \t= this.data.media.mediatype.name;\n\t\t\tthis.options.media_type \t= this.data.media.mediatype.type;\n\t\t\t\n\t\t\t// Create a media object using the matched class name\n\t\t\tthis._media = new this.data.media.mediatype.cls(this.data.media, this.options);\n\t\t\t\n\t\t}\n\t\t\n\t\t// Create Text\n\t\tif (this.has.text || this.has.headline) {\n\t\t\tthis._text = new Text(this.data.text, {title:this.has.title});\n\t\t}\n\t\t\n\t\t// Add to DOM\n\t\tif (!this.has.text && !this.has.headline && this.has.media) {\n\t\t\tthis._el.container.className += ' vco-slide-media-only';\n\t\t\tthis._media.addTo(this._el.content);\n\t\t} else if (this.has.headline && this.has.media && !this.has.text) {\n\t\t\tthis._el.container.className += ' vco-slide-media-only';\n\t\t\tthis._text.addTo(this._el.content);\n\t\t\tthis._media.addTo(this._el.content);\n\t\t} else if (this.has.text && this.has.media) {\n\t\t\tthis._media.addTo(this._el.content);\n\t\t\tthis._text.addTo(this._el.content);\n\t\t} else if (this.has.text || this.has.headline) {\n\t\t\tthis._el.container.className += ' vco-slide-text-only';\n\t\t\tthis._text.addTo(this._el.content);\n\t\t}\n\t\t\n\t\t// Fire event that the slide is loaded\n\t\tthis.onLoaded();\n\t\t\n\t}\n\t\n\t_initEvents() {\n\t}\n\t\n\t// Update Display\n\t_updateDisplay(width, height, layout) {\n\t\tvar pad_left, pad_right, new_width;\n\t\t\n\t\tif (width) {\n\t\t\tthis.options.width \t\t\t\t\t= width;\n\t\t} else {\n\t\t\tthis.options.width \t\t\t\t\t= this._el.container.offsetWidth;\n\t\t}\n\t\t\n\t\tif(Browser.mobile && (this.options.width <= this.options.skinny_size)) {\n\t\t\tpad_left \t= 0 + \"px\";\n\t\t\tpad_right \t= 0 + \"px\";\n\t\t\tnew_width\t= this.options.width - 0 + \"px\";\n\t\t} else if (layout == \"landscape\") {\n\t\t\tpad_left \t= 40 + \"px\";\n\t\t\tpad_right\t= 75 + \"px\";\n\t\t\tnew_width\t= this.options.width - (75 + 40) + \"px\";\n\t\t\n\t\t} else if (this.options.width <= this.options.skinny_size) {\n\t\t\tpad_left \t= this.options.slide_padding_lr + \"px\";\n\t\t\tpad_right \t= this.options.slide_padding_lr + \"px\";\n\t\t\tnew_width\t= this.options.width - (this.options.slide_padding_lr * 2) + \"px\";\n\t\t} else {\n\t\t\tpad_left\t= this.options.slide_padding_lr + \"px\";\n\t\t\tpad_right \t= this.options.slide_padding_lr + \"px\";\n\t\t\tnew_width\t= this.options.width - (this.options.slide_padding_lr * 2) + \"px\";\n\t\t}\n\t\t\n\t\tthis._el.content.style.paddingLeft \t= pad_left;\n\t\tthis._el.content.style.paddingRight = pad_right;\n\t\tthis._el.content.style.width\t\t= new_width;\n\t\t\n\t\tif (this._el.call_to_action) {\n\t\t\tthis._el.call_to_action.style.paddingLeft \t= pad_left;\n\t\t\tthis._el.call_to_action.style.paddingRight = pad_right;\n\t\t\tthis._el.call_to_action.style.width\t\t= new_width;\n\t\t}\n\t\t\n\t\tif (height) {\n\t\t\tthis.options.height = height;\n\t\t\t//this._el.scroll_container.style.height\t\t= this.options.height + \"px\";\n\t\t\t\n\t\t} else {\n\t\t\tthis.options.height = this._el.container.offsetHeight;\n\t\t}\n\t\t\n\t\tif (this._media) {\n\t\t\tif (!this.has.text && this.has.headline) {\n\t\t\t\tthis._media.updateDisplay(this.options.width, (this.options.height - this._text.headlineHeight()), layout);\n\t\t\t} else {\n\t\t\t\tthis._media.updateDisplay(this.options.width, this.options.height, layout);\n\t\t\t}\n\t\t}\n\t\t\n\t}\n}\n\nclassMixin(Slide, Events, DomMixins)\n","import Animate from \"../animation/Animate\"\nimport Events from \"../core/Events\"\nimport Ease from \"../animation/Ease\"\nimport { Browser } from \"../core/Browser\"\nimport { classMixin, mergeData } from \"../core/Util\"\nimport { DomEvent } from \"../dom/DomEvent\"\n\n/* Swipable\n Draggable allows you to add dragging capabilities to any element. Supports mobile devices too.\n TODO Enable constraints\n================================================== */\n\nexport default class Swipable {\n \n //_el: {},\n\n constructor(drag_elem, move_elem, options) {\n this.mousedrag = {\n down: \"mousedown\",\n up: \"mouseup\",\n leave: \"mouseleave\",\n move: \"mousemove\"\n }\n this.touchdrag = {\n down: \"touchstart\",\n up: \"touchend\",\n leave: \"mouseleave\",\n move: \"touchmove\"\n }\n // DOM ELements \n this._el = {\n drag: drag_elem,\n move: drag_elem\n };\n if (move_elem) {\n this._el.move = move_elem;\n }\n //Options\n this.options = {\n snap: false,\n enable: {\n x: true,\n y: true\n },\n constraint: {\n top: false,\n bottom: false,\n left: 0,\n right: false\n },\n momentum_multiplier: 2000,\n duration: 1000,\n ease: Ease.easeInOutQuint\n };\n // Animation Object\n this.animator = null;\n // Drag Event Type\n this.dragevent = this.mousedrag;\n if (Browser.touch) {\n this.dragevent = this.touchdrag;\n }\n // Draggable Data\n this.data = {\n sliding: false,\n direction: \"none\",\n pagex: {\n start: 0,\n end: 0\n },\n pagey: {\n start: 0,\n end: 0\n },\n pos: {\n start: {\n x: 0,\n y: 0\n },\n end: {\n x: 0,\n y: 0\n }\n },\n new_pos: {\n x: 0,\n y: 0\n },\n new_pos_parent: {\n x: 0,\n y: 0\n },\n time: {\n start: 0,\n end: 0\n },\n touch: false\n };\n // Merge Data and Options\n mergeData(this.options, options);\n }\n \n enable(e) {\n DomEvent.addListener(this._el.drag, this.dragevent.down, this._onDragStart, this);\n DomEvent.addListener(this._el.drag, this.dragevent.up, this._onDragEnd, this);\n this.data.pos.start = 0; //VCO.Dom.getPosition(this._el.move);\n this._el.move.style.left = this.data.pos.start.x + \"px\";\n this._el.move.style.top = this.data.pos.start.y + \"px\";\n this._el.move.style.position = \"absolute\";\n //this._el.move.style.zIndex = \"11\";\n //this._el.move.style.cursor = \"move\";\n }\n \n disable() {\n DomEvent.removeListener(this._el.drag, this.dragevent.down, this._onDragStart, this);\n DomEvent.removeListener(this._el.drag, this.dragevent.up, this._onDragEnd, this);\n }\n \n stopMomentum() {\n if (this.animator) {\n this.animator.stop();\n }\n }\n \n updateConstraint(c) {\n this.options.constraint = c;\n // Temporary until issues are fixed\n }\n \n /* Private Methods\n ================================================== */\n _onDragStart(e) {\n if (this.animator) {\n this.animator.stop();\n }\n if (Browser.touch) {\n if (e.originalEvent) {\n this.data.pagex.start = e.originalEvent.touches[0].screenX;\n this.data.pagey.start = e.originalEvent.touches[0].screenY;\n } else {\n this.data.pagex.start = e.targetTouches[0].screenX;\n this.data.pagey.start = e.targetTouches[0].screenY;\n }\n } else {\n this.data.pagex.start = e.pageX;\n this.data.pagey.start = e.pageY;\n }\n // Center element to finger or mouse\n if (this.options.enable.x) {\n //this._el.move.style.left = this.data.pagex.start - (this._el.move.offsetWidth / 2) + \"px\";\n }\n if (this.options.enable.y) {\n //this._el.move.style.top = this.data.pagey.start - (this._el.move.offsetHeight / 2) + \"px\";\n }\n this.data.pos.start = {x:this._el.move.offsetLeft, y:this._el.move.offsetTop};\n this.data.time.start = new Date().getTime();\n this.fire(\"dragstart\", this.data);\n DomEvent.addListener(this._el.drag, this.dragevent.move, this._onDragMove, this);\n DomEvent.addListener(this._el.drag, this.dragevent.leave, this._onDragEnd, this);\n }\n \n _onDragEnd(e) {\n this.data.sliding = false;\n DomEvent.removeListener(this._el.drag, this.dragevent.move, this._onDragMove, this);\n DomEvent.removeListener(this._el.drag, this.dragevent.leave, this._onDragEnd, this);\n this.fire(\"dragend\", this.data);\n this._momentum();\n }\n \n _onDragMove(e) {\n var change = {\n x:0,\n y:0\n }\n //e.preventDefault();\n this.data.sliding = true;\n if (Browser.touch) {\n if (e.originalEvent) {\n this.data.pagex.end = e.originalEvent.touches[0].screenX;\n this.data.pagey.end = e.originalEvent.touches[0].screenY;\n } else {\n this.data.pagex.end = e.targetTouches[0].screenX;\n this.data.pagey.end = e.targetTouches[0].screenY;\n }\n } else {\n this.data.pagex.end = e.pageX;\n this.data.pagey.end = e.pageY;\n }\n change.x = this.data.pagex.start - this.data.pagex.end;\n change.y = this.data.pagey.start - this.data.pagey.end;\n this.data.pos.end = {x:this._el.drag.offsetLeft, y:this._el.drag.offsetTop};\n this.data.new_pos.x = -(change.x - this.data.pos.start.x);\n this.data.new_pos.y = -(change.y - this.data.pos.start.y );\n if (this.options.enable.x && ( Math.abs(change.x) > Math.abs(change.y) ) ) {\n e.preventDefault();\n this._el.move.style.left = this.data.new_pos.x + \"px\";\n }\n if (this.options.enable.y && ( Math.abs(change.y) > Math.abs(change.y) ) ) {\n e.preventDefault();\n this._el.move.style.top = this.data.new_pos.y + \"px\";\n }\n this.fire(\"dragmove\", this.data);\n }\n \n _momentum() {\n var pos_adjust = {\n x: 0,\n y: 0,\n time: 0\n },\n pos_change = {\n x: 0,\n y: 0,\n time: 0\n },\n swipe_detect = {\n x: false,\n y: false\n },\n swipe = false,\n swipe_direction = \"\";\n this.data.direction = null;\n pos_adjust.time = (new Date().getTime() - this.data.time.start) * 10;\n pos_change.time = (new Date().getTime() - this.data.time.start) * 10;\n pos_change.x = this.options.momentum_multiplier * (Math.abs(this.data.pagex.end) - Math.abs(this.data.pagex.start));\n pos_change.y = this.options.momentum_multiplier * (Math.abs(this.data.pagey.end) - Math.abs(this.data.pagey.start));\n pos_adjust.x = Math.round(pos_change.x / pos_change.time);\n pos_adjust.y = Math.round(pos_change.y / pos_change.time);\n this.data.new_pos.x = Math.min(this.data.pos.end.x + pos_adjust.x);\n this.data.new_pos.y = Math.min(this.data.pos.end.y + pos_adjust.y);\n if (!this.options.enable.x) {\n this.data.new_pos.x = this.data.pos.start.x;\n } else if (this.data.new_pos.x > 0) {\n this.data.new_pos.x = 0;\n }\n if (!this.options.enable.y) {\n this.data.new_pos.y = this.data.pos.start.y;\n } else if (this.data.new_pos.y < 0) {\n this.data.new_pos.y = 0;\n }\n // Detect Swipe\n if (pos_change.time < 2000) {\n swipe = true;\n }\n if (this.options.enable.x && this.options.enable.y) {\n if (Math.abs(pos_change.x) > Math.abs(pos_change.y)) {\n swipe_detect.x = true;\n } else {\n swipe_detect.y = true;\n }\n } else if (this.options.enable.x) {\n if (Math.abs(pos_change.x) > Math.abs(pos_change.y)) {\n swipe_detect.x = true;\n }\n } else {\n if (Math.abs(pos_change.y) > Math.abs(pos_change.x)) {\n swipe_detect.y = true;\n }\n }\n // Detect Direction and long swipe\n if (swipe_detect.x) {\n // Long Swipe\n if (Math.abs(pos_change.x) > (this._el.drag.offsetWidth/2)) {\n swipe = true;\n }\n if (Math.abs(pos_change.x) > 10000) {\n this.data.direction = \"left\";\n if (pos_change.x > 0) {\n this.data.direction = \"right\";\n }\n }\n }\n if (swipe_detect.y) {\n // Long Swipe\n if (Math.abs(pos_change.y) > (this._el.drag.offsetHeight/2)) {\n swipe = true;\n }\n if (Math.abs(pos_change.y) > 10000) {\n this.data.direction = \"up\";\n if (pos_change.y > 0) {\n this.data.direction = \"down\";\n }\n }\n }\n this._animateMomentum();\n if (swipe && this.data.direction) {\n this.fire(\"swipe_\" + this.data.direction, this.data);\n } else if (this.data.direction) {\n this.fire(\"swipe_nodirection\", this.data);\n } else if (this.options.snap) {\n this.animator.stop();\n this.animator = Animate(this._el.move, {\n top: this.data.pos.start.y,\n left: this.data.pos.start.x,\n duration: this.options.duration,\n easing: Ease.easeOutStrong\n });\n }\n }\n \n _animateMomentum() {\n var pos = {\n x: this.data.new_pos.x,\n y: this.data.new_pos.y\n },\n animate = {\n duration: this.options.duration,\n easing: Ease.easeOutStrong\n };\n if (this.options.enable.y) {\n if (this.options.constraint.top || this.options.constraint.bottom) {\n if (pos.y > this.options.constraint.bottom) {\n pos.y = this.options.constraint.bottom;\n } else if (pos.y < this.options.constraint.top) {\n pos.y = this.options.constraint.top;\n }\n }\n animate.top = Math.floor(pos.y) + \"px\";\n }\n if (this.options.enable.x) {\n if (this.options.constraint.left || this.options.constraint.right) {\n if (pos.x >= this.options.constraint.left) {\n pos.x = this.options.constraint.left;\n } else if (pos.x < this.options.constraint.right) {\n pos.x = this.options.constraint.right;\n }\n }\n animate.left = Math.floor(pos.x) + \"px\";\n }\n this.animator = Animate(this._el.move, animate);\n this.fire(\"momentum\", this.data);\n }\n}\n\nclassMixin(Swipable, Events)\n","import { classMixin, mergeData, unique_ID, findArrayNumberByUniqueID, hexToRgb } from \"../core/Util\"\nimport Dom from \"../dom/Dom\"\nimport { DomEvent } from \"../dom/DomEvent\"\nimport Events from \"../core/Events\"\nimport Ease from \"../animation/Ease\"\nimport SlideNav from \"./SlideNav\"\nimport Slide from \"./Slide\"\nimport Animate from \"../animation/Animate\"\nimport Swipable from \"../ui/Swipable\"\nimport Message from \"../ui/Message\"\nimport { Browser } from \"../core/Browser\"\nimport { Language } from \"../language/Language\"\n\n/*\tStorySlider\n\tis the central class of the API - it is used to create a StorySlider\n\n\tEvents:\n\tnav_next\n\tnav_previous\n\tslideDisplayUpdate\n\tloaded\n\tslideAdded\n\tslideLoaded\n\tslideRemoved\n\n\n================================================== */\n\nexport default class StorySlider {\n\n\t//includes: VCO.Events,\n\n\t/*\tPrivate Methods\n\t================================================== */\n\tconstructor(elem, data, options, init) {\n\n\t\t// DOM ELEMENTS\n\t\tthis._el = {\n\t\t\tcontainer: {},\n\t\t\tbackground: {},\n\t\t\tslider_container_mask: {},\n\t\t\tslider_container: {},\n\t\t\tslider_item_container: {}\n\t\t};\n\n\t\tthis._nav = {};\n\t\tthis._nav.previous = {};\n\t\tthis._nav.next = {};\n\t\tthis._nav.back = {};\n\n\t\t// Slide Spacing\n\t\tthis.slide_spacing = 0;\n\n\t\t// Slides Array\n\t\tthis._slides = [];\n\n\t\t// Swipe Object\n\t\tthis._swipable;\n\n\t\t// Preload Timer\n\t\tthis.preloadTimer;\n\n\t\t// Message\n\t\tthis._message;\n\n\t\t// Current Slide\n\t\tthis.current_slide = 0;\n\n\t\t// Current Background Color\n\t\tthis.current_bg_color = null;\n\n\t\t// Data Object\n\t\tthis.data = {};\n\n\t\tthis.options = {\n\t\t\tid: \t\t\t\t\t\"\",\n\t\t\tlayout: \t\t\t\t\"portrait\",\n\t\t\twidth: \t\t\t\t\t600,\n\t\t\theight: \t\t\t\t600,\n\t\t\tdefault_bg_color: \t\t{r:256, g:256, b:256},\n\t\t\tslide_padding_lr: \t\t40, \t\t\t// padding on slide of slide\n\t\t\tstart_at_slide: \t\t1,\n\t\t\tslide_default_fade: \t\"0%\", \t\t\t// landscape fade\n\t\t\t// animation\n\t\t\tduration: \t\t\t\t1000,\n\t\t\tease: \t\t\t\t\tEase.easeInOutQuint,\n\t\t\t// interaction\n\t\t\tdragging: \t\t\t\ttrue,\n\t\t\ttrackResize: \t\t\ttrue\n\t\t};\n\n\t\t// Main element ID\n\t\tif (typeof elem === 'object') {\n\t\t\tthis._el.container = elem;\n\t\t\tthis.options.id = unique_ID(6, \"vco\");\n\t\t} else {\n\t\t\tthis.options.id = elem;\n\t\t\tthis._el.container = Dom.get(elem);\n\t\t}\n\n\t\tif (!this._el.container.id) {\n\t\t\tthis._el.container.id = this.options.id;\n\t\t}\n\n\t\t// Animation Object\n\t\tthis.animator = null;\n\t\tthis.animator_background = null;\n\n\t\t// Merge Data and Options\n\t\tmergeData(this.options, options);\n\t\tmergeData(this.data, data);\n\n\t\tif (init) {\n\t\t\tthis.init();\n\t\t}\n\t}\n\n\tinit() {\n\t\tthis._initLayout();\n\t\tthis._initEvents();\n\t\tthis._initData();\n\t\tthis._updateDisplay();\n\n\t\t// Go to initial slide\n\t\tthis.goTo(this.options.start_at_slide);\n\n\t\tthis._onLoaded();\n\t\tthis._introInterface();\n\t}\n\n\t/*\tPublic\n\t================================================== */\n\tupdateDisplay(w, h, a, l) {\n\t\tthis._updateDisplay(w, h, a, l);\n\t}\n\n\t// Create a slide\n\tcreateSlide(d) {\n\t\tthis._createSlide(d);\n\t}\n\n\t// Create Many Slides from an array\n\tcreateSlides(array) {\n\t\tthis._createSlides(array);\n\t}\n\n\t/*\tCreate Slides\n\t================================================== */\n\t_createSlides(array) {\n\t\tfor (var i = 0; i < array.length; i++) {\n\t\t\tif (array[i].uniqueid == \"\") {\n\t\t\t\tarray[i].uniqueid = unique_ID(6, \"vco-slide\");\n\t\t\t}\n\t\t\tif (i == 0) {\n\t\t\t\tthis._createSlide(array[i], true);\n\t\t\t} else {\n\t\t\t\tthis._createSlide(array[i], false);\n\t\t\t}\n\n\t\t};\n\t}\n\n\t_createSlide(d, title_slide) {\n\t\tvar slide = new Slide(d, this.options, title_slide);\n\t\tthis._addSlide(slide);\n\t\tthis._slides.push(slide);\n\t}\n\n\t_destroySlide(slide) {\n\t\tthis._removeSlide(slide);\n\t\tfor (var i = 0; i < this._slides.length; i++) {\n\t\t\tif (this._slides[i] == slide) {\n\t\t\t\tthis._slides.splice(i, 1);\n\t\t\t}\n\t\t}\n\t}\n\n\t_addSlide(slide) {\n\t\tslide.addTo(this._el.slider_item_container);\n\t\tslide.on('added', this._onSlideAdded, this);\n\t\tslide.on('background_change', this._onBackgroundChange, this);\n\t}\n\n\t_removeSlide(slide) {\n\t\tslide.removeFrom(this._el.slider_item_container);\n\t\tslide.off('added', this._onSlideAdded, this);\n\t\tslide.off('background_change', this._onBackgroundChange);\n\t}\n\n\t/*\tMessage\n\t================================================== */\n\n\t/*\tNavigation\n\t================================================== */\n\tgoToId(n, fast, displayupdate) {\n\t\tif (typeof n == 'string' || n instanceof String) {\n\t\t\t_n = findArrayNumberByUniqueID(n, this._slides, \"uniqueid\");\n\t\t} else {\n\t\t\t_n = n;\n\t\t}\n\t\tthis.goTo(_n, fast, displayupdate);\n\n\t}\n\n\tgoTo(n, fast, displayupdate) {\n\t\tvar self = this;\n\n\t\tthis.changeBackground({color_value:\"\", image:false});\n\n\t\t// Clear Preloader Timer\n\t\tif (this.preloadTimer) {\n\t\t\tclearTimeout(this.preloadTimer);\n\t\t}\n\n\t\t// Set Slide Active State\n\t\tfor (var i = 0; i < this._slides.length; i++) {\n\t\t\tthis._slides[i].setActive(false);\n\t\t}\n\n\t\tif (n < this._slides.length && n >= 0) {\n\n\n\t\t\tthis.current_slide = n;\n\n\t\t\t// Stop animation\n\t\t\tif (this.animator) {\n\t\t\t\tthis.animator.stop();\n\t\t\t}\n\t\t\tif (this._swipable) {\n\t\t\t\tthis._swipable.stopMomentum();\n\t\t\t}\n\n\t\t\tif (fast) {\n\t\t\t\tthis._el.slider_container.style.left = -(this.slide_spacing * n) + \"px\";\n\t\t\t\tthis._onSlideChange(displayupdate);\n\t\t\t} else {\n\t\t\t\tthis.animator = Animate(this._el.slider_container, {\n\t\t\t\t\tleft: \t\t-(this.slide_spacing * n) + \"px\",\n\t\t\t\t\tduration: \tthis.options.duration,\n\t\t\t\t\teasing: \tthis.options.ease,\n\t\t\t\t\tcomplete: \tthis._onSlideChange(displayupdate)\n\t\t\t\t});\n\n\t\t\t}\n\n\t\t\t// Set Slide Active State\n\t\t\tthis._slides[this.current_slide].setActive(true);\n\n\t\t\t// Update Navigation and Info\n\t\t\tif (this._slides[this.current_slide + 1]) {\n\t\t\t\tthis.showNav(this._nav.next, true);\n\t\t\t\tthis.showNav(this._nav.back, false);\n\t\t\t\tthis._nav.next.update(this.getNavInfo(this._slides[this.current_slide + 1]));\n\t\t\t} else {\n\t\t\t\tthis.showNav(this._nav.next, false);\n\t\t\t\tthis.showNav(this._nav.back, true);\n\t\t\t}\n\t\t\tif (this._slides[this.current_slide - 1]) {\n\t\t\t\tthis.showNav(this._nav.previous, true);\n\t\t\t\tthis._nav.previous.update(this.getNavInfo(this._slides[this.current_slide - 1]));\n\t\t\t} else {\n\t\t\t\tthis.showNav(this._nav.previous, false);\n\t\t\t}\n\n\n\t\t\t// Preload Slides\n\t\t\tthis.preloadTimer = setTimeout(function() {\n\t\t\t\tself.preloadSlides();\n\t\t\t}, this.options.duration);\n\n\t\t}\n\t}\n\n\tpreloadSlides() {\n\t\tif (this._slides[this.current_slide + 1]) {\n\t\t\tthis._slides[this.current_slide + 1].loadMedia();\n\t\t\tthis._slides[this.current_slide + 1].scrollToTop();\n\t\t}\n\t\tif (this._slides[this.current_slide + 2]) {\n\t\t\tthis._slides[this.current_slide + 2].loadMedia();\n\t\t\tthis._slides[this.current_slide + 2].scrollToTop();\n\t\t}\n\t\tif (this._slides[this.current_slide - 1]) {\n\t\t\tthis._slides[this.current_slide - 1].loadMedia();\n\t\t\tthis._slides[this.current_slide - 1].scrollToTop();\n\t\t}\n\t\tif (this._slides[this.current_slide - 2]) {\n\t\t\tthis._slides[this.current_slide - 2].loadMedia();\n\t\t\tthis._slides[this.current_slide - 2].scrollToTop();\n\t\t}\n\t}\n\n\tgetNavInfo(slide) {\n\t\tvar n = {\n\t\t\ttitle: \"\",\n\t\t\tdescription: \"\"\n\t\t};\n\n\t\tif (slide.data.text) {\n\t\t\tif (slide.data.text.headline) {\n\t\t\t\tn.title = slide.data.text.headline;\n\t\t\t}\n\t\t\t/*\n\t\t\t// Disabling location in description for now.\n\t\t\tif (slide.data.location) {\n\t\t\t\tif (slide.data.location.name) {\n\t\t\t\t\tn.description = slide.data.location.name;\n\t\t\t\t}\n\t\t\t}\n\t\t\t*/\n\t\t}\n\n\t\treturn n;\n\n\t}\n\n\tnext() {\n\t\tif ((this.current_slide +1) < (this._slides.length)) {\n\t\t\tthis.goTo(this.current_slide +1);\n\t\t} else {\n\t\t\tthis.goTo(this.current_slide);\n\t\t}\n\t}\n\n\tprevious() {\n\t\tif (this.current_slide -1 >= 0) {\n\t\t\tthis.goTo(this.current_slide -1);\n\t\t} else {\n\t\t\tthis.goTo(this.current_slide);\n\t\t}\n\t}\n\n\tshowNav(nav_obj, show) {\n\n\t\tif (this.options.width <= 500 && Browser.mobile) {\n\n\t\t} else {\n\t\t\tif (show) {\n\t\t\t\tnav_obj.show();\n\t\t\t} else {\n\t\t\t\tnav_obj.hide();\n\t\t\t}\n\n\t\t}\n\t}\n\n\tchangeBackground(bg) {\n\t\tvar self = this,\n\t\t\tdo_animation = false;\n\n\t\tvar bg_color = {r:256, g:256, b:256},\n\t\t\tbg_color_rgb,\n\t\t\tbg_percent_start \t= this.options.slide_default_fade,\n\t\t\tbg_percent_end \t\t= \"15%\",\n\t\t\tbg_alpha_end \t\t= \"0.87\",\n\t\t\tbg_css \t\t\t\t= \"\",\n\t\t\tbg_old \t\t\t\t= this._el.background.getAttribute('style');\n\n\t\tif (bg.color_value) {\n\t\t\tbg_color = hexToRgb(bg.color_value);\n\t\t} else {\n\t\t\tbg_color = this.options.default_bg_color;\n\t\t}\n\n\n\t\t// Stop animation\n\t\tif (this.animator_background) {\n\t\t\tthis.animator_background.stop();\n\t\t}\n\n\t\tbg_color_rgb \t= bg_color.r + \",\" + bg_color.g + \",\" + bg_color.b;\n\n\t\tif (!this.current_bg_color || this.current_bg_color != bg_color_rgb) {\n\t\t\tthis.current_bg_color = bg_color_rgb;\n\t\t\tdo_animation = true;\n\t\t}\n\n\t\tif (do_animation) {\n\n\t\t\t// Figure out CSS\n\t\t\tif (this.options.layout == \"landscape\") {\n\n\t\t\t\tthis._nav.next.setColor(false);\n\t\t\t\tthis._nav.previous.setColor(false);\n\t\t\t\tthis._nav.back.setColor(false);\n\n\t\t\t\t// If background is not white, less fade is better\n\t\t\t\tif (bg_color.r < 255 && bg_color.g < 255 && bg_color.b < 255) {\n\t\t\t\t\tbg_percent_start = \"15%\";\n\t\t\t\t}\n\n\t\t\t\tif (bg.image) {\n\t\t\t\t\tbg_percent_start = \"0%\";\n\n\t\t\t\t}\n\t\t\t\tbg_css \t+= \"opacity:0;\"\n\t\t\t\tbg_css \t+= \"background-image: -webkit-linear-gradient(left, color-stop(rgba(\" + bg_color_rgb + \",0.0001 ) \" + bg_percent_start + \"), color-stop(rgba(\" + bg_color_rgb + \",\" + bg_alpha_end + \") \" + bg_percent_end + \"));\";\n\t\t\t\tbg_css \t+= \"background-image: linear-gradient(to right, rgba(\" + bg_color_rgb + \",0.0001 ) \"+ bg_percent_start + \", rgba(\" + bg_color_rgb + \",\" + bg_alpha_end + \") \" + bg_percent_end + \");\";\n\t\t\t\tbg_css \t+= \"background-repeat: repeat-x;\";\n\t\t\t\tbg_css \t+= \"filter: e(%('progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=1)',argb(\" + bg_color_rgb + \", 0.0001),argb(\" + bg_color_rgb + \",0.80)));\";\n\n\n\t\t\t} else {\n\t\t\t\tif (bg.color_value) {\n\t\t\t\t\tbg_css \t+= 'background-color:' + bg.color_value + \";\";\n\t\t\t\t} else {\n\t\t\t\t\tbg_css \t+= \"background-color:#FFF;\";\n\t\t\t\t}\n\n\t\t\t\tif (bg_color.r < 255 && bg_color.g < 255 && bg_color.b < 255 || bg.image) {\n\t\t\t\t\tthis._nav.next.setColor(true);\n\t\t\t\t\tthis._nav.previous.setColor(true);\n\t\t\t\t\tthis._nav.back.setColor(true);\n\t\t\t\t} else {\n\t\t\t\t\tthis._nav.next.setColor(false);\n\t\t\t\t\tthis._nav.previous.setColor(false);\n\t\t\t\t\tthis._nav.back.setColor(false);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// FADE OUT IN\n\t\t\tthis.animator_background = Animate(this._el.background, {\n\t\t\t\topacity: \t0,\n\t\t\t\tduration: \tthis.options.duration/2,\n\t\t\t\teasing: \tthis.options.ease,\n\t\t\t\tcomplete: \tfunction() {\n\t\t\t\t\tself.fadeInBackground(bg_css);\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\n\t}\n\n\tfadeInBackground(bg_css) {\n\t\tif (this.animator_background) {\n\t\t\tthis.animator_background.stop();\n\t\t}\n\n\t\tif (bg_css) {\n\t\t\tthis._el.background.setAttribute(\"style\", bg_css);\n\t\t}\n\n\t\tthis.animator_background = Animate(this._el.background, {\n\t\t\topacity: \t1,\n\t\t\tduration: \tthis.options.duration/2,\n\t\t\teasing: \tthis.options.ease\n\t\t});\n\n\t}\n\n\t/*\tPrivate Methods\n\t================================================== */\n\n\t// Update Display\n\t_updateDisplay(width, height, animate, layout) {\n\t\tvar nav_pos, _layout;\n\n\t\tif(typeof layout === 'undefined'){\n\t\t\t_layout = this.options.layout;\n\t\t} else {\n\t\t\t_layout = layout;\n\t\t}\n\n\t\tthis.options.layout = _layout;\n\n\t\tthis.slide_spacing = this.options.width*2;\n\n\t\tif (width) {\n\t\t\tthis.options.width = width;\n\t\t} else {\n\t\t\tthis.options.width = this._el.container.offsetWidth;\n\t\t}\n\n\t\tif (height) {\n\t\t\tthis.options.height = height;\n\t\t} else {\n\t\t\tthis.options.height = this._el.container.offsetHeight;\n\t\t}\n\n\t\t//this._el.container.style.height = this.options.height;\n\n\t\t// position navigation\n\t\tnav_pos = (this.options.height/2);\n\t\tthis._nav.next.setPosition({top:nav_pos});\n\t\tthis._nav.previous.setPosition({top:nav_pos});\n\t\tthis._nav.back.setPosition({top:nav_pos});\n\n\n\t\t// Position slides\n\t\tfor (var i = 0; i < this._slides.length; i++) {\n\t\t\tthis._slides[i].updateDisplay(this.options.width, this.options.height, _layout);\n\t\t\tthis._slides[i].setPosition({left:(this.slide_spacing * i), top:0});\n\t\t};\n\n\t\t// Go to the current slide\n\t\tthis.goTo(this.current_slide, true, true);\n\t}\n\n\t_introInterface() {\n\n\t\tif (this.options.call_to_action) {\n\t\t\tvar _str = Language.messages.start;\n\t\t\tif (this.options.call_to_action_text != \"\") {\n\t\t\t\t_str = this.options.call_to_action_text;\n\t\t\t}\n\t\t\tthis._slides[0].addCallToAction(_str);\n\t\t\tthis._slides[0].on('call_to_action', this.next, this);\n\t\t}\n\n\t\tif (this.options.width <= this.options.skinny_size) {\n\n\t\t} else {\n\t\t\tthis._nav.next.updatePosition({right:\"130\"}, false, this.options.duration*3, this.options.ease, -100, true);\n\t\t\tthis._nav.back.updatePosition({right:\"130\"}, false, this.options.duration*3, this.options.ease, -100, true);\n\t\t\tthis._nav.previous.updatePosition({left:\"-100\"}, true, this.options.duration*3, this.options.ease, -200, true);\n\t\t}\n\t}\n\n\t/*\tInit\n\t================================================== */\n\t_initLayout() {\n\n\t\tthis._el.container.className += ' vco-storyslider';\n\n\t\t// Create Layout\n\t\tthis._el.slider_container_mask\t\t= Dom.create('div', 'vco-slider-container-mask', this._el.container);\n\t\tthis._el.background \t\t\t\t= Dom.create('div', 'vco-slider-background', this._el.container);\n\t\tthis._el.slider_container\t\t\t= Dom.create('div', 'vco-slider-container vcoanimate', this._el.slider_container_mask);\n\t\tthis._el.slider_item_container\t\t= Dom.create('div', 'vco-slider-item-container', this._el.slider_container);\n\n\n\t\t// Update Size\n\t\tthis.options.width = this._el.container.offsetWidth;\n\t\tthis.options.height = this._el.container.offsetHeight;\n\n\t\t// Create Navigation\n\t\tthis._nav.previous = new SlideNav({title: \"Previous\", description: \"description\"}, {direction:\"previous\"});\n\t\tthis._nav.next = new SlideNav({title: \"Next\",description: \"description\"}, {direction:\"next\"});\n\t\tthis._nav.back = new SlideNav({title: \"Back\",description:\"\"},{direction:\"back\"});\n\n\t\t// add the navigation to the dom\n\t\tthis._nav.next.addTo(this._el.container);\n\t\tthis._nav.previous.addTo(this._el.container);\n\t\tthis._nav.back.addTo(this._el.container);\n\n\t\tthis._el.slider_container.style.left=\"0px\";\n\n\t\tif (Browser.touch) {\n\t\t\t//this._el.slider_touch_mask = VCO.Dom.create('div', 'vco-slider-touch-mask', this._el.slider_container_mask);\n\t\t\tthis._swipable = new Swipable(this._el.slider_container_mask, this._el.slider_container, {\n\t\t\t\tenable: {x:true, y:false},\n\t\t\t\tsnap: \ttrue\n\t\t\t});\n\t\t\tthis._swipable.enable();\n\n\t\t\t// Message\n\t\t\tthis._message = new Message({}, {\n\t\t\t\tmessage_class: \t\t\"vco-message-full\",\n\t\t\t\tmessage_icon_class: \"vco-icon-swipe-left\"\n\t\t\t});\n\t\t\tthis._message.updateMessage(Language.buttons.swipe_to_navigate);\n\t\t\tthis._message.addTo(this._el.container);\n\t\t}\n\t}\n\n\t_initEvents() {\n\t\tthis._nav.next.on('clicked', this._onNavigation, this);\n\t\tthis._nav.previous.on('clicked', this._onNavigation, this);\n\t\tthis._nav.back.on('clicked', this._onNavigation, this);\n\n\t\tif (this._message) {\n\t\t\tthis._message.on('clicked', this._onMessageClick, this);\n\t\t}\n\n\t\tif (this._swipable) {\n\t\t\tthis._swipable.on('swipe_left', this._onNavigation, this);\n\t\t\tthis._swipable.on('swipe_right', this._onNavigation, this);\n\t\t\tthis._swipable.on('swipe_nodirection', this._onSwipeNoDirection, this);\n\t\t}\n\t}\n\n\t_initData() {\n\t\t// Create Slides and then add them\n\t\tthis._createSlides(this.data.slides);\n\t}\n\n\t/*\tEvents\n\t================================================== */\n\t_onBackgroundChange(e) {\n\t\tvar slide_background = this._slides[this.current_slide].getBackground();\n\t\tthis.changeBackground(e);\n\t\tthis.fire(\"colorchange\", slide_background);\n\t}\n\n\t_onMessageClick(e) {\n\t\tthis._message.hide();\n\t}\n\n\t_onSwipeNoDirection(e) {\n\t\tthis.goTo(this.current_slide);\n\t}\n\n\t_onNavigation(e) {\n\n\t\tif (e.direction == \"next\" || e.direction == \"left\") {\n\t\t\tthis.next();\n\t\t} else if (e.direction == \"previous\" || e.direction == \"right\") {\n\t\t\tthis.previous();\n\t\t} else if (e.direction == \"back\") {\n\t\t\tthis.goTo(0);\n\t\t}\n\t\tthis.fire(\"nav_\" + e.direction, this.data);\n\t}\n\n\t_onSlideAdded(e) {\n\t\tthis.fire(\"slideAdded\", this.data);\n\t}\n\n\t_onSlideRemoved(e) {\n\t\tthis.fire(\"slideAdded\", this.data);\n\t}\n\n\t_onSlideChange(displayupdate) {\n\n\t\tif (!displayupdate) {\n\t\t\tthis.fire(\"change\", {current_slide:this.current_slide, uniqueid:this._slides[this.current_slide].data.uniqueid});\n\t\t}\n\t}\n\n\t_onMouseClick(e) {\n\n\t}\n\n\t_fireMouseEvent(e) {\n\t\tif (!this._loaded) {\n\t\t\treturn;\n\t\t}\n\n\t\tvar type = e.type;\n\t\ttype = (type === 'mouseenter' ? 'mouseover' : (type === 'mouseleave' ? 'mouseout' : type));\n\n\t\tif (!this.hasEventListeners(type)) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (type === 'contextmenu') {\n\t\t\tDomEvent.preventDefault(e);\n\t\t}\n\n\t\tthis.fire(type, {\n\t\t\tlatlng: \"something\", //this.mouseEventToLatLng(e),\n\t\t\tlayerPoint: \"something else\" //this.mouseEventToLayerPoint(e)\n\t\t});\n\t}\n\n\t_onLoaded() {\n\t\tthis.fire(\"loaded\", this.data);\n\t\tthis.fire(\"title\", {title:this._slides[0].title});\n\n\t}\n}\n\nclassMixin(StorySlider, Events)\n","import { classMixin, mergeData, updateData, urljoin } from \"../core/Util\"\nimport { loadJS, loadCSS } from \"../core/Load\"\nimport Dom from \"../dom/Dom\"\nimport Ease from \"../animation/Ease\"\nimport { setLanguage } from \"../language/Language\"\nimport Events from \"../core/Events\"\nimport Leaflet from \"../map/leaflet/Map.Leaflet\"\nimport MenuBar from \"../ui/MenuBar\"\nimport StorySlider from \"../slider/StorySlider\"\nimport { Browser } from \"../core/Browser\"\nimport Animate from \"../animation/Animate\"\n\nclass StoryMap {\n\n // TODO: mixin\n\t// includes: VCO.Events,\n\n\t/*\tPrivate Methods\n\t================================================== */\n\t//initialize: function (elem, data, options,listeners) {\n\tconstructor(elem, data, options, listeners) {\n\n\t\tfor (let key in listeners) {\n\t\t\tvar callbacks = listeners[key];\n\t\t\tif (typeof(callbacks) == 'function') {\n\t\t\t\tthis.on(key,callbacks);\n\t\t\t} else {\n\t\t\t\tfor (var idx in callbacks) {\n if (typeof(callbacks[idx]) == 'function') { \n\t\t\t\t\t this.on(key,callbacks[idx]);\n } else {\n console.log(\n \"WARNING: Ignoring invalid callback '\" +\n callbacks[idx] + \"' defined for \" +\n \"listener '\" + key + \"' in StoryMap constructor\");\n }\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tvar self = this;\n\t\t// Version\n\t\tthis.version = \"0.1.16\";\n\n\t\t// Ready\n\t\tthis.ready = false;\n\n\t\t// DOM ELEMENTS\n\t\tthis._el = {\n\t\t\tcontainer: {},\n\t\t\tstoryslider: {},\n\t\t\tmap: {},\n\t\t\tmenubar: {}\n\t\t};\n \n\t\t// Determine Container Element\n\t\tif (typeof elem === 'object') {\n\t\t\tthis._el.container = elem;\n\t\t} else {\n\t\t\tthis._el.container = Dom.get(elem);\n\t\t}\n\n\t\t// Slider\n\t\tthis._storyslider = {};\n\n\t\t// Map\n\t\tthis._map = {};\n\t\tthis.map = {}; // For direct access to Leaflet Map\n\n\t\t// Menu Bar\n\t\tthis._menubar = {};\n\n\t\t// Loaded State\n\t\tthis._loaded = {storyslider:false, map:false};\n\n\t\t// Data Object\n\t\t// Test Data compiled from http://www.pbs.org/marktwain/learnmore/chronology.html\n\t\tthis.data = {};\n\n\t\tthis.options = {\n script_path: StoryMap.SCRIPT_PATH,\n height: this._el.container.offsetHeight,\n width: this._el.container.offsetWidth,\n layout: \"landscape\", // portrait or landscape\n base_class: \"\",\n default_bg_color: { r: 256, g: 256, b: 256 },\n map_size_sticky: 2.5, // Set as division 1/3 etc\n map_center_offset: null, // takes object {top:0,left:0}\n less_bounce: false, // Less map bounce when calculating zoom, false is good when there are clusters of tightly grouped markers\n start_at_slide: 0,\n call_to_action: false,\n call_to_action_text: \"\",\n menubar_height: 0,\n skinny_size: 650,\n relative_date: false, // Use momentjs to show a relative date from the slide.text.date.created_time field\n // animation\n duration: 1000,\n ease: Ease.easeInOutQuint,\n // interaction\n dragging: true,\n trackResize: true,\n map_type: '', // \"osm:standard\", \n attribution: \"\",\n map_mini: true,\n map_subdomains: \"\",\n map_as_image: false,\n map_access_token:\n \"pk.eyJ1IjoibnVrbmlnaHRsYWIiLCJhIjoiczFmd0hPZyJ9.Y_afrZdAjo3u8sz_r8m2Yw\", // default\n map_background_color: \"#d9d9d9\",\n zoomify: {\n path: \"\",\n width: \"\",\n height: \"\",\n tolerance: 0.8,\n attribution: \"\"\n },\n map_height: 300,\n storyslider_height: 600,\n slide_padding_lr: 45, // padding on slide of slide\n slide_default_fade: \"0%\", // landscape fade\n menubar_default_y: 0,\n path_gfx: \"gfx\",\n map_popup: false,\n zoom_distance: 100,\n calculate_zoom: true, // Allow map to determine best zoom level between markers (recommended)\n line_follows_path: true, // Map history path follows default line, if false it will connect previous and current only\n line_color: \"#c34528\", //\"#DA0000\",\n line_color_inactive: \"#CCC\",\n line_join: \"miter\",\n line_weight: 3,\n line_opacity: 0.8,\n line_dash: \"5,5\",\n show_lines: true,\n show_history_line: true,\n api_key_flickr: \"8f2d5becf7b6ba46570741620054b507\",\n language: \"en\"\n\n };\n\n\t\t// Current Slide\n\t\tthis.current_slide = this.options.start_at_slide;\n\n\t\t// Animation Objects\n\t\tthis.animator_map = null;\n\t\tthis.animator_storyslider = null;\n\n\t\t// Merge Options -- legacy, in case people still need to pass in\n\t\tmergeData(this.options, options);\n\n this._initData(data);\n\n\t\treturn this;\n\t}\n\n\t/* Initialize the data\n\t================================================== */\n _initData(data) {\n\t\tvar self = this;\n\n\t\tif (typeof data === 'string') {\n fetch(data)\n .then(response => response.json())\n .then(result => {\n console.log(result);\n\t\t\t\tself.data = result.storymap;\n\t\t\t self._initOptions();\n });\n\t\t} else if (typeof data === 'object') {\n\t\t\tif (data.storymap) {\n\t\t\t\tself.data = data.storymap;\n\t\t\t} else {\n\t\t\t\tconsole.log(\"data must have a storymap property\")\n\t\t\t}\n\t\t\tself._initOptions();\n\t\t} else {\n\t console.log(\"data has unknown type\")\n\t self._initOptions();\n }\n\t}\n\n\t/* Initialize the options\n\t================================================== */\n _initOptions() {\n \t\tvar self = this;\n\n // Grab options from storymap data\n updateData(this.options, this.data);\n\n\t\tif (this.options.layout == \"landscape\") {\n\t\t\tthis.options.map_center_offset = {left: -200, top: 0};\n\t\t}\n\t\tif (this.options.map_type == \"zoomify\" && this.options.map_as_image) {\n\t\t\tthis.options.map_size_sticky = 2;\n\t\t}\n\t\tif (this.options.map_as_image) {\n\t\t\tthis.options.calculate_zoom = false;\n\t\t}\n\n\t // handle Stamen change\n\t if (this.options.map_type.indexOf('stamen') == 0) {\n\t\t const old_type = this.options.map_type\n\t\t if (old_type == 'stamen:watercolor') {\n\t\t\t this.options.map_type = 'ch-watercolor'\n\t\t } else {\n\t\t\t this.options.map_type = 'osm:standard'\n\t\t }\n\t\t console.log(`Deprecated map_type ${old_type}; using ${this.options.map_type}`)\n\t }\n\n\t // Use relative date calculations?\n\t\tif(this.options.relative_date) {\n\t\t\tif (typeof(moment) !== 'undefined') {\n\t\t\t\tself._loadLanguage();\n\t\t\t} else {\n\t\t\t\tloadJS(this.options.script_path + \"/library/moment.js\", function() {\n\t\t\t\t\tself._loadLanguage();\n\t\t\t\t});\n\t\t\t}\n\t\t} else {\n\t\t\tself._loadLanguage();\n\t\t}\n\n \t\t// Emoji Support to Chrome?\n\t\tif (Browser.chrome) {\n\t\t\tloadCSS(urljoin(this.options.script_path,\"../css/fonts/font.emoji.css\"), function() {\n\t\t\t});\n\t\t}\n }\n\n\t/*\tLoad Language\n\t================================================== */\n\n _loadLanguage() {\n setLanguage(this.options.language);\n this._onDataLoaded();\n }\n\n\t/*\tNavigation\n\t================================================== */\n\tgoTo(n) {\n\t\tif (n != this.current_slide) {\n\t\t\tthis.current_slide = n;\n\t\t\tthis._storyslider.goTo(this.current_slide);\n\t\t\tthis._map.goTo(this.current_slide);\n\t\t}\n\t}\n\n\tupdateDisplay() {\n\t\tif (this.ready) {\n\t\t\tthis._updateDisplay();\n\t\t}\n\t}\n\n\t/*\tPrivate Methods\n\t================================================== */\n\n\t// Initialize the layout\n\t_initLayout() {\n\t\tvar self = this;\n\n\t\tthis._el.container.className += ' vco-storymap';\n\t\tthis.options.base_class = this._el.container.className;\n\n\t\t// Create Layout\n\t\tthis._el.menubar\t\t= Dom.create('div', 'vco-menubar', this._el.container);\n\t\tthis._el.map \t\t\t= Dom.create('div', 'vco-map', this._el.container);\n\t\tthis._el.storyslider \t= Dom.create('div', 'vco-storyslider', this._el.container);\n\n\t\t// Initial Default Layout\n\t\tthis.options.width \t\t\t\t= this._el.container.offsetWidth;\n\t\tthis.options.height \t\t\t= this._el.container.offsetHeight;\n\t\tthis._el.map.style.height \t\t= \"1px\";\n\t\tthis._el.storyslider.style.top \t= \"1px\";\n\n\t\t// Create Map using preferred Map API\n\t\tthis._map = new Leaflet(this._el.map, this.data, this.options);\n\t\tthis.map = this._map._map; // For access to Leaflet Map.\n\t\tthis._map.on('loaded', this._onMapLoaded, this);\n\n\t\t// Map Background Color\n\t\tthis._el.map.style.backgroundColor = this.options.map_background_color;\n\n\t\t// Create Menu Bar\n\t\tthis._menubar = new MenuBar(this._el.menubar, this._el.container, this.options);\n\n\t\t// Create StorySlider\n\t\tthis._storyslider = new StorySlider(this._el.storyslider, this.data, this.options);\n\t\tthis._storyslider.on('loaded', this._onStorySliderLoaded, this);\n\t\tthis._storyslider.on('title', this._onTitle, this);\n\t\tthis._storyslider.init();\n\n\t\t// LAYOUT\n\t\tif (this.options.layout == \"portrait\") {\n\t\t\t// Set Default Component Sizes\n\t\t\tthis.options.map_height \t\t= (this.options.height / this.options.map_size_sticky);\n\t\t\tthis.options.storyslider_height = (this.options.height - this._el.menubar.offsetHeight - this.options.map_height - 1);\n\t\t\tthis._menubar.setSticky(0);\n\t\t} else {\n\t\t\tthis.options.menubar_height = this._el.menubar.offsetHeight;\n\t\t\t// Set Default Component Sizes\n\t\t\tthis.options.map_height \t\t= this.options.height;\n\t\t\tthis.options.storyslider_height = (this.options.height - this._el.menubar.offsetHeight - 1);\n\t\t\tthis._menubar.setSticky(this.options.menubar_height);\n\t\t}\n\n\t\t// Update Display\n\t\tthis._updateDisplay(this.options.map_height, true, 2000);\n\n\t\t// Animate Menu Bar to Default Location\n\t\tthis._menubar.show(2000);\n\n\t}\n\n\t_initEvents() {\n\n\t\t// Sidebar Events\n\t\tthis._menubar.on('collapse', this._onMenuBarCollapse, this);\n\t\tthis._menubar.on('back_to_start', this._onBackToStart, this);\n\t\tthis._menubar.on('overview', this._onOverview, this);\n\n\t\t// StorySlider Events\n\t\tthis._storyslider.on('change', this._onSlideChange, this);\n\t\tthis._storyslider.on('colorchange', this._onColorChange, this);\n\n\t\t// Map Events\n\t\tthis._map.on('change', this._onMapChange, this);\n\t}\n\n\t// Update View\n\t_updateDisplay(map_height, animate, d) {\n\t\tvar duration \t\t= this.options.duration,\n\t\t\tdisplay_class \t= this.options.base_class,\n\t\t\tself\t\t\t= this;\n\n\t\tif (d) {\n\t\t\tduration = d;\n\t\t}\n\n\t\t// Update width and height\n\t\tthis.options.width = this._el.container.offsetWidth;\n\t\tthis.options.height = this._el.container.offsetHeight;\n\n\t\t// Check if skinny\n\t\tif (this.options.width <= this.options.skinny_size) {\n\t\t\tthis.options.layout = \"portrait\";\n\t\t\t//display_class += \" vco-skinny\";\n\t\t} else {\n\t\t\tthis.options.layout = \"landscape\";\n\t\t}\n\n\n\t\t// Map Height\n\t\tif (map_height) {\n\t\t\tthis.options.map_height = map_height;\n\t\t}\n\n\n\t\t// Detect Mobile and Update Orientation on Touch devices\n\t\tif (Browser.touch) {\n\t\t\tthis.options.layout = Browser.orientation();\n\t\t\tdisplay_class += \" vco-mobile\";\n\t\t}\n\n\t\t// LAYOUT\n\t\tif (this.options.layout == \"portrait\") {\n\t\t\tdisplay_class += \" vco-skinny\";\n\t\t\t// Map Offset\n\t\t\tthis._map.setMapOffset(0, 0);\n\n\t\t\tthis.options.map_height \t\t= (this.options.height / this.options.map_size_sticky);\n\t\t\tthis.options.storyslider_height = (this.options.height - this.options.map_height - 1);\n\t\t\tthis._menubar.setSticky(0);\n\n\t\t\t// Portrait\n\t\t\tdisplay_class += \" vco-layout-portrait\";\n\n\t\t\tif (animate) {\n\n\t\t\t\t// Animate Map\n\t\t\t\tif (this.animator_map) {\n\t\t\t\t\tthis.animator_map.stop();\n\t\t\t\t}\n\n\t\t\t\tthis.animator_map = Animate(this._el.map, {\n\t\t\t\t\theight: \t(this.options.map_height) + \"px\",\n\t\t\t\t\tduration: \tduration,\n\t\t\t\t\teasing: \tEase.easeOutStrong,\n\t\t\t\t\tcomplete: function () {\n\t\t\t\t\t\tself._map.updateDisplay(self.options.width, self.options.map_height, animate, d, self.options.menubar_height);\n\t\t\t\t\t}\n\t\t\t\t});\n\n\t\t\t\t// Animate StorySlider\n\t\t\t\tif (this.animator_storyslider) {\n\t\t\t\t\tthis.animator_storyslider.stop();\n\t\t\t\t}\n\t\t\t\tthis.animator_storyslider = Animate(this._el.storyslider, {\n\t\t\t\t\theight: \tthis.options.storyslider_height + \"px\",\n\t\t\t\t\tduration: \tduration,\n\t\t\t\t\teasing: \tEase.easeOutStrong\n\t\t\t\t});\n\n\t\t\t} else {\n\t\t\t\t// Map\n\t\t\t\tthis._el.map.style.height = Math.ceil(this.options.map_height) + \"px\";\n\n\t\t\t\t// StorySlider\n\t\t\t\tthis._el.storyslider.style.height = this.options.storyslider_height + \"px\";\n\t\t\t}\n\n\t\t\t// Update Component Displays\n\t\t\tthis._menubar.updateDisplay(this.options.width, this.options.height, animate);\n\t\t\tthis._map.updateDisplay(this.options.width, this.options.height, false);\n\t\t\tthis._storyslider.updateDisplay(this.options.width, this.options.storyslider_height, animate, this.options.layout);\n\n\t\t} else {\n\n\t\t\t// Landscape\n\t\t\tdisplay_class += \" vco-layout-landscape\";\n\n\t\t\tthis.options.menubar_height = this._el.menubar.offsetHeight;\n\n\t\t\t// Set Default Component Sizes\n\t\t\tthis.options.map_height \t\t= this.options.height;\n\t\t\tthis.options.storyslider_height = this.options.height;\n\t\t\tthis._menubar.setSticky(this.options.menubar_height);\n\n\t\t\t// Set Sticky state of MenuBar\n\t\t\tthis._menubar.setSticky(this.options.menubar_height);\n\n\t\t\tthis._el.map.style.height = this.options.height + \"px\";\n\n\t\t\t// Update Component Displays\n\t\t\tthis._map.setMapOffset(-(this.options.width/4), 0);\n\n\t\t\t// StorySlider\n\t\t\tthis._el.storyslider.style.top = 0;\n\t\t\tthis._el.storyslider.style.height = this.options.storyslider_height + \"px\";\n\n\t\t\tthis._menubar.updateDisplay(this.options.width, this.options.height, animate);\n\t\t\tthis._map.updateDisplay(this.options.width, this.options.height, animate, d);\n\t\t\tthis._storyslider.updateDisplay(this.options.width/2, this.options.storyslider_height, animate, this.options.layout);\n\t\t}\n\n\t\tif (this.options.language.direction == 'rtl') {\n\t\t\tdisplay_class += ' vco-rtl';\n\t\t}\n\t\telse if (this.options.language.direction == 'rtl'){\n\t\t\tdisplay_class += ' vco-rtl';\n\t\t}\n\n\t\t// Apply class\n\t\tthis._el.container.className = display_class;\n\n\n\t}\n\n\n\t/*\tEvents\n\t================================================== */\n\n\t_onDataLoaded(e) {\n\t\tthis.fire(\"dataloaded\");\n\t\tthis._initLayout();\n\t\tthis._initEvents();\n\t\tthis.ready = true;\n\t}\n\n\t_onTitle(e) {\n\t\tthis.fire(\"title\", e);\n\t}\n\n\t_onColorChange(e) {\n\t\tif (e.color || e.image) {\n\t\t\tthis._menubar.setColor(true);\n\t\t} else {\n\t\t\tthis._menubar.setColor(false);\n\t\t}\n\t}\n\n\t_onSlideChange(e) {\n\t\tif (this.current_slide != e.current_slide) {\n\t\t\tthis.current_slide = e.current_slide;\n\t\t\tthis._map.goTo(this.current_slide);\n\t\t\tthis.fire(\"change\", {current_slide: this.current_slide}, this);\n\t\t}\n\t}\n\n\t_onMapChange(e) {\n\t\tif (this.current_slide != e.current_marker) {\n\t\t\tthis.current_slide = e.current_marker;\n\t\t\tthis._storyslider.goTo(this.current_slide);\n\t\t\tthis.fire(\"change\", {current_slide: this.current_slide}, this);\n\t\t}\n\t}\n\n\t_onOverview(e) {\n\t\tthis._map.markerOverview();\n\t}\n\n\t_onBackToStart(e) {\n\t\tthis.current_slide = 0;\n\t\tthis._map.goTo(this.current_slide);\n\t\tthis._storyslider.goTo(this.current_slide);\n\t\tthis.fire(\"change\", {current_slide: this.current_slide}, this);\n\t}\n\n\t_onMenuBarCollapse(e) {\n\t\tthis._updateDisplay(e.y, true);\n\t}\n\n\t_onMouseClick(e) {\n\n\t}\n\n\t_fireMouseEvent(e) {\n\t\tif (!this._loaded) {\n\t\t\treturn;\n\t\t}\n\n\t\tvar type = e.type;\n\t\ttype = (type === 'mouseenter' ? 'mouseover' : (type === 'mouseleave' ? 'mouseout' : type));\n\n\t\tif (!this.hasEventListeners(type)) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (type === 'contextmenu') {\n\t\t\tDomEvent.preventDefault(e);\n\t\t}\n\n\t\tthis.fire(type, {\n\t\t\tlatlng: \"something\", //this.mouseEventToLatLng(e),\n\t\t\tlayerPoint: \"something else\" //this.mouseEventToLayerPoint(e)\n\t\t});\n\t}\n\n\t_onMapLoaded() {\n\t\tthis._loaded.map = true;\n\t\tthis._onLoaded();\n\t}\n\n\t_onStorySliderLoaded() {\n\t\tthis._loaded.storyslider = true;\n\t\tthis._onLoaded();\n\t}\n\n\t_onLoaded() {\n\t\tif (this._loaded.storyslider && this._loaded.map) {\n\t\t\tthis.fire(\"loaded\", this.data);\n\t\t}\n\t}\n}\n\n// Calculates the script path and sets it as SCRIPT_PATH on the StoryMap class\n(function(StoryMapClass) {\n\tvar scripts = document.getElementsByTagName(\"script\");\n\tif (scripts.length > 0) {\n\t\tvar src = scripts[scripts.length - 1].src;\n\t\tStoryMapClass.SCRIPT_PATH = src.substring(0, src.lastIndexOf(\"/\"));\n\t}\n})(StoryMap);\n\nclassMixin(StoryMap, Events)\nexport { StoryMap }\n","require('../less/VCO.StoryMap.less')\nexport { StoryMap } from \"./storymap/StoryMap\"\nexport { loadCSS } from \"./core/Load\"\n\n/* Used by the editor: */\nimport StamenTileLayer from \"./map/tile/TileLayer.Stamen\"\nexport { StamenTileLayer }\nimport MediaType from \"./media/MediaType\"\nexport { MediaType }\n\nexport { setLanguage } from \"./language/Language\"\n\nimport ZoomifyTileLayer from \"./map/leaflet/extensions/Leaflet.TileLayer.Zoomify\"\nexport { ZoomifyTileLayer }\n\n/* Transitional references deprecated as of 0.7.7 */\nfunction trace(msg) {\n console.log(msg);\n}\nwindow.trace = trace;\n\n\nfunction getJSON(url, onload) {\n let httpRequest = new XMLHttpRequest();\n httpRequest.onreadystatechange = function() {\n if (httpRequest.readyState === XMLHttpRequest.DONE) {\n if (httpRequest.status === 200) {\n let data = JSON.parse(httpRequest.responseText);\n onload(data);\n } else {\n alert('There was a problem with the request.');\n }\n }\n };\n httpRequest.open('GET', url);\n httpRequest.send();\n}\n\nimport { loadCSS } from \"./core/Load\"\nimport { StoryMap } from \"./storymap/StoryMap\"\n\nconst VCO = {\n Load: {\n css: loadCSS\n },\n getJSON: getJSON,\n StoryMap: StoryMap\n}\nwindow.VCO = VCO;\n\n// set up lightbox\nconst lightboxDiv = document.createElement(\"div\");\nlightboxDiv.setAttribute('id',\"lightbox\");\ndocument.body.appendChild(lightboxDiv);\n\n// close lightbox\nlightboxDiv.addEventListener(\"click\", () => lightboxDiv.style.display = 'none');\n"],"names":["exports","version","extend","dest","i","j","len","src","arguments","length","create$2","Object","create","F","proto","prototype","bind","fn","obj","slice","Array","apply","call","args","concat","lastId","stamp","_leaflet_id","throttle","time","context","lock","wrapperFn","later","setTimeout","wrapNum","x","range","includeMax","max","min","d","falseFn","formatNum","num","precision","pow","Math","undefined","round","trim","str","replace","splitWords","split","setOptions","options","hasOwnProperty","getParamString","existingUrl","uppercase","params","push","encodeURIComponent","toUpperCase","indexOf","join","templateRe","template","data","key","value","Error","isArray","toString","array","el","emptyImageUrl","getPrefixed","name","window","lastTime","timeoutDefer","Date","timeToCall","requestFn","requestAnimationFrame","cancelFn","cancelAnimationFrame","id","clearTimeout","requestAnimFrame","immediate","cancelAnimFrame","Util","__proto__","Class","checkDeprecatedMixinEvents","includes","L","Mixin","Events","console","warn","stack","props","NewClass","this","initialize","callInitHooks","parentProto","__super__","constructor","statics","_initHooks","_initHooksCalled","include","parentOptions","mergeOptions","addInitHook","init","on","types","type","_on","off","_off","removeAll","_events","_once","_listens","newListener","ctx","once","listeners","index","listener","_firingCount","splice","fire","propagate","listens","event","target","sourceTarget","l","_propagateEvent","_fn","_eventParents","addEventParent","removeEventParent","e","layer","propagatedFrom","addEventListener","removeEventListener","clearAllEventListeners","addOneTimeEventListener","fireEvent","hasEventListeners","Evented","Point","y","trunc","v","floor","ceil","toPoint","Bounds","a","b","points","toBounds","LatLngBounds","corner1","corner2","latlngs","toLatLngBounds","LatLng","lat","lng","alt","isNaN","toLatLng","c","lon","clone","add","point","_add","subtract","_subtract","divideBy","_divideBy","multiplyBy","_multiplyBy","scaleBy","unscaleBy","_round","_floor","_ceil","_trunc","distanceTo","sqrt","equals","contains","abs","min2","max2","getCenter","getBottomLeft","getTopRight","getTopLeft","getBottomRight","getSize","intersects","bounds","xIntersects","yIntersects","overlaps","xOverlaps","yOverlaps","isValid","pad","bufferRatio","heightBuffer","widthBuffer","sw2","ne2","sw","_southWest","ne","_northEast","getSouthWest","getNorthEast","getNorthWest","getNorth","getWest","getSouthEast","getSouth","getEast","latIntersects","lngIntersects","latOverlaps","lngOverlaps","toBBoxString","maxMargin","other","Earth","distance","wrap","wrapLatLng","sizeInMeters","latAccuracy","lngAccuracy","cos","PI","CRS","latLngToPoint","latlng","zoom","projectedPoint","projection","project","scale","transformation","_transform","pointToLatLng","untransformedPoint","untransform","unproject","log","LN2","getProjectedBounds","infinite","s","transform","wrapLng","wrapLat","wrapLatLngBounds","center","newCenter","latShift","lngShift","R","latlng1","latlng2","rad","lat1","lat2","sinDLat","sin","sinDLon","atan2","earthRadius","SphericalMercator","MAX_LATITUDE","atan","exp","Transformation","_a","_b","_c","_d","toTransformation","EPSG3857","code","EPSG900913","svgCreate","document","createElementNS","pointsToPath","rings","closed","len2","p","Browser","svg","div","style","documentElement","ie","ielt9","edge","navigator","webkit","userAgentContains","android","android23","webkitVer","parseInt","exec","userAgent","androidStock","opera","chrome","gecko","safari","phantom","opera12","win","platform","ie3d","webkit3d","WebKitCSSMatrix","gecko3d","any3d","L_DISABLE_3D","mobile","orientation","mobileWebkit","mobileWebkit3d","msPointer","PointerEvent","MSPointerEvent","pointer","touchNative","TouchEvent","touch","L_NO_TOUCH","mobileOpera","mobileGecko","retina","devicePixelRatio","screen","deviceXDPI","logicalXDPI","passiveEvents","supportsPassiveOption","opts","defineProperty","get","canvas$1","createElement","getContext","svg$1","createSVGRect","inlineSvg","innerHTML","firstChild","namespaceURI","vml","shape","behavior","adj","mac","linux","toLowerCase","canvas","POINTER_DOWN","POINTER_MOVE","POINTER_UP","POINTER_CANCEL","pEvent","touchstart","touchmove","touchend","touchcancel","handle","_onPointerStart","_handlePointer","_pointers","_pointerDocListener","addPointerListener","handler","_addPointerDocListener","removePointerListener","_globalPointerDown","pointerId","_globalPointerMove","_globalPointerUp","pointerType","MSPOINTER_TYPE_MOUSE","touches","changedTouches","MSPOINTER_TYPE_TOUCH","preventDefault","makeDblclick","prop","newEvent","detail","isTrusted","_simulated","delay","addDoubleTapListener","last","simDblclick","sourceCapabilities","firesTouchEvents","path","getPropagationPath","some","HTMLLabelElement","attributes","for","HTMLInputElement","HTMLSelectElement","now","dblclick","removeDoubleTapListener","handlers","disableTextSelection","enableTextSelection","_userSelect","_outlineElement","_outlineStyle","TRANSFORM","testProp","TRANSITION","TRANSITION_END","getElementById","getStyle","currentStyle","defaultView","css","getComputedStyle","create$1","tagName","className","container","appendChild","remove","parent","parentNode","removeChild","empty","toFront","lastChild","toBack","insertBefore","hasClass","classList","getClass","RegExp","test","addClass","classes","setClass","removeClass","baseVal","correspondingElement","setOpacity","opacity","_setOpacityIE","filter","filterName","filters","item","Enabled","Opacity","setTransform","offset","pos","setPosition","_leaflet_pos","left","top","getPosition","userSelectProperty","disableImageDrag","enableImageDrag","preventOutline","element","tabIndex","restoreOutline","outlineStyle","getSizedParentNode","offsetWidth","offsetHeight","body","getScale","rect","getBoundingClientRect","width","height","boundingClientRect","DomUtil","addOne","eventsKey","batchRemove","removeOne","filterFn","mouseSubst","mouseenter","mouseleave","wheel","originalHandler","passive","isExternalTarget","attachEvent","detachEvent","stopPropagation","originalEvent","_stopped","cancelBubble","disableScrollPropagation","disableClickPropagation","returnValue","stop","ev","composedPath","getMousePosition","clientX","clientY","clientLeft","clientTop","wheelPxFactor","getWheelDelta","wheelDeltaY","deltaY","deltaMode","deltaX","deltaZ","wheelDelta","related","relatedTarget","err","DomEvent","addListener","removeListener","PosAnimation","run","newPos","duration","easeLinearity","_el","_inProgress","_duration","_easeOutPower","_startPos","_offset","_startTime","_animate","_step","_complete","_animId","elapsed","_runFrame","_easeOut","progress","t","Map","crs","minZoom","maxZoom","layers","maxBounds","renderer","zoomAnimation","zoomAnimationThreshold","fadeAnimation","markerZoomAnimation","transform3DLimit","zoomSnap","zoomDelta","trackResize","_handlers","_layers","_zoomBoundLayers","_sizeChanged","_initContainer","_initLayout","_onResize","_initEvents","setMaxBounds","_zoom","_limitZoom","setView","reset","_zoomAnimated","_createAnimProxy","_proxy","_catchTransitionEnd","_addLayers","_limitCenter","_stop","_loaded","animate","pan","_tryAnimatedZoom","_tryAnimatedPan","_sizeTimer","_resetView","noMoveStart","setZoom","zoomIn","delta","zoomOut","setZoomAround","getZoomScale","viewHalf","centerOffset","latLngToContainerPoint","containerPointToLatLng","_getBoundsCenterZoom","getBounds","paddingTL","paddingTopLeft","padding","paddingBR","paddingBottomRight","getBoundsZoom","Infinity","paddingOffset","swPoint","nePoint","fitBounds","fitWorld","panTo","panBy","getZoom","_panAnim","_onPanTransitionStep","_onPanTransitionEnd","_mapPane","_getMapPanePos","_rawPanBy","flyTo","targetCenter","targetZoom","from","to","size","startZoom","w0","w1","u1","rho","rho2","r","sq","sinh","n","cosh","tanh","r0","w","u","easeOut","start","S","frame","_flyToFrame","_move","getScaleZoom","_moveEnd","_moveStart","flyToBounds","_panInsideMaxBounds","setMinZoom","oldZoom","setMaxZoom","panInsideBounds","_enforcingBounds","panInside","pixelCenter","pixelPoint","pixelBounds","getPixelBounds","paddedBounds","paddedSize","invalidateSize","oldSize","_lastCenter","newSize","oldCenter","debounceMoveend","locate","_locateOptions","timeout","watch","_handleGeolocationError","message","onResponse","_handleGeolocationResponse","onError","_locationWatchId","geolocation","watchPosition","getCurrentPosition","stopLocate","clearWatch","error","_container","coords","latitude","longitude","accuracy","timestamp","addHandler","HandlerClass","enable","_containerId","_clearControlPos","_resizeRequest","_clearHandlers","_panes","_renderer","createPane","pane","_checkIfLoaded","_moved","layerPointToLatLng","_getCenterLayerPoint","getMinZoom","_layersMinZoom","getMaxZoom","_layersMaxZoom","inside","nw","se","boundsSize","snap","scalex","scaley","_size","clientWidth","clientHeight","topLeftPoint","_getTopLeftPoint","getPixelOrigin","_pixelOrigin","getPixelWorldBounds","getPane","getPanes","getContainer","toZoom","fromZoom","latLngToLayerPoint","containerPointToLayerPoint","layerPointToContainerPoint","layerPoint","mouseEventToContainerPoint","mouseEventToLayerPoint","mouseEventToLatLng","_onScroll","_fadeAnimated","position","_initPanes","_initControlPos","panes","_paneRenderers","markerPane","shadowPane","loading","zoomChanged","supressEvent","_getNewPixelOrigin","pinch","_getZoomSpan","_targets","onOff","_handleDOMEvent","_onMoveEnd","scrollTop","scrollLeft","_findEventTargets","targets","isHover","srcElement","dragging","_draggableMoved","_isClickDisabled","_fireDOMEvent","_mouseEvents","canvasTargets","synth","filtered","isMarker","getLatLng","_radius","containerPoint","bubblingMouseEvents","enabled","moved","boxZoom","disable","whenReady","callback","_latLngToNewLayerPoint","topLeft","_latLngBoundsToNewLayerBounds","latLngBounds","_getCenterOffset","centerPoint","viewBounds","_getBoundsOffset","_limitOffset","newBounds","pxBounds","projectedMaxBounds","minOffset","maxOffset","_rebound","right","proxy","mapPane","_animatingZoom","_onZoomTransitionEnd","_animMoveEnd","_destroyAnimProxy","z","propertyName","_nothingToAnimate","getElementsByClassName","_animateZoom","startAnim","noUpdate","_animateToCenter","_animateToZoom","_tempFireZoomEvent","createMap","Control","map","_map","removeControl","addControl","addTo","onAdd","corner","_controlCorners","onRemove","_refocusOnMap","screenX","screenY","focus","control","corners","_controlContainer","createCorner","vSide","hSide","Layers","collapsed","autoZIndex","hideSingleBase","sortLayers","sortFunction","layerA","layerB","nameA","nameB","baseLayers","overlays","_layerControlInputs","_lastZIndex","_handlingClick","_preventClick","_addLayer","_update","_checkDisabledLayers","_onLayerChange","_expandIfNotCollapsed","addBaseLayer","addOverlay","removeLayer","_getLayer","expand","_section","acceptableHeight","offsetTop","collapse","setAttribute","section","_expandSafely","link","_layersLink","href","title","keydown","keyCode","click","_baseLayersList","_separator","_overlaysList","overlay","sort","setZIndex","baseLayersPresent","overlaysPresent","baseLayersCount","_addItem","display","_createRadioElement","checked","radioHtml","radioFragment","input","label","hasLayer","defaultChecked","layerId","_onInputClick","holder","inputs","addedLayers","removedLayers","addLayer","disabled","that","Zoom","zoomInText","zoomInTitle","zoomOutText","zoomOutTitle","zoomName","_zoomInButton","_createButton","_zoomIn","_zoomOutButton","_zoomOut","_updateDisabled","_disabled","shiftKey","html","zoomControl","Scale","maxWidth","metric","imperial","_addScales","updateWhenIdle","_mScale","_iScale","maxMeters","_updateScales","_updateMetric","_updateImperial","meters","_getRoundNum","_updateScale","maxMiles","miles","feet","maxFeet","text","ratio","pow10","ukrainianFlag","Attribution","prefix","_attributions","attributionControl","getAttribution","addAttribution","_addAttribution","removeAttribution","setPrefix","attribs","prefixAndAttribs","attribution","Handler","_enabled","addHooks","removeHooks","START","Draggable","clickTolerance","dragStartTarget","_element","_dragStartTarget","_preventOutline","_onDown","_dragging","finishDrag","which","button","_moving","first","sizedParent","_startPoint","_parentScale","mouseevent","_onMove","_onUp","_lastTarget","SVGElementInstance","correspondingUseElement","_newPos","_lastEvent","_updatePosition","noInertia","fireDragend","clipPolygon","clippedPoints","k","edges","_code","_getBitCode","_getEdgeIntersection","polygonCenter","p1","p2","f","area","isFlat","centroidLatLng","centroid","latlngCenter","latSum","lngSum","_lastCode","PolyUtil","simplify","tolerance","sqTolerance","_simplifyDP","_reducePoints","pointToSegmentDistance","_sqClosestPointOnSegment","closestPointOnSegment","markers","Uint8Array","_simplifyDPStep","newPoints","sqDist","maxSqDist","reducedPoints","prev","_sqDist","clipSegment","useLastCode","codeOut","newCode","codeA","codeB","dx","dy","dot","_flat","polylineCenter","halfDist","segDist","dist","LineUtil","LonLat","Mercator","R_MINOR","tmp","con","ts","tan","phi","dphi","EPSG3395","EPSG4326","Simple","Layer","removeFrom","_mapToAdd","addInteractiveTarget","targetEl","removeInteractiveTarget","_layerAdd","getEvents","events","beforeAdd","eachLayer","method","_addZoomLimit","_updateZoomLevels","_removeZoomLimit","oldZoomSpan","LayerGroup","getLayerId","clearLayers","invoke","methodName","getLayer","getLayers","zIndex","layerGroup","FeatureGroup","setStyle","bringToFront","bringToBack","featureGroup","Icon","popupAnchor","tooltipAnchor","crossOrigin","createIcon","oldIcon","_createIcon","createShadow","_getIconUrl","img","_createImg","_setIconStyles","sizeOption","anchor","shadowAnchor","iconAnchor","marginLeft","marginTop","icon","IconDefault","iconUrl","iconRetinaUrl","shadowUrl","iconSize","shadowSize","imagePath","_detectIconPath","_stripUrl","strip","re","idx","match","querySelector","substring","MarkerDrag","marker","_marker","_icon","_draggable","dragstart","_onDragStart","predrag","_onPreDrag","drag","_onDrag","dragend","_onDragEnd","_adjustPan","speed","autoPanSpeed","autoPanPadding","iconPos","origin","panBounds","movement","_panRequest","_oldLatLng","closePopup","autoPan","shadow","_shadow","_latlng","oldLatLng","Marker","interactive","keyboard","zIndexOffset","riseOnHover","riseOffset","autoPanOnFocus","draggable","_initIcon","update","_removeIcon","_removeShadow","viewreset","setLatLng","setZIndexOffset","getIcon","setIcon","_popup","bindPopup","getElement","_setPos","classToAdd","addIcon","mouseover","_bringToFront","mouseout","_resetZIndex","_panOnFocus","newShadow","addShadow","_updateOpacity","_initInteraction","_zIndex","_updateZIndex","opt","iconOpts","_getPopupAnchor","_getTooltipAnchor","Path","stroke","color","weight","lineCap","lineJoin","dashArray","dashOffset","fill","fillColor","fillOpacity","fillRule","getRenderer","_initPath","_reset","_addPath","_removePath","redraw","_updatePath","_updateStyle","_updateBounds","_bringToBack","_path","_project","_clickTolerance","CircleMarker","radius","setRadius","getRadius","_point","r2","_radiusY","_pxBounds","_updateCircle","_empty","_bounds","_containsPoint","circleMarker","Circle","legacyOptions","_mRadius","half","latR","bottom","lngR","acos","circle","Polyline","smoothFactor","noClip","_setLatLngs","getLatLngs","_latlngs","setLatLngs","isEmpty","closestLayerPoint","minDistance","minPoint","closest","jLen","_parts","_defaultShape","addLatLng","_convertLatLngs","result","flat","_rings","_projectLatlngs","_rawPxBounds","projectedBounds","ring","_clipPoints","segment","parts","_simplifyPoints","_updatePoly","part","polyline","Polygon","pop","clipped","polygon","GeoJSON","geojson","addData","feature","features","geometries","geometry","coordinates","geometryToLayer","asFeature","defaultOptions","resetStyle","onEachFeature","_setLayerStyle","pointToLayer","_coordsToLatLng","coordsToLatLng","_pointToLayer","coordsToLatLngs","geoLayer","properties","featureLayer","pointToLayerFn","markersInheritOptions","levelsDeep","latLngToCoords","latLngsToCoords","getFeature","newGeometry","PointToGeoJSON","toGeoJSON","geoJSON","multi","holes","toMultiPoint","isGeometryCollection","jsons","json","geoJson","ImageOverlay","errorOverlayUrl","url","_url","_image","_initImage","styleOpts","setUrl","setBounds","zoomanim","wasElementSupplied","onselectstart","onmousemove","onload","onerror","_overlayOnError","image","errorUrl","imageOverlay","VideoOverlay","autoplay","loop","keepAspectRatio","muted","playsInline","vid","onloadeddata","sourceElements","getElementsByTagName","sources","source","videoOverlay","video","SVGOverlay","svgOverlay","DivOverlay","content","_source","_content","openOn","close","toggle","_prepareOpen","_removeTimeout","getContent","setContent","visibility","_updateContent","_updateLayout","isOpen","node","_contentNode","hasChildNodes","_getAnchor","_containerBottom","_containerLeft","_containerWidth","_initOverlay","OverlayClass","old","Popup","minWidth","maxHeight","autoPanPaddingTopLeft","autoPanPaddingBottomRight","keepInView","closeButton","autoClose","closeOnEscapeKey","popup","closeOnClick","closePopupOnClick","preclick","moveend","wrapper","_wrapper","_tipContainer","_tip","_closeButton","whiteSpace","scrolledClass","_autopanning","marginBottom","containerHeight","containerWidth","layerPos","containerPos","openPopup","_popupHandlersAdded","_openPopup","keypress","_onKeyPress","move","_movePopup","unbindPopup","togglePopup","isPopupOpen","setPopupContent","getPopup","Tooltip","direction","permanent","sticky","tooltip","_setPosition","subX","subY","tooltipPoint","tooltipWidth","tooltipHeight","openTooltip","closeTooltip","bindTooltip","_tooltip","isTooltipOpen","unbindTooltip","_initTooltipInteractions","_tooltipHandlersAdded","_moveTooltip","_openTooltip","_addFocusListeners","mousemove","_setAriaDescribedByOnLayer","toggleTooltip","setTooltipContent","getTooltip","_addFocusListenersOnLayer","moving","_openOnceFlag","DivIcon","bgPos","Element","backgroundPosition","divIcon","Default","GridLayer","tileSize","updateWhenZooming","updateInterval","maxNativeZoom","minNativeZoom","noWrap","keepBuffer","_levels","_tiles","_removeAllTiles","_tileZoom","_setAutoZIndex","isLoading","_loading","tileZoom","_clampZoom","_updateLevels","viewprereset","_invalidateAll","createTile","getTileSize","compare","children","edgeZIndex","isFinite","nextFrame","willPrune","tile","current","loaded","fade","active","_onOpaqueTile","_noPrune","_pruneTiles","_fadeFrame","Number","_onUpdateLevel","_removeTilesAtZoom","_onRemoveLevel","level","_setZoomTransform","_onCreateLevel","_level","retain","_retainParent","_retainChildren","_removeTile","x2","y2","z2","coords2","_tileCoordsToKey","animating","_setView","noPrune","tileZoomChanged","_abortLoading","_resetGrid","_setZoomTransforms","translate","_tileSize","_globalTileRange","_pxBoundsToTileRange","_wrapX","_wrapY","_getTiledPixelBounds","mapZoom","halfSize","tileRange","tileCenter","queue","margin","noPruneRange","_isValidTile","fragment","createDocumentFragment","_addTile","tileBounds","_tileCoordsToBounds","_keyToBounds","_keyToTileCoords","_tileCoordsToNwSe","nwPoint","sePoint","bp","_initTile","tilePos","_getTilePos","_wrapCoords","_tileReady","_noTilesToLoad","newCoords","gridLayer","TileLayer","subdomains","errorTileUrl","zoomOffset","tms","zoomReverse","detectRetina","referrerPolicy","_onTileRemove","noRedraw","done","_tileOnLoad","_tileOnError","getTileUrl","_getSubdomain","_getZoomForUrl","invertedY","getAttribute","tilePoint","complete","tileLayer","TileLayerWMS","defaultWmsParams","service","request","styles","format","transparent","wmsParams","realRetina","_crs","_wmsVersion","parseFloat","projectionKey","bbox","setParams","tileLayerWMS","WMS","wms","Renderer","_updatePaths","_destroyContainer","_onZoom","zoomend","_onZoomEnd","_onAnimZoom","_updateTransform","currentCenterPoint","_center","topLeftOffset","Canvas","_onViewPreReset","_postponeUpdatePaths","_draw","_onMouseMove","_onClick","_handleMouseOut","_ctx","_redrawRequest","_redrawBounds","_redraw","m","_updateDashArray","order","_order","_drawLast","next","_drawFirst","_requestRedraw","_extendRedrawBounds","dashValue","_dashArray","_clear","clearRect","save","restore","beginPath","clip","_drawing","closePath","_fillStroke","arc","globalAlpha","fillStyle","setLineDash","lineWidth","strokeStyle","clickedLayer","_fireEvent","_handleMouseHover","_hoveredLayer","_mouseHoverThrottled","candidateHoveredLayer","vmlCreate","namespaces","vmlMixin","coordsize","_stroke","_fill","stroked","filled","dashStyle","endcap","joinstyle","_setPath","SVG","_rootGroup","_svgSize","removeAttribute","_getPaneRenderer","_createRenderer","preferCanvas","Rectangle","_boundsToLatLngs","rectangle","BoxZoom","_pane","overlayPane","_resetStateTimeout","_destroy","_onMouseDown","_resetState","_clearDeferredResetState","contextmenu","mouseup","_onMouseUp","_onKeyDown","_box","_finish","boxZoomBounds","doubleClickZoom","DoubleClickZoom","_onDoubleClick","inertia","inertiaDeceleration","inertiaMaxSpeed","worldCopyJump","maxBoundsViscosity","Drag","_onPreDragLimit","_onPreDragWrap","_positions","_times","_offsetLimit","_viscosity","_lastTime","_lastPos","_absPos","_prunePositions","shift","pxCenter","pxWorldCenter","_initialWorldOffset","_worldWidth","_viscousLimit","threshold","limit","worldWidth","halfWidth","newX1","newX2","newX","ease","speedVector","limitedSpeed","limitedSpeedVector","decelerationDuration","keyboardPanDelta","Keyboard","keyCodes","down","up","_setPanDelta","_setZoomDelta","_onFocus","blur","_onBlur","mousedown","_addHooks","_removeHooks","_focused","docEl","scrollTo","panDelta","keys","_panKeys","codes","_zoomKeys","altKey","ctrlKey","metaKey","newLatLng","scrollWheelZoom","wheelDebounceTime","wheelPxPerZoomLevel","ScrollWheelZoom","_onWheelScroll","_delta","debounce","_lastMousePos","_timer","_performZoom","d2","d3","d4","tapHoldDelay","tapHold","tapTolerance","TapHold","_holdTimeout","_cancel","_isTapValid","_cancelClickPrevent","_simulateEvent","cancelClickPrevent","simulatedEvent","MouseEvent","bubbles","cancelable","view","dispatchEvent","touchZoom","bounceAtZoomLimits","TouchZoom","_onTouchStart","_zooming","_centerPoint","_startLatLng","_pinchStartLatLng","_startDist","_startZoom","_onTouchMove","_onTouchEnd","_animRequest","moveFn","Projection","latLng","oldL","noConflict","factory","webpackContext","req","webpackContextResolve","__webpack_require__","o","resolve","module","__webpack_module_cache__","moduleId","cachedModule","__webpack_modules__","definition","enumerable","Symbol","toStringTag","ua","doc","phantomjs","search","msPointerEnabled","msMaxTouchPoints","pointerEnabled","maxTouchPoints","opera3d","DocumentTouch","windowMediaMatches","matchMedia","matches","_orientation","innerWidth","innerHeight","trace","classMixin","cls","_cl","getOwnPropertyNames","mergeData","data_main","data_to_merge","unique_ID","getRandomChar","substr","random","randomID","htmlify","emoji","regx_arr","regx","Emoji","h","loadJS","urls","loader","js","loadCSS","pending","styleSheets","env","getEnv","head","pollCount","createNode","attrs","attr","finish","load","async","unknown","pendingUrls","isCSS","nodes","rel","onreadystatechange","readyState","pollWebKit","pollGecko","hasRules","sheet","cssRules","ex","self","Dom","getByClass","createText","createTextNode","getTranslateString","TRANSLATE_OPEN","TRANSLATE_CLOSE","_vco_pos","offsetLeft","offsetParent","Easings","Ease","KeySpline","A","aA1","aA2","B","C","CalcBezier","aT","GetSlope","aX","aGuessT","currentSlope","GetTForX","easeInSpline","easeInOutExpo","easeOutStrong","easeIn","easeInStrong","easeOutBounce","easeInBack","easeOutBack","bounce","bouncePast","swingTo","swingFrom","elastic","spring","blink","blinks","pulse","pulses","wobble","sinusoidal","flicker","easings","mirror","easeInQuad","easeOutQuad","easeInOutQuad","easeInCubic","easeOutCubic","easeInOutCubic","easeInQuart","easeOutQuart","easeInOutQuart","easeInQuint","easeOutQuint","easeInOutQuint","EN","Language","setLanguage","lang","assign","getLanguage","_vco_events","action","DomMixins","show","hide","animatePosition","use_percent","ani","easing","animator","VCO","Animate","onLoaded","elem","map_mask","_mini_map","_markers","zoom_min_max","_line","_line_active","current_marker","bounds_array","_tile_layer","_tile_layer_mini","_image_layer","uniqueid","slides","map_type","map_as_image","map_mini","map_background_color","map_subdomains","map_access_token","zoomify","skinny_size","less_bounce","path_gfx","start_at_slide","map_popup","zoom_distance","calculate_zoom","line_follows_path","line_color","line_color_inactive","line_weight","line_opacity","line_dash","line_join","show_lines","show_history_line","map_center_offset","timer","touch_scale","scroll","start_time","_createMap","_initData","updateDisplay","_updateDisplay","goTo","change","previous_marker","_resetMarkersActive","_markerOverview","_onMarkerChange","location","_viewTo","_calculateZoomChange","_getMapCenter","real_marker","lines_array","line_num","_replaceLines","loc","_panTo","zoomTo","_zoomTo","viewTo","m1","m2","__getBoundsZoom","markerOverview","calculateMarkerZooms","_calculateMarkerZooms","createMiniMap","_createMiniMap","setMapOffset","calculateMinMaxZoom","updateMinMaxZoom","initialMapLocation","_initialMapLocation","createMarkers","_createMarkers","createMarker","_createMarker","_destroyMarker","_removeMarker","_addToLine","_createLines","_onMarkerClick","_addMarker","marker_number","_createLine","line","_addLineToMap","_updateMapDisplay","_refreshMap","_getMapLocation","_getMapZoom","_getBoundsZoom","_onMapLoaded","_onWheel","time_left","_scollZoom","current_zoom","timer_done","_scollZoomDone","destination","correct_for_center","defaultZoomifyOptions","continuousWorld","ZoomifyTileLayer","super","imageSize","_imageSize","_gridSize","_getGridSize","reverse","mapSize","_getBestFitZoom","getZoomifyBounds","topleft","bottomright","getCenterZoom","_tileShouldBeLoaded","gridSize","_getTile","_loadTile","_tileContainer","_getTileGroup","BASE_OPTIONS","toggleDisplay","zoomLevelOffset","zoomLevelFixed","autoToggleDisplay","show_view","aimingRectOptions","clickable","shadowRectOptions","MiniMapControl","_options","hideText","showText","_layer","_mainMap","_miniMap","_mainMapMoving","_miniMapMoving","_userToggledDisplay","_minimized","_addToggleButton","_aimingRect","_shadowRect","_locationCircle","_onMainMapMoved","_onMainMapMoving","minimize","hide_completely","_minimize","_restore","_decideZoom","_setDisplay","_decideMinimized","_onMiniMapMoved","_toggleDisplayButton","_toggleDisplayButtonClicked","border","_onMiniMapMoveStarted","lastAimingRect","_lastAimingRectPosition","_onMiniMapMoving","fromMaintoMini","toRet","currentDiff","proposedZoom","_lastMiniMapZoom","miniMapControl","MiniMap","minimap","MapMarker","content_container","_custom_icon","_custom_icon_url","_custom_image_icon","media_icon_class","_addTo","_removeFrom","createPopup","_createPopup","_active","_location","LeafletMapMarker","use_custom_marker","use_custom_markers","_customIconAnchor","_createImage","_createDefaultIcon","headline","media","mediatype","_setIcon","MAKE_PROVIDER","PROVIDERS","setupFlavors","base","flavors","provider","getProvider","flavor","StamenTileLayer","scheme","Leaflet","_onMapMoveEnd","_createTileLayer","_onTilesLoaded","_getAllMarkersBounds","backgroundColor","_createBackgroundMap","tiles","target_tile","end","t_array","_tilelayer","_attribution_knightlab","_map_type_arr","mapbox_url","style_url","_onMapZoomed","_onMapZoom","_center_zoom","_getMapCenterOffset","the_bounds","markers_array","prev_marker","next_marker","marker_location","prev_marker_zoom","next_marker_zoom","calculated_zoom","target_point","_origin","_padding","_lat","_lng","_getZoomifyZoom","true_hide","zoom_array","best_zoom","smallest_zoom","getTiles","drag_elem","move_elem","constraint","momentum_multiplier","dragevent","mousedrag","touchdrag","sliding","pagex","pagey","new_pos","new_pos_parent","stopMomentum","updateConstraint","targetTouches","pageX","pageY","getTime","_onDragMove","leave","_momentum","pos_adjust","pos_change","swipe","_animateMomentum","_getEvent","newType","_checkMouse","caller","callee","Event","MenuBar","parent_elem","button_overview","button_backtostart","button_collapse_toggle","arrow","coverbar","grip","menubar_default_y","setSticky","setColor","inverted","_onButtonOverview","_onButtonBackToStart","_onButtonCollapseMap","buttons","collapse_toggle","uncollapse_toggle","overview","map_overview","backtostart","layout","storymapAnimate","perf","performance","perfNow","webkitNow","msNow","mozNow","fixTs","thousand","rgbOhex","relVal","numUnit","rotate","skew","unitless","lineHeight","property","camelize","computed","val","e1","e2","webkitRequestAnimationFrame","mozRequestAnimationFrame","msRequestAnimationFrame","oRequestAnimationFrame","render","count","die","rest","has","parseTransform","values","by","skewx","skewy","translatex","translatey","formatTransform","toHex","g","fun","nativeTween","tween","morpheus","diff","jump","bezier","getTweenVal","units","begin","charAt","nextColor","elements","originalLeft","originalTop","els","bez","xy","unshift","unit","SlideNav","add_to_container","description","animator_position","updatePosition","start_value","return_to_default","prop_to_set","_onUpdatePositionComplete","_start_value","_onMouseClick","date","Message","message_container","loading_icon","message_class","message_icon_class","updateMessage","_updateMessage","messages","Media","content_item","content_link","caption","credit","player","load_timer","media_id","_state","show_meta","media_loaded","link_target","api_key_flickr","credit_height","caption_height","loadMedia","_loadMedia","_media","loadingMessage","_","media_name","updateMediaDisplay","_updateMediaDisplay","stopMedia","_stopMedia","loadErrorDisplay","media_type","showMeta","onMediaLoaded","Image","YouTube","url_vars","youtube_loaded","string","hash","hashes","vars","getUrlVars","hd","createMedia","getPlayerState","YT","PlayerState","PLAYING","pauseVideo","vidstart","vid_start_minutes","vid_start_seconds","createPlayer","Player","playerVars","enablejsapi","autohide","showinfo","theme","fs","videoId","onReady","onPlayerReady","onStateChange","ENDED","seekTo","Blockquote","Wikipedia","api_url","api_language","callbackPrefix","callbackName","callbackScript","wiki","query","entry","extract","paragraphs","text_array","getObjectAttributeByIndex","pages","wikipedia","SoundCloud","fetch","then","soundCloudCreated","widget","SC","Widget","pause","Vimeo","frameBorder","contentWindow","postMessage","JSON","stringify","DailyMotion","Vine","Twitter","user_id","tweetuser","tweet_status_url","tweet_status_date","tweet","tweet_text","tweet_status_temp","author_url","author_name","Flickr","establishMediaID","stat","best_size","sizes","GoogleDoc","Slider","IFrame","iframe","Website","Video","MediaType","media_types","match_str","Text","start_btn","setData","headlineHeight","addDateText","headline_class","text_content","created_time","moment","fromNow","pattern","date_parts","date_array","months","year","getFullYear","month","getMonth","day","getDate","convertUnixTime","Slide","title_slide","scroll_container","background","call_to_action","_mediaclass","_text","color_value","slide_padding_lr","slider_container","setActive","is_active","getBackground","scrollToTop","addCallToAction","_onCallToAction","backgroundImage","text_background","pad_left","pad_right","new_width","paddingLeft","paddingRight","Swipable","swipe_detect","StorySlider","slider_container_mask","slider_item_container","_nav","previous","back","slide_spacing","_slides","_swipable","preloadTimer","_message","current_slide","current_bg_color","default_bg_color","slide_default_fade","animator_background","_onLoaded","_introInterface","createSlide","_createSlide","createSlides","_createSlides","slide","_addSlide","_destroySlide","_removeSlide","_onSlideAdded","_onBackgroundChange","goToId","fast","displayupdate","_n","String","findArrayNumberByUniqueID","changeBackground","_onSlideChange","showNav","getNavInfo","preloadSlides","nav_obj","bg","bg_color_rgb","do_animation","bg_color","bg_percent_start","bg_alpha_end","bg_css","hex","hexToRgb","fadeInBackground","nav_pos","_layout","_str","call_to_action_text","swipe_to_navigate","_onNavigation","_onMessageClick","_onSwipeNoDirection","slide_background","_onSlideRemoved","_fireMouseEvent","StoryMap","callbacks","ready","storyslider","menubar","_storyslider","_menubar","script_path","SCRIPT_PATH","base_class","map_size_sticky","menubar_height","relative_date","map_height","storyslider_height","language","animator_map","animator_storyslider","response","storymap","_initOptions","updateData","old_type","_loadLanguage","base_url","url1","url2","url3","urljoin","_onDataLoaded","_onStorySliderLoaded","_onTitle","_onMenuBarCollapse","_onBackToStart","_onOverview","_onColorChange","_onMapChange","display_class","StoryMapClass","scripts","lastIndexOf","msg","Load","getJSON","httpRequest","XMLHttpRequest","DONE","status","parse","responseText","alert","open","send","lightboxDiv"],"sourceRoot":""}
\ No newline at end of file
+{"version":3,"file":"storymap.js","mappings":"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AAe,GAAG,KAAe,GAAG,KAAe,GAAG,KAAe,GAAK,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,IAAS,IAAI,KAAe,IAAI,KAAe,IAAI,IAAS,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAM,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAM,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,IAAS,IAAI,KAAe,IAAI,IAAS,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAM,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,MAAqB,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAM,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAM,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,OAA2B,IAAI,OAA2B,IAAI,OAA2B,IAAI,OAA2B,IAAI,OAA2B,IAAI,OAA2B,IAAI,OAA2B,IAAI,OAA2B,IAAI,OAA2B,IAAI,OAA2B,IAAI,KAAU,IAAI,KAAU,IAAI,KAAU,IAAI,KAAU,IAAI,KAAU,IAAI,KAAU,IAAI,KAAU,IAAI,KAAU,IAAI,KAAU,IAAI,KAAU,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,GAAe,IAAI,IAAS,IAAI,IAAS,IAAI,IAAS,IAAI,IAAS,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,MAAqB,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,MAAqB,IAAI,KAAe,IAAM,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,MAAqB,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,IAAS,IAAI,IAAS,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,IAAS,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,IAAS,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,IAAS,IAAI,IAAS,IAAI,IAAS,IAAI,IAAS,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,IAAS,IAAI,IAAS,IAAI,IAAS,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAM,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,IAAS,IAAI,IAAS,IAAI,IAAS,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,IAAS,IAAI,IAAS,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAC5hf,IAAS,EAAE,IAAS,IAAI,IAAS,IAAI,IAAS,IAAI,IAAS,IAAI,IAAS,IAAI,IAAS,IAAI,IAAS,IAAI,IAAS,IAAI,IAAS,IAAI,IAAS,IAAI,IAAS,IAAI,IAAS,IAAI,IAAS,IAAI,IAAS,IAAI,IAAS,IAAI,IAAS,IAAI,IAAS,IAAI,IAAS,IAAI,KAAe,IAAI,IAAS,IAAI,IAAS,IAAI,IAAS,IAAI,IAAS,IAAI,IAAS,IAAI,IAAS,IAAI,IAAS,IAAI,IAAS,IAAI,IAAS,IAAI,IAAS,IAAI,IAAS,IAAI,IAAS,IAAI,IAAS,IAAI,IAAS,IAAI,IAAS,IAAI,IAAS,IAAI,IAAS,IAAI,IAAS,IAAI,IAAS,IAAI,IAAS,IAAI,IAAS,IAAI,IAAS,IAAI,IAAS,IAAI,IAAS,IAAI,IAAS,IAAI,IAAS,IAAI,IAAS,IAAI,EAAS,IAAI,IAAS,IAAI,IAAS,IAAI,KAAe,IAAI,KAAe,IAAI,KAAe,IAAI,IAAS,IAAI,IAAS,IAAI,IAAS,IAAI,IAAS,IAAI,IAAS,IAAI,IAAS,IAAI,IAAS,IAAI,IAAS,IAAI,IAAS,IAAI,IAAS,IAAI,IAAS,IAAI,IAAS,IAAI,IAAS,IAAI,IAAS,IAAI,IAAS,IAAI,IAAS,IAAI,IAAS,IAAI,IAAS,IAAI,IAAS,IAAI,IAAS,IAAI,IAAS,IAAI,IAAS,IAAI,IAAS,IAAI,IAAS,IAAI,IAAS,IAAI,IAAS,IAAI,IAAS,IAAI,IAAS,IAAI,IAAS,IAAI,IAAS,IAAI,IAAS,IAAI,IAAS,IAAI,IAAS,IAAI,IAAS,IAAI,IAAS,IAAI,IAAS,IAAI,IAAS,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","sources":["webpack://KLStoryMap/./node_modules/leaflet/dist/leaflet-src.js","webpack://KLStoryMap/./src/js/language/locale/ sync ^\\.\\/.*\\.json$","webpack://KLStoryMap/webpack/bootstrap","webpack://KLStoryMap/webpack/runtime/define property getters","webpack://KLStoryMap/webpack/runtime/hasOwnProperty shorthand","webpack://KLStoryMap/webpack/runtime/make namespace object","webpack://KLStoryMap/./src/js/core/Browser.js","webpack://KLStoryMap/./src/js/core/Util.js","webpack://KLStoryMap/./src/js/library/Emoji.js","webpack://KLStoryMap/./src/js/core/Load.js","webpack://KLStoryMap/./src/js/dom/Dom.js","webpack://KLStoryMap/./src/js/animation/Ease.js","webpack://KLStoryMap/./src/js/language/Language.js","webpack://KLStoryMap/./src/js/core/Events.js","webpack://KLStoryMap/./src/js/dom/DomMixins.js","webpack://KLStoryMap/./src/js/map/Map.js","webpack://KLStoryMap/./src/js/map/leaflet/extensions/Leaflet.TileLayer.Zoomify.js","webpack://KLStoryMap/./src/js/map/leaflet/extensions/Leaflet.MiniMap.js","webpack://KLStoryMap/./src/js/map/MapMarker.js","webpack://KLStoryMap/./src/js/map/leaflet/MapMarker.Leaflet.js","webpack://KLStoryMap/./src/js/map/tile/TileLayer.Stamen.js","webpack://KLStoryMap/./src/js/map/leaflet/Map.Leaflet.js","webpack://KLStoryMap/./src/js/ui/Draggable.js","webpack://KLStoryMap/./src/js/dom/DomEvent.js","webpack://KLStoryMap/./src/js/ui/MenuBar.js","webpack://KLStoryMap/./src/js/animation/Animate.js","webpack://KLStoryMap/./src/js/slider/SlideNav.js","webpack://KLStoryMap/./src/js/ui/Message.js","webpack://KLStoryMap/./src/js/media/Media.js","webpack://KLStoryMap/./src/js/media/types/Image.js","webpack://KLStoryMap/./src/js/media/types/YouTube.js","webpack://KLStoryMap/./src/js/media/types/Blockquote.js","webpack://KLStoryMap/./src/js/media/types/Wikipedia.js","webpack://KLStoryMap/./src/js/media/types/SoundCloud.js","webpack://KLStoryMap/./src/js/media/types/Vimeo.js","webpack://KLStoryMap/./src/js/media/types/DailyMotion.js","webpack://KLStoryMap/./src/js/media/types/Vine.js","webpack://KLStoryMap/./src/js/media/types/Twitter.js","webpack://KLStoryMap/./src/js/media/types/Flickr.js","webpack://KLStoryMap/./src/js/media/types/GoogleDoc.js","webpack://KLStoryMap/./src/js/media/types/Slider.js","webpack://KLStoryMap/./src/js/media/types/IFrame.js","webpack://KLStoryMap/./src/js/media/types/Website.js","webpack://KLStoryMap/./src/js/media/types/Video.js","webpack://KLStoryMap/./src/js/media/MediaType.js","webpack://KLStoryMap/./src/js/media/types/Text.js","webpack://KLStoryMap/./src/js/slider/Slide.js","webpack://KLStoryMap/./src/js/ui/Swipable.js","webpack://KLStoryMap/./src/js/slider/StorySlider.js","webpack://KLStoryMap/./src/js/storymap/StoryMap.js","webpack://KLStoryMap/./src/js/index.js"],"sourcesContent":["/*\n Leaflet, a JavaScript library for mobile-friendly interactive maps. http://leafletjs.com\n (c) 2010-2013, Vladimir Agafonkin\n (c) 2010-2011, CloudMade\n*/\n(function (window, document, undefined) {\r\nvar oldL = window.L,\r\n L = {};\r\n\r\nL.version = '0.7.7';\r\n\r\n// define Leaflet for Node module pattern loaders, including Browserify\r\nif (typeof module === 'object' && typeof module.exports === 'object') {\r\n\tmodule.exports = L;\r\n\r\n// define Leaflet as an AMD module\r\n} else if (typeof define === 'function' && define.amd) {\r\n\tdefine(L);\r\n}\r\n\r\n// define Leaflet as a global L variable, saving the original L to restore later if needed\r\n\r\nL.noConflict = function () {\r\n\twindow.L = oldL;\r\n\treturn this;\r\n};\r\n\r\nwindow.L = L;\r\n\n\n/*\r\n * L.Util contains various utility functions used throughout Leaflet code.\r\n */\r\n\r\nL.Util = {\r\n\textend: function (dest) { // (Object[, Object, ...]) ->\r\n\t\tvar sources = Array.prototype.slice.call(arguments, 1),\r\n\t\t i, j, len, src;\r\n\r\n\t\tfor (j = 0, len = sources.length; j < len; j++) {\r\n\t\t\tsrc = sources[j] || {};\r\n\t\t\tfor (i in src) {\r\n\t\t\t\tif (src.hasOwnProperty(i)) {\r\n\t\t\t\t\tdest[i] = src[i];\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn dest;\r\n\t},\r\n\r\n\tbind: function (fn, obj) { // (Function, Object) -> Function\r\n\t\tvar args = arguments.length > 2 ? Array.prototype.slice.call(arguments, 2) : null;\r\n\t\treturn function () {\r\n\t\t\treturn fn.apply(obj, args || arguments);\r\n\t\t};\r\n\t},\r\n\r\n\tstamp: (function () {\r\n\t\tvar lastId = 0,\r\n\t\t key = '_leaflet_id';\r\n\t\treturn function (obj) {\r\n\t\t\tobj[key] = obj[key] || ++lastId;\r\n\t\t\treturn obj[key];\r\n\t\t};\r\n\t}()),\r\n\r\n\tinvokeEach: function (obj, method, context) {\r\n\t\tvar i, args;\r\n\r\n\t\tif (typeof obj === 'object') {\r\n\t\t\targs = Array.prototype.slice.call(arguments, 3);\r\n\r\n\t\t\tfor (i in obj) {\r\n\t\t\t\tmethod.apply(context, [i, obj[i]].concat(args));\r\n\t\t\t}\r\n\t\t\treturn true;\r\n\t\t}\r\n\r\n\t\treturn false;\r\n\t},\r\n\r\n\tlimitExecByInterval: function (fn, time, context) {\r\n\t\tvar lock, execOnUnlock;\r\n\r\n\t\treturn function wrapperFn() {\r\n\t\t\tvar args = arguments;\r\n\r\n\t\t\tif (lock) {\r\n\t\t\t\texecOnUnlock = true;\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\tlock = true;\r\n\r\n\t\t\tsetTimeout(function () {\r\n\t\t\t\tlock = false;\r\n\r\n\t\t\t\tif (execOnUnlock) {\r\n\t\t\t\t\twrapperFn.apply(context, args);\r\n\t\t\t\t\texecOnUnlock = false;\r\n\t\t\t\t}\r\n\t\t\t}, time);\r\n\r\n\t\t\tfn.apply(context, args);\r\n\t\t};\r\n\t},\r\n\r\n\tfalseFn: function () {\r\n\t\treturn false;\r\n\t},\r\n\r\n\tformatNum: function (num, digits) {\r\n\t\tvar pow = Math.pow(10, digits || 5);\r\n\t\treturn Math.round(num * pow) / pow;\r\n\t},\r\n\r\n\ttrim: function (str) {\r\n\t\treturn str.trim ? str.trim() : str.replace(/^\\s+|\\s+$/g, '');\r\n\t},\r\n\r\n\tsplitWords: function (str) {\r\n\t\treturn L.Util.trim(str).split(/\\s+/);\r\n\t},\r\n\r\n\tsetOptions: function (obj, options) {\r\n\t\tobj.options = L.extend({}, obj.options, options);\r\n\t\treturn obj.options;\r\n\t},\r\n\r\n\tgetParamString: function (obj, existingUrl, uppercase) {\r\n\t\tvar params = [];\r\n\t\tfor (var i in obj) {\r\n\t\t\tparams.push(encodeURIComponent(uppercase ? i.toUpperCase() : i) + '=' + encodeURIComponent(obj[i]));\r\n\t\t}\r\n\t\treturn ((!existingUrl || existingUrl.indexOf('?') === -1) ? '?' : '&') + params.join('&');\r\n\t},\r\n\ttemplate: function (str, data) {\r\n\t\treturn str.replace(/\\{ *([\\w_]+) *\\}/g, function (str, key) {\r\n\t\t\tvar value = data[key];\r\n\t\t\tif (value === undefined) {\r\n\t\t\t\tthrow new Error('No value provided for variable ' + str);\r\n\t\t\t} else if (typeof value === 'function') {\r\n\t\t\t\tvalue = value(data);\r\n\t\t\t}\r\n\t\t\treturn value;\r\n\t\t});\r\n\t},\r\n\r\n\tisArray: Array.isArray || function (obj) {\r\n\t\treturn (Object.prototype.toString.call(obj) === '[object Array]');\r\n\t},\r\n\r\n\temptyImageUrl: 'data:image/gif;base64,R0lGODlhAQABAAD/ACwAAAAAAQABAAACADs='\r\n};\r\n\r\n(function () {\r\n\r\n\t// inspired by http://paulirish.com/2011/requestanimationframe-for-smart-animating/\r\n\r\n\tfunction getPrefixed(name) {\r\n\t\tvar i, fn,\r\n\t\t prefixes = ['webkit', 'moz', 'o', 'ms'];\r\n\r\n\t\tfor (i = 0; i < prefixes.length && !fn; i++) {\r\n\t\t\tfn = window[prefixes[i] + name];\r\n\t\t}\r\n\r\n\t\treturn fn;\r\n\t}\r\n\r\n\tvar lastTime = 0;\r\n\r\n\tfunction timeoutDefer(fn) {\r\n\t\tvar time = +new Date(),\r\n\t\t timeToCall = Math.max(0, 16 - (time - lastTime));\r\n\r\n\t\tlastTime = time + timeToCall;\r\n\t\treturn window.setTimeout(fn, timeToCall);\r\n\t}\r\n\r\n\tvar requestFn = window.requestAnimationFrame ||\r\n\t getPrefixed('RequestAnimationFrame') || timeoutDefer;\r\n\r\n\tvar cancelFn = window.cancelAnimationFrame ||\r\n\t getPrefixed('CancelAnimationFrame') ||\r\n\t getPrefixed('CancelRequestAnimationFrame') ||\r\n\t function (id) { window.clearTimeout(id); };\r\n\r\n\r\n\tL.Util.requestAnimFrame = function (fn, context, immediate, element) {\r\n\t\tfn = L.bind(fn, context);\r\n\r\n\t\tif (immediate && requestFn === timeoutDefer) {\r\n\t\t\tfn();\r\n\t\t} else {\r\n\t\t\treturn requestFn.call(window, fn, element);\r\n\t\t}\r\n\t};\r\n\r\n\tL.Util.cancelAnimFrame = function (id) {\r\n\t\tif (id) {\r\n\t\t\tcancelFn.call(window, id);\r\n\t\t}\r\n\t};\r\n\r\n}());\r\n\r\n// shortcuts for most used utility functions\r\nL.extend = L.Util.extend;\r\nL.bind = L.Util.bind;\r\nL.stamp = L.Util.stamp;\r\nL.setOptions = L.Util.setOptions;\r\n\n\n/*\r\n * L.Class powers the OOP facilities of the library.\r\n * Thanks to John Resig and Dean Edwards for inspiration!\r\n */\r\n\r\nL.Class = function () {};\r\n\r\nL.Class.extend = function (props) {\r\n\r\n\t// extended class with the new prototype\r\n\tvar NewClass = function () {\r\n\r\n\t\t// call the constructor\r\n\t\tif (this.initialize) {\r\n\t\t\tthis.initialize.apply(this, arguments);\r\n\t\t}\r\n\r\n\t\t// call all constructor hooks\r\n\t\tif (this._initHooks) {\r\n\t\t\tthis.callInitHooks();\r\n\t\t}\r\n\t};\r\n\r\n\t// instantiate class without calling constructor\r\n\tvar F = function () {};\r\n\tF.prototype = this.prototype;\r\n\r\n\tvar proto = new F();\r\n\tproto.constructor = NewClass;\r\n\r\n\tNewClass.prototype = proto;\r\n\r\n\t//inherit parent's statics\r\n\tfor (var i in this) {\r\n\t\tif (this.hasOwnProperty(i) && i !== 'prototype') {\r\n\t\t\tNewClass[i] = this[i];\r\n\t\t}\r\n\t}\r\n\r\n\t// mix static properties into the class\r\n\tif (props.statics) {\r\n\t\tL.extend(NewClass, props.statics);\r\n\t\tdelete props.statics;\r\n\t}\r\n\r\n\t// mix includes into the prototype\r\n\tif (props.includes) {\r\n\t\tL.Util.extend.apply(null, [proto].concat(props.includes));\r\n\t\tdelete props.includes;\r\n\t}\r\n\r\n\t// merge options\r\n\tif (props.options && proto.options) {\r\n\t\tprops.options = L.extend({}, proto.options, props.options);\r\n\t}\r\n\r\n\t// mix given properties into the prototype\r\n\tL.extend(proto, props);\r\n\r\n\tproto._initHooks = [];\r\n\r\n\tvar parent = this;\r\n\t// jshint camelcase: false\r\n\tNewClass.__super__ = parent.prototype;\r\n\r\n\t// add method for calling all hooks\r\n\tproto.callInitHooks = function () {\r\n\r\n\t\tif (this._initHooksCalled) { return; }\r\n\r\n\t\tif (parent.prototype.callInitHooks) {\r\n\t\t\tparent.prototype.callInitHooks.call(this);\r\n\t\t}\r\n\r\n\t\tthis._initHooksCalled = true;\r\n\r\n\t\tfor (var i = 0, len = proto._initHooks.length; i < len; i++) {\r\n\t\t\tproto._initHooks[i].call(this);\r\n\t\t}\r\n\t};\r\n\r\n\treturn NewClass;\r\n};\r\n\r\n\r\n// method for adding properties to prototype\r\nL.Class.include = function (props) {\r\n\tL.extend(this.prototype, props);\r\n};\r\n\r\n// merge new default options to the Class\r\nL.Class.mergeOptions = function (options) {\r\n\tL.extend(this.prototype.options, options);\r\n};\r\n\r\n// add a constructor hook\r\nL.Class.addInitHook = function (fn) { // (Function) || (String, args...)\r\n\tvar args = Array.prototype.slice.call(arguments, 1);\r\n\r\n\tvar init = typeof fn === 'function' ? fn : function () {\r\n\t\tthis[fn].apply(this, args);\r\n\t};\r\n\r\n\tthis.prototype._initHooks = this.prototype._initHooks || [];\r\n\tthis.prototype._initHooks.push(init);\r\n};\r\n\n\n/*\r\n * L.Mixin.Events is used to add custom events functionality to Leaflet classes.\r\n */\r\n\r\nvar eventsKey = '_leaflet_events';\r\n\r\nL.Mixin = {};\r\n\r\nL.Mixin.Events = {\r\n\r\n\taddEventListener: function (types, fn, context) { // (String, Function[, Object]) or (Object[, Object])\r\n\r\n\t\t// types can be a map of types/handlers\r\n\t\tif (L.Util.invokeEach(types, this.addEventListener, this, fn, context)) { return this; }\r\n\r\n\t\tvar events = this[eventsKey] = this[eventsKey] || {},\r\n\t\t contextId = context && context !== this && L.stamp(context),\r\n\t\t i, len, event, type, indexKey, indexLenKey, typeIndex;\r\n\r\n\t\t// types can be a string of space-separated words\r\n\t\ttypes = L.Util.splitWords(types);\r\n\r\n\t\tfor (i = 0, len = types.length; i < len; i++) {\r\n\t\t\tevent = {\r\n\t\t\t\taction: fn,\r\n\t\t\t\tcontext: context || this\r\n\t\t\t};\r\n\t\t\ttype = types[i];\r\n\r\n\t\t\tif (contextId) {\r\n\t\t\t\t// store listeners of a particular context in a separate hash (if it has an id)\r\n\t\t\t\t// gives a major performance boost when removing thousands of map layers\r\n\r\n\t\t\t\tindexKey = type + '_idx';\r\n\t\t\t\tindexLenKey = indexKey + '_len';\r\n\r\n\t\t\t\ttypeIndex = events[indexKey] = events[indexKey] || {};\r\n\r\n\t\t\t\tif (!typeIndex[contextId]) {\r\n\t\t\t\t\ttypeIndex[contextId] = [];\r\n\r\n\t\t\t\t\t// keep track of the number of keys in the index to quickly check if it's empty\r\n\t\t\t\t\tevents[indexLenKey] = (events[indexLenKey] || 0) + 1;\r\n\t\t\t\t}\r\n\r\n\t\t\t\ttypeIndex[contextId].push(event);\r\n\r\n\r\n\t\t\t} else {\r\n\t\t\t\tevents[type] = events[type] || [];\r\n\t\t\t\tevents[type].push(event);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn this;\r\n\t},\r\n\r\n\thasEventListeners: function (type) { // (String) -> Boolean\r\n\t\tvar events = this[eventsKey];\r\n\t\treturn !!events && ((type in events && events[type].length > 0) ||\r\n\t\t (type + '_idx' in events && events[type + '_idx_len'] > 0));\r\n\t},\r\n\r\n\tremoveEventListener: function (types, fn, context) { // ([String, Function, Object]) or (Object[, Object])\r\n\r\n\t\tif (!this[eventsKey]) {\r\n\t\t\treturn this;\r\n\t\t}\r\n\r\n\t\tif (!types) {\r\n\t\t\treturn this.clearAllEventListeners();\r\n\t\t}\r\n\r\n\t\tif (L.Util.invokeEach(types, this.removeEventListener, this, fn, context)) { return this; }\r\n\r\n\t\tvar events = this[eventsKey],\r\n\t\t contextId = context && context !== this && L.stamp(context),\r\n\t\t i, len, type, listeners, j, indexKey, indexLenKey, typeIndex, removed;\r\n\r\n\t\ttypes = L.Util.splitWords(types);\r\n\r\n\t\tfor (i = 0, len = types.length; i < len; i++) {\r\n\t\t\ttype = types[i];\r\n\t\t\tindexKey = type + '_idx';\r\n\t\t\tindexLenKey = indexKey + '_len';\r\n\r\n\t\t\ttypeIndex = events[indexKey];\r\n\r\n\t\t\tif (!fn) {\r\n\t\t\t\t// clear all listeners for a type if function isn't specified\r\n\t\t\t\tdelete events[type];\r\n\t\t\t\tdelete events[indexKey];\r\n\t\t\t\tdelete events[indexLenKey];\r\n\r\n\t\t\t} else {\r\n\t\t\t\tlisteners = contextId && typeIndex ? typeIndex[contextId] : events[type];\r\n\r\n\t\t\t\tif (listeners) {\r\n\t\t\t\t\tfor (j = listeners.length - 1; j >= 0; j--) {\r\n\t\t\t\t\t\tif ((listeners[j].action === fn) && (!context || (listeners[j].context === context))) {\r\n\t\t\t\t\t\t\tremoved = listeners.splice(j, 1);\r\n\t\t\t\t\t\t\t// set the old action to a no-op, because it is possible\r\n\t\t\t\t\t\t\t// that the listener is being iterated over as part of a dispatch\r\n\t\t\t\t\t\t\tremoved[0].action = L.Util.falseFn;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tif (context && typeIndex && (listeners.length === 0)) {\r\n\t\t\t\t\t\tdelete typeIndex[contextId];\r\n\t\t\t\t\t\tevents[indexLenKey]--;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn this;\r\n\t},\r\n\r\n\tclearAllEventListeners: function () {\r\n\t\tdelete this[eventsKey];\r\n\t\treturn this;\r\n\t},\r\n\r\n\tfireEvent: function (type, data) { // (String[, Object])\r\n\t\tif (!this.hasEventListeners(type)) {\r\n\t\t\treturn this;\r\n\t\t}\r\n\r\n\t\tvar event = L.Util.extend({}, data, { type: type, target: this });\r\n\r\n\t\tvar events = this[eventsKey],\r\n\t\t listeners, i, len, typeIndex, contextId;\r\n\r\n\t\tif (events[type]) {\r\n\t\t\t// make sure adding/removing listeners inside other listeners won't cause infinite loop\r\n\t\t\tlisteners = events[type].slice();\r\n\r\n\t\t\tfor (i = 0, len = listeners.length; i < len; i++) {\r\n\t\t\t\tlisteners[i].action.call(listeners[i].context, event);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t// fire event for the context-indexed listeners as well\r\n\t\ttypeIndex = events[type + '_idx'];\r\n\r\n\t\tfor (contextId in typeIndex) {\r\n\t\t\tlisteners = typeIndex[contextId].slice();\r\n\r\n\t\t\tif (listeners) {\r\n\t\t\t\tfor (i = 0, len = listeners.length; i < len; i++) {\r\n\t\t\t\t\tlisteners[i].action.call(listeners[i].context, event);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn this;\r\n\t},\r\n\r\n\taddOneTimeEventListener: function (types, fn, context) {\r\n\r\n\t\tif (L.Util.invokeEach(types, this.addOneTimeEventListener, this, fn, context)) { return this; }\r\n\r\n\t\tvar handler = L.bind(function () {\r\n\t\t\tthis\r\n\t\t\t .removeEventListener(types, fn, context)\r\n\t\t\t .removeEventListener(types, handler, context);\r\n\t\t}, this);\r\n\r\n\t\treturn this\r\n\t\t .addEventListener(types, fn, context)\r\n\t\t .addEventListener(types, handler, context);\r\n\t}\r\n};\r\n\r\nL.Mixin.Events.on = L.Mixin.Events.addEventListener;\r\nL.Mixin.Events.off = L.Mixin.Events.removeEventListener;\r\nL.Mixin.Events.once = L.Mixin.Events.addOneTimeEventListener;\r\nL.Mixin.Events.fire = L.Mixin.Events.fireEvent;\r\n\n\n/*\r\n * L.Browser handles different browser and feature detections for internal Leaflet use.\r\n */\r\n\r\n(function () {\r\n\r\n\tvar ie = 'ActiveXObject' in window,\r\n\t\tielt9 = ie && !document.addEventListener,\r\n\r\n\t // terrible browser detection to work around Safari / iOS / Android browser bugs\r\n\t ua = navigator.userAgent.toLowerCase(),\r\n\t webkit = ua.indexOf('webkit') !== -1,\r\n\t chrome = ua.indexOf('chrome') !== -1,\r\n\t phantomjs = ua.indexOf('phantom') !== -1,\r\n\t android = ua.indexOf('android') !== -1,\r\n\t android23 = ua.search('android [23]') !== -1,\r\n\t\tgecko = ua.indexOf('gecko') !== -1,\r\n\r\n\t mobile = typeof orientation !== undefined + '',\r\n\t msPointer = !window.PointerEvent && window.MSPointerEvent,\r\n\t\tpointer = (window.PointerEvent && window.navigator.pointerEnabled) ||\r\n\t\t\t\t msPointer,\r\n\t retina = ('devicePixelRatio' in window && window.devicePixelRatio > 1) ||\r\n\t ('matchMedia' in window && window.matchMedia('(min-resolution:144dpi)') &&\r\n\t window.matchMedia('(min-resolution:144dpi)').matches),\r\n\r\n\t doc = document.documentElement,\r\n\t ie3d = ie && ('transition' in doc.style),\r\n\t webkit3d = ('WebKitCSSMatrix' in window) && ('m11' in new window.WebKitCSSMatrix()) && !android23,\r\n\t gecko3d = 'MozPerspective' in doc.style,\r\n\t opera3d = 'OTransition' in doc.style,\r\n\t any3d = !window.L_DISABLE_3D && (ie3d || webkit3d || gecko3d || opera3d) && !phantomjs;\r\n\r\n\tvar touch = !window.L_NO_TOUCH && !phantomjs && (pointer || 'ontouchstart' in window ||\r\n\t\t(window.DocumentTouch && document instanceof window.DocumentTouch));\r\n\r\n\tL.Browser = {\r\n\t\tie: ie,\r\n\t\tielt9: ielt9,\r\n\t\twebkit: webkit,\r\n\t\tgecko: gecko && !webkit && !window.opera && !ie,\r\n\r\n\t\tandroid: android,\r\n\t\tandroid23: android23,\r\n\r\n\t\tchrome: chrome,\r\n\r\n\t\tie3d: ie3d,\r\n\t\twebkit3d: webkit3d,\r\n\t\tgecko3d: gecko3d,\r\n\t\topera3d: opera3d,\r\n\t\tany3d: any3d,\r\n\r\n\t\tmobile: mobile,\r\n\t\tmobileWebkit: mobile && webkit,\r\n\t\tmobileWebkit3d: mobile && webkit3d,\r\n\t\tmobileOpera: mobile && window.opera,\r\n\r\n\t\ttouch: touch,\r\n\t\tmsPointer: msPointer,\r\n\t\tpointer: pointer,\r\n\r\n\t\tretina: retina\r\n\t};\r\n\r\n}());\r\n\n\n/*\r\n * L.Point represents a point with x and y coordinates.\r\n */\r\n\r\nL.Point = function (/*Number*/ x, /*Number*/ y, /*Boolean*/ round) {\r\n\tthis.x = (round ? Math.round(x) : x);\r\n\tthis.y = (round ? Math.round(y) : y);\r\n};\r\n\r\nL.Point.prototype = {\r\n\r\n\tclone: function () {\r\n\t\treturn new L.Point(this.x, this.y);\r\n\t},\r\n\r\n\t// non-destructive, returns a new point\r\n\tadd: function (point) {\r\n\t\treturn this.clone()._add(L.point(point));\r\n\t},\r\n\r\n\t// destructive, used directly for performance in situations where it's safe to modify existing point\r\n\t_add: function (point) {\r\n\t\tthis.x += point.x;\r\n\t\tthis.y += point.y;\r\n\t\treturn this;\r\n\t},\r\n\r\n\tsubtract: function (point) {\r\n\t\treturn this.clone()._subtract(L.point(point));\r\n\t},\r\n\r\n\t_subtract: function (point) {\r\n\t\tthis.x -= point.x;\r\n\t\tthis.y -= point.y;\r\n\t\treturn this;\r\n\t},\r\n\r\n\tdivideBy: function (num) {\r\n\t\treturn this.clone()._divideBy(num);\r\n\t},\r\n\r\n\t_divideBy: function (num) {\r\n\t\tthis.x /= num;\r\n\t\tthis.y /= num;\r\n\t\treturn this;\r\n\t},\r\n\r\n\tmultiplyBy: function (num) {\r\n\t\treturn this.clone()._multiplyBy(num);\r\n\t},\r\n\r\n\t_multiplyBy: function (num) {\r\n\t\tthis.x *= num;\r\n\t\tthis.y *= num;\r\n\t\treturn this;\r\n\t},\r\n\r\n\tround: function () {\r\n\t\treturn this.clone()._round();\r\n\t},\r\n\r\n\t_round: function () {\r\n\t\tthis.x = Math.round(this.x);\r\n\t\tthis.y = Math.round(this.y);\r\n\t\treturn this;\r\n\t},\r\n\r\n\tfloor: function () {\r\n\t\treturn this.clone()._floor();\r\n\t},\r\n\r\n\t_floor: function () {\r\n\t\tthis.x = Math.floor(this.x);\r\n\t\tthis.y = Math.floor(this.y);\r\n\t\treturn this;\r\n\t},\r\n\r\n\tdistanceTo: function (point) {\r\n\t\tpoint = L.point(point);\r\n\r\n\t\tvar x = point.x - this.x,\r\n\t\t y = point.y - this.y;\r\n\r\n\t\treturn Math.sqrt(x * x + y * y);\r\n\t},\r\n\r\n\tequals: function (point) {\r\n\t\tpoint = L.point(point);\r\n\r\n\t\treturn point.x === this.x &&\r\n\t\t point.y === this.y;\r\n\t},\r\n\r\n\tcontains: function (point) {\r\n\t\tpoint = L.point(point);\r\n\r\n\t\treturn Math.abs(point.x) <= Math.abs(this.x) &&\r\n\t\t Math.abs(point.y) <= Math.abs(this.y);\r\n\t},\r\n\r\n\ttoString: function () {\r\n\t\treturn 'Point(' +\r\n\t\t L.Util.formatNum(this.x) + ', ' +\r\n\t\t L.Util.formatNum(this.y) + ')';\r\n\t}\r\n};\r\n\r\nL.point = function (x, y, round) {\r\n\tif (x instanceof L.Point) {\r\n\t\treturn x;\r\n\t}\r\n\tif (L.Util.isArray(x)) {\r\n\t\treturn new L.Point(x[0], x[1]);\r\n\t}\r\n\tif (x === undefined || x === null) {\r\n\t\treturn x;\r\n\t}\r\n\treturn new L.Point(x, y, round);\r\n};\r\n\n\n/*\r\n * L.Bounds represents a rectangular area on the screen in pixel coordinates.\r\n */\r\n\r\nL.Bounds = function (a, b) { //(Point, Point) or Point[]\r\n\tif (!a) { return; }\r\n\r\n\tvar points = b ? [a, b] : a;\r\n\r\n\tfor (var i = 0, len = points.length; i < len; i++) {\r\n\t\tthis.extend(points[i]);\r\n\t}\r\n};\r\n\r\nL.Bounds.prototype = {\r\n\t// extend the bounds to contain the given point\r\n\textend: function (point) { // (Point)\r\n\t\tpoint = L.point(point);\r\n\r\n\t\tif (!this.min && !this.max) {\r\n\t\t\tthis.min = point.clone();\r\n\t\t\tthis.max = point.clone();\r\n\t\t} else {\r\n\t\t\tthis.min.x = Math.min(point.x, this.min.x);\r\n\t\t\tthis.max.x = Math.max(point.x, this.max.x);\r\n\t\t\tthis.min.y = Math.min(point.y, this.min.y);\r\n\t\t\tthis.max.y = Math.max(point.y, this.max.y);\r\n\t\t}\r\n\t\treturn this;\r\n\t},\r\n\r\n\tgetCenter: function (round) { // (Boolean) -> Point\r\n\t\treturn new L.Point(\r\n\t\t (this.min.x + this.max.x) / 2,\r\n\t\t (this.min.y + this.max.y) / 2, round);\r\n\t},\r\n\r\n\tgetBottomLeft: function () { // -> Point\r\n\t\treturn new L.Point(this.min.x, this.max.y);\r\n\t},\r\n\r\n\tgetTopRight: function () { // -> Point\r\n\t\treturn new L.Point(this.max.x, this.min.y);\r\n\t},\r\n\r\n\tgetSize: function () {\r\n\t\treturn this.max.subtract(this.min);\r\n\t},\r\n\r\n\tcontains: function (obj) { // (Bounds) or (Point) -> Boolean\r\n\t\tvar min, max;\r\n\r\n\t\tif (typeof obj[0] === 'number' || obj instanceof L.Point) {\r\n\t\t\tobj = L.point(obj);\r\n\t\t} else {\r\n\t\t\tobj = L.bounds(obj);\r\n\t\t}\r\n\r\n\t\tif (obj instanceof L.Bounds) {\r\n\t\t\tmin = obj.min;\r\n\t\t\tmax = obj.max;\r\n\t\t} else {\r\n\t\t\tmin = max = obj;\r\n\t\t}\r\n\r\n\t\treturn (min.x >= this.min.x) &&\r\n\t\t (max.x <= this.max.x) &&\r\n\t\t (min.y >= this.min.y) &&\r\n\t\t (max.y <= this.max.y);\r\n\t},\r\n\r\n\tintersects: function (bounds) { // (Bounds) -> Boolean\r\n\t\tbounds = L.bounds(bounds);\r\n\r\n\t\tvar min = this.min,\r\n\t\t max = this.max,\r\n\t\t min2 = bounds.min,\r\n\t\t max2 = bounds.max,\r\n\t\t xIntersects = (max2.x >= min.x) && (min2.x <= max.x),\r\n\t\t yIntersects = (max2.y >= min.y) && (min2.y <= max.y);\r\n\r\n\t\treturn xIntersects && yIntersects;\r\n\t},\r\n\r\n\tisValid: function () {\r\n\t\treturn !!(this.min && this.max);\r\n\t}\r\n};\r\n\r\nL.bounds = function (a, b) { // (Bounds) or (Point, Point) or (Point[])\r\n\tif (!a || a instanceof L.Bounds) {\r\n\t\treturn a;\r\n\t}\r\n\treturn new L.Bounds(a, b);\r\n};\r\n\n\n/*\r\n * L.Transformation is an utility class to perform simple point transformations through a 2d-matrix.\r\n */\r\n\r\nL.Transformation = function (a, b, c, d) {\r\n\tthis._a = a;\r\n\tthis._b = b;\r\n\tthis._c = c;\r\n\tthis._d = d;\r\n};\r\n\r\nL.Transformation.prototype = {\r\n\ttransform: function (point, scale) { // (Point, Number) -> Point\r\n\t\treturn this._transform(point.clone(), scale);\r\n\t},\r\n\r\n\t// destructive transform (faster)\r\n\t_transform: function (point, scale) {\r\n\t\tscale = scale || 1;\r\n\t\tpoint.x = scale * (this._a * point.x + this._b);\r\n\t\tpoint.y = scale * (this._c * point.y + this._d);\r\n\t\treturn point;\r\n\t},\r\n\r\n\tuntransform: function (point, scale) {\r\n\t\tscale = scale || 1;\r\n\t\treturn new L.Point(\r\n\t\t (point.x / scale - this._b) / this._a,\r\n\t\t (point.y / scale - this._d) / this._c);\r\n\t}\r\n};\r\n\n\n/*\r\n * L.DomUtil contains various utility functions for working with DOM.\r\n */\r\n\r\nL.DomUtil = {\r\n\tget: function (id) {\r\n\t\treturn (typeof id === 'string' ? document.getElementById(id) : id);\r\n\t},\r\n\r\n\tgetStyle: function (el, style) {\r\n\r\n\t\tvar value = el.style[style];\r\n\r\n\t\tif (!value && el.currentStyle) {\r\n\t\t\tvalue = el.currentStyle[style];\r\n\t\t}\r\n\r\n\t\tif ((!value || value === 'auto') && document.defaultView) {\r\n\t\t\tvar css = document.defaultView.getComputedStyle(el, null);\r\n\t\t\tvalue = css ? css[style] : null;\r\n\t\t}\r\n\r\n\t\treturn value === 'auto' ? null : value;\r\n\t},\r\n\r\n\tgetViewportOffset: function (element) {\r\n\r\n\t\tvar top = 0,\r\n\t\t left = 0,\r\n\t\t el = element,\r\n\t\t docBody = document.body,\r\n\t\t docEl = document.documentElement,\r\n\t\t pos;\r\n\r\n\t\tdo {\r\n\t\t\ttop += el.offsetTop || 0;\r\n\t\t\tleft += el.offsetLeft || 0;\r\n\r\n\t\t\t//add borders\r\n\t\t\ttop += parseInt(L.DomUtil.getStyle(el, 'borderTopWidth'), 10) || 0;\r\n\t\t\tleft += parseInt(L.DomUtil.getStyle(el, 'borderLeftWidth'), 10) || 0;\r\n\r\n\t\t\tpos = L.DomUtil.getStyle(el, 'position');\r\n\r\n\t\t\tif (el.offsetParent === docBody && pos === 'absolute') { break; }\r\n\r\n\t\t\tif (pos === 'fixed') {\r\n\t\t\t\ttop += docBody.scrollTop || docEl.scrollTop || 0;\r\n\t\t\t\tleft += docBody.scrollLeft || docEl.scrollLeft || 0;\r\n\t\t\t\tbreak;\r\n\t\t\t}\r\n\r\n\t\t\tif (pos === 'relative' && !el.offsetLeft) {\r\n\t\t\t\tvar width = L.DomUtil.getStyle(el, 'width'),\r\n\t\t\t\t maxWidth = L.DomUtil.getStyle(el, 'max-width'),\r\n\t\t\t\t r = el.getBoundingClientRect();\r\n\r\n\t\t\t\tif (width !== 'none' || maxWidth !== 'none') {\r\n\t\t\t\t\tleft += r.left + el.clientLeft;\r\n\t\t\t\t}\r\n\r\n\t\t\t\t//calculate full y offset since we're breaking out of the loop\r\n\t\t\t\ttop += r.top + (docBody.scrollTop || docEl.scrollTop || 0);\r\n\r\n\t\t\t\tbreak;\r\n\t\t\t}\r\n\r\n\t\t\tel = el.offsetParent;\r\n\r\n\t\t} while (el);\r\n\r\n\t\tel = element;\r\n\r\n\t\tdo {\r\n\t\t\tif (el === docBody) { break; }\r\n\r\n\t\t\ttop -= el.scrollTop || 0;\r\n\t\t\tleft -= el.scrollLeft || 0;\r\n\r\n\t\t\tel = el.parentNode;\r\n\t\t} while (el);\r\n\r\n\t\treturn new L.Point(left, top);\r\n\t},\r\n\r\n\tdocumentIsLtr: function () {\r\n\t\tif (!L.DomUtil._docIsLtrCached) {\r\n\t\t\tL.DomUtil._docIsLtrCached = true;\r\n\t\t\tL.DomUtil._docIsLtr = L.DomUtil.getStyle(document.body, 'direction') === 'ltr';\r\n\t\t}\r\n\t\treturn L.DomUtil._docIsLtr;\r\n\t},\r\n\r\n\tcreate: function (tagName, className, container) {\r\n\r\n\t\tvar el = document.createElement(tagName);\r\n\t\tel.className = className;\r\n\r\n\t\tif (container) {\r\n\t\t\tcontainer.appendChild(el);\r\n\t\t}\r\n\r\n\t\treturn el;\r\n\t},\r\n\r\n\thasClass: function (el, name) {\r\n\t\tif (el.classList !== undefined) {\r\n\t\t\treturn el.classList.contains(name);\r\n\t\t}\r\n\t\tvar className = L.DomUtil._getClass(el);\r\n\t\treturn className.length > 0 && new RegExp('(^|\\\\s)' + name + '(\\\\s|$)').test(className);\r\n\t},\r\n\r\n\taddClass: function (el, name) {\r\n\t\tif (el.classList !== undefined) {\r\n\t\t\tvar classes = L.Util.splitWords(name);\r\n\t\t\tfor (var i = 0, len = classes.length; i < len; i++) {\r\n\t\t\t\tel.classList.add(classes[i]);\r\n\t\t\t}\r\n\t\t} else if (!L.DomUtil.hasClass(el, name)) {\r\n\t\t\tvar className = L.DomUtil._getClass(el);\r\n\t\t\tL.DomUtil._setClass(el, (className ? className + ' ' : '') + name);\r\n\t\t}\r\n\t},\r\n\r\n\tremoveClass: function (el, name) {\r\n\t\tif (el.classList !== undefined) {\r\n\t\t\tel.classList.remove(name);\r\n\t\t} else {\r\n\t\t\tL.DomUtil._setClass(el, L.Util.trim((' ' + L.DomUtil._getClass(el) + ' ').replace(' ' + name + ' ', ' ')));\r\n\t\t}\r\n\t},\r\n\r\n\t_setClass: function (el, name) {\r\n\t\tif (el.className.baseVal === undefined) {\r\n\t\t\tel.className = name;\r\n\t\t} else {\r\n\t\t\t// in case of SVG element\r\n\t\t\tel.className.baseVal = name;\r\n\t\t}\r\n\t},\r\n\r\n\t_getClass: function (el) {\r\n\t\treturn el.className.baseVal === undefined ? el.className : el.className.baseVal;\r\n\t},\r\n\r\n\tsetOpacity: function (el, value) {\r\n\r\n\t\tif ('opacity' in el.style) {\r\n\t\t\tel.style.opacity = value;\r\n\r\n\t\t} else if ('filter' in el.style) {\r\n\r\n\t\t\tvar filter = false,\r\n\t\t\t filterName = 'DXImageTransform.Microsoft.Alpha';\r\n\r\n\t\t\t// filters collection throws an error if we try to retrieve a filter that doesn't exist\r\n\t\t\ttry {\r\n\t\t\t\tfilter = el.filters.item(filterName);\r\n\t\t\t} catch (e) {\r\n\t\t\t\t// don't set opacity to 1 if we haven't already set an opacity,\r\n\t\t\t\t// it isn't needed and breaks transparent pngs.\r\n\t\t\t\tif (value === 1) { return; }\r\n\t\t\t}\r\n\r\n\t\t\tvalue = Math.round(value * 100);\r\n\r\n\t\t\tif (filter) {\r\n\t\t\t\tfilter.Enabled = (value !== 100);\r\n\t\t\t\tfilter.Opacity = value;\r\n\t\t\t} else {\r\n\t\t\t\tel.style.filter += ' progid:' + filterName + '(opacity=' + value + ')';\r\n\t\t\t}\r\n\t\t}\r\n\t},\r\n\r\n\ttestProp: function (props) {\r\n\r\n\t\tvar style = document.documentElement.style;\r\n\r\n\t\tfor (var i = 0; i < props.length; i++) {\r\n\t\t\tif (props[i] in style) {\r\n\t\t\t\treturn props[i];\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn false;\r\n\t},\r\n\r\n\tgetTranslateString: function (point) {\r\n\t\t// on WebKit browsers (Chrome/Safari/iOS Safari/Android) using translate3d instead of translate\r\n\t\t// makes animation smoother as it ensures HW accel is used. Firefox 13 doesn't care\r\n\t\t// (same speed either way), Opera 12 doesn't support translate3d\r\n\r\n\t\tvar is3d = L.Browser.webkit3d,\r\n\t\t open = 'translate' + (is3d ? '3d' : '') + '(',\r\n\t\t close = (is3d ? ',0' : '') + ')';\r\n\r\n\t\treturn open + point.x + 'px,' + point.y + 'px' + close;\r\n\t},\r\n\r\n\tgetScaleString: function (scale, origin) {\r\n\r\n\t\tvar preTranslateStr = L.DomUtil.getTranslateString(origin.add(origin.multiplyBy(-1 * scale))),\r\n\t\t scaleStr = ' scale(' + scale + ') ';\r\n\r\n\t\treturn preTranslateStr + scaleStr;\r\n\t},\r\n\r\n\tsetPosition: function (el, point, disable3D) { // (HTMLElement, Point[, Boolean])\r\n\r\n\t\t// jshint camelcase: false\r\n\t\tel._leaflet_pos = point;\r\n\r\n\t\tif (!disable3D && L.Browser.any3d) {\r\n\t\t\tel.style[L.DomUtil.TRANSFORM] = L.DomUtil.getTranslateString(point);\r\n\t\t} else {\r\n\t\t\tel.style.left = point.x + 'px';\r\n\t\t\tel.style.top = point.y + 'px';\r\n\t\t}\r\n\t},\r\n\r\n\tgetPosition: function (el) {\r\n\t\t// this method is only used for elements previously positioned using setPosition,\r\n\t\t// so it's safe to cache the position for performance\r\n\r\n\t\t// jshint camelcase: false\r\n\t\treturn el._leaflet_pos;\r\n\t}\r\n};\r\n\r\n\r\n// prefix style property names\r\n\r\nL.DomUtil.TRANSFORM = L.DomUtil.testProp(\r\n ['transform', 'WebkitTransform', 'OTransform', 'MozTransform', 'msTransform']);\r\n\r\n// webkitTransition comes first because some browser versions that drop vendor prefix don't do\r\n// the same for the transitionend event, in particular the Android 4.1 stock browser\r\n\r\nL.DomUtil.TRANSITION = L.DomUtil.testProp(\r\n ['webkitTransition', 'transition', 'OTransition', 'MozTransition', 'msTransition']);\r\n\r\nL.DomUtil.TRANSITION_END =\r\n L.DomUtil.TRANSITION === 'webkitTransition' || L.DomUtil.TRANSITION === 'OTransition' ?\r\n L.DomUtil.TRANSITION + 'End' : 'transitionend';\r\n\r\n(function () {\r\n if ('onselectstart' in document) {\r\n L.extend(L.DomUtil, {\r\n disableTextSelection: function () {\r\n L.DomEvent.on(window, 'selectstart', L.DomEvent.preventDefault);\r\n },\r\n\r\n enableTextSelection: function () {\r\n L.DomEvent.off(window, 'selectstart', L.DomEvent.preventDefault);\r\n }\r\n });\r\n } else {\r\n var userSelectProperty = L.DomUtil.testProp(\r\n ['userSelect', 'WebkitUserSelect', 'OUserSelect', 'MozUserSelect', 'msUserSelect']);\r\n\r\n L.extend(L.DomUtil, {\r\n disableTextSelection: function () {\r\n if (userSelectProperty) {\r\n var style = document.documentElement.style;\r\n this._userSelect = style[userSelectProperty];\r\n style[userSelectProperty] = 'none';\r\n }\r\n },\r\n\r\n enableTextSelection: function () {\r\n if (userSelectProperty) {\r\n document.documentElement.style[userSelectProperty] = this._userSelect;\r\n delete this._userSelect;\r\n }\r\n }\r\n });\r\n }\r\n\r\n\tL.extend(L.DomUtil, {\r\n\t\tdisableImageDrag: function () {\r\n\t\t\tL.DomEvent.on(window, 'dragstart', L.DomEvent.preventDefault);\r\n\t\t},\r\n\r\n\t\tenableImageDrag: function () {\r\n\t\t\tL.DomEvent.off(window, 'dragstart', L.DomEvent.preventDefault);\r\n\t\t}\r\n\t});\r\n})();\r\n\n\n/*\r\n * L.LatLng represents a geographical point with latitude and longitude coordinates.\r\n */\r\n\r\nL.LatLng = function (lat, lng, alt) { // (Number, Number, Number)\r\n\tlat = parseFloat(lat);\r\n\tlng = parseFloat(lng);\r\n\r\n\tif (isNaN(lat) || isNaN(lng)) {\r\n\t\tthrow new Error('Invalid LatLng object: (' + lat + ', ' + lng + ')');\r\n\t}\r\n\r\n\tthis.lat = lat;\r\n\tthis.lng = lng;\r\n\r\n\tif (alt !== undefined) {\r\n\t\tthis.alt = parseFloat(alt);\r\n\t}\r\n};\r\n\r\nL.extend(L.LatLng, {\r\n\tDEG_TO_RAD: Math.PI / 180,\r\n\tRAD_TO_DEG: 180 / Math.PI,\r\n\tMAX_MARGIN: 1.0E-9 // max margin of error for the \"equals\" check\r\n});\r\n\r\nL.LatLng.prototype = {\r\n\tequals: function (obj) { // (LatLng) -> Boolean\r\n\t\tif (!obj) { return false; }\r\n\r\n\t\tobj = L.latLng(obj);\r\n\r\n\t\tvar margin = Math.max(\r\n\t\t Math.abs(this.lat - obj.lat),\r\n\t\t Math.abs(this.lng - obj.lng));\r\n\r\n\t\treturn margin <= L.LatLng.MAX_MARGIN;\r\n\t},\r\n\r\n\ttoString: function (precision) { // (Number) -> String\r\n\t\treturn 'LatLng(' +\r\n\t\t L.Util.formatNum(this.lat, precision) + ', ' +\r\n\t\t L.Util.formatNum(this.lng, precision) + ')';\r\n\t},\r\n\r\n\t// Haversine distance formula, see http://en.wikipedia.org/wiki/Haversine_formula\r\n\t// TODO move to projection code, LatLng shouldn't know about Earth\r\n\tdistanceTo: function (other) { // (LatLng) -> Number\r\n\t\tother = L.latLng(other);\r\n\r\n\t\tvar R = 6378137, // earth radius in meters\r\n\t\t d2r = L.LatLng.DEG_TO_RAD,\r\n\t\t dLat = (other.lat - this.lat) * d2r,\r\n\t\t dLon = (other.lng - this.lng) * d2r,\r\n\t\t lat1 = this.lat * d2r,\r\n\t\t lat2 = other.lat * d2r,\r\n\t\t sin1 = Math.sin(dLat / 2),\r\n\t\t sin2 = Math.sin(dLon / 2);\r\n\r\n\t\tvar a = sin1 * sin1 + sin2 * sin2 * Math.cos(lat1) * Math.cos(lat2);\r\n\r\n\t\treturn R * 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1 - a));\r\n\t},\r\n\r\n\twrap: function (a, b) { // (Number, Number) -> LatLng\r\n\t\tvar lng = this.lng;\r\n\r\n\t\ta = a || -180;\r\n\t\tb = b || 180;\r\n\r\n\t\tlng = (lng + b) % (b - a) + (lng < a || lng === b ? b : a);\r\n\r\n\t\treturn new L.LatLng(this.lat, lng);\r\n\t}\r\n};\r\n\r\nL.latLng = function (a, b) { // (LatLng) or ([Number, Number]) or (Number, Number)\r\n\tif (a instanceof L.LatLng) {\r\n\t\treturn a;\r\n\t}\r\n\tif (L.Util.isArray(a)) {\r\n\t\tif (typeof a[0] === 'number' || typeof a[0] === 'string') {\r\n\t\t\treturn new L.LatLng(a[0], a[1], a[2]);\r\n\t\t} else {\r\n\t\t\treturn null;\r\n\t\t}\r\n\t}\r\n\tif (a === undefined || a === null) {\r\n\t\treturn a;\r\n\t}\r\n\tif (typeof a === 'object' && 'lat' in a) {\r\n\t\treturn new L.LatLng(a.lat, 'lng' in a ? a.lng : a.lon);\r\n\t}\r\n\tif (b === undefined) {\r\n\t\treturn null;\r\n\t}\r\n\treturn new L.LatLng(a, b);\r\n};\r\n\r\n\n\n/*\r\n * L.LatLngBounds represents a rectangular area on the map in geographical coordinates.\r\n */\r\n\r\nL.LatLngBounds = function (southWest, northEast) { // (LatLng, LatLng) or (LatLng[])\r\n\tif (!southWest) { return; }\r\n\r\n\tvar latlngs = northEast ? [southWest, northEast] : southWest;\r\n\r\n\tfor (var i = 0, len = latlngs.length; i < len; i++) {\r\n\t\tthis.extend(latlngs[i]);\r\n\t}\r\n};\r\n\r\nL.LatLngBounds.prototype = {\r\n\t// extend the bounds to contain the given point or bounds\r\n\textend: function (obj) { // (LatLng) or (LatLngBounds)\r\n\t\tif (!obj) { return this; }\r\n\r\n\t\tvar latLng = L.latLng(obj);\r\n\t\tif (latLng !== null) {\r\n\t\t\tobj = latLng;\r\n\t\t} else {\r\n\t\t\tobj = L.latLngBounds(obj);\r\n\t\t}\r\n\r\n\t\tif (obj instanceof L.LatLng) {\r\n\t\t\tif (!this._southWest && !this._northEast) {\r\n\t\t\t\tthis._southWest = new L.LatLng(obj.lat, obj.lng);\r\n\t\t\t\tthis._northEast = new L.LatLng(obj.lat, obj.lng);\r\n\t\t\t} else {\r\n\t\t\t\tthis._southWest.lat = Math.min(obj.lat, this._southWest.lat);\r\n\t\t\t\tthis._southWest.lng = Math.min(obj.lng, this._southWest.lng);\r\n\r\n\t\t\t\tthis._northEast.lat = Math.max(obj.lat, this._northEast.lat);\r\n\t\t\t\tthis._northEast.lng = Math.max(obj.lng, this._northEast.lng);\r\n\t\t\t}\r\n\t\t} else if (obj instanceof L.LatLngBounds) {\r\n\t\t\tthis.extend(obj._southWest);\r\n\t\t\tthis.extend(obj._northEast);\r\n\t\t}\r\n\t\treturn this;\r\n\t},\r\n\r\n\t// extend the bounds by a percentage\r\n\tpad: function (bufferRatio) { // (Number) -> LatLngBounds\r\n\t\tvar sw = this._southWest,\r\n\t\t ne = this._northEast,\r\n\t\t heightBuffer = Math.abs(sw.lat - ne.lat) * bufferRatio,\r\n\t\t widthBuffer = Math.abs(sw.lng - ne.lng) * bufferRatio;\r\n\r\n\t\treturn new L.LatLngBounds(\r\n\t\t new L.LatLng(sw.lat - heightBuffer, sw.lng - widthBuffer),\r\n\t\t new L.LatLng(ne.lat + heightBuffer, ne.lng + widthBuffer));\r\n\t},\r\n\r\n\tgetCenter: function () { // -> LatLng\r\n\t\treturn new L.LatLng(\r\n\t\t (this._southWest.lat + this._northEast.lat) / 2,\r\n\t\t (this._southWest.lng + this._northEast.lng) / 2);\r\n\t},\r\n\r\n\tgetSouthWest: function () {\r\n\t\treturn this._southWest;\r\n\t},\r\n\r\n\tgetNorthEast: function () {\r\n\t\treturn this._northEast;\r\n\t},\r\n\r\n\tgetNorthWest: function () {\r\n\t\treturn new L.LatLng(this.getNorth(), this.getWest());\r\n\t},\r\n\r\n\tgetSouthEast: function () {\r\n\t\treturn new L.LatLng(this.getSouth(), this.getEast());\r\n\t},\r\n\r\n\tgetWest: function () {\r\n\t\treturn this._southWest.lng;\r\n\t},\r\n\r\n\tgetSouth: function () {\r\n\t\treturn this._southWest.lat;\r\n\t},\r\n\r\n\tgetEast: function () {\r\n\t\treturn this._northEast.lng;\r\n\t},\r\n\r\n\tgetNorth: function () {\r\n\t\treturn this._northEast.lat;\r\n\t},\r\n\r\n\tcontains: function (obj) { // (LatLngBounds) or (LatLng) -> Boolean\r\n\t\tif (typeof obj[0] === 'number' || obj instanceof L.LatLng) {\r\n\t\t\tobj = L.latLng(obj);\r\n\t\t} else {\r\n\t\t\tobj = L.latLngBounds(obj);\r\n\t\t}\r\n\r\n\t\tvar sw = this._southWest,\r\n\t\t ne = this._northEast,\r\n\t\t sw2, ne2;\r\n\r\n\t\tif (obj instanceof L.LatLngBounds) {\r\n\t\t\tsw2 = obj.getSouthWest();\r\n\t\t\tne2 = obj.getNorthEast();\r\n\t\t} else {\r\n\t\t\tsw2 = ne2 = obj;\r\n\t\t}\r\n\r\n\t\treturn (sw2.lat >= sw.lat) && (ne2.lat <= ne.lat) &&\r\n\t\t (sw2.lng >= sw.lng) && (ne2.lng <= ne.lng);\r\n\t},\r\n\r\n\tintersects: function (bounds) { // (LatLngBounds)\r\n\t\tbounds = L.latLngBounds(bounds);\r\n\r\n\t\tvar sw = this._southWest,\r\n\t\t ne = this._northEast,\r\n\t\t sw2 = bounds.getSouthWest(),\r\n\t\t ne2 = bounds.getNorthEast(),\r\n\r\n\t\t latIntersects = (ne2.lat >= sw.lat) && (sw2.lat <= ne.lat),\r\n\t\t lngIntersects = (ne2.lng >= sw.lng) && (sw2.lng <= ne.lng);\r\n\r\n\t\treturn latIntersects && lngIntersects;\r\n\t},\r\n\r\n\ttoBBoxString: function () {\r\n\t\treturn [this.getWest(), this.getSouth(), this.getEast(), this.getNorth()].join(',');\r\n\t},\r\n\r\n\tequals: function (bounds) { // (LatLngBounds)\r\n\t\tif (!bounds) { return false; }\r\n\r\n\t\tbounds = L.latLngBounds(bounds);\r\n\r\n\t\treturn this._southWest.equals(bounds.getSouthWest()) &&\r\n\t\t this._northEast.equals(bounds.getNorthEast());\r\n\t},\r\n\r\n\tisValid: function () {\r\n\t\treturn !!(this._southWest && this._northEast);\r\n\t}\r\n};\r\n\r\n//TODO International date line?\r\n\r\nL.latLngBounds = function (a, b) { // (LatLngBounds) or (LatLng, LatLng)\r\n\tif (!a || a instanceof L.LatLngBounds) {\r\n\t\treturn a;\r\n\t}\r\n\treturn new L.LatLngBounds(a, b);\r\n};\r\n\n\n/*\r\n * L.Projection contains various geographical projections used by CRS classes.\r\n */\r\n\r\nL.Projection = {};\r\n\n\n/*\r\n * Spherical Mercator is the most popular map projection, used by EPSG:3857 CRS used by default.\r\n */\r\n\r\nL.Projection.SphericalMercator = {\r\n\tMAX_LATITUDE: 85.0511287798,\r\n\r\n\tproject: function (latlng) { // (LatLng) -> Point\r\n\t\tvar d = L.LatLng.DEG_TO_RAD,\r\n\t\t max = this.MAX_LATITUDE,\r\n\t\t lat = Math.max(Math.min(max, latlng.lat), -max),\r\n\t\t x = latlng.lng * d,\r\n\t\t y = lat * d;\r\n\r\n\t\ty = Math.log(Math.tan((Math.PI / 4) + (y / 2)));\r\n\r\n\t\treturn new L.Point(x, y);\r\n\t},\r\n\r\n\tunproject: function (point) { // (Point, Boolean) -> LatLng\r\n\t\tvar d = L.LatLng.RAD_TO_DEG,\r\n\t\t lng = point.x * d,\r\n\t\t lat = (2 * Math.atan(Math.exp(point.y)) - (Math.PI / 2)) * d;\r\n\r\n\t\treturn new L.LatLng(lat, lng);\r\n\t}\r\n};\r\n\n\n/*\r\n * Simple equirectangular (Plate Carree) projection, used by CRS like EPSG:4326 and Simple.\r\n */\r\n\r\nL.Projection.LonLat = {\r\n\tproject: function (latlng) {\r\n\t\treturn new L.Point(latlng.lng, latlng.lat);\r\n\t},\r\n\r\n\tunproject: function (point) {\r\n\t\treturn new L.LatLng(point.y, point.x);\r\n\t}\r\n};\r\n\n\n/*\r\n * L.CRS is a base object for all defined CRS (Coordinate Reference Systems) in Leaflet.\r\n */\r\n\r\nL.CRS = {\r\n\tlatLngToPoint: function (latlng, zoom) { // (LatLng, Number) -> Point\r\n\t\tvar projectedPoint = this.projection.project(latlng),\r\n\t\t scale = this.scale(zoom);\r\n\r\n\t\treturn this.transformation._transform(projectedPoint, scale);\r\n\t},\r\n\r\n\tpointToLatLng: function (point, zoom) { // (Point, Number[, Boolean]) -> LatLng\r\n\t\tvar scale = this.scale(zoom),\r\n\t\t untransformedPoint = this.transformation.untransform(point, scale);\r\n\r\n\t\treturn this.projection.unproject(untransformedPoint);\r\n\t},\r\n\r\n\tproject: function (latlng) {\r\n\t\treturn this.projection.project(latlng);\r\n\t},\r\n\r\n\tscale: function (zoom) {\r\n\t\treturn 256 * Math.pow(2, zoom);\r\n\t},\r\n\r\n\tgetSize: function (zoom) {\r\n\t\tvar s = this.scale(zoom);\r\n\t\treturn L.point(s, s);\r\n\t}\r\n};\r\n\n\n/*\n * A simple CRS that can be used for flat non-Earth maps like panoramas or game maps.\n */\n\nL.CRS.Simple = L.extend({}, L.CRS, {\n\tprojection: L.Projection.LonLat,\n\ttransformation: new L.Transformation(1, 0, -1, 0),\n\n\tscale: function (zoom) {\n\t\treturn Math.pow(2, zoom);\n\t}\n});\n\n\n/*\r\n * L.CRS.EPSG3857 (Spherical Mercator) is the most common CRS for web mapping\r\n * and is used by Leaflet by default.\r\n */\r\n\r\nL.CRS.EPSG3857 = L.extend({}, L.CRS, {\r\n\tcode: 'EPSG:3857',\r\n\r\n\tprojection: L.Projection.SphericalMercator,\r\n\ttransformation: new L.Transformation(0.5 / Math.PI, 0.5, -0.5 / Math.PI, 0.5),\r\n\r\n\tproject: function (latlng) { // (LatLng) -> Point\r\n\t\tvar projectedPoint = this.projection.project(latlng),\r\n\t\t earthRadius = 6378137;\r\n\t\treturn projectedPoint.multiplyBy(earthRadius);\r\n\t}\r\n});\r\n\r\nL.CRS.EPSG900913 = L.extend({}, L.CRS.EPSG3857, {\r\n\tcode: 'EPSG:900913'\r\n});\r\n\n\n/*\r\n * L.CRS.EPSG4326 is a CRS popular among advanced GIS specialists.\r\n */\r\n\r\nL.CRS.EPSG4326 = L.extend({}, L.CRS, {\r\n\tcode: 'EPSG:4326',\r\n\r\n\tprojection: L.Projection.LonLat,\r\n\ttransformation: new L.Transformation(1 / 360, 0.5, -1 / 360, 0.5)\r\n});\r\n\n\n/*\r\n * L.Map is the central class of the API - it is used to create a map.\r\n */\r\n\r\nL.Map = L.Class.extend({\r\n\r\n\tincludes: L.Mixin.Events,\r\n\r\n\toptions: {\r\n\t\tcrs: L.CRS.EPSG3857,\r\n\r\n\t\t/*\r\n\t\tcenter: LatLng,\r\n\t\tzoom: Number,\r\n\t\tlayers: Array,\r\n\t\t*/\r\n\r\n\t\tfadeAnimation: L.DomUtil.TRANSITION && !L.Browser.android23,\r\n\t\ttrackResize: true,\r\n\t\tmarkerZoomAnimation: L.DomUtil.TRANSITION && L.Browser.any3d\r\n\t},\r\n\r\n\tinitialize: function (id, options) { // (HTMLElement or String, Object)\r\n\t\toptions = L.setOptions(this, options);\r\n\r\n\r\n\t\tthis._initContainer(id);\r\n\t\tthis._initLayout();\r\n\r\n\t\t// hack for https://github.com/Leaflet/Leaflet/issues/1980\r\n\t\tthis._onResize = L.bind(this._onResize, this);\r\n\r\n\t\tthis._initEvents();\r\n\r\n\t\tif (options.maxBounds) {\r\n\t\t\tthis.setMaxBounds(options.maxBounds);\r\n\t\t}\r\n\r\n\t\tif (options.center && options.zoom !== undefined) {\r\n\t\t\tthis.setView(L.latLng(options.center), options.zoom, {reset: true});\r\n\t\t}\r\n\r\n\t\tthis._handlers = [];\r\n\r\n\t\tthis._layers = {};\r\n\t\tthis._zoomBoundLayers = {};\r\n\t\tthis._tileLayersNum = 0;\r\n\r\n\t\tthis.callInitHooks();\r\n\r\n\t\tthis._addLayers(options.layers);\r\n\t},\r\n\r\n\r\n\t// public methods that modify map state\r\n\r\n\t// replaced by animation-powered implementation in Map.PanAnimation.js\r\n\tsetView: function (center, zoom) {\r\n\t\tzoom = zoom === undefined ? this.getZoom() : zoom;\r\n\t\tthis._resetView(L.latLng(center), this._limitZoom(zoom));\r\n\t\treturn this;\r\n\t},\r\n\r\n\tsetZoom: function (zoom, options) {\r\n\t\tif (!this._loaded) {\r\n\t\t\tthis._zoom = this._limitZoom(zoom);\r\n\t\t\treturn this;\r\n\t\t}\r\n\t\treturn this.setView(this.getCenter(), zoom, {zoom: options});\r\n\t},\r\n\r\n\tzoomIn: function (delta, options) {\r\n\t\treturn this.setZoom(this._zoom + (delta || 1), options);\r\n\t},\r\n\r\n\tzoomOut: function (delta, options) {\r\n\t\treturn this.setZoom(this._zoom - (delta || 1), options);\r\n\t},\r\n\r\n\tsetZoomAround: function (latlng, zoom, options) {\r\n\t\tvar scale = this.getZoomScale(zoom),\r\n\t\t viewHalf = this.getSize().divideBy(2),\r\n\t\t containerPoint = latlng instanceof L.Point ? latlng : this.latLngToContainerPoint(latlng),\r\n\r\n\t\t centerOffset = containerPoint.subtract(viewHalf).multiplyBy(1 - 1 / scale),\r\n\t\t newCenter = this.containerPointToLatLng(viewHalf.add(centerOffset));\r\n\r\n\t\treturn this.setView(newCenter, zoom, {zoom: options});\r\n\t},\r\n\r\n\tfitBounds: function (bounds, options) {\r\n\r\n\t\toptions = options || {};\r\n\t\tbounds = bounds.getBounds ? bounds.getBounds() : L.latLngBounds(bounds);\r\n\r\n\t\tvar paddingTL = L.point(options.paddingTopLeft || options.padding || [0, 0]),\r\n\t\t paddingBR = L.point(options.paddingBottomRight || options.padding || [0, 0]),\r\n\r\n\t\t zoom = this.getBoundsZoom(bounds, false, paddingTL.add(paddingBR));\r\n\r\n\t\tzoom = (options.maxZoom) ? Math.min(options.maxZoom, zoom) : zoom;\r\n\r\n\t\tvar paddingOffset = paddingBR.subtract(paddingTL).divideBy(2),\r\n\r\n\t\t swPoint = this.project(bounds.getSouthWest(), zoom),\r\n\t\t nePoint = this.project(bounds.getNorthEast(), zoom),\r\n\t\t center = this.unproject(swPoint.add(nePoint).divideBy(2).add(paddingOffset), zoom);\r\n\r\n\t\treturn this.setView(center, zoom, options);\r\n\t},\r\n\r\n\tfitWorld: function (options) {\r\n\t\treturn this.fitBounds([[-90, -180], [90, 180]], options);\r\n\t},\r\n\r\n\tpanTo: function (center, options) { // (LatLng)\r\n\t\treturn this.setView(center, this._zoom, {pan: options});\r\n\t},\r\n\r\n\tpanBy: function (offset) { // (Point)\r\n\t\t// replaced with animated panBy in Map.PanAnimation.js\r\n\t\tthis.fire('movestart');\r\n\r\n\t\tthis._rawPanBy(L.point(offset));\r\n\r\n\t\tthis.fire('move');\r\n\t\treturn this.fire('moveend');\r\n\t},\r\n\r\n\tsetMaxBounds: function (bounds) {\r\n\t\tbounds = L.latLngBounds(bounds);\r\n\r\n\t\tthis.options.maxBounds = bounds;\r\n\r\n\t\tif (!bounds) {\r\n\t\t\treturn this.off('moveend', this._panInsideMaxBounds, this);\r\n\t\t}\r\n\r\n\t\tif (this._loaded) {\r\n\t\t\tthis._panInsideMaxBounds();\r\n\t\t}\r\n\r\n\t\treturn this.on('moveend', this._panInsideMaxBounds, this);\r\n\t},\r\n\r\n\tpanInsideBounds: function (bounds, options) {\r\n\t\tvar center = this.getCenter(),\r\n\t\t\tnewCenter = this._limitCenter(center, this._zoom, bounds);\r\n\r\n\t\tif (center.equals(newCenter)) { return this; }\r\n\r\n\t\treturn this.panTo(newCenter, options);\r\n\t},\r\n\r\n\taddLayer: function (layer) {\r\n\t\t// TODO method is too big, refactor\r\n\r\n\t\tvar id = L.stamp(layer);\r\n\r\n\t\tif (this._layers[id]) { return this; }\r\n\r\n\t\tthis._layers[id] = layer;\r\n\r\n\t\t// TODO getMaxZoom, getMinZoom in ILayer (instead of options)\r\n\t\tif (layer.options && (!isNaN(layer.options.maxZoom) || !isNaN(layer.options.minZoom))) {\r\n\t\t\tthis._zoomBoundLayers[id] = layer;\r\n\t\t\tthis._updateZoomLevels();\r\n\t\t}\r\n\r\n\t\t// TODO looks ugly, refactor!!!\r\n\t\tif (this.options.zoomAnimation && L.TileLayer && (layer instanceof L.TileLayer)) {\r\n\t\t\tthis._tileLayersNum++;\r\n\t\t\tthis._tileLayersToLoad++;\r\n\t\t\tlayer.on('load', this._onTileLayerLoad, this);\r\n\t\t}\r\n\r\n\t\tif (this._loaded) {\r\n\t\t\tthis._layerAdd(layer);\r\n\t\t}\r\n\r\n\t\treturn this;\r\n\t},\r\n\r\n\tremoveLayer: function (layer) {\r\n\t\tvar id = L.stamp(layer);\r\n\r\n\t\tif (!this._layers[id]) { return this; }\r\n\r\n\t\tif (this._loaded) {\r\n\t\t\tlayer.onRemove(this);\r\n\t\t}\r\n\r\n\t\tdelete this._layers[id];\r\n\r\n\t\tif (this._loaded) {\r\n\t\t\tthis.fire('layerremove', {layer: layer});\r\n\t\t}\r\n\r\n\t\tif (this._zoomBoundLayers[id]) {\r\n\t\t\tdelete this._zoomBoundLayers[id];\r\n\t\t\tthis._updateZoomLevels();\r\n\t\t}\r\n\r\n\t\t// TODO looks ugly, refactor\r\n\t\tif (this.options.zoomAnimation && L.TileLayer && (layer instanceof L.TileLayer)) {\r\n\t\t\tthis._tileLayersNum--;\r\n\t\t\tthis._tileLayersToLoad--;\r\n\t\t\tlayer.off('load', this._onTileLayerLoad, this);\r\n\t\t}\r\n\r\n\t\treturn this;\r\n\t},\r\n\r\n\thasLayer: function (layer) {\r\n\t\tif (!layer) { return false; }\r\n\r\n\t\treturn (L.stamp(layer) in this._layers);\r\n\t},\r\n\r\n\teachLayer: function (method, context) {\r\n\t\tfor (var i in this._layers) {\r\n\t\t\tmethod.call(context, this._layers[i]);\r\n\t\t}\r\n\t\treturn this;\r\n\t},\r\n\r\n\tinvalidateSize: function (options) {\r\n\t\tif (!this._loaded) { return this; }\r\n\r\n\t\toptions = L.extend({\r\n\t\t\tanimate: false,\r\n\t\t\tpan: true\r\n\t\t}, options === true ? {animate: true} : options);\r\n\r\n\t\tvar oldSize = this.getSize();\r\n\t\tthis._sizeChanged = true;\r\n\t\tthis._initialCenter = null;\r\n\r\n\t\tvar newSize = this.getSize(),\r\n\t\t oldCenter = oldSize.divideBy(2).round(),\r\n\t\t newCenter = newSize.divideBy(2).round(),\r\n\t\t offset = oldCenter.subtract(newCenter);\r\n\r\n\t\tif (!offset.x && !offset.y) { return this; }\r\n\r\n\t\tif (options.animate && options.pan) {\r\n\t\t\tthis.panBy(offset);\r\n\r\n\t\t} else {\r\n\t\t\tif (options.pan) {\r\n\t\t\t\tthis._rawPanBy(offset);\r\n\t\t\t}\r\n\r\n\t\t\tthis.fire('move');\r\n\r\n\t\t\tif (options.debounceMoveend) {\r\n\t\t\t\tclearTimeout(this._sizeTimer);\r\n\t\t\t\tthis._sizeTimer = setTimeout(L.bind(this.fire, this, 'moveend'), 200);\r\n\t\t\t} else {\r\n\t\t\t\tthis.fire('moveend');\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn this.fire('resize', {\r\n\t\t\toldSize: oldSize,\r\n\t\t\tnewSize: newSize\r\n\t\t});\r\n\t},\r\n\r\n\t// TODO handler.addTo\r\n\taddHandler: function (name, HandlerClass) {\r\n\t\tif (!HandlerClass) { return this; }\r\n\r\n\t\tvar handler = this[name] = new HandlerClass(this);\r\n\r\n\t\tthis._handlers.push(handler);\r\n\r\n\t\tif (this.options[name]) {\r\n\t\t\thandler.enable();\r\n\t\t}\r\n\r\n\t\treturn this;\r\n\t},\r\n\r\n\tremove: function () {\r\n\t\tif (this._loaded) {\r\n\t\t\tthis.fire('unload');\r\n\t\t}\r\n\r\n\t\tthis._initEvents('off');\r\n\r\n\t\ttry {\r\n\t\t\t// throws error in IE6-8\r\n\t\t\tdelete this._container._leaflet;\r\n\t\t} catch (e) {\r\n\t\t\tthis._container._leaflet = undefined;\r\n\t\t}\r\n\r\n\t\tthis._clearPanes();\r\n\t\tif (this._clearControlPos) {\r\n\t\t\tthis._clearControlPos();\r\n\t\t}\r\n\r\n\t\tthis._clearHandlers();\r\n\r\n\t\treturn this;\r\n\t},\r\n\r\n\r\n\t// public methods for getting map state\r\n\r\n\tgetCenter: function () { // (Boolean) -> LatLng\r\n\t\tthis._checkIfLoaded();\r\n\r\n\t\tif (this._initialCenter && !this._moved()) {\r\n\t\t\treturn this._initialCenter;\r\n\t\t}\r\n\t\treturn this.layerPointToLatLng(this._getCenterLayerPoint());\r\n\t},\r\n\r\n\tgetZoom: function () {\r\n\t\treturn this._zoom;\r\n\t},\r\n\r\n\tgetBounds: function () {\r\n\t\tvar bounds = this.getPixelBounds(),\r\n\t\t sw = this.unproject(bounds.getBottomLeft()),\r\n\t\t ne = this.unproject(bounds.getTopRight());\r\n\r\n\t\treturn new L.LatLngBounds(sw, ne);\r\n\t},\r\n\r\n\tgetMinZoom: function () {\r\n\t\treturn this.options.minZoom === undefined ?\r\n\t\t\t(this._layersMinZoom === undefined ? 0 : this._layersMinZoom) :\r\n\t\t\tthis.options.minZoom;\r\n\t},\r\n\r\n\tgetMaxZoom: function () {\r\n\t\treturn this.options.maxZoom === undefined ?\r\n\t\t\t(this._layersMaxZoom === undefined ? Infinity : this._layersMaxZoom) :\r\n\t\t\tthis.options.maxZoom;\r\n\t},\r\n\r\n\tgetBoundsZoom: function (bounds, inside, padding) { // (LatLngBounds[, Boolean, Point]) -> Number\r\n\t\tbounds = L.latLngBounds(bounds);\r\n\r\n\t\tvar zoom = this.getMinZoom() - (inside ? 1 : 0),\r\n\t\t maxZoom = this.getMaxZoom(),\r\n\t\t size = this.getSize(),\r\n\r\n\t\t nw = bounds.getNorthWest(),\r\n\t\t se = bounds.getSouthEast(),\r\n\r\n\t\t zoomNotFound = true,\r\n\t\t boundsSize;\r\n\r\n\t\tpadding = L.point(padding || [0, 0]);\r\n\r\n\t\tdo {\r\n\t\t\tzoom++;\r\n\t\t\tboundsSize = this.project(se, zoom).subtract(this.project(nw, zoom)).add(padding);\r\n\t\t\tzoomNotFound = !inside ? size.contains(boundsSize) : boundsSize.x < size.x || boundsSize.y < size.y;\r\n\r\n\t\t} while (zoomNotFound && zoom <= maxZoom);\r\n\r\n\t\tif (zoomNotFound && inside) {\r\n\t\t\treturn null;\r\n\t\t}\r\n\r\n\t\treturn inside ? zoom : zoom - 1;\r\n\t},\r\n\r\n\tgetSize: function () {\r\n\t\tif (!this._size || this._sizeChanged) {\r\n\t\t\tthis._size = new L.Point(\r\n\t\t\t\tthis._container.clientWidth,\r\n\t\t\t\tthis._container.clientHeight);\r\n\r\n\t\t\tthis._sizeChanged = false;\r\n\t\t}\r\n\t\treturn this._size.clone();\r\n\t},\r\n\r\n\tgetPixelBounds: function () {\r\n\t\tvar topLeftPoint = this._getTopLeftPoint();\r\n\t\treturn new L.Bounds(topLeftPoint, topLeftPoint.add(this.getSize()));\r\n\t},\r\n\r\n\tgetPixelOrigin: function () {\r\n\t\tthis._checkIfLoaded();\r\n\t\treturn this._initialTopLeftPoint;\r\n\t},\r\n\r\n\tgetPanes: function () {\r\n\t\treturn this._panes;\r\n\t},\r\n\r\n\tgetContainer: function () {\r\n\t\treturn this._container;\r\n\t},\r\n\r\n\r\n\t// TODO replace with universal implementation after refactoring projections\r\n\r\n\tgetZoomScale: function (toZoom) {\r\n\t\tvar crs = this.options.crs;\r\n\t\treturn crs.scale(toZoom) / crs.scale(this._zoom);\r\n\t},\r\n\r\n\tgetScaleZoom: function (scale) {\r\n\t\treturn this._zoom + (Math.log(scale) / Math.LN2);\r\n\t},\r\n\r\n\r\n\t// conversion methods\r\n\r\n\tproject: function (latlng, zoom) { // (LatLng[, Number]) -> Point\r\n\t\tzoom = zoom === undefined ? this._zoom : zoom;\r\n\t\treturn this.options.crs.latLngToPoint(L.latLng(latlng), zoom);\r\n\t},\r\n\r\n\tunproject: function (point, zoom) { // (Point[, Number]) -> LatLng\r\n\t\tzoom = zoom === undefined ? this._zoom : zoom;\r\n\t\treturn this.options.crs.pointToLatLng(L.point(point), zoom);\r\n\t},\r\n\r\n\tlayerPointToLatLng: function (point) { // (Point)\r\n\t\tvar projectedPoint = L.point(point).add(this.getPixelOrigin());\r\n\t\treturn this.unproject(projectedPoint);\r\n\t},\r\n\r\n\tlatLngToLayerPoint: function (latlng) { // (LatLng)\r\n\t\tvar projectedPoint = this.project(L.latLng(latlng))._round();\r\n\t\treturn projectedPoint._subtract(this.getPixelOrigin());\r\n\t},\r\n\r\n\tcontainerPointToLayerPoint: function (point) { // (Point)\r\n\t\treturn L.point(point).subtract(this._getMapPanePos());\r\n\t},\r\n\r\n\tlayerPointToContainerPoint: function (point) { // (Point)\r\n\t\treturn L.point(point).add(this._getMapPanePos());\r\n\t},\r\n\r\n\tcontainerPointToLatLng: function (point) {\r\n\t\tvar layerPoint = this.containerPointToLayerPoint(L.point(point));\r\n\t\treturn this.layerPointToLatLng(layerPoint);\r\n\t},\r\n\r\n\tlatLngToContainerPoint: function (latlng) {\r\n\t\treturn this.layerPointToContainerPoint(this.latLngToLayerPoint(L.latLng(latlng)));\r\n\t},\r\n\r\n\tmouseEventToContainerPoint: function (e) { // (MouseEvent)\r\n\t\treturn L.DomEvent.getMousePosition(e, this._container);\r\n\t},\r\n\r\n\tmouseEventToLayerPoint: function (e) { // (MouseEvent)\r\n\t\treturn this.containerPointToLayerPoint(this.mouseEventToContainerPoint(e));\r\n\t},\r\n\r\n\tmouseEventToLatLng: function (e) { // (MouseEvent)\r\n\t\treturn this.layerPointToLatLng(this.mouseEventToLayerPoint(e));\r\n\t},\r\n\r\n\r\n\t// map initialization methods\r\n\r\n\t_initContainer: function (id) {\r\n\t\tvar container = this._container = L.DomUtil.get(id);\r\n\r\n\t\tif (!container) {\r\n\t\t\tthrow new Error('Map container not found.');\r\n\t\t} else if (container._leaflet) {\r\n\t\t\tthrow new Error('Map container is already initialized.');\r\n\t\t}\r\n\r\n\t\tcontainer._leaflet = true;\r\n\t},\r\n\r\n\t_initLayout: function () {\r\n\t\tvar container = this._container;\r\n\r\n\t\tL.DomUtil.addClass(container, 'leaflet-container' +\r\n\t\t\t(L.Browser.touch ? ' leaflet-touch' : '') +\r\n\t\t\t(L.Browser.retina ? ' leaflet-retina' : '') +\r\n\t\t\t(L.Browser.ielt9 ? ' leaflet-oldie' : '') +\r\n\t\t\t(this.options.fadeAnimation ? ' leaflet-fade-anim' : ''));\r\n\r\n\t\tvar position = L.DomUtil.getStyle(container, 'position');\r\n\r\n\t\tif (position !== 'absolute' && position !== 'relative' && position !== 'fixed') {\r\n\t\t\tcontainer.style.position = 'relative';\r\n\t\t}\r\n\r\n\t\tthis._initPanes();\r\n\r\n\t\tif (this._initControlPos) {\r\n\t\t\tthis._initControlPos();\r\n\t\t}\r\n\t},\r\n\r\n\t_initPanes: function () {\r\n\t\tvar panes = this._panes = {};\r\n\r\n\t\tthis._mapPane = panes.mapPane = this._createPane('leaflet-map-pane', this._container);\r\n\r\n\t\tthis._tilePane = panes.tilePane = this._createPane('leaflet-tile-pane', this._mapPane);\r\n\t\tpanes.objectsPane = this._createPane('leaflet-objects-pane', this._mapPane);\r\n\t\tpanes.shadowPane = this._createPane('leaflet-shadow-pane');\r\n\t\tpanes.overlayPane = this._createPane('leaflet-overlay-pane');\r\n\t\tpanes.markerPane = this._createPane('leaflet-marker-pane');\r\n\t\tpanes.popupPane = this._createPane('leaflet-popup-pane');\r\n\r\n\t\tvar zoomHide = ' leaflet-zoom-hide';\r\n\r\n\t\tif (!this.options.markerZoomAnimation) {\r\n\t\t\tL.DomUtil.addClass(panes.markerPane, zoomHide);\r\n\t\t\tL.DomUtil.addClass(panes.shadowPane, zoomHide);\r\n\t\t\tL.DomUtil.addClass(panes.popupPane, zoomHide);\r\n\t\t}\r\n\t},\r\n\r\n\t_createPane: function (className, container) {\r\n\t\treturn L.DomUtil.create('div', className, container || this._panes.objectsPane);\r\n\t},\r\n\r\n\t_clearPanes: function () {\r\n\t\tthis._container.removeChild(this._mapPane);\r\n\t},\r\n\r\n\t_addLayers: function (layers) {\r\n\t\tlayers = layers ? (L.Util.isArray(layers) ? layers : [layers]) : [];\r\n\r\n\t\tfor (var i = 0, len = layers.length; i < len; i++) {\r\n\t\t\tthis.addLayer(layers[i]);\r\n\t\t}\r\n\t},\r\n\r\n\r\n\t// private methods that modify map state\r\n\r\n\t_resetView: function (center, zoom, preserveMapOffset, afterZoomAnim) {\r\n\r\n\t\tvar zoomChanged = (this._zoom !== zoom);\r\n\r\n\t\tif (!afterZoomAnim) {\r\n\t\t\tthis.fire('movestart');\r\n\r\n\t\t\tif (zoomChanged) {\r\n\t\t\t\tthis.fire('zoomstart');\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tthis._zoom = zoom;\r\n\t\tthis._initialCenter = center;\r\n\r\n\t\tthis._initialTopLeftPoint = this._getNewTopLeftPoint(center);\r\n\r\n\t\tif (!preserveMapOffset) {\r\n\t\t\tL.DomUtil.setPosition(this._mapPane, new L.Point(0, 0));\r\n\t\t} else {\r\n\t\t\tthis._initialTopLeftPoint._add(this._getMapPanePos());\r\n\t\t}\r\n\r\n\t\tthis._tileLayersToLoad = this._tileLayersNum;\r\n\r\n\t\tvar loading = !this._loaded;\r\n\t\tthis._loaded = true;\r\n\r\n\t\tthis.fire('viewreset', {hard: !preserveMapOffset});\r\n\r\n\t\tif (loading) {\r\n\t\t\tthis.fire('load');\r\n\t\t\tthis.eachLayer(this._layerAdd, this);\r\n\t\t}\r\n\r\n\t\tthis.fire('move');\r\n\r\n\t\tif (zoomChanged || afterZoomAnim) {\r\n\t\t\tthis.fire('zoomend');\r\n\t\t}\r\n\r\n\t\tthis.fire('moveend', {hard: !preserveMapOffset});\r\n\t},\r\n\r\n\t_rawPanBy: function (offset) {\r\n\t\tL.DomUtil.setPosition(this._mapPane, this._getMapPanePos().subtract(offset));\r\n\t},\r\n\r\n\t_getZoomSpan: function () {\r\n\t\treturn this.getMaxZoom() - this.getMinZoom();\r\n\t},\r\n\r\n\t_updateZoomLevels: function () {\r\n\t\tvar i,\r\n\t\t\tminZoom = Infinity,\r\n\t\t\tmaxZoom = -Infinity,\r\n\t\t\toldZoomSpan = this._getZoomSpan();\r\n\r\n\t\tfor (i in this._zoomBoundLayers) {\r\n\t\t\tvar layer = this._zoomBoundLayers[i];\r\n\t\t\tif (!isNaN(layer.options.minZoom)) {\r\n\t\t\t\tminZoom = Math.min(minZoom, layer.options.minZoom);\r\n\t\t\t}\r\n\t\t\tif (!isNaN(layer.options.maxZoom)) {\r\n\t\t\t\tmaxZoom = Math.max(maxZoom, layer.options.maxZoom);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif (i === undefined) { // we have no tilelayers\r\n\t\t\tthis._layersMaxZoom = this._layersMinZoom = undefined;\r\n\t\t} else {\r\n\t\t\tthis._layersMaxZoom = maxZoom;\r\n\t\t\tthis._layersMinZoom = minZoom;\r\n\t\t}\r\n\r\n\t\tif (oldZoomSpan !== this._getZoomSpan()) {\r\n\t\t\tthis.fire('zoomlevelschange');\r\n\t\t}\r\n\t},\r\n\r\n\t_panInsideMaxBounds: function () {\r\n\t\tthis.panInsideBounds(this.options.maxBounds);\r\n\t},\r\n\r\n\t_checkIfLoaded: function () {\r\n\t\tif (!this._loaded) {\r\n\t\t\tthrow new Error('Set map center and zoom first.');\r\n\t\t}\r\n\t},\r\n\r\n\t// map events\r\n\r\n\t_initEvents: function (onOff) {\r\n\t\tif (!L.DomEvent) { return; }\r\n\r\n\t\tonOff = onOff || 'on';\r\n\r\n\t\tL.DomEvent[onOff](this._container, 'click', this._onMouseClick, this);\r\n\r\n\t\tvar events = ['dblclick', 'mousedown', 'mouseup', 'mouseenter',\r\n\t\t 'mouseleave', 'mousemove', 'contextmenu'],\r\n\t\t i, len;\r\n\r\n\t\tfor (i = 0, len = events.length; i < len; i++) {\r\n\t\t\tL.DomEvent[onOff](this._container, events[i], this._fireMouseEvent, this);\r\n\t\t}\r\n\r\n\t\tif (this.options.trackResize) {\r\n\t\t\tL.DomEvent[onOff](window, 'resize', this._onResize, this);\r\n\t\t}\r\n\t},\r\n\r\n\t_onResize: function () {\r\n\t\tL.Util.cancelAnimFrame(this._resizeRequest);\r\n\t\tthis._resizeRequest = L.Util.requestAnimFrame(\r\n\t\t function () { this.invalidateSize({debounceMoveend: true}); }, this, false, this._container);\r\n\t},\r\n\r\n\t_onMouseClick: function (e) {\r\n\t\tif (!this._loaded || (!e._simulated &&\r\n\t\t ((this.dragging && this.dragging.moved()) ||\r\n\t\t (this.boxZoom && this.boxZoom.moved()))) ||\r\n\t\t L.DomEvent._skipped(e)) { return; }\r\n\r\n\t\tthis.fire('preclick');\r\n\t\tthis._fireMouseEvent(e);\r\n\t},\r\n\r\n\t_fireMouseEvent: function (e) {\r\n\t\tif (!this._loaded || L.DomEvent._skipped(e)) { return; }\r\n\r\n\t\tvar type = e.type;\r\n\r\n\t\ttype = (type === 'mouseenter' ? 'mouseover' : (type === 'mouseleave' ? 'mouseout' : type));\r\n\r\n\t\tif (!this.hasEventListeners(type)) { return; }\r\n\r\n\t\tif (type === 'contextmenu') {\r\n\t\t\tL.DomEvent.preventDefault(e);\r\n\t\t}\r\n\r\n\t\tvar containerPoint = this.mouseEventToContainerPoint(e),\r\n\t\t layerPoint = this.containerPointToLayerPoint(containerPoint),\r\n\t\t latlng = this.layerPointToLatLng(layerPoint);\r\n\r\n\t\tthis.fire(type, {\r\n\t\t\tlatlng: latlng,\r\n\t\t\tlayerPoint: layerPoint,\r\n\t\t\tcontainerPoint: containerPoint,\r\n\t\t\toriginalEvent: e\r\n\t\t});\r\n\t},\r\n\r\n\t_onTileLayerLoad: function () {\r\n\t\tthis._tileLayersToLoad--;\r\n\t\tif (this._tileLayersNum && !this._tileLayersToLoad) {\r\n\t\t\tthis.fire('tilelayersload');\r\n\t\t}\r\n\t},\r\n\r\n\t_clearHandlers: function () {\r\n\t\tfor (var i = 0, len = this._handlers.length; i < len; i++) {\r\n\t\t\tthis._handlers[i].disable();\r\n\t\t}\r\n\t},\r\n\r\n\twhenReady: function (callback, context) {\r\n\t\tif (this._loaded) {\r\n\t\t\tcallback.call(context || this, this);\r\n\t\t} else {\r\n\t\t\tthis.on('load', callback, context);\r\n\t\t}\r\n\t\treturn this;\r\n\t},\r\n\r\n\t_layerAdd: function (layer) {\r\n\t\tlayer.onAdd(this);\r\n\t\tthis.fire('layeradd', {layer: layer});\r\n\t},\r\n\r\n\r\n\t// private methods for getting map state\r\n\r\n\t_getMapPanePos: function () {\r\n\t\treturn L.DomUtil.getPosition(this._mapPane);\r\n\t},\r\n\r\n\t_moved: function () {\r\n\t\tvar pos = this._getMapPanePos();\r\n\t\treturn pos && !pos.equals([0, 0]);\r\n\t},\r\n\r\n\t_getTopLeftPoint: function () {\r\n\t\treturn this.getPixelOrigin().subtract(this._getMapPanePos());\r\n\t},\r\n\r\n\t_getNewTopLeftPoint: function (center, zoom) {\r\n\t\tvar viewHalf = this.getSize()._divideBy(2);\r\n\t\t// TODO round on display, not calculation to increase precision?\r\n\t\treturn this.project(center, zoom)._subtract(viewHalf)._round();\r\n\t},\r\n\r\n\t_latLngToNewLayerPoint: function (latlng, newZoom, newCenter) {\r\n\t\tvar topLeft = this._getNewTopLeftPoint(newCenter, newZoom).add(this._getMapPanePos());\r\n\t\treturn this.project(latlng, newZoom)._subtract(topLeft);\r\n\t},\r\n\r\n\t// layer point of the current center\r\n\t_getCenterLayerPoint: function () {\r\n\t\treturn this.containerPointToLayerPoint(this.getSize()._divideBy(2));\r\n\t},\r\n\r\n\t// offset of the specified place to the current center in pixels\r\n\t_getCenterOffset: function (latlng) {\r\n\t\treturn this.latLngToLayerPoint(latlng).subtract(this._getCenterLayerPoint());\r\n\t},\r\n\r\n\t// adjust center for view to get inside bounds\r\n\t_limitCenter: function (center, zoom, bounds) {\r\n\r\n\t\tif (!bounds) { return center; }\r\n\r\n\t\tvar centerPoint = this.project(center, zoom),\r\n\t\t viewHalf = this.getSize().divideBy(2),\r\n\t\t viewBounds = new L.Bounds(centerPoint.subtract(viewHalf), centerPoint.add(viewHalf)),\r\n\t\t offset = this._getBoundsOffset(viewBounds, bounds, zoom);\r\n\r\n\t\treturn this.unproject(centerPoint.add(offset), zoom);\r\n\t},\r\n\r\n\t// adjust offset for view to get inside bounds\r\n\t_limitOffset: function (offset, bounds) {\r\n\t\tif (!bounds) { return offset; }\r\n\r\n\t\tvar viewBounds = this.getPixelBounds(),\r\n\t\t newBounds = new L.Bounds(viewBounds.min.add(offset), viewBounds.max.add(offset));\r\n\r\n\t\treturn offset.add(this._getBoundsOffset(newBounds, bounds));\r\n\t},\r\n\r\n\t// returns offset needed for pxBounds to get inside maxBounds at a specified zoom\r\n\t_getBoundsOffset: function (pxBounds, maxBounds, zoom) {\r\n\t\tvar nwOffset = this.project(maxBounds.getNorthWest(), zoom).subtract(pxBounds.min),\r\n\t\t seOffset = this.project(maxBounds.getSouthEast(), zoom).subtract(pxBounds.max),\r\n\r\n\t\t dx = this._rebound(nwOffset.x, -seOffset.x),\r\n\t\t dy = this._rebound(nwOffset.y, -seOffset.y);\r\n\r\n\t\treturn new L.Point(dx, dy);\r\n\t},\r\n\r\n\t_rebound: function (left, right) {\r\n\t\treturn left + right > 0 ?\r\n\t\t\tMath.round(left - right) / 2 :\r\n\t\t\tMath.max(0, Math.ceil(left)) - Math.max(0, Math.floor(right));\r\n\t},\r\n\r\n\t_limitZoom: function (zoom) {\r\n\t\tvar min = this.getMinZoom(),\r\n\t\t max = this.getMaxZoom();\r\n\r\n\t\treturn Math.max(min, Math.min(max, zoom));\r\n\t}\r\n});\r\n\r\nL.map = function (id, options) {\r\n\treturn new L.Map(id, options);\r\n};\r\n\n\n/*\r\n * Mercator projection that takes into account that the Earth is not a perfect sphere.\r\n * Less popular than spherical mercator; used by projections like EPSG:3395.\r\n */\r\n\r\nL.Projection.Mercator = {\r\n\tMAX_LATITUDE: 85.0840591556,\r\n\r\n\tR_MINOR: 6356752.314245179,\r\n\tR_MAJOR: 6378137,\r\n\r\n\tproject: function (latlng) { // (LatLng) -> Point\r\n\t\tvar d = L.LatLng.DEG_TO_RAD,\r\n\t\t max = this.MAX_LATITUDE,\r\n\t\t lat = Math.max(Math.min(max, latlng.lat), -max),\r\n\t\t r = this.R_MAJOR,\r\n\t\t r2 = this.R_MINOR,\r\n\t\t x = latlng.lng * d * r,\r\n\t\t y = lat * d,\r\n\t\t tmp = r2 / r,\r\n\t\t eccent = Math.sqrt(1.0 - tmp * tmp),\r\n\t\t con = eccent * Math.sin(y);\r\n\r\n\t\tcon = Math.pow((1 - con) / (1 + con), eccent * 0.5);\r\n\r\n\t\tvar ts = Math.tan(0.5 * ((Math.PI * 0.5) - y)) / con;\r\n\t\ty = -r * Math.log(ts);\r\n\r\n\t\treturn new L.Point(x, y);\r\n\t},\r\n\r\n\tunproject: function (point) { // (Point, Boolean) -> LatLng\r\n\t\tvar d = L.LatLng.RAD_TO_DEG,\r\n\t\t r = this.R_MAJOR,\r\n\t\t r2 = this.R_MINOR,\r\n\t\t lng = point.x * d / r,\r\n\t\t tmp = r2 / r,\r\n\t\t eccent = Math.sqrt(1 - (tmp * tmp)),\r\n\t\t ts = Math.exp(- point.y / r),\r\n\t\t phi = (Math.PI / 2) - 2 * Math.atan(ts),\r\n\t\t numIter = 15,\r\n\t\t tol = 1e-7,\r\n\t\t i = numIter,\r\n\t\t dphi = 0.1,\r\n\t\t con;\r\n\r\n\t\twhile ((Math.abs(dphi) > tol) && (--i > 0)) {\r\n\t\t\tcon = eccent * Math.sin(phi);\r\n\t\t\tdphi = (Math.PI / 2) - 2 * Math.atan(ts *\r\n\t\t\t Math.pow((1.0 - con) / (1.0 + con), 0.5 * eccent)) - phi;\r\n\t\t\tphi += dphi;\r\n\t\t}\r\n\r\n\t\treturn new L.LatLng(phi * d, lng);\r\n\t}\r\n};\r\n\n\n\r\nL.CRS.EPSG3395 = L.extend({}, L.CRS, {\r\n\tcode: 'EPSG:3395',\r\n\r\n\tprojection: L.Projection.Mercator,\r\n\r\n\ttransformation: (function () {\r\n\t\tvar m = L.Projection.Mercator,\r\n\t\t r = m.R_MAJOR,\r\n\t\t scale = 0.5 / (Math.PI * r);\r\n\r\n\t\treturn new L.Transformation(scale, 0.5, -scale, 0.5);\r\n\t}())\r\n});\r\n\n\n/*\r\n * L.TileLayer is used for standard xyz-numbered tile layers.\r\n */\r\n\r\nL.TileLayer = L.Class.extend({\r\n\tincludes: L.Mixin.Events,\r\n\r\n\toptions: {\r\n\t\tminZoom: 0,\r\n\t\tmaxZoom: 18,\r\n\t\ttileSize: 256,\r\n\t\tsubdomains: 'abc',\r\n\t\terrorTileUrl: '',\r\n\t\tattribution: '',\r\n\t\tzoomOffset: 0,\r\n\t\topacity: 1,\r\n\t\t/*\r\n\t\tmaxNativeZoom: null,\r\n\t\tzIndex: null,\r\n\t\ttms: false,\r\n\t\tcontinuousWorld: false,\r\n\t\tnoWrap: false,\r\n\t\tzoomReverse: false,\r\n\t\tdetectRetina: false,\r\n\t\treuseTiles: false,\r\n\t\tbounds: false,\r\n\t\t*/\r\n\t\tunloadInvisibleTiles: L.Browser.mobile,\r\n\t\tupdateWhenIdle: L.Browser.mobile\r\n\t},\r\n\r\n\tinitialize: function (url, options) {\r\n\t\toptions = L.setOptions(this, options);\r\n\r\n\t\t// detecting retina displays, adjusting tileSize and zoom levels\r\n\t\tif (options.detectRetina && L.Browser.retina && options.maxZoom > 0) {\r\n\r\n\t\t\toptions.tileSize = Math.floor(options.tileSize / 2);\r\n\t\t\toptions.zoomOffset++;\r\n\r\n\t\t\tif (options.minZoom > 0) {\r\n\t\t\t\toptions.minZoom--;\r\n\t\t\t}\r\n\t\t\tthis.options.maxZoom--;\r\n\t\t}\r\n\r\n\t\tif (options.bounds) {\r\n\t\t\toptions.bounds = L.latLngBounds(options.bounds);\r\n\t\t}\r\n\r\n\t\tthis._url = url;\r\n\r\n\t\tvar subdomains = this.options.subdomains;\r\n\r\n\t\tif (typeof subdomains === 'string') {\r\n\t\t\tthis.options.subdomains = subdomains.split('');\r\n\t\t}\r\n\t},\r\n\r\n\tonAdd: function (map) {\r\n\t\tthis._map = map;\r\n\t\tthis._animated = map._zoomAnimated;\r\n\r\n\t\t// create a container div for tiles\r\n\t\tthis._initContainer();\r\n\r\n\t\t// set up events\r\n\t\tmap.on({\r\n\t\t\t'viewreset': this._reset,\r\n\t\t\t'moveend': this._update\r\n\t\t}, this);\r\n\r\n\t\tif (this._animated) {\r\n\t\t\tmap.on({\r\n\t\t\t\t'zoomanim': this._animateZoom,\r\n\t\t\t\t'zoomend': this._endZoomAnim\r\n\t\t\t}, this);\r\n\t\t}\r\n\r\n\t\tif (!this.options.updateWhenIdle) {\r\n\t\t\tthis._limitedUpdate = L.Util.limitExecByInterval(this._update, 150, this);\r\n\t\t\tmap.on('move', this._limitedUpdate, this);\r\n\t\t}\r\n\r\n\t\tthis._reset();\r\n\t\tthis._update();\r\n\t},\r\n\r\n\taddTo: function (map) {\r\n\t\tmap.addLayer(this);\r\n\t\treturn this;\r\n\t},\r\n\r\n\tonRemove: function (map) {\r\n\t\tthis._container.parentNode.removeChild(this._container);\r\n\r\n\t\tmap.off({\r\n\t\t\t'viewreset': this._reset,\r\n\t\t\t'moveend': this._update\r\n\t\t}, this);\r\n\r\n\t\tif (this._animated) {\r\n\t\t\tmap.off({\r\n\t\t\t\t'zoomanim': this._animateZoom,\r\n\t\t\t\t'zoomend': this._endZoomAnim\r\n\t\t\t}, this);\r\n\t\t}\r\n\r\n\t\tif (!this.options.updateWhenIdle) {\r\n\t\t\tmap.off('move', this._limitedUpdate, this);\r\n\t\t}\r\n\r\n\t\tthis._container = null;\r\n\t\tthis._map = null;\r\n\t},\r\n\r\n\tbringToFront: function () {\r\n\t\tvar pane = this._map._panes.tilePane;\r\n\r\n\t\tif (this._container) {\r\n\t\t\tpane.appendChild(this._container);\r\n\t\t\tthis._setAutoZIndex(pane, Math.max);\r\n\t\t}\r\n\r\n\t\treturn this;\r\n\t},\r\n\r\n\tbringToBack: function () {\r\n\t\tvar pane = this._map._panes.tilePane;\r\n\r\n\t\tif (this._container) {\r\n\t\t\tpane.insertBefore(this._container, pane.firstChild);\r\n\t\t\tthis._setAutoZIndex(pane, Math.min);\r\n\t\t}\r\n\r\n\t\treturn this;\r\n\t},\r\n\r\n\tgetAttribution: function () {\r\n\t\treturn this.options.attribution;\r\n\t},\r\n\r\n\tgetContainer: function () {\r\n\t\treturn this._container;\r\n\t},\r\n\r\n\tsetOpacity: function (opacity) {\r\n\t\tthis.options.opacity = opacity;\r\n\r\n\t\tif (this._map) {\r\n\t\t\tthis._updateOpacity();\r\n\t\t}\r\n\r\n\t\treturn this;\r\n\t},\r\n\r\n\tsetZIndex: function (zIndex) {\r\n\t\tthis.options.zIndex = zIndex;\r\n\t\tthis._updateZIndex();\r\n\r\n\t\treturn this;\r\n\t},\r\n\r\n\tsetUrl: function (url, noRedraw) {\r\n\t\tthis._url = url;\r\n\r\n\t\tif (!noRedraw) {\r\n\t\t\tthis.redraw();\r\n\t\t}\r\n\r\n\t\treturn this;\r\n\t},\r\n\r\n\tredraw: function () {\r\n\t\tif (this._map) {\r\n\t\t\tthis._reset({hard: true});\r\n\t\t\tthis._update();\r\n\t\t}\r\n\t\treturn this;\r\n\t},\r\n\r\n\t_updateZIndex: function () {\r\n\t\tif (this._container && this.options.zIndex !== undefined) {\r\n\t\t\tthis._container.style.zIndex = this.options.zIndex;\r\n\t\t}\r\n\t},\r\n\r\n\t_setAutoZIndex: function (pane, compare) {\r\n\r\n\t\tvar layers = pane.children,\r\n\t\t edgeZIndex = -compare(Infinity, -Infinity), // -Infinity for max, Infinity for min\r\n\t\t zIndex, i, len;\r\n\r\n\t\tfor (i = 0, len = layers.length; i < len; i++) {\r\n\r\n\t\t\tif (layers[i] !== this._container) {\r\n\t\t\t\tzIndex = parseInt(layers[i].style.zIndex, 10);\r\n\r\n\t\t\t\tif (!isNaN(zIndex)) {\r\n\t\t\t\t\tedgeZIndex = compare(edgeZIndex, zIndex);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tthis.options.zIndex = this._container.style.zIndex =\r\n\t\t (isFinite(edgeZIndex) ? edgeZIndex : 0) + compare(1, -1);\r\n\t},\r\n\r\n\t_updateOpacity: function () {\r\n\t\tvar i,\r\n\t\t tiles = this._tiles;\r\n\r\n\t\tif (L.Browser.ielt9) {\r\n\t\t\tfor (i in tiles) {\r\n\t\t\t\tL.DomUtil.setOpacity(tiles[i], this.options.opacity);\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\tL.DomUtil.setOpacity(this._container, this.options.opacity);\r\n\t\t}\r\n\t},\r\n\r\n\t_initContainer: function () {\r\n\t\tvar tilePane = this._map._panes.tilePane;\r\n\r\n\t\tif (!this._container) {\r\n\t\t\tthis._container = L.DomUtil.create('div', 'leaflet-layer');\r\n\r\n\t\t\tthis._updateZIndex();\r\n\r\n\t\t\tif (this._animated) {\r\n\t\t\t\tvar className = 'leaflet-tile-container';\r\n\r\n\t\t\t\tthis._bgBuffer = L.DomUtil.create('div', className, this._container);\r\n\t\t\t\tthis._tileContainer = L.DomUtil.create('div', className, this._container);\r\n\r\n\t\t\t} else {\r\n\t\t\t\tthis._tileContainer = this._container;\r\n\t\t\t}\r\n\r\n\t\t\ttilePane.appendChild(this._container);\r\n\r\n\t\t\tif (this.options.opacity < 1) {\r\n\t\t\t\tthis._updateOpacity();\r\n\t\t\t}\r\n\t\t}\r\n\t},\r\n\r\n\t_reset: function (e) {\r\n\t\tfor (var key in this._tiles) {\r\n\t\t\tthis.fire('tileunload', {tile: this._tiles[key]});\r\n\t\t}\r\n\r\n\t\tthis._tiles = {};\r\n\t\tthis._tilesToLoad = 0;\r\n\r\n\t\tif (this.options.reuseTiles) {\r\n\t\t\tthis._unusedTiles = [];\r\n\t\t}\r\n\r\n\t\tthis._tileContainer.innerHTML = '';\r\n\r\n\t\tif (this._animated && e && e.hard) {\r\n\t\t\tthis._clearBgBuffer();\r\n\t\t}\r\n\r\n\t\tthis._initContainer();\r\n\t},\r\n\r\n\t_getTileSize: function () {\r\n\t\tvar map = this._map,\r\n\t\t zoom = map.getZoom() + this.options.zoomOffset,\r\n\t\t zoomN = this.options.maxNativeZoom,\r\n\t\t tileSize = this.options.tileSize;\r\n\r\n\t\tif (zoomN && zoom > zoomN) {\r\n\t\t\ttileSize = Math.round(map.getZoomScale(zoom) / map.getZoomScale(zoomN) * tileSize);\r\n\t\t}\r\n\r\n\t\treturn tileSize;\r\n\t},\r\n\r\n\t_update: function () {\r\n\r\n\t\tif (!this._map) { return; }\r\n\r\n\t\tvar map = this._map,\r\n\t\t bounds = map.getPixelBounds(),\r\n\t\t zoom = map.getZoom(),\r\n\t\t tileSize = this._getTileSize();\r\n\r\n\t\tif (zoom > this.options.maxZoom || zoom < this.options.minZoom) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tvar tileBounds = L.bounds(\r\n\t\t bounds.min.divideBy(tileSize)._floor(),\r\n\t\t bounds.max.divideBy(tileSize)._floor());\r\n\r\n\t\tthis._addTilesFromCenterOut(tileBounds);\r\n\r\n\t\tif (this.options.unloadInvisibleTiles || this.options.reuseTiles) {\r\n\t\t\tthis._removeOtherTiles(tileBounds);\r\n\t\t}\r\n\t},\r\n\r\n\t_addTilesFromCenterOut: function (bounds) {\r\n\t\tvar queue = [],\r\n\t\t center = bounds.getCenter();\r\n\r\n\t\tvar j, i, point;\r\n\r\n\t\tfor (j = bounds.min.y; j <= bounds.max.y; j++) {\r\n\t\t\tfor (i = bounds.min.x; i <= bounds.max.x; i++) {\r\n\t\t\t\tpoint = new L.Point(i, j);\r\n\r\n\t\t\t\tif (this._tileShouldBeLoaded(point)) {\r\n\t\t\t\t\tqueue.push(point);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tvar tilesToLoad = queue.length;\r\n\r\n\t\tif (tilesToLoad === 0) { return; }\r\n\r\n\t\t// load tiles in order of their distance to center\r\n\t\tqueue.sort(function (a, b) {\r\n\t\t\treturn a.distanceTo(center) - b.distanceTo(center);\r\n\t\t});\r\n\r\n\t\tvar fragment = document.createDocumentFragment();\r\n\r\n\t\t// if its the first batch of tiles to load\r\n\t\tif (!this._tilesToLoad) {\r\n\t\t\tthis.fire('loading');\r\n\t\t}\r\n\r\n\t\tthis._tilesToLoad += tilesToLoad;\r\n\r\n\t\tfor (i = 0; i < tilesToLoad; i++) {\r\n\t\t\tthis._addTile(queue[i], fragment);\r\n\t\t}\r\n\r\n\t\tthis._tileContainer.appendChild(fragment);\r\n\t},\r\n\r\n\t_tileShouldBeLoaded: function (tilePoint) {\r\n\t\tif ((tilePoint.x + ':' + tilePoint.y) in this._tiles) {\r\n\t\t\treturn false; // already loaded\r\n\t\t}\r\n\r\n\t\tvar options = this.options;\r\n\r\n\t\tif (!options.continuousWorld) {\r\n\t\t\tvar limit = this._getWrapTileNum();\r\n\r\n\t\t\t// don't load if exceeds world bounds\r\n\t\t\tif ((options.noWrap && (tilePoint.x < 0 || tilePoint.x >= limit.x)) ||\r\n\t\t\t\ttilePoint.y < 0 || tilePoint.y >= limit.y) { return false; }\r\n\t\t}\r\n\r\n\t\tif (options.bounds) {\r\n\t\t\tvar tileSize = this._getTileSize(),\r\n\t\t\t nwPoint = tilePoint.multiplyBy(tileSize),\r\n\t\t\t sePoint = nwPoint.add([tileSize, tileSize]),\r\n\t\t\t nw = this._map.unproject(nwPoint),\r\n\t\t\t se = this._map.unproject(sePoint);\r\n\r\n\t\t\t// TODO temporary hack, will be removed after refactoring projections\r\n\t\t\t// https://github.com/Leaflet/Leaflet/issues/1618\r\n\t\t\tif (!options.continuousWorld && !options.noWrap) {\r\n\t\t\t\tnw = nw.wrap();\r\n\t\t\t\tse = se.wrap();\r\n\t\t\t}\r\n\r\n\t\t\tif (!options.bounds.intersects([nw, se])) { return false; }\r\n\t\t}\r\n\r\n\t\treturn true;\r\n\t},\r\n\r\n\t_removeOtherTiles: function (bounds) {\r\n\t\tvar kArr, x, y, key;\r\n\r\n\t\tfor (key in this._tiles) {\r\n\t\t\tkArr = key.split(':');\r\n\t\t\tx = parseInt(kArr[0], 10);\r\n\t\t\ty = parseInt(kArr[1], 10);\r\n\r\n\t\t\t// remove tile if it's out of bounds\r\n\t\t\tif (x < bounds.min.x || x > bounds.max.x || y < bounds.min.y || y > bounds.max.y) {\r\n\t\t\t\tthis._removeTile(key);\r\n\t\t\t}\r\n\t\t}\r\n\t},\r\n\r\n\t_removeTile: function (key) {\r\n\t\tvar tile = this._tiles[key];\r\n\r\n\t\tthis.fire('tileunload', {tile: tile, url: tile.src});\r\n\r\n\t\tif (this.options.reuseTiles) {\r\n\t\t\tL.DomUtil.removeClass(tile, 'leaflet-tile-loaded');\r\n\t\t\tthis._unusedTiles.push(tile);\r\n\r\n\t\t} else if (tile.parentNode === this._tileContainer) {\r\n\t\t\tthis._tileContainer.removeChild(tile);\r\n\t\t}\r\n\r\n\t\t// for https://github.com/CloudMade/Leaflet/issues/137\r\n\t\tif (!L.Browser.android) {\r\n\t\t\ttile.onload = null;\r\n\t\t\ttile.src = L.Util.emptyImageUrl;\r\n\t\t}\r\n\r\n\t\tdelete this._tiles[key];\r\n\t},\r\n\r\n\t_addTile: function (tilePoint, container) {\r\n\t\tvar tilePos = this._getTilePos(tilePoint);\r\n\r\n\t\t// get unused tile - or create a new tile\r\n\t\tvar tile = this._getTile();\r\n\r\n\t\t/*\r\n\t\tChrome 20 layouts much faster with top/left (verify with timeline, frames)\r\n\t\tAndroid 4 browser has display issues with top/left and requires transform instead\r\n\t\t(other browsers don't currently care) - see debug/hacks/jitter.html for an example\r\n\t\t*/\r\n\t\tL.DomUtil.setPosition(tile, tilePos, L.Browser.chrome);\r\n\r\n\t\tthis._tiles[tilePoint.x + ':' + tilePoint.y] = tile;\r\n\r\n\t\tthis._loadTile(tile, tilePoint);\r\n\r\n\t\tif (tile.parentNode !== this._tileContainer) {\r\n\t\t\tcontainer.appendChild(tile);\r\n\t\t}\r\n\t},\r\n\r\n\t_getZoomForUrl: function () {\r\n\r\n\t\tvar options = this.options,\r\n\t\t zoom = this._map.getZoom();\r\n\r\n\t\tif (options.zoomReverse) {\r\n\t\t\tzoom = options.maxZoom - zoom;\r\n\t\t}\r\n\r\n\t\tzoom += options.zoomOffset;\r\n\r\n\t\treturn options.maxNativeZoom ? Math.min(zoom, options.maxNativeZoom) : zoom;\r\n\t},\r\n\r\n\t_getTilePos: function (tilePoint) {\r\n\t\tvar origin = this._map.getPixelOrigin(),\r\n\t\t tileSize = this._getTileSize();\r\n\r\n\t\treturn tilePoint.multiplyBy(tileSize).subtract(origin);\r\n\t},\r\n\r\n\t// image-specific code (override to implement e.g. Canvas or SVG tile layer)\r\n\r\n\tgetTileUrl: function (tilePoint) {\r\n\t\treturn L.Util.template(this._url, L.extend({\r\n\t\t\ts: this._getSubdomain(tilePoint),\r\n\t\t\tz: tilePoint.z,\r\n\t\t\tx: tilePoint.x,\r\n\t\t\ty: tilePoint.y\r\n\t\t}, this.options));\r\n\t},\r\n\r\n\t_getWrapTileNum: function () {\r\n\t\tvar crs = this._map.options.crs,\r\n\t\t size = crs.getSize(this._map.getZoom());\r\n\t\treturn size.divideBy(this._getTileSize())._floor();\r\n\t},\r\n\r\n\t_adjustTilePoint: function (tilePoint) {\r\n\r\n\t\tvar limit = this._getWrapTileNum();\r\n\r\n\t\t// wrap tile coordinates\r\n\t\tif (!this.options.continuousWorld && !this.options.noWrap) {\r\n\t\t\ttilePoint.x = ((tilePoint.x % limit.x) + limit.x) % limit.x;\r\n\t\t}\r\n\r\n\t\tif (this.options.tms) {\r\n\t\t\ttilePoint.y = limit.y - tilePoint.y - 1;\r\n\t\t}\r\n\r\n\t\ttilePoint.z = this._getZoomForUrl();\r\n\t},\r\n\r\n\t_getSubdomain: function (tilePoint) {\r\n\t\tvar index = Math.abs(tilePoint.x + tilePoint.y) % this.options.subdomains.length;\r\n\t\treturn this.options.subdomains[index];\r\n\t},\r\n\r\n\t_getTile: function () {\r\n\t\tif (this.options.reuseTiles && this._unusedTiles.length > 0) {\r\n\t\t\tvar tile = this._unusedTiles.pop();\r\n\t\t\tthis._resetTile(tile);\r\n\t\t\treturn tile;\r\n\t\t}\r\n\t\treturn this._createTile();\r\n\t},\r\n\r\n\t// Override if data stored on a tile needs to be cleaned up before reuse\r\n\t_resetTile: function (/*tile*/) {},\r\n\r\n\t_createTile: function () {\r\n\t\tvar tile = L.DomUtil.create('img', 'leaflet-tile');\r\n\t\ttile.style.width = tile.style.height = this._getTileSize() + 'px';\r\n\t\ttile.galleryimg = 'no';\r\n\r\n\t\ttile.onselectstart = tile.onmousemove = L.Util.falseFn;\r\n\r\n\t\tif (L.Browser.ielt9 && this.options.opacity !== undefined) {\r\n\t\t\tL.DomUtil.setOpacity(tile, this.options.opacity);\r\n\t\t}\r\n\t\t// without this hack, tiles disappear after zoom on Chrome for Android\r\n\t\t// https://github.com/Leaflet/Leaflet/issues/2078\r\n\t\tif (L.Browser.mobileWebkit3d) {\r\n\t\t\ttile.style.WebkitBackfaceVisibility = 'hidden';\r\n\t\t}\r\n\t\treturn tile;\r\n\t},\r\n\r\n\t_loadTile: function (tile, tilePoint) {\r\n\t\ttile._layer = this;\r\n\t\ttile.onload = this._tileOnLoad;\r\n\t\ttile.onerror = this._tileOnError;\r\n\r\n\t\tthis._adjustTilePoint(tilePoint);\r\n\t\ttile.src = this.getTileUrl(tilePoint);\r\n\r\n\t\tthis.fire('tileloadstart', {\r\n\t\t\ttile: tile,\r\n\t\t\turl: tile.src\r\n\t\t});\r\n\t},\r\n\r\n\t_tileLoaded: function () {\r\n\t\tthis._tilesToLoad--;\r\n\r\n\t\tif (this._animated) {\r\n\t\t\tL.DomUtil.addClass(this._tileContainer, 'leaflet-zoom-animated');\r\n\t\t}\r\n\r\n\t\tif (!this._tilesToLoad) {\r\n\t\t\tthis.fire('load');\r\n\r\n\t\t\tif (this._animated) {\r\n\t\t\t\t// clear scaled tiles after all new tiles are loaded (for performance)\r\n\t\t\t\tclearTimeout(this._clearBgBufferTimer);\r\n\t\t\t\tthis._clearBgBufferTimer = setTimeout(L.bind(this._clearBgBuffer, this), 500);\r\n\t\t\t}\r\n\t\t}\r\n\t},\r\n\r\n\t_tileOnLoad: function () {\r\n\t\tvar layer = this._layer;\r\n\r\n\t\t//Only if we are loading an actual image\r\n\t\tif (this.src !== L.Util.emptyImageUrl) {\r\n\t\t\tL.DomUtil.addClass(this, 'leaflet-tile-loaded');\r\n\r\n\t\t\tlayer.fire('tileload', {\r\n\t\t\t\ttile: this,\r\n\t\t\t\turl: this.src\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tlayer._tileLoaded();\r\n\t},\r\n\r\n\t_tileOnError: function () {\r\n\t\tvar layer = this._layer;\r\n\r\n\t\tlayer.fire('tileerror', {\r\n\t\t\ttile: this,\r\n\t\t\turl: this.src\r\n\t\t});\r\n\r\n\t\tvar newUrl = layer.options.errorTileUrl;\r\n\t\tif (newUrl) {\r\n\t\t\tthis.src = newUrl;\r\n\t\t}\r\n\r\n\t\tlayer._tileLoaded();\r\n\t}\r\n});\r\n\r\nL.tileLayer = function (url, options) {\r\n\treturn new L.TileLayer(url, options);\r\n};\r\n\n\n/*\r\n * L.TileLayer.WMS is used for putting WMS tile layers on the map.\r\n */\r\n\r\nL.TileLayer.WMS = L.TileLayer.extend({\r\n\r\n\tdefaultWmsParams: {\r\n\t\tservice: 'WMS',\r\n\t\trequest: 'GetMap',\r\n\t\tversion: '1.1.1',\r\n\t\tlayers: '',\r\n\t\tstyles: '',\r\n\t\tformat: 'image/jpeg',\r\n\t\ttransparent: false\r\n\t},\r\n\r\n\tinitialize: function (url, options) { // (String, Object)\r\n\r\n\t\tthis._url = url;\r\n\r\n\t\tvar wmsParams = L.extend({}, this.defaultWmsParams),\r\n\t\t tileSize = options.tileSize || this.options.tileSize;\r\n\r\n\t\tif (options.detectRetina && L.Browser.retina) {\r\n\t\t\twmsParams.width = wmsParams.height = tileSize * 2;\r\n\t\t} else {\r\n\t\t\twmsParams.width = wmsParams.height = tileSize;\r\n\t\t}\r\n\r\n\t\tfor (var i in options) {\r\n\t\t\t// all keys that are not TileLayer options go to WMS params\r\n\t\t\tif (!this.options.hasOwnProperty(i) && i !== 'crs') {\r\n\t\t\t\twmsParams[i] = options[i];\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tthis.wmsParams = wmsParams;\r\n\r\n\t\tL.setOptions(this, options);\r\n\t},\r\n\r\n\tonAdd: function (map) {\r\n\r\n\t\tthis._crs = this.options.crs || map.options.crs;\r\n\r\n\t\tthis._wmsVersion = parseFloat(this.wmsParams.version);\r\n\r\n\t\tvar projectionKey = this._wmsVersion >= 1.3 ? 'crs' : 'srs';\r\n\t\tthis.wmsParams[projectionKey] = this._crs.code;\r\n\r\n\t\tL.TileLayer.prototype.onAdd.call(this, map);\r\n\t},\r\n\r\n\tgetTileUrl: function (tilePoint) { // (Point, Number) -> String\r\n\r\n\t\tvar map = this._map,\r\n\t\t tileSize = this.options.tileSize,\r\n\r\n\t\t nwPoint = tilePoint.multiplyBy(tileSize),\r\n\t\t sePoint = nwPoint.add([tileSize, tileSize]),\r\n\r\n\t\t nw = this._crs.project(map.unproject(nwPoint, tilePoint.z)),\r\n\t\t se = this._crs.project(map.unproject(sePoint, tilePoint.z)),\r\n\t\t bbox = this._wmsVersion >= 1.3 && this._crs === L.CRS.EPSG4326 ?\r\n\t\t [se.y, nw.x, nw.y, se.x].join(',') :\r\n\t\t [nw.x, se.y, se.x, nw.y].join(','),\r\n\r\n\t\t url = L.Util.template(this._url, {s: this._getSubdomain(tilePoint)});\r\n\r\n\t\treturn url + L.Util.getParamString(this.wmsParams, url, true) + '&BBOX=' + bbox;\r\n\t},\r\n\r\n\tsetParams: function (params, noRedraw) {\r\n\r\n\t\tL.extend(this.wmsParams, params);\r\n\r\n\t\tif (!noRedraw) {\r\n\t\t\tthis.redraw();\r\n\t\t}\r\n\r\n\t\treturn this;\r\n\t}\r\n});\r\n\r\nL.tileLayer.wms = function (url, options) {\r\n\treturn new L.TileLayer.WMS(url, options);\r\n};\r\n\n\n/*\r\n * L.TileLayer.Canvas is a class that you can use as a base for creating\r\n * dynamically drawn Canvas-based tile layers.\r\n */\r\n\r\nL.TileLayer.Canvas = L.TileLayer.extend({\r\n\toptions: {\r\n\t\tasync: false\r\n\t},\r\n\r\n\tinitialize: function (options) {\r\n\t\tL.setOptions(this, options);\r\n\t},\r\n\r\n\tredraw: function () {\r\n\t\tif (this._map) {\r\n\t\t\tthis._reset({hard: true});\r\n\t\t\tthis._update();\r\n\t\t}\r\n\r\n\t\tfor (var i in this._tiles) {\r\n\t\t\tthis._redrawTile(this._tiles[i]);\r\n\t\t}\r\n\t\treturn this;\r\n\t},\r\n\r\n\t_redrawTile: function (tile) {\r\n\t\tthis.drawTile(tile, tile._tilePoint, this._map._zoom);\r\n\t},\r\n\r\n\t_createTile: function () {\r\n\t\tvar tile = L.DomUtil.create('canvas', 'leaflet-tile');\r\n\t\ttile.width = tile.height = this.options.tileSize;\r\n\t\ttile.onselectstart = tile.onmousemove = L.Util.falseFn;\r\n\t\treturn tile;\r\n\t},\r\n\r\n\t_loadTile: function (tile, tilePoint) {\r\n\t\ttile._layer = this;\r\n\t\ttile._tilePoint = tilePoint;\r\n\r\n\t\tthis._redrawTile(tile);\r\n\r\n\t\tif (!this.options.async) {\r\n\t\t\tthis.tileDrawn(tile);\r\n\t\t}\r\n\t},\r\n\r\n\tdrawTile: function (/*tile, tilePoint*/) {\r\n\t\t// override with rendering code\r\n\t},\r\n\r\n\ttileDrawn: function (tile) {\r\n\t\tthis._tileOnLoad.call(tile);\r\n\t}\r\n});\r\n\r\n\r\nL.tileLayer.canvas = function (options) {\r\n\treturn new L.TileLayer.Canvas(options);\r\n};\r\n\n\n/*\r\n * L.ImageOverlay is used to overlay images over the map (to specific geographical bounds).\r\n */\r\n\r\nL.ImageOverlay = L.Class.extend({\r\n\tincludes: L.Mixin.Events,\r\n\r\n\toptions: {\r\n\t\topacity: 1\r\n\t},\r\n\r\n\tinitialize: function (url, bounds, options) { // (String, LatLngBounds, Object)\r\n\t\tthis._url = url;\r\n\t\tthis._bounds = L.latLngBounds(bounds);\r\n\r\n\t\tL.setOptions(this, options);\r\n\t},\r\n\r\n\tonAdd: function (map) {\r\n\t\tthis._map = map;\r\n\r\n\t\tif (!this._image) {\r\n\t\t\tthis._initImage();\r\n\t\t}\r\n\r\n\t\tmap._panes.overlayPane.appendChild(this._image);\r\n\r\n\t\tmap.on('viewreset', this._reset, this);\r\n\r\n\t\tif (map.options.zoomAnimation && L.Browser.any3d) {\r\n\t\t\tmap.on('zoomanim', this._animateZoom, this);\r\n\t\t}\r\n\r\n\t\tthis._reset();\r\n\t},\r\n\r\n\tonRemove: function (map) {\r\n\t\tmap.getPanes().overlayPane.removeChild(this._image);\r\n\r\n\t\tmap.off('viewreset', this._reset, this);\r\n\r\n\t\tif (map.options.zoomAnimation) {\r\n\t\t\tmap.off('zoomanim', this._animateZoom, this);\r\n\t\t}\r\n\t},\r\n\r\n\taddTo: function (map) {\r\n\t\tmap.addLayer(this);\r\n\t\treturn this;\r\n\t},\r\n\r\n\tsetOpacity: function (opacity) {\r\n\t\tthis.options.opacity = opacity;\r\n\t\tthis._updateOpacity();\r\n\t\treturn this;\r\n\t},\r\n\r\n\t// TODO remove bringToFront/bringToBack duplication from TileLayer/Path\r\n\tbringToFront: function () {\r\n\t\tif (this._image) {\r\n\t\t\tthis._map._panes.overlayPane.appendChild(this._image);\r\n\t\t}\r\n\t\treturn this;\r\n\t},\r\n\r\n\tbringToBack: function () {\r\n\t\tvar pane = this._map._panes.overlayPane;\r\n\t\tif (this._image) {\r\n\t\t\tpane.insertBefore(this._image, pane.firstChild);\r\n\t\t}\r\n\t\treturn this;\r\n\t},\r\n\r\n\tsetUrl: function (url) {\r\n\t\tthis._url = url;\r\n\t\tthis._image.src = this._url;\r\n\t},\r\n\r\n\tgetAttribution: function () {\r\n\t\treturn this.options.attribution;\r\n\t},\r\n\r\n\t_initImage: function () {\r\n\t\tthis._image = L.DomUtil.create('img', 'leaflet-image-layer');\r\n\r\n\t\tif (this._map.options.zoomAnimation && L.Browser.any3d) {\r\n\t\t\tL.DomUtil.addClass(this._image, 'leaflet-zoom-animated');\r\n\t\t} else {\r\n\t\t\tL.DomUtil.addClass(this._image, 'leaflet-zoom-hide');\r\n\t\t}\r\n\r\n\t\tthis._updateOpacity();\r\n\r\n\t\t//TODO createImage util method to remove duplication\r\n\t\tL.extend(this._image, {\r\n\t\t\tgalleryimg: 'no',\r\n\t\t\tonselectstart: L.Util.falseFn,\r\n\t\t\tonmousemove: L.Util.falseFn,\r\n\t\t\tonload: L.bind(this._onImageLoad, this),\r\n\t\t\tsrc: this._url\r\n\t\t});\r\n\t},\r\n\r\n\t_animateZoom: function (e) {\r\n\t\tvar map = this._map,\r\n\t\t image = this._image,\r\n\t\t scale = map.getZoomScale(e.zoom),\r\n\t\t nw = this._bounds.getNorthWest(),\r\n\t\t se = this._bounds.getSouthEast(),\r\n\r\n\t\t topLeft = map._latLngToNewLayerPoint(nw, e.zoom, e.center),\r\n\t\t size = map._latLngToNewLayerPoint(se, e.zoom, e.center)._subtract(topLeft),\r\n\t\t origin = topLeft._add(size._multiplyBy((1 / 2) * (1 - 1 / scale)));\r\n\r\n\t\timage.style[L.DomUtil.TRANSFORM] =\r\n\t\t L.DomUtil.getTranslateString(origin) + ' scale(' + scale + ') ';\r\n\t},\r\n\r\n\t_reset: function () {\r\n\t\tvar image = this._image,\r\n\t\t topLeft = this._map.latLngToLayerPoint(this._bounds.getNorthWest()),\r\n\t\t size = this._map.latLngToLayerPoint(this._bounds.getSouthEast())._subtract(topLeft);\r\n\r\n\t\tL.DomUtil.setPosition(image, topLeft);\r\n\r\n\t\timage.style.width = size.x + 'px';\r\n\t\timage.style.height = size.y + 'px';\r\n\t},\r\n\r\n\t_onImageLoad: function () {\r\n\t\tthis.fire('load');\r\n\t},\r\n\r\n\t_updateOpacity: function () {\r\n\t\tL.DomUtil.setOpacity(this._image, this.options.opacity);\r\n\t}\r\n});\r\n\r\nL.imageOverlay = function (url, bounds, options) {\r\n\treturn new L.ImageOverlay(url, bounds, options);\r\n};\r\n\n\n/*\r\n * L.Icon is an image-based icon class that you can use with L.Marker for custom markers.\r\n */\r\n\r\nL.Icon = L.Class.extend({\r\n\toptions: {\r\n\t\t/*\r\n\t\ticonUrl: (String) (required)\r\n\t\ticonRetinaUrl: (String) (optional, used for retina devices if detected)\r\n\t\ticonSize: (Point) (can be set through CSS)\r\n\t\ticonAnchor: (Point) (centered by default, can be set in CSS with negative margins)\r\n\t\tpopupAnchor: (Point) (if not specified, popup opens in the anchor point)\r\n\t\tshadowUrl: (String) (no shadow by default)\r\n\t\tshadowRetinaUrl: (String) (optional, used for retina devices if detected)\r\n\t\tshadowSize: (Point)\r\n\t\tshadowAnchor: (Point)\r\n\t\t*/\r\n\t\tclassName: ''\r\n\t},\r\n\r\n\tinitialize: function (options) {\r\n\t\tL.setOptions(this, options);\r\n\t},\r\n\r\n\tcreateIcon: function (oldIcon) {\r\n\t\treturn this._createIcon('icon', oldIcon);\r\n\t},\r\n\r\n\tcreateShadow: function (oldIcon) {\r\n\t\treturn this._createIcon('shadow', oldIcon);\r\n\t},\r\n\r\n\t_createIcon: function (name, oldIcon) {\r\n\t\tvar src = this._getIconUrl(name);\r\n\r\n\t\tif (!src) {\r\n\t\t\tif (name === 'icon') {\r\n\t\t\t\tthrow new Error('iconUrl not set in Icon options (see the docs).');\r\n\t\t\t}\r\n\t\t\treturn null;\r\n\t\t}\r\n\r\n\t\tvar img;\r\n\t\tif (!oldIcon || oldIcon.tagName !== 'IMG') {\r\n\t\t\timg = this._createImg(src);\r\n\t\t} else {\r\n\t\t\timg = this._createImg(src, oldIcon);\r\n\t\t}\r\n\t\tthis._setIconStyles(img, name);\r\n\r\n\t\treturn img;\r\n\t},\r\n\r\n\t_setIconStyles: function (img, name) {\r\n\t\tvar options = this.options,\r\n\t\t size = L.point(options[name + 'Size']),\r\n\t\t anchor;\r\n\r\n\t\tif (name === 'shadow') {\r\n\t\t\tanchor = L.point(options.shadowAnchor || options.iconAnchor);\r\n\t\t} else {\r\n\t\t\tanchor = L.point(options.iconAnchor);\r\n\t\t}\r\n\r\n\t\tif (!anchor && size) {\r\n\t\t\tanchor = size.divideBy(2, true);\r\n\t\t}\r\n\r\n\t\timg.className = 'leaflet-marker-' + name + ' ' + options.className;\r\n\r\n\t\tif (anchor) {\r\n\t\t\timg.style.marginLeft = (-anchor.x) + 'px';\r\n\t\t\timg.style.marginTop = (-anchor.y) + 'px';\r\n\t\t}\r\n\r\n\t\tif (size) {\r\n\t\t\timg.style.width = size.x + 'px';\r\n\t\t\timg.style.height = size.y + 'px';\r\n\t\t}\r\n\t},\r\n\r\n\t_createImg: function (src, el) {\r\n\t\tel = el || document.createElement('img');\r\n\t\tel.src = src;\r\n\t\treturn el;\r\n\t},\r\n\r\n\t_getIconUrl: function (name) {\r\n\t\tif (L.Browser.retina && this.options[name + 'RetinaUrl']) {\r\n\t\t\treturn this.options[name + 'RetinaUrl'];\r\n\t\t}\r\n\t\treturn this.options[name + 'Url'];\r\n\t}\r\n});\r\n\r\nL.icon = function (options) {\r\n\treturn new L.Icon(options);\r\n};\r\n\n\n/*\n * L.Icon.Default is the blue marker icon used by default in Leaflet.\n */\n\nL.Icon.Default = L.Icon.extend({\n\n\toptions: {\n\t\ticonSize: [25, 41],\n\t\ticonAnchor: [12, 41],\n\t\tpopupAnchor: [1, -34],\n\n\t\tshadowSize: [41, 41]\n\t},\n\n\t_getIconUrl: function (name) {\n\t\tvar key = name + 'Url';\n\n\t\tif (this.options[key]) {\n\t\t\treturn this.options[key];\n\t\t}\n\n\t\tif (L.Browser.retina && name === 'icon') {\n\t\t\tname += '-2x';\n\t\t}\n\n\t\tvar path = L.Icon.Default.imagePath;\n\n\t\tif (!path) {\n\t\t\tthrow new Error('Couldn\\'t autodetect L.Icon.Default.imagePath, set it manually.');\n\t\t}\n\n\t\treturn path + '/marker-' + name + '.png';\n\t}\n});\n\nL.Icon.Default.imagePath = (function () {\n\tvar scripts = document.getElementsByTagName('script'),\n\t leafletRe = /[\\/^]leaflet[\\-\\._]?([\\w\\-\\._]*)\\.js\\??/;\n\n\tvar i, len, src, matches, path;\n\n\tfor (i = 0, len = scripts.length; i < len; i++) {\n\t\tsrc = scripts[i].src;\n\t\tmatches = src.match(leafletRe);\n\n\t\tif (matches) {\n\t\t\tpath = src.split(leafletRe)[0];\n\t\t\treturn (path ? path + '/' : '') + 'images';\n\t\t}\n\t}\n}());\n\n\n/*\r\n * L.Marker is used to display clickable/draggable icons on the map.\r\n */\r\n\r\nL.Marker = L.Class.extend({\r\n\r\n\tincludes: L.Mixin.Events,\r\n\r\n\toptions: {\r\n\t\ticon: new L.Icon.Default(),\r\n\t\ttitle: '',\r\n\t\talt: '',\r\n\t\tclickable: true,\r\n\t\tdraggable: false,\r\n\t\tkeyboard: true,\r\n\t\tzIndexOffset: 0,\r\n\t\topacity: 1,\r\n\t\triseOnHover: false,\r\n\t\triseOffset: 250\r\n\t},\r\n\r\n\tinitialize: function (latlng, options) {\r\n\t\tL.setOptions(this, options);\r\n\t\tthis._latlng = L.latLng(latlng);\r\n\t},\r\n\r\n\tonAdd: function (map) {\r\n\t\tthis._map = map;\r\n\r\n\t\tmap.on('viewreset', this.update, this);\r\n\r\n\t\tthis._initIcon();\r\n\t\tthis.update();\r\n\t\tthis.fire('add');\r\n\r\n\t\tif (map.options.zoomAnimation && map.options.markerZoomAnimation) {\r\n\t\t\tmap.on('zoomanim', this._animateZoom, this);\r\n\t\t}\r\n\t},\r\n\r\n\taddTo: function (map) {\r\n\t\tmap.addLayer(this);\r\n\t\treturn this;\r\n\t},\r\n\r\n\tonRemove: function (map) {\r\n\t\tif (this.dragging) {\r\n\t\t\tthis.dragging.disable();\r\n\t\t}\r\n\r\n\t\tthis._removeIcon();\r\n\t\tthis._removeShadow();\r\n\r\n\t\tthis.fire('remove');\r\n\r\n\t\tmap.off({\r\n\t\t\t'viewreset': this.update,\r\n\t\t\t'zoomanim': this._animateZoom\r\n\t\t}, this);\r\n\r\n\t\tthis._map = null;\r\n\t},\r\n\r\n\tgetLatLng: function () {\r\n\t\treturn this._latlng;\r\n\t},\r\n\r\n\tsetLatLng: function (latlng) {\r\n\t\tthis._latlng = L.latLng(latlng);\r\n\r\n\t\tthis.update();\r\n\r\n\t\treturn this.fire('move', { latlng: this._latlng });\r\n\t},\r\n\r\n\tsetZIndexOffset: function (offset) {\r\n\t\tthis.options.zIndexOffset = offset;\r\n\t\tthis.update();\r\n\r\n\t\treturn this;\r\n\t},\r\n\r\n\tsetIcon: function (icon) {\r\n\r\n\t\tthis.options.icon = icon;\r\n\r\n\t\tif (this._map) {\r\n\t\t\tthis._initIcon();\r\n\t\t\tthis.update();\r\n\t\t}\r\n\r\n\t\tif (this._popup) {\r\n\t\t\tthis.bindPopup(this._popup);\r\n\t\t}\r\n\r\n\t\treturn this;\r\n\t},\r\n\r\n\tupdate: function () {\r\n\t\tif (this._icon) {\r\n\t\t\tthis._setPos(this._map.latLngToLayerPoint(this._latlng).round());\r\n\t\t}\r\n\t\treturn this;\r\n\t},\r\n\r\n\t_initIcon: function () {\r\n\t\tvar options = this.options,\r\n\t\t map = this._map,\r\n\t\t animation = (map.options.zoomAnimation && map.options.markerZoomAnimation),\r\n\t\t classToAdd = animation ? 'leaflet-zoom-animated' : 'leaflet-zoom-hide';\r\n\r\n\t\tvar icon = options.icon.createIcon(this._icon),\r\n\t\t\taddIcon = false;\r\n\r\n\t\t// if we're not reusing the icon, remove the old one and init new one\r\n\t\tif (icon !== this._icon) {\r\n\t\t\tif (this._icon) {\r\n\t\t\t\tthis._removeIcon();\r\n\t\t\t}\r\n\t\t\taddIcon = true;\r\n\r\n\t\t\tif (options.title) {\r\n\t\t\t\ticon.title = options.title;\r\n\t\t\t}\r\n\r\n\t\t\tif (options.alt) {\r\n\t\t\t\ticon.alt = options.alt;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tL.DomUtil.addClass(icon, classToAdd);\r\n\r\n\t\tif (options.keyboard) {\r\n\t\t\ticon.tabIndex = '0';\r\n\t\t}\r\n\r\n\t\tthis._icon = icon;\r\n\r\n\t\tthis._initInteraction();\r\n\r\n\t\tif (options.riseOnHover) {\r\n\t\t\tL.DomEvent\r\n\t\t\t\t.on(icon, 'mouseover', this._bringToFront, this)\r\n\t\t\t\t.on(icon, 'mouseout', this._resetZIndex, this);\r\n\t\t}\r\n\r\n\t\tvar newShadow = options.icon.createShadow(this._shadow),\r\n\t\t\taddShadow = false;\r\n\r\n\t\tif (newShadow !== this._shadow) {\r\n\t\t\tthis._removeShadow();\r\n\t\t\taddShadow = true;\r\n\t\t}\r\n\r\n\t\tif (newShadow) {\r\n\t\t\tL.DomUtil.addClass(newShadow, classToAdd);\r\n\t\t}\r\n\t\tthis._shadow = newShadow;\r\n\r\n\r\n\t\tif (options.opacity < 1) {\r\n\t\t\tthis._updateOpacity();\r\n\t\t}\r\n\r\n\r\n\t\tvar panes = this._map._panes;\r\n\r\n\t\tif (addIcon) {\r\n\t\t\tpanes.markerPane.appendChild(this._icon);\r\n\t\t}\r\n\r\n\t\tif (newShadow && addShadow) {\r\n\t\t\tpanes.shadowPane.appendChild(this._shadow);\r\n\t\t}\r\n\t},\r\n\r\n\t_removeIcon: function () {\r\n\t\tif (this.options.riseOnHover) {\r\n\t\t\tL.DomEvent\r\n\t\t\t .off(this._icon, 'mouseover', this._bringToFront)\r\n\t\t\t .off(this._icon, 'mouseout', this._resetZIndex);\r\n\t\t}\r\n\r\n\t\tthis._map._panes.markerPane.removeChild(this._icon);\r\n\r\n\t\tthis._icon = null;\r\n\t},\r\n\r\n\t_removeShadow: function () {\r\n\t\tif (this._shadow) {\r\n\t\t\tthis._map._panes.shadowPane.removeChild(this._shadow);\r\n\t\t}\r\n\t\tthis._shadow = null;\r\n\t},\r\n\r\n\t_setPos: function (pos) {\r\n\t\tL.DomUtil.setPosition(this._icon, pos);\r\n\r\n\t\tif (this._shadow) {\r\n\t\t\tL.DomUtil.setPosition(this._shadow, pos);\r\n\t\t}\r\n\r\n\t\tthis._zIndex = pos.y + this.options.zIndexOffset;\r\n\r\n\t\tthis._resetZIndex();\r\n\t},\r\n\r\n\t_updateZIndex: function (offset) {\r\n\t\tthis._icon.style.zIndex = this._zIndex + offset;\r\n\t},\r\n\r\n\t_animateZoom: function (opt) {\r\n\t\tvar pos = this._map._latLngToNewLayerPoint(this._latlng, opt.zoom, opt.center).round();\r\n\r\n\t\tthis._setPos(pos);\r\n\t},\r\n\r\n\t_initInteraction: function () {\r\n\r\n\t\tif (!this.options.clickable) { return; }\r\n\r\n\t\t// TODO refactor into something shared with Map/Path/etc. to DRY it up\r\n\r\n\t\tvar icon = this._icon,\r\n\t\t events = ['dblclick', 'mousedown', 'mouseover', 'mouseout', 'contextmenu'];\r\n\r\n\t\tL.DomUtil.addClass(icon, 'leaflet-clickable');\r\n\t\tL.DomEvent.on(icon, 'click', this._onMouseClick, this);\r\n\t\tL.DomEvent.on(icon, 'keypress', this._onKeyPress, this);\r\n\r\n\t\tfor (var i = 0; i < events.length; i++) {\r\n\t\t\tL.DomEvent.on(icon, events[i], this._fireMouseEvent, this);\r\n\t\t}\r\n\r\n\t\tif (L.Handler.MarkerDrag) {\r\n\t\t\tthis.dragging = new L.Handler.MarkerDrag(this);\r\n\r\n\t\t\tif (this.options.draggable) {\r\n\t\t\t\tthis.dragging.enable();\r\n\t\t\t}\r\n\t\t}\r\n\t},\r\n\r\n\t_onMouseClick: function (e) {\r\n\t\tvar wasDragged = this.dragging && this.dragging.moved();\r\n\r\n\t\tif (this.hasEventListeners(e.type) || wasDragged) {\r\n\t\t\tL.DomEvent.stopPropagation(e);\r\n\t\t}\r\n\r\n\t\tif (wasDragged) { return; }\r\n\r\n\t\tif ((!this.dragging || !this.dragging._enabled) && this._map.dragging && this._map.dragging.moved()) { return; }\r\n\r\n\t\tthis.fire(e.type, {\r\n\t\t\toriginalEvent: e,\r\n\t\t\tlatlng: this._latlng\r\n\t\t});\r\n\t},\r\n\r\n\t_onKeyPress: function (e) {\r\n\t\tif (e.keyCode === 13) {\r\n\t\t\tthis.fire('click', {\r\n\t\t\t\toriginalEvent: e,\r\n\t\t\t\tlatlng: this._latlng\r\n\t\t\t});\r\n\t\t}\r\n\t},\r\n\r\n\t_fireMouseEvent: function (e) {\r\n\r\n\t\tthis.fire(e.type, {\r\n\t\t\toriginalEvent: e,\r\n\t\t\tlatlng: this._latlng\r\n\t\t});\r\n\r\n\t\t// TODO proper custom event propagation\r\n\t\t// this line will always be called if marker is in a FeatureGroup\r\n\t\tif (e.type === 'contextmenu' && this.hasEventListeners(e.type)) {\r\n\t\t\tL.DomEvent.preventDefault(e);\r\n\t\t}\r\n\t\tif (e.type !== 'mousedown') {\r\n\t\t\tL.DomEvent.stopPropagation(e);\r\n\t\t} else {\r\n\t\t\tL.DomEvent.preventDefault(e);\r\n\t\t}\r\n\t},\r\n\r\n\tsetOpacity: function (opacity) {\r\n\t\tthis.options.opacity = opacity;\r\n\t\tif (this._map) {\r\n\t\t\tthis._updateOpacity();\r\n\t\t}\r\n\r\n\t\treturn this;\r\n\t},\r\n\r\n\t_updateOpacity: function () {\r\n\t\tL.DomUtil.setOpacity(this._icon, this.options.opacity);\r\n\t\tif (this._shadow) {\r\n\t\t\tL.DomUtil.setOpacity(this._shadow, this.options.opacity);\r\n\t\t}\r\n\t},\r\n\r\n\t_bringToFront: function () {\r\n\t\tthis._updateZIndex(this.options.riseOffset);\r\n\t},\r\n\r\n\t_resetZIndex: function () {\r\n\t\tthis._updateZIndex(0);\r\n\t}\r\n});\r\n\r\nL.marker = function (latlng, options) {\r\n\treturn new L.Marker(latlng, options);\r\n};\r\n\n\n/*\n * L.DivIcon is a lightweight HTML-based icon class (as opposed to the image-based L.Icon)\n * to use with L.Marker.\n */\n\nL.DivIcon = L.Icon.extend({\n\toptions: {\n\t\ticonSize: [12, 12], // also can be set through CSS\n\t\t/*\n\t\ticonAnchor: (Point)\n\t\tpopupAnchor: (Point)\n\t\thtml: (String)\n\t\tbgPos: (Point)\n\t\t*/\n\t\tclassName: 'leaflet-div-icon',\n\t\thtml: false\n\t},\n\n\tcreateIcon: function (oldIcon) {\n\t\tvar div = (oldIcon && oldIcon.tagName === 'DIV') ? oldIcon : document.createElement('div'),\n\t\t options = this.options;\n\n\t\tif (options.html !== false) {\n\t\t\tdiv.innerHTML = options.html;\n\t\t} else {\n\t\t\tdiv.innerHTML = '';\n\t\t}\n\n\t\tif (options.bgPos) {\n\t\t\tdiv.style.backgroundPosition =\n\t\t\t (-options.bgPos.x) + 'px ' + (-options.bgPos.y) + 'px';\n\t\t}\n\n\t\tthis._setIconStyles(div, 'icon');\n\t\treturn div;\n\t},\n\n\tcreateShadow: function () {\n\t\treturn null;\n\t}\n});\n\nL.divIcon = function (options) {\n\treturn new L.DivIcon(options);\n};\n\n\n/*\r\n * L.Popup is used for displaying popups on the map.\r\n */\r\n\r\nL.Map.mergeOptions({\r\n\tclosePopupOnClick: true\r\n});\r\n\r\nL.Popup = L.Class.extend({\r\n\tincludes: L.Mixin.Events,\r\n\r\n\toptions: {\r\n\t\tminWidth: 50,\r\n\t\tmaxWidth: 300,\r\n\t\t// maxHeight: null,\r\n\t\tautoPan: true,\r\n\t\tcloseButton: true,\r\n\t\toffset: [0, 7],\r\n\t\tautoPanPadding: [5, 5],\r\n\t\t// autoPanPaddingTopLeft: null,\r\n\t\t// autoPanPaddingBottomRight: null,\r\n\t\tkeepInView: false,\r\n\t\tclassName: '',\r\n\t\tzoomAnimation: true\r\n\t},\r\n\r\n\tinitialize: function (options, source) {\r\n\t\tL.setOptions(this, options);\r\n\r\n\t\tthis._source = source;\r\n\t\tthis._animated = L.Browser.any3d && this.options.zoomAnimation;\r\n\t\tthis._isOpen = false;\r\n\t},\r\n\r\n\tonAdd: function (map) {\r\n\t\tthis._map = map;\r\n\r\n\t\tif (!this._container) {\r\n\t\t\tthis._initLayout();\r\n\t\t}\r\n\r\n\t\tvar animFade = map.options.fadeAnimation;\r\n\r\n\t\tif (animFade) {\r\n\t\t\tL.DomUtil.setOpacity(this._container, 0);\r\n\t\t}\r\n\t\tmap._panes.popupPane.appendChild(this._container);\r\n\r\n\t\tmap.on(this._getEvents(), this);\r\n\r\n\t\tthis.update();\r\n\r\n\t\tif (animFade) {\r\n\t\t\tL.DomUtil.setOpacity(this._container, 1);\r\n\t\t}\r\n\r\n\t\tthis.fire('open');\r\n\r\n\t\tmap.fire('popupopen', {popup: this});\r\n\r\n\t\tif (this._source) {\r\n\t\t\tthis._source.fire('popupopen', {popup: this});\r\n\t\t}\r\n\t},\r\n\r\n\taddTo: function (map) {\r\n\t\tmap.addLayer(this);\r\n\t\treturn this;\r\n\t},\r\n\r\n\topenOn: function (map) {\r\n\t\tmap.openPopup(this);\r\n\t\treturn this;\r\n\t},\r\n\r\n\tonRemove: function (map) {\r\n\t\tmap._panes.popupPane.removeChild(this._container);\r\n\r\n\t\tL.Util.falseFn(this._container.offsetWidth); // force reflow\r\n\r\n\t\tmap.off(this._getEvents(), this);\r\n\r\n\t\tif (map.options.fadeAnimation) {\r\n\t\t\tL.DomUtil.setOpacity(this._container, 0);\r\n\t\t}\r\n\r\n\t\tthis._map = null;\r\n\r\n\t\tthis.fire('close');\r\n\r\n\t\tmap.fire('popupclose', {popup: this});\r\n\r\n\t\tif (this._source) {\r\n\t\t\tthis._source.fire('popupclose', {popup: this});\r\n\t\t}\r\n\t},\r\n\r\n\tgetLatLng: function () {\r\n\t\treturn this._latlng;\r\n\t},\r\n\r\n\tsetLatLng: function (latlng) {\r\n\t\tthis._latlng = L.latLng(latlng);\r\n\t\tif (this._map) {\r\n\t\t\tthis._updatePosition();\r\n\t\t\tthis._adjustPan();\r\n\t\t}\r\n\t\treturn this;\r\n\t},\r\n\r\n\tgetContent: function () {\r\n\t\treturn this._content;\r\n\t},\r\n\r\n\tsetContent: function (content) {\r\n\t\tthis._content = content;\r\n\t\tthis.update();\r\n\t\treturn this;\r\n\t},\r\n\r\n\tupdate: function () {\r\n\t\tif (!this._map) { return; }\r\n\r\n\t\tthis._container.style.visibility = 'hidden';\r\n\r\n\t\tthis._updateContent();\r\n\t\tthis._updateLayout();\r\n\t\tthis._updatePosition();\r\n\r\n\t\tthis._container.style.visibility = '';\r\n\r\n\t\tthis._adjustPan();\r\n\t},\r\n\r\n\t_getEvents: function () {\r\n\t\tvar events = {\r\n\t\t\tviewreset: this._updatePosition\r\n\t\t};\r\n\r\n\t\tif (this._animated) {\r\n\t\t\tevents.zoomanim = this._zoomAnimation;\r\n\t\t}\r\n\t\tif ('closeOnClick' in this.options ? this.options.closeOnClick : this._map.options.closePopupOnClick) {\r\n\t\t\tevents.preclick = this._close;\r\n\t\t}\r\n\t\tif (this.options.keepInView) {\r\n\t\t\tevents.moveend = this._adjustPan;\r\n\t\t}\r\n\r\n\t\treturn events;\r\n\t},\r\n\r\n\t_close: function () {\r\n\t\tif (this._map) {\r\n\t\t\tthis._map.closePopup(this);\r\n\t\t}\r\n\t},\r\n\r\n\t_initLayout: function () {\r\n\t\tvar prefix = 'leaflet-popup',\r\n\t\t\tcontainerClass = prefix + ' ' + this.options.className + ' leaflet-zoom-' +\r\n\t\t\t (this._animated ? 'animated' : 'hide'),\r\n\t\t\tcontainer = this._container = L.DomUtil.create('div', containerClass),\r\n\t\t\tcloseButton;\r\n\r\n\t\tif (this.options.closeButton) {\r\n\t\t\tcloseButton = this._closeButton =\r\n\t\t\t L.DomUtil.create('a', prefix + '-close-button', container);\r\n\t\t\tcloseButton.href = '#close';\r\n\t\t\tcloseButton.innerHTML = '×';\r\n\t\t\tL.DomEvent.disableClickPropagation(closeButton);\r\n\r\n\t\t\tL.DomEvent.on(closeButton, 'click', this._onCloseButtonClick, this);\r\n\t\t}\r\n\r\n\t\tvar wrapper = this._wrapper =\r\n\t\t L.DomUtil.create('div', prefix + '-content-wrapper', container);\r\n\t\tL.DomEvent.disableClickPropagation(wrapper);\r\n\r\n\t\tthis._contentNode = L.DomUtil.create('div', prefix + '-content', wrapper);\r\n\r\n\t\tL.DomEvent.disableScrollPropagation(this._contentNode);\r\n\t\tL.DomEvent.on(wrapper, 'contextmenu', L.DomEvent.stopPropagation);\r\n\r\n\t\tthis._tipContainer = L.DomUtil.create('div', prefix + '-tip-container', container);\r\n\t\tthis._tip = L.DomUtil.create('div', prefix + '-tip', this._tipContainer);\r\n\t},\r\n\r\n\t_updateContent: function () {\r\n\t\tif (!this._content) { return; }\r\n\r\n\t\tif (typeof this._content === 'string') {\r\n\t\t\tthis._contentNode.innerHTML = this._content;\r\n\t\t} else {\r\n\t\t\twhile (this._contentNode.hasChildNodes()) {\r\n\t\t\t\tthis._contentNode.removeChild(this._contentNode.firstChild);\r\n\t\t\t}\r\n\t\t\tthis._contentNode.appendChild(this._content);\r\n\t\t}\r\n\t\tthis.fire('contentupdate');\r\n\t},\r\n\r\n\t_updateLayout: function () {\r\n\t\tvar container = this._contentNode,\r\n\t\t style = container.style;\r\n\r\n\t\tstyle.width = '';\r\n\t\tstyle.whiteSpace = 'nowrap';\r\n\r\n\t\tvar width = container.offsetWidth;\r\n\t\twidth = Math.min(width, this.options.maxWidth);\r\n\t\twidth = Math.max(width, this.options.minWidth);\r\n\r\n\t\tstyle.width = (width + 1) + 'px';\r\n\t\tstyle.whiteSpace = '';\r\n\r\n\t\tstyle.height = '';\r\n\r\n\t\tvar height = container.offsetHeight,\r\n\t\t maxHeight = this.options.maxHeight,\r\n\t\t scrolledClass = 'leaflet-popup-scrolled';\r\n\r\n\t\tif (maxHeight && height > maxHeight) {\r\n\t\t\tstyle.height = maxHeight + 'px';\r\n\t\t\tL.DomUtil.addClass(container, scrolledClass);\r\n\t\t} else {\r\n\t\t\tL.DomUtil.removeClass(container, scrolledClass);\r\n\t\t}\r\n\r\n\t\tthis._containerWidth = this._container.offsetWidth;\r\n\t},\r\n\r\n\t_updatePosition: function () {\r\n\t\tif (!this._map) { return; }\r\n\r\n\t\tvar pos = this._map.latLngToLayerPoint(this._latlng),\r\n\t\t animated = this._animated,\r\n\t\t offset = L.point(this.options.offset);\r\n\r\n\t\tif (animated) {\r\n\t\t\tL.DomUtil.setPosition(this._container, pos);\r\n\t\t}\r\n\r\n\t\tthis._containerBottom = -offset.y - (animated ? 0 : pos.y);\r\n\t\tthis._containerLeft = -Math.round(this._containerWidth / 2) + offset.x + (animated ? 0 : pos.x);\r\n\r\n\t\t// bottom position the popup in case the height of the popup changes (images loading etc)\r\n\t\tthis._container.style.bottom = this._containerBottom + 'px';\r\n\t\tthis._container.style.left = this._containerLeft + 'px';\r\n\t},\r\n\r\n\t_zoomAnimation: function (opt) {\r\n\t\tvar pos = this._map._latLngToNewLayerPoint(this._latlng, opt.zoom, opt.center);\r\n\r\n\t\tL.DomUtil.setPosition(this._container, pos);\r\n\t},\r\n\r\n\t_adjustPan: function () {\r\n\t\tif (!this.options.autoPan) { return; }\r\n\r\n\t\tvar map = this._map,\r\n\t\t containerHeight = this._container.offsetHeight,\r\n\t\t containerWidth = this._containerWidth,\r\n\r\n\t\t layerPos = new L.Point(this._containerLeft, -containerHeight - this._containerBottom);\r\n\r\n\t\tif (this._animated) {\r\n\t\t\tlayerPos._add(L.DomUtil.getPosition(this._container));\r\n\t\t}\r\n\r\n\t\tvar containerPos = map.layerPointToContainerPoint(layerPos),\r\n\t\t padding = L.point(this.options.autoPanPadding),\r\n\t\t paddingTL = L.point(this.options.autoPanPaddingTopLeft || padding),\r\n\t\t paddingBR = L.point(this.options.autoPanPaddingBottomRight || padding),\r\n\t\t size = map.getSize(),\r\n\t\t dx = 0,\r\n\t\t dy = 0;\r\n\r\n\t\tif (containerPos.x + containerWidth + paddingBR.x > size.x) { // right\r\n\t\t\tdx = containerPos.x + containerWidth - size.x + paddingBR.x;\r\n\t\t}\r\n\t\tif (containerPos.x - dx - paddingTL.x < 0) { // left\r\n\t\t\tdx = containerPos.x - paddingTL.x;\r\n\t\t}\r\n\t\tif (containerPos.y + containerHeight + paddingBR.y > size.y) { // bottom\r\n\t\t\tdy = containerPos.y + containerHeight - size.y + paddingBR.y;\r\n\t\t}\r\n\t\tif (containerPos.y - dy - paddingTL.y < 0) { // top\r\n\t\t\tdy = containerPos.y - paddingTL.y;\r\n\t\t}\r\n\r\n\t\tif (dx || dy) {\r\n\t\t\tmap\r\n\t\t\t .fire('autopanstart')\r\n\t\t\t .panBy([dx, dy]);\r\n\t\t}\r\n\t},\r\n\r\n\t_onCloseButtonClick: function (e) {\r\n\t\tthis._close();\r\n\t\tL.DomEvent.stop(e);\r\n\t}\r\n});\r\n\r\nL.popup = function (options, source) {\r\n\treturn new L.Popup(options, source);\r\n};\r\n\r\n\r\nL.Map.include({\r\n\topenPopup: function (popup, latlng, options) { // (Popup) or (String || HTMLElement, LatLng[, Object])\r\n\t\tthis.closePopup();\r\n\r\n\t\tif (!(popup instanceof L.Popup)) {\r\n\t\t\tvar content = popup;\r\n\r\n\t\t\tpopup = new L.Popup(options)\r\n\t\t\t .setLatLng(latlng)\r\n\t\t\t .setContent(content);\r\n\t\t}\r\n\t\tpopup._isOpen = true;\r\n\r\n\t\tthis._popup = popup;\r\n\t\treturn this.addLayer(popup);\r\n\t},\r\n\r\n\tclosePopup: function (popup) {\r\n\t\tif (!popup || popup === this._popup) {\r\n\t\t\tpopup = this._popup;\r\n\t\t\tthis._popup = null;\r\n\t\t}\r\n\t\tif (popup) {\r\n\t\t\tthis.removeLayer(popup);\r\n\t\t\tpopup._isOpen = false;\r\n\t\t}\r\n\t\treturn this;\r\n\t}\r\n});\r\n\n\n/*\r\n * Popup extension to L.Marker, adding popup-related methods.\r\n */\r\n\r\nL.Marker.include({\r\n\topenPopup: function () {\r\n\t\tif (this._popup && this._map && !this._map.hasLayer(this._popup)) {\r\n\t\t\tthis._popup.setLatLng(this._latlng);\r\n\t\t\tthis._map.openPopup(this._popup);\r\n\t\t}\r\n\r\n\t\treturn this;\r\n\t},\r\n\r\n\tclosePopup: function () {\r\n\t\tif (this._popup) {\r\n\t\t\tthis._popup._close();\r\n\t\t}\r\n\t\treturn this;\r\n\t},\r\n\r\n\ttogglePopup: function () {\r\n\t\tif (this._popup) {\r\n\t\t\tif (this._popup._isOpen) {\r\n\t\t\t\tthis.closePopup();\r\n\t\t\t} else {\r\n\t\t\t\tthis.openPopup();\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn this;\r\n\t},\r\n\r\n\tbindPopup: function (content, options) {\r\n\t\tvar anchor = L.point(this.options.icon.options.popupAnchor || [0, 0]);\r\n\r\n\t\tanchor = anchor.add(L.Popup.prototype.options.offset);\r\n\r\n\t\tif (options && options.offset) {\r\n\t\t\tanchor = anchor.add(options.offset);\r\n\t\t}\r\n\r\n\t\toptions = L.extend({offset: anchor}, options);\r\n\r\n\t\tif (!this._popupHandlersAdded) {\r\n\t\t\tthis\r\n\t\t\t .on('click', this.togglePopup, this)\r\n\t\t\t .on('remove', this.closePopup, this)\r\n\t\t\t .on('move', this._movePopup, this);\r\n\t\t\tthis._popupHandlersAdded = true;\r\n\t\t}\r\n\r\n\t\tif (content instanceof L.Popup) {\r\n\t\t\tL.setOptions(content, options);\r\n\t\t\tthis._popup = content;\r\n\t\t\tcontent._source = this;\r\n\t\t} else {\r\n\t\t\tthis._popup = new L.Popup(options, this)\r\n\t\t\t\t.setContent(content);\r\n\t\t}\r\n\r\n\t\treturn this;\r\n\t},\r\n\r\n\tsetPopupContent: function (content) {\r\n\t\tif (this._popup) {\r\n\t\t\tthis._popup.setContent(content);\r\n\t\t}\r\n\t\treturn this;\r\n\t},\r\n\r\n\tunbindPopup: function () {\r\n\t\tif (this._popup) {\r\n\t\t\tthis._popup = null;\r\n\t\t\tthis\r\n\t\t\t .off('click', this.togglePopup, this)\r\n\t\t\t .off('remove', this.closePopup, this)\r\n\t\t\t .off('move', this._movePopup, this);\r\n\t\t\tthis._popupHandlersAdded = false;\r\n\t\t}\r\n\t\treturn this;\r\n\t},\r\n\r\n\tgetPopup: function () {\r\n\t\treturn this._popup;\r\n\t},\r\n\r\n\t_movePopup: function (e) {\r\n\t\tthis._popup.setLatLng(e.latlng);\r\n\t}\r\n});\r\n\n\n/*\r\n * L.LayerGroup is a class to combine several layers into one so that\r\n * you can manipulate the group (e.g. add/remove it) as one layer.\r\n */\r\n\r\nL.LayerGroup = L.Class.extend({\r\n\tinitialize: function (layers) {\r\n\t\tthis._layers = {};\r\n\r\n\t\tvar i, len;\r\n\r\n\t\tif (layers) {\r\n\t\t\tfor (i = 0, len = layers.length; i < len; i++) {\r\n\t\t\t\tthis.addLayer(layers[i]);\r\n\t\t\t}\r\n\t\t}\r\n\t},\r\n\r\n\taddLayer: function (layer) {\r\n\t\tvar id = this.getLayerId(layer);\r\n\r\n\t\tthis._layers[id] = layer;\r\n\r\n\t\tif (this._map) {\r\n\t\t\tthis._map.addLayer(layer);\r\n\t\t}\r\n\r\n\t\treturn this;\r\n\t},\r\n\r\n\tremoveLayer: function (layer) {\r\n\t\tvar id = layer in this._layers ? layer : this.getLayerId(layer);\r\n\r\n\t\tif (this._map && this._layers[id]) {\r\n\t\t\tthis._map.removeLayer(this._layers[id]);\r\n\t\t}\r\n\r\n\t\tdelete this._layers[id];\r\n\r\n\t\treturn this;\r\n\t},\r\n\r\n\thasLayer: function (layer) {\r\n\t\tif (!layer) { return false; }\r\n\r\n\t\treturn (layer in this._layers || this.getLayerId(layer) in this._layers);\r\n\t},\r\n\r\n\tclearLayers: function () {\r\n\t\tthis.eachLayer(this.removeLayer, this);\r\n\t\treturn this;\r\n\t},\r\n\r\n\tinvoke: function (methodName) {\r\n\t\tvar args = Array.prototype.slice.call(arguments, 1),\r\n\t\t i, layer;\r\n\r\n\t\tfor (i in this._layers) {\r\n\t\t\tlayer = this._layers[i];\r\n\r\n\t\t\tif (layer[methodName]) {\r\n\t\t\t\tlayer[methodName].apply(layer, args);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn this;\r\n\t},\r\n\r\n\tonAdd: function (map) {\r\n\t\tthis._map = map;\r\n\t\tthis.eachLayer(map.addLayer, map);\r\n\t},\r\n\r\n\tonRemove: function (map) {\r\n\t\tthis.eachLayer(map.removeLayer, map);\r\n\t\tthis._map = null;\r\n\t},\r\n\r\n\taddTo: function (map) {\r\n\t\tmap.addLayer(this);\r\n\t\treturn this;\r\n\t},\r\n\r\n\teachLayer: function (method, context) {\r\n\t\tfor (var i in this._layers) {\r\n\t\t\tmethod.call(context, this._layers[i]);\r\n\t\t}\r\n\t\treturn this;\r\n\t},\r\n\r\n\tgetLayer: function (id) {\r\n\t\treturn this._layers[id];\r\n\t},\r\n\r\n\tgetLayers: function () {\r\n\t\tvar layers = [];\r\n\r\n\t\tfor (var i in this._layers) {\r\n\t\t\tlayers.push(this._layers[i]);\r\n\t\t}\r\n\t\treturn layers;\r\n\t},\r\n\r\n\tsetZIndex: function (zIndex) {\r\n\t\treturn this.invoke('setZIndex', zIndex);\r\n\t},\r\n\r\n\tgetLayerId: function (layer) {\r\n\t\treturn L.stamp(layer);\r\n\t}\r\n});\r\n\r\nL.layerGroup = function (layers) {\r\n\treturn new L.LayerGroup(layers);\r\n};\r\n\n\n/*\r\n * L.FeatureGroup extends L.LayerGroup by introducing mouse events and additional methods\r\n * shared between a group of interactive layers (like vectors or markers).\r\n */\r\n\r\nL.FeatureGroup = L.LayerGroup.extend({\r\n\tincludes: L.Mixin.Events,\r\n\r\n\tstatics: {\r\n\t\tEVENTS: 'click dblclick mouseover mouseout mousemove contextmenu popupopen popupclose'\r\n\t},\r\n\r\n\taddLayer: function (layer) {\r\n\t\tif (this.hasLayer(layer)) {\r\n\t\t\treturn this;\r\n\t\t}\r\n\r\n\t\tif ('on' in layer) {\r\n\t\t\tlayer.on(L.FeatureGroup.EVENTS, this._propagateEvent, this);\r\n\t\t}\r\n\r\n\t\tL.LayerGroup.prototype.addLayer.call(this, layer);\r\n\r\n\t\tif (this._popupContent && layer.bindPopup) {\r\n\t\t\tlayer.bindPopup(this._popupContent, this._popupOptions);\r\n\t\t}\r\n\r\n\t\treturn this.fire('layeradd', {layer: layer});\r\n\t},\r\n\r\n\tremoveLayer: function (layer) {\r\n\t\tif (!this.hasLayer(layer)) {\r\n\t\t\treturn this;\r\n\t\t}\r\n\t\tif (layer in this._layers) {\r\n\t\t\tlayer = this._layers[layer];\r\n\t\t}\r\n\r\n\t\tif ('off' in layer) {\r\n\t\t\tlayer.off(L.FeatureGroup.EVENTS, this._propagateEvent, this);\r\n\t\t}\r\n\r\n\t\tL.LayerGroup.prototype.removeLayer.call(this, layer);\r\n\r\n\t\tif (this._popupContent) {\r\n\t\t\tthis.invoke('unbindPopup');\r\n\t\t}\r\n\r\n\t\treturn this.fire('layerremove', {layer: layer});\r\n\t},\r\n\r\n\tbindPopup: function (content, options) {\r\n\t\tthis._popupContent = content;\r\n\t\tthis._popupOptions = options;\r\n\t\treturn this.invoke('bindPopup', content, options);\r\n\t},\r\n\r\n\topenPopup: function (latlng) {\r\n\t\t// open popup on the first layer\r\n\t\tfor (var id in this._layers) {\r\n\t\t\tthis._layers[id].openPopup(latlng);\r\n\t\t\tbreak;\r\n\t\t}\r\n\t\treturn this;\r\n\t},\r\n\r\n\tsetStyle: function (style) {\r\n\t\treturn this.invoke('setStyle', style);\r\n\t},\r\n\r\n\tbringToFront: function () {\r\n\t\treturn this.invoke('bringToFront');\r\n\t},\r\n\r\n\tbringToBack: function () {\r\n\t\treturn this.invoke('bringToBack');\r\n\t},\r\n\r\n\tgetBounds: function () {\r\n\t\tvar bounds = new L.LatLngBounds();\r\n\r\n\t\tthis.eachLayer(function (layer) {\r\n\t\t\tbounds.extend(layer instanceof L.Marker ? layer.getLatLng() : layer.getBounds());\r\n\t\t});\r\n\r\n\t\treturn bounds;\r\n\t},\r\n\r\n\t_propagateEvent: function (e) {\r\n\t\te = L.extend({\r\n\t\t\tlayer: e.target,\r\n\t\t\ttarget: this\r\n\t\t}, e);\r\n\t\tthis.fire(e.type, e);\r\n\t}\r\n});\r\n\r\nL.featureGroup = function (layers) {\r\n\treturn new L.FeatureGroup(layers);\r\n};\r\n\n\n/*\r\n * L.Path is a base class for rendering vector paths on a map. Inherited by Polyline, Circle, etc.\r\n */\r\n\r\nL.Path = L.Class.extend({\r\n\tincludes: [L.Mixin.Events],\r\n\r\n\tstatics: {\r\n\t\t// how much to extend the clip area around the map view\r\n\t\t// (relative to its size, e.g. 0.5 is half the screen in each direction)\r\n\t\t// set it so that SVG element doesn't exceed 1280px (vectors flicker on dragend if it is)\r\n\t\tCLIP_PADDING: (function () {\r\n\t\t\tvar max = L.Browser.mobile ? 1280 : 2000,\r\n\t\t\t target = (max / Math.max(window.outerWidth, window.outerHeight) - 1) / 2;\r\n\t\t\treturn Math.max(0, Math.min(0.5, target));\r\n\t\t})()\r\n\t},\r\n\r\n\toptions: {\r\n\t\tstroke: true,\r\n\t\tcolor: '#0033ff',\r\n\t\tdashArray: null,\r\n\t\tlineCap: null,\r\n\t\tlineJoin: null,\r\n\t\tweight: 5,\r\n\t\topacity: 0.5,\r\n\r\n\t\tfill: false,\r\n\t\tfillColor: null, //same as color by default\r\n\t\tfillOpacity: 0.2,\r\n\r\n\t\tclickable: true\r\n\t},\r\n\r\n\tinitialize: function (options) {\r\n\t\tL.setOptions(this, options);\r\n\t},\r\n\r\n\tonAdd: function (map) {\r\n\t\tthis._map = map;\r\n\r\n\t\tif (!this._container) {\r\n\t\t\tthis._initElements();\r\n\t\t\tthis._initEvents();\r\n\t\t}\r\n\r\n\t\tthis.projectLatlngs();\r\n\t\tthis._updatePath();\r\n\r\n\t\tif (this._container) {\r\n\t\t\tthis._map._pathRoot.appendChild(this._container);\r\n\t\t}\r\n\r\n\t\tthis.fire('add');\r\n\r\n\t\tmap.on({\r\n\t\t\t'viewreset': this.projectLatlngs,\r\n\t\t\t'moveend': this._updatePath\r\n\t\t}, this);\r\n\t},\r\n\r\n\taddTo: function (map) {\r\n\t\tmap.addLayer(this);\r\n\t\treturn this;\r\n\t},\r\n\r\n\tonRemove: function (map) {\r\n\t\tmap._pathRoot.removeChild(this._container);\r\n\r\n\t\t// Need to fire remove event before we set _map to null as the event hooks might need the object\r\n\t\tthis.fire('remove');\r\n\t\tthis._map = null;\r\n\r\n\t\tif (L.Browser.vml) {\r\n\t\t\tthis._container = null;\r\n\t\t\tthis._stroke = null;\r\n\t\t\tthis._fill = null;\r\n\t\t}\r\n\r\n\t\tmap.off({\r\n\t\t\t'viewreset': this.projectLatlngs,\r\n\t\t\t'moveend': this._updatePath\r\n\t\t}, this);\r\n\t},\r\n\r\n\tprojectLatlngs: function () {\r\n\t\t// do all projection stuff here\r\n\t},\r\n\r\n\tsetStyle: function (style) {\r\n\t\tL.setOptions(this, style);\r\n\r\n\t\tif (this._container) {\r\n\t\t\tthis._updateStyle();\r\n\t\t}\r\n\r\n\t\treturn this;\r\n\t},\r\n\r\n\tredraw: function () {\r\n\t\tif (this._map) {\r\n\t\t\tthis.projectLatlngs();\r\n\t\t\tthis._updatePath();\r\n\t\t}\r\n\t\treturn this;\r\n\t}\r\n});\r\n\r\nL.Map.include({\r\n\t_updatePathViewport: function () {\r\n\t\tvar p = L.Path.CLIP_PADDING,\r\n\t\t size = this.getSize(),\r\n\t\t panePos = L.DomUtil.getPosition(this._mapPane),\r\n\t\t min = panePos.multiplyBy(-1)._subtract(size.multiplyBy(p)._round()),\r\n\t\t max = min.add(size.multiplyBy(1 + p * 2)._round());\r\n\r\n\t\tthis._pathViewport = new L.Bounds(min, max);\r\n\t}\r\n});\r\n\n\n/*\r\n * Extends L.Path with SVG-specific rendering code.\r\n */\r\n\r\nL.Path.SVG_NS = 'http://www.w3.org/2000/svg';\r\n\r\nL.Browser.svg = !!(document.createElementNS && document.createElementNS(L.Path.SVG_NS, 'svg').createSVGRect);\r\n\r\nL.Path = L.Path.extend({\r\n\tstatics: {\r\n\t\tSVG: L.Browser.svg\r\n\t},\r\n\r\n\tbringToFront: function () {\r\n\t\tvar root = this._map._pathRoot,\r\n\t\t path = this._container;\r\n\r\n\t\tif (path && root.lastChild !== path) {\r\n\t\t\troot.appendChild(path);\r\n\t\t}\r\n\t\treturn this;\r\n\t},\r\n\r\n\tbringToBack: function () {\r\n\t\tvar root = this._map._pathRoot,\r\n\t\t path = this._container,\r\n\t\t first = root.firstChild;\r\n\r\n\t\tif (path && first !== path) {\r\n\t\t\troot.insertBefore(path, first);\r\n\t\t}\r\n\t\treturn this;\r\n\t},\r\n\r\n\tgetPathString: function () {\r\n\t\t// form path string here\r\n\t},\r\n\r\n\t_createElement: function (name) {\r\n\t\treturn document.createElementNS(L.Path.SVG_NS, name);\r\n\t},\r\n\r\n\t_initElements: function () {\r\n\t\tthis._map._initPathRoot();\r\n\t\tthis._initPath();\r\n\t\tthis._initStyle();\r\n\t},\r\n\r\n\t_initPath: function () {\r\n\t\tthis._container = this._createElement('g');\r\n\r\n\t\tthis._path = this._createElement('path');\r\n\r\n\t\tif (this.options.className) {\r\n\t\t\tL.DomUtil.addClass(this._path, this.options.className);\r\n\t\t}\r\n\r\n\t\tthis._container.appendChild(this._path);\r\n\t},\r\n\r\n\t_initStyle: function () {\r\n\t\tif (this.options.stroke) {\r\n\t\t\tthis._path.setAttribute('stroke-linejoin', 'round');\r\n\t\t\tthis._path.setAttribute('stroke-linecap', 'round');\r\n\t\t}\r\n\t\tif (this.options.fill) {\r\n\t\t\tthis._path.setAttribute('fill-rule', 'evenodd');\r\n\t\t}\r\n\t\tif (this.options.pointerEvents) {\r\n\t\t\tthis._path.setAttribute('pointer-events', this.options.pointerEvents);\r\n\t\t}\r\n\t\tif (!this.options.clickable && !this.options.pointerEvents) {\r\n\t\t\tthis._path.setAttribute('pointer-events', 'none');\r\n\t\t}\r\n\t\tthis._updateStyle();\r\n\t},\r\n\r\n\t_updateStyle: function () {\r\n\t\tif (this.options.stroke) {\r\n\t\t\tthis._path.setAttribute('stroke', this.options.color);\r\n\t\t\tthis._path.setAttribute('stroke-opacity', this.options.opacity);\r\n\t\t\tthis._path.setAttribute('stroke-width', this.options.weight);\r\n\t\t\tif (this.options.dashArray) {\r\n\t\t\t\tthis._path.setAttribute('stroke-dasharray', this.options.dashArray);\r\n\t\t\t} else {\r\n\t\t\t\tthis._path.removeAttribute('stroke-dasharray');\r\n\t\t\t}\r\n\t\t\tif (this.options.lineCap) {\r\n\t\t\t\tthis._path.setAttribute('stroke-linecap', this.options.lineCap);\r\n\t\t\t}\r\n\t\t\tif (this.options.lineJoin) {\r\n\t\t\t\tthis._path.setAttribute('stroke-linejoin', this.options.lineJoin);\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\tthis._path.setAttribute('stroke', 'none');\r\n\t\t}\r\n\t\tif (this.options.fill) {\r\n\t\t\tthis._path.setAttribute('fill', this.options.fillColor || this.options.color);\r\n\t\t\tthis._path.setAttribute('fill-opacity', this.options.fillOpacity);\r\n\t\t} else {\r\n\t\t\tthis._path.setAttribute('fill', 'none');\r\n\t\t}\r\n\t},\r\n\r\n\t_updatePath: function () {\r\n\t\tvar str = this.getPathString();\r\n\t\tif (!str) {\r\n\t\t\t// fix webkit empty string parsing bug\r\n\t\t\tstr = 'M0 0';\r\n\t\t}\r\n\t\tthis._path.setAttribute('d', str);\r\n\t},\r\n\r\n\t// TODO remove duplication with L.Map\r\n\t_initEvents: function () {\r\n\t\tif (this.options.clickable) {\r\n\t\t\tif (L.Browser.svg || !L.Browser.vml) {\r\n\t\t\t\tL.DomUtil.addClass(this._path, 'leaflet-clickable');\r\n\t\t\t}\r\n\r\n\t\t\tL.DomEvent.on(this._container, 'click', this._onMouseClick, this);\r\n\r\n\t\t\tvar events = ['dblclick', 'mousedown', 'mouseover',\r\n\t\t\t 'mouseout', 'mousemove', 'contextmenu'];\r\n\t\t\tfor (var i = 0; i < events.length; i++) {\r\n\t\t\t\tL.DomEvent.on(this._container, events[i], this._fireMouseEvent, this);\r\n\t\t\t}\r\n\t\t}\r\n\t},\r\n\r\n\t_onMouseClick: function (e) {\r\n\t\tif (this._map.dragging && this._map.dragging.moved()) { return; }\r\n\r\n\t\tthis._fireMouseEvent(e);\r\n\t},\r\n\r\n\t_fireMouseEvent: function (e) {\r\n\t\tif (!this._map || !this.hasEventListeners(e.type)) { return; }\r\n\r\n\t\tvar map = this._map,\r\n\t\t containerPoint = map.mouseEventToContainerPoint(e),\r\n\t\t layerPoint = map.containerPointToLayerPoint(containerPoint),\r\n\t\t latlng = map.layerPointToLatLng(layerPoint);\r\n\r\n\t\tthis.fire(e.type, {\r\n\t\t\tlatlng: latlng,\r\n\t\t\tlayerPoint: layerPoint,\r\n\t\t\tcontainerPoint: containerPoint,\r\n\t\t\toriginalEvent: e\r\n\t\t});\r\n\r\n\t\tif (e.type === 'contextmenu') {\r\n\t\t\tL.DomEvent.preventDefault(e);\r\n\t\t}\r\n\t\tif (e.type !== 'mousemove') {\r\n\t\t\tL.DomEvent.stopPropagation(e);\r\n\t\t}\r\n\t}\r\n});\r\n\r\nL.Map.include({\r\n\t_initPathRoot: function () {\r\n\t\tif (!this._pathRoot) {\r\n\t\t\tthis._pathRoot = L.Path.prototype._createElement('svg');\r\n\t\t\tthis._panes.overlayPane.appendChild(this._pathRoot);\r\n\r\n\t\t\tif (this.options.zoomAnimation && L.Browser.any3d) {\r\n\t\t\t\tL.DomUtil.addClass(this._pathRoot, 'leaflet-zoom-animated');\r\n\r\n\t\t\t\tthis.on({\r\n\t\t\t\t\t'zoomanim': this._animatePathZoom,\r\n\t\t\t\t\t'zoomend': this._endPathZoom\r\n\t\t\t\t});\r\n\t\t\t} else {\r\n\t\t\t\tL.DomUtil.addClass(this._pathRoot, 'leaflet-zoom-hide');\r\n\t\t\t}\r\n\r\n\t\t\tthis.on('moveend', this._updateSvgViewport);\r\n\t\t\tthis._updateSvgViewport();\r\n\t\t}\r\n\t},\r\n\r\n\t_animatePathZoom: function (e) {\r\n\t\tvar scale = this.getZoomScale(e.zoom),\r\n\t\t offset = this._getCenterOffset(e.center)._multiplyBy(-scale)._add(this._pathViewport.min);\r\n\r\n\t\tthis._pathRoot.style[L.DomUtil.TRANSFORM] =\r\n\t\t L.DomUtil.getTranslateString(offset) + ' scale(' + scale + ') ';\r\n\r\n\t\tthis._pathZooming = true;\r\n\t},\r\n\r\n\t_endPathZoom: function () {\r\n\t\tthis._pathZooming = false;\r\n\t},\r\n\r\n\t_updateSvgViewport: function () {\r\n\r\n\t\tif (this._pathZooming) {\r\n\t\t\t// Do not update SVGs while a zoom animation is going on otherwise the animation will break.\r\n\t\t\t// When the zoom animation ends we will be updated again anyway\r\n\t\t\t// This fixes the case where you do a momentum move and zoom while the move is still ongoing.\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tthis._updatePathViewport();\r\n\r\n\t\tvar vp = this._pathViewport,\r\n\t\t min = vp.min,\r\n\t\t max = vp.max,\r\n\t\t width = max.x - min.x,\r\n\t\t height = max.y - min.y,\r\n\t\t root = this._pathRoot,\r\n\t\t pane = this._panes.overlayPane;\r\n\r\n\t\t// Hack to make flicker on drag end on mobile webkit less irritating\r\n\t\tif (L.Browser.mobileWebkit) {\r\n\t\t\tpane.removeChild(root);\r\n\t\t}\r\n\r\n\t\tL.DomUtil.setPosition(root, min);\r\n\t\troot.setAttribute('width', width);\r\n\t\troot.setAttribute('height', height);\r\n\t\troot.setAttribute('viewBox', [min.x, min.y, width, height].join(' '));\r\n\r\n\t\tif (L.Browser.mobileWebkit) {\r\n\t\t\tpane.appendChild(root);\r\n\t\t}\r\n\t}\r\n});\r\n\n\n/*\r\n * Popup extension to L.Path (polylines, polygons, circles), adding popup-related methods.\r\n */\r\n\r\nL.Path.include({\r\n\r\n\tbindPopup: function (content, options) {\r\n\r\n\t\tif (content instanceof L.Popup) {\r\n\t\t\tthis._popup = content;\r\n\t\t} else {\r\n\t\t\tif (!this._popup || options) {\r\n\t\t\t\tthis._popup = new L.Popup(options, this);\r\n\t\t\t}\r\n\t\t\tthis._popup.setContent(content);\r\n\t\t}\r\n\r\n\t\tif (!this._popupHandlersAdded) {\r\n\t\t\tthis\r\n\t\t\t .on('click', this._openPopup, this)\r\n\t\t\t .on('remove', this.closePopup, this);\r\n\r\n\t\t\tthis._popupHandlersAdded = true;\r\n\t\t}\r\n\r\n\t\treturn this;\r\n\t},\r\n\r\n\tunbindPopup: function () {\r\n\t\tif (this._popup) {\r\n\t\t\tthis._popup = null;\r\n\t\t\tthis\r\n\t\t\t .off('click', this._openPopup)\r\n\t\t\t .off('remove', this.closePopup);\r\n\r\n\t\t\tthis._popupHandlersAdded = false;\r\n\t\t}\r\n\t\treturn this;\r\n\t},\r\n\r\n\topenPopup: function (latlng) {\r\n\r\n\t\tif (this._popup) {\r\n\t\t\t// open the popup from one of the path's points if not specified\r\n\t\t\tlatlng = latlng || this._latlng ||\r\n\t\t\t this._latlngs[Math.floor(this._latlngs.length / 2)];\r\n\r\n\t\t\tthis._openPopup({latlng: latlng});\r\n\t\t}\r\n\r\n\t\treturn this;\r\n\t},\r\n\r\n\tclosePopup: function () {\r\n\t\tif (this._popup) {\r\n\t\t\tthis._popup._close();\r\n\t\t}\r\n\t\treturn this;\r\n\t},\r\n\r\n\t_openPopup: function (e) {\r\n\t\tthis._popup.setLatLng(e.latlng);\r\n\t\tthis._map.openPopup(this._popup);\r\n\t}\r\n});\r\n\n\n/*\r\n * Vector rendering for IE6-8 through VML.\r\n * Thanks to Dmitry Baranovsky and his Raphael library for inspiration!\r\n */\r\n\r\nL.Browser.vml = !L.Browser.svg && (function () {\r\n\ttry {\r\n\t\tvar div = document.createElement('div');\r\n\t\tdiv.innerHTML = '';\r\n\r\n\t\tvar shape = div.firstChild;\r\n\t\tshape.style.behavior = 'url(#default#VML)';\r\n\r\n\t\treturn shape && (typeof shape.adj === 'object');\r\n\r\n\t} catch (e) {\r\n\t\treturn false;\r\n\t}\r\n}());\r\n\r\nL.Path = L.Browser.svg || !L.Browser.vml ? L.Path : L.Path.extend({\r\n\tstatics: {\r\n\t\tVML: true,\r\n\t\tCLIP_PADDING: 0.02\r\n\t},\r\n\r\n\t_createElement: (function () {\r\n\t\ttry {\r\n\t\t\tdocument.namespaces.add('lvml', 'urn:schemas-microsoft-com:vml');\r\n\t\t\treturn function (name) {\r\n\t\t\t\treturn document.createElement('');\r\n\t\t\t};\r\n\t\t} catch (e) {\r\n\t\t\treturn function (name) {\r\n\t\t\t\treturn document.createElement(\r\n\t\t\t\t '<' + name + ' xmlns=\"urn:schemas-microsoft.com:vml\" class=\"lvml\">');\r\n\t\t\t};\r\n\t\t}\r\n\t}()),\r\n\r\n\t_initPath: function () {\r\n\t\tvar container = this._container = this._createElement('shape');\r\n\r\n\t\tL.DomUtil.addClass(container, 'leaflet-vml-shape' +\r\n\t\t\t(this.options.className ? ' ' + this.options.className : ''));\r\n\r\n\t\tif (this.options.clickable) {\r\n\t\t\tL.DomUtil.addClass(container, 'leaflet-clickable');\r\n\t\t}\r\n\r\n\t\tcontainer.coordsize = '1 1';\r\n\r\n\t\tthis._path = this._createElement('path');\r\n\t\tcontainer.appendChild(this._path);\r\n\r\n\t\tthis._map._pathRoot.appendChild(container);\r\n\t},\r\n\r\n\t_initStyle: function () {\r\n\t\tthis._updateStyle();\r\n\t},\r\n\r\n\t_updateStyle: function () {\r\n\t\tvar stroke = this._stroke,\r\n\t\t fill = this._fill,\r\n\t\t options = this.options,\r\n\t\t container = this._container;\r\n\r\n\t\tcontainer.stroked = options.stroke;\r\n\t\tcontainer.filled = options.fill;\r\n\r\n\t\tif (options.stroke) {\r\n\t\t\tif (!stroke) {\r\n\t\t\t\tstroke = this._stroke = this._createElement('stroke');\r\n\t\t\t\tstroke.endcap = 'round';\r\n\t\t\t\tcontainer.appendChild(stroke);\r\n\t\t\t}\r\n\t\t\tstroke.weight = options.weight + 'px';\r\n\t\t\tstroke.color = options.color;\r\n\t\t\tstroke.opacity = options.opacity;\r\n\r\n\t\t\tif (options.dashArray) {\r\n\t\t\t\tstroke.dashStyle = L.Util.isArray(options.dashArray) ?\r\n\t\t\t\t options.dashArray.join(' ') :\r\n\t\t\t\t options.dashArray.replace(/( *, *)/g, ' ');\r\n\t\t\t} else {\r\n\t\t\t\tstroke.dashStyle = '';\r\n\t\t\t}\r\n\t\t\tif (options.lineCap) {\r\n\t\t\t\tstroke.endcap = options.lineCap.replace('butt', 'flat');\r\n\t\t\t}\r\n\t\t\tif (options.lineJoin) {\r\n\t\t\t\tstroke.joinstyle = options.lineJoin;\r\n\t\t\t}\r\n\r\n\t\t} else if (stroke) {\r\n\t\t\tcontainer.removeChild(stroke);\r\n\t\t\tthis._stroke = null;\r\n\t\t}\r\n\r\n\t\tif (options.fill) {\r\n\t\t\tif (!fill) {\r\n\t\t\t\tfill = this._fill = this._createElement('fill');\r\n\t\t\t\tcontainer.appendChild(fill);\r\n\t\t\t}\r\n\t\t\tfill.color = options.fillColor || options.color;\r\n\t\t\tfill.opacity = options.fillOpacity;\r\n\r\n\t\t} else if (fill) {\r\n\t\t\tcontainer.removeChild(fill);\r\n\t\t\tthis._fill = null;\r\n\t\t}\r\n\t},\r\n\r\n\t_updatePath: function () {\r\n\t\tvar style = this._container.style;\r\n\r\n\t\tstyle.display = 'none';\r\n\t\tthis._path.v = this.getPathString() + ' '; // the space fixes IE empty path string bug\r\n\t\tstyle.display = '';\r\n\t}\r\n});\r\n\r\nL.Map.include(L.Browser.svg || !L.Browser.vml ? {} : {\r\n\t_initPathRoot: function () {\r\n\t\tif (this._pathRoot) { return; }\r\n\r\n\t\tvar root = this._pathRoot = document.createElement('div');\r\n\t\troot.className = 'leaflet-vml-container';\r\n\t\tthis._panes.overlayPane.appendChild(root);\r\n\r\n\t\tthis.on('moveend', this._updatePathViewport);\r\n\t\tthis._updatePathViewport();\r\n\t}\r\n});\r\n\n\n/*\r\n * Vector rendering for all browsers that support canvas.\r\n */\r\n\r\nL.Browser.canvas = (function () {\r\n\treturn !!document.createElement('canvas').getContext;\r\n}());\r\n\r\nL.Path = (L.Path.SVG && !window.L_PREFER_CANVAS) || !L.Browser.canvas ? L.Path : L.Path.extend({\r\n\tstatics: {\r\n\t\t//CLIP_PADDING: 0.02, // not sure if there's a need to set it to a small value\r\n\t\tCANVAS: true,\r\n\t\tSVG: false\r\n\t},\r\n\r\n\tredraw: function () {\r\n\t\tif (this._map) {\r\n\t\t\tthis.projectLatlngs();\r\n\t\t\tthis._requestUpdate();\r\n\t\t}\r\n\t\treturn this;\r\n\t},\r\n\r\n\tsetStyle: function (style) {\r\n\t\tL.setOptions(this, style);\r\n\r\n\t\tif (this._map) {\r\n\t\t\tthis._updateStyle();\r\n\t\t\tthis._requestUpdate();\r\n\t\t}\r\n\t\treturn this;\r\n\t},\r\n\r\n\tonRemove: function (map) {\r\n\t\tmap\r\n\t\t .off('viewreset', this.projectLatlngs, this)\r\n\t\t .off('moveend', this._updatePath, this);\r\n\r\n\t\tif (this.options.clickable) {\r\n\t\t\tthis._map.off('click', this._onClick, this);\r\n\t\t\tthis._map.off('mousemove', this._onMouseMove, this);\r\n\t\t}\r\n\r\n\t\tthis._requestUpdate();\r\n\t\t\r\n\t\tthis.fire('remove');\r\n\t\tthis._map = null;\r\n\t},\r\n\r\n\t_requestUpdate: function () {\r\n\t\tif (this._map && !L.Path._updateRequest) {\r\n\t\t\tL.Path._updateRequest = L.Util.requestAnimFrame(this._fireMapMoveEnd, this._map);\r\n\t\t}\r\n\t},\r\n\r\n\t_fireMapMoveEnd: function () {\r\n\t\tL.Path._updateRequest = null;\r\n\t\tthis.fire('moveend');\r\n\t},\r\n\r\n\t_initElements: function () {\r\n\t\tthis._map._initPathRoot();\r\n\t\tthis._ctx = this._map._canvasCtx;\r\n\t},\r\n\r\n\t_updateStyle: function () {\r\n\t\tvar options = this.options;\r\n\r\n\t\tif (options.stroke) {\r\n\t\t\tthis._ctx.lineWidth = options.weight;\r\n\t\t\tthis._ctx.strokeStyle = options.color;\r\n\t\t}\r\n\t\tif (options.fill) {\r\n\t\t\tthis._ctx.fillStyle = options.fillColor || options.color;\r\n\t\t}\r\n\r\n\t\tif (options.lineCap) {\r\n\t\t\tthis._ctx.lineCap = options.lineCap;\r\n\t\t}\r\n\t\tif (options.lineJoin) {\r\n\t\t\tthis._ctx.lineJoin = options.lineJoin;\r\n\t\t}\r\n\t},\r\n\r\n\t_drawPath: function () {\r\n\t\tvar i, j, len, len2, point, drawMethod;\r\n\r\n\t\tthis._ctx.beginPath();\r\n\r\n\t\tfor (i = 0, len = this._parts.length; i < len; i++) {\r\n\t\t\tfor (j = 0, len2 = this._parts[i].length; j < len2; j++) {\r\n\t\t\t\tpoint = this._parts[i][j];\r\n\t\t\t\tdrawMethod = (j === 0 ? 'move' : 'line') + 'To';\r\n\r\n\t\t\t\tthis._ctx[drawMethod](point.x, point.y);\r\n\t\t\t}\r\n\t\t\t// TODO refactor ugly hack\r\n\t\t\tif (this instanceof L.Polygon) {\r\n\t\t\t\tthis._ctx.closePath();\r\n\t\t\t}\r\n\t\t}\r\n\t},\r\n\r\n\t_checkIfEmpty: function () {\r\n\t\treturn !this._parts.length;\r\n\t},\r\n\r\n\t_updatePath: function () {\r\n\t\tif (this._checkIfEmpty()) { return; }\r\n\r\n\t\tvar ctx = this._ctx,\r\n\t\t options = this.options;\r\n\r\n\t\tthis._drawPath();\r\n\t\tctx.save();\r\n\t\tthis._updateStyle();\r\n\r\n\t\tif (options.fill) {\r\n\t\t\tctx.globalAlpha = options.fillOpacity;\r\n\t\t\tctx.fill(options.fillRule || 'evenodd');\r\n\t\t}\r\n\r\n\t\tif (options.stroke) {\r\n\t\t\tctx.globalAlpha = options.opacity;\r\n\t\t\tctx.stroke();\r\n\t\t}\r\n\r\n\t\tctx.restore();\r\n\r\n\t\t// TODO optimization: 1 fill/stroke for all features with equal style instead of 1 for each feature\r\n\t},\r\n\r\n\t_initEvents: function () {\r\n\t\tif (this.options.clickable) {\r\n\t\t\tthis._map.on('mousemove', this._onMouseMove, this);\r\n\t\t\tthis._map.on('click dblclick contextmenu', this._fireMouseEvent, this);\r\n\t\t}\r\n\t},\r\n\r\n\t_fireMouseEvent: function (e) {\r\n\t\tif (this._containsPoint(e.layerPoint)) {\r\n\t\t\tthis.fire(e.type, e);\r\n\t\t}\r\n\t},\r\n\r\n\t_onMouseMove: function (e) {\r\n\t\tif (!this._map || this._map._animatingZoom) { return; }\r\n\r\n\t\t// TODO don't do on each move\r\n\t\tif (this._containsPoint(e.layerPoint)) {\r\n\t\t\tthis._ctx.canvas.style.cursor = 'pointer';\r\n\t\t\tthis._mouseInside = true;\r\n\t\t\tthis.fire('mouseover', e);\r\n\r\n\t\t} else if (this._mouseInside) {\r\n\t\t\tthis._ctx.canvas.style.cursor = '';\r\n\t\t\tthis._mouseInside = false;\r\n\t\t\tthis.fire('mouseout', e);\r\n\t\t}\r\n\t}\r\n});\r\n\r\nL.Map.include((L.Path.SVG && !window.L_PREFER_CANVAS) || !L.Browser.canvas ? {} : {\r\n\t_initPathRoot: function () {\r\n\t\tvar root = this._pathRoot,\r\n\t\t ctx;\r\n\r\n\t\tif (!root) {\r\n\t\t\troot = this._pathRoot = document.createElement('canvas');\r\n\t\t\troot.style.position = 'absolute';\r\n\t\t\tctx = this._canvasCtx = root.getContext('2d');\r\n\r\n\t\t\tctx.lineCap = 'round';\r\n\t\t\tctx.lineJoin = 'round';\r\n\r\n\t\t\tthis._panes.overlayPane.appendChild(root);\r\n\r\n\t\t\tif (this.options.zoomAnimation) {\r\n\t\t\t\tthis._pathRoot.className = 'leaflet-zoom-animated';\r\n\t\t\t\tthis.on('zoomanim', this._animatePathZoom);\r\n\t\t\t\tthis.on('zoomend', this._endPathZoom);\r\n\t\t\t}\r\n\t\t\tthis.on('moveend', this._updateCanvasViewport);\r\n\t\t\tthis._updateCanvasViewport();\r\n\t\t}\r\n\t},\r\n\r\n\t_updateCanvasViewport: function () {\r\n\t\t// don't redraw while zooming. See _updateSvgViewport for more details\r\n\t\tif (this._pathZooming) { return; }\r\n\t\tthis._updatePathViewport();\r\n\r\n\t\tvar vp = this._pathViewport,\r\n\t\t min = vp.min,\r\n\t\t size = vp.max.subtract(min),\r\n\t\t root = this._pathRoot;\r\n\r\n\t\t//TODO check if this works properly on mobile webkit\r\n\t\tL.DomUtil.setPosition(root, min);\r\n\t\troot.width = size.x;\r\n\t\troot.height = size.y;\r\n\t\troot.getContext('2d').translate(-min.x, -min.y);\r\n\t}\r\n});\r\n\n\n/*\r\n * L.LineUtil contains different utility functions for line segments\r\n * and polylines (clipping, simplification, distances, etc.)\r\n */\r\n\r\n/*jshint bitwise:false */ // allow bitwise operations for this file\r\n\r\nL.LineUtil = {\r\n\r\n\t// Simplify polyline with vertex reduction and Douglas-Peucker simplification.\r\n\t// Improves rendering performance dramatically by lessening the number of points to draw.\r\n\r\n\tsimplify: function (/*Point[]*/ points, /*Number*/ tolerance) {\r\n\t\tif (!tolerance || !points.length) {\r\n\t\t\treturn points.slice();\r\n\t\t}\r\n\r\n\t\tvar sqTolerance = tolerance * tolerance;\r\n\r\n\t\t// stage 1: vertex reduction\r\n\t\tpoints = this._reducePoints(points, sqTolerance);\r\n\r\n\t\t// stage 2: Douglas-Peucker simplification\r\n\t\tpoints = this._simplifyDP(points, sqTolerance);\r\n\r\n\t\treturn points;\r\n\t},\r\n\r\n\t// distance from a point to a segment between two points\r\n\tpointToSegmentDistance: function (/*Point*/ p, /*Point*/ p1, /*Point*/ p2) {\r\n\t\treturn Math.sqrt(this._sqClosestPointOnSegment(p, p1, p2, true));\r\n\t},\r\n\r\n\tclosestPointOnSegment: function (/*Point*/ p, /*Point*/ p1, /*Point*/ p2) {\r\n\t\treturn this._sqClosestPointOnSegment(p, p1, p2);\r\n\t},\r\n\r\n\t// Douglas-Peucker simplification, see http://en.wikipedia.org/wiki/Douglas-Peucker_algorithm\r\n\t_simplifyDP: function (points, sqTolerance) {\r\n\r\n\t\tvar len = points.length,\r\n\t\t ArrayConstructor = typeof Uint8Array !== undefined + '' ? Uint8Array : Array,\r\n\t\t markers = new ArrayConstructor(len);\r\n\r\n\t\tmarkers[0] = markers[len - 1] = 1;\r\n\r\n\t\tthis._simplifyDPStep(points, markers, sqTolerance, 0, len - 1);\r\n\r\n\t\tvar i,\r\n\t\t newPoints = [];\r\n\r\n\t\tfor (i = 0; i < len; i++) {\r\n\t\t\tif (markers[i]) {\r\n\t\t\t\tnewPoints.push(points[i]);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn newPoints;\r\n\t},\r\n\r\n\t_simplifyDPStep: function (points, markers, sqTolerance, first, last) {\r\n\r\n\t\tvar maxSqDist = 0,\r\n\t\t index, i, sqDist;\r\n\r\n\t\tfor (i = first + 1; i <= last - 1; i++) {\r\n\t\t\tsqDist = this._sqClosestPointOnSegment(points[i], points[first], points[last], true);\r\n\r\n\t\t\tif (sqDist > maxSqDist) {\r\n\t\t\t\tindex = i;\r\n\t\t\t\tmaxSqDist = sqDist;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif (maxSqDist > sqTolerance) {\r\n\t\t\tmarkers[index] = 1;\r\n\r\n\t\t\tthis._simplifyDPStep(points, markers, sqTolerance, first, index);\r\n\t\t\tthis._simplifyDPStep(points, markers, sqTolerance, index, last);\r\n\t\t}\r\n\t},\r\n\r\n\t// reduce points that are too close to each other to a single point\r\n\t_reducePoints: function (points, sqTolerance) {\r\n\t\tvar reducedPoints = [points[0]];\r\n\r\n\t\tfor (var i = 1, prev = 0, len = points.length; i < len; i++) {\r\n\t\t\tif (this._sqDist(points[i], points[prev]) > sqTolerance) {\r\n\t\t\t\treducedPoints.push(points[i]);\r\n\t\t\t\tprev = i;\r\n\t\t\t}\r\n\t\t}\r\n\t\tif (prev < len - 1) {\r\n\t\t\treducedPoints.push(points[len - 1]);\r\n\t\t}\r\n\t\treturn reducedPoints;\r\n\t},\r\n\r\n\t// Cohen-Sutherland line clipping algorithm.\r\n\t// Used to avoid rendering parts of a polyline that are not currently visible.\r\n\r\n\tclipSegment: function (a, b, bounds, useLastCode) {\r\n\t\tvar codeA = useLastCode ? this._lastCode : this._getBitCode(a, bounds),\r\n\t\t codeB = this._getBitCode(b, bounds),\r\n\r\n\t\t codeOut, p, newCode;\r\n\r\n\t\t// save 2nd code to avoid calculating it on the next segment\r\n\t\tthis._lastCode = codeB;\r\n\r\n\t\twhile (true) {\r\n\t\t\t// if a,b is inside the clip window (trivial accept)\r\n\t\t\tif (!(codeA | codeB)) {\r\n\t\t\t\treturn [a, b];\r\n\t\t\t// if a,b is outside the clip window (trivial reject)\r\n\t\t\t} else if (codeA & codeB) {\r\n\t\t\t\treturn false;\r\n\t\t\t// other cases\r\n\t\t\t} else {\r\n\t\t\t\tcodeOut = codeA || codeB;\r\n\t\t\t\tp = this._getEdgeIntersection(a, b, codeOut, bounds);\r\n\t\t\t\tnewCode = this._getBitCode(p, bounds);\r\n\r\n\t\t\t\tif (codeOut === codeA) {\r\n\t\t\t\t\ta = p;\r\n\t\t\t\t\tcodeA = newCode;\r\n\t\t\t\t} else {\r\n\t\t\t\t\tb = p;\r\n\t\t\t\t\tcodeB = newCode;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t},\r\n\r\n\t_getEdgeIntersection: function (a, b, code, bounds) {\r\n\t\tvar dx = b.x - a.x,\r\n\t\t dy = b.y - a.y,\r\n\t\t min = bounds.min,\r\n\t\t max = bounds.max;\r\n\r\n\t\tif (code & 8) { // top\r\n\t\t\treturn new L.Point(a.x + dx * (max.y - a.y) / dy, max.y);\r\n\t\t} else if (code & 4) { // bottom\r\n\t\t\treturn new L.Point(a.x + dx * (min.y - a.y) / dy, min.y);\r\n\t\t} else if (code & 2) { // right\r\n\t\t\treturn new L.Point(max.x, a.y + dy * (max.x - a.x) / dx);\r\n\t\t} else if (code & 1) { // left\r\n\t\t\treturn new L.Point(min.x, a.y + dy * (min.x - a.x) / dx);\r\n\t\t}\r\n\t},\r\n\r\n\t_getBitCode: function (/*Point*/ p, bounds) {\r\n\t\tvar code = 0;\r\n\r\n\t\tif (p.x < bounds.min.x) { // left\r\n\t\t\tcode |= 1;\r\n\t\t} else if (p.x > bounds.max.x) { // right\r\n\t\t\tcode |= 2;\r\n\t\t}\r\n\t\tif (p.y < bounds.min.y) { // bottom\r\n\t\t\tcode |= 4;\r\n\t\t} else if (p.y > bounds.max.y) { // top\r\n\t\t\tcode |= 8;\r\n\t\t}\r\n\r\n\t\treturn code;\r\n\t},\r\n\r\n\t// square distance (to avoid unnecessary Math.sqrt calls)\r\n\t_sqDist: function (p1, p2) {\r\n\t\tvar dx = p2.x - p1.x,\r\n\t\t dy = p2.y - p1.y;\r\n\t\treturn dx * dx + dy * dy;\r\n\t},\r\n\r\n\t// return closest point on segment or distance to that point\r\n\t_sqClosestPointOnSegment: function (p, p1, p2, sqDist) {\r\n\t\tvar x = p1.x,\r\n\t\t y = p1.y,\r\n\t\t dx = p2.x - x,\r\n\t\t dy = p2.y - y,\r\n\t\t dot = dx * dx + dy * dy,\r\n\t\t t;\r\n\r\n\t\tif (dot > 0) {\r\n\t\t\tt = ((p.x - x) * dx + (p.y - y) * dy) / dot;\r\n\r\n\t\t\tif (t > 1) {\r\n\t\t\t\tx = p2.x;\r\n\t\t\t\ty = p2.y;\r\n\t\t\t} else if (t > 0) {\r\n\t\t\t\tx += dx * t;\r\n\t\t\t\ty += dy * t;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tdx = p.x - x;\r\n\t\tdy = p.y - y;\r\n\r\n\t\treturn sqDist ? dx * dx + dy * dy : new L.Point(x, y);\r\n\t}\r\n};\r\n\n\n/*\r\n * L.Polyline is used to display polylines on a map.\r\n */\r\n\r\nL.Polyline = L.Path.extend({\r\n\tinitialize: function (latlngs, options) {\r\n\t\tL.Path.prototype.initialize.call(this, options);\r\n\r\n\t\tthis._latlngs = this._convertLatLngs(latlngs);\r\n\t},\r\n\r\n\toptions: {\r\n\t\t// how much to simplify the polyline on each zoom level\r\n\t\t// more = better performance and smoother look, less = more accurate\r\n\t\tsmoothFactor: 1.0,\r\n\t\tnoClip: false\r\n\t},\r\n\r\n\tprojectLatlngs: function () {\r\n\t\tthis._originalPoints = [];\r\n\r\n\t\tfor (var i = 0, len = this._latlngs.length; i < len; i++) {\r\n\t\t\tthis._originalPoints[i] = this._map.latLngToLayerPoint(this._latlngs[i]);\r\n\t\t}\r\n\t},\r\n\r\n\tgetPathString: function () {\r\n\t\tfor (var i = 0, len = this._parts.length, str = ''; i < len; i++) {\r\n\t\t\tstr += this._getPathPartStr(this._parts[i]);\r\n\t\t}\r\n\t\treturn str;\r\n\t},\r\n\r\n\tgetLatLngs: function () {\r\n\t\treturn this._latlngs;\r\n\t},\r\n\r\n\tsetLatLngs: function (latlngs) {\r\n\t\tthis._latlngs = this._convertLatLngs(latlngs);\r\n\t\treturn this.redraw();\r\n\t},\r\n\r\n\taddLatLng: function (latlng) {\r\n\t\tthis._latlngs.push(L.latLng(latlng));\r\n\t\treturn this.redraw();\r\n\t},\r\n\r\n\tspliceLatLngs: function () { // (Number index, Number howMany)\r\n\t\tvar removed = [].splice.apply(this._latlngs, arguments);\r\n\t\tthis._convertLatLngs(this._latlngs, true);\r\n\t\tthis.redraw();\r\n\t\treturn removed;\r\n\t},\r\n\r\n\tclosestLayerPoint: function (p) {\r\n\t\tvar minDistance = Infinity, parts = this._parts, p1, p2, minPoint = null;\r\n\r\n\t\tfor (var j = 0, jLen = parts.length; j < jLen; j++) {\r\n\t\t\tvar points = parts[j];\r\n\t\t\tfor (var i = 1, len = points.length; i < len; i++) {\r\n\t\t\t\tp1 = points[i - 1];\r\n\t\t\t\tp2 = points[i];\r\n\t\t\t\tvar sqDist = L.LineUtil._sqClosestPointOnSegment(p, p1, p2, true);\r\n\t\t\t\tif (sqDist < minDistance) {\r\n\t\t\t\t\tminDistance = sqDist;\r\n\t\t\t\t\tminPoint = L.LineUtil._sqClosestPointOnSegment(p, p1, p2);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t\tif (minPoint) {\r\n\t\t\tminPoint.distance = Math.sqrt(minDistance);\r\n\t\t}\r\n\t\treturn minPoint;\r\n\t},\r\n\r\n\tgetBounds: function () {\r\n\t\treturn new L.LatLngBounds(this.getLatLngs());\r\n\t},\r\n\r\n\t_convertLatLngs: function (latlngs, overwrite) {\r\n\t\tvar i, len, target = overwrite ? latlngs : [];\r\n\r\n\t\tfor (i = 0, len = latlngs.length; i < len; i++) {\r\n\t\t\tif (L.Util.isArray(latlngs[i]) && typeof latlngs[i][0] !== 'number') {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t\ttarget[i] = L.latLng(latlngs[i]);\r\n\t\t}\r\n\t\treturn target;\r\n\t},\r\n\r\n\t_initEvents: function () {\r\n\t\tL.Path.prototype._initEvents.call(this);\r\n\t},\r\n\r\n\t_getPathPartStr: function (points) {\r\n\t\tvar round = L.Path.VML;\r\n\r\n\t\tfor (var j = 0, len2 = points.length, str = '', p; j < len2; j++) {\r\n\t\t\tp = points[j];\r\n\t\t\tif (round) {\r\n\t\t\t\tp._round();\r\n\t\t\t}\r\n\t\t\tstr += (j ? 'L' : 'M') + p.x + ' ' + p.y;\r\n\t\t}\r\n\t\treturn str;\r\n\t},\r\n\r\n\t_clipPoints: function () {\r\n\t\tvar points = this._originalPoints,\r\n\t\t len = points.length,\r\n\t\t i, k, segment;\r\n\r\n\t\tif (this.options.noClip) {\r\n\t\t\tthis._parts = [points];\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tthis._parts = [];\r\n\r\n\t\tvar parts = this._parts,\r\n\t\t vp = this._map._pathViewport,\r\n\t\t lu = L.LineUtil;\r\n\r\n\t\tfor (i = 0, k = 0; i < len - 1; i++) {\r\n\t\t\tsegment = lu.clipSegment(points[i], points[i + 1], vp, i);\r\n\t\t\tif (!segment) {\r\n\t\t\t\tcontinue;\r\n\t\t\t}\r\n\r\n\t\t\tparts[k] = parts[k] || [];\r\n\t\t\tparts[k].push(segment[0]);\r\n\r\n\t\t\t// if segment goes out of screen, or it's the last one, it's the end of the line part\r\n\t\t\tif ((segment[1] !== points[i + 1]) || (i === len - 2)) {\r\n\t\t\t\tparts[k].push(segment[1]);\r\n\t\t\t\tk++;\r\n\t\t\t}\r\n\t\t}\r\n\t},\r\n\r\n\t// simplify each clipped part of the polyline\r\n\t_simplifyPoints: function () {\r\n\t\tvar parts = this._parts,\r\n\t\t lu = L.LineUtil;\r\n\r\n\t\tfor (var i = 0, len = parts.length; i < len; i++) {\r\n\t\t\tparts[i] = lu.simplify(parts[i], this.options.smoothFactor);\r\n\t\t}\r\n\t},\r\n\r\n\t_updatePath: function () {\r\n\t\tif (!this._map) { return; }\r\n\r\n\t\tthis._clipPoints();\r\n\t\tthis._simplifyPoints();\r\n\r\n\t\tL.Path.prototype._updatePath.call(this);\r\n\t}\r\n});\r\n\r\nL.polyline = function (latlngs, options) {\r\n\treturn new L.Polyline(latlngs, options);\r\n};\r\n\n\n/*\r\n * L.PolyUtil contains utility functions for polygons (clipping, etc.).\r\n */\r\n\r\n/*jshint bitwise:false */ // allow bitwise operations here\r\n\r\nL.PolyUtil = {};\r\n\r\n/*\r\n * Sutherland-Hodgeman polygon clipping algorithm.\r\n * Used to avoid rendering parts of a polygon that are not currently visible.\r\n */\r\nL.PolyUtil.clipPolygon = function (points, bounds) {\r\n\tvar clippedPoints,\r\n\t edges = [1, 4, 2, 8],\r\n\t i, j, k,\r\n\t a, b,\r\n\t len, edge, p,\r\n\t lu = L.LineUtil;\r\n\r\n\tfor (i = 0, len = points.length; i < len; i++) {\r\n\t\tpoints[i]._code = lu._getBitCode(points[i], bounds);\r\n\t}\r\n\r\n\t// for each edge (left, bottom, right, top)\r\n\tfor (k = 0; k < 4; k++) {\r\n\t\tedge = edges[k];\r\n\t\tclippedPoints = [];\r\n\r\n\t\tfor (i = 0, len = points.length, j = len - 1; i < len; j = i++) {\r\n\t\t\ta = points[i];\r\n\t\t\tb = points[j];\r\n\r\n\t\t\t// if a is inside the clip window\r\n\t\t\tif (!(a._code & edge)) {\r\n\t\t\t\t// if b is outside the clip window (a->b goes out of screen)\r\n\t\t\t\tif (b._code & edge) {\r\n\t\t\t\t\tp = lu._getEdgeIntersection(b, a, edge, bounds);\r\n\t\t\t\t\tp._code = lu._getBitCode(p, bounds);\r\n\t\t\t\t\tclippedPoints.push(p);\r\n\t\t\t\t}\r\n\t\t\t\tclippedPoints.push(a);\r\n\r\n\t\t\t// else if b is inside the clip window (a->b enters the screen)\r\n\t\t\t} else if (!(b._code & edge)) {\r\n\t\t\t\tp = lu._getEdgeIntersection(b, a, edge, bounds);\r\n\t\t\t\tp._code = lu._getBitCode(p, bounds);\r\n\t\t\t\tclippedPoints.push(p);\r\n\t\t\t}\r\n\t\t}\r\n\t\tpoints = clippedPoints;\r\n\t}\r\n\r\n\treturn points;\r\n};\r\n\n\n/*\r\n * L.Polygon is used to display polygons on a map.\r\n */\r\n\r\nL.Polygon = L.Polyline.extend({\r\n\toptions: {\r\n\t\tfill: true\r\n\t},\r\n\r\n\tinitialize: function (latlngs, options) {\r\n\t\tL.Polyline.prototype.initialize.call(this, latlngs, options);\r\n\t\tthis._initWithHoles(latlngs);\r\n\t},\r\n\r\n\t_initWithHoles: function (latlngs) {\r\n\t\tvar i, len, hole;\r\n\t\tif (latlngs && L.Util.isArray(latlngs[0]) && (typeof latlngs[0][0] !== 'number')) {\r\n\t\t\tthis._latlngs = this._convertLatLngs(latlngs[0]);\r\n\t\t\tthis._holes = latlngs.slice(1);\r\n\r\n\t\t\tfor (i = 0, len = this._holes.length; i < len; i++) {\r\n\t\t\t\thole = this._holes[i] = this._convertLatLngs(this._holes[i]);\r\n\t\t\t\tif (hole[0].equals(hole[hole.length - 1])) {\r\n\t\t\t\t\thole.pop();\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t// filter out last point if its equal to the first one\r\n\t\tlatlngs = this._latlngs;\r\n\r\n\t\tif (latlngs.length >= 2 && latlngs[0].equals(latlngs[latlngs.length - 1])) {\r\n\t\t\tlatlngs.pop();\r\n\t\t}\r\n\t},\r\n\r\n\tprojectLatlngs: function () {\r\n\t\tL.Polyline.prototype.projectLatlngs.call(this);\r\n\r\n\t\t// project polygon holes points\r\n\t\t// TODO move this logic to Polyline to get rid of duplication\r\n\t\tthis._holePoints = [];\r\n\r\n\t\tif (!this._holes) { return; }\r\n\r\n\t\tvar i, j, len, len2;\r\n\r\n\t\tfor (i = 0, len = this._holes.length; i < len; i++) {\r\n\t\t\tthis._holePoints[i] = [];\r\n\r\n\t\t\tfor (j = 0, len2 = this._holes[i].length; j < len2; j++) {\r\n\t\t\t\tthis._holePoints[i][j] = this._map.latLngToLayerPoint(this._holes[i][j]);\r\n\t\t\t}\r\n\t\t}\r\n\t},\r\n\r\n\tsetLatLngs: function (latlngs) {\r\n\t\tif (latlngs && L.Util.isArray(latlngs[0]) && (typeof latlngs[0][0] !== 'number')) {\r\n\t\t\tthis._initWithHoles(latlngs);\r\n\t\t\treturn this.redraw();\r\n\t\t} else {\r\n\t\t\treturn L.Polyline.prototype.setLatLngs.call(this, latlngs);\r\n\t\t}\r\n\t},\r\n\r\n\t_clipPoints: function () {\r\n\t\tvar points = this._originalPoints,\r\n\t\t newParts = [];\r\n\r\n\t\tthis._parts = [points].concat(this._holePoints);\r\n\r\n\t\tif (this.options.noClip) { return; }\r\n\r\n\t\tfor (var i = 0, len = this._parts.length; i < len; i++) {\r\n\t\t\tvar clipped = L.PolyUtil.clipPolygon(this._parts[i], this._map._pathViewport);\r\n\t\t\tif (clipped.length) {\r\n\t\t\t\tnewParts.push(clipped);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tthis._parts = newParts;\r\n\t},\r\n\r\n\t_getPathPartStr: function (points) {\r\n\t\tvar str = L.Polyline.prototype._getPathPartStr.call(this, points);\r\n\t\treturn str + (L.Browser.svg ? 'z' : 'x');\r\n\t}\r\n});\r\n\r\nL.polygon = function (latlngs, options) {\r\n\treturn new L.Polygon(latlngs, options);\r\n};\r\n\n\n/*\r\n * Contains L.MultiPolyline and L.MultiPolygon layers.\r\n */\r\n\r\n(function () {\r\n\tfunction createMulti(Klass) {\r\n\r\n\t\treturn L.FeatureGroup.extend({\r\n\r\n\t\t\tinitialize: function (latlngs, options) {\r\n\t\t\t\tthis._layers = {};\r\n\t\t\t\tthis._options = options;\r\n\t\t\t\tthis.setLatLngs(latlngs);\r\n\t\t\t},\r\n\r\n\t\t\tsetLatLngs: function (latlngs) {\r\n\t\t\t\tvar i = 0,\r\n\t\t\t\t len = latlngs.length;\r\n\r\n\t\t\t\tthis.eachLayer(function (layer) {\r\n\t\t\t\t\tif (i < len) {\r\n\t\t\t\t\t\tlayer.setLatLngs(latlngs[i++]);\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tthis.removeLayer(layer);\r\n\t\t\t\t\t}\r\n\t\t\t\t}, this);\r\n\r\n\t\t\t\twhile (i < len) {\r\n\t\t\t\t\tthis.addLayer(new Klass(latlngs[i++], this._options));\r\n\t\t\t\t}\r\n\r\n\t\t\t\treturn this;\r\n\t\t\t},\r\n\r\n\t\t\tgetLatLngs: function () {\r\n\t\t\t\tvar latlngs = [];\r\n\r\n\t\t\t\tthis.eachLayer(function (layer) {\r\n\t\t\t\t\tlatlngs.push(layer.getLatLngs());\r\n\t\t\t\t});\r\n\r\n\t\t\t\treturn latlngs;\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\tL.MultiPolyline = createMulti(L.Polyline);\r\n\tL.MultiPolygon = createMulti(L.Polygon);\r\n\r\n\tL.multiPolyline = function (latlngs, options) {\r\n\t\treturn new L.MultiPolyline(latlngs, options);\r\n\t};\r\n\r\n\tL.multiPolygon = function (latlngs, options) {\r\n\t\treturn new L.MultiPolygon(latlngs, options);\r\n\t};\r\n}());\r\n\n\n/*\r\n * L.Rectangle extends Polygon and creates a rectangle when passed a LatLngBounds object.\r\n */\r\n\r\nL.Rectangle = L.Polygon.extend({\r\n\tinitialize: function (latLngBounds, options) {\r\n\t\tL.Polygon.prototype.initialize.call(this, this._boundsToLatLngs(latLngBounds), options);\r\n\t},\r\n\r\n\tsetBounds: function (latLngBounds) {\r\n\t\tthis.setLatLngs(this._boundsToLatLngs(latLngBounds));\r\n\t},\r\n\r\n\t_boundsToLatLngs: function (latLngBounds) {\r\n\t\tlatLngBounds = L.latLngBounds(latLngBounds);\r\n\t\treturn [\r\n\t\t\tlatLngBounds.getSouthWest(),\r\n\t\t\tlatLngBounds.getNorthWest(),\r\n\t\t\tlatLngBounds.getNorthEast(),\r\n\t\t\tlatLngBounds.getSouthEast()\r\n\t\t];\r\n\t}\r\n});\r\n\r\nL.rectangle = function (latLngBounds, options) {\r\n\treturn new L.Rectangle(latLngBounds, options);\r\n};\r\n\n\n/*\r\n * L.Circle is a circle overlay (with a certain radius in meters).\r\n */\r\n\r\nL.Circle = L.Path.extend({\r\n\tinitialize: function (latlng, radius, options) {\r\n\t\tL.Path.prototype.initialize.call(this, options);\r\n\r\n\t\tthis._latlng = L.latLng(latlng);\r\n\t\tthis._mRadius = radius;\r\n\t},\r\n\r\n\toptions: {\r\n\t\tfill: true\r\n\t},\r\n\r\n\tsetLatLng: function (latlng) {\r\n\t\tthis._latlng = L.latLng(latlng);\r\n\t\treturn this.redraw();\r\n\t},\r\n\r\n\tsetRadius: function (radius) {\r\n\t\tthis._mRadius = radius;\r\n\t\treturn this.redraw();\r\n\t},\r\n\r\n\tprojectLatlngs: function () {\r\n\t\tvar lngRadius = this._getLngRadius(),\r\n\t\t latlng = this._latlng,\r\n\t\t pointLeft = this._map.latLngToLayerPoint([latlng.lat, latlng.lng - lngRadius]);\r\n\r\n\t\tthis._point = this._map.latLngToLayerPoint(latlng);\r\n\t\tthis._radius = Math.max(this._point.x - pointLeft.x, 1);\r\n\t},\r\n\r\n\tgetBounds: function () {\r\n\t\tvar lngRadius = this._getLngRadius(),\r\n\t\t latRadius = (this._mRadius / 40075017) * 360,\r\n\t\t latlng = this._latlng;\r\n\r\n\t\treturn new L.LatLngBounds(\r\n\t\t [latlng.lat - latRadius, latlng.lng - lngRadius],\r\n\t\t [latlng.lat + latRadius, latlng.lng + lngRadius]);\r\n\t},\r\n\r\n\tgetLatLng: function () {\r\n\t\treturn this._latlng;\r\n\t},\r\n\r\n\tgetPathString: function () {\r\n\t\tvar p = this._point,\r\n\t\t r = this._radius;\r\n\r\n\t\tif (this._checkIfEmpty()) {\r\n\t\t\treturn '';\r\n\t\t}\r\n\r\n\t\tif (L.Browser.svg) {\r\n\t\t\treturn 'M' + p.x + ',' + (p.y - r) +\r\n\t\t\t 'A' + r + ',' + r + ',0,1,1,' +\r\n\t\t\t (p.x - 0.1) + ',' + (p.y - r) + ' z';\r\n\t\t} else {\r\n\t\t\tp._round();\r\n\t\t\tr = Math.round(r);\r\n\t\t\treturn 'AL ' + p.x + ',' + p.y + ' ' + r + ',' + r + ' 0,' + (65535 * 360);\r\n\t\t}\r\n\t},\r\n\r\n\tgetRadius: function () {\r\n\t\treturn this._mRadius;\r\n\t},\r\n\r\n\t// TODO Earth hardcoded, move into projection code!\r\n\r\n\t_getLatRadius: function () {\r\n\t\treturn (this._mRadius / 40075017) * 360;\r\n\t},\r\n\r\n\t_getLngRadius: function () {\r\n\t\treturn this._getLatRadius() / Math.cos(L.LatLng.DEG_TO_RAD * this._latlng.lat);\r\n\t},\r\n\r\n\t_checkIfEmpty: function () {\r\n\t\tif (!this._map) {\r\n\t\t\treturn false;\r\n\t\t}\r\n\t\tvar vp = this._map._pathViewport,\r\n\t\t r = this._radius,\r\n\t\t p = this._point;\r\n\r\n\t\treturn p.x - r > vp.max.x || p.y - r > vp.max.y ||\r\n\t\t p.x + r < vp.min.x || p.y + r < vp.min.y;\r\n\t}\r\n});\r\n\r\nL.circle = function (latlng, radius, options) {\r\n\treturn new L.Circle(latlng, radius, options);\r\n};\r\n\n\n/*\r\n * L.CircleMarker is a circle overlay with a permanent pixel radius.\r\n */\r\n\r\nL.CircleMarker = L.Circle.extend({\r\n\toptions: {\r\n\t\tradius: 10,\r\n\t\tweight: 2\r\n\t},\r\n\r\n\tinitialize: function (latlng, options) {\r\n\t\tL.Circle.prototype.initialize.call(this, latlng, null, options);\r\n\t\tthis._radius = this.options.radius;\r\n\t},\r\n\r\n\tprojectLatlngs: function () {\r\n\t\tthis._point = this._map.latLngToLayerPoint(this._latlng);\r\n\t},\r\n\r\n\t_updateStyle : function () {\r\n\t\tL.Circle.prototype._updateStyle.call(this);\r\n\t\tthis.setRadius(this.options.radius);\r\n\t},\r\n\r\n\tsetLatLng: function (latlng) {\r\n\t\tL.Circle.prototype.setLatLng.call(this, latlng);\r\n\t\tif (this._popup && this._popup._isOpen) {\r\n\t\t\tthis._popup.setLatLng(latlng);\r\n\t\t}\r\n\t\treturn this;\r\n\t},\r\n\r\n\tsetRadius: function (radius) {\r\n\t\tthis.options.radius = this._radius = radius;\r\n\t\treturn this.redraw();\r\n\t},\r\n\r\n\tgetRadius: function () {\r\n\t\treturn this._radius;\r\n\t}\r\n});\r\n\r\nL.circleMarker = function (latlng, options) {\r\n\treturn new L.CircleMarker(latlng, options);\r\n};\r\n\n\n/*\r\n * Extends L.Polyline to be able to manually detect clicks on Canvas-rendered polylines.\r\n */\r\n\r\nL.Polyline.include(!L.Path.CANVAS ? {} : {\r\n\t_containsPoint: function (p, closed) {\r\n\t\tvar i, j, k, len, len2, dist, part,\r\n\t\t w = this.options.weight / 2;\r\n\r\n\t\tif (L.Browser.touch) {\r\n\t\t\tw += 10; // polyline click tolerance on touch devices\r\n\t\t}\r\n\r\n\t\tfor (i = 0, len = this._parts.length; i < len; i++) {\r\n\t\t\tpart = this._parts[i];\r\n\t\t\tfor (j = 0, len2 = part.length, k = len2 - 1; j < len2; k = j++) {\r\n\t\t\t\tif (!closed && (j === 0)) {\r\n\t\t\t\t\tcontinue;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tdist = L.LineUtil.pointToSegmentDistance(p, part[k], part[j]);\r\n\r\n\t\t\t\tif (dist <= w) {\r\n\t\t\t\t\treturn true;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn false;\r\n\t}\r\n});\r\n\n\n/*\r\n * Extends L.Polygon to be able to manually detect clicks on Canvas-rendered polygons.\r\n */\r\n\r\nL.Polygon.include(!L.Path.CANVAS ? {} : {\r\n\t_containsPoint: function (p) {\r\n\t\tvar inside = false,\r\n\t\t part, p1, p2,\r\n\t\t i, j, k,\r\n\t\t len, len2;\r\n\r\n\t\t// TODO optimization: check if within bounds first\r\n\r\n\t\tif (L.Polyline.prototype._containsPoint.call(this, p, true)) {\r\n\t\t\t// click on polygon border\r\n\t\t\treturn true;\r\n\t\t}\r\n\r\n\t\t// ray casting algorithm for detecting if point is in polygon\r\n\r\n\t\tfor (i = 0, len = this._parts.length; i < len; i++) {\r\n\t\t\tpart = this._parts[i];\r\n\r\n\t\t\tfor (j = 0, len2 = part.length, k = len2 - 1; j < len2; k = j++) {\r\n\t\t\t\tp1 = part[j];\r\n\t\t\t\tp2 = part[k];\r\n\r\n\t\t\t\tif (((p1.y > p.y) !== (p2.y > p.y)) &&\r\n\t\t\t\t\t\t(p.x < (p2.x - p1.x) * (p.y - p1.y) / (p2.y - p1.y) + p1.x)) {\r\n\t\t\t\t\tinside = !inside;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn inside;\r\n\t}\r\n});\r\n\n\n/*\r\n * Extends L.Circle with Canvas-specific code.\r\n */\r\n\r\nL.Circle.include(!L.Path.CANVAS ? {} : {\r\n\t_drawPath: function () {\r\n\t\tvar p = this._point;\r\n\t\tthis._ctx.beginPath();\r\n\t\tthis._ctx.arc(p.x, p.y, this._radius, 0, Math.PI * 2, false);\r\n\t},\r\n\r\n\t_containsPoint: function (p) {\r\n\t\tvar center = this._point,\r\n\t\t w2 = this.options.stroke ? this.options.weight / 2 : 0;\r\n\r\n\t\treturn (p.distanceTo(center) <= this._radius + w2);\r\n\t}\r\n});\r\n\n\n/*\n * CircleMarker canvas specific drawing parts.\n */\n\nL.CircleMarker.include(!L.Path.CANVAS ? {} : {\n\t_updateStyle: function () {\n\t\tL.Path.prototype._updateStyle.call(this);\n\t}\n});\n\n\n/*\r\n * L.GeoJSON turns any GeoJSON data into a Leaflet layer.\r\n */\r\n\r\nL.GeoJSON = L.FeatureGroup.extend({\r\n\r\n\tinitialize: function (geojson, options) {\r\n\t\tL.setOptions(this, options);\r\n\r\n\t\tthis._layers = {};\r\n\r\n\t\tif (geojson) {\r\n\t\t\tthis.addData(geojson);\r\n\t\t}\r\n\t},\r\n\r\n\taddData: function (geojson) {\r\n\t\tvar features = L.Util.isArray(geojson) ? geojson : geojson.features,\r\n\t\t i, len, feature;\r\n\r\n\t\tif (features) {\r\n\t\t\tfor (i = 0, len = features.length; i < len; i++) {\r\n\t\t\t\t// Only add this if geometry or geometries are set and not null\r\n\t\t\t\tfeature = features[i];\r\n\t\t\t\tif (feature.geometries || feature.geometry || feature.features || feature.coordinates) {\r\n\t\t\t\t\tthis.addData(features[i]);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\treturn this;\r\n\t\t}\r\n\r\n\t\tvar options = this.options;\r\n\r\n\t\tif (options.filter && !options.filter(geojson)) { return; }\r\n\r\n\t\tvar layer = L.GeoJSON.geometryToLayer(geojson, options.pointToLayer, options.coordsToLatLng, options);\r\n\t\tlayer.feature = L.GeoJSON.asFeature(geojson);\r\n\r\n\t\tlayer.defaultOptions = layer.options;\r\n\t\tthis.resetStyle(layer);\r\n\r\n\t\tif (options.onEachFeature) {\r\n\t\t\toptions.onEachFeature(geojson, layer);\r\n\t\t}\r\n\r\n\t\treturn this.addLayer(layer);\r\n\t},\r\n\r\n\tresetStyle: function (layer) {\r\n\t\tvar style = this.options.style;\r\n\t\tif (style) {\r\n\t\t\t// reset any custom styles\r\n\t\t\tL.Util.extend(layer.options, layer.defaultOptions);\r\n\r\n\t\t\tthis._setLayerStyle(layer, style);\r\n\t\t}\r\n\t},\r\n\r\n\tsetStyle: function (style) {\r\n\t\tthis.eachLayer(function (layer) {\r\n\t\t\tthis._setLayerStyle(layer, style);\r\n\t\t}, this);\r\n\t},\r\n\r\n\t_setLayerStyle: function (layer, style) {\r\n\t\tif (typeof style === 'function') {\r\n\t\t\tstyle = style(layer.feature);\r\n\t\t}\r\n\t\tif (layer.setStyle) {\r\n\t\t\tlayer.setStyle(style);\r\n\t\t}\r\n\t}\r\n});\r\n\r\nL.extend(L.GeoJSON, {\r\n\tgeometryToLayer: function (geojson, pointToLayer, coordsToLatLng, vectorOptions) {\r\n\t\tvar geometry = geojson.type === 'Feature' ? geojson.geometry : geojson,\r\n\t\t coords = geometry.coordinates,\r\n\t\t layers = [],\r\n\t\t latlng, latlngs, i, len;\r\n\r\n\t\tcoordsToLatLng = coordsToLatLng || this.coordsToLatLng;\r\n\r\n\t\tswitch (geometry.type) {\r\n\t\tcase 'Point':\r\n\t\t\tlatlng = coordsToLatLng(coords);\r\n\t\t\treturn pointToLayer ? pointToLayer(geojson, latlng) : new L.Marker(latlng);\r\n\r\n\t\tcase 'MultiPoint':\r\n\t\t\tfor (i = 0, len = coords.length; i < len; i++) {\r\n\t\t\t\tlatlng = coordsToLatLng(coords[i]);\r\n\t\t\t\tlayers.push(pointToLayer ? pointToLayer(geojson, latlng) : new L.Marker(latlng));\r\n\t\t\t}\r\n\t\t\treturn new L.FeatureGroup(layers);\r\n\r\n\t\tcase 'LineString':\r\n\t\t\tlatlngs = this.coordsToLatLngs(coords, 0, coordsToLatLng);\r\n\t\t\treturn new L.Polyline(latlngs, vectorOptions);\r\n\r\n\t\tcase 'Polygon':\r\n\t\t\tif (coords.length === 2 && !coords[1].length) {\r\n\t\t\t\tthrow new Error('Invalid GeoJSON object.');\r\n\t\t\t}\r\n\t\t\tlatlngs = this.coordsToLatLngs(coords, 1, coordsToLatLng);\r\n\t\t\treturn new L.Polygon(latlngs, vectorOptions);\r\n\r\n\t\tcase 'MultiLineString':\r\n\t\t\tlatlngs = this.coordsToLatLngs(coords, 1, coordsToLatLng);\r\n\t\t\treturn new L.MultiPolyline(latlngs, vectorOptions);\r\n\r\n\t\tcase 'MultiPolygon':\r\n\t\t\tlatlngs = this.coordsToLatLngs(coords, 2, coordsToLatLng);\r\n\t\t\treturn new L.MultiPolygon(latlngs, vectorOptions);\r\n\r\n\t\tcase 'GeometryCollection':\r\n\t\t\tfor (i = 0, len = geometry.geometries.length; i < len; i++) {\r\n\r\n\t\t\t\tlayers.push(this.geometryToLayer({\r\n\t\t\t\t\tgeometry: geometry.geometries[i],\r\n\t\t\t\t\ttype: 'Feature',\r\n\t\t\t\t\tproperties: geojson.properties\r\n\t\t\t\t}, pointToLayer, coordsToLatLng, vectorOptions));\r\n\t\t\t}\r\n\t\t\treturn new L.FeatureGroup(layers);\r\n\r\n\t\tdefault:\r\n\t\t\tthrow new Error('Invalid GeoJSON object.');\r\n\t\t}\r\n\t},\r\n\r\n\tcoordsToLatLng: function (coords) { // (Array[, Boolean]) -> LatLng\r\n\t\treturn new L.LatLng(coords[1], coords[0], coords[2]);\r\n\t},\r\n\r\n\tcoordsToLatLngs: function (coords, levelsDeep, coordsToLatLng) { // (Array[, Number, Function]) -> Array\r\n\t\tvar latlng, i, len,\r\n\t\t latlngs = [];\r\n\r\n\t\tfor (i = 0, len = coords.length; i < len; i++) {\r\n\t\t\tlatlng = levelsDeep ?\r\n\t\t\t this.coordsToLatLngs(coords[i], levelsDeep - 1, coordsToLatLng) :\r\n\t\t\t (coordsToLatLng || this.coordsToLatLng)(coords[i]);\r\n\r\n\t\t\tlatlngs.push(latlng);\r\n\t\t}\r\n\r\n\t\treturn latlngs;\r\n\t},\r\n\r\n\tlatLngToCoords: function (latlng) {\r\n\t\tvar coords = [latlng.lng, latlng.lat];\r\n\r\n\t\tif (latlng.alt !== undefined) {\r\n\t\t\tcoords.push(latlng.alt);\r\n\t\t}\r\n\t\treturn coords;\r\n\t},\r\n\r\n\tlatLngsToCoords: function (latLngs) {\r\n\t\tvar coords = [];\r\n\r\n\t\tfor (var i = 0, len = latLngs.length; i < len; i++) {\r\n\t\t\tcoords.push(L.GeoJSON.latLngToCoords(latLngs[i]));\r\n\t\t}\r\n\r\n\t\treturn coords;\r\n\t},\r\n\r\n\tgetFeature: function (layer, newGeometry) {\r\n\t\treturn layer.feature ? L.extend({}, layer.feature, {geometry: newGeometry}) : L.GeoJSON.asFeature(newGeometry);\r\n\t},\r\n\r\n\tasFeature: function (geoJSON) {\r\n\t\tif (geoJSON.type === 'Feature') {\r\n\t\t\treturn geoJSON;\r\n\t\t}\r\n\r\n\t\treturn {\r\n\t\t\ttype: 'Feature',\r\n\t\t\tproperties: {},\r\n\t\t\tgeometry: geoJSON\r\n\t\t};\r\n\t}\r\n});\r\n\r\nvar PointToGeoJSON = {\r\n\ttoGeoJSON: function () {\r\n\t\treturn L.GeoJSON.getFeature(this, {\r\n\t\t\ttype: 'Point',\r\n\t\t\tcoordinates: L.GeoJSON.latLngToCoords(this.getLatLng())\r\n\t\t});\r\n\t}\r\n};\r\n\r\nL.Marker.include(PointToGeoJSON);\r\nL.Circle.include(PointToGeoJSON);\r\nL.CircleMarker.include(PointToGeoJSON);\r\n\r\nL.Polyline.include({\r\n\ttoGeoJSON: function () {\r\n\t\treturn L.GeoJSON.getFeature(this, {\r\n\t\t\ttype: 'LineString',\r\n\t\t\tcoordinates: L.GeoJSON.latLngsToCoords(this.getLatLngs())\r\n\t\t});\r\n\t}\r\n});\r\n\r\nL.Polygon.include({\r\n\ttoGeoJSON: function () {\r\n\t\tvar coords = [L.GeoJSON.latLngsToCoords(this.getLatLngs())],\r\n\t\t i, len, hole;\r\n\r\n\t\tcoords[0].push(coords[0][0]);\r\n\r\n\t\tif (this._holes) {\r\n\t\t\tfor (i = 0, len = this._holes.length; i < len; i++) {\r\n\t\t\t\thole = L.GeoJSON.latLngsToCoords(this._holes[i]);\r\n\t\t\t\thole.push(hole[0]);\r\n\t\t\t\tcoords.push(hole);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn L.GeoJSON.getFeature(this, {\r\n\t\t\ttype: 'Polygon',\r\n\t\t\tcoordinates: coords\r\n\t\t});\r\n\t}\r\n});\r\n\r\n(function () {\r\n\tfunction multiToGeoJSON(type) {\r\n\t\treturn function () {\r\n\t\t\tvar coords = [];\r\n\r\n\t\t\tthis.eachLayer(function (layer) {\r\n\t\t\t\tcoords.push(layer.toGeoJSON().geometry.coordinates);\r\n\t\t\t});\r\n\r\n\t\t\treturn L.GeoJSON.getFeature(this, {\r\n\t\t\t\ttype: type,\r\n\t\t\t\tcoordinates: coords\r\n\t\t\t});\r\n\t\t};\r\n\t}\r\n\r\n\tL.MultiPolyline.include({toGeoJSON: multiToGeoJSON('MultiLineString')});\r\n\tL.MultiPolygon.include({toGeoJSON: multiToGeoJSON('MultiPolygon')});\r\n\r\n\tL.LayerGroup.include({\r\n\t\ttoGeoJSON: function () {\r\n\r\n\t\t\tvar geometry = this.feature && this.feature.geometry,\r\n\t\t\t\tjsons = [],\r\n\t\t\t\tjson;\r\n\r\n\t\t\tif (geometry && geometry.type === 'MultiPoint') {\r\n\t\t\t\treturn multiToGeoJSON('MultiPoint').call(this);\r\n\t\t\t}\r\n\r\n\t\t\tvar isGeometryCollection = geometry && geometry.type === 'GeometryCollection';\r\n\r\n\t\t\tthis.eachLayer(function (layer) {\r\n\t\t\t\tif (layer.toGeoJSON) {\r\n\t\t\t\t\tjson = layer.toGeoJSON();\r\n\t\t\t\t\tjsons.push(isGeometryCollection ? json.geometry : L.GeoJSON.asFeature(json));\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\tif (isGeometryCollection) {\r\n\t\t\t\treturn L.GeoJSON.getFeature(this, {\r\n\t\t\t\t\tgeometries: jsons,\r\n\t\t\t\t\ttype: 'GeometryCollection'\r\n\t\t\t\t});\r\n\t\t\t}\r\n\r\n\t\t\treturn {\r\n\t\t\t\ttype: 'FeatureCollection',\r\n\t\t\t\tfeatures: jsons\r\n\t\t\t};\r\n\t\t}\r\n\t});\r\n}());\r\n\r\nL.geoJson = function (geojson, options) {\r\n\treturn new L.GeoJSON(geojson, options);\r\n};\r\n\n\n/*\r\n * L.DomEvent contains functions for working with DOM events.\r\n */\r\n\r\nL.DomEvent = {\r\n\t/* inspired by John Resig, Dean Edwards and YUI addEvent implementations */\r\n\taddListener: function (obj, type, fn, context) { // (HTMLElement, String, Function[, Object])\r\n\r\n\t\tvar id = L.stamp(fn),\r\n\t\t key = '_leaflet_' + type + id,\r\n\t\t handler, originalHandler, newType;\r\n\r\n\t\tif (obj[key]) { return this; }\r\n\r\n\t\thandler = function (e) {\r\n\t\t\treturn fn.call(context || obj, e || L.DomEvent._getEvent());\r\n\t\t};\r\n\r\n\t\tif (L.Browser.pointer && type.indexOf('touch') === 0) {\r\n\t\t\treturn this.addPointerListener(obj, type, handler, id);\r\n\t\t}\r\n\t\tif (L.Browser.touch && (type === 'dblclick') && this.addDoubleTapListener) {\r\n\t\t\tthis.addDoubleTapListener(obj, handler, id);\r\n\t\t}\r\n\r\n\t\tif ('addEventListener' in obj) {\r\n\r\n\t\t\tif (type === 'mousewheel') {\r\n\t\t\t\tobj.addEventListener('DOMMouseScroll', handler, false);\r\n\t\t\t\tobj.addEventListener(type, handler, false);\r\n\r\n\t\t\t} else if ((type === 'mouseenter') || (type === 'mouseleave')) {\r\n\r\n\t\t\t\toriginalHandler = handler;\r\n\t\t\t\tnewType = (type === 'mouseenter' ? 'mouseover' : 'mouseout');\r\n\r\n\t\t\t\thandler = function (e) {\r\n\t\t\t\t\tif (!L.DomEvent._checkMouse(obj, e)) { return; }\r\n\t\t\t\t\treturn originalHandler(e);\r\n\t\t\t\t};\r\n\r\n\t\t\t\tobj.addEventListener(newType, handler, false);\r\n\r\n\t\t\t} else if (type === 'click' && L.Browser.android) {\r\n\t\t\t\toriginalHandler = handler;\r\n\t\t\t\thandler = function (e) {\r\n\t\t\t\t\treturn L.DomEvent._filterClick(e, originalHandler);\r\n\t\t\t\t};\r\n\r\n\t\t\t\tobj.addEventListener(type, handler, false);\r\n\t\t\t} else {\r\n\t\t\t\tobj.addEventListener(type, handler, false);\r\n\t\t\t}\r\n\r\n\t\t} else if ('attachEvent' in obj) {\r\n\t\t\tobj.attachEvent('on' + type, handler);\r\n\t\t}\r\n\r\n\t\tobj[key] = handler;\r\n\r\n\t\treturn this;\r\n\t},\r\n\r\n\tremoveListener: function (obj, type, fn) { // (HTMLElement, String, Function)\r\n\r\n\t\tvar id = L.stamp(fn),\r\n\t\t key = '_leaflet_' + type + id,\r\n\t\t handler = obj[key];\r\n\r\n\t\tif (!handler) { return this; }\r\n\r\n\t\tif (L.Browser.pointer && type.indexOf('touch') === 0) {\r\n\t\t\tthis.removePointerListener(obj, type, id);\r\n\t\t} else if (L.Browser.touch && (type === 'dblclick') && this.removeDoubleTapListener) {\r\n\t\t\tthis.removeDoubleTapListener(obj, id);\r\n\r\n\t\t} else if ('removeEventListener' in obj) {\r\n\r\n\t\t\tif (type === 'mousewheel') {\r\n\t\t\t\tobj.removeEventListener('DOMMouseScroll', handler, false);\r\n\t\t\t\tobj.removeEventListener(type, handler, false);\r\n\r\n\t\t\t} else if ((type === 'mouseenter') || (type === 'mouseleave')) {\r\n\t\t\t\tobj.removeEventListener((type === 'mouseenter' ? 'mouseover' : 'mouseout'), handler, false);\r\n\t\t\t} else {\r\n\t\t\t\tobj.removeEventListener(type, handler, false);\r\n\t\t\t}\r\n\t\t} else if ('detachEvent' in obj) {\r\n\t\t\tobj.detachEvent('on' + type, handler);\r\n\t\t}\r\n\r\n\t\tobj[key] = null;\r\n\r\n\t\treturn this;\r\n\t},\r\n\r\n\tstopPropagation: function (e) {\r\n\r\n\t\tif (e.stopPropagation) {\r\n\t\t\te.stopPropagation();\r\n\t\t} else {\r\n\t\t\te.cancelBubble = true;\r\n\t\t}\r\n\t\tL.DomEvent._skipped(e);\r\n\r\n\t\treturn this;\r\n\t},\r\n\r\n\tdisableScrollPropagation: function (el) {\r\n\t\tvar stop = L.DomEvent.stopPropagation;\r\n\r\n\t\treturn L.DomEvent\r\n\t\t\t.on(el, 'mousewheel', stop)\r\n\t\t\t.on(el, 'MozMousePixelScroll', stop);\r\n\t},\r\n\r\n\tdisableClickPropagation: function (el) {\r\n\t\tvar stop = L.DomEvent.stopPropagation;\r\n\r\n\t\tfor (var i = L.Draggable.START.length - 1; i >= 0; i--) {\r\n\t\t\tL.DomEvent.on(el, L.Draggable.START[i], stop);\r\n\t\t}\r\n\r\n\t\treturn L.DomEvent\r\n\t\t\t.on(el, 'click', L.DomEvent._fakeStop)\r\n\t\t\t.on(el, 'dblclick', stop);\r\n\t},\r\n\r\n\tpreventDefault: function (e) {\r\n\r\n\t\tif (e.preventDefault) {\r\n\t\t\te.preventDefault();\r\n\t\t} else {\r\n\t\t\te.returnValue = false;\r\n\t\t}\r\n\t\treturn this;\r\n\t},\r\n\r\n\tstop: function (e) {\r\n\t\treturn L.DomEvent\r\n\t\t\t.preventDefault(e)\r\n\t\t\t.stopPropagation(e);\r\n\t},\r\n\r\n\tgetMousePosition: function (e, container) {\r\n\t\tif (!container) {\r\n\t\t\treturn new L.Point(e.clientX, e.clientY);\r\n\t\t}\r\n\r\n\t\tvar rect = container.getBoundingClientRect();\r\n\r\n\t\treturn new L.Point(\r\n\t\t\te.clientX - rect.left - container.clientLeft,\r\n\t\t\te.clientY - rect.top - container.clientTop);\r\n\t},\r\n\r\n\tgetWheelDelta: function (e) {\r\n\r\n\t\tvar delta = 0;\r\n\r\n\t\tif (e.wheelDelta) {\r\n\t\t\tdelta = e.wheelDelta / 120;\r\n\t\t}\r\n\t\tif (e.detail) {\r\n\t\t\tdelta = -e.detail / 3;\r\n\t\t}\r\n\t\treturn delta;\r\n\t},\r\n\r\n\t_skipEvents: {},\r\n\r\n\t_fakeStop: function (e) {\r\n\t\t// fakes stopPropagation by setting a special event flag, checked/reset with L.DomEvent._skipped(e)\r\n\t\tL.DomEvent._skipEvents[e.type] = true;\r\n\t},\r\n\r\n\t_skipped: function (e) {\r\n\t\tvar skipped = this._skipEvents[e.type];\r\n\t\t// reset when checking, as it's only used in map container and propagates outside of the map\r\n\t\tthis._skipEvents[e.type] = false;\r\n\t\treturn skipped;\r\n\t},\r\n\r\n\t// check if element really left/entered the event target (for mouseenter/mouseleave)\r\n\t_checkMouse: function (el, e) {\r\n\r\n\t\tvar related = e.relatedTarget;\r\n\r\n\t\tif (!related) { return true; }\r\n\r\n\t\ttry {\r\n\t\t\twhile (related && (related !== el)) {\r\n\t\t\t\trelated = related.parentNode;\r\n\t\t\t}\r\n\t\t} catch (err) {\r\n\t\t\treturn false;\r\n\t\t}\r\n\t\treturn (related !== el);\r\n\t},\r\n\r\n\t_getEvent: function () { // evil magic for IE\r\n\t\t/*jshint noarg:false */\r\n\t\tvar e = window.event;\r\n\t\tif (!e) {\r\n\t\t\tvar caller = arguments.callee.caller;\r\n\t\t\twhile (caller) {\r\n\t\t\t\te = caller['arguments'][0];\r\n\t\t\t\tif (e && window.Event === e.constructor) {\r\n\t\t\t\t\tbreak;\r\n\t\t\t\t}\r\n\t\t\t\tcaller = caller.caller;\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn e;\r\n\t},\r\n\r\n\t// this is a horrible workaround for a bug in Android where a single touch triggers two click events\r\n\t_filterClick: function (e, handler) {\r\n\t\tvar timeStamp = (e.timeStamp || e.originalEvent.timeStamp),\r\n\t\t\telapsed = L.DomEvent._lastClick && (timeStamp - L.DomEvent._lastClick);\r\n\r\n\t\t// are they closer together than 500ms yet more than 100ms?\r\n\t\t// Android typically triggers them ~300ms apart while multiple listeners\r\n\t\t// on the same event should be triggered far faster;\r\n\t\t// or check if click is simulated on the element, and if it is, reject any non-simulated events\r\n\r\n\t\tif ((elapsed && elapsed > 100 && elapsed < 500) || (e.target._simulatedClick && !e._simulated)) {\r\n\t\t\tL.DomEvent.stop(e);\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tL.DomEvent._lastClick = timeStamp;\r\n\r\n\t\treturn handler(e);\r\n\t}\r\n};\r\n\r\nL.DomEvent.on = L.DomEvent.addListener;\r\nL.DomEvent.off = L.DomEvent.removeListener;\r\n\n\n/*\r\n * L.Draggable allows you to add dragging capabilities to any element. Supports mobile devices too.\r\n */\r\n\r\nL.Draggable = L.Class.extend({\r\n\tincludes: L.Mixin.Events,\r\n\r\n\tstatics: {\r\n\t\tSTART: L.Browser.touch ? ['touchstart', 'mousedown'] : ['mousedown'],\r\n\t\tEND: {\r\n\t\t\tmousedown: 'mouseup',\r\n\t\t\ttouchstart: 'touchend',\r\n\t\t\tpointerdown: 'touchend',\r\n\t\t\tMSPointerDown: 'touchend'\r\n\t\t},\r\n\t\tMOVE: {\r\n\t\t\tmousedown: 'mousemove',\r\n\t\t\ttouchstart: 'touchmove',\r\n\t\t\tpointerdown: 'touchmove',\r\n\t\t\tMSPointerDown: 'touchmove'\r\n\t\t}\r\n\t},\r\n\r\n\tinitialize: function (element, dragStartTarget) {\r\n\t\tthis._element = element;\r\n\t\tthis._dragStartTarget = dragStartTarget || element;\r\n\t},\r\n\r\n\tenable: function () {\r\n\t\tif (this._enabled) { return; }\r\n\r\n\t\tfor (var i = L.Draggable.START.length - 1; i >= 0; i--) {\r\n\t\t\tL.DomEvent.on(this._dragStartTarget, L.Draggable.START[i], this._onDown, this);\r\n\t\t}\r\n\r\n\t\tthis._enabled = true;\r\n\t},\r\n\r\n\tdisable: function () {\r\n\t\tif (!this._enabled) { return; }\r\n\r\n\t\tfor (var i = L.Draggable.START.length - 1; i >= 0; i--) {\r\n\t\t\tL.DomEvent.off(this._dragStartTarget, L.Draggable.START[i], this._onDown, this);\r\n\t\t}\r\n\r\n\t\tthis._enabled = false;\r\n\t\tthis._moved = false;\r\n\t},\r\n\r\n\t_onDown: function (e) {\r\n\t\tthis._moved = false;\r\n\r\n\t\tif (e.shiftKey || ((e.which !== 1) && (e.button !== 1) && !e.touches)) { return; }\r\n\r\n\t\tL.DomEvent.stopPropagation(e);\r\n\r\n\t\tif (L.Draggable._disabled) { return; }\r\n\r\n\t\tL.DomUtil.disableImageDrag();\r\n\t\tL.DomUtil.disableTextSelection();\r\n\r\n\t\tif (this._moving) { return; }\r\n\r\n\t\tvar first = e.touches ? e.touches[0] : e;\r\n\r\n\t\tthis._startPoint = new L.Point(first.clientX, first.clientY);\r\n\t\tthis._startPos = this._newPos = L.DomUtil.getPosition(this._element);\r\n\r\n\t\tL.DomEvent\r\n\t\t .on(document, L.Draggable.MOVE[e.type], this._onMove, this)\r\n\t\t .on(document, L.Draggable.END[e.type], this._onUp, this);\r\n\t},\r\n\r\n\t_onMove: function (e) {\r\n\t\tif (e.touches && e.touches.length > 1) {\r\n\t\t\tthis._moved = true;\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tvar first = (e.touches && e.touches.length === 1 ? e.touches[0] : e),\r\n\t\t newPoint = new L.Point(first.clientX, first.clientY),\r\n\t\t offset = newPoint.subtract(this._startPoint);\r\n\r\n\t\tif (!offset.x && !offset.y) { return; }\r\n\t\tif (L.Browser.touch && Math.abs(offset.x) + Math.abs(offset.y) < 3) { return; }\r\n\r\n\t\tL.DomEvent.preventDefault(e);\r\n\r\n\t\tif (!this._moved) {\r\n\t\t\tthis.fire('dragstart');\r\n\r\n\t\t\tthis._moved = true;\r\n\t\t\tthis._startPos = L.DomUtil.getPosition(this._element).subtract(offset);\r\n\r\n\t\t\tL.DomUtil.addClass(document.body, 'leaflet-dragging');\r\n\t\t\tthis._lastTarget = e.target || e.srcElement;\r\n\t\t\tL.DomUtil.addClass(this._lastTarget, 'leaflet-drag-target');\r\n\t\t}\r\n\r\n\t\tthis._newPos = this._startPos.add(offset);\r\n\t\tthis._moving = true;\r\n\r\n\t\tL.Util.cancelAnimFrame(this._animRequest);\r\n\t\tthis._animRequest = L.Util.requestAnimFrame(this._updatePosition, this, true, this._dragStartTarget);\r\n\t},\r\n\r\n\t_updatePosition: function () {\r\n\t\tthis.fire('predrag');\r\n\t\tL.DomUtil.setPosition(this._element, this._newPos);\r\n\t\tthis.fire('drag');\r\n\t},\r\n\r\n\t_onUp: function () {\r\n\t\tL.DomUtil.removeClass(document.body, 'leaflet-dragging');\r\n\r\n\t\tif (this._lastTarget) {\r\n\t\t\tL.DomUtil.removeClass(this._lastTarget, 'leaflet-drag-target');\r\n\t\t\tthis._lastTarget = null;\r\n\t\t}\r\n\r\n\t\tfor (var i in L.Draggable.MOVE) {\r\n\t\t\tL.DomEvent\r\n\t\t\t .off(document, L.Draggable.MOVE[i], this._onMove)\r\n\t\t\t .off(document, L.Draggable.END[i], this._onUp);\r\n\t\t}\r\n\r\n\t\tL.DomUtil.enableImageDrag();\r\n\t\tL.DomUtil.enableTextSelection();\r\n\r\n\t\tif (this._moved && this._moving) {\r\n\t\t\t// ensure drag is not fired after dragend\r\n\t\t\tL.Util.cancelAnimFrame(this._animRequest);\r\n\r\n\t\t\tthis.fire('dragend', {\r\n\t\t\t\tdistance: this._newPos.distanceTo(this._startPos)\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tthis._moving = false;\r\n\t}\r\n});\r\n\n\n/*\n\tL.Handler is a base class for handler classes that are used internally to inject\n\tinteraction features like dragging to classes like Map and Marker.\n*/\n\nL.Handler = L.Class.extend({\n\tinitialize: function (map) {\n\t\tthis._map = map;\n\t},\n\n\tenable: function () {\n\t\tif (this._enabled) { return; }\n\n\t\tthis._enabled = true;\n\t\tthis.addHooks();\n\t},\n\n\tdisable: function () {\n\t\tif (!this._enabled) { return; }\n\n\t\tthis._enabled = false;\n\t\tthis.removeHooks();\n\t},\n\n\tenabled: function () {\n\t\treturn !!this._enabled;\n\t}\n});\n\n\n/*\n * L.Handler.MapDrag is used to make the map draggable (with panning inertia), enabled by default.\n */\n\nL.Map.mergeOptions({\n\tdragging: true,\n\n\tinertia: !L.Browser.android23,\n\tinertiaDeceleration: 3400, // px/s^2\n\tinertiaMaxSpeed: Infinity, // px/s\n\tinertiaThreshold: L.Browser.touch ? 32 : 18, // ms\n\teaseLinearity: 0.25,\n\n\t// TODO refactor, move to CRS\n\tworldCopyJump: false\n});\n\nL.Map.Drag = L.Handler.extend({\n\taddHooks: function () {\n\t\tif (!this._draggable) {\n\t\t\tvar map = this._map;\n\n\t\t\tthis._draggable = new L.Draggable(map._mapPane, map._container);\n\n\t\t\tthis._draggable.on({\n\t\t\t\t'dragstart': this._onDragStart,\n\t\t\t\t'drag': this._onDrag,\n\t\t\t\t'dragend': this._onDragEnd\n\t\t\t}, this);\n\n\t\t\tif (map.options.worldCopyJump) {\n\t\t\t\tthis._draggable.on('predrag', this._onPreDrag, this);\n\t\t\t\tmap.on('viewreset', this._onViewReset, this);\n\n\t\t\t\tmap.whenReady(this._onViewReset, this);\n\t\t\t}\n\t\t}\n\t\tthis._draggable.enable();\n\t},\n\n\tremoveHooks: function () {\n\t\tthis._draggable.disable();\n\t},\n\n\tmoved: function () {\n\t\treturn this._draggable && this._draggable._moved;\n\t},\n\n\t_onDragStart: function () {\n\t\tvar map = this._map;\n\n\t\tif (map._panAnim) {\n\t\t\tmap._panAnim.stop();\n\t\t}\n\n\t\tmap\n\t\t .fire('movestart')\n\t\t .fire('dragstart');\n\n\t\tif (map.options.inertia) {\n\t\t\tthis._positions = [];\n\t\t\tthis._times = [];\n\t\t}\n\t},\n\n\t_onDrag: function () {\n\t\tif (this._map.options.inertia) {\n\t\t\tvar time = this._lastTime = +new Date(),\n\t\t\t pos = this._lastPos = this._draggable._newPos;\n\n\t\t\tthis._positions.push(pos);\n\t\t\tthis._times.push(time);\n\n\t\t\tif (time - this._times[0] > 200) {\n\t\t\t\tthis._positions.shift();\n\t\t\t\tthis._times.shift();\n\t\t\t}\n\t\t}\n\n\t\tthis._map\n\t\t .fire('move')\n\t\t .fire('drag');\n\t},\n\n\t_onViewReset: function () {\n\t\t// TODO fix hardcoded Earth values\n\t\tvar pxCenter = this._map.getSize()._divideBy(2),\n\t\t pxWorldCenter = this._map.latLngToLayerPoint([0, 0]);\n\n\t\tthis._initialWorldOffset = pxWorldCenter.subtract(pxCenter).x;\n\t\tthis._worldWidth = this._map.project([0, 180]).x;\n\t},\n\n\t_onPreDrag: function () {\n\t\t// TODO refactor to be able to adjust map pane position after zoom\n\t\tvar worldWidth = this._worldWidth,\n\t\t halfWidth = Math.round(worldWidth / 2),\n\t\t dx = this._initialWorldOffset,\n\t\t x = this._draggable._newPos.x,\n\t\t newX1 = (x - halfWidth + dx) % worldWidth + halfWidth - dx,\n\t\t newX2 = (x + halfWidth + dx) % worldWidth - halfWidth - dx,\n\t\t newX = Math.abs(newX1 + dx) < Math.abs(newX2 + dx) ? newX1 : newX2;\n\n\t\tthis._draggable._newPos.x = newX;\n\t},\n\n\t_onDragEnd: function (e) {\n\t\tvar map = this._map,\n\t\t options = map.options,\n\t\t delay = +new Date() - this._lastTime,\n\n\t\t noInertia = !options.inertia || delay > options.inertiaThreshold || !this._positions[0];\n\n\t\tmap.fire('dragend', e);\n\n\t\tif (noInertia) {\n\t\t\tmap.fire('moveend');\n\n\t\t} else {\n\n\t\t\tvar direction = this._lastPos.subtract(this._positions[0]),\n\t\t\t duration = (this._lastTime + delay - this._times[0]) / 1000,\n\t\t\t ease = options.easeLinearity,\n\n\t\t\t speedVector = direction.multiplyBy(ease / duration),\n\t\t\t speed = speedVector.distanceTo([0, 0]),\n\n\t\t\t limitedSpeed = Math.min(options.inertiaMaxSpeed, speed),\n\t\t\t limitedSpeedVector = speedVector.multiplyBy(limitedSpeed / speed),\n\n\t\t\t decelerationDuration = limitedSpeed / (options.inertiaDeceleration * ease),\n\t\t\t offset = limitedSpeedVector.multiplyBy(-decelerationDuration / 2).round();\n\n\t\t\tif (!offset.x || !offset.y) {\n\t\t\t\tmap.fire('moveend');\n\n\t\t\t} else {\n\t\t\t\toffset = map._limitOffset(offset, map.options.maxBounds);\n\n\t\t\t\tL.Util.requestAnimFrame(function () {\n\t\t\t\t\tmap.panBy(offset, {\n\t\t\t\t\t\tduration: decelerationDuration,\n\t\t\t\t\t\teaseLinearity: ease,\n\t\t\t\t\t\tnoMoveStart: true\n\t\t\t\t\t});\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t}\n});\n\nL.Map.addInitHook('addHandler', 'dragging', L.Map.Drag);\n\n\n/*\n * L.Handler.DoubleClickZoom is used to handle double-click zoom on the map, enabled by default.\n */\n\nL.Map.mergeOptions({\n\tdoubleClickZoom: true\n});\n\nL.Map.DoubleClickZoom = L.Handler.extend({\n\taddHooks: function () {\n\t\tthis._map.on('dblclick', this._onDoubleClick, this);\n\t},\n\n\tremoveHooks: function () {\n\t\tthis._map.off('dblclick', this._onDoubleClick, this);\n\t},\n\n\t_onDoubleClick: function (e) {\n\t\tvar map = this._map,\n\t\t zoom = map.getZoom() + (e.originalEvent.shiftKey ? -1 : 1);\n\n\t\tif (map.options.doubleClickZoom === 'center') {\n\t\t\tmap.setZoom(zoom);\n\t\t} else {\n\t\t\tmap.setZoomAround(e.containerPoint, zoom);\n\t\t}\n\t}\n});\n\nL.Map.addInitHook('addHandler', 'doubleClickZoom', L.Map.DoubleClickZoom);\n\n\n/*\n * L.Handler.ScrollWheelZoom is used by L.Map to enable mouse scroll wheel zoom on the map.\n */\n\nL.Map.mergeOptions({\n\tscrollWheelZoom: true\n});\n\nL.Map.ScrollWheelZoom = L.Handler.extend({\n\taddHooks: function () {\n\t\tL.DomEvent.on(this._map._container, 'mousewheel', this._onWheelScroll, this);\n\t\tL.DomEvent.on(this._map._container, 'MozMousePixelScroll', L.DomEvent.preventDefault);\n\t\tthis._delta = 0;\n\t},\n\n\tremoveHooks: function () {\n\t\tL.DomEvent.off(this._map._container, 'mousewheel', this._onWheelScroll);\n\t\tL.DomEvent.off(this._map._container, 'MozMousePixelScroll', L.DomEvent.preventDefault);\n\t},\n\n\t_onWheelScroll: function (e) {\n\t\tvar delta = L.DomEvent.getWheelDelta(e);\n\n\t\tthis._delta += delta;\n\t\tthis._lastMousePos = this._map.mouseEventToContainerPoint(e);\n\n\t\tif (!this._startTime) {\n\t\t\tthis._startTime = +new Date();\n\t\t}\n\n\t\tvar left = Math.max(40 - (+new Date() - this._startTime), 0);\n\n\t\tclearTimeout(this._timer);\n\t\tthis._timer = setTimeout(L.bind(this._performZoom, this), left);\n\n\t\tL.DomEvent.preventDefault(e);\n\t\tL.DomEvent.stopPropagation(e);\n\t},\n\n\t_performZoom: function () {\n\t\tvar map = this._map,\n\t\t delta = this._delta,\n\t\t zoom = map.getZoom();\n\n\t\tdelta = delta > 0 ? Math.ceil(delta) : Math.floor(delta);\n\t\tdelta = Math.max(Math.min(delta, 4), -4);\n\t\tdelta = map._limitZoom(zoom + delta) - zoom;\n\n\t\tthis._delta = 0;\n\t\tthis._startTime = null;\n\n\t\tif (!delta) { return; }\n\n\t\tif (map.options.scrollWheelZoom === 'center') {\n\t\t\tmap.setZoom(zoom + delta);\n\t\t} else {\n\t\t\tmap.setZoomAround(this._lastMousePos, zoom + delta);\n\t\t}\n\t}\n});\n\nL.Map.addInitHook('addHandler', 'scrollWheelZoom', L.Map.ScrollWheelZoom);\n\n\n/*\r\n * Extends the event handling code with double tap support for mobile browsers.\r\n */\r\n\r\nL.extend(L.DomEvent, {\r\n\r\n\t_touchstart: L.Browser.msPointer ? 'MSPointerDown' : L.Browser.pointer ? 'pointerdown' : 'touchstart',\r\n\t_touchend: L.Browser.msPointer ? 'MSPointerUp' : L.Browser.pointer ? 'pointerup' : 'touchend',\r\n\r\n\t// inspired by Zepto touch code by Thomas Fuchs\r\n\taddDoubleTapListener: function (obj, handler, id) {\r\n\t\tvar last,\r\n\t\t doubleTap = false,\r\n\t\t delay = 250,\r\n\t\t touch,\r\n\t\t pre = '_leaflet_',\r\n\t\t touchstart = this._touchstart,\r\n\t\t touchend = this._touchend,\r\n\t\t trackedTouches = [];\r\n\r\n\t\tfunction onTouchStart(e) {\r\n\t\t\tvar count;\r\n\r\n\t\t\tif (L.Browser.pointer) {\r\n\t\t\t\ttrackedTouches.push(e.pointerId);\r\n\t\t\t\tcount = trackedTouches.length;\r\n\t\t\t} else {\r\n\t\t\t\tcount = e.touches.length;\r\n\t\t\t}\r\n\t\t\tif (count > 1) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\tvar now = Date.now(),\r\n\t\t\t\tdelta = now - (last || now);\r\n\r\n\t\t\ttouch = e.touches ? e.touches[0] : e;\r\n\t\t\tdoubleTap = (delta > 0 && delta <= delay);\r\n\t\t\tlast = now;\r\n\t\t}\r\n\r\n\t\tfunction onTouchEnd(e) {\r\n\t\t\tif (L.Browser.pointer) {\r\n\t\t\t\tvar idx = trackedTouches.indexOf(e.pointerId);\r\n\t\t\t\tif (idx === -1) {\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\t\t\t\ttrackedTouches.splice(idx, 1);\r\n\t\t\t}\r\n\r\n\t\t\tif (doubleTap) {\r\n\t\t\t\tif (L.Browser.pointer) {\r\n\t\t\t\t\t// work around .type being readonly with MSPointer* events\r\n\t\t\t\t\tvar newTouch = { },\r\n\t\t\t\t\t\tprop;\r\n\r\n\t\t\t\t\t// jshint forin:false\r\n\t\t\t\t\tfor (var i in touch) {\r\n\t\t\t\t\t\tprop = touch[i];\r\n\t\t\t\t\t\tif (typeof prop === 'function') {\r\n\t\t\t\t\t\t\tnewTouch[i] = prop.bind(touch);\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\tnewTouch[i] = prop;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\ttouch = newTouch;\r\n\t\t\t\t}\r\n\t\t\t\ttouch.type = 'dblclick';\r\n\t\t\t\thandler(touch);\r\n\t\t\t\tlast = null;\r\n\t\t\t}\r\n\t\t}\r\n\t\tobj[pre + touchstart + id] = onTouchStart;\r\n\t\tobj[pre + touchend + id] = onTouchEnd;\r\n\r\n\t\t// on pointer we need to listen on the document, otherwise a drag starting on the map and moving off screen\r\n\t\t// will not come through to us, so we will lose track of how many touches are ongoing\r\n\t\tvar endElement = L.Browser.pointer ? document.documentElement : obj;\r\n\r\n\t\tobj.addEventListener(touchstart, onTouchStart, false);\r\n\t\tendElement.addEventListener(touchend, onTouchEnd, false);\r\n\r\n\t\tif (L.Browser.pointer) {\r\n\t\t\tendElement.addEventListener(L.DomEvent.POINTER_CANCEL, onTouchEnd, false);\r\n\t\t}\r\n\r\n\t\treturn this;\r\n\t},\r\n\r\n\tremoveDoubleTapListener: function (obj, id) {\r\n\t\tvar pre = '_leaflet_';\r\n\r\n\t\tobj.removeEventListener(this._touchstart, obj[pre + this._touchstart + id], false);\r\n\t\t(L.Browser.pointer ? document.documentElement : obj).removeEventListener(\r\n\t\t this._touchend, obj[pre + this._touchend + id], false);\r\n\r\n\t\tif (L.Browser.pointer) {\r\n\t\t\tdocument.documentElement.removeEventListener(L.DomEvent.POINTER_CANCEL, obj[pre + this._touchend + id],\r\n\t\t\t\tfalse);\r\n\t\t}\r\n\r\n\t\treturn this;\r\n\t}\r\n});\r\n\n\n/*\n * Extends L.DomEvent to provide touch support for Internet Explorer and Windows-based devices.\n */\n\nL.extend(L.DomEvent, {\n\n\t//static\n\tPOINTER_DOWN: L.Browser.msPointer ? 'MSPointerDown' : 'pointerdown',\n\tPOINTER_MOVE: L.Browser.msPointer ? 'MSPointerMove' : 'pointermove',\n\tPOINTER_UP: L.Browser.msPointer ? 'MSPointerUp' : 'pointerup',\n\tPOINTER_CANCEL: L.Browser.msPointer ? 'MSPointerCancel' : 'pointercancel',\n\n\t_pointers: [],\n\t_pointerDocumentListener: false,\n\n\t// Provides a touch events wrapper for (ms)pointer events.\n\t// Based on changes by veproza https://github.com/CloudMade/Leaflet/pull/1019\n\t//ref http://www.w3.org/TR/pointerevents/ https://www.w3.org/Bugs/Public/show_bug.cgi?id=22890\n\n\taddPointerListener: function (obj, type, handler, id) {\n\n\t\tswitch (type) {\n\t\tcase 'touchstart':\n\t\t\treturn this.addPointerListenerStart(obj, type, handler, id);\n\t\tcase 'touchend':\n\t\t\treturn this.addPointerListenerEnd(obj, type, handler, id);\n\t\tcase 'touchmove':\n\t\t\treturn this.addPointerListenerMove(obj, type, handler, id);\n\t\tdefault:\n\t\t\tthrow 'Unknown touch event type';\n\t\t}\n\t},\n\n\taddPointerListenerStart: function (obj, type, handler, id) {\n\t\tvar pre = '_leaflet_',\n\t\t pointers = this._pointers;\n\n\t\tvar cb = function (e) {\n\t\t\tif (e.pointerType !== 'mouse' && e.pointerType !== e.MSPOINTER_TYPE_MOUSE) {\n\t\t\t\tL.DomEvent.preventDefault(e);\n\t\t\t}\n\n\t\t\tvar alreadyInArray = false;\n\t\t\tfor (var i = 0; i < pointers.length; i++) {\n\t\t\t\tif (pointers[i].pointerId === e.pointerId) {\n\t\t\t\t\talreadyInArray = true;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (!alreadyInArray) {\n\t\t\t\tpointers.push(e);\n\t\t\t}\n\n\t\t\te.touches = pointers.slice();\n\t\t\te.changedTouches = [e];\n\n\t\t\thandler(e);\n\t\t};\n\n\t\tobj[pre + 'touchstart' + id] = cb;\n\t\tobj.addEventListener(this.POINTER_DOWN, cb, false);\n\n\t\t// need to also listen for end events to keep the _pointers list accurate\n\t\t// this needs to be on the body and never go away\n\t\tif (!this._pointerDocumentListener) {\n\t\t\tvar internalCb = function (e) {\n\t\t\t\tfor (var i = 0; i < pointers.length; i++) {\n\t\t\t\t\tif (pointers[i].pointerId === e.pointerId) {\n\t\t\t\t\t\tpointers.splice(i, 1);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t};\n\t\t\t//We listen on the documentElement as any drags that end by moving the touch off the screen get fired there\n\t\t\tdocument.documentElement.addEventListener(this.POINTER_UP, internalCb, false);\n\t\t\tdocument.documentElement.addEventListener(this.POINTER_CANCEL, internalCb, false);\n\n\t\t\tthis._pointerDocumentListener = true;\n\t\t}\n\n\t\treturn this;\n\t},\n\n\taddPointerListenerMove: function (obj, type, handler, id) {\n\t\tvar pre = '_leaflet_',\n\t\t touches = this._pointers;\n\n\t\tfunction cb(e) {\n\n\t\t\t// don't fire touch moves when mouse isn't down\n\t\t\tif ((e.pointerType === e.MSPOINTER_TYPE_MOUSE || e.pointerType === 'mouse') && e.buttons === 0) { return; }\n\n\t\t\tfor (var i = 0; i < touches.length; i++) {\n\t\t\t\tif (touches[i].pointerId === e.pointerId) {\n\t\t\t\t\ttouches[i] = e;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\te.touches = touches.slice();\n\t\t\te.changedTouches = [e];\n\n\t\t\thandler(e);\n\t\t}\n\n\t\tobj[pre + 'touchmove' + id] = cb;\n\t\tobj.addEventListener(this.POINTER_MOVE, cb, false);\n\n\t\treturn this;\n\t},\n\n\taddPointerListenerEnd: function (obj, type, handler, id) {\n\t\tvar pre = '_leaflet_',\n\t\t touches = this._pointers;\n\n\t\tvar cb = function (e) {\n\t\t\tfor (var i = 0; i < touches.length; i++) {\n\t\t\t\tif (touches[i].pointerId === e.pointerId) {\n\t\t\t\t\ttouches.splice(i, 1);\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\te.touches = touches.slice();\n\t\t\te.changedTouches = [e];\n\n\t\t\thandler(e);\n\t\t};\n\n\t\tobj[pre + 'touchend' + id] = cb;\n\t\tobj.addEventListener(this.POINTER_UP, cb, false);\n\t\tobj.addEventListener(this.POINTER_CANCEL, cb, false);\n\n\t\treturn this;\n\t},\n\n\tremovePointerListener: function (obj, type, id) {\n\t\tvar pre = '_leaflet_',\n\t\t cb = obj[pre + type + id];\n\n\t\tswitch (type) {\n\t\tcase 'touchstart':\n\t\t\tobj.removeEventListener(this.POINTER_DOWN, cb, false);\n\t\t\tbreak;\n\t\tcase 'touchmove':\n\t\t\tobj.removeEventListener(this.POINTER_MOVE, cb, false);\n\t\t\tbreak;\n\t\tcase 'touchend':\n\t\t\tobj.removeEventListener(this.POINTER_UP, cb, false);\n\t\t\tobj.removeEventListener(this.POINTER_CANCEL, cb, false);\n\t\t\tbreak;\n\t\t}\n\n\t\treturn this;\n\t}\n});\n\n\n/*\n * L.Handler.TouchZoom is used by L.Map to add pinch zoom on supported mobile browsers.\n */\n\nL.Map.mergeOptions({\n\ttouchZoom: L.Browser.touch && !L.Browser.android23,\n\tbounceAtZoomLimits: true\n});\n\nL.Map.TouchZoom = L.Handler.extend({\n\taddHooks: function () {\n\t\tL.DomEvent.on(this._map._container, 'touchstart', this._onTouchStart, this);\n\t},\n\n\tremoveHooks: function () {\n\t\tL.DomEvent.off(this._map._container, 'touchstart', this._onTouchStart, this);\n\t},\n\n\t_onTouchStart: function (e) {\n\t\tvar map = this._map;\n\n\t\tif (!e.touches || e.touches.length !== 2 || map._animatingZoom || this._zooming) { return; }\n\n\t\tvar p1 = map.mouseEventToLayerPoint(e.touches[0]),\n\t\t p2 = map.mouseEventToLayerPoint(e.touches[1]),\n\t\t viewCenter = map._getCenterLayerPoint();\n\n\t\tthis._startCenter = p1.add(p2)._divideBy(2);\n\t\tthis._startDist = p1.distanceTo(p2);\n\n\t\tthis._moved = false;\n\t\tthis._zooming = true;\n\n\t\tthis._centerOffset = viewCenter.subtract(this._startCenter);\n\n\t\tif (map._panAnim) {\n\t\t\tmap._panAnim.stop();\n\t\t}\n\n\t\tL.DomEvent\n\t\t .on(document, 'touchmove', this._onTouchMove, this)\n\t\t .on(document, 'touchend', this._onTouchEnd, this);\n\n\t\tL.DomEvent.preventDefault(e);\n\t},\n\n\t_onTouchMove: function (e) {\n\t\tvar map = this._map;\n\n\t\tif (!e.touches || e.touches.length !== 2 || !this._zooming) { return; }\n\n\t\tvar p1 = map.mouseEventToLayerPoint(e.touches[0]),\n\t\t p2 = map.mouseEventToLayerPoint(e.touches[1]);\n\n\t\tthis._scale = p1.distanceTo(p2) / this._startDist;\n\t\tthis._delta = p1._add(p2)._divideBy(2)._subtract(this._startCenter);\n\n\t\tif (this._scale === 1) { return; }\n\n\t\tif (!map.options.bounceAtZoomLimits) {\n\t\t\tif ((map.getZoom() === map.getMinZoom() && this._scale < 1) ||\n\t\t\t (map.getZoom() === map.getMaxZoom() && this._scale > 1)) { return; }\n\t\t}\n\n\t\tif (!this._moved) {\n\t\t\tL.DomUtil.addClass(map._mapPane, 'leaflet-touching');\n\n\t\t\tmap\n\t\t\t .fire('movestart')\n\t\t\t .fire('zoomstart');\n\n\t\t\tthis._moved = true;\n\t\t}\n\n\t\tL.Util.cancelAnimFrame(this._animRequest);\n\t\tthis._animRequest = L.Util.requestAnimFrame(\n\t\t this._updateOnMove, this, true, this._map._container);\n\n\t\tL.DomEvent.preventDefault(e);\n\t},\n\n\t_updateOnMove: function () {\n\t\tvar map = this._map,\n\t\t origin = this._getScaleOrigin(),\n\t\t center = map.layerPointToLatLng(origin),\n\t\t zoom = map.getScaleZoom(this._scale);\n\n\t\tmap._animateZoom(center, zoom, this._startCenter, this._scale, this._delta, false, true);\n\t},\n\n\t_onTouchEnd: function () {\n\t\tif (!this._moved || !this._zooming) {\n\t\t\tthis._zooming = false;\n\t\t\treturn;\n\t\t}\n\n\t\tvar map = this._map;\n\n\t\tthis._zooming = false;\n\t\tL.DomUtil.removeClass(map._mapPane, 'leaflet-touching');\n\t\tL.Util.cancelAnimFrame(this._animRequest);\n\n\t\tL.DomEvent\n\t\t .off(document, 'touchmove', this._onTouchMove)\n\t\t .off(document, 'touchend', this._onTouchEnd);\n\n\t\tvar origin = this._getScaleOrigin(),\n\t\t center = map.layerPointToLatLng(origin),\n\n\t\t oldZoom = map.getZoom(),\n\t\t floatZoomDelta = map.getScaleZoom(this._scale) - oldZoom,\n\t\t roundZoomDelta = (floatZoomDelta > 0 ?\n\t\t Math.ceil(floatZoomDelta) : Math.floor(floatZoomDelta)),\n\n\t\t zoom = map._limitZoom(oldZoom + roundZoomDelta),\n\t\t scale = map.getZoomScale(zoom) / this._scale;\n\n\t\tmap._animateZoom(center, zoom, origin, scale);\n\t},\n\n\t_getScaleOrigin: function () {\n\t\tvar centerOffset = this._centerOffset.subtract(this._delta).divideBy(this._scale);\n\t\treturn this._startCenter.add(centerOffset);\n\t}\n});\n\nL.Map.addInitHook('addHandler', 'touchZoom', L.Map.TouchZoom);\n\n\n/*\n * L.Map.Tap is used to enable mobile hacks like quick taps and long hold.\n */\n\nL.Map.mergeOptions({\n\ttap: true,\n\ttapTolerance: 15\n});\n\nL.Map.Tap = L.Handler.extend({\n\taddHooks: function () {\n\t\tL.DomEvent.on(this._map._container, 'touchstart', this._onDown, this);\n\t},\n\n\tremoveHooks: function () {\n\t\tL.DomEvent.off(this._map._container, 'touchstart', this._onDown, this);\n\t},\n\n\t_onDown: function (e) {\n\t\tif (!e.touches) { return; }\n\n\t\tL.DomEvent.preventDefault(e);\n\n\t\tthis._fireClick = true;\n\n\t\t// don't simulate click or track longpress if more than 1 touch\n\t\tif (e.touches.length > 1) {\n\t\t\tthis._fireClick = false;\n\t\t\tclearTimeout(this._holdTimeout);\n\t\t\treturn;\n\t\t}\n\n\t\tvar first = e.touches[0],\n\t\t el = first.target;\n\n\t\tthis._startPos = this._newPos = new L.Point(first.clientX, first.clientY);\n\n\t\t// if touching a link, highlight it\n\t\tif (el.tagName && el.tagName.toLowerCase() === 'a') {\n\t\t\tL.DomUtil.addClass(el, 'leaflet-active');\n\t\t}\n\n\t\t// simulate long hold but setting a timeout\n\t\tthis._holdTimeout = setTimeout(L.bind(function () {\n\t\t\tif (this._isTapValid()) {\n\t\t\t\tthis._fireClick = false;\n\t\t\t\tthis._onUp();\n\t\t\t\tthis._simulateEvent('contextmenu', first);\n\t\t\t}\n\t\t}, this), 1000);\n\n\t\tL.DomEvent\n\t\t\t.on(document, 'touchmove', this._onMove, this)\n\t\t\t.on(document, 'touchend', this._onUp, this);\n\t},\n\n\t_onUp: function (e) {\n\t\tclearTimeout(this._holdTimeout);\n\n\t\tL.DomEvent\n\t\t\t.off(document, 'touchmove', this._onMove, this)\n\t\t\t.off(document, 'touchend', this._onUp, this);\n\n\t\tif (this._fireClick && e && e.changedTouches) {\n\n\t\t\tvar first = e.changedTouches[0],\n\t\t\t el = first.target;\n\n\t\t\tif (el && el.tagName && el.tagName.toLowerCase() === 'a') {\n\t\t\t\tL.DomUtil.removeClass(el, 'leaflet-active');\n\t\t\t}\n\n\t\t\t// simulate click if the touch didn't move too much\n\t\t\tif (this._isTapValid()) {\n\t\t\t\tthis._simulateEvent('click', first);\n\t\t\t}\n\t\t}\n\t},\n\n\t_isTapValid: function () {\n\t\treturn this._newPos.distanceTo(this._startPos) <= this._map.options.tapTolerance;\n\t},\n\n\t_onMove: function (e) {\n\t\tvar first = e.touches[0];\n\t\tthis._newPos = new L.Point(first.clientX, first.clientY);\n\t},\n\n\t_simulateEvent: function (type, e) {\n\t\tvar simulatedEvent = document.createEvent('MouseEvents');\n\n\t\tsimulatedEvent._simulated = true;\n\t\te.target._simulatedClick = true;\n\n\t\tsimulatedEvent.initMouseEvent(\n\t\t type, true, true, window, 1,\n\t\t e.screenX, e.screenY,\n\t\t e.clientX, e.clientY,\n\t\t false, false, false, false, 0, null);\n\n\t\te.target.dispatchEvent(simulatedEvent);\n\t}\n});\n\nif (L.Browser.touch && !L.Browser.pointer) {\n\tL.Map.addInitHook('addHandler', 'tap', L.Map.Tap);\n}\n\n\n/*\n * L.Handler.ShiftDragZoom is used to add shift-drag zoom interaction to the map\n * (zoom to a selected bounding box), enabled by default.\n */\n\nL.Map.mergeOptions({\n\tboxZoom: true\n});\n\nL.Map.BoxZoom = L.Handler.extend({\n\tinitialize: function (map) {\n\t\tthis._map = map;\n\t\tthis._container = map._container;\n\t\tthis._pane = map._panes.overlayPane;\n\t\tthis._moved = false;\n\t},\n\n\taddHooks: function () {\n\t\tL.DomEvent.on(this._container, 'mousedown', this._onMouseDown, this);\n\t},\n\n\tremoveHooks: function () {\n\t\tL.DomEvent.off(this._container, 'mousedown', this._onMouseDown);\n\t\tthis._moved = false;\n\t},\n\n\tmoved: function () {\n\t\treturn this._moved;\n\t},\n\n\t_onMouseDown: function (e) {\n\t\tthis._moved = false;\n\n\t\tif (!e.shiftKey || ((e.which !== 1) && (e.button !== 1))) { return false; }\n\n\t\tL.DomUtil.disableTextSelection();\n\t\tL.DomUtil.disableImageDrag();\n\n\t\tthis._startLayerPoint = this._map.mouseEventToLayerPoint(e);\n\n\t\tL.DomEvent\n\t\t .on(document, 'mousemove', this._onMouseMove, this)\n\t\t .on(document, 'mouseup', this._onMouseUp, this)\n\t\t .on(document, 'keydown', this._onKeyDown, this);\n\t},\n\n\t_onMouseMove: function (e) {\n\t\tif (!this._moved) {\n\t\t\tthis._box = L.DomUtil.create('div', 'leaflet-zoom-box', this._pane);\n\t\t\tL.DomUtil.setPosition(this._box, this._startLayerPoint);\n\n\t\t\t//TODO refactor: move cursor to styles\n\t\t\tthis._container.style.cursor = 'crosshair';\n\t\t\tthis._map.fire('boxzoomstart');\n\t\t}\n\n\t\tvar startPoint = this._startLayerPoint,\n\t\t box = this._box,\n\n\t\t layerPoint = this._map.mouseEventToLayerPoint(e),\n\t\t offset = layerPoint.subtract(startPoint),\n\n\t\t newPos = new L.Point(\n\t\t Math.min(layerPoint.x, startPoint.x),\n\t\t Math.min(layerPoint.y, startPoint.y));\n\n\t\tL.DomUtil.setPosition(box, newPos);\n\n\t\tthis._moved = true;\n\n\t\t// TODO refactor: remove hardcoded 4 pixels\n\t\tbox.style.width = (Math.max(0, Math.abs(offset.x) - 4)) + 'px';\n\t\tbox.style.height = (Math.max(0, Math.abs(offset.y) - 4)) + 'px';\n\t},\n\n\t_finish: function () {\n\t\tif (this._moved) {\n\t\t\tthis._pane.removeChild(this._box);\n\t\t\tthis._container.style.cursor = '';\n\t\t}\n\n\t\tL.DomUtil.enableTextSelection();\n\t\tL.DomUtil.enableImageDrag();\n\n\t\tL.DomEvent\n\t\t .off(document, 'mousemove', this._onMouseMove)\n\t\t .off(document, 'mouseup', this._onMouseUp)\n\t\t .off(document, 'keydown', this._onKeyDown);\n\t},\n\n\t_onMouseUp: function (e) {\n\n\t\tthis._finish();\n\n\t\tvar map = this._map,\n\t\t layerPoint = map.mouseEventToLayerPoint(e);\n\n\t\tif (this._startLayerPoint.equals(layerPoint)) { return; }\n\n\t\tvar bounds = new L.LatLngBounds(\n\t\t map.layerPointToLatLng(this._startLayerPoint),\n\t\t map.layerPointToLatLng(layerPoint));\n\n\t\tmap.fitBounds(bounds);\n\n\t\tmap.fire('boxzoomend', {\n\t\t\tboxZoomBounds: bounds\n\t\t});\n\t},\n\n\t_onKeyDown: function (e) {\n\t\tif (e.keyCode === 27) {\n\t\t\tthis._finish();\n\t\t}\n\t}\n});\n\nL.Map.addInitHook('addHandler', 'boxZoom', L.Map.BoxZoom);\n\n\n/*\n * L.Map.Keyboard is handling keyboard interaction with the map, enabled by default.\n */\n\nL.Map.mergeOptions({\n\tkeyboard: true,\n\tkeyboardPanOffset: 80,\n\tkeyboardZoomOffset: 1\n});\n\nL.Map.Keyboard = L.Handler.extend({\n\n\tkeyCodes: {\n\t\tleft: [37],\n\t\tright: [39],\n\t\tdown: [40],\n\t\tup: [38],\n\t\tzoomIn: [187, 107, 61, 171],\n\t\tzoomOut: [189, 109, 173]\n\t},\n\n\tinitialize: function (map) {\n\t\tthis._map = map;\n\n\t\tthis._setPanOffset(map.options.keyboardPanOffset);\n\t\tthis._setZoomOffset(map.options.keyboardZoomOffset);\n\t},\n\n\taddHooks: function () {\n\t\tvar container = this._map._container;\n\n\t\t// make the container focusable by tabbing\n\t\tif (container.tabIndex === -1) {\n\t\t\tcontainer.tabIndex = '0';\n\t\t}\n\n\t\tL.DomEvent\n\t\t .on(container, 'focus', this._onFocus, this)\n\t\t .on(container, 'blur', this._onBlur, this)\n\t\t .on(container, 'mousedown', this._onMouseDown, this);\n\n\t\tthis._map\n\t\t .on('focus', this._addHooks, this)\n\t\t .on('blur', this._removeHooks, this);\n\t},\n\n\tremoveHooks: function () {\n\t\tthis._removeHooks();\n\n\t\tvar container = this._map._container;\n\n\t\tL.DomEvent\n\t\t .off(container, 'focus', this._onFocus, this)\n\t\t .off(container, 'blur', this._onBlur, this)\n\t\t .off(container, 'mousedown', this._onMouseDown, this);\n\n\t\tthis._map\n\t\t .off('focus', this._addHooks, this)\n\t\t .off('blur', this._removeHooks, this);\n\t},\n\n\t_onMouseDown: function () {\n\t\tif (this._focused) { return; }\n\n\t\tvar body = document.body,\n\t\t docEl = document.documentElement,\n\t\t top = body.scrollTop || docEl.scrollTop,\n\t\t left = body.scrollLeft || docEl.scrollLeft;\n\n\t\tthis._map._container.focus();\n\n\t\twindow.scrollTo(left, top);\n\t},\n\n\t_onFocus: function () {\n\t\tthis._focused = true;\n\t\tthis._map.fire('focus');\n\t},\n\n\t_onBlur: function () {\n\t\tthis._focused = false;\n\t\tthis._map.fire('blur');\n\t},\n\n\t_setPanOffset: function (pan) {\n\t\tvar keys = this._panKeys = {},\n\t\t codes = this.keyCodes,\n\t\t i, len;\n\n\t\tfor (i = 0, len = codes.left.length; i < len; i++) {\n\t\t\tkeys[codes.left[i]] = [-1 * pan, 0];\n\t\t}\n\t\tfor (i = 0, len = codes.right.length; i < len; i++) {\n\t\t\tkeys[codes.right[i]] = [pan, 0];\n\t\t}\n\t\tfor (i = 0, len = codes.down.length; i < len; i++) {\n\t\t\tkeys[codes.down[i]] = [0, pan];\n\t\t}\n\t\tfor (i = 0, len = codes.up.length; i < len; i++) {\n\t\t\tkeys[codes.up[i]] = [0, -1 * pan];\n\t\t}\n\t},\n\n\t_setZoomOffset: function (zoom) {\n\t\tvar keys = this._zoomKeys = {},\n\t\t codes = this.keyCodes,\n\t\t i, len;\n\n\t\tfor (i = 0, len = codes.zoomIn.length; i < len; i++) {\n\t\t\tkeys[codes.zoomIn[i]] = zoom;\n\t\t}\n\t\tfor (i = 0, len = codes.zoomOut.length; i < len; i++) {\n\t\t\tkeys[codes.zoomOut[i]] = -zoom;\n\t\t}\n\t},\n\n\t_addHooks: function () {\n\t\tL.DomEvent.on(document, 'keydown', this._onKeyDown, this);\n\t},\n\n\t_removeHooks: function () {\n\t\tL.DomEvent.off(document, 'keydown', this._onKeyDown, this);\n\t},\n\n\t_onKeyDown: function (e) {\n\t\tvar key = e.keyCode,\n\t\t map = this._map;\n\n\t\tif (key in this._panKeys) {\n\n\t\t\tif (map._panAnim && map._panAnim._inProgress) { return; }\n\n\t\t\tmap.panBy(this._panKeys[key]);\n\n\t\t\tif (map.options.maxBounds) {\n\t\t\t\tmap.panInsideBounds(map.options.maxBounds);\n\t\t\t}\n\n\t\t} else if (key in this._zoomKeys) {\n\t\t\tmap.setZoom(map.getZoom() + this._zoomKeys[key]);\n\n\t\t} else {\n\t\t\treturn;\n\t\t}\n\n\t\tL.DomEvent.stop(e);\n\t}\n});\n\nL.Map.addInitHook('addHandler', 'keyboard', L.Map.Keyboard);\n\n\n/*\n * L.Handler.MarkerDrag is used internally by L.Marker to make the markers draggable.\n */\n\nL.Handler.MarkerDrag = L.Handler.extend({\n\tinitialize: function (marker) {\n\t\tthis._marker = marker;\n\t},\n\n\taddHooks: function () {\n\t\tvar icon = this._marker._icon;\n\t\tif (!this._draggable) {\n\t\t\tthis._draggable = new L.Draggable(icon, icon);\n\t\t}\n\n\t\tthis._draggable\n\t\t\t.on('dragstart', this._onDragStart, this)\n\t\t\t.on('drag', this._onDrag, this)\n\t\t\t.on('dragend', this._onDragEnd, this);\n\t\tthis._draggable.enable();\n\t\tL.DomUtil.addClass(this._marker._icon, 'leaflet-marker-draggable');\n\t},\n\n\tremoveHooks: function () {\n\t\tthis._draggable\n\t\t\t.off('dragstart', this._onDragStart, this)\n\t\t\t.off('drag', this._onDrag, this)\n\t\t\t.off('dragend', this._onDragEnd, this);\n\n\t\tthis._draggable.disable();\n\t\tL.DomUtil.removeClass(this._marker._icon, 'leaflet-marker-draggable');\n\t},\n\n\tmoved: function () {\n\t\treturn this._draggable && this._draggable._moved;\n\t},\n\n\t_onDragStart: function () {\n\t\tthis._marker\n\t\t .closePopup()\n\t\t .fire('movestart')\n\t\t .fire('dragstart');\n\t},\n\n\t_onDrag: function () {\n\t\tvar marker = this._marker,\n\t\t shadow = marker._shadow,\n\t\t iconPos = L.DomUtil.getPosition(marker._icon),\n\t\t latlng = marker._map.layerPointToLatLng(iconPos);\n\n\t\t// update shadow position\n\t\tif (shadow) {\n\t\t\tL.DomUtil.setPosition(shadow, iconPos);\n\t\t}\n\n\t\tmarker._latlng = latlng;\n\n\t\tmarker\n\t\t .fire('move', {latlng: latlng})\n\t\t .fire('drag');\n\t},\n\n\t_onDragEnd: function (e) {\n\t\tthis._marker\n\t\t .fire('moveend')\n\t\t .fire('dragend', e);\n\t}\n});\n\n\n/*\r\n * L.Control is a base class for implementing map controls. Handles positioning.\r\n * All other controls extend from this class.\r\n */\r\n\r\nL.Control = L.Class.extend({\r\n\toptions: {\r\n\t\tposition: 'topright'\r\n\t},\r\n\r\n\tinitialize: function (options) {\r\n\t\tL.setOptions(this, options);\r\n\t},\r\n\r\n\tgetPosition: function () {\r\n\t\treturn this.options.position;\r\n\t},\r\n\r\n\tsetPosition: function (position) {\r\n\t\tvar map = this._map;\r\n\r\n\t\tif (map) {\r\n\t\t\tmap.removeControl(this);\r\n\t\t}\r\n\r\n\t\tthis.options.position = position;\r\n\r\n\t\tif (map) {\r\n\t\t\tmap.addControl(this);\r\n\t\t}\r\n\r\n\t\treturn this;\r\n\t},\r\n\r\n\tgetContainer: function () {\r\n\t\treturn this._container;\r\n\t},\r\n\r\n\taddTo: function (map) {\r\n\t\tthis._map = map;\r\n\r\n\t\tvar container = this._container = this.onAdd(map),\r\n\t\t pos = this.getPosition(),\r\n\t\t corner = map._controlCorners[pos];\r\n\r\n\t\tL.DomUtil.addClass(container, 'leaflet-control');\r\n\r\n\t\tif (pos.indexOf('bottom') !== -1) {\r\n\t\t\tcorner.insertBefore(container, corner.firstChild);\r\n\t\t} else {\r\n\t\t\tcorner.appendChild(container);\r\n\t\t}\r\n\r\n\t\treturn this;\r\n\t},\r\n\r\n\tremoveFrom: function (map) {\r\n\t\tvar pos = this.getPosition(),\r\n\t\t corner = map._controlCorners[pos];\r\n\r\n\t\tcorner.removeChild(this._container);\r\n\t\tthis._map = null;\r\n\r\n\t\tif (this.onRemove) {\r\n\t\t\tthis.onRemove(map);\r\n\t\t}\r\n\r\n\t\treturn this;\r\n\t},\r\n\r\n\t_refocusOnMap: function () {\r\n\t\tif (this._map) {\r\n\t\t\tthis._map.getContainer().focus();\r\n\t\t}\r\n\t}\r\n});\r\n\r\nL.control = function (options) {\r\n\treturn new L.Control(options);\r\n};\r\n\r\n\r\n// adds control-related methods to L.Map\r\n\r\nL.Map.include({\r\n\taddControl: function (control) {\r\n\t\tcontrol.addTo(this);\r\n\t\treturn this;\r\n\t},\r\n\r\n\tremoveControl: function (control) {\r\n\t\tcontrol.removeFrom(this);\r\n\t\treturn this;\r\n\t},\r\n\r\n\t_initControlPos: function () {\r\n\t\tvar corners = this._controlCorners = {},\r\n\t\t l = 'leaflet-',\r\n\t\t container = this._controlContainer =\r\n\t\t L.DomUtil.create('div', l + 'control-container', this._container);\r\n\r\n\t\tfunction createCorner(vSide, hSide) {\r\n\t\t\tvar className = l + vSide + ' ' + l + hSide;\r\n\r\n\t\t\tcorners[vSide + hSide] = L.DomUtil.create('div', className, container);\r\n\t\t}\r\n\r\n\t\tcreateCorner('top', 'left');\r\n\t\tcreateCorner('top', 'right');\r\n\t\tcreateCorner('bottom', 'left');\r\n\t\tcreateCorner('bottom', 'right');\r\n\t},\r\n\r\n\t_clearControlPos: function () {\r\n\t\tthis._container.removeChild(this._controlContainer);\r\n\t}\r\n});\r\n\n\n/*\r\n * L.Control.Zoom is used for the default zoom buttons on the map.\r\n */\r\n\r\nL.Control.Zoom = L.Control.extend({\r\n\toptions: {\r\n\t\tposition: 'topleft',\r\n\t\tzoomInText: '+',\r\n\t\tzoomInTitle: 'Zoom in',\r\n\t\tzoomOutText: '-',\r\n\t\tzoomOutTitle: 'Zoom out'\r\n\t},\r\n\r\n\tonAdd: function (map) {\r\n\t\tvar zoomName = 'leaflet-control-zoom',\r\n\t\t container = L.DomUtil.create('div', zoomName + ' leaflet-bar');\r\n\r\n\t\tthis._map = map;\r\n\r\n\t\tthis._zoomInButton = this._createButton(\r\n\t\t this.options.zoomInText, this.options.zoomInTitle,\r\n\t\t zoomName + '-in', container, this._zoomIn, this);\r\n\t\tthis._zoomOutButton = this._createButton(\r\n\t\t this.options.zoomOutText, this.options.zoomOutTitle,\r\n\t\t zoomName + '-out', container, this._zoomOut, this);\r\n\r\n\t\tthis._updateDisabled();\r\n\t\tmap.on('zoomend zoomlevelschange', this._updateDisabled, this);\r\n\r\n\t\treturn container;\r\n\t},\r\n\r\n\tonRemove: function (map) {\r\n\t\tmap.off('zoomend zoomlevelschange', this._updateDisabled, this);\r\n\t},\r\n\r\n\t_zoomIn: function (e) {\r\n\t\tthis._map.zoomIn(e.shiftKey ? 3 : 1);\r\n\t},\r\n\r\n\t_zoomOut: function (e) {\r\n\t\tthis._map.zoomOut(e.shiftKey ? 3 : 1);\r\n\t},\r\n\r\n\t_createButton: function (html, title, className, container, fn, context) {\r\n\t\tvar link = L.DomUtil.create('a', className, container);\r\n\t\tlink.innerHTML = html;\r\n\t\tlink.href = '#';\r\n\t\tlink.title = title;\r\n\r\n\t\tvar stop = L.DomEvent.stopPropagation;\r\n\r\n\t\tL.DomEvent\r\n\t\t .on(link, 'click', stop)\r\n\t\t .on(link, 'mousedown', stop)\r\n\t\t .on(link, 'dblclick', stop)\r\n\t\t .on(link, 'click', L.DomEvent.preventDefault)\r\n\t\t .on(link, 'click', fn, context)\r\n\t\t .on(link, 'click', this._refocusOnMap, context);\r\n\r\n\t\treturn link;\r\n\t},\r\n\r\n\t_updateDisabled: function () {\r\n\t\tvar map = this._map,\r\n\t\t\tclassName = 'leaflet-disabled';\r\n\r\n\t\tL.DomUtil.removeClass(this._zoomInButton, className);\r\n\t\tL.DomUtil.removeClass(this._zoomOutButton, className);\r\n\r\n\t\tif (map._zoom === map.getMinZoom()) {\r\n\t\t\tL.DomUtil.addClass(this._zoomOutButton, className);\r\n\t\t}\r\n\t\tif (map._zoom === map.getMaxZoom()) {\r\n\t\t\tL.DomUtil.addClass(this._zoomInButton, className);\r\n\t\t}\r\n\t}\r\n});\r\n\r\nL.Map.mergeOptions({\r\n\tzoomControl: true\r\n});\r\n\r\nL.Map.addInitHook(function () {\r\n\tif (this.options.zoomControl) {\r\n\t\tthis.zoomControl = new L.Control.Zoom();\r\n\t\tthis.addControl(this.zoomControl);\r\n\t}\r\n});\r\n\r\nL.control.zoom = function (options) {\r\n\treturn new L.Control.Zoom(options);\r\n};\r\n\r\n\n\n/*\r\n * L.Control.Attribution is used for displaying attribution on the map (added by default).\r\n */\r\n\r\nL.Control.Attribution = L.Control.extend({\r\n\toptions: {\r\n\t\tposition: 'bottomright',\r\n\t\tprefix: 'Leaflet '\r\n\t},\r\n\r\n\tinitialize: function (options) {\r\n\t\tL.setOptions(this, options);\r\n\r\n\t\tthis._attributions = {};\r\n\t},\r\n\r\n\tonAdd: function (map) {\r\n\t\tthis._container = L.DomUtil.create('div', 'leaflet-control-attribution');\r\n\t\tL.DomEvent.disableClickPropagation(this._container);\r\n\r\n\t\tfor (var i in map._layers) {\r\n\t\t\tif (map._layers[i].getAttribution) {\r\n\t\t\t\tthis.addAttribution(map._layers[i].getAttribution());\r\n\t\t\t}\r\n\t\t}\r\n\t\t\r\n\t\tmap\r\n\t\t .on('layeradd', this._onLayerAdd, this)\r\n\t\t .on('layerremove', this._onLayerRemove, this);\r\n\r\n\t\tthis._update();\r\n\r\n\t\treturn this._container;\r\n\t},\r\n\r\n\tonRemove: function (map) {\r\n\t\tmap\r\n\t\t .off('layeradd', this._onLayerAdd)\r\n\t\t .off('layerremove', this._onLayerRemove);\r\n\r\n\t},\r\n\r\n\tsetPrefix: function (prefix) {\r\n\t\tthis.options.prefix = prefix;\r\n\t\tthis._update();\r\n\t\treturn this;\r\n\t},\r\n\r\n\taddAttribution: function (text) {\r\n\t\tif (!text) { return; }\r\n\r\n\t\tif (!this._attributions[text]) {\r\n\t\t\tthis._attributions[text] = 0;\r\n\t\t}\r\n\t\tthis._attributions[text]++;\r\n\r\n\t\tthis._update();\r\n\r\n\t\treturn this;\r\n\t},\r\n\r\n\tremoveAttribution: function (text) {\r\n\t\tif (!text) { return; }\r\n\r\n\t\tif (this._attributions[text]) {\r\n\t\t\tthis._attributions[text]--;\r\n\t\t\tthis._update();\r\n\t\t}\r\n\r\n\t\treturn this;\r\n\t},\r\n\r\n\t_update: function () {\r\n\t\tif (!this._map) { return; }\r\n\r\n\t\tvar attribs = [];\r\n\r\n\t\tfor (var i in this._attributions) {\r\n\t\t\tif (this._attributions[i]) {\r\n\t\t\t\tattribs.push(i);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tvar prefixAndAttribs = [];\r\n\r\n\t\tif (this.options.prefix) {\r\n\t\t\tprefixAndAttribs.push(this.options.prefix);\r\n\t\t}\r\n\t\tif (attribs.length) {\r\n\t\t\tprefixAndAttribs.push(attribs.join(', '));\r\n\t\t}\r\n\r\n\t\tthis._container.innerHTML = prefixAndAttribs.join(' | ');\r\n\t},\r\n\r\n\t_onLayerAdd: function (e) {\r\n\t\tif (e.layer.getAttribution) {\r\n\t\t\tthis.addAttribution(e.layer.getAttribution());\r\n\t\t}\r\n\t},\r\n\r\n\t_onLayerRemove: function (e) {\r\n\t\tif (e.layer.getAttribution) {\r\n\t\t\tthis.removeAttribution(e.layer.getAttribution());\r\n\t\t}\r\n\t}\r\n});\r\n\r\nL.Map.mergeOptions({\r\n\tattributionControl: true\r\n});\r\n\r\nL.Map.addInitHook(function () {\r\n\tif (this.options.attributionControl) {\r\n\t\tthis.attributionControl = (new L.Control.Attribution()).addTo(this);\r\n\t}\r\n});\r\n\r\nL.control.attribution = function (options) {\r\n\treturn new L.Control.Attribution(options);\r\n};\r\n\n\n/*\n * L.Control.Scale is used for displaying metric/imperial scale on the map.\n */\n\nL.Control.Scale = L.Control.extend({\n\toptions: {\n\t\tposition: 'bottomleft',\n\t\tmaxWidth: 100,\n\t\tmetric: true,\n\t\timperial: true,\n\t\tupdateWhenIdle: false\n\t},\n\n\tonAdd: function (map) {\n\t\tthis._map = map;\n\n\t\tvar className = 'leaflet-control-scale',\n\t\t container = L.DomUtil.create('div', className),\n\t\t options = this.options;\n\n\t\tthis._addScales(options, className, container);\n\n\t\tmap.on(options.updateWhenIdle ? 'moveend' : 'move', this._update, this);\n\t\tmap.whenReady(this._update, this);\n\n\t\treturn container;\n\t},\n\n\tonRemove: function (map) {\n\t\tmap.off(this.options.updateWhenIdle ? 'moveend' : 'move', this._update, this);\n\t},\n\n\t_addScales: function (options, className, container) {\n\t\tif (options.metric) {\n\t\t\tthis._mScale = L.DomUtil.create('div', className + '-line', container);\n\t\t}\n\t\tif (options.imperial) {\n\t\t\tthis._iScale = L.DomUtil.create('div', className + '-line', container);\n\t\t}\n\t},\n\n\t_update: function () {\n\t\tvar bounds = this._map.getBounds(),\n\t\t centerLat = bounds.getCenter().lat,\n\t\t halfWorldMeters = 6378137 * Math.PI * Math.cos(centerLat * Math.PI / 180),\n\t\t dist = halfWorldMeters * (bounds.getNorthEast().lng - bounds.getSouthWest().lng) / 180,\n\n\t\t size = this._map.getSize(),\n\t\t options = this.options,\n\t\t maxMeters = 0;\n\n\t\tif (size.x > 0) {\n\t\t\tmaxMeters = dist * (options.maxWidth / size.x);\n\t\t}\n\n\t\tthis._updateScales(options, maxMeters);\n\t},\n\n\t_updateScales: function (options, maxMeters) {\n\t\tif (options.metric && maxMeters) {\n\t\t\tthis._updateMetric(maxMeters);\n\t\t}\n\n\t\tif (options.imperial && maxMeters) {\n\t\t\tthis._updateImperial(maxMeters);\n\t\t}\n\t},\n\n\t_updateMetric: function (maxMeters) {\n\t\tvar meters = this._getRoundNum(maxMeters);\n\n\t\tthis._mScale.style.width = this._getScaleWidth(meters / maxMeters) + 'px';\n\t\tthis._mScale.innerHTML = meters < 1000 ? meters + ' m' : (meters / 1000) + ' km';\n\t},\n\n\t_updateImperial: function (maxMeters) {\n\t\tvar maxFeet = maxMeters * 3.2808399,\n\t\t scale = this._iScale,\n\t\t maxMiles, miles, feet;\n\n\t\tif (maxFeet > 5280) {\n\t\t\tmaxMiles = maxFeet / 5280;\n\t\t\tmiles = this._getRoundNum(maxMiles);\n\n\t\t\tscale.style.width = this._getScaleWidth(miles / maxMiles) + 'px';\n\t\t\tscale.innerHTML = miles + ' mi';\n\n\t\t} else {\n\t\t\tfeet = this._getRoundNum(maxFeet);\n\n\t\t\tscale.style.width = this._getScaleWidth(feet / maxFeet) + 'px';\n\t\t\tscale.innerHTML = feet + ' ft';\n\t\t}\n\t},\n\n\t_getScaleWidth: function (ratio) {\n\t\treturn Math.round(this.options.maxWidth * ratio) - 10;\n\t},\n\n\t_getRoundNum: function (num) {\n\t\tvar pow10 = Math.pow(10, (Math.floor(num) + '').length - 1),\n\t\t d = num / pow10;\n\n\t\td = d >= 10 ? 10 : d >= 5 ? 5 : d >= 3 ? 3 : d >= 2 ? 2 : 1;\n\n\t\treturn pow10 * d;\n\t}\n});\n\nL.control.scale = function (options) {\n\treturn new L.Control.Scale(options);\n};\n\n\n/*\r\n * L.Control.Layers is a control to allow users to switch between different layers on the map.\r\n */\r\n\r\nL.Control.Layers = L.Control.extend({\r\n\toptions: {\r\n\t\tcollapsed: true,\r\n\t\tposition: 'topright',\r\n\t\tautoZIndex: true\r\n\t},\r\n\r\n\tinitialize: function (baseLayers, overlays, options) {\r\n\t\tL.setOptions(this, options);\r\n\r\n\t\tthis._layers = {};\r\n\t\tthis._lastZIndex = 0;\r\n\t\tthis._handlingClick = false;\r\n\r\n\t\tfor (var i in baseLayers) {\r\n\t\t\tthis._addLayer(baseLayers[i], i);\r\n\t\t}\r\n\r\n\t\tfor (i in overlays) {\r\n\t\t\tthis._addLayer(overlays[i], i, true);\r\n\t\t}\r\n\t},\r\n\r\n\tonAdd: function (map) {\r\n\t\tthis._initLayout();\r\n\t\tthis._update();\r\n\r\n\t\tmap\r\n\t\t .on('layeradd', this._onLayerChange, this)\r\n\t\t .on('layerremove', this._onLayerChange, this);\r\n\r\n\t\treturn this._container;\r\n\t},\r\n\r\n\tonRemove: function (map) {\r\n\t\tmap\r\n\t\t .off('layeradd', this._onLayerChange, this)\r\n\t\t .off('layerremove', this._onLayerChange, this);\r\n\t},\r\n\r\n\taddBaseLayer: function (layer, name) {\r\n\t\tthis._addLayer(layer, name);\r\n\t\tthis._update();\r\n\t\treturn this;\r\n\t},\r\n\r\n\taddOverlay: function (layer, name) {\r\n\t\tthis._addLayer(layer, name, true);\r\n\t\tthis._update();\r\n\t\treturn this;\r\n\t},\r\n\r\n\tremoveLayer: function (layer) {\r\n\t\tvar id = L.stamp(layer);\r\n\t\tdelete this._layers[id];\r\n\t\tthis._update();\r\n\t\treturn this;\r\n\t},\r\n\r\n\t_initLayout: function () {\r\n\t\tvar className = 'leaflet-control-layers',\r\n\t\t container = this._container = L.DomUtil.create('div', className);\r\n\r\n\t\t//Makes this work on IE10 Touch devices by stopping it from firing a mouseout event when the touch is released\r\n\t\tcontainer.setAttribute('aria-haspopup', true);\r\n\r\n\t\tif (!L.Browser.touch) {\r\n\t\t\tL.DomEvent\r\n\t\t\t\t.disableClickPropagation(container)\r\n\t\t\t\t.disableScrollPropagation(container);\r\n\t\t} else {\r\n\t\t\tL.DomEvent.on(container, 'click', L.DomEvent.stopPropagation);\r\n\t\t}\r\n\r\n\t\tvar form = this._form = L.DomUtil.create('form', className + '-list');\r\n\r\n\t\tif (this.options.collapsed) {\r\n\t\t\tif (!L.Browser.android) {\r\n\t\t\t\tL.DomEvent\r\n\t\t\t\t .on(container, 'mouseover', this._expand, this)\r\n\t\t\t\t .on(container, 'mouseout', this._collapse, this);\r\n\t\t\t}\r\n\t\t\tvar link = this._layersLink = L.DomUtil.create('a', className + '-toggle', container);\r\n\t\t\tlink.href = '#';\r\n\t\t\tlink.title = 'Layers';\r\n\r\n\t\t\tif (L.Browser.touch) {\r\n\t\t\t\tL.DomEvent\r\n\t\t\t\t .on(link, 'click', L.DomEvent.stop)\r\n\t\t\t\t .on(link, 'click', this._expand, this);\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tL.DomEvent.on(link, 'focus', this._expand, this);\r\n\t\t\t}\r\n\t\t\t//Work around for Firefox android issue https://github.com/Leaflet/Leaflet/issues/2033\r\n\t\t\tL.DomEvent.on(form, 'click', function () {\r\n\t\t\t\tsetTimeout(L.bind(this._onInputClick, this), 0);\r\n\t\t\t}, this);\r\n\r\n\t\t\tthis._map.on('click', this._collapse, this);\r\n\t\t\t// TODO keyboard accessibility\r\n\t\t} else {\r\n\t\t\tthis._expand();\r\n\t\t}\r\n\r\n\t\tthis._baseLayersList = L.DomUtil.create('div', className + '-base', form);\r\n\t\tthis._separator = L.DomUtil.create('div', className + '-separator', form);\r\n\t\tthis._overlaysList = L.DomUtil.create('div', className + '-overlays', form);\r\n\r\n\t\tcontainer.appendChild(form);\r\n\t},\r\n\r\n\t_addLayer: function (layer, name, overlay) {\r\n\t\tvar id = L.stamp(layer);\r\n\r\n\t\tthis._layers[id] = {\r\n\t\t\tlayer: layer,\r\n\t\t\tname: name,\r\n\t\t\toverlay: overlay\r\n\t\t};\r\n\r\n\t\tif (this.options.autoZIndex && layer.setZIndex) {\r\n\t\t\tthis._lastZIndex++;\r\n\t\t\tlayer.setZIndex(this._lastZIndex);\r\n\t\t}\r\n\t},\r\n\r\n\t_update: function () {\r\n\t\tif (!this._container) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tthis._baseLayersList.innerHTML = '';\r\n\t\tthis._overlaysList.innerHTML = '';\r\n\r\n\t\tvar baseLayersPresent = false,\r\n\t\t overlaysPresent = false,\r\n\t\t i, obj;\r\n\r\n\t\tfor (i in this._layers) {\r\n\t\t\tobj = this._layers[i];\r\n\t\t\tthis._addItem(obj);\r\n\t\t\toverlaysPresent = overlaysPresent || obj.overlay;\r\n\t\t\tbaseLayersPresent = baseLayersPresent || !obj.overlay;\r\n\t\t}\r\n\r\n\t\tthis._separator.style.display = overlaysPresent && baseLayersPresent ? '' : 'none';\r\n\t},\r\n\r\n\t_onLayerChange: function (e) {\r\n\t\tvar obj = this._layers[L.stamp(e.layer)];\r\n\r\n\t\tif (!obj) { return; }\r\n\r\n\t\tif (!this._handlingClick) {\r\n\t\t\tthis._update();\r\n\t\t}\r\n\r\n\t\tvar type = obj.overlay ?\r\n\t\t\t(e.type === 'layeradd' ? 'overlayadd' : 'overlayremove') :\r\n\t\t\t(e.type === 'layeradd' ? 'baselayerchange' : null);\r\n\r\n\t\tif (type) {\r\n\t\t\tthis._map.fire(type, obj);\r\n\t\t}\r\n\t},\r\n\r\n\t// IE7 bugs out if you create a radio dynamically, so you have to do it this hacky way (see http://bit.ly/PqYLBe)\r\n\t_createRadioElement: function (name, checked) {\r\n\r\n\t\tvar radioHtml = ' ';\r\n\r\n\t\tvar radioFragment = document.createElement('div');\r\n\t\tradioFragment.innerHTML = radioHtml;\r\n\r\n\t\treturn radioFragment.firstChild;\r\n\t},\r\n\r\n\t_addItem: function (obj) {\r\n\t\tvar label = document.createElement('label'),\r\n\t\t input,\r\n\t\t checked = this._map.hasLayer(obj.layer);\r\n\r\n\t\tif (obj.overlay) {\r\n\t\t\tinput = document.createElement('input');\r\n\t\t\tinput.type = 'checkbox';\r\n\t\t\tinput.className = 'leaflet-control-layers-selector';\r\n\t\t\tinput.defaultChecked = checked;\r\n\t\t} else {\r\n\t\t\tinput = this._createRadioElement('leaflet-base-layers', checked);\r\n\t\t}\r\n\r\n\t\tinput.layerId = L.stamp(obj.layer);\r\n\r\n\t\tL.DomEvent.on(input, 'click', this._onInputClick, this);\r\n\r\n\t\tvar name = document.createElement('span');\r\n\t\tname.innerHTML = ' ' + obj.name;\r\n\r\n\t\tlabel.appendChild(input);\r\n\t\tlabel.appendChild(name);\r\n\r\n\t\tvar container = obj.overlay ? this._overlaysList : this._baseLayersList;\r\n\t\tcontainer.appendChild(label);\r\n\r\n\t\treturn label;\r\n\t},\r\n\r\n\t_onInputClick: function () {\r\n\t\tvar i, input, obj,\r\n\t\t inputs = this._form.getElementsByTagName('input'),\r\n\t\t inputsLen = inputs.length;\r\n\r\n\t\tthis._handlingClick = true;\r\n\r\n\t\tfor (i = 0; i < inputsLen; i++) {\r\n\t\t\tinput = inputs[i];\r\n\t\t\tobj = this._layers[input.layerId];\r\n\r\n\t\t\tif (input.checked && !this._map.hasLayer(obj.layer)) {\r\n\t\t\t\tthis._map.addLayer(obj.layer);\r\n\r\n\t\t\t} else if (!input.checked && this._map.hasLayer(obj.layer)) {\r\n\t\t\t\tthis._map.removeLayer(obj.layer);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tthis._handlingClick = false;\r\n\r\n\t\tthis._refocusOnMap();\r\n\t},\r\n\r\n\t_expand: function () {\r\n\t\tL.DomUtil.addClass(this._container, 'leaflet-control-layers-expanded');\r\n\t},\r\n\r\n\t_collapse: function () {\r\n\t\tthis._container.className = this._container.className.replace(' leaflet-control-layers-expanded', '');\r\n\t}\r\n});\r\n\r\nL.control.layers = function (baseLayers, overlays, options) {\r\n\treturn new L.Control.Layers(baseLayers, overlays, options);\r\n};\r\n\n\n/*\n * L.PosAnimation is used by Leaflet internally for pan animations.\n */\n\nL.PosAnimation = L.Class.extend({\n\tincludes: L.Mixin.Events,\n\n\trun: function (el, newPos, duration, easeLinearity) { // (HTMLElement, Point[, Number, Number])\n\t\tthis.stop();\n\n\t\tthis._el = el;\n\t\tthis._inProgress = true;\n\t\tthis._newPos = newPos;\n\n\t\tthis.fire('start');\n\n\t\tel.style[L.DomUtil.TRANSITION] = 'all ' + (duration || 0.25) +\n\t\t 's cubic-bezier(0,0,' + (easeLinearity || 0.5) + ',1)';\n\n\t\tL.DomEvent.on(el, L.DomUtil.TRANSITION_END, this._onTransitionEnd, this);\n\t\tL.DomUtil.setPosition(el, newPos);\n\n\t\t// toggle reflow, Chrome flickers for some reason if you don't do this\n\t\tL.Util.falseFn(el.offsetWidth);\n\n\t\t// there's no native way to track value updates of transitioned properties, so we imitate this\n\t\tthis._stepTimer = setInterval(L.bind(this._onStep, this), 50);\n\t},\n\n\tstop: function () {\n\t\tif (!this._inProgress) { return; }\n\n\t\t// if we just removed the transition property, the element would jump to its final position,\n\t\t// so we need to make it stay at the current position\n\n\t\tL.DomUtil.setPosition(this._el, this._getPos());\n\t\tthis._onTransitionEnd();\n\t\tL.Util.falseFn(this._el.offsetWidth); // force reflow in case we are about to start a new animation\n\t},\n\n\t_onStep: function () {\n\t\tvar stepPos = this._getPos();\n\t\tif (!stepPos) {\n\t\t\tthis._onTransitionEnd();\n\t\t\treturn;\n\t\t}\n\t\t// jshint camelcase: false\n\t\t// make L.DomUtil.getPosition return intermediate position value during animation\n\t\tthis._el._leaflet_pos = stepPos;\n\n\t\tthis.fire('step');\n\t},\n\n\t// you can't easily get intermediate values of properties animated with CSS3 Transitions,\n\t// we need to parse computed style (in case of transform it returns matrix string)\n\n\t_transformRe: /([-+]?(?:\\d*\\.)?\\d+)\\D*, ([-+]?(?:\\d*\\.)?\\d+)\\D*\\)/,\n\n\t_getPos: function () {\n\t\tvar left, top, matches,\n\t\t el = this._el,\n\t\t style = window.getComputedStyle(el);\n\n\t\tif (L.Browser.any3d) {\n\t\t\tmatches = style[L.DomUtil.TRANSFORM].match(this._transformRe);\n\t\t\tif (!matches) { return; }\n\t\t\tleft = parseFloat(matches[1]);\n\t\t\ttop = parseFloat(matches[2]);\n\t\t} else {\n\t\t\tleft = parseFloat(style.left);\n\t\t\ttop = parseFloat(style.top);\n\t\t}\n\n\t\treturn new L.Point(left, top, true);\n\t},\n\n\t_onTransitionEnd: function () {\n\t\tL.DomEvent.off(this._el, L.DomUtil.TRANSITION_END, this._onTransitionEnd, this);\n\n\t\tif (!this._inProgress) { return; }\n\t\tthis._inProgress = false;\n\n\t\tthis._el.style[L.DomUtil.TRANSITION] = '';\n\n\t\t// jshint camelcase: false\n\t\t// make sure L.DomUtil.getPosition returns the final position value after animation\n\t\tthis._el._leaflet_pos = this._newPos;\n\n\t\tclearInterval(this._stepTimer);\n\n\t\tthis.fire('step').fire('end');\n\t}\n\n});\n\n\n/*\n * Extends L.Map to handle panning animations.\n */\n\nL.Map.include({\n\n\tsetView: function (center, zoom, options) {\n\n\t\tzoom = zoom === undefined ? this._zoom : this._limitZoom(zoom);\n\t\tcenter = this._limitCenter(L.latLng(center), zoom, this.options.maxBounds);\n\t\toptions = options || {};\n\n\t\tif (this._panAnim) {\n\t\t\tthis._panAnim.stop();\n\t\t}\n\n\t\tif (this._loaded && !options.reset && options !== true) {\n\n\t\t\tif (options.animate !== undefined) {\n\t\t\t\toptions.zoom = L.extend({animate: options.animate}, options.zoom);\n\t\t\t\toptions.pan = L.extend({animate: options.animate}, options.pan);\n\t\t\t}\n\n\t\t\t// try animating pan or zoom\n\t\t\tvar animated = (this._zoom !== zoom) ?\n\t\t\t\tthis._tryAnimatedZoom && this._tryAnimatedZoom(center, zoom, options.zoom) :\n\t\t\t\tthis._tryAnimatedPan(center, options.pan);\n\n\t\t\tif (animated) {\n\t\t\t\t// prevent resize handler call, the view will refresh after animation anyway\n\t\t\t\tclearTimeout(this._sizeTimer);\n\t\t\t\treturn this;\n\t\t\t}\n\t\t}\n\n\t\t// animation didn't start, just reset the map view\n\t\tthis._resetView(center, zoom);\n\n\t\treturn this;\n\t},\n\n\tpanBy: function (offset, options) {\n\t\toffset = L.point(offset).round();\n\t\toptions = options || {};\n\n\t\tif (!offset.x && !offset.y) {\n\t\t\treturn this;\n\t\t}\n\n\t\tif (!this._panAnim) {\n\t\t\tthis._panAnim = new L.PosAnimation();\n\n\t\t\tthis._panAnim.on({\n\t\t\t\t'step': this._onPanTransitionStep,\n\t\t\t\t'end': this._onPanTransitionEnd\n\t\t\t}, this);\n\t\t}\n\n\t\t// don't fire movestart if animating inertia\n\t\tif (!options.noMoveStart) {\n\t\t\tthis.fire('movestart');\n\t\t}\n\n\t\t// animate pan unless animate: false specified\n\t\tif (options.animate !== false) {\n\t\t\tL.DomUtil.addClass(this._mapPane, 'leaflet-pan-anim');\n\n\t\t\tvar newPos = this._getMapPanePos().subtract(offset);\n\t\t\tthis._panAnim.run(this._mapPane, newPos, options.duration || 0.25, options.easeLinearity);\n\t\t} else {\n\t\t\tthis._rawPanBy(offset);\n\t\t\tthis.fire('move').fire('moveend');\n\t\t}\n\n\t\treturn this;\n\t},\n\n\t_onPanTransitionStep: function () {\n\t\tthis.fire('move');\n\t},\n\n\t_onPanTransitionEnd: function () {\n\t\tL.DomUtil.removeClass(this._mapPane, 'leaflet-pan-anim');\n\t\tthis.fire('moveend');\n\t},\n\n\t_tryAnimatedPan: function (center, options) {\n\t\t// difference between the new and current centers in pixels\n\t\tvar offset = this._getCenterOffset(center)._floor();\n\n\t\t// don't animate too far unless animate: true specified in options\n\t\tif ((options && options.animate) !== true && !this.getSize().contains(offset)) { return false; }\n\n\t\tthis.panBy(offset, options);\n\n\t\treturn true;\n\t}\n});\n\n\n/*\n * L.PosAnimation fallback implementation that powers Leaflet pan animations\n * in browsers that don't support CSS3 Transitions.\n */\n\nL.PosAnimation = L.DomUtil.TRANSITION ? L.PosAnimation : L.PosAnimation.extend({\n\n\trun: function (el, newPos, duration, easeLinearity) { // (HTMLElement, Point[, Number, Number])\n\t\tthis.stop();\n\n\t\tthis._el = el;\n\t\tthis._inProgress = true;\n\t\tthis._duration = duration || 0.25;\n\t\tthis._easeOutPower = 1 / Math.max(easeLinearity || 0.5, 0.2);\n\n\t\tthis._startPos = L.DomUtil.getPosition(el);\n\t\tthis._offset = newPos.subtract(this._startPos);\n\t\tthis._startTime = +new Date();\n\n\t\tthis.fire('start');\n\n\t\tthis._animate();\n\t},\n\n\tstop: function () {\n\t\tif (!this._inProgress) { return; }\n\n\t\tthis._step();\n\t\tthis._complete();\n\t},\n\n\t_animate: function () {\n\t\t// animation loop\n\t\tthis._animId = L.Util.requestAnimFrame(this._animate, this);\n\t\tthis._step();\n\t},\n\n\t_step: function () {\n\t\tvar elapsed = (+new Date()) - this._startTime,\n\t\t duration = this._duration * 1000;\n\n\t\tif (elapsed < duration) {\n\t\t\tthis._runFrame(this._easeOut(elapsed / duration));\n\t\t} else {\n\t\t\tthis._runFrame(1);\n\t\t\tthis._complete();\n\t\t}\n\t},\n\n\t_runFrame: function (progress) {\n\t\tvar pos = this._startPos.add(this._offset.multiplyBy(progress));\n\t\tL.DomUtil.setPosition(this._el, pos);\n\n\t\tthis.fire('step');\n\t},\n\n\t_complete: function () {\n\t\tL.Util.cancelAnimFrame(this._animId);\n\n\t\tthis._inProgress = false;\n\t\tthis.fire('end');\n\t},\n\n\t_easeOut: function (t) {\n\t\treturn 1 - Math.pow(1 - t, this._easeOutPower);\n\t}\n});\n\n\n/*\n * Extends L.Map to handle zoom animations.\n */\n\nL.Map.mergeOptions({\n\tzoomAnimation: true,\n\tzoomAnimationThreshold: 4\n});\n\nif (L.DomUtil.TRANSITION) {\n\n\tL.Map.addInitHook(function () {\n\t\t// don't animate on browsers without hardware-accelerated transitions or old Android/Opera\n\t\tthis._zoomAnimated = this.options.zoomAnimation && L.DomUtil.TRANSITION &&\n\t\t\t\tL.Browser.any3d && !L.Browser.android23 && !L.Browser.mobileOpera;\n\n\t\t// zoom transitions run with the same duration for all layers, so if one of transitionend events\n\t\t// happens after starting zoom animation (propagating to the map pane), we know that it ended globally\n\t\tif (this._zoomAnimated) {\n\t\t\tL.DomEvent.on(this._mapPane, L.DomUtil.TRANSITION_END, this._catchTransitionEnd, this);\n\t\t}\n\t});\n}\n\nL.Map.include(!L.DomUtil.TRANSITION ? {} : {\n\n\t_catchTransitionEnd: function (e) {\n\t\tif (this._animatingZoom && e.propertyName.indexOf('transform') >= 0) {\n\t\t\tthis._onZoomTransitionEnd();\n\t\t}\n\t},\n\n\t_nothingToAnimate: function () {\n\t\treturn !this._container.getElementsByClassName('leaflet-zoom-animated').length;\n\t},\n\n\t_tryAnimatedZoom: function (center, zoom, options) {\n\n\t\tif (this._animatingZoom) { return true; }\n\n\t\toptions = options || {};\n\n\t\t// don't animate if disabled, not supported or zoom difference is too large\n\t\tif (!this._zoomAnimated || options.animate === false || this._nothingToAnimate() ||\n\t\t Math.abs(zoom - this._zoom) > this.options.zoomAnimationThreshold) { return false; }\n\n\t\t// offset is the pixel coords of the zoom origin relative to the current center\n\t\tvar scale = this.getZoomScale(zoom),\n\t\t offset = this._getCenterOffset(center)._divideBy(1 - 1 / scale),\n\t\t\torigin = this._getCenterLayerPoint()._add(offset);\n\n\t\t// don't animate if the zoom origin isn't within one screen from the current center, unless forced\n\t\tif (options.animate !== true && !this.getSize().contains(offset)) { return false; }\n\n\t\tthis\n\t\t .fire('movestart')\n\t\t .fire('zoomstart');\n\n\t\tthis._animateZoom(center, zoom, origin, scale, null, true);\n\n\t\treturn true;\n\t},\n\n\t_animateZoom: function (center, zoom, origin, scale, delta, backwards, forTouchZoom) {\n\n\t\tif (!forTouchZoom) {\n\t\t\tthis._animatingZoom = true;\n\t\t}\n\n\t\t// put transform transition on all layers with leaflet-zoom-animated class\n\t\tL.DomUtil.addClass(this._mapPane, 'leaflet-zoom-anim');\n\n\t\t// remember what center/zoom to set after animation\n\t\tthis._animateToCenter = center;\n\t\tthis._animateToZoom = zoom;\n\n\t\t// disable any dragging during animation\n\t\tif (L.Draggable) {\n\t\t\tL.Draggable._disabled = true;\n\t\t}\n\n\t\tL.Util.requestAnimFrame(function () {\n\t\t\tthis.fire('zoomanim', {\n\t\t\t\tcenter: center,\n\t\t\t\tzoom: zoom,\n\t\t\t\torigin: origin,\n\t\t\t\tscale: scale,\n\t\t\t\tdelta: delta,\n\t\t\t\tbackwards: backwards\n\t\t\t});\n\t\t\t// horrible hack to work around a Chrome bug https://github.com/Leaflet/Leaflet/issues/3689\n\t\t\tsetTimeout(L.bind(this._onZoomTransitionEnd, this), 250);\n\t\t}, this);\n\t},\n\n\t_onZoomTransitionEnd: function () {\n\t\tif (!this._animatingZoom) { return; }\n\n\t\tthis._animatingZoom = false;\n\n\t\tL.DomUtil.removeClass(this._mapPane, 'leaflet-zoom-anim');\n\n\t\tL.Util.requestAnimFrame(function () {\n\t\t\tthis._resetView(this._animateToCenter, this._animateToZoom, true, true);\n\n\t\t\tif (L.Draggable) {\n\t\t\t\tL.Draggable._disabled = false;\n\t\t\t}\n\t\t}, this);\n\t}\n});\n\n\n/*\n\tZoom animation logic for L.TileLayer.\n*/\n\nL.TileLayer.include({\n\t_animateZoom: function (e) {\n\t\tif (!this._animating) {\n\t\t\tthis._animating = true;\n\t\t\tthis._prepareBgBuffer();\n\t\t}\n\n\t\tvar bg = this._bgBuffer,\n\t\t transform = L.DomUtil.TRANSFORM,\n\t\t initialTransform = e.delta ? L.DomUtil.getTranslateString(e.delta) : bg.style[transform],\n\t\t scaleStr = L.DomUtil.getScaleString(e.scale, e.origin);\n\n\t\tbg.style[transform] = e.backwards ?\n\t\t\t\tscaleStr + ' ' + initialTransform :\n\t\t\t\tinitialTransform + ' ' + scaleStr;\n\t},\n\n\t_endZoomAnim: function () {\n\t\tvar front = this._tileContainer,\n\t\t bg = this._bgBuffer;\n\n\t\tfront.style.visibility = '';\n\t\tfront.parentNode.appendChild(front); // Bring to fore\n\n\t\t// force reflow\n\t\tL.Util.falseFn(bg.offsetWidth);\n\n\t\tvar zoom = this._map.getZoom();\n\t\tif (zoom > this.options.maxZoom || zoom < this.options.minZoom) {\n\t\t\tthis._clearBgBuffer();\n\t\t}\n\n\t\tthis._animating = false;\n\t},\n\n\t_clearBgBuffer: function () {\n\t\tvar map = this._map;\n\n\t\tif (map && !map._animatingZoom && !map.touchZoom._zooming) {\n\t\t\tthis._bgBuffer.innerHTML = '';\n\t\t\tthis._bgBuffer.style[L.DomUtil.TRANSFORM] = '';\n\t\t}\n\t},\n\n\t_prepareBgBuffer: function () {\n\n\t\tvar front = this._tileContainer,\n\t\t bg = this._bgBuffer;\n\n\t\t// if foreground layer doesn't have many tiles but bg layer does,\n\t\t// keep the existing bg layer and just zoom it some more\n\n\t\tvar bgLoaded = this._getLoadedTilesPercentage(bg),\n\t\t frontLoaded = this._getLoadedTilesPercentage(front);\n\n\t\tif (bg && bgLoaded > 0.5 && frontLoaded < 0.5) {\n\n\t\t\tfront.style.visibility = 'hidden';\n\t\t\tthis._stopLoadingImages(front);\n\t\t\treturn;\n\t\t}\n\n\t\t// prepare the buffer to become the front tile pane\n\t\tbg.style.visibility = 'hidden';\n\t\tbg.style[L.DomUtil.TRANSFORM] = '';\n\n\t\t// switch out the current layer to be the new bg layer (and vice-versa)\n\t\tthis._tileContainer = bg;\n\t\tbg = this._bgBuffer = front;\n\n\t\tthis._stopLoadingImages(bg);\n\n\t\t//prevent bg buffer from clearing right after zoom\n\t\tclearTimeout(this._clearBgBufferTimer);\n\t},\n\n\t_getLoadedTilesPercentage: function (container) {\n\t\tvar tiles = container.getElementsByTagName('img'),\n\t\t i, len, count = 0;\n\n\t\tfor (i = 0, len = tiles.length; i < len; i++) {\n\t\t\tif (tiles[i].complete) {\n\t\t\t\tcount++;\n\t\t\t}\n\t\t}\n\t\treturn count / len;\n\t},\n\n\t// stops loading all tiles in the background layer\n\t_stopLoadingImages: function (container) {\n\t\tvar tiles = Array.prototype.slice.call(container.getElementsByTagName('img')),\n\t\t i, len, tile;\n\n\t\tfor (i = 0, len = tiles.length; i < len; i++) {\n\t\t\ttile = tiles[i];\n\n\t\t\tif (!tile.complete) {\n\t\t\t\ttile.onload = L.Util.falseFn;\n\t\t\t\ttile.onerror = L.Util.falseFn;\n\t\t\t\ttile.src = L.Util.emptyImageUrl;\n\n\t\t\t\ttile.parentNode.removeChild(tile);\n\t\t\t}\n\t\t}\n\t}\n});\n\n\n/*\r\n * Provides L.Map with convenient shortcuts for using browser geolocation features.\r\n */\r\n\r\nL.Map.include({\r\n\t_defaultLocateOptions: {\r\n\t\twatch: false,\r\n\t\tsetView: false,\r\n\t\tmaxZoom: Infinity,\r\n\t\ttimeout: 10000,\r\n\t\tmaximumAge: 0,\r\n\t\tenableHighAccuracy: false\r\n\t},\r\n\r\n\tlocate: function (/*Object*/ options) {\r\n\r\n\t\toptions = this._locateOptions = L.extend(this._defaultLocateOptions, options);\r\n\r\n\t\tif (!navigator.geolocation) {\r\n\t\t\tthis._handleGeolocationError({\r\n\t\t\t\tcode: 0,\r\n\t\t\t\tmessage: 'Geolocation not supported.'\r\n\t\t\t});\r\n\t\t\treturn this;\r\n\t\t}\r\n\r\n\t\tvar onResponse = L.bind(this._handleGeolocationResponse, this),\r\n\t\t\tonError = L.bind(this._handleGeolocationError, this);\r\n\r\n\t\tif (options.watch) {\r\n\t\t\tthis._locationWatchId =\r\n\t\t\t navigator.geolocation.watchPosition(onResponse, onError, options);\r\n\t\t} else {\r\n\t\t\tnavigator.geolocation.getCurrentPosition(onResponse, onError, options);\r\n\t\t}\r\n\t\treturn this;\r\n\t},\r\n\r\n\tstopLocate: function () {\r\n\t\tif (navigator.geolocation) {\r\n\t\t\tnavigator.geolocation.clearWatch(this._locationWatchId);\r\n\t\t}\r\n\t\tif (this._locateOptions) {\r\n\t\t\tthis._locateOptions.setView = false;\r\n\t\t}\r\n\t\treturn this;\r\n\t},\r\n\r\n\t_handleGeolocationError: function (error) {\r\n\t\tvar c = error.code,\r\n\t\t message = error.message ||\r\n\t\t (c === 1 ? 'permission denied' :\r\n\t\t (c === 2 ? 'position unavailable' : 'timeout'));\r\n\r\n\t\tif (this._locateOptions.setView && !this._loaded) {\r\n\t\t\tthis.fitWorld();\r\n\t\t}\r\n\r\n\t\tthis.fire('locationerror', {\r\n\t\t\tcode: c,\r\n\t\t\tmessage: 'Geolocation error: ' + message + '.'\r\n\t\t});\r\n\t},\r\n\r\n\t_handleGeolocationResponse: function (pos) {\r\n\t\tvar lat = pos.coords.latitude,\r\n\t\t lng = pos.coords.longitude,\r\n\t\t latlng = new L.LatLng(lat, lng),\r\n\r\n\t\t latAccuracy = 180 * pos.coords.accuracy / 40075017,\r\n\t\t lngAccuracy = latAccuracy / Math.cos(L.LatLng.DEG_TO_RAD * lat),\r\n\r\n\t\t bounds = L.latLngBounds(\r\n\t\t [lat - latAccuracy, lng - lngAccuracy],\r\n\t\t [lat + latAccuracy, lng + lngAccuracy]),\r\n\r\n\t\t options = this._locateOptions;\r\n\r\n\t\tif (options.setView) {\r\n\t\t\tvar zoom = Math.min(this.getBoundsZoom(bounds), options.maxZoom);\r\n\t\t\tthis.setView(latlng, zoom);\r\n\t\t}\r\n\r\n\t\tvar data = {\r\n\t\t\tlatlng: latlng,\r\n\t\t\tbounds: bounds,\r\n\t\t\ttimestamp: pos.timestamp\r\n\t\t};\r\n\r\n\t\tfor (var i in pos.coords) {\r\n\t\t\tif (typeof pos.coords[i] === 'number') {\r\n\t\t\t\tdata[i] = pos.coords[i];\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tthis.fire('locationfound', data);\r\n\t}\r\n});\r\n\n\n}(window, document));","var map = {\n\t\"./be.json\": 656,\n\t\"./bg.json\": 242,\n\t\"./cs.json\": 435,\n\t\"./de.json\": 758,\n\t\"./el.json\": 388,\n\t\"./en.json\": 38,\n\t\"./es.json\": 589,\n\t\"./et.json\": 516,\n\t\"./fr.json\": 469,\n\t\"./he.json\": 146,\n\t\"./hu.json\": 450,\n\t\"./is.json\": 297,\n\t\"./it.json\": 536,\n\t\"./jp.json\": 543,\n\t\"./ko.json\": 287,\n\t\"./nl.json\": 807,\n\t\"./nn.json\": 537,\n\t\"./no.json\": 950,\n\t\"./pl.json\": 893,\n\t\"./pt.json\": 253,\n\t\"./ru.json\": 112,\n\t\"./sk.json\": 211,\n\t\"./sr.json\": 424,\n\t\"./sv.json\": 116,\n\t\"./tr.json\": 619,\n\t\"./uk.json\": 613,\n\t\"./ur.json\": 810,\n\t\"./zh-cn.json\": 867,\n\t\"./zh-tw.json\": 803\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 434;","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","/*\n\tBased on Leaflet Browser\n\tBrowser handles different browser and feature detections for internal use.\n*/\n\nexport const ua = navigator.userAgent.toLowerCase();\nexport const doc = document.documentElement;\nexport const webkit = ua.indexOf('webkit') !== -1;\nexport const ie = 'ActiveXObject' in window;\nexport const phantomjs = ua.indexOf('phantom') !== -1;\nexport const android23 = ua.search('android [23]') !== -1;\nexport const mobile = typeof orientation !== 'undefined';\nexport const msPointer = navigator.msPointerEnabled && navigator.msMaxTouchPoints && !window.PointerEvent;\nexport const pointer = (window.PointerEvent && navigator.pointerEnabled && navigator.maxTouchPoints) || msPointer;\nexport const ie3d = ie && ('transition' in doc.style);\nexport const webkit3d = ('WebKitCSSMatrix' in window) && ('m11' in new window.WebKitCSSMatrix()) && !android23;\nexport const gecko3d = 'MozPerspective' in doc.style;\nexport const opera3d = 'OTransition' in doc.style;\nexport const opera = window.opera;\nexport const touch = !window.L_NO_TOUCH && !phantomjs\n && (pointer || 'ontouchstart' in window || (window.DocumentTouch && document instanceof window.DocumentTouch));\n\nexport let retina = 'devicePixelRatio' in window && window.devicePixelRatio > 1;\nif (!retina && 'matchMedia' in window) {\n var windowMediaMatches = window.matchMedia('(min-resolution:144dpi)');\n retina = windowMediaMatches && windowMediaMatches.matches;\n}\n\nexport const Browser = {\n ie: ie,\n ielt9: ie && !document.addEventListener,\n webkit: webkit,\n chrome: ua.indexOf('chrome') !== -1,\n firefox: (ua.indexOf('gecko') !== -1) && !webkit && !window.opera && !ie,\n android: ua.indexOf('android') !== -1,\n android23: android23,\n ie3d: ie3d,\n webkit3d: webkit3d,\n gecko3d: gecko3d,\n opera3d: opera3d,\n any3d: !window.L_DISABLE_3D && (ie3d || webkit3d || gecko3d || opera3d) && !phantomjs,\n mobile: mobile,\n mobileWebkit: mobile && webkit,\n mobileWebkit3d: mobile && webkit3d,\n mobileOpera: mobile && window.opera,\n touch: !! touch,\n msPointer: !! msPointer,\n pointer: !! pointer,\n retina: !! retina,\n orientation: function() {\n var w = window.innerWidth,\n h = window.innerHeight,\n _orientation = \"portrait\";\n if (w > h) {\n _orientation = \"landscape\";\n }\n if (Math.abs(window.orientation) == 90) {\n //_orientation = \"landscape\";\n }\n trace(_orientation);\n return _orientation;\n }\n};\n","const debug = true;\nimport { Browser } from \"../core/Browser\"\nimport Emoji from \"../library/Emoji\"\n\n\nexport function extend(/*Object*/ dest) /*-> Object*/ {\t// merge src properties into dest\n var sources = Array.prototype.slice.call(arguments, 1);\n for (var j = 0, len = sources.length, src; j < len; j++) {\n src = sources[j] || {};\n for (var i in src) {\n if (src.hasOwnProperty(i)) {\n dest[i] = src[i];\n }\n }\n }\n return dest;\n}\n\n/**\n * Implement mixin behavior. Based on \n * https://blog.bitsrc.io/understanding-mixins-in-javascript-de5d3e02b466\n * @param {class} cls \n * @param {...class} src \n */\nexport function classMixin(cls, ...src) {\n for (let _cl of src) {\n for (var key of Object.getOwnPropertyNames(_cl.prototype)) {\n cls.prototype[key] = _cl.prototype[key]\n }\n }\n}\n\n\nexport function convertUnixTime(str) { // created for Instagram. It's ISO8601-ish\n // 2013-12-09 01:56:28\n var pattern = /^(\\d{4})-(\\d{2})-(\\d{2})[T\\s](\\d{2}):(\\d{2}):(\\d{2})/;\n if (str.match(pattern)) {\n var date_parts = str.match(pattern).slice(1);\n }\n var date_array = [];\n for(var i = 0; i < date_parts.length; i++) {\n var val = parseInt(date_parts[i]);\n if (i == 1) { val = val - 1 } // stupid javascript months\n date_array.push( val )\n }\n date = new Date(date_array[0], date_array[1], date_array[2], date_array[3], date_array[4], date_array[5]);\n months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'];\n year = date.getFullYear();\n month = months[date.getMonth()];\n day = date.getDate();\n time = month + ', ' + day + ' ' + year;\n return time;\n}\n\nexport function setData(obj, data) {\n obj.data = extend({}, obj.data, data);\n if (obj.data.uniqueid === \"\") {\n obj.data.uniqueid = unique_ID(6);\n }\n}\n\nexport function mergeData(data_main, data_to_merge) {\n var x;\n for (x in data_to_merge) {\n if (Object.prototype.hasOwnProperty.call(data_to_merge, x)) {\n data_main[x] = data_to_merge[x];\n }\n }\n return data_main;\n}\n\n\n/**\n * Like mergeData, except will only try to copy data that already exists\n * in data_main\n */\nexport function updateData(data_main, data_to_merge) {\n var x;\n for (x in data_main) {\n if (Object.prototype.hasOwnProperty.call(data_to_merge, x)) {\n data_main[x] = data_to_merge[x];\n }\n }\n return data_main;\n}\n\nexport function stamp() {\n var lastId = 0, key = '_vco_id';\n return function (/*Object*/ obj) {\n obj[key] = obj[key] || ++lastId;\n return obj[key];\n };\n}\n\nexport function findArrayNumberByUniqueID(id, array, prop) {\n var _n = 0;\n for (var i = 0; i < array.length; i++) {\n if (array[i].data[prop] == id) {\n _n = i;\n }\n };\n return _n;\n}\n\nexport function unique_ID(size, prefix) {\n var getRandomNumber = function(range) {\n return Math.floor(Math.random() * range);\n };\n var getRandomChar = function() {\n var chars = \"abcdefghijklmnopqurstuvwxyz\";\n return chars.substr( getRandomNumber(32), 1 );\n };\n var randomID = function(size) {\n var str = \"\";\n for(var i = 0; i < size; i++) {\n str += getRandomChar();\n }\n return str;\n };\n if (prefix) {\n return prefix + \"-\" + randomID(size);\n } else {\n return \"vco-\" + randomID(size);\n }\n}\n\nexport function hexToRgb(hex) {\n // Expand shorthand form (e.g. \"03F\") to full form (e.g. \"0033FF\")\n var shorthandRegex = /^#?([a-f\\d])([a-f\\d])([a-f\\d])$/i;\n hex = hex.replace(shorthandRegex, function(m, r, g, b) {\n return r + r + g + g + b + b;\n });\n\n var result = /^#?([a-f\\d]{2})([a-f\\d]{2})([a-f\\d]{2})$/i.exec(hex);\n return result ? {\n r: parseInt(result[1], 16),\n g: parseInt(result[2], 16),\n b: parseInt(result[3], 16)\n } : null;\n}\n\nexport function htmlify(str) {\n //if (str.match(/<\\s*p[^>]*>([^<]*)<\\s*\\/\\s*p\\s*>/)) {\n if (Browser.chrome) {\n str = Emoji(str);\n }\n if (str.match(/[\\s\\S]*?<\\/p>/)) {\n \n return str;\n } else {\n return \"
\" + str + \"
\";\n }\n}\n\nexport function getUrlVars(string) {\n var str,\n vars = [],\n hash,\n hashes;\n str = string.toString();\n if (str.match('&')) { \n str = str.replace(\"&\", \"&\");\n } else if (str.match('&')) {\n str = str.replace(\"&\", \"&\");\n } else if (str.match('&')) {\n str = str.replace(\"&\", \"&\");\n }\n hashes = str.slice(str.indexOf('?') + 1).split('&');\n for(var i = 0; i < hashes.length; i++) {\n hash = hashes[i].split('=');\n vars.push(hash[0]);\n vars[hash[0]] = hash[1];\n }\n return vars;\n}\n\nexport const ratio = {\n square: function(size) {\n var s = {\n w: 0,\n h: 0\n }\n if (size.w > size.h && size.h > 0) {\n s.h = size.h;\n s.w = size.h;\n } else {\n s.w = size.w;\n s.h = size.w;\n }\n return s;\n },\n \n r16_9: function(size) {\n if (size.w !== null && size.w !== \"\") {\n return Math.round((size.w / 16) * 9);\n } else if (size.h !== null && size.h !== \"\") {\n return Math.round((size.h / 9) * 16);\n } else {\n return 0;\n }\n },\n r4_3: function(size) {\n if (size.w !== null && size.w !== \"\") {\n return Math.round((size.w / 4) * 3);\n } else if (size.h !== null && size.h !== \"\") {\n return Math.round((size.h / 3) * 4);\n }\n }\n}\n\nexport function urljoin(base_url, path) {\n if(base_url.length && base_url[base_url.length - 1] == '/') {\n base_url = base_url.substring(0, base_url.length - 1);\n }\n if(path.length && path[0] == '/') {\n path = path.substring(1);\n }\n var url1 = base_url.split('/');\n var url2 = path.split('/');\n var url3 = [ ];\n for (var i = 0, l = url1.length; i < l; i ++) {\n if (url1[i] == '..') {\n url3.pop();\n } else if (url1[i] == '.') {\n continue;\n } else {\n url3.push(url1[i]);\n }\n }\n for (var i = 0, l = url2.length; i < l; i ++) {\n if (url2[i] == '..') {\n url3.pop();\n } else if (url2[i] == '.') {\n continue;\n } else {\n url3.push(url2[i]);\n }\n }\n return url3.join('/');\n}\n\n\nexport function getObjectAttributeByIndex(obj, index) {\n if(typeof obj != 'undefined') {\n var i = 0;\n for (var attr in obj){\n if (index === i){\n return obj[attr];\n }\n i++;\n }\n return \"\";\n } else {\n return \"\";\n }\n}\n","/*\nBorrowed from:\nhttps://github.com/rodrigopolo/minEmoji\n\n(The MIT License)\n\nCopyright (c) by Rodrigo Polo - http://RodrigoPolo.com\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE\n*/\n\nexport default function Emoji(str) {\n\tvar emoji = {\n\t\t\"\\ud83d\\ude04\":0,\"\\ud83d\\ude03\":1,\"\\ud83d\\ude00\":2,\"\\ud83d\\ude0a\":3,\"\\u263a\\ufe0f\":4,\"\\ud83d\\ude09\":5,\"\\ud83d\\ude0d\":6,\"\\ud83d\\ude18\":7,\"\\ud83d\\ude1a\":8,\"\\ud83d\\ude17\":9,\"\\ud83d\\ude19\":10,\"\\ud83d\\ude1c\":11,\"\\ud83d\\ude1d\":12,\"\\ud83d\\ude1b\":13,\"\\ud83d\\ude33\":14,\"\\ud83d\\ude01\":15,\"\\ud83d\\ude14\":16,\"\\ud83d\\ude0c\":17,\"\\ud83d\\ude12\":18,\"\\ud83d\\ude1e\":19,\"\\ud83d\\ude23\":20,\"\\ud83d\\ude22\":21,\"\\ud83d\\ude02\":22,\"\\ud83d\\ude2d\":23,\"\\ud83d\\ude2a\":24,\"\\ud83d\\ude25\":25,\"\\ud83d\\ude30\":26,\"\\ud83d\\ude05\":27,\"\\ud83d\\ude13\":28,\"\\ud83d\\ude29\":29,\"\\ud83d\\ude2b\":30,\"\\ud83d\\ude28\":31,\"\\ud83d\\ude31\":32,\"\\ud83d\\ude20\":33,\"\\ud83d\\ude21\":34,\"\\ud83d\\ude24\":35,\"\\ud83d\\ude16\":36,\"\\ud83d\\ude06\":37,\"\\ud83d\\ude0b\":38,\"\\ud83d\\ude37\":39,\"\\ud83d\\ude0e\":40,\"\\ud83d\\ude34\":41,\"\\ud83d\\ude35\":42,\"\\ud83d\\ude32\":43,\"\\ud83d\\ude1f\":44,\"\\ud83d\\ude26\":45,\"\\ud83d\\ude27\":46,\"\\ud83d\\ude08\":47,\"\\ud83d\\udc7f\":48,\"\\ud83d\\ude2e\":49,\"\\ud83d\\ude2c\":50,\"\\ud83d\\ude10\":51,\"\\ud83d\\ude15\":52,\"\\ud83d\\ude2f\":53,\"\\ud83d\\ude36\":54,\"\\ud83d\\ude07\":55,\"\\ud83d\\ude0f\":56,\"\\ud83d\\ude11\":57,\"\\ud83d\\udc72\":58,\"\\ud83d\\udc73\":59,\"\\ud83d\\udc6e\":60,\"\\ud83d\\udc77\":61,\"\\ud83d\\udc82\":62,\"\\ud83d\\udc76\":63,\"\\ud83d\\udc66\":64,\"\\ud83d\\udc67\":65,\"\\ud83d\\udc68\":66,\"\\ud83d\\udc69\":67,\"\\ud83d\\udc74\":68,\"\\ud83d\\udc75\":69,\"\\ud83d\\udc71\":70,\"\\ud83d\\udc7c\":71,\"\\ud83d\\udc78\":72,\"\\ud83d\\ude3a\":73,\"\\ud83d\\ude38\":74,\"\\ud83d\\ude3b\":75,\"\\ud83d\\ude3d\":76,\"\\ud83d\\ude3c\":77,\"\\ud83d\\ude40\":78,\"\\ud83d\\ude3f\":79,\"\\ud83d\\ude39\":80,\"\\ud83d\\ude3e\":81,\"\\ud83d\\udc79\":82,\"\\ud83d\\udc7a\":83,\"\\ud83d\\ude48\":84,\"\\ud83d\\ude49\":85,\"\\ud83d\\ude4a\":86,\"\\ud83d\\udc80\":87,\"\\ud83d\\udc7d\":88,\"\\ud83d\\udca9\":89,\"\\ud83d\\udd25\":90,\"\\u2728\":91,\"\\ud83c\\udf1f\":92,\"\\ud83d\\udcab\":93,\"\\ud83d\\udca5\":94,\"\\ud83d\\udca2\":95,\"\\ud83d\\udca6\":96,\"\\ud83d\\udca7\":97,\"\\ud83d\\udca4\":98,\"\\ud83d\\udca8\":99,\t\t\"\\ud83d\\udc42\":100,\"\\ud83d\\udc40\":101,\"\\ud83d\\udc43\":102,\"\\ud83d\\udc45\":103,\"\\ud83d\\udc44\":104,\"\\ud83d\\udc4d\":105,\"\\ud83d\\udc4e\":106,\"\\ud83d\\udc4c\":107,\"\\ud83d\\udc4a\":108,\"\\u270a\":109,\"\\u270c\\ufe0f\":110,\"\\ud83d\\udc4b\":111,\"\\u270b\":112,\"\\ud83d\\udc50\":113,\"\\ud83d\\udc46\":114,\"\\ud83d\\udc47\":115,\"\\ud83d\\udc49\":116,\"\\ud83d\\udc48\":117,\"\\ud83d\\ude4c\":118,\"\\ud83d\\ude4f\":119,\"\\u261d\\ufe0f\":120,\"\\ud83d\\udc4f\":121,\"\\ud83d\\udcaa\":122,\"\\ud83d\\udeb6\":123,\"\\ud83c\\udfc3\":124,\"\\ud83d\\udc83\":125,\"\\ud83d\\udc6b\":126,\"\\ud83d\\udc6a\":127,\"\\ud83d\\udc6c\":128,\"\\ud83d\\udc6d\":129,\"\\ud83d\\udc8f\":130,\"\\ud83d\\udc91\":131,\"\\ud83d\\udc6f\":132,\"\\ud83d\\ude46\":133,\"\\ud83d\\ude45\":134,\"\\ud83d\\udc81\":135,\"\\ud83d\\ude4b\":136,\"\\ud83d\\udc86\":137,\"\\ud83d\\udc87\":138,\"\\ud83d\\udc85\":139,\"\\ud83d\\udc70\":140,\"\\ud83d\\ude4e\":141,\"\\ud83d\\ude4d\":142,\"\\ud83d\\ude47\":143,\"\\ud83c\\udfa9\":144,\"\\ud83d\\udc51\":145,\"\\ud83d\\udc52\":146,\"\\ud83d\\udc5f\":147,\"\\ud83d\\udc5e\":148,\"\\ud83d\\udc61\":149,\"\\ud83d\\udc60\":150,\"\\ud83d\\udc62\":151,\"\\ud83d\\udc55\":152,\"\\ud83d\\udc54\":153,\"\\ud83d\\udc5a\":154,\"\\ud83d\\udc57\":155,\"\\ud83c\\udfbd\":156,\"\\ud83d\\udc56\":157,\"\\ud83d\\udc58\":158,\"\\ud83d\\udc59\":159,\"\\ud83d\\udcbc\":160,\"\\ud83d\\udc5c\":161,\"\\ud83d\\udc5d\":162,\"\\ud83d\\udc5b\":163,\"\\ud83d\\udc53\":164,\"\\ud83c\\udf80\":165,\"\\ud83c\\udf02\":166,\"\\ud83d\\udc84\":167,\"\\ud83d\\udc9b\":168,\"\\ud83d\\udc99\":169,\"\\ud83d\\udc9c\":170,\"\\ud83d\\udc9a\":171,\"\\u2764\\ufe0f\":172,\"\\ud83d\\udc94\":173,\"\\ud83d\\udc97\":174,\"\\ud83d\\udc93\":175,\"\\ud83d\\udc95\":176,\"\\ud83d\\udc96\":177,\"\\ud83d\\udc9e\":178,\"\\ud83d\\udc98\":179,\"\\ud83d\\udc8c\":180,\"\\ud83d\\udc8b\":181,\"\\ud83d\\udc8d\":182,\"\\ud83d\\udc8e\":183,\"\\ud83d\\udc64\":184,\"\\ud83d\\udc65\":185,\"\\ud83d\\udcac\":186,\"\\ud83d\\udc63\":187,\"\\ud83d\\udcad\":188,\"\\ud83d\\udc36\":189,\"\\ud83d\\udc3a\":190,\"\\ud83d\\udc31\":191,\"\\ud83d\\udc2d\":192,\"\\ud83d\\udc39\":193,\"\\ud83d\\udc30\":194,\"\\ud83d\\udc38\":195,\"\\ud83d\\udc2f\":196,\"\\ud83d\\udc28\":197,\"\\ud83d\\udc3b\":198,\"\\ud83d\\udc37\":199,\t\t\"\\ud83d\\udc3d\":200,\"\\ud83d\\udc2e\":201,\"\\ud83d\\udc17\":202,\"\\ud83d\\udc35\":203,\"\\ud83d\\udc12\":204,\"\\ud83d\\udc34\":205,\"\\ud83d\\udc11\":206,\"\\ud83d\\udc18\":207,\"\\ud83d\\udc3c\":208,\"\\ud83d\\udc27\":209,\"\\ud83d\\udc26\":210,\"\\ud83d\\udc24\":211,\"\\ud83d\\udc25\":212,\"\\ud83d\\udc23\":213,\"\\ud83d\\udc14\":214,\"\\ud83d\\udc0d\":215,\"\\ud83d\\udc22\":216,\"\\ud83d\\udc1b\":217,\"\\ud83d\\udc1d\":218,\"\\ud83d\\udc1c\":219,\"\\ud83d\\udc1e\":220,\"\\ud83d\\udc0c\":221,\"\\ud83d\\udc19\":222,\"\\ud83d\\udc1a\":223,\"\\ud83d\\udc20\":224,\"\\ud83d\\udc1f\":225,\"\\ud83d\\udc2c\":226,\"\\ud83d\\udc33\":227,\"\\ud83d\\udc0b\":228,\"\\ud83d\\udc04\":229,\"\\ud83d\\udc0f\":230,\"\\ud83d\\udc00\":231,\"\\ud83d\\udc03\":232,\"\\ud83d\\udc05\":233,\"\\ud83d\\udc07\":234,\"\\ud83d\\udc09\":235,\"\\ud83d\\udc0e\":236,\"\\ud83d\\udc10\":237,\"\\ud83d\\udc13\":238,\"\\ud83d\\udc15\":239,\"\\ud83d\\udc16\":240,\"\\ud83d\\udc01\":241,\"\\ud83d\\udc02\":242,\"\\ud83d\\udc32\":243,\"\\ud83d\\udc21\":244,\"\\ud83d\\udc0a\":245,\"\\ud83d\\udc2b\":246,\"\\ud83d\\udc2a\":247,\"\\ud83d\\udc06\":248,\"\\ud83d\\udc08\":249,\"\\ud83d\\udc29\":250,\"\\ud83d\\udc3e\":251,\"\\ud83d\\udc90\":252,\"\\ud83c\\udf38\":253,\"\\ud83c\\udf37\":254,\"\\ud83c\\udf40\":255,\"\\ud83c\\udf39\":256,\"\\ud83c\\udf3b\":257,\"\\ud83c\\udf3a\":258,\"\\ud83c\\udf41\":259,\"\\ud83c\\udf43\":260,\"\\ud83c\\udf42\":261,\"\\ud83c\\udf3f\":262,\"\\ud83c\\udf3e\":263,\"\\ud83c\\udf44\":264,\"\\ud83c\\udf35\":265,\"\\ud83c\\udf34\":266,\"\\ud83c\\udf32\":267,\"\\ud83c\\udf33\":268,\"\\ud83c\\udf30\":269,\"\\ud83c\\udf31\":270,\"\\ud83c\\udf3c\":271,\"\\ud83c\\udf10\":272,\"\\ud83c\\udf1e\":273,\"\\ud83c\\udf1d\":274,\"\\ud83c\\udf1a\":275,\"\\ud83c\\udf11\":276,\"\\ud83c\\udf12\":277,\"\\ud83c\\udf13\":278,\"\\ud83c\\udf14\":279,\"\\ud83c\\udf15\":280,\"\\ud83c\\udf16\":281,\"\\ud83c\\udf17\":282,\"\\ud83c\\udf18\":283,\"\\ud83c\\udf1c\":284,\"\\ud83c\\udf1b\":285,\"\\ud83c\\udf19\":286,\"\\ud83c\\udf0d\":287,\"\\ud83c\\udf0e\":288,\"\\ud83c\\udf0f\":289,\"\\ud83c\\udf0b\":290,\"\\ud83c\\udf0c\":291,\"\\ud83c\\udf20\":292,\"\\u2b50\\ufe0f\":293,\"\\u2600\\ufe0f\":294,\"\\u26c5\\ufe0f\":295,\"\\u2601\\ufe0f\":296,\"\\u26a1\\ufe0f\":297,\"\\u2614\\ufe0f\":298,\"\\u2744\\ufe0f\":299,\t\t\"\\u26c4\\ufe0f\":300,\"\\ud83c\\udf00\":301,\"\\ud83c\\udf01\":302,\"\\ud83c\\udf08\":303,\"\\ud83c\\udf0a\":304,\"\\ud83c\\udf8d\":305,\"\\ud83d\\udc9d\":306,\"\\ud83c\\udf8e\":307,\"\\ud83c\\udf92\":308,\"\\ud83c\\udf93\":309,\"\\ud83c\\udf8f\":310,\"\\ud83c\\udf86\":311,\"\\ud83c\\udf87\":312,\"\\ud83c\\udf90\":313,\"\\ud83c\\udf91\":314,\"\\ud83c\\udf83\":315,\"\\ud83d\\udc7b\":316,\"\\ud83c\\udf85\":317,\"\\ud83c\\udf84\":318,\"\\ud83c\\udf81\":319,\"\\ud83c\\udf8b\":320,\"\\ud83c\\udf89\":321,\"\\ud83c\\udf8a\":322,\"\\ud83c\\udf88\":323,\"\\ud83c\\udf8c\":324,\"\\ud83d\\udd2e\":325,\"\\ud83c\\udfa5\":326,\"\\ud83d\\udcf7\":327,\"\\ud83d\\udcf9\":328,\"\\ud83d\\udcfc\":329,\"\\ud83d\\udcbf\":330,\"\\ud83d\\udcc0\":331,\"\\ud83d\\udcbd\":332,\"\\ud83d\\udcbe\":333,\"\\ud83d\\udcbb\":334,\"\\ud83d\\udcf1\":335,\"\\u260e\\ufe0f\":336,\"\\ud83d\\udcde\":337,\"\\ud83d\\udcdf\":338,\"\\ud83d\\udce0\":339,\"\\ud83d\\udce1\":340,\"\\ud83d\\udcfa\":341,\"\\ud83d\\udcfb\":342,\"\\ud83d\\udd0a\":343,\"\\ud83d\\udd09\":344,\"\\ud83d\\udd08\":345,\"\\ud83d\\udd07\":346,\"\\ud83d\\udd14\":347,\"\\ud83d\\udd15\":348,\"\\ud83d\\udce2\":349,\"\\ud83d\\udce3\":350,\"\\u23f3\":351,\"\\u231b\\ufe0f\":352,\"\\u23f0\":353,\"\\u231a\\ufe0f\":354,\"\\ud83d\\udd13\":355,\"\\ud83d\\udd12\":356,\"\\ud83d\\udd0f\":357,\"\\ud83d\\udd10\":358,\"\\ud83d\\udd11\":359,\"\\ud83d\\udd0e\":360,\"\\ud83d\\udca1\":361,\"\\ud83d\\udd26\":362,\"\\ud83d\\udd06\":363,\"\\ud83d\\udd05\":364,\"\\ud83d\\udd0c\":365,\"\\ud83d\\udd0b\":366,\"\\ud83d\\udd0d\":367,\"\\ud83d\\udec1\":368,\"\\ud83d\\udec0\":369,\"\\ud83d\\udebf\":370,\"\\ud83d\\udebd\":371,\"\\ud83d\\udd27\":372,\"\\ud83d\\udd29\":373,\"\\ud83d\\udd28\":374,\"\\ud83d\\udeaa\":375,\"\\ud83d\\udeac\":376,\"\\ud83d\\udca3\":377,\"\\ud83d\\udd2b\":378,\"\\ud83d\\udd2a\":379,\"\\ud83d\\udc8a\":380,\"\\ud83d\\udc89\":381,\"\\ud83d\\udcb0\":382,\"\\ud83d\\udcb4\":383,\"\\ud83d\\udcb5\":384,\"\\ud83d\\udcb7\":385,\"\\ud83d\\udcb6\":386,\"\\ud83d\\udcb3\":387,\"\\ud83d\\udcb8\":388,\"\\ud83d\\udcf2\":389,\"\\ud83d\\udce7\":390,\"\\ud83d\\udce5\":391,\"\\ud83d\\udce4\":392,\"\\u2709\\ufe0f\":393,\"\\ud83d\\udce9\":394,\"\\ud83d\\udce8\":395,\"\\ud83d\\udcef\":396,\"\\ud83d\\udceb\":397,\"\\ud83d\\udcea\":398,\"\\ud83d\\udcec\":399,\t\t\"\\ud83d\\udced\":400,\"\\ud83d\\udcee\":401,\"\\ud83d\\udce6\":402,\"\\ud83d\\udcdd\":403,\"\\ud83d\\udcc4\":404,\"\\ud83d\\udcc3\":405,\"\\ud83d\\udcd1\":406,\"\\ud83d\\udcca\":407,\"\\ud83d\\udcc8\":408,\"\\ud83d\\udcc9\":409,\"\\ud83d\\udcdc\":410,\"\\ud83d\\udccb\":411,\"\\ud83d\\udcc5\":412,\"\\ud83d\\udcc6\":413,\"\\ud83d\\udcc7\":414,\"\\ud83d\\udcc1\":415,\"\\ud83d\\udcc2\":416,\"\\u2702\\ufe0f\":417,\"\\ud83d\\udccc\":418,\"\\ud83d\\udcce\":419,\"\\u2712\\ufe0f\":420,\"\\u270f\\ufe0f\":421,\"\\ud83d\\udccf\":422,\"\\ud83d\\udcd0\":423,\"\\ud83d\\udcd5\":424,\"\\ud83d\\udcd7\":425,\"\\ud83d\\udcd8\":426,\"\\ud83d\\udcd9\":427,\"\\ud83d\\udcd3\":428,\"\\ud83d\\udcd4\":429,\"\\ud83d\\udcd2\":430,\"\\ud83d\\udcda\":431,\"\\ud83d\\udcd6\":432,\"\\ud83d\\udd16\":433,\"\\ud83d\\udcdb\":434,\"\\ud83d\\udd2c\":435,\"\\ud83d\\udd2d\":436,\"\\ud83d\\udcf0\":437,\"\\ud83c\\udfa8\":438,\"\\ud83c\\udfac\":439,\"\\ud83c\\udfa4\":440,\"\\ud83c\\udfa7\":441,\"\\ud83c\\udfbc\":442,\"\\ud83c\\udfb5\":443,\"\\ud83c\\udfb6\":444,\"\\ud83c\\udfb9\":445,\"\\ud83c\\udfbb\":446,\"\\ud83c\\udfba\":447,\"\\ud83c\\udfb7\":448,\"\\ud83c\\udfb8\":449,\"\\ud83d\\udc7e\":450,\"\\ud83c\\udfae\":451,\"\\ud83c\\udccf\":452,\"\\ud83c\\udfb4\":453,\"\\ud83c\\udc04\\ufe0f\":454,\"\\ud83c\\udfb2\":455,\"\\ud83c\\udfaf\":456,\"\\ud83c\\udfc8\":457,\"\\ud83c\\udfc0\":458,\"\\u26bd\\ufe0f\":459,\"\\u26be\\ufe0f\":460,\"\\ud83c\\udfbe\":461,\"\\ud83c\\udfb1\":462,\"\\ud83c\\udfc9\":463,\"\\ud83c\\udfb3\":464,\"\\u26f3\\ufe0f\":465,\"\\ud83d\\udeb5\":466,\"\\ud83d\\udeb4\":467,\"\\ud83c\\udfc1\":468,\"\\ud83c\\udfc7\":469,\"\\ud83c\\udfc6\":470,\"\\ud83c\\udfbf\":471,\"\\ud83c\\udfc2\":472,\"\\ud83c\\udfca\":473,\"\\ud83c\\udfc4\":474,\"\\ud83c\\udfa3\":475,\"\\u2615\\ufe0f\":476,\"\\ud83c\\udf75\":477,\"\\ud83c\\udf76\":478,\"\\ud83c\\udf7c\":479,\"\\ud83c\\udf7a\":480,\"\\ud83c\\udf7b\":481,\"\\ud83c\\udf78\":482,\"\\ud83c\\udf79\":483,\"\\ud83c\\udf77\":484,\"\\ud83c\\udf74\":485,\"\\ud83c\\udf55\":486,\"\\ud83c\\udf54\":487,\"\\ud83c\\udf5f\":488,\"\\ud83c\\udf57\":489,\"\\ud83c\\udf56\":490,\"\\ud83c\\udf5d\":491,\"\\ud83c\\udf5b\":492,\"\\ud83c\\udf64\":493,\"\\ud83c\\udf71\":494,\"\\ud83c\\udf63\":495,\"\\ud83c\\udf65\":496,\"\\ud83c\\udf59\":497,\"\\ud83c\\udf58\":498,\"\\ud83c\\udf5a\":499,\t\t\"\\ud83c\\udf5c\":500,\"\\ud83c\\udf72\":501,\"\\ud83c\\udf62\":502,\"\\ud83c\\udf61\":503,\"\\ud83c\\udf73\":504,\"\\ud83c\\udf5e\":505,\"\\ud83c\\udf69\":506,\"\\ud83c\\udf6e\":507,\"\\ud83c\\udf66\":508,\"\\ud83c\\udf68\":509,\"\\ud83c\\udf67\":510,\"\\ud83c\\udf82\":511,\"\\ud83c\\udf70\":512,\"\\ud83c\\udf6a\":513,\"\\ud83c\\udf6b\":514,\"\\ud83c\\udf6c\":515,\"\\ud83c\\udf6d\":516,\"\\ud83c\\udf6f\":517,\"\\ud83c\\udf4e\":518,\"\\ud83c\\udf4f\":519,\"\\ud83c\\udf4a\":520,\"\\ud83c\\udf4b\":521,\"\\ud83c\\udf52\":522,\"\\ud83c\\udf47\":523,\"\\ud83c\\udf49\":524,\"\\ud83c\\udf53\":525,\"\\ud83c\\udf51\":526,\"\\ud83c\\udf48\":527,\"\\ud83c\\udf4c\":528,\"\\ud83c\\udf50\":529,\"\\ud83c\\udf4d\":530,\"\\ud83c\\udf60\":531,\"\\ud83c\\udf46\":532,\"\\ud83c\\udf45\":533,\"\\ud83c\\udf3d\":534,\"\\ud83c\\udfe0\":535,\"\\ud83c\\udfe1\":536,\"\\ud83c\\udfeb\":537,\"\\ud83c\\udfe2\":538,\"\\ud83c\\udfe3\":539,\"\\ud83c\\udfe5\":540,\"\\ud83c\\udfe6\":541,\"\\ud83c\\udfea\":542,\"\\ud83c\\udfe9\":543,\"\\ud83c\\udfe8\":544,\"\\ud83d\\udc92\":545,\"\\u26ea\\ufe0f\":546,\"\\ud83c\\udfec\":547,\"\\ud83c\\udfe4\":548,\"\\ud83c\\udf07\":549,\"\\ud83c\\udf06\":550,\"\\ud83c\\udfef\":551,\"\\ud83c\\udff0\":552,\"\\u26fa\\ufe0f\":553,\"\\ud83c\\udfed\":554,\"\\ud83d\\uddfc\":555,\"\\ud83d\\uddfe\":556,\"\\ud83d\\uddfb\":557,\"\\ud83c\\udf04\":558,\"\\ud83c\\udf05\":559,\"\\ud83c\\udf03\":560,\"\\ud83d\\uddfd\":561,\"\\ud83c\\udf09\":562,\"\\ud83c\\udfa0\":563,\"\\ud83c\\udfa1\":564,\"\\u26f2\\ufe0f\":565,\"\\ud83c\\udfa2\":566,\"\\ud83d\\udea2\":567,\"\\u26f5\\ufe0f\":568,\"\\ud83d\\udea4\":569,\"\\ud83d\\udea3\":570,\"\\u2693\\ufe0f\":571,\"\\ud83d\\ude80\":572,\"\\u2708\\ufe0f\":573,\"\\ud83d\\udcba\":574,\"\\ud83d\\ude81\":575,\"\\ud83d\\ude82\":576,\"\\ud83d\\ude8a\":577,\"\\ud83d\\ude89\":578,\"\\ud83d\\ude9e\":579,\"\\ud83d\\ude86\":580,\"\\ud83d\\ude84\":581,\"\\ud83d\\ude85\":582,\"\\ud83d\\ude88\":583,\"\\ud83d\\ude87\":584,\"\\ud83d\\ude9d\":585,\"\\ud83d\\ude8b\":586,\"\\ud83d\\ude83\":587,\"\\ud83d\\ude8e\":588,\"\\ud83d\\ude8c\":589,\"\\ud83d\\ude8d\":590,\"\\ud83d\\ude99\":591,\"\\ud83d\\ude98\":592,\"\\ud83d\\ude97\":593,\"\\ud83d\\ude95\":594,\"\\ud83d\\ude96\":595,\"\\ud83d\\ude9b\":596,\"\\ud83d\\ude9a\":597,\"\\ud83d\\udea8\":598,\"\\ud83d\\ude93\":599,\t\t\"\\ud83d\\ude94\":600,\"\\ud83d\\ude92\":601,\"\\ud83d\\ude91\":602,\"\\ud83d\\ude90\":603,\"\\ud83d\\udeb2\":604,\"\\ud83d\\udea1\":605,\"\\ud83d\\ude9f\":606,\"\\ud83d\\udea0\":607,\"\\ud83d\\ude9c\":608,\"\\ud83d\\udc88\":609,\"\\ud83d\\ude8f\":610,\"\\ud83c\\udfab\":611,\"\\ud83d\\udea6\":612,\"\\ud83d\\udea5\":613,\"\\u26a0\\ufe0f\":614,\"\\ud83d\\udea7\":615,\"\\ud83d\\udd30\":616,\"\\u26fd\\ufe0f\":617,\"\\ud83c\\udfee\":618,\"\\ud83c\\udfb0\":619,\"\\u2668\\ufe0f\":620,\"\\ud83d\\uddff\":621,\"\\ud83c\\udfaa\":622,\"\\ud83c\\udfad\":623,\"\\ud83d\\udccd\":624,\"\\ud83d\\udea9\":625,\"\\ud83c\\uddef\\ud83c\\uddf5\":626,\"\\ud83c\\uddf0\\ud83c\\uddf7\":627,\"\\ud83c\\udde9\\ud83c\\uddea\":628,\"\\ud83c\\udde8\\ud83c\\uddf3\":629,\"\\ud83c\\uddfa\\ud83c\\uddf8\":630,\"\\ud83c\\uddeb\\ud83c\\uddf7\":631,\"\\ud83c\\uddea\\ud83c\\uddf8\":632,\"\\ud83c\\uddee\\ud83c\\uddf9\":633,\"\\ud83c\\uddf7\\ud83c\\uddfa\":634,\"\\ud83c\\uddec\\ud83c\\udde7\":635,\"1\\u20e3\":636,\"2\\u20e3\":637,\"3\\u20e3\":638,\"4\\u20e3\":639,\"5\\u20e3\":640,\"6\\u20e3\":641,\"7\\u20e3\":642,\"8\\u20e3\":643,\"9\\u20e3\":644,\"0\\u20e3\":645,\"\\ud83d\\udd1f\":646,\"\\ud83d\\udd22\":647,\"\\u0023\\u20e3\":648,\"\\ud83d\\udd23\":649,\"\\u2b06\\ufe0f\":650,\"\\u2b07\\ufe0f\":651,\"\\u2b05\\ufe0f\":652,\"\\u27a1\\ufe0f\":653,\"\\ud83d\\udd20\":654,\"\\ud83d\\udd21\":655,\"\\ud83d\\udd24\":656,\"\\u2197\\ufe0f\":657,\"\\u2196\\ufe0f\":658,\"\\u2198\\ufe0f\":659,\"\\u2199\\ufe0f\":660,\"\\u2194\\ufe0f\":661,\"\\u2195\\ufe0f\":662,\"\\ud83d\\udd04\":663,\"\\u25c0\\ufe0f\":664,\"\\u25b6\\ufe0f\":665,\"\\ud83d\\udd3c\":666,\"\\ud83d\\udd3d\":667,\"\\u21a9\\ufe0f\":668,\"\\u21aa\\ufe0f\":669,\"\\u2139\\ufe0f\":670,\"\\u23ea\":671,\"\\u23e9\":672,\"\\u23eb\":673,\"\\u23ec\":674,\"\\u2935\\ufe0f\":675,\"\\u2934\\ufe0f\":676,\"\\ud83c\\udd97\":677,\"\\ud83d\\udd00\":678,\"\\ud83d\\udd01\":679,\"\\ud83d\\udd02\":680,\"\\ud83c\\udd95\":681,\"\\ud83c\\udd99\":682,\"\\ud83c\\udd92\":683,\"\\ud83c\\udd93\":684,\"\\ud83c\\udd96\":685,\"\\ud83d\\udcf6\":686,\"\\ud83c\\udfa6\":687,\"\\ud83c\\ude01\":688,\"\\ud83c\\ude2f\\ufe0f\":689,\"\\ud83c\\ude33\":690,\"\\ud83c\\ude35\":691,\"\\ud83c\\ude34\":692,\"\\ud83c\\ude32\":693,\"\\ud83c\\ude50\":694,\"\\ud83c\\ude39\":695,\"\\ud83c\\ude3a\":696,\"\\ud83c\\ude36\":697,\"\\ud83c\\ude1a\\ufe0f\":698,\"\\ud83d\\udebb\":699,\t\t\"\\ud83d\\udeb9\":700,\"\\ud83d\\udeba\":701,\"\\ud83d\\udebc\":702,\"\\ud83d\\udebe\":703,\"\\ud83d\\udeb0\":704,\"\\ud83d\\udeae\":705,\"\\ud83c\\udd7f\\ufe0f\":706,\"\\u267f\\ufe0f\":707,\"\\ud83d\\udead\":708,\"\\ud83c\\ude37\":709,\"\\ud83c\\ude38\":710,\"\\ud83c\\ude02\":711,\"\\u24c2\\ufe0f\":712,\"\\ud83d\\udec2\":713,\"\\ud83d\\udec4\":714,\"\\ud83d\\udec5\":715,\"\\ud83d\\udec3\":716,\"\\ud83c\\ude51\":717,\"\\u3299\\ufe0f\":718,\"\\u3297\\ufe0f\":719,\"\\ud83c\\udd91\":720,\"\\ud83c\\udd98\":721,\"\\ud83c\\udd94\":722,\"\\ud83d\\udeab\":723,\"\\ud83d\\udd1e\":724,\"\\ud83d\\udcf5\":725,\"\\ud83d\\udeaf\":726,\"\\ud83d\\udeb1\":727,\"\\ud83d\\udeb3\":728,\"\\ud83d\\udeb7\":729,\"\\ud83d\\udeb8\":730,\"\\u26d4\\ufe0f\":731,\"\\u2733\\ufe0f\":732,\"\\u2747\\ufe0f\":733,\"\\u274e\":734,\"\\u2705\":735,\"\\u2734\\ufe0f\":736,\"\\ud83d\\udc9f\":737,\"\\ud83c\\udd9a\":738,\"\\ud83d\\udcf3\":739,\"\\ud83d\\udcf4\":740,\"\\ud83c\\udd70\":741,\"\\ud83c\\udd71\":742,\"\\ud83c\\udd8e\":743,\"\\ud83c\\udd7e\":744,\"\\ud83d\\udca0\":745,\"\\u27bf\":746,\"\\u267b\\ufe0f\":747,\"\\u2648\\ufe0f\":748,\"\\u2649\\ufe0f\":749,\"\\u264a\\ufe0f\":750,\"\\u264b\\ufe0f\":751,\"\\u264c\\ufe0f\":752,\"\\u264d\\ufe0f\":753,\"\\u264e\\ufe0f\":754,\"\\u264f\\ufe0f\":755,\"\\u2650\\ufe0f\":756,\"\\u2651\\ufe0f\":757,\"\\u2652\\ufe0f\":758,\"\\u2653\\ufe0f\":759,\"\\u26ce\":760,\"\\ud83d\\udd2f\":761,\"\\ud83c\\udfe7\":762,\"\\ud83d\\udcb9\":763,\"\\ud83d\\udcb2\":764,\"\\ud83d\\udcb1\":765,\"\\u00a9\":766,\"\\u00ae\":767,\"\\u2122\":768,\"\\u274c\":769,\"\\u203c\\ufe0f\":770,\"\\u2049\\ufe0f\":771,\"\\u2757\\ufe0f\":772,\"\\u2753\":773,\"\\u2755\":774,\"\\u2754\":775,\"\\u2b55\\ufe0f\":776,\"\\ud83d\\udd1d\":777,\"\\ud83d\\udd1a\":778,\"\\ud83d\\udd19\":779,\"\\ud83d\\udd1b\":780,\"\\ud83d\\udd1c\":781,\"\\ud83d\\udd03\":782,\"\\ud83d\\udd5b\":783,\"\\ud83d\\udd67\":784,\"\\ud83d\\udd50\":785,\"\\ud83d\\udd5c\":786,\"\\ud83d\\udd51\":787,\"\\ud83d\\udd5d\":788,\"\\ud83d\\udd52\":789,\"\\ud83d\\udd5e\":790,\"\\ud83d\\udd53\":791,\"\\ud83d\\udd5f\":792,\"\\ud83d\\udd54\":793,\"\\ud83d\\udd60\":794,\"\\ud83d\\udd55\":795,\"\\ud83d\\udd56\":796,\"\\ud83d\\udd57\":797,\"\\ud83d\\udd58\":798,\"\\ud83d\\udd59\":799,\t\t\"\\ud83d\\udd5a\":800,\"\\ud83d\\udd61\":801,\"\\ud83d\\udd62\":802,\"\\ud83d\\udd63\":803,\"\\ud83d\\udd64\":804,\"\\ud83d\\udd65\":805,\"\\ud83d\\udd66\":806,\"\\u2716\\ufe0f\":807,\"\\u2795\":808,\"\\u2796\":809,\"\\u2797\":810,\"\\u2660\\ufe0f\":811,\"\\u2665\\ufe0f\":812,\"\\u2663\\ufe0f\":813,\"\\u2666\\ufe0f\":814,\"\\ud83d\\udcae\":815,\"\\ud83d\\udcaf\":816,\"\\u2714\\ufe0f\":817,\"\\u2611\\ufe0f\":818,\"\\ud83d\\udd18\":819,\"\\ud83d\\udd17\":820,\"\\u27b0\":821,\"\\u3030\":822,\"\\u303d\\ufe0f\":823,\"\\ud83d\\udd31\":824,\"\\u25fc\\ufe0f\":825,\"\\u25fb\\ufe0f\":826,\"\\u25fe\\ufe0f\":827,\"\\u25fd\\ufe0f\":828,\"\\u25aa\\ufe0f\":829,\"\\u25ab\\ufe0f\":830,\"\\ud83d\\udd3a\":831,\"\\ud83d\\udd32\":832,\"\\ud83d\\udd33\":833,\"\\u26ab\\ufe0f\":834,\"\\u26aa\\ufe0f\":835,\"\\ud83d\\udd34\":836,\"\\ud83d\\udd35\":837,\"\\ud83d\\udd3b\":838,\"\\u2b1c\\ufe0f\":839,\"\\u2b1b\\ufe0f\":840,\"\\ud83d\\udd36\":841,\"\\ud83d\\udd37\":842,\"\\ud83d\\udd38\":843,\"\\ud83d\\udd39\":844\n\t\t,\"\\u263a\":4,\"\\u270c\":110,\"\\u261d\":120,\"\\u2764\":172,\"\\u2b50\":293,\"\\u2600\":294,\"\\u26c5\":295,\"\\u2601\":296,\"\\u26a1\":297,\"\\u2614\":298,\"\\u2744\":299,\"\\u26c4\":300,\"\\u260e\":336,\"\\u231b\":352,\"\\u231a\":354,\"\\u2709\":393,\"\\u2702\":417,\"\\u2712\":420,\"\\u270f\":421,\"\\ud83c\\udc04\":454,\"\\u26bd\":459,\"\\u26be\":460,\"\\u26f3\":465,\"\\u2615\":476,\"\\u26ea\":546,\"\\u26fa\":553,\"\\u26f2\":565,\"\\u26f5\":568,\"\\u2693\":571,\"\\u2708\":573,\"\\u26a0\":614,\"\\u26fd\":617,\"\\u2668\":620,\"\\u2b06\":650,\"\\u2b07\":651,\"\\u2b05\":652,\"\\u27a1\":653,\"\\u2197\":657,\"\\u2196\":658,\"\\u2198\":659,\"\\u2199\":660,\"\\u2194\":661,\"\\u2195\":662,\"\\u25c0\":664,\"\\u25b6\":665,\"\\u21a9\":668,\"\\u21aa\":669,\"\\u2139\":670,\"\\u2935\":675,\"\\u2934\":676,\"\\ud83c\\ude2f\":689,\"\\ud83c\\ude1a\":698,\"\\ud83c\\udd7f\":706,\"\\u267f\":707,\"\\u24c2\":712,\"\\u3299\":718,\"\\u3297\":719,\"\\u26d4\":731,\"\\u2733\":732,\"\\u2747\":733,\"\\u2734\":736,\"\\u267b\":747,\"\\u2648\":748,\"\\u2649\":749,\"\\u264a\":750,\"\\u264b\":751,\"\\u264c\":752,\"\\u264d\":753,\"\\u264e\":754,\"\\u264f\":755,\"\\u2650\":756,\"\\u2651\":757,\"\\u2652\":758,\"\\u2653\":759,\"\\u203c\":770,\"\\u2049\":771,\"\\u2757\":772,\"\\u2b55\":776,\"\\u2716\":807,\"\\u2660\":811,\"\\u2665\":812,\"\\u2663\":813,\"\\u2666\":814,\"\\u2714\":817,\"\\u2611\":818,\"\\u303d\":823,\"\\u25fc\":825,\"\\u25fb\":826,\"\\u25fe\":827,\"\\u25fd\":828,\"\\u25aa\":829,\"\\u25ab\":830,\"\\u26ab\":834,\"\\u26aa\":835,\"\\u2b1c\":839,\"\\u2b1b\":840\n\t};\n\tvar regx_arr=[];\n\tfor(var k in emoji){\n\t\tregx_arr.push(k);\n\t}\n\tvar regx = new RegExp('(' + regx_arr.join('|') + ')', 'g');\n\tregx_arr = null;\n\treturn str.replace(regx, function (a, b) {\n\t\treturn ' ';\n\t});\n}\n","/*\tLoad\n Loads External Javascript and CSS\n Adapted from LazyLoad and adjusted from earlier TimelineJS to\n not add an extra layer. Seems like we could simplify\n this, but leaving in in case users need support for older browsers.\n ================================================== */\n\n/*\nLazyLoad makes it easy and painless to lazily load one or more external\nJavaScript or CSS files on demand either during or after the rendering of a web\npage.\n\nSupported browsers include Firefox 2+, IE6+, Safari 3+ (including Mobile\nSafari), Google Chrome, and Opera 9+. Other browsers may or may not work and\nare not officially supported.\n\nVisit https://github.com/rgrove/lazyload/ for more info.\n\nCopyright (c) 2011 Ryan Grove \nAll rights reserved.\n\nPermission is hereby granted, free of charge, to any person obtaining a copy of\nthis software and associated documentation files (the 'Software'), to deal in\nthe Software without restriction, including without limitation the rights to\nuse, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of\nthe Software, and to permit persons to whom the Software is furnished to do so,\nsubject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS\nFOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR\nCOPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER\nIN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN\nCONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n*/\nclass Loader {\n\n constructor(document) {\n this.doc = document\n this.pending = {}\n this.queue = { css: [], js: [] };\n this.styleSheets = document.styleSheets\n this.env = this.getEnv()\n this.head = this.doc.head || this.doc.getElementsByTagName('head')[0];\n this.pollCount = 0\n\n }\n\n\n\n // -- Private Methods --------------------------------------------------------\n\n /**\n Creates and returns an HTML element with the specified name and attributes.\n\n @method createNode\n @param {String} name element name\n @param {Object} attrs name/value mapping of element attributes\n @return {HTMLElement}\n @private\n */\n createNode(name, attrs) {\n var node = this.doc.createElement(name),\n attr;\n\n for (attr in attrs) {\n if (attrs.hasOwnProperty(attr)) {\n node.setAttribute(attr, attrs[attr]);\n }\n }\n\n return node;\n }\n\n /**\n Called when the current pending resource of the specified type has finished\n loading. Executes the associated callback (if any) and loads the next\n resource in the queue.\n\n @method finish\n @param {String} type resource type ('css' or 'js')\n @private\n */\n finish(type) {\n var p = this.pending[type],\n callback,\n urls;\n\n if (p) {\n callback = p.callback;\n urls = p.urls;\n\n urls.shift();\n this.pollCount = 0;\n\n // If this is the last of the pending URLs, execute the callback and\n // start the next request in the queue (if any).\n if (!urls.length) {\n callback && callback.call(p.context, p.obj);\n this.pending[type] = null;\n this.queue[type].length && this.load(type);\n }\n }\n }\n\n /**\n Populates the env variable with user agent and feature test\n information.\n\n @method getEnv\n @private\n */\n getEnv() {\n var ua = navigator.userAgent;\n\n var env = {\n // True if this browser supports disabling async mode on dynamically\n // created script nodes. See\n // http://wiki.whatwg.org/wiki/Dynamic_Script_Execution_Order\n async: this.doc.createElement('script').async === true\n };\n\n (env.webkit = /AppleWebKit\\//.test(ua)) ||\n (env.ie = /MSIE/.test(ua)) ||\n (env.opera = /Opera/.test(ua)) ||\n (env.gecko = /Gecko\\//.test(ua)) ||\n (env.unknown = true);\n\n return env;\n }\n\n /**\n Loads the specified resources, or the next resource of the specified type\n in the queue if no resources are specified. If a resource of the specified\n type is already being loaded, the new request will be queued until the\n first request has been finished.\n\n When an array of resource URLs is specified, those URLs will be loaded in\n parallel if it is possible to do so while preserving execution order. All\n browsers support parallel loading of CSS, but only Firefox and Opera\n support parallel loading of scripts. In other browsers, scripts will be\n queued and loaded one at a time to ensure correct execution order.\n\n @method load\n @param {String} type resource type ('css' or 'js')\n @param {String|Array} urls (optional) URL or array of URLs to load\n @param {Function} callback (optional) callback function to execute when the\n resource is loaded\n @param {Object} obj (optional) object to pass to the callback function\n @param {Object} context (optional) if provided, the callback function will\n be executed in this object's context\n @private\n */\n load(type, urls, callback, obj, context) {\n var _finish = function() { this.finish(type); }.bind(this),\n isCSS = type === 'css',\n nodes = [],\n i, len, node, p, pendingUrls, url;\n\n\n\n if (urls) {\n // If urls is a string, wrap it in an array. Otherwise assume it's an\n // array and create a copy of it so modifications won't be made to the\n // original.\n urls = typeof urls === 'string' ? [urls] : urls.concat();\n\n // Create a request object for each URL. If multiple URLs are specified,\n // the callback will only be executed after all URLs have been loaded.\n //\n // Sadly, Firefox and Opera are the only browsers capable of loading\n // scripts in parallel while preserving execution order. In all other\n // browsers, scripts must be loaded sequentially.\n //\n // All browsers respect CSS specificity based on the order of the link\n // elements in the DOM, regardless of the order in which the stylesheets\n // are actually downloaded.\n if (isCSS || this.env.async || this.env.gecko || this.env.opera) {\n // Load in parallel.\n this.queue[type].push({\n urls: urls,\n callback: callback,\n obj: obj,\n context: context\n });\n } else {\n // Load sequentially.\n for (i = 0, len = urls.length; i < len; ++i) {\n this.queue[type].push({\n urls: [urls[i]],\n callback: i === len - 1 ? callback : null, // callback is only added to the last URL\n obj: obj,\n context: context\n });\n }\n }\n }\n\n // If a previous load request of this type is currently in progress, we'll\n // wait our turn. Otherwise, grab the next item in the queue.\n if (this.pending[type] || !(p = this.pending[type] = this.queue[type].shift())) {\n return;\n }\n\n\n pendingUrls = p.urls;\n\n for (i = 0, len = pendingUrls.length; i < len; ++i) {\n url = pendingUrls[i];\n\n if (isCSS) {\n node = this.env.gecko ? this.createNode('style') : this.createNode('link', {\n href: url,\n rel: 'stylesheet'\n });\n } else {\n node = this.createNode('script', { src: url });\n node.async = false;\n }\n\n node.className = 'lazyload';\n node.setAttribute('charset', 'utf-8');\n\n if (this.env.ie && !isCSS) {\n node.onreadystatechange = function() {\n if (/loaded|complete/.test(node.readyState)) {\n node.onreadystatechange = null;\n _finish();\n }\n };\n } else if (isCSS && (this.env.gecko || this.env.webkit)) {\n // Gecko and WebKit don't support the onload event on link nodes.\n if (this.env.webkit) {\n // In WebKit, we can poll for changes to document.styleSheets to\n // figure out when stylesheets have loaded.\n p.urls[i] = node.href; // resolve relative URLs (or polling won't work)\n this.pollWebKit();\n } else {\n // In Gecko, we can import the requested URL into a
+
@@ -33,9 +23,9 @@